@xopcai/xopc 0.0.424 → 0.0.425
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-CMw8qBuC.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DupnTbL7.js → agent-avatar-dicebear-JI0YWOIm.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-display-CmEj6Uqy.js → agent-avatar-display-YqmwzOSa.js} +2 -2
- package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-IEV5yKuu.js → agent-defaults-settings-panel-DlvjxWg6.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-plugin-dialog-D_njOuFA.js → agent-plugin-dialog-OBueuQSc.js} +1 -1
- package/dist/gateway/static/root/assets/{agents-B_yg9nA3.js → agents-Cp6_5OOQ.js} +3 -3
- package/dist/gateway/static/root/assets/{agents-admin-api-CUZUolwG.js → agents-admin-api-DLnmdC1h.js} +1 -1
- package/dist/gateway/static/root/assets/{api-bpQ7yR10.js → api-Boc-CVh7.js} +1 -1
- package/dist/gateway/static/root/assets/{api-CWWEVThO.js → api-bL7sxjAF.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-C0_hxwgg.js → app-management-settings-panel-jIG5i7KE.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-CLh-qnCC.js → appearance-settings-BnaQW9Xd.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-Bjtm3Rgi.js → apps-page-C2WKUwtN.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-dGnstkhB.js → archive-plugin-DjboG3kA.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-api-MB2xCoFF.js → automation-api-CZqL9l_d.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-result-state-DJQflY78.js → automation-result-state-DRd-X_Ai.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-task-card-DXgBxVE2.js → automation-task-card-wbnR5i6N.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-D3O7M2FH.js → automations-page-HyBQIfmn.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-workspace-Dk3FVWoX.js → automations-workspace-D6cTOKr7.js} +2 -2
- package/dist/gateway/static/root/assets/{binary-plugins-BrVJXmYf.js → binary-plugins-Bg8ARZUH.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-Dok4sfT3.js → block-editor-DKohqFAW.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automation-inputs-PJbT3CxW.js → browser-automation-inputs-YeibTzw4.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-kkpX1Q7K.js → browser-automations-page-BWNcbuz2.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-control-api-Bg4wnkeA.js → browser-control-api-CDeuxy2x.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-settings-page-BrgX_Yb2.js → browser-settings-page-L0nBjfhG.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-Cs6Jt5Gl.js → capabilities-BcQa8c9n.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-BMaJizw4.js → capabilities-aT-QjNTl.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-page-D5hvAG6D.js → capabilities-page-DlpuHdHi.js} +2 -2
- package/dist/gateway/static/root/assets/{capabilities-settings-panel-BrEvm4IH.js → capabilities-settings-panel-pvqkN2-2.js} +1 -1
- package/dist/gateway/static/root/assets/{channels-1jQgGVc9.js → channels-BUPtawh6.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-agents-api-BAOWaUJf.js → chat-agents-api-B8JO6Tcj.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-chart-block-DeWrb9XR.js → chat-chart-block-DRtuFfF1.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-page-CafkCKOj.js → chat-page-BP0huA-W.js} +31 -31
- package/dist/gateway/static/root/assets/{chat-terminal-dock-C544n0-R.js → chat-terminal-dock-Dkqq5FSL.js} +1 -1
- package/dist/gateway/static/root/assets/{command-palette-api-D9PXzY8b.js → command-palette-api-qujvNqkK.js} +1 -1
- package/dist/gateway/static/root/assets/{composer-payload-handoff-CYXfjpem.js → composer-payload-handoff-CYIhcczq.js} +1 -1
- package/dist/gateway/static/root/assets/{computer-settings-page-DJmod8-w.js → computer-settings-page-8q4hRmoo.js} +1 -1
- package/dist/gateway/static/root/assets/{connected-providers-grid-b46VH4uy.js → connected-providers-grid-CKZfhHSD.js} +1 -1
- package/dist/gateway/static/root/assets/{connector-service-page-BqDbTOTp.js → connector-service-page-DQaTI21R.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-api-CwRuUnH4.js → connectors-api-BjypBp2g.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-page-Mq9Bvoax.js → connectors-page-Lf1ZzaVn.js} +1 -1
- package/dist/gateway/static/root/assets/{date-picker-DWaT0IC0.js → date-picker-D_PSHGpe.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-DV9XAt6F.js → dependency-picker-UqKVJ9dv.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-Dffq2NxL.js → desktop-pet-1Et9VqkM.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-narrative-CS8qJpNO.js → desktop-pet-narrative-rADKU0FX.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-CrB1ICax.js → desktop-pet-settings-0fCGgaG7.js} +1 -1
- package/dist/gateway/static/root/assets/{dev-view-store-liRgSkcT.js → dev-view-store-TTj_djD8.js} +1 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-ByEL5lvM.js +1 -0
- package/dist/gateway/static/root/assets/{directory-picker-path-field-EKqQLQrE.js → directory-picker-path-field-C07a7wYX.js} +1 -1
- package/dist/gateway/static/root/assets/{discussion-annotation-sync-D-b1X6ro.js → discussion-annotation-sync-BFqKm9ky.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-wD97GeG0.js → extension-debug-page-DFaVlqas.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-iframe-host-B4Q1CjvW.js → extension-iframe-host-BfzPfXBq.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-marketplace-api-ak1_K3u8.js → extension-marketplace-api-ow0K1Y4_.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-DWFI4iIh.js → extension-page-CrDADV5W.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-BZwcaU5Y.js → extension-provider-mnRoa63o.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-cn4KS42C.js → extension-settings-page-BLl02GFY.js} +1 -1
- package/dist/gateway/static/root/assets/{file-preview-surface-c3gDD9sM.js → file-preview-surface-TGdKqhCf.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-Dmt5JhZU.js → gateway-config-swr-DfPQIHOL.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-CJtDXQCt.js → gateway-realtime-67vWg_M2.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-Bkt1z-xo.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-restart-DInvvT5u.js → gateway-restart-CLtR2wkL.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-BZXdv2FE.js → gateway-settings-COvC3r-l.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-s2KcWekp.js → gateway-startup-retry-9YQllbw2.js} +1 -1
- package/dist/gateway/static/root/assets/{global-defaults-api-DtnmDd87.js → global-defaults-api-DYMRjGvd.js} +1 -1
- package/dist/gateway/static/root/assets/{home-page-CAVjA5rO.js → home-page-k9LFXcVa.js} +2 -2
- package/dist/gateway/static/root/assets/{image-generation-api-RQQokgE9.js → image-generation-api-Dzydfvy8.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-BP_4TubV.js → imports-page-Csd_YZXZ.js} +1 -1
- package/dist/gateway/static/root/assets/index-CpwPxKQ8.css +1 -0
- package/dist/gateway/static/root/assets/index-DKW7BeT_.js +11 -0
- package/dist/gateway/static/root/assets/{install-connector-dialog-BNzNuXJ8.js → install-connector-dialog-CTQAKTPv.js} +1 -1
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DNRQFepg.js → keyboard-shortcuts-settings-B201bMIa.js} +1 -1
- package/dist/gateway/static/root/assets/{local-app-workbench-page-CvY5XxbX.js → local-app-workbench-page-CD_8_gd_.js} +1 -1
- package/dist/gateway/static/root/assets/{local-apps-page-DfwEvd8G.js → local-apps-page-BOwqNH0L.js} +1 -1
- package/dist/gateway/static/root/assets/{local-session-drafts-CuDdIyxR.js → local-session-drafts-DjmK-SM9.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-TQcz_Vjt.js → locale-store-Bg_XR36n.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-eq49F1Rt.js → logs-page-gw3E9CMQ.js} +1 -1
- package/dist/gateway/static/root/assets/{management-settings-BaYXDMOJ.js → management-settings-t_Z2mCyw.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-D4nII6Zv.js → markdown-view-BUpXJUPv.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-MvlAY405.js → media-plugins-_shnaEMY.js} +1 -1
- package/dist/gateway/static/root/assets/messages-DG4HLOER.js +3 -0
- package/dist/gateway/static/root/assets/{model-selector-nsoNHqif.js → model-selector-a7PIT1Lk.js} +1 -1
- package/dist/gateway/static/root/assets/{models-hub-cache-CFIazNIF.js → models-hub-cache-KOJC3z6Q.js} +1 -1
- package/dist/gateway/static/root/assets/{note-detail-panel-KPzbHiEW.js → note-detail-panel-BsHYUFgk.js} +3 -3
- package/dist/gateway/static/root/assets/note-image-lightbox-B-bEtjhj.js +1 -0
- package/dist/gateway/static/root/assets/{notes-api-HVxR5bRD.js → notes-api-BSmikUKI.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-yShJeR3i.js → notes-page-CA0NRL8O.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-api-CfKjRVnb.js → oauth-api-D2t9HXoC.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-provider-connect-D4uqONWr.js → oauth-provider-connect-DGGGGtcB.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-capture-button-B98nlKTc.js → page-context-capture-button-BH54VO0V.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-draft-HcuK45iu.js → page-context-draft-BS5y8Cx9.js} +1 -1
- package/dist/gateway/static/root/assets/page-header-store-BdZnUh-D.js +1 -0
- package/dist/gateway/static/root/assets/{personal-avatar-_d72UP_d.js → personal-avatar-D8DtpDTa.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-page-B19h_3WQ.js → personal-page-KJezmTKP.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-settings-panel-CfwtGyue.js → personal-settings-panel-9uDaNJy5.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-dependencies-card-D8bqsDk_.js → phone-dependencies-card-DLYrI0C4.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-model-picker-CL_Zn6Xd.js → phone-model-picker-BbA2iI-3.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-settings-page-C5Jia8eQ.js → phone-settings-page-Cg_BPss4.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-workspace-store-FBfrfkYq.js → phone-workspace-store-CVDk80Bf.js} +1 -1
- package/dist/gateway/static/root/assets/{plugin-details-dialog-gAq2KPzK.js → plugin-details-dialog-DgibLkc3.js} +1 -1
- package/dist/gateway/static/root/assets/{preference-select-fields-Ck8GAX_y.js → preference-select-fields-BVoN-lAv.js} +1 -1
- package/dist/gateway/static/root/assets/{product-automation-feedback-BJ9oTnNs.js → product-automation-feedback-DCo90zGh.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-Dw9hUdxP.js → product-open-page-OWl8IAoY.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-content-C0iPzmSm.js → product-preview-content-Cjas7UNe.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-modal-COFtHoh6.js → product-preview-modal-CPWRvBI9.js} +2 -2
- package/dist/gateway/static/root/assets/{project-detail-page-C5Amjah-.js → project-detail-page-B_HlZux_.js} +1 -1
- package/dist/gateway/static/root/assets/{project-understanding-DpL9ADQU.js → project-understanding-Ba02SFzB.js} +1 -1
- package/dist/gateway/static/root/assets/{projects-page-gGg9nM2t.js → projects-page-CdfKjp95.js} +1 -1
- package/dist/gateway/static/root/assets/{providers-api-D6JJRlJb.js → providers-api-rwQ4LWzr.js} +1 -1
- package/dist/gateway/static/root/assets/{recording-upload-DxX1xKyt.js → recording-upload-BSmvRrZQ.js} +1 -1
- package/dist/gateway/static/root/assets/{registry-api-BfXzBR1D.js → registry-api-Vy7LfH6E.js} +1 -1
- package/dist/gateway/static/root/assets/{remote-access-hub-BZA4StwC.js → remote-access-hub-UXrnpGev.js} +1 -1
- package/dist/gateway/static/root/assets/{resource-unavailable-X-SIrZYI.js → resource-unavailable-f9OzSi4W.js} +1 -1
- package/dist/gateway/static/root/assets/{route-preload-CWRb0UCt.js → route-preload-BtObM-co.js} +2 -2
- package/dist/gateway/static/root/assets/{runtime-tools-api-1DjsPyQ5.js → runtime-tools-api-Bt8t37z5.js} +1 -1
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-BnCtyORj.js → runtime-tools-settings-panel-DU4UXnBm.js} +1 -1
- package/dist/gateway/static/root/assets/{service-recommendation-list-ChSOfHHh.js → service-recommendation-list-CuYsRcBB.js} +1 -1
- package/dist/gateway/static/root/assets/{session-api-rvY5aWw8.js → session-api-DJI9eSgw.js} +1 -1
- package/dist/gateway/static/root/assets/session-manager-CtKgACGl.js +23 -0
- package/dist/gateway/static/root/assets/{sessions-page-DAS2IUGT.js → sessions-page-BAsKzRHt.js} +1 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-CjAFqg2U.js +1 -0
- package/dist/gateway/static/root/assets/{settings-advanced-section-ZKRIuk7h.js → settings-advanced-section-BxUuF_yi.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-mode-store-CtJ8pEfm.js → settings-mode-store-CaoRh2gt.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-header-DuNCn8i-.js → settings-page-header-CyUHrn7c.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-layout-DeNC8YHJ.js → settings-page-layout-DGVqXrlp.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-B3pUce-_.js → settings-page-qQ8-6dJ_.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-status-panel-Fc3vuz_h.js → setup-status-panel-BpaPb625.js} +1 -1
- package/dist/gateway/static/root/assets/{share-link-dialog-B3hwjVAx.js → share-link-dialog-CQJ6Ykm2.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-D_9oFzGS.js → share-preview-page-Cem96FbB.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-BoUpXmxq.js → shares-api-Dowes16l.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-settings-Drfuvepz.js → shares-settings-DZEkZDR0.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-api-By2HhJ9O.js → skill-api-D8ZwFEVe.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-list-api-TaUCzS8Y.js → skill-list-api-B4gp00-f.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-CN2fpS1n.js → skill-reload-api-ClmaaDXo.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-LzGLique.js → skills-page-CV0X9rvG.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-Cuyg8Ml3.js → system-settings-panel-D095uacX.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-CY2C4AM2.js +2 -0
- package/dist/gateway/static/root/assets/{task-result-evidence-DDubAU_5.js → task-result-evidence-LUrJlUhb.js} +1 -1
- package/dist/gateway/static/root/assets/{terminal-panel-store-BNs75Wdr.js → terminal-panel-store-BqEDB1Vl.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-DB1ZfBUm.js → theme-store-gAcojLgP.js} +1 -1
- package/dist/gateway/static/root/assets/tool-friendly-title-o6sxGVUu.js +1 -0
- package/dist/gateway/static/root/assets/{tracing-settings-page-TvtX4Goh.js → tracing-settings-page-B1ZRh-Is.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-COoVEdV9.js → tunnel-api-C9u9E3UQ.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-activity-store-Dr_MLgYe.js → understanding-activity-store-BTrzsR6_.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-refresh-store-DGmLGEqw.js → understanding-refresh-store-5Qava3jh.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-DP6eb6ed.js → usage-page-DFMLYKAc.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-itwjDYUb.js → use-autosave-3O-X7x15.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-hjIGlI_2.js → use-composer-attachments-BLc4dBfe.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-ClLa0g8D.js → use-file-preview-expanded-BaOmTXsT.js} +2 -2
- package/dist/gateway/static/root/assets/{use-personal-profile-vhWk6tTU.js → use-personal-profile-MusPgljM.js} +1 -1
- package/dist/gateway/static/root/assets/{use-workspace-tree-dfXXjA2-.js → use-workspace-tree-Ck_U2yTw.js} +1 -1
- package/dist/gateway/static/root/assets/{user-model-page-D8dswPWd.js → user-model-page-Den5Lg-k.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-BIfBySnN.js → voice-api-key-field-C5zJApoa.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-J4o59ICE.js → voice-config-api-DC1bYDt1.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-input-shortcut-events-B1mlpUdC.js → voice-input-shortcut-events-0SZjJdVV.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-transcribe-api-xxaSOOmq.js → voice-transcribe-api-CxVeANPX.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-DqwT1E5u.js → work-discovery-overlay-DAQ8McVe.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-page-BzYQmPLT.js → work-discovery-page-DUQysEyb.js} +1 -1
- package/dist/gateway/static/root/assets/{working-directory-picker-modal-D2Zf3GOG.js → working-directory-picker-modal-BO9qdJyZ.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-api-Bnx3eS2M.js → workspace-api-ZrN6yUER.js} +2 -2
- package/dist/gateway/static/root/assets/workspace-editor-agent-store-Bo5dwoWP.js +1 -0
- package/dist/gateway/static/root/assets/{workspace-file-preview-dialog-D13qHzVr.js → workspace-file-preview-dialog-Yj_kBWSb.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-open-location-menu-Cou-ig1H.js → workspace-open-location-menu-yxT7wajO.js} +1 -1
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-DQGPKxHA.js → xopc-cloud-account-card-IcH9KDzx.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/cli/commands/backup.js +1 -1
- 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/schema.d.ts +18 -0
- package/dist/src/gateway/global-defaults-admin.js +1 -1
- package/dist/src/gateway/service/config-coordinator.d.ts +6 -0
- 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 +102 -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 +20 -0
- package/dist/src/phone/contracts.js +6 -0
- package/dist/src/phone/execution-trace.d.ts +51 -0
- package/dist/src/phone/execution-trace.js +78 -0
- package/dist/src/phone/model-adapter.d.ts +9 -1
- package/dist/src/phone/model-adapter.js +132 -61
- 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 +146 -16
- 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 +22 -0
- package/dist/src/phone/ui-session.js +191 -0
- package/dist/src/process/phone-process.d.ts +1 -0
- package/dist/src/process/phone-process.js +11 -1
- package/package.json +2 -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,191 @@
|
|
|
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
|
+
/** One request in flight, bounded framing, no replay after transport or confirmation failure. */
|
|
13
|
+
var PhoneUiSession = class {
|
|
14
|
+
sequence = 0;
|
|
15
|
+
busy = false;
|
|
16
|
+
closed = false;
|
|
17
|
+
closing;
|
|
18
|
+
buffer = "";
|
|
19
|
+
iterator;
|
|
20
|
+
constructor(transport) {
|
|
21
|
+
this.transport = transport;
|
|
22
|
+
this.iterator = transport.readable[Symbol.asyncIterator]();
|
|
23
|
+
}
|
|
24
|
+
close() {
|
|
25
|
+
if (this.closing) return this.closing;
|
|
26
|
+
this.closed = true;
|
|
27
|
+
this.buffer = "";
|
|
28
|
+
this.closing = this.transport.close();
|
|
29
|
+
return this.closing;
|
|
30
|
+
}
|
|
31
|
+
async request(fields, signal) {
|
|
32
|
+
if (this.closed || this.busy) throw new PhoneError("PHONE_UI_UNAVAILABLE", "Phone observer is closed or busy", 409);
|
|
33
|
+
const combined = AbortSignal.any([signal, AbortSignal.timeout(1e4)]);
|
|
34
|
+
combined.throwIfAborted();
|
|
35
|
+
this.busy = true;
|
|
36
|
+
const id = ++this.sequence;
|
|
37
|
+
let reason = "";
|
|
38
|
+
let abort;
|
|
39
|
+
const cancelled = new Promise((_resolve, reject) => {
|
|
40
|
+
abort = () => {
|
|
41
|
+
this.close().catch(() => {});
|
|
42
|
+
reject(new PhoneError("PHONE_UI_UNAVAILABLE", "Phone observer stopped or timed out", 409));
|
|
43
|
+
};
|
|
44
|
+
combined.addEventListener("abort", abort, { once: true });
|
|
45
|
+
});
|
|
46
|
+
try {
|
|
47
|
+
return await Promise.race([cancelled, (async () => {
|
|
48
|
+
await this.transport.write(Buffer.from(`${JSON.stringify({
|
|
49
|
+
...fields,
|
|
50
|
+
id
|
|
51
|
+
})}\n`));
|
|
52
|
+
const decoder = new TextDecoder("utf-8", { fatal: true });
|
|
53
|
+
while (!this.buffer.includes("\n")) {
|
|
54
|
+
const next = await this.iterator.next();
|
|
55
|
+
if (next.done || this.closed) throw new Error("Observer disconnected");
|
|
56
|
+
this.buffer += decoder.decode(next.value, { stream: true });
|
|
57
|
+
if (Buffer.byteLength(this.buffer) > 2 * 1024 * 1024) throw new Error("Observer response exceeded limit");
|
|
58
|
+
}
|
|
59
|
+
const end = this.buffer.indexOf("\n");
|
|
60
|
+
const response = JSON.parse(this.buffer.slice(0, end));
|
|
61
|
+
this.buffer = this.buffer.slice(end + 1);
|
|
62
|
+
if (response.id !== id || response.ok !== true) {
|
|
63
|
+
if ([
|
|
64
|
+
"no-root",
|
|
65
|
+
"app",
|
|
66
|
+
"focus",
|
|
67
|
+
"target",
|
|
68
|
+
"value",
|
|
69
|
+
"write",
|
|
70
|
+
"identity",
|
|
71
|
+
"confirmation"
|
|
72
|
+
].includes(response.error)) reason = ` (${response.error})`;
|
|
73
|
+
throw new Error("Observer request unconfirmed");
|
|
74
|
+
}
|
|
75
|
+
return response;
|
|
76
|
+
})()]);
|
|
77
|
+
} catch {
|
|
78
|
+
await this.close().catch(() => {});
|
|
79
|
+
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);
|
|
80
|
+
} finally {
|
|
81
|
+
this.busy = false;
|
|
82
|
+
combined.removeEventListener("abort", abort);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async snapshot(signal) {
|
|
86
|
+
const response = await this.request({ op: "snapshot" }, signal);
|
|
87
|
+
if (typeof response.xml !== "string" || !response.xml.includes("</hierarchy>")) {
|
|
88
|
+
await this.close();
|
|
89
|
+
throw new PhoneError("PHONE_UI_UNAVAILABLE", "Incomplete phone observation", 409);
|
|
90
|
+
}
|
|
91
|
+
return response.xml;
|
|
92
|
+
}
|
|
93
|
+
async replace(app, target, text, signal) {
|
|
94
|
+
await measurePhonePhase("field_transaction", () => this.request({
|
|
95
|
+
op: "setText",
|
|
96
|
+
app,
|
|
97
|
+
resourceId: target.resourceId,
|
|
98
|
+
bounds: target.bounds.join(","),
|
|
99
|
+
before: target.text,
|
|
100
|
+
text
|
|
101
|
+
}, signal));
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
async function openLocalPhoneUi(adbPath, serial, signal) {
|
|
105
|
+
const binary = Buffer.from(PHONE_UI_DEX, "base64");
|
|
106
|
+
const hash = createHash("sha256").update(binary).digest("hex");
|
|
107
|
+
const remote = `/data/local/tmp/xopc-ui-${hash}.dex`;
|
|
108
|
+
const args = ["-s", serial];
|
|
109
|
+
const existing = await runAdb(adbPath, [
|
|
110
|
+
...args,
|
|
111
|
+
"shell",
|
|
112
|
+
"sha256sum",
|
|
113
|
+
remote
|
|
114
|
+
], signal).catch(() => Buffer.alloc(0));
|
|
115
|
+
signal.throwIfAborted();
|
|
116
|
+
if (existing.toString().trim().split(/\s+/)[0] !== hash) {
|
|
117
|
+
const work = await mkdtemp(join(tmpdir(), "xopc-ui-"));
|
|
118
|
+
const staging = `${remote}.${randomUUID()}.tmp`;
|
|
119
|
+
try {
|
|
120
|
+
await writeFile(join(work, "helper.dex"), binary, { mode: 384 });
|
|
121
|
+
await runAdb(adbPath, [
|
|
122
|
+
...args,
|
|
123
|
+
"push",
|
|
124
|
+
join(work, "helper.dex"),
|
|
125
|
+
staging
|
|
126
|
+
], signal);
|
|
127
|
+
await runAdb(adbPath, [
|
|
128
|
+
...args,
|
|
129
|
+
"shell",
|
|
130
|
+
"chmod",
|
|
131
|
+
"400",
|
|
132
|
+
staging
|
|
133
|
+
], signal);
|
|
134
|
+
await runAdb(adbPath, [
|
|
135
|
+
...args,
|
|
136
|
+
"shell",
|
|
137
|
+
"mv",
|
|
138
|
+
"-f",
|
|
139
|
+
staging,
|
|
140
|
+
remote
|
|
141
|
+
], signal);
|
|
142
|
+
if ((await runAdb(adbPath, [
|
|
143
|
+
...args,
|
|
144
|
+
"shell",
|
|
145
|
+
"sha256sum",
|
|
146
|
+
remote
|
|
147
|
+
], signal)).toString().trim().split(/\s+/)[0] !== hash) throw new PhoneError("PHONE_UI_UNAVAILABLE", "Observer verification failed");
|
|
148
|
+
} finally {
|
|
149
|
+
await rm(work, {
|
|
150
|
+
recursive: true,
|
|
151
|
+
force: true
|
|
152
|
+
});
|
|
153
|
+
await runAdb(adbPath, [
|
|
154
|
+
...args,
|
|
155
|
+
"shell",
|
|
156
|
+
"rm",
|
|
157
|
+
"-f",
|
|
158
|
+
staging
|
|
159
|
+
], void 0, 3e3).catch(() => {});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
signal.throwIfAborted();
|
|
163
|
+
const child = spawnPhoneInteractiveCommand(adbPath, [
|
|
164
|
+
...args,
|
|
165
|
+
"shell",
|
|
166
|
+
"-T",
|
|
167
|
+
"env",
|
|
168
|
+
`CLASSPATH=${remote}`,
|
|
169
|
+
"app_process",
|
|
170
|
+
"/",
|
|
171
|
+
"ai.xopc.phone.PhoneUiDump",
|
|
172
|
+
"--resident"
|
|
173
|
+
]);
|
|
174
|
+
child.on("error", () => {});
|
|
175
|
+
child.stdin.on("error", () => {});
|
|
176
|
+
return new PhoneUiSession({
|
|
177
|
+
readable: child.stdout,
|
|
178
|
+
write: (data) => new Promise((resolve, reject) => child.stdin.write(data, (error) => error ? reject(error) : resolve())),
|
|
179
|
+
close: async () => {
|
|
180
|
+
child.stdin.destroy();
|
|
181
|
+
child.stdout.destroy();
|
|
182
|
+
if (child.exitCode !== null || child.signalCode !== null) return;
|
|
183
|
+
await new Promise((resolve) => {
|
|
184
|
+
child.once("close", resolve);
|
|
185
|
+
child.kill();
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
//#endregion
|
|
191
|
+
export { PhoneUiSession, 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 };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xopcai/xopc",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.425",
|
|
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",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,n as t}from"./rolldown-runtime-aKtaBQYM.js";import{a as n,n as r,t as i}from"./vendor-react-BOUWij0V.js";import{u as a}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{n as o}from"./locale-store-TQcz_Vjt.js";import{t as s}from"./messages-DaLmc4W1.js";import{t as c}from"./chevron-right-BweFrslA.js";import{t as l}from"./circle-check-C23XjkUj.js";import{t as u}from"./clock-3-DnrAnuyZ.js";import{t as d}from"./download-Dk-ZjtO6.js";import{t as f}from"./external-link-DjqjBmc3.js";import{t as p}from"./laptop-CI3hBVrl.js";import{t as m}from"./panel-right-CFGrHTsD.js";import{t as h}from"./smartphone-DSSsQFqA.js";import{t as g}from"./x-B_N4OPjy.js";import{t as _}from"./cn-0WouolD0.js";import{t as v}from"./button-CnRSIP6m.js";import{t as y}from"./skeleton-BI5TyibZ.js";import{a as b,i as ee,o as x,r as S,s as C,t as w}from"./dist-DfWfZ9iu.js";import{i as T,o as E}from"./settings-shell-dialog-layer-BU3UuiJr.js";import{i as D}from"./vendor-swr-CdRzEUwF.js";import{n as O}from"./app-link-1j40sJ-z.js";import{t as k}from"./use-async-resource-BHFGZCY2.js";import{t as A}from"./copy-text-row-CYIv7RfP.js";import{a as j,n as M,r as N}from"./oauth-api-CfKjRVnb.js";import{n as P,r as F,t as I}from"./oauth-authorization-window-o6URRos4.js";import{_ as L,a as te,b as ne,d as re,f as R,g as ie,h as ae,i as z,l as B,m as oe,n as V,p as se,r as H,s as ce,t as U,u as W,v as le,y as ue}from"./tunnel-api-COoVEdV9.js";import{t as de}from"./mobile-pair-qr-CuIbmw5x.js";var G=r(),K=e(n(),1),q=i();function fe(){let e=s(o(e=>e.language)),t=e.endpointToolsSettings.deviceAccess.flow,n=e.tunnelSettings,{data:r,error:i,mutate:a}=D(`tunnel-status`,V,{refreshInterval:1500}),[c,l]=(0,K.useState)(!1),[u,d]=(0,K.useState)(!1),[p,m]=(0,K.useState)(!0),[h,g]=(0,K.useState)(`idle`),[_,b]=(0,K.useState)(null),[ee,x]=(0,K.useState)(``),[S,C]=(0,K.useState)(``),w=(0,K.useRef)(!0);(0,K.useEffect)(()=>(w.current=!0,()=>{w.current=!1}),[]),(0,K.useEffect)(()=>{r?.state===`connected`&&(b(null),x(``))},[r?.state]);let T=_?_===`registration-rejected`:r?.state===`error`&&R(Error(r.lastError??``)),E=_?_===`recovery-rejected`:r?.state===`error`&&re(Error(r.lastError??``)),k=async()=>{if(!r)return;if(r.consentRequired&&!c){d(!0);return}let e=T||!r.registrationSecret?.configured,t=e?F():null,n,i=!1;b(null),x(``);try{if(r.consentRequired&&await te(),e){g(`provisioning`),T&&await H({registrationSecret:null});let e=!1;try{await z()}catch(t){if(!W(t))throw t;e=!0}if(e){g(`authorizing`);let e=sessionStorage.getItem(`device-pairing-oauth`),r=e?JSON.parse(e):null;n=r&&r.expiresAt>Date.now()?r.sessionId:(await j(`xopc-tunnel`)).sessionId,sessionStorage.setItem(`device-pairing-oauth`,JSON.stringify({sessionId:n,expiresAt:r&&r.expiresAt>Date.now()?r.expiresAt:Date.now()+5*6e4}));let a=``,o=Date.now()+5*6e4,s=!1;for(;w.current&&Date.now()<o;){let e=await N(n);if(e.authUrl&&e.authUrl!==a&&(a=e.authUrl,await P(a,t)||C(a)),e.status===`completed`){s=!0,i=!0;break}if(e.status===`failed`||e.status===`cancelled`)throw Error(`Authorization cancelled`);await new Promise(e=>setTimeout(e,1e3))}if(!w.current)return;if(!s)throw Error(`Authorization expired`);await z()}await a()}if(!w.current)return;g(`starting`),await ce(E?{recoverActiveLease:!0}:void 0),p&&await H({autoStart:!0}),await a(),i=!0}catch(e){i=!0,w.current&&(b(B(e)===`tunnel_key_limit_reached`?`key-limit`:R(e)?`registration-rejected`:re(e)?`recovery-rejected`:`failed`),x(e instanceof Error?e.message:``))}finally{I(t),i&&(sessionStorage.removeItem(`device-pairing-oauth`),n&&M(n).catch(()=>{})),w.current&&(g(`idle`),C(``))}};if(!r&&!i)return(0,q.jsxs)(`div`,{className:`space-y-5`,children:[(0,q.jsx)(y,{className:`h-5 w-4/5`}),(0,q.jsx)(y,{className:`h-24 w-full`})]});let A=h===`provisioning`||h===`starting`||r?.state===`connecting`||r?.state===`reconnecting`,L=h===`idle`&&!A&&(_||i||r?.state===`error`),ne=ee||(i instanceof Error?i.message:``)||(r?.state===`error`?r.lastError:``);return(0,q.jsxs)(`div`,{className:`flex flex-col`,children:[(0,q.jsx)(`p`,{className:`text-sm leading-relaxed text-fg-muted`,children:A?t.preparingHint:h===`authorizing`?t.authorizing:t.enableHint}),S&&h===`authorizing`?(0,q.jsx)(`a`,{href:S,target:`_blank`,rel:`noopener noreferrer`,className:`mt-4 inline-flex min-h-11 items-center text-sm text-accent`,children:t.openAuthorization}):null,A?(0,q.jsxs)(`div`,{className:`mt-8 space-y-3`,"aria-label":t.preparing,children:[(0,q.jsx)(y,{className:`h-2 w-full`}),(0,q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t.preparing})]}):null,(u||r?.consentRequired)&&h===`idle`?(0,q.jsxs)(`div`,{className:`mt-6 space-y-4`,children:[(0,q.jsxs)(`details`,{open:u,className:`text-sm text-fg-muted`,children:[(0,q.jsx)(`summary`,{className:`cursor-pointer py-2`,children:t.details}),(0,q.jsx)(`p`,{className:`mt-2`,children:n.consentIntro}),(0,q.jsx)(`ul`,{className:`mt-3 list-disc space-y-2 pl-5`,children:[n.consentBullet1,n.consentBullet2,n.consentBullet3].map(e=>(0,q.jsx)(`li`,{children:e},e))})]}),(0,q.jsxs)(`label`,{className:`flex items-start gap-3 text-sm text-fg`,children:[(0,q.jsx)(`input`,{type:`checkbox`,checked:c,onChange:e=>l(e.target.checked),className:`mt-1 size-4 accent-accent`}),n.consentCheckbox]})]}):null,L&&_===`key-limit`?(0,q.jsxs)(`div`,{role:`alert`,className:`mt-4 rounded-lg border border-warning/30 bg-warning/5 p-4`,children:[(0,q.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:t.routeKeyLimitTitle}),(0,q.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:t.routeKeyLimitHint}),(0,q.jsxs)(v,{variant:`secondary`,className:`mt-3`,onClick:()=>void O(U),children:[t.manageTunnelKeys,(0,q.jsx)(f,{className:`size-3`})]})]}):L?(0,q.jsxs)(`div`,{role:`alert`,className:`mt-4 text-sm text-danger`,children:[(0,q.jsx)(`p`,{children:i&&!r?t.readinessFailed:T?t.routeAuthorizationRequired:E?t.routeRecoveryRequired:t.routeSetupFailed}),ne?(0,q.jsxs)(`details`,{className:`mt-2 text-xs text-fg-muted`,children:[(0,q.jsx)(`summary`,{className:`cursor-pointer py-2`,children:t.details}),(0,q.jsx)(`p`,{className:`break-words whitespace-pre-wrap`,children:ne})]}):null]}):null,(0,q.jsxs)(`label`,{className:`my-5 flex items-center gap-3 text-sm text-fg-muted`,children:[(0,q.jsx)(`input`,{type:`checkbox`,checked:p,disabled:h!==`idle`,onChange:e=>m(e.target.checked),className:`size-4 accent-accent`}),t.autoStart]}),i&&!r?(0,q.jsx)(v,{className:`w-full`,variant:`primary`,onClick:()=>void a().catch(()=>{}),children:t.retry}):(0,q.jsx)(v,{className:`w-full`,variant:`primary`,disabled:!r||h!==`idle`||A||u&&!c,onClick:()=>void k(),children:h===`authorizing`?t.authorizing:A?t.preparing:T?t.authorize:E?t.recoverRoute:L?t.retry:t.enable})]})}var J=t({DevicePairingWizard:()=>Y});function Y(e){let t=(0,G.c)(16),{open:n,onOpenChange:r,onPaired:i,targetKind:o}=e,s=a(),[c,l]=(0,K.useState)(o),u,d;t[0]===o?(u=t[1],d=t[2]):(u=()=>{l(o)},d=[o],t[0]=o,t[1]=u,t[2]=d),(0,K.useEffect)(u,d);let f;t[3]!==r||t[4]!==o?(f=e=>{e||l(o),r(e)},t[3]=r,t[4]=o,t[5]=f):f=t[5];let p=f,m;t[6]!==p||t[7]!==s||t[8]!==i||t[9]!==n||t[10]!==c?(m=n?c?(0,q.jsx)(me,{targetKind:c,onClose:()=>p(!1),onPaired:i}):(0,q.jsx)(Z,{onChoose:l,onChooseLocalBrowser:()=>{p(!1),s(`/settings/agent-browser?driver=extension`)},onClose:()=>p(!1)}):null,t[6]=p,t[7]=s,t[8]=i,t[9]=n,t[10]=c,t[11]=m):m=t[11];let h;return t[12]!==p||t[13]!==n||t[14]!==m?(h=(0,q.jsx)(w,{open:n,onOpenChange:p,children:m}),t[12]=p,t[13]=n,t[14]=m,t[15]=h):h=t[15],h}function X(e){let t=(0,G.c)(14),{icon:n,title:r,hint:i,onClick:a}=e,o;t[0]===n?o=t[1]:(o=(0,q.jsx)(`span`,{className:`flex size-10 shrink-0 items-center justify-center rounded-xl bg-accent-soft text-accent-fg`,children:(0,q.jsx)(n,{className:`size-5`,"aria-hidden":`true`})}),t[0]=n,t[1]=o);let s;t[2]===r?s=t[3]:(s=(0,q.jsx)(`span`,{className:`block text-sm font-semibold text-fg`,children:r}),t[2]=r,t[3]=s);let l;t[4]===i?l=t[5]:(l=(0,q.jsx)(`span`,{className:`mt-0.5 block text-xs leading-5 text-fg-muted`,children:i}),t[4]=i,t[5]=l);let u;t[6]!==s||t[7]!==l?(u=(0,q.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[s,l]}),t[6]=s,t[7]=l,t[8]=u):u=t[8];let d;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,q.jsx)(c,{className:`size-4 shrink-0 text-fg-disabled transition-transform group-hover:translate-x-0.5 group-hover:text-fg-muted`,"aria-hidden":`true`}),t[9]=d):d=t[9];let f;return t[10]!==a||t[11]!==o||t[12]!==u?(f=(0,q.jsxs)(`button`,{type:`button`,className:`group flex min-h-18 w-full cursor-pointer items-center gap-4 rounded-xl border border-edge bg-surface-panel px-4 py-3.5 text-left shadow-surface transition-[background-color,border-color,box-shadow,transform] hover:border-edge-strong hover:bg-surface-active hover:shadow-elevated active:translate-y-px active:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel motion-reduce:active:translate-y-0`,onClick:a,children:[o,u,d]}),t[10]=a,t[11]=o,t[12]=u,t[13]=f):f=t[13],f}function Z(e){let t=(0,G.c)(40),{onChoose:n,onChooseLocalBrowser:r,onClose:i}=e,a=o(pe),c;t[0]===a?c=t[1]:(c=s(a),t[0]=a,t[1]=c);let l=c.endpointToolsSettings.deviceAccess,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,q.jsx)(b,{className:_(`xopc-dialog-overlay fixed inset-0 bg-scrim backdrop-blur-[1px]`,E)}),t[2]=u):u=t[2];let d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=_(`xopc-dialog-content fixed left-1/2 top-1/2 flex h-[min(28rem,calc(100dvh-2rem))] w-[min(40rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay`,T),t[3]=d):d=t[3];let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,q.jsx)(`span`,{className:`text-lg font-semibold tracking-tight text-fg`,children:`xopc`}),t[4]=f):f=t[4];let v;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,q.jsx)(g,{className:`size-4`}),t[5]=v):v=t[5];let y;t[6]!==l.cancel||t[7]!==i?(y=(0,q.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between border-b border-edge-subtle px-6 py-3`,children:[f,(0,q.jsx)(`button`,{type:`button`,className:`flex size-10 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover`,"aria-label":l.cancel,onClick:i,children:v})]}),t[6]=l.cancel,t[7]=i,t[8]=y):y=t[8];let w;t[9]===l.chooseTitle?w=t[10]:(w=(0,q.jsx)(C,{className:`text-lg font-semibold tracking-tight text-fg sm:text-xl`,children:l.chooseTitle}),t[9]=l.chooseTitle,t[10]=w);let D;t[11]===l.chooseHint?D=t[12]:(D=(0,q.jsx)(ee,{className:`mt-1.5 text-sm leading-6 text-fg-muted`,children:l.chooseHint}),t[11]=l.chooseHint,t[12]=D);let O;t[13]!==l.localBrowserHint||t[14]!==l.localBrowserTitle||t[15]!==r?(O=(0,q.jsx)(X,{icon:p,title:l.localBrowserTitle,hint:l.localBrowserHint,onClick:r}),t[13]=l.localBrowserHint,t[14]=l.localBrowserTitle,t[15]=r,t[16]=O):O=t[16];let k;t[17]===n?k=t[18]:(k=()=>n(`mobile`),t[17]=n,t[18]=k);let A;t[19]!==l.mobileHint||t[20]!==l.mobileTitle||t[21]!==k?(A=(0,q.jsx)(X,{icon:h,title:l.mobileTitle,hint:l.mobileHint,onClick:k}),t[19]=l.mobileHint,t[20]=l.mobileTitle,t[21]=k,t[22]=A):A=t[22];let j;t[23]===n?j=t[24]:(j=()=>n(`browser`),t[23]=n,t[24]=j);let M;t[25]!==l.remoteBrowserHint||t[26]!==l.remoteBrowserTitle||t[27]!==j?(M=(0,q.jsx)(X,{icon:m,title:l.remoteBrowserTitle,hint:l.remoteBrowserHint,onClick:j}),t[25]=l.remoteBrowserHint,t[26]=l.remoteBrowserTitle,t[27]=j,t[28]=M):M=t[28];let N;t[29]!==A||t[30]!==M||t[31]!==O?(N=(0,q.jsxs)(`div`,{className:`mt-5 flex flex-col gap-2.5`,children:[O,A,M]}),t[29]=A,t[30]=M,t[31]=O,t[32]=N):N=t[32];let P;t[33]!==N||t[34]!==w||t[35]!==D?(P=(0,q.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-6 sm:px-8`,children:[w,D,N]}),t[33]=N,t[34]=w,t[35]=D,t[36]=P):P=t[36];let F;return t[37]!==P||t[38]!==y?(F=(0,q.jsxs)(x,{children:[u,(0,q.jsxs)(S,{className:d,children:[y,P]})]}),t[37]=P,t[38]=y,t[39]=F):F=t[39],F}function pe(e){return e.language}function me({targetKind:e,onClose:t,onPaired:n}){let r=o(e=>e.language),i=s(r),a=i.endpointToolsSettings.deviceAccess,p=a.flow,[m,h]=(0,K.useState)(!1),w=D(m?`device-pairing-readiness`:null,L,{refreshInterval:1500}),[j,M]=(0,K.useState)(),[N,P]=(0,K.useState)(null),[F,I]=(0,K.useState)(!1),[te,re]=(0,K.useState)(Date.now()),[R,z]=(0,K.useState)(null),B=(0,K.useRef)(!0),V=(0,K.useRef)(null),H=(0,K.useRef)(!1),ce=(0,K.useRef)(!1),U=D(j?[`device-pairing-setup`,j.id]:null,()=>le(j.id),{refreshInterval:1500}),W=U.data?.request,G=W?.status===`completed`,J=G&&W.connectedAt!==void 0,Y=D(J&&window.electronAPI?.system?`system-behavior`:null,()=>window.electronAPI.system.getBehavior()),X=j?.targetKind===`mobile`?j.universalLink:``,Z=k(()=>de(X),[X],{enabled:!!X,initial:null,errorData:null}),pe=r===`zh`?`https://xopc.ai/zh#download`:`https://xopc.ai/en#download`,me=r===`zh`?`https://xopcai.github.io/xopc/zh/browser-extension`:`https://xopcai.github.io/xopc/browser-extension`,he=k(()=>de(pe),[pe],{enabled:!m&&e===`mobile`,initial:null,errorData:null});(0,K.useEffect)(()=>{B.current=!0;let e=setInterval(()=>re(Date.now()),1e3);return()=>{B.current=!1,clearInterval(e),V.current&&se(V.current).catch(()=>{})}},[]);let ge=(0,K.useCallback)(async()=>{if(!H.current){H.current=!0,I(!0),P(null);try{V.current&&await se(V.current),V.current=null,M(void 0);let t=await oe(e);if(t.kind===`ready`){if(!B.current){await se(t.setup.id);return}V.current=t.setup.id,M(t.setup)}else await w.mutate()}catch{B.current&&P(`create`)}finally{H.current=!1,B.current&&I(!1)}}},[w,e]);(0,K.useEffect)(()=>{w.data?.ready&&!j&&N!==`create`&&!H.current&&ge()},[w.data,j,N,ge]),(0,K.useEffect)(()=>{J&&!ce.current&&(ce.current=!0,n?.())},[J,n]);let _e=async e=>{if(W){I(!0),P(null);try{await ae(W,e),await U.mutate()}catch{P(`decision`),await U.mutate()}finally{B.current&&I(!1)}}},ve=(0,K.useRef)(0);(0,K.useEffect)(()=>{U.data&&(ve.current=U.data.serverTime-Date.now())},[U.data]);let Q=te+ve.current,ye=j&&Q>=j.expiresAt&&!W,be=W&&[`expired`,`rejected`,`cancelled`].includes(W.status),xe=j?j.expiresAt-Q<6e4:!1,Se=j?xe?`${Math.max(0,Math.ceil((j.expiresAt-Q)/1e3))}s`:p.valid:``,$=e===`mobile`?{connect:a.mobileScan,connectHint:a.mobileScanHint,allowTitle:a.mobileAllowTitle,success:a.mobileSuccess,successHint:a.mobileSuccessHint}:{connect:a.browserConnect,connectHint:a.browserConnectHint,allowTitle:a.browserAllowTitle,success:a.browserSuccess,successHint:a.browserSuccessHint},Ce=e===`mobile`?a.mobilePrepareTitle:a.browserPrepareTitle,we=e===`mobile`?a.mobilePrepareHint:a.browserPrepareHint,Te=m?J?$.success:W?.status===`pending`?$.allowTitle:G||W?.status===`approved`?p.waiting:j?$.connect:p.title:Ce,Ee=N===`create`?p.createFailed:N===`decision`?p.decisionFailed:N===`background`?p.backgroundFailed:N===`download`?a.browserDownloadFailed:null,De=async()=>{I(!0),P(null);try{await ie()}catch{P(`download`)}finally{B.current&&I(!1)}};return(0,q.jsxs)(x,{children:[(0,q.jsx)(b,{className:_(`xopc-dialog-overlay fixed inset-0 bg-scrim backdrop-blur-[1px]`,E)}),(0,q.jsxs)(S,{className:_(`xopc-dialog-content fixed left-1/2 top-1/2 flex h-[min(600px,calc(100dvh-48px))] w-[min(560px,calc(100vw-32px))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay`,T),children:[(0,q.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between border-b border-edge-subtle px-6 py-3`,children:[(0,q.jsx)(`span`,{className:`text-lg font-semibold tracking-tight text-fg`,children:`xopc`}),(0,q.jsx)(`button`,{type:`button`,className:`flex size-10 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover`,"aria-label":p.cancel,onClick:t,children:(0,q.jsx)(g,{className:`size-4`})})]}),(0,q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto px-8 py-7`,children:[J?(0,q.jsx)(l,{className:`mb-5 size-7 text-success`}):null,(0,q.jsx)(C,{className:`text-xl font-semibold tracking-tight text-fg`,children:Te}),(0,q.jsx)(ee,{className:`mt-2 text-sm leading-relaxed text-fg-muted`,children:m?J?$.successHint:G?p.waitingForDevice:W?W.displayName:j?$.connectHint:p.intro:we}),Ee?(0,q.jsx)(`p`,{role:`alert`,className:`mt-4 text-sm text-danger`,children:Ee}):null,m&&w.error?(0,q.jsx)(`p`,{role:`alert`,className:`mt-4 text-sm text-danger`,children:p.readinessFailed}):null,m&&U.error?(0,q.jsx)(`p`,{role:`status`,className:`mt-4 text-sm text-warning`,children:p.statusUnavailable}):null,m?w.data?J?(0,q.jsxs)(q.Fragment,{children:[Y.data?(0,q.jsxs)(`label`,{className:`mt-8 flex items-center justify-between gap-4 border-y border-edge-subtle py-5 text-sm text-fg`,children:[a.background,(0,q.jsx)(`input`,{type:`checkbox`,role:`switch`,"aria-checked":Y.data.runInBackground??!1,disabled:!Y.data.backgroundSupported,checked:Y.data.runInBackground??!1,className:`size-5 accent-accent`,onChange:e=>{window.electronAPI.system.setBehavior({runInBackground:e.target.checked}).then(e=>Y.mutate(e.behavior)).catch(()=>P(`background`))}})]}):null,(0,q.jsx)(`p`,{className:`mt-4 text-xs text-fg-muted`,children:a.sleep})]}):be||ye?(0,q.jsxs)(`div`,{className:`mt-10 space-y-5`,children:[(0,q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:ye||W?.status===`expired`?p.expired:p.declined}),(0,q.jsx)(v,{variant:`primary`,onClick:()=>void ge(),disabled:F,children:p.refresh})]}):W?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:p.scope}),(0,q.jsxs)(`p`,{className:`mt-10 font-mono text-4xl tracking-[0.16em] text-fg`,"aria-live":`polite`,children:[W.confirmationCode.slice(0,3),` `,W.confirmationCode.slice(3)]}),(0,q.jsx)(`p`,{className:`mt-3 text-xs text-fg-muted`,children:p.compare}),(0,q.jsxs)(`details`,{className:`mt-6 text-xs text-fg-muted`,children:[(0,q.jsx)(`summary`,{className:`cursor-pointer py-2`,children:p.access}),(0,q.jsx)(`p`,{children:p.accessHint})]})]}):j?.targetKind===`mobile`?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`my-6 flex flex-col items-center`,children:[(0,q.jsx)(`div`,{className:`rounded-[1.75rem] border border-edge bg-surface-hover/55 p-2.5 shadow-surface`,children:(0,q.jsx)(`div`,{className:`rounded-[1.25rem] bg-white p-2 shadow-sm ring-1 ring-black/5`,children:Z.data?(0,q.jsx)(`img`,{src:Z.data,alt:a.qrAlt,width:240,height:240,className:`size-[240px] max-w-full rounded-xl bg-white`}):Z.error?null:(0,q.jsx)(y,{className:`size-[240px] rounded-xl`})})}),Z.error?null:(0,q.jsxs)(`p`,{className:_(`mt-4 inline-flex min-h-8 items-center gap-1.5 rounded-full px-3 text-xs font-medium`,xe?`bg-warning-soft text-warning`:`bg-surface-hover text-fg-muted`),"aria-live":`polite`,children:[(0,q.jsx)(u,{className:`size-3.5`,"aria-hidden":`true`}),Se]})]}),Z.error?(0,q.jsx)(`p`,{role:`status`,className:`text-center text-sm text-warning`,children:p.qrFailed}):null,Z.error?(0,q.jsx)(`div`,{className:`mt-5`,children:(0,q.jsx)(A,{text:j.universalLink,labels:{copy:a.copy,copied:a.copied,copyFailed:i.clipboard.copyFailed}})}):(0,q.jsxs)(`details`,{className:`group mx-auto mt-1 w-full max-w-sm rounded-xl border border-edge bg-surface-panel text-xs text-fg-muted`,children:[(0,q.jsxs)(`summary`,{className:`flex min-h-11 cursor-pointer list-none items-center justify-between gap-3 rounded-xl px-3.5 transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent [&::-webkit-details-marker]:hidden`,children:[(0,q.jsx)(`span`,{children:p.fallback}),(0,q.jsx)(c,{className:`size-3.5 shrink-0 transition-transform group-open:rotate-90`,"aria-hidden":`true`})]}),(0,q.jsx)(`div`,{className:`border-t border-edge-subtle p-3`,children:(0,q.jsx)(A,{text:j.universalLink,labels:{copy:a.copy,copied:a.copied,copyFailed:i.clipboard.copyFailed}})})]})]}):j?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`ol`,{className:`mt-7 space-y-2 text-sm leading-6 text-fg-muted`,children:[(0,q.jsxs)(`li`,{children:[(0,q.jsx)(`span`,{className:`mr-2 text-fg-subtle`,children:`1.`}),a.browserConnectStep1]}),(0,q.jsxs)(`li`,{children:[(0,q.jsx)(`span`,{className:`mr-2 text-fg-subtle`,children:`2.`}),a.browserConnectStep2]}),(0,q.jsxs)(`li`,{children:[(0,q.jsx)(`span`,{className:`mr-2 text-fg-subtle`,children:`3.`}),a.browserConnectStep3]})]}),(0,q.jsx)(`div`,{className:`mt-6`,children:(0,q.jsx)(A,{text:j.browserInvitation,labels:{copy:a.copy,copied:a.copied,copyFailed:i.clipboard.copyFailed}})}),(0,q.jsx)(`p`,{className:`mt-3 text-center text-xs text-fg-muted`,children:j.expiresAt-Q<6e4?`${Math.max(0,Math.ceil((j.expiresAt-Q)/1e3))}s`:p.valid})]}):w.data.ready?(0,q.jsx)(`div`,{className:`mt-8`,children:(0,q.jsx)(y,{className:`mx-auto size-[216px]`})}):(0,q.jsxs)(`div`,{className:`mt-6 flex flex-1 flex-col`,children:[R===`tailscale`?(0,q.jsx)(ne,{embedded:!0}):R===`https`?(0,q.jsx)(ue,{}):R===`choices`?(0,q.jsxs)(`div`,{className:`space-y-3`,children:[(0,q.jsx)(v,{variant:`secondary`,className:`w-full`,onClick:()=>z(`tailscale`),children:a.useTailscale}),(0,q.jsx)(v,{variant:`secondary`,className:`w-full`,onClick:()=>z(`https`),children:a.useOwnHttps})]}):(0,q.jsx)(fe,{}),(0,q.jsx)(v,{variant:`ghost`,className:`mt-3 w-full`,onClick:()=>z(R?null:`choices`),children:R?p.back:p.existing})]}):(0,q.jsxs)(`div`,{className:`mt-8 space-y-4`,children:[(0,q.jsx)(y,{className:`h-5 w-3/4`}),(0,q.jsx)(y,{className:`h-40 w-full`})]}):e===`mobile`?(0,q.jsxs)(`div`,{className:`mt-7 flex flex-col items-center`,children:[he.data?(0,q.jsx)(`img`,{src:he.data,alt:a.mobileDownloadQrAlt,width:144,height:144,className:`size-36 rounded-lg bg-white`}):(0,q.jsx)(y,{className:`size-36`}),(0,q.jsxs)(v,{variant:`secondary`,className:`mt-5 w-full`,onClick:()=>void O(pe),children:[(0,q.jsx)(f,{className:`size-4`}),a.mobileDownload]}),(0,q.jsx)(`p`,{className:`mt-3 text-center text-xs leading-5 text-fg-muted`,children:a.mobileDownloadHint})]}):(0,q.jsxs)(`div`,{className:`mt-7`,children:[(0,q.jsxs)(v,{variant:`secondary`,className:`w-full`,disabled:F,onClick:()=>void De(),children:[(0,q.jsx)(d,{className:`size-4`}),a.browserDownload]}),(0,q.jsxs)(`ol`,{className:`mt-5 space-y-3 text-sm leading-6 text-fg-muted`,children:[(0,q.jsxs)(`li`,{children:[(0,q.jsx)(`span`,{className:`mr-2 text-fg-subtle`,children:`1.`}),a.browserInstallStep1]}),(0,q.jsxs)(`li`,{children:[(0,q.jsx)(`span`,{className:`mr-2 text-fg-subtle`,children:`2.`}),a.browserInstallStep2]}),(0,q.jsxs)(`li`,{children:[(0,q.jsx)(`span`,{className:`mr-2 text-fg-subtle`,children:`3.`}),a.browserInstallStep3]})]}),(0,q.jsxs)(`button`,{type:`button`,className:`mt-5 inline-flex items-center gap-1 text-xs text-accent hover:underline`,onClick:()=>void O(me),children:[a.browserInstallHelp,(0,q.jsx)(f,{className:`size-3`})]})]})]}),!m||w.error||J||W?.status===`pending`||N===`create`||N===`decision`?(0,q.jsx)(`footer`,{className:`shrink-0 px-8 pb-6`,children:m?J?(0,q.jsx)(v,{className:`w-full`,variant:`primary`,onClick:t,children:p.done}):W?.status===`pending`?(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,q.jsx)(v,{className:`w-full`,variant:`primary`,disabled:F,onClick:()=>void _e(`approve`),children:p.allow}),(0,q.jsx)(v,{className:`w-full`,variant:`ghost`,disabled:F,onClick:()=>void _e(`reject`),children:p.cancel})]}):w.error?(0,q.jsx)(v,{className:`w-full`,variant:`primary`,onClick:()=>void w.mutate(),children:p.retry}):(0,q.jsx)(v,{className:`w-full`,variant:`primary`,disabled:F,onClick:()=>void ge(),children:p.retry}):(0,q.jsx)(v,{className:`w-full`,variant:`primary`,onClick:()=>{P(null),h(!0)},children:e===`mobile`?a.mobileReady:a.browserReady})}):null]})]})}export{J as n,Y as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{p as e}from"./locale-store-TQcz_Vjt.js";var t=e(()=>({connectionState:`idle`,error:null}));function n(e){t.setState(e)}export{t as n,n as t};
|