@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.
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{activity-store-AI081rxe.js → activity-store-D_DXNHba.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DupnTbL7.js → agent-avatar-dicebear-CjaQxFQt.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-display-CmEj6Uqy.js → agent-avatar-display-6Z4m31Fz.js} +2 -2
- package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-IEV5yKuu.js → agent-defaults-settings-panel-Dne9A10p.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-plugin-dialog-D_njOuFA.js → agent-plugin-dialog-BoHL-b1o.js} +1 -1
- package/dist/gateway/static/root/assets/{agents-B_yg9nA3.js → agents-CIiIlVBp.js} +3 -3
- package/dist/gateway/static/root/assets/{agents-admin-api-CUZUolwG.js → agents-admin-api-u5c3GREg.js} +1 -1
- package/dist/gateway/static/root/assets/{api-bpQ7yR10.js → api-C3Tp9MkF.js} +1 -1
- package/dist/gateway/static/root/assets/{api-CWWEVThO.js → api-CRT9ZyH0.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-C0_hxwgg.js → app-management-settings-panel-C8yc3yHG.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-CLh-qnCC.js → appearance-settings-BELgtR3O.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-Bjtm3Rgi.js → apps-page-vgS1CHDj.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-dGnstkhB.js → archive-plugin-BCQnOkV8.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-api-MB2xCoFF.js → automation-api-hRsGx-qe.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-result-state-DJQflY78.js → automation-result-state-CMfVTv_i.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-task-card-DXgBxVE2.js → automation-task-card-MnzgyTVA.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-D3O7M2FH.js → automations-page-CdIPdwF0.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-workspace-Dk3FVWoX.js → automations-workspace-C3xZLafX.js} +2 -2
- package/dist/gateway/static/root/assets/{binary-plugins-BrVJXmYf.js → binary-plugins-CIB5cbvQ.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-Dok4sfT3.js → block-editor-BQtTLe6Q.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automation-inputs-PJbT3CxW.js → browser-automation-inputs-DeraGZ1y.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-kkpX1Q7K.js → browser-automations-page-SpPzRNqU.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-control-api-Bg4wnkeA.js → browser-control-api-CbbPvhHR.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-settings-page-BrgX_Yb2.js → browser-settings-page-BD1uF_Nb.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-BMaJizw4.js → capabilities-BGE6hiUE.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-Cs6Jt5Gl.js → capabilities-DLMuj21P.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-page-D5hvAG6D.js → capabilities-page-Bda4mSdf.js} +2 -2
- package/dist/gateway/static/root/assets/{capabilities-settings-panel-BrEvm4IH.js → capabilities-settings-panel-B2B7no22.js} +2 -2
- package/dist/gateway/static/root/assets/{channels-1jQgGVc9.js → channels-NtsjZThx.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-agents-api-BAOWaUJf.js → chat-agents-api-D8YS5amE.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-chart-block-DeWrb9XR.js → chat-chart-block-DCzUECct.js} +1 -1
- package/dist/gateway/static/root/assets/chat-page-BnOCCAXG.js +72 -0
- package/dist/gateway/static/root/assets/{chat-terminal-dock-C544n0-R.js → chat-terminal-dock-Dl-OTkJI.js} +1 -1
- package/dist/gateway/static/root/assets/{command-palette-api-D9PXzY8b.js → command-palette-api-Dijix7V6.js} +1 -1
- package/dist/gateway/static/root/assets/{composer-payload-handoff-CYXfjpem.js → composer-payload-handoff-CQc-VTaL.js} +1 -1
- package/dist/gateway/static/root/assets/{computer-settings-page-DJmod8-w.js → computer-settings-page-B-lGMimW.js} +1 -1
- package/dist/gateway/static/root/assets/connected-providers-grid-CcXe9kz5.js +1 -0
- package/dist/gateway/static/root/assets/{connector-service-page-BqDbTOTp.js → connector-service-page-C8InhrMt.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-api-CwRuUnH4.js → connectors-api-DEJU8mgn.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-page-Mq9Bvoax.js → connectors-page-Ci0L2How.js} +1 -1
- package/dist/gateway/static/root/assets/{date-picker-DWaT0IC0.js → date-picker-kqic8j73.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-DV9XAt6F.js → dependency-picker-cbC6-2Ya.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-Dffq2NxL.js → desktop-pet-DFNehTtd.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-narrative-CS8qJpNO.js → desktop-pet-narrative-ChwjpnsG.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-CrB1ICax.js → desktop-pet-settings-BDS7_tQ_.js} +1 -1
- package/dist/gateway/static/root/assets/{dev-view-store-liRgSkcT.js → dev-view-store-CeZZLOc6.js} +1 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-_3BJFWVQ.js +1 -0
- package/dist/gateway/static/root/assets/{directory-picker-path-field-EKqQLQrE.js → directory-picker-path-field-Di0h3ws4.js} +1 -1
- package/dist/gateway/static/root/assets/{discussion-annotation-sync-D-b1X6ro.js → discussion-annotation-sync-ClKEyXmN.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-wD97GeG0.js → extension-debug-page-DwB5KMGk.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-iframe-host-B4Q1CjvW.js → extension-iframe-host-Cqg1K70e.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-marketplace-api-ak1_K3u8.js → extension-marketplace-api-DRBszrCR.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-DWFI4iIh.js → extension-page-DyrQtG82.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-BZwcaU5Y.js → extension-provider-C_uKqJxP.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-cn4KS42C.js → extension-settings-page-BAMQHzkX.js} +1 -1
- package/dist/gateway/static/root/assets/{file-preview-surface-c3gDD9sM.js → file-preview-surface-DfkXvFnc.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-Dmt5JhZU.js → gateway-config-swr-BOCt_zOo.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-CJtDXQCt.js → gateway-realtime-BL_Cf0OQ.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-BHBOPF_q.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-restart-DInvvT5u.js → gateway-restart-CHf8qY7H.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-BZXdv2FE.js → gateway-settings-uAboiElC.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-s2KcWekp.js → gateway-startup-retry-CvkJYurV.js} +1 -1
- package/dist/gateway/static/root/assets/{global-defaults-api-DtnmDd87.js → global-defaults-api-BWMbKu72.js} +1 -1
- package/dist/gateway/static/root/assets/{home-page-CAVjA5rO.js → home-page-D6pCBY1V.js} +2 -2
- package/dist/gateway/static/root/assets/{image-generation-api-RQQokgE9.js → image-generation-api-CQxZSTWA.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-BP_4TubV.js → imports-page-C90644id.js} +1 -1
- package/dist/gateway/static/root/assets/index-Cc41XQid.css +1 -0
- package/dist/gateway/static/root/assets/index-CnOYR6jq.js +11 -0
- package/dist/gateway/static/root/assets/{install-connector-dialog-BNzNuXJ8.js → install-connector-dialog-BuNXON0P.js} +1 -1
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DNRQFepg.js → keyboard-shortcuts-settings-CbeubKe1.js} +1 -1
- package/dist/gateway/static/root/assets/{local-app-workbench-page-CvY5XxbX.js → local-app-workbench-page-CP-BkbB6.js} +1 -1
- package/dist/gateway/static/root/assets/{local-apps-page-DfwEvd8G.js → local-apps-page-C6zFgwkr.js} +1 -1
- package/dist/gateway/static/root/assets/{local-session-drafts-CuDdIyxR.js → local-session-drafts-BJ1B1dQ7.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-TQcz_Vjt.js → locale-store-Br7IfbXK.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-eq49F1Rt.js → logs-page-CpVCvAWE.js} +1 -1
- package/dist/gateway/static/root/assets/{management-settings-BaYXDMOJ.js → management-settings-I-pXv4ML.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-D4nII6Zv.js → markdown-view-DrVAMlwc.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-MvlAY405.js → media-plugins-Ba6vUE4J.js} +1 -1
- package/dist/gateway/static/root/assets/messages-ByFlEbsu.js +3 -0
- package/dist/gateway/static/root/assets/{model-selector-nsoNHqif.js → model-selector-CXcxc30J.js} +1 -1
- package/dist/gateway/static/root/assets/{models-hub-cache-CFIazNIF.js → models-hub-cache-Bd-fYUrV.js} +1 -1
- package/dist/gateway/static/root/assets/{note-detail-panel-KPzbHiEW.js → note-detail-panel-CbpLXAVh.js} +3 -3
- package/dist/gateway/static/root/assets/note-image-lightbox-cLGiF8oU.js +1 -0
- package/dist/gateway/static/root/assets/{notes-api-HVxR5bRD.js → notes-api-CUlhTRv0.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-yShJeR3i.js → notes-page-eoKX85K5.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-api-CfKjRVnb.js → oauth-api-DMMdeaNd.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-provider-connect-D4uqONWr.js → oauth-provider-connect-C8BXow79.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-capture-button-B98nlKTc.js → page-context-capture-button-CBFK41OS.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-draft-HcuK45iu.js → page-context-draft-LF33STHC.js} +1 -1
- package/dist/gateway/static/root/assets/page-header-store-Du44NIEJ.js +1 -0
- package/dist/gateway/static/root/assets/{personal-avatar-_d72UP_d.js → personal-avatar-D6CzIIfo.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-page-B19h_3WQ.js → personal-page-CXR1Gy0x.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-settings-panel-CfwtGyue.js → personal-settings-panel-DnYapLo7.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-dependencies-card-D8bqsDk_.js → phone-dependencies-card-DBiKtzwz.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-model-picker-CL_Zn6Xd.js → phone-model-picker-BmSxEr7M.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-settings-page-C5Jia8eQ.js → phone-settings-page-vg65qilc.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-workspace-store-FBfrfkYq.js → phone-workspace-store-SN7hfddU.js} +1 -1
- package/dist/gateway/static/root/assets/{plugin-details-dialog-gAq2KPzK.js → plugin-details-dialog-B3Hn2cbx.js} +1 -1
- package/dist/gateway/static/root/assets/{preference-select-fields-Ck8GAX_y.js → preference-select-fields-Cu_ZC9Up.js} +1 -1
- package/dist/gateway/static/root/assets/{product-automation-feedback-BJ9oTnNs.js → product-automation-feedback-Tn2dUJWM.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-Dw9hUdxP.js → product-open-page-Nf-Oqf1h.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-content-C0iPzmSm.js → product-preview-content-D6NwUm3A.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-modal-COFtHoh6.js → product-preview-modal-BfNcGgXA.js} +2 -2
- package/dist/gateway/static/root/assets/{project-detail-page-C5Amjah-.js → project-detail-page-Ch-ZMyTu.js} +1 -1
- package/dist/gateway/static/root/assets/{project-understanding-DpL9ADQU.js → project-understanding-B1BK7Ixi.js} +1 -1
- package/dist/gateway/static/root/assets/{projects-page-gGg9nM2t.js → projects-page-B7cetxao.js} +1 -1
- package/dist/gateway/static/root/assets/{providers-api-D6JJRlJb.js → providers-api-DOnNfkwQ.js} +1 -1
- package/dist/gateway/static/root/assets/{recording-upload-DxX1xKyt.js → recording-upload-RAhaLUcQ.js} +1 -1
- package/dist/gateway/static/root/assets/{registry-api-BfXzBR1D.js → registry-api-DFDvOTg4.js} +1 -1
- package/dist/gateway/static/root/assets/{remote-access-hub-BZA4StwC.js → remote-access-hub-DWsOWetc.js} +1 -1
- package/dist/gateway/static/root/assets/{resource-unavailable-X-SIrZYI.js → resource-unavailable-TQcRCpAg.js} +1 -1
- package/dist/gateway/static/root/assets/{route-preload-CWRb0UCt.js → route-preload-Zc5Z3fNv.js} +2 -2
- package/dist/gateway/static/root/assets/{runtime-tools-api-1DjsPyQ5.js → runtime-tools-api-9o3Wfji1.js} +1 -1
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-BnCtyORj.js → runtime-tools-settings-panel-BGiXeHF5.js} +1 -1
- package/dist/gateway/static/root/assets/{service-recommendation-list-ChSOfHHh.js → service-recommendation-list-BEnNx0u7.js} +1 -1
- package/dist/gateway/static/root/assets/{session-api-rvY5aWw8.js → session-api-Bs3r_d2_.js} +1 -1
- package/dist/gateway/static/root/assets/session-manager-ChUtTAoG.js +23 -0
- package/dist/gateway/static/root/assets/{sessions-page-DAS2IUGT.js → sessions-page-Bt52kBvJ.js} +1 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-BI4DMz4_.js +1 -0
- package/dist/gateway/static/root/assets/{settings-advanced-section-ZKRIuk7h.js → settings-advanced-section-CURRjsLK.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-mode-store-CtJ8pEfm.js → settings-mode-store-CiRpsdTJ.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-B3pUce-_.js → settings-page-GtsbT6as.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-header-DuNCn8i-.js → settings-page-header-DBL0_u0Z.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-layout-DeNC8YHJ.js → settings-page-layout-IAvpbz4A.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-status-panel-Fc3vuz_h.js → setup-status-panel-A6uMpGRy.js} +1 -1
- package/dist/gateway/static/root/assets/{share-link-dialog-B3hwjVAx.js → share-link-dialog-D1otGSXD.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-D_9oFzGS.js → share-preview-page-L9KYu8M7.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-BoUpXmxq.js → shares-api-D8Q-m46d.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-settings-Drfuvepz.js → shares-settings-Bmfadz8A.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-api-By2HhJ9O.js → skill-api-uKU4sRiv.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-list-api-TaUCzS8Y.js → skill-list-api-BzKzG-xG.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-CN2fpS1n.js → skill-reload-api-DkUXekcd.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-LzGLique.js → skills-page-BZklXTX9.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-Cuyg8Ml3.js → system-settings-panel-CsvcFoaJ.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-SjZGW1Dx.js +2 -0
- package/dist/gateway/static/root/assets/{task-result-evidence-DDubAU_5.js → task-result-evidence-B8xUiwW3.js} +1 -1
- package/dist/gateway/static/root/assets/{terminal-panel-store-BNs75Wdr.js → terminal-panel-store-DJVC7HqA.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-DB1ZfBUm.js → theme-store-Dlnmgryi.js} +1 -1
- package/dist/gateway/static/root/assets/tool-friendly-title-DcCc6g7o.js +1 -0
- package/dist/gateway/static/root/assets/{tracing-settings-page-TvtX4Goh.js → tracing-settings-page-MvG4SH64.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-COoVEdV9.js → tunnel-api-BB7u79ID.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-activity-store-Dr_MLgYe.js → understanding-activity-store-C4bblRnQ.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-refresh-store-DGmLGEqw.js → understanding-refresh-store-BvCj9-Ue.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-DP6eb6ed.js → usage-page-Cv4Je5XJ.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-itwjDYUb.js → use-autosave-YHxQ-UZg.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-hjIGlI_2.js → use-composer-attachments-vDdxHtUb.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-ClLa0g8D.js → use-file-preview-expanded-Ce2mgYme.js} +2 -2
- package/dist/gateway/static/root/assets/{use-personal-profile-vhWk6tTU.js → use-personal-profile-D2Un8G1L.js} +1 -1
- package/dist/gateway/static/root/assets/{use-workspace-tree-dfXXjA2-.js → use-workspace-tree-BQEiJzK7.js} +1 -1
- package/dist/gateway/static/root/assets/{user-model-page-D8dswPWd.js → user-model-page-DRSsn4EV.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-BIfBySnN.js → voice-api-key-field-DCM69u8Y.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-J4o59ICE.js → voice-config-api-CrULrSKC.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-input-shortcut-events-B1mlpUdC.js → voice-input-shortcut-events-DFMNIyy4.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-transcribe-api-xxaSOOmq.js → voice-transcribe-api-Bbyj0yGR.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-DqwT1E5u.js → work-discovery-overlay-CVe9UmFl.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-page-BzYQmPLT.js → work-discovery-page-CtqkRMN5.js} +1 -1
- package/dist/gateway/static/root/assets/{working-directory-picker-modal-D2Zf3GOG.js → working-directory-picker-modal-CDZ1xh3o.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-api-Bnx3eS2M.js → workspace-api-tbifz2zY.js} +2 -2
- package/dist/gateway/static/root/assets/workspace-editor-agent-store-4cZ26iaD.js +1 -0
- package/dist/gateway/static/root/assets/{workspace-file-preview-dialog-D13qHzVr.js → workspace-file-preview-dialog-BubQwQwU.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-open-location-menu-Cou-ig1H.js → workspace-open-location-menu-DZk3MBSa.js} +1 -1
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-DQGPKxHA.js → xopc-cloud-account-card-CIavPUr3.js} +1 -1
- package/dist/gateway/static/root/index.html +81 -81
- package/dist/package.js +1 -1
- package/dist/packages/computer-control-contract/src/index.js +33 -3
- package/dist/src/agent/embedded/run-turn.js +64 -4
- package/dist/src/agent/tool-manuals/computer.d.ts +1 -1
- package/dist/src/agent/tool-manuals/computer.js +6 -0
- package/dist/src/agent/tools/computer-use-tool.js +18 -5
- package/dist/src/agent/tools/phone-use-tool.js +12 -2
- package/dist/src/computer/agent-context.d.ts +21 -0
- package/dist/src/computer/agent-context.js +107 -0
- package/dist/src/computer/broker.d.ts +4 -2
- package/dist/src/computer/broker.js +26 -11
- package/dist/src/computer/diagnostics.d.ts +60 -6
- package/dist/src/computer/diagnostics.js +45 -4
- package/dist/src/computer/errors.d.ts +1 -1
- package/dist/src/computer/errors.js +4 -0
- package/dist/src/computer/evaluation.d.ts +2 -2
- package/dist/src/computer/native-timing.d.ts +15 -0
- package/dist/src/computer/native-timing.js +49 -0
- package/dist/src/computer/program-runtime.d.ts +22 -0
- package/dist/src/computer/program-runtime.js +105 -0
- package/dist/src/computer/runtime.d.ts +36 -2
- package/dist/src/computer/runtime.js +269 -58
- package/dist/src/config/models-json.d.ts +12 -0
- package/dist/src/config/schema.d.ts +18 -0
- package/dist/src/gateway/hono/routes/phone-setup.js +12 -7
- package/dist/src/gateway/hono/routes/phone.js +2 -4
- package/dist/src/gateway/service/config-coordinator.d.ts +6 -0
- package/dist/src/gateway/service.js +4 -4
- package/dist/src/gateway/xopc-cloud-capability-setup.js +9 -1
- package/dist/src/home-intelligence/host.js +2 -2
- package/dist/src/phone/adb-driver.d.ts +15 -1
- package/dist/src/phone/adb-driver.js +104 -41
- package/dist/src/phone/autoglm-protocol.d.ts +36 -0
- package/dist/src/phone/autoglm-protocol.js +88 -0
- package/dist/src/phone/autoglm-upstream-prompt.d.ts +2 -0
- package/dist/src/phone/autoglm-upstream-prompt.js +5 -0
- package/dist/src/phone/autoglm-upstream.LICENSE +201 -0
- package/dist/src/phone/cloud-adb-connection.d.ts +3 -0
- package/dist/src/phone/cloud-adb-connection.js +105 -31
- package/dist/src/phone/cloud-adb.js +18 -6
- package/dist/src/phone/completion-recovery.d.ts +6 -0
- package/dist/src/phone/completion-recovery.js +30 -0
- package/dist/src/phone/contracts.d.ts +24 -0
- package/dist/src/phone/contracts.js +12 -1
- package/dist/src/phone/execution-trace.d.ts +51 -0
- package/dist/src/phone/execution-trace.js +78 -0
- package/dist/src/phone/gui-protocol.d.ts +7 -0
- package/dist/src/phone/gui-protocol.js +302 -0
- package/dist/src/phone/model-adapter.d.ts +10 -2
- package/dist/src/phone/model-adapter.js +136 -62
- package/dist/src/phone/model-response.d.ts +5 -0
- package/dist/src/phone/model-response.js +118 -0
- package/dist/src/phone/runtime.d.ts +4 -0
- package/dist/src/phone/runtime.js +154 -18
- package/dist/src/phone/text-session.d.ts +14 -0
- package/dist/src/phone/text-session.js +39 -0
- package/dist/src/phone/ui-dump-binary.d.ts +1 -1
- package/dist/src/phone/ui-dump-binary.js +1 -1
- package/dist/src/phone/ui-session.d.ts +24 -0
- package/dist/src/phone/ui-session.js +210 -0
- package/dist/src/process/phone-process.d.ts +1 -0
- package/dist/src/process/phone-process.js +11 -1
- package/dist/src/providers/env-keys.js +2 -0
- package/dist/src/providers/index.js +11 -0
- package/dist/src/providers/model-catalog-types.d.ts +1 -1
- package/dist/src/providers/model-supplements.d.ts +1 -1
- package/dist/src/providers/model-supplements.js +6 -3
- package/dist/src/providers/phone-models.d.ts +3 -0
- package/dist/src/providers/phone-models.js +33 -0
- package/dist/src/providers/presentation.js +0 -1
- package/dist/src/tui/tui.js +1 -1
- package/dist/src/voice/platform-catalog.d.ts +1 -1
- package/package.json +2 -1
- package/dist/gateway/static/root/assets/chat-page-CafkCKOj.js +0 -72
- package/dist/gateway/static/root/assets/connected-providers-grid-b46VH4uy.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-1du1hfi5.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-DcsZyYEa.js +0 -1
- package/dist/gateway/static/root/assets/index-BS9mjvSL.js +0 -11
- package/dist/gateway/static/root/assets/index-pT-m6l6b.css +0 -1
- package/dist/gateway/static/root/assets/messages-DaLmc4W1.js +0 -3
- package/dist/gateway/static/root/assets/note-image-lightbox-DticJxxh.js +0 -1
- package/dist/gateway/static/root/assets/page-header-store-D6SzJ9Ch.js +0 -1
- package/dist/gateway/static/root/assets/session-manager-D2rbRfX3.js +0 -23
- package/dist/gateway/static/root/assets/settings-advanced-gate-CYDQybNF.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-6A9337pK.js +0 -2
- package/dist/gateway/static/root/assets/tool-friendly-title-DGmi7rCQ.js +0 -1
- 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,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 };
|
package/dist/src/tui/tui.js
CHANGED
|
@@ -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.
|
|
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",
|