@xopcai/xopc 0.0.435 → 0.0.437

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/xopc.extension.json +1 -1
  3. package/dist/gateway/static/root/assets/{activity-store-Cwn_CNwl.js → activity-store-CXhhy7_9.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-Cd23LnJJ.js → agent-avatar-dicebear-_h4GxzUK.js} +1 -1
  5. package/dist/gateway/static/root/assets/{agent-avatar-display-ByzM7u9S.js → agent-avatar-display-B_QEDfMT.js} +2 -2
  6. package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-B0i37diS.js → agent-defaults-settings-panel-DWIluCZB.js} +1 -1
  7. package/dist/gateway/static/root/assets/{agent-plugin-dialog-XN-tZ-Ox.js → agent-plugin-dialog-lCWIS06R.js} +1 -1
  8. package/dist/gateway/static/root/assets/{agents-ZDA1OaLv.js → agents-C-tIn72l.js} +3 -3
  9. package/dist/gateway/static/root/assets/{agents-admin-api-B5lKH_ps.js → agents-admin-api-DIStX2e1.js} +1 -1
  10. package/dist/gateway/static/root/assets/{api-B9fZL-V8.js → api-C4xrqOKi.js} +1 -1
  11. package/dist/gateway/static/root/assets/{api-Djju8qIR.js → api-bT-kA268.js} +1 -1
  12. package/dist/gateway/static/root/assets/{app-management-settings-panel-IlyzDPJu.js → app-management-settings-panel-Dk75Bmi2.js} +1 -1
  13. package/dist/gateway/static/root/assets/{appearance-settings-BxdFGob3.js → appearance-settings-DTj1XI4v.js} +1 -1
  14. package/dist/gateway/static/root/assets/{apps-page-CxEKiOTA.js → apps-page-7iAULaEl.js} +1 -1
  15. package/dist/gateway/static/root/assets/{archive-plugin-4gEvotPr.js → archive-plugin-BADrW4yR.js} +1 -1
  16. package/dist/gateway/static/root/assets/{automation-api-4fVKv9PJ.js → automation-api-CRz5EE_c.js} +1 -1
  17. package/dist/gateway/static/root/assets/{automation-result-state-m7PeK2kl.js → automation-result-state-D0EHDk4V.js} +1 -1
  18. package/dist/gateway/static/root/assets/{automation-run-list-CJOdy_R2.js → automation-run-list-CnaV2j9R.js} +1 -1
  19. package/dist/gateway/static/root/assets/automation-task-card-DD4yjrI6.js +3 -0
  20. package/dist/gateway/static/root/assets/{automations-page-BjbM15eY.js → automations-page-DDNx4Gn3.js} +1 -1
  21. package/dist/gateway/static/root/assets/{automations-workspace-CqurzLYX.js → automations-workspace-CtidgXTX.js} +2 -2
  22. package/dist/gateway/static/root/assets/{binary-plugins-69WyJLNW.js → binary-plugins-hpeH8g5V.js} +1 -1
  23. package/dist/gateway/static/root/assets/{block-editor-DUONDIZR.js → block-editor-P_RGb2rE.js} +1 -1
  24. package/dist/gateway/static/root/assets/{browser-automation-inputs-DL4YPCuN.js → browser-automation-inputs-C3gQlgox.js} +1 -1
  25. package/dist/gateway/static/root/assets/{browser-automations-page-1Aq6XmRs.js → browser-automations-page-CsdyL6q5.js} +1 -1
  26. package/dist/gateway/static/root/assets/{browser-control-api-yjru8E7R.js → browser-control-api-Btwz8koK.js} +1 -1
  27. package/dist/gateway/static/root/assets/{browser-settings-page-CvwpT8Um.js → browser-settings-page-B-ks3b8r.js} +1 -1
  28. package/dist/gateway/static/root/assets/{capabilities-C7lnwKKm.js → capabilities-C4F2D1gH.js} +1 -1
  29. package/dist/gateway/static/root/assets/{capabilities-DaeQXJT4.js → capabilities-f0YyWX04.js} +1 -1
  30. package/dist/gateway/static/root/assets/{capabilities-page-B5avAOUM.js → capabilities-page-CJm5gNu8.js} +2 -2
  31. package/dist/gateway/static/root/assets/{capabilities-settings-panel-_9yCS78i.js → capabilities-settings-panel-BMg8DBa0.js} +1 -1
  32. package/dist/gateway/static/root/assets/{channels-CoQb4HOF.js → channels-DYgvP8sO.js} +1 -1
  33. package/dist/gateway/static/root/assets/{chat-agents-api-BUi_7GRo.js → chat-agents-api-BrsUEl3u.js} +1 -1
  34. package/dist/gateway/static/root/assets/{chat-chart-block-CcVcKsDZ.js → chat-chart-block-Cq3aoRzV.js} +1 -1
  35. package/dist/gateway/static/root/assets/{chat-page--wcFhTjW.js → chat-page-dh7ImvX8.js} +9 -9
  36. package/dist/gateway/static/root/assets/{chat-terminal-dock-BMXJpPuH.js → chat-terminal-dock-2eGZ5qZ7.js} +1 -1
  37. package/dist/gateway/static/root/assets/{command-palette-api-luUjQPsh.js → command-palette-api-BEqdX7Q-.js} +1 -1
  38. package/dist/gateway/static/root/assets/{composer-payload-handoff-B5XNxNCb.js → composer-payload-handoff-BBm3ypBb.js} +1 -1
  39. package/dist/gateway/static/root/assets/{computer-settings-page-CWtdyEJH.js → computer-settings-page-DUhsxs4l.js} +1 -1
  40. package/dist/gateway/static/root/assets/{connected-providers-grid-2idMtk65.js → connected-providers-grid-BsCLGLnw.js} +1 -1
  41. package/dist/gateway/static/root/assets/{connection-usage-guide-Ddh0bfkj.js → connection-usage-guide-BgvvHMc4.js} +1 -1
  42. package/dist/gateway/static/root/assets/{connector-service-page-C3msXaBk.js → connector-service-page-C3SmPK1c.js} +1 -1
  43. package/dist/gateway/static/root/assets/{connectors-api-NcWECWKg.js → connectors-api-Now9xXuA.js} +1 -1
  44. package/dist/gateway/static/root/assets/{connectors-page-Crb6DILX.js → connectors-page-CTMeC7Pt.js} +1 -1
  45. package/dist/gateway/static/root/assets/{date-picker-Cfjq1hD_.js → date-picker-CBoc2ETg.js} +1 -1
  46. package/dist/gateway/static/root/assets/{desktop-pet-ChFn9v-3.js → desktop-pet-DS2dJydK.js} +1 -1
  47. package/dist/gateway/static/root/assets/{desktop-pet-settings-DvnVIv25.js → desktop-pet-settings-CzGc9byI.js} +1 -1
  48. package/dist/gateway/static/root/assets/{dev-view-store-DQJ61P5L.js → dev-view-store-BXMp1Npf.js} +1 -1
  49. package/dist/gateway/static/root/assets/{device-pairing-wizard-KxaIL-OX.js → device-pairing-wizard--SCayxiS.js} +1 -1
  50. package/dist/gateway/static/root/assets/{directory-picker-path-field-Drv864uE.js → directory-picker-path-field-P_-tLtwi.js} +1 -1
  51. package/dist/gateway/static/root/assets/{discussion-annotation-sync-DfBRkWtw.js → discussion-annotation-sync-D_NJLur2.js} +1 -1
  52. package/dist/gateway/static/root/assets/{extension-debug-page-DAlBIt_R.js → extension-debug-page-CE9KJpjL.js} +1 -1
  53. package/dist/gateway/static/root/assets/{extension-iframe-host-Bds-5kY_.js → extension-iframe-host-ClbrQvGF.js} +1 -1
  54. package/dist/gateway/static/root/assets/{extension-marketplace-api-CZg8nBwW.js → extension-marketplace-api-BNNQYLeu.js} +1 -1
  55. package/dist/gateway/static/root/assets/{extension-page-ZTw-oucT.js → extension-page-C6qZ9pGs.js} +1 -1
  56. package/dist/gateway/static/root/assets/{extension-provider-NKWfjpdP.js → extension-provider-KmpUveDY.js} +1 -1
  57. package/dist/gateway/static/root/assets/{extension-settings-page-CT7PPt_q.js → extension-settings-page-DWKB4ETv.js} +1 -1
  58. package/dist/gateway/static/root/assets/{file-preview-surface-BcLeaSNe.js → file-preview-surface-CEDfehx5.js} +1 -1
  59. package/dist/gateway/static/root/assets/{gateway-config-swr-Cq-ByXL4.js → gateway-config-swr-CtEdaxOS.js} +1 -1
  60. package/dist/gateway/static/root/assets/{gateway-realtime-DwMd2PCt.js → gateway-realtime-SunJUMP3.js} +1 -1
  61. package/dist/gateway/static/root/assets/gateway-realtime-store-BywiC4CK.js +1 -0
  62. package/dist/gateway/static/root/assets/{gateway-restart-DdiVzbkL.js → gateway-restart-srJ9TMC5.js} +1 -1
  63. package/dist/gateway/static/root/assets/{gateway-settings-1QUdNwrZ.js → gateway-settings-DWVxjM9y.js} +1 -1
  64. package/dist/gateway/static/root/assets/{gateway-startup-retry-PMJi5mX4.js → gateway-startup-retry-xpHdw5uq.js} +1 -1
  65. package/dist/gateway/static/root/assets/{global-defaults-api-DgzZh3wX.js → global-defaults-api-C-ogBDn1.js} +1 -1
  66. package/dist/gateway/static/root/assets/{home-page-Chn7YTiD.js → home-page-2Uj--v_o.js} +2 -2
  67. package/dist/gateway/static/root/assets/{image-generation-api-CjVpsckq.js → image-generation-api-DFGE3Ait.js} +1 -1
  68. package/dist/gateway/static/root/assets/{imports-page-CJCvZFaQ.js → imports-page-BkslHrr5.js} +1 -1
  69. package/dist/gateway/static/root/assets/{index-8xLWo0Tt.js → index-BxHzmTJV.js} +5 -5
  70. package/dist/gateway/static/root/assets/index-CIYNPxDl.css +1 -0
  71. package/dist/gateway/static/root/assets/{install-connector-dialog-Bo06Ry3H.js → install-connector-dialog-Fctw32Lx.js} +1 -1
  72. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-BylFJeGu.js → keyboard-shortcuts-settings-DFBpeaA_.js} +1 -1
  73. package/dist/gateway/static/root/assets/{local-app-workbench-page-B3MSSFsr.js → local-app-workbench-page-hJzkUVoK.js} +1 -1
  74. package/dist/gateway/static/root/assets/{local-apps-page-BeV86rMJ.js → local-apps-page-Bj-nywIv.js} +1 -1
  75. package/dist/gateway/static/root/assets/{local-session-drafts-jgw8UGsO.js → local-session-drafts-hodTdtvj.js} +1 -1
  76. package/dist/gateway/static/root/assets/{locale-store-CAZaC05J.js → locale-store-LhhHA2sK.js} +1 -1
  77. package/dist/gateway/static/root/assets/{logs-page-BMmSsUP5.js → logs-page-CcM2foZi.js} +1 -1
  78. package/dist/gateway/static/root/assets/{management-settings-Bu7T8ewk.js → management-settings-gwDIT7mY.js} +1 -1
  79. package/dist/gateway/static/root/assets/{markdown-view-BatP4qeK.js → markdown-view-usF9EoMp.js} +1 -1
  80. package/dist/gateway/static/root/assets/{mcp-conversation-setup-page-rROtr0UN.js → mcp-conversation-setup-page-CfHcS8aO.js} +1 -1
  81. package/dist/gateway/static/root/assets/{media-plugins-88OV72YE.js → media-plugins-Kpj3pQ3i.js} +1 -1
  82. package/dist/gateway/static/root/assets/messages-C3xqMM9W.js +3 -0
  83. package/dist/gateway/static/root/assets/{model-selector-raBRBkN_.js → model-selector-VVkCmNdS.js} +1 -1
  84. package/dist/gateway/static/root/assets/{models-hub-cache-CzC9y3D0.js → models-hub-cache-BfrcizHv.js} +1 -1
  85. package/dist/gateway/static/root/assets/{note-detail-panel-BvA8Vkbm.js → note-detail-panel-vvlPKLHz.js} +3 -3
  86. package/dist/gateway/static/root/assets/note-image-lightbox-BDZGHYaZ.js +1 -0
  87. package/dist/gateway/static/root/assets/{notes-api-zXpV6UXu.js → notes-api-DflS6I2c.js} +1 -1
  88. package/dist/gateway/static/root/assets/{notes-page-CjYH9Kle.js → notes-page-DKPHaszO.js} +1 -1
  89. package/dist/gateway/static/root/assets/{oauth-api-DmxSaxM1.js → oauth-api-CZiot_FY.js} +1 -1
  90. package/dist/gateway/static/root/assets/{oauth-provider-connect-D4Gfs-Ba.js → oauth-provider-connect-BjLEJ4az.js} +1 -1
  91. package/dist/gateway/static/root/assets/{page-context-capture-button-Mig3d0UX.js → page-context-capture-button-C3okR3ap.js} +1 -1
  92. package/dist/gateway/static/root/assets/{page-context-draft-C4IIZaKd.js → page-context-draft-DRE6i2wO.js} +1 -1
  93. package/dist/gateway/static/root/assets/page-header-store-BVj8nDdi.js +1 -0
  94. package/dist/gateway/static/root/assets/{personal-avatar-DLa-CpaK.js → personal-avatar-TZzkeDZK.js} +1 -1
  95. package/dist/gateway/static/root/assets/{personal-page-BhuT79Wd.js → personal-page-Cz-KnXHT.js} +1 -1
  96. package/dist/gateway/static/root/assets/{personal-settings-panel-XSUkgcr2.js → personal-settings-panel-BilBWHZ1.js} +1 -1
  97. package/dist/gateway/static/root/assets/{phone-dependencies-card-DYwnuVh3.js → phone-dependencies-card-B_l_JCRy.js} +1 -1
  98. package/dist/gateway/static/root/assets/{phone-model-connection-2F32QTHA.js → phone-model-connection-DmYRqxCF.js} +1 -1
  99. package/dist/gateway/static/root/assets/{phone-model-picker-DCVzIr0s.js → phone-model-picker-wK2tRuj0.js} +1 -1
  100. package/dist/gateway/static/root/assets/{phone-settings-page-DJttE4id.js → phone-settings-page-DWUZuu3k.js} +1 -1
  101. package/dist/gateway/static/root/assets/{phone-workspace-store-Dxp-KhFP.js → phone-workspace-store-CpH233TG.js} +1 -1
  102. package/dist/gateway/static/root/assets/{plugin-details-dialog-tyjAjFjA.js → plugin-details-dialog-DIQH12Ki.js} +1 -1
  103. package/dist/gateway/static/root/assets/{preference-select-fields-BVP3MhGK.js → preference-select-fields-DPXt3YyQ.js} +1 -1
  104. package/dist/gateway/static/root/assets/{product-automation-feedback-DbJvv92z.js → product-automation-feedback-BVkkAJkY.js} +1 -1
  105. package/dist/gateway/static/root/assets/{product-open-page-RImqlhCD.js → product-open-page-D-fwzOTB.js} +1 -1
  106. package/dist/gateway/static/root/assets/{product-preview-content-DxSqrKsg.js → product-preview-content-DLnOxTnn.js} +1 -1
  107. package/dist/gateway/static/root/assets/{product-preview-modal-Cw8Q8Uom.js → product-preview-modal-AeEtUDZQ.js} +2 -2
  108. package/dist/gateway/static/root/assets/{project-detail-page-CuugOYfe.js → project-detail-page-B7L3Kvhc.js} +1 -1
  109. package/dist/gateway/static/root/assets/{project-understanding-BMKcoUW5.js → project-understanding-tqZ0etEw.js} +1 -1
  110. package/dist/gateway/static/root/assets/{projects-page-CFsABLvs.js → projects-page-D65pw44g.js} +1 -1
  111. package/dist/gateway/static/root/assets/{providers-api-CAeXbJNF.js → providers-api-DzeStdCu.js} +1 -1
  112. package/dist/gateway/static/root/assets/{recording-upload-CfpllTe5.js → recording-upload-Id3p5Vyv.js} +1 -1
  113. package/dist/gateway/static/root/assets/{registry-api-fLOqFyrz.js → registry-api-B3YqZBhQ.js} +1 -1
  114. package/dist/gateway/static/root/assets/{remote-access-hub-BvKOxy0L.js → remote-access-hub-DxAInmWy.js} +1 -1
  115. package/dist/gateway/static/root/assets/{resource-unavailable-D15jzjV_.js → resource-unavailable-DH-GGLSM.js} +1 -1
  116. package/dist/gateway/static/root/assets/{route-preload-BQapekpy.js → route-preload-C22MIvup.js} +2 -2
  117. package/dist/gateway/static/root/assets/{runtime-tools-api-D0Nrvuqv.js → runtime-tools-api-8mXDTzc2.js} +1 -1
  118. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-CA27XgL2.js → runtime-tools-settings-panel-S2HxRVlT.js} +1 -1
  119. package/dist/gateway/static/root/assets/{service-recommendation-list-B0RoYLVT.js → service-recommendation-list-DFqBz8S6.js} +1 -1
  120. package/dist/gateway/static/root/assets/{session-api-CHRP5Lwf.js → session-api-DZ2Ov33K.js} +1 -1
  121. package/dist/gateway/static/root/assets/{session-manager-DRRWwKE4.js → session-manager-DSaoWM1F.js} +1 -1
  122. package/dist/gateway/static/root/assets/{sessions-page-uJHS3-6F.js → sessions-page-BpUbNplq.js} +1 -1
  123. package/dist/gateway/static/root/assets/settings-advanced-gate-CGgt1myW.js +1 -0
  124. package/dist/gateway/static/root/assets/{settings-advanced-section-D-llwfSj.js → settings-advanced-section-TJ8MAroB.js} +1 -1
  125. package/dist/gateway/static/root/assets/{settings-mode-store-BspMKc9N.js → settings-mode-store-xhm6JIs-.js} +1 -1
  126. package/dist/gateway/static/root/assets/{settings-page-CedwaHM0.js → settings-page-B_XKKvWr.js} +1 -1
  127. package/dist/gateway/static/root/assets/{settings-page-header-LuOJvqNa.js → settings-page-header-BEDxq_lT.js} +1 -1
  128. package/dist/gateway/static/root/assets/{settings-page-layout-CduQ8w4a.js → settings-page-layout-BftgkTYo.js} +1 -1
  129. package/dist/gateway/static/root/assets/{setup-interaction-page-ujpPGl84.js → setup-interaction-page-BtihoIoz.js} +1 -1
  130. package/dist/gateway/static/root/assets/{setup-status-panel-BN2aCJUN.js → setup-status-panel-DehYof2V.js} +1 -1
  131. package/dist/gateway/static/root/assets/{share-link-dialog-CTATUaa4.js → share-link-dialog-C-mhzvLF.js} +1 -1
  132. package/dist/gateway/static/root/assets/{share-preview-page-Dq0J3VgS.js → share-preview-page-Cnxfv66F.js} +1 -1
  133. package/dist/gateway/static/root/assets/{shares-api-zegE8pSE.js → shares-api-D2HTaQZH.js} +1 -1
  134. package/dist/gateway/static/root/assets/{shares-settings-DXpvsRXq.js → shares-settings-BLcnCGon.js} +1 -1
  135. package/dist/gateway/static/root/assets/{skill-api-DCL1EN7f.js → skill-api-DOISy5q8.js} +1 -1
  136. package/dist/gateway/static/root/assets/{skill-list-api-Bv0mmHbu.js → skill-list-api-LoIlcCDf.js} +1 -1
  137. package/dist/gateway/static/root/assets/{skill-reload-api-DPZbadiO.js → skill-reload-api-qSwB_mAH.js} +1 -1
  138. package/dist/gateway/static/root/assets/{skills-page-DMC7Gaku.js → skills-page-CJXLVK0U.js} +1 -1
  139. package/dist/gateway/static/root/assets/{system-settings-panel-BYFUhlqG.js → system-settings-panel-BT6_yFco.js} +1 -1
  140. package/dist/gateway/static/root/assets/{task-detail-page-_Og3plZL.js → task-detail-page-1AFyRTia.js} +1 -1
  141. package/dist/gateway/static/root/assets/{task-result-evidence-Bxm8-H0B.js → task-result-evidence-CkwEM0In.js} +1 -1
  142. package/dist/gateway/static/root/assets/{terminal-panel-store-Djf9l2qZ.js → terminal-panel-store-BP3dN3md.js} +1 -1
  143. package/dist/gateway/static/root/assets/{theme-store-8GFVtotZ.js → theme-store-BZ8YC33M.js} +1 -1
  144. package/dist/gateway/static/root/assets/{tracing-settings-page-oWW3SBZ4.js → tracing-settings-page-9YvEnES_.js} +1 -1
  145. package/dist/gateway/static/root/assets/{tunnel-api-D-mEsSGF.js → tunnel-api-CnPOg1pg.js} +1 -1
  146. package/dist/gateway/static/root/assets/{understanding-activity-store-CvDjsd0I.js → understanding-activity-store-3sOhoxX4.js} +1 -1
  147. package/dist/gateway/static/root/assets/{understanding-refresh-store-DzOZJm7A.js → understanding-refresh-store-BBXlbRLa.js} +1 -1
  148. package/dist/gateway/static/root/assets/{usage-page-z-o6Uuev.js → usage-page-6LW4yLy1.js} +1 -1
  149. package/dist/gateway/static/root/assets/{use-autosave-BVYS8UoK.js → use-autosave-CDy9yziL.js} +1 -1
  150. package/dist/gateway/static/root/assets/{use-composer-attachments-lecOV2q5.js → use-composer-attachments-C4eSyX-C.js} +1 -1
  151. package/dist/gateway/static/root/assets/{use-file-preview-expanded-nd_CuFsd.js → use-file-preview-expanded-SFqd8k7K.js} +2 -2
  152. package/dist/gateway/static/root/assets/{use-personal-profile-CQi2ZCxV.js → use-personal-profile-sQzaa6Dy.js} +1 -1
  153. package/dist/gateway/static/root/assets/{use-workspace-tree-BiaddkzX.js → use-workspace-tree-DKPvcyw1.js} +1 -1
  154. package/dist/gateway/static/root/assets/{user-model-page-Bks1n0Nj.js → user-model-page-DYVp7nA6.js} +1 -1
  155. package/dist/gateway/static/root/assets/{voice-api-key-field-BbW8NFeZ.js → voice-api-key-field-BKXWXCit.js} +1 -1
  156. package/dist/gateway/static/root/assets/{voice-config-api-jSMzZWWy.js → voice-config-api-DNxzs-eF.js} +1 -1
  157. package/dist/gateway/static/root/assets/{voice-input-shortcut-events-_SgYmx7X.js → voice-input-shortcut-events-3kcfHPrY.js} +1 -1
  158. package/dist/gateway/static/root/assets/{voice-transcribe-api-BJCfiRFU.js → voice-transcribe-api-CVVa_x99.js} +1 -1
  159. package/dist/gateway/static/root/assets/{work-discovery-overlay-DSTSNyU7.js → work-discovery-overlay-B4F3MACu.js} +1 -1
  160. package/dist/gateway/static/root/assets/{work-discovery-page-Dd_QJJvb.js → work-discovery-page-BuKTCGSR.js} +1 -1
  161. package/dist/gateway/static/root/assets/{working-directory-picker-modal-q39BUcJ6.js → working-directory-picker-modal-BiDK93J_.js} +1 -1
  162. package/dist/gateway/static/root/assets/{workspace-api-Di2OmCvz.js → workspace-api-S2aJOX7w.js} +2 -2
  163. package/dist/gateway/static/root/assets/workspace-editor-agent-store-oZKoWMdV.js +1 -0
  164. package/dist/gateway/static/root/assets/{workspace-file-preview-dialog-BUGNT765.js → workspace-file-preview-dialog-B9f3GN7l.js} +1 -1
  165. package/dist/gateway/static/root/assets/{workspace-open-location-menu-bMSvmQW7.js → workspace-open-location-menu-BNjipenH.js} +1 -1
  166. package/dist/gateway/static/root/assets/{xopc-cloud-account-card-Bbe19Del.js → xopc-cloud-account-card-Csye7zKU.js} +1 -1
  167. package/dist/gateway/static/root/index.html +81 -81
  168. package/dist/package.js +1 -1
  169. package/dist/src/agent/client-error-format.d.ts +1 -1
  170. package/dist/src/agent/client-error-format.js +3 -2
  171. package/dist/src/agent/orchestration/llm-turn-retry.js +8 -1
  172. package/dist/src/agent/tool-manuals/computer.d.ts +1 -1
  173. package/dist/src/agent/tool-manuals/computer.js +2 -2
  174. package/dist/src/cli/commands/platform.js +2 -2
  175. package/dist/src/computer/broker.d.ts +5 -1
  176. package/dist/src/computer/broker.js +34 -9
  177. package/dist/src/computer/diagnostics.d.ts +340 -0
  178. package/dist/src/computer/diagnostics.js +4 -0
  179. package/dist/src/computer/errors.d.ts +340 -0
  180. package/dist/src/computer/errors.js +122 -5
  181. package/dist/src/computer/evaluation.d.ts +186 -0
  182. package/dist/src/computer/model-adapter.js +47 -20
  183. package/dist/src/computer/runtime.d.ts +170 -0
  184. package/dist/src/computer/runtime.js +36 -8
  185. package/dist/src/computer/stability-diagnostics.d.ts +23 -0
  186. package/dist/src/computer/stability-diagnostics.js +71 -0
  187. package/dist/src/computer/validation-diagnostics.d.ts +9 -0
  188. package/dist/src/computer/validation-diagnostics.js +54 -0
  189. package/dist/src/providers/model-response.js +1 -0
  190. package/dist/src/realtime/runtime.js +13 -5
  191. package/dist/src/realtime/writer.d.ts +7 -0
  192. package/dist/src/realtime/writer.js +96 -30
  193. package/package.json +1 -1
  194. package/dist/gateway/static/root/assets/automation-task-card-DZWhCWJa.js +0 -3
  195. package/dist/gateway/static/root/assets/gateway-realtime-store-CHrf6-nR.js +0 -1
  196. package/dist/gateway/static/root/assets/index-iukJWzxG.css +0 -1
  197. package/dist/gateway/static/root/assets/messages-C7fckbyG.js +0 -3
  198. package/dist/gateway/static/root/assets/note-image-lightbox-D6kUDDd5.js +0 -1
  199. package/dist/gateway/static/root/assets/page-header-store-D7G5utVi.js +0 -1
  200. package/dist/gateway/static/root/assets/settings-advanced-gate-CZ4J3Kuy.js +0 -1
  201. package/dist/gateway/static/root/assets/workspace-editor-agent-store-B2r9wlix.js +0 -1
@@ -88,6 +88,176 @@ export declare const ComputerEvaluationRunSchema: z.ZodObject<{
88
88
  invalid_envelope: "invalid_envelope";
89
89
  output_limit: "output_limit";
90
90
  }>>;
91
+ validation: z.ZodOptional<z.ZodObject<{
92
+ action: z.ZodEnum<{
93
+ type: "type";
94
+ key: "key";
95
+ unknown: "unknown";
96
+ answer: "answer";
97
+ wait: "wait";
98
+ typeText: "typeText";
99
+ batch: "batch";
100
+ terminate: "terminate";
101
+ activate: "activate";
102
+ showMenu: "showMenu";
103
+ click: "click";
104
+ drag: "drag";
105
+ setValue: "setValue";
106
+ pressKeys: "pressKeys";
107
+ scroll: "scroll";
108
+ activateSequence: "activateSequence";
109
+ interact: "interact";
110
+ takeover: "takeover";
111
+ finished: "finished";
112
+ button_plan: "button_plan";
113
+ activate_sequence: "activate_sequence";
114
+ show_menu: "show_menu";
115
+ set_value: "set_value";
116
+ left_click: "left_click";
117
+ right_click: "right_click";
118
+ double_click: "double_click";
119
+ hscroll: "hscroll";
120
+ }>;
121
+ stage: z.ZodEnum<{
122
+ plan: "plan";
123
+ schema: "schema";
124
+ converted_action: "converted_action";
125
+ typing_target: "typing_target";
126
+ keyboard: "keyboard";
127
+ }>;
128
+ issues: z.ZodArray<z.ZodObject<{
129
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
130
+ reason: "reason";
131
+ keys: "keys";
132
+ value: "value";
133
+ name: "name";
134
+ time: "time";
135
+ from: "from";
136
+ action: "action";
137
+ when: "when";
138
+ label: "label";
139
+ text: "text";
140
+ kind: "kind";
141
+ status: "status";
142
+ durationMs: "durationMs";
143
+ role: "role";
144
+ to: "to";
145
+ actions: "actions";
146
+ count: "count";
147
+ x: "x";
148
+ y: "y";
149
+ point: "point";
150
+ arguments: "arguments";
151
+ ref: "ref";
152
+ button: "button";
153
+ deltaX: "deltaX";
154
+ deltaY: "deltaY";
155
+ refs: "refs";
156
+ pixels: "pixels";
157
+ steps: "steps";
158
+ coordinate: "coordinate";
159
+ unknown_field: "unknown_field";
160
+ proposal: "proposal";
161
+ claimedSuccess: "claimedSuccess";
162
+ }>, z.ZodNumber]>>;
163
+ code: z.ZodEnum<{
164
+ custom: "custom";
165
+ invalid_type: "invalid_type";
166
+ unrecognized_keys: "unrecognized_keys";
167
+ invalid_union: "invalid_union";
168
+ invalid_value: "invalid_value";
169
+ invalid_format: "invalid_format";
170
+ too_big: "too_big";
171
+ too_small: "too_small";
172
+ not_multiple_of: "not_multiple_of";
173
+ missing_point: "missing_point";
174
+ outside_frame: "outside_frame";
175
+ editable_target_missing: "editable_target_missing";
176
+ editable_target_ambiguous: "editable_target_ambiguous";
177
+ invalid_context: "invalid_context";
178
+ unsupported_key: "unsupported_key";
179
+ plan_not_grounded: "plan_not_grounded";
180
+ }>;
181
+ action: z.ZodEnum<{
182
+ type: "type";
183
+ key: "key";
184
+ unknown: "unknown";
185
+ answer: "answer";
186
+ wait: "wait";
187
+ typeText: "typeText";
188
+ batch: "batch";
189
+ terminate: "terminate";
190
+ activate: "activate";
191
+ showMenu: "showMenu";
192
+ click: "click";
193
+ drag: "drag";
194
+ setValue: "setValue";
195
+ pressKeys: "pressKeys";
196
+ scroll: "scroll";
197
+ activateSequence: "activateSequence";
198
+ interact: "interact";
199
+ takeover: "takeover";
200
+ finished: "finished";
201
+ button_plan: "button_plan";
202
+ activate_sequence: "activate_sequence";
203
+ show_menu: "show_menu";
204
+ set_value: "set_value";
205
+ left_click: "left_click";
206
+ right_click: "right_click";
207
+ double_click: "double_click";
208
+ hscroll: "hscroll";
209
+ }>;
210
+ }, z.core.$strict>>;
211
+ }, z.core.$strict>>;
212
+ stability: z.ZodOptional<z.ZodObject<{
213
+ stage: z.ZodEnum<{
214
+ initial_capture: "initial_capture";
215
+ pre_dispatch: "pre_dispatch";
216
+ post_action: "post_action";
217
+ }>;
218
+ samples: z.ZodNumber;
219
+ action: z.ZodOptional<z.ZodEnum<{
220
+ type: "type";
221
+ key: "key";
222
+ unknown: "unknown";
223
+ answer: "answer";
224
+ wait: "wait";
225
+ typeText: "typeText";
226
+ batch: "batch";
227
+ terminate: "terminate";
228
+ activate: "activate";
229
+ showMenu: "showMenu";
230
+ click: "click";
231
+ drag: "drag";
232
+ setValue: "setValue";
233
+ pressKeys: "pressKeys";
234
+ scroll: "scroll";
235
+ activateSequence: "activateSequence";
236
+ interact: "interact";
237
+ takeover: "takeover";
238
+ finished: "finished";
239
+ button_plan: "button_plan";
240
+ activate_sequence: "activate_sequence";
241
+ show_menu: "show_menu";
242
+ set_value: "set_value";
243
+ left_click: "left_click";
244
+ right_click: "right_click";
245
+ double_click: "double_click";
246
+ hscroll: "hscroll";
247
+ }>>;
248
+ changes: z.ZodArray<z.ZodEnum<{
249
+ window_identity: "window_identity";
250
+ window_geometry: "window_geometry";
251
+ image_dimensions: "image_dimensions";
252
+ accessibility_structure: "accessibility_structure";
253
+ accessibility_text: "accessibility_text";
254
+ accessibility_state: "accessibility_state";
255
+ accessibility_geometry: "accessibility_geometry";
256
+ visual_or_unexposed_state: "visual_or_unexposed_state";
257
+ deadline: "deadline";
258
+ }>>;
259
+ changedElementIndices: z.ZodArray<z.ZodNumber>;
260
+ }, z.core.$strict>>;
91
261
  serviceErrorCode: z.ZodOptional<z.ZodEnum<{
92
262
  provider_error: "provider_error";
93
263
  max_input_tokens_exceeded: "max_input_tokens_exceeded";
@@ -114,6 +284,22 @@ export declare function computerReportMeasurements(report: ComputerSessionReport
114
284
  httpStatus?: number;
115
285
  requestId?: string;
116
286
  validationReason?: "invalid_json" | "invalid_arguments" | "missing_call" | "multiple_calls" | "invalid_envelope" | "output_limit";
287
+ validation?: {
288
+ action: "type" | "key" | "unknown" | "answer" | "wait" | "typeText" | "batch" | "terminate" | "activate" | "showMenu" | "click" | "drag" | "setValue" | "pressKeys" | "scroll" | "activateSequence" | "interact" | "takeover" | "finished" | "button_plan" | "activate_sequence" | "show_menu" | "set_value" | "left_click" | "right_click" | "double_click" | "hscroll";
289
+ stage: "plan" | "schema" | "converted_action" | "typing_target" | "keyboard";
290
+ issues: {
291
+ path: (number | "reason" | "keys" | "value" | "name" | "time" | "from" | "action" | "when" | "label" | "text" | "kind" | "status" | "durationMs" | "role" | "to" | "actions" | "count" | "x" | "y" | "point" | "arguments" | "ref" | "button" | "deltaX" | "deltaY" | "refs" | "pixels" | "steps" | "coordinate" | "unknown_field" | "proposal" | "claimedSuccess")[];
292
+ code: "custom" | "invalid_type" | "unrecognized_keys" | "invalid_union" | "invalid_value" | "invalid_format" | "too_big" | "too_small" | "not_multiple_of" | "missing_point" | "outside_frame" | "editable_target_missing" | "editable_target_ambiguous" | "invalid_context" | "unsupported_key" | "plan_not_grounded";
293
+ action: "type" | "key" | "unknown" | "answer" | "wait" | "typeText" | "batch" | "terminate" | "activate" | "showMenu" | "click" | "drag" | "setValue" | "pressKeys" | "scroll" | "activateSequence" | "interact" | "takeover" | "finished" | "button_plan" | "activate_sequence" | "show_menu" | "set_value" | "left_click" | "right_click" | "double_click" | "hscroll";
294
+ }[];
295
+ };
296
+ stability?: {
297
+ stage: "initial_capture" | "pre_dispatch" | "post_action";
298
+ samples: number;
299
+ changes: ("window_identity" | "window_geometry" | "image_dimensions" | "accessibility_structure" | "accessibility_text" | "accessibility_state" | "accessibility_geometry" | "visual_or_unexposed_state" | "deadline")[];
300
+ changedElementIndices: number[];
301
+ action?: "type" | "key" | "unknown" | "answer" | "wait" | "typeText" | "batch" | "terminate" | "activate" | "showMenu" | "click" | "drag" | "setValue" | "pressKeys" | "scroll" | "activateSequence" | "interact" | "takeover" | "finished" | "button_plan" | "activate_sequence" | "show_menu" | "set_value" | "left_click" | "right_click" | "double_click" | "hscroll";
302
+ };
117
303
  serviceErrorCode?: "provider_error" | "max_input_tokens_exceeded" | "max_tokens_exceeded" | "model_capability_unsupported" | "unsupported_request_field" | "invalid_image" | "request_too_large" | "invalid_request" | "free_pool_unavailable";
118
304
  };
119
305
  durationMs: number;
@@ -2,6 +2,7 @@ import { ComputerActionSchema, ComputerPrimitiveActionSchema, init_src } from ".
2
2
  import { ComputerButtonPlan, ComputerButtonPlanSchema } from "./semantic-plan.js";
3
3
  import { ComputerDiagnosticSchema, ComputerOperationError, computerDiagnostic } from "./errors.js";
4
4
  import { normalizeComputerKeys } from "./keyboard.js";
5
+ import { modelValidation } from "./validation-diagnostics.js";
5
6
  import { randomUUID } from "node:crypto";
6
7
  import { z } from "zod";
7
8
  //#region src/computer/model-adapter.ts
@@ -36,11 +37,15 @@ const StructuredProposalSchema = z.union(ComputerProposalSchema.options.map((opt
36
37
  kind: z.literal("action"),
37
38
  action: StructuredActionSchema
38
39
  }).strict() : option));
39
- function validateTypingProposal(proposal, input) {
40
- if (proposal.kind === "action" && proposal.action.kind === "batch") for (const action of proposal.action.actions) validateTypingProposal({
40
+ function validateTypingProposal(proposal, input, path = ["action"], root = proposal) {
41
+ if (proposal.kind === "action" && proposal.action.kind === "batch") proposal.action.actions.forEach((action, index) => validateTypingProposal({
41
42
  kind: "action",
42
43
  action
43
- }, input);
44
+ }, input, [
45
+ ...path,
46
+ "actions",
47
+ index
48
+ ], root));
44
49
  if (proposal.kind === "action" && proposal.action.kind === "pressKeys") {
45
50
  let platform = "darwin";
46
51
  try {
@@ -49,15 +54,21 @@ function validateTypingProposal(proposal, input) {
49
54
  try {
50
55
  proposal.action.keys = normalizeComputerKeys(proposal.action.keys, platform);
51
56
  } catch {
52
- throw invalidOutput("invalid_arguments");
57
+ throw invalidOutput("invalid_arguments", void 0, modelValidation(root, "keyboard", void 0, {
58
+ path: [...path, "keys"],
59
+ code: "unsupported_key"
60
+ }));
53
61
  }
54
62
  }
55
63
  if (proposal.kind !== "action" || proposal.action.kind !== "typeText") return;
56
64
  const point = proposal.action.point;
57
- if (!point || point.x >= input.width || point.y >= input.height) throw invalidOutput("invalid_arguments");
65
+ if (!point || point.x >= input.width || point.y >= input.height) throw invalidOutput("invalid_arguments", void 0, modelValidation(root, "typing_target", void 0, {
66
+ path: [...path, "point"],
67
+ code: point ? "outside_frame" : "missing_point"
68
+ }));
58
69
  try {
59
70
  const context = JSON.parse(input.summary);
60
- if ((Array.isArray(context.elements) ? context.elements.filter((e) => {
71
+ const fields = Array.isArray(context.elements) ? context.elements.filter((e) => {
61
72
  if (!["AXTextField", "AXTextArea"].includes(String(e.role)) || e.enabled === false || e.inputAllowed === false || /password|passcode|验证码|密码|one.time.code/i.test(String(e.label ?? ""))) return false;
62
73
  const b = e.bounds;
63
74
  return b && [
@@ -66,9 +77,17 @@ function validateTypingProposal(proposal, input) {
66
77
  b.width,
67
78
  b.height
68
79
  ].every(Number.isFinite) && b.width > 0 && b.height > 0 && point.x >= b.x && point.y >= b.y && point.x < b.x + b.width && point.y < b.y + b.height;
69
- }) : []).length !== 1) throw invalidOutput("invalid_arguments");
70
- } catch {
71
- throw invalidOutput("invalid_arguments");
80
+ }) : [];
81
+ if (fields.length !== 1) throw invalidOutput("invalid_arguments", void 0, modelValidation(root, "typing_target", void 0, {
82
+ path: [...path, "point"],
83
+ code: fields.length ? "editable_target_ambiguous" : "editable_target_missing"
84
+ }));
85
+ } catch (error) {
86
+ if (computerDiagnostic(error)) throw error;
87
+ throw invalidOutput("invalid_arguments", void 0, modelValidation(root, "typing_target", void 0, {
88
+ path: [...path, "point"],
89
+ code: "invalid_context"
90
+ }));
72
91
  }
73
92
  }
74
93
  const Coordinate = z.tuple([z.number().finite().min(0).max(1e3), z.number().finite().min(0).max(1e3)]);
@@ -275,7 +294,7 @@ function parseGuiPlusProposal(content, width, height) {
275
294
  name: z.literal("computer_use"),
276
295
  arguments: GuiArgs
277
296
  }).strict().safeParse(raw);
278
- if (!parsed.success) throw invalidOutput("invalid_arguments");
297
+ if (!parsed.success) throw invalidOutput("invalid_arguments", void 0, modelValidation(raw, "schema", parsed.error));
279
298
  return parsed.data;
280
299
  })().arguments;
281
300
  const point = "coordinate" in a && a.coordinate ? {
@@ -367,19 +386,20 @@ function parseGuiPlusProposal(content, width, height) {
367
386
  break;
368
387
  }
369
388
  const parsed = ComputerActionSchema.safeParse(action);
370
- if (!parsed.success) throw invalidOutput("invalid_arguments");
389
+ if (!parsed.success) throw invalidOutput("invalid_arguments", void 0, modelValidation(action, "converted_action", parsed.error));
371
390
  return {
372
391
  kind: "action",
373
392
  action: parsed.data
374
393
  };
375
394
  }
376
395
  const invalidReplies = /* @__PURE__ */ new WeakMap();
377
- function invalidOutput(validationReason, errorCode = "COMPUTER_INVALID_MODEL_OUTPUT") {
396
+ function invalidOutput(validationReason, errorCode = "COMPUTER_INVALID_MODEL_OUTPUT", validation) {
378
397
  return new ComputerOperationError({
379
398
  errorCode,
380
399
  phase: "model",
381
400
  diagnosticId: randomUUID(),
382
- validationReason
401
+ validationReason,
402
+ ...validation ? { validation } : {}
383
403
  });
384
404
  }
385
405
  /** One format-only re-prediction is safe before any input has been proposed or dispatched. */
@@ -561,14 +581,19 @@ var ChatCompletionsComputerAdapter = class {
561
581
  const structured = c.profile === "structured-tools-v1";
562
582
  const proposalSchema = !input.formatCorrection && input.maxPlanActions && input.maxPlanActions > 1 ? z.union([StructuredProposalSchema, ComputerButtonPlanSchema]) : StructuredProposalSchema;
563
583
  const parseProposal = (args) => {
564
- const proposal = z.object({ proposal: proposalSchema }).strict().parse(args).proposal;
584
+ const parsed = z.object({ proposal: proposalSchema }).strict().safeParse(args);
585
+ if (!parsed.success) throw invalidOutput("invalid_arguments", void 0, modelValidation(args, "schema", parsed.error));
586
+ const proposal = parsed.data.proposal;
565
587
  if (proposal.kind !== "button_plan") {
566
588
  validateTypingProposal(proposal, input);
567
589
  return proposal;
568
590
  }
569
591
  this.plan.install(proposal, input.goal, Math.min(6, input.maxPlanActions ?? 0));
570
592
  const action = this.plan.next(input);
571
- if (!action) throw invalidOutput("invalid_arguments");
593
+ if (!action) throw invalidOutput("invalid_arguments", void 0, modelValidation(proposal, "plan", void 0, {
594
+ path: ["steps"],
595
+ code: "plan_not_grounded"
596
+ }));
572
597
  return {
573
598
  kind: "action",
574
599
  action
@@ -674,8 +699,9 @@ var ChatCompletionsComputerAdapter = class {
674
699
  kind: "answer",
675
700
  text: answerSchema.parse(args).text
676
701
  } : parseProposal(args);
677
- } catch {
678
- throw invalidOutput("invalid_arguments");
702
+ } catch (error) {
703
+ if (computerDiagnostic(error)) throw error;
704
+ throw invalidOutput("invalid_arguments", void 0, modelValidation({}, "schema", error));
679
705
  }
680
706
  }
681
707
  const envelope = z.object({ choices: z.array(z.object({
@@ -711,8 +737,9 @@ var ChatCompletionsComputerAdapter = class {
711
737
  kind: "answer",
712
738
  text: answerSchema.parse(args).text
713
739
  } : parseProposal(args);
714
- } catch {
715
- throw invalidOutput("invalid_arguments");
740
+ } catch (error) {
741
+ if (computerDiagnostic(error)) throw error;
742
+ throw invalidOutput("invalid_arguments", void 0, modelValidation({}, "schema", error));
716
743
  }
717
744
  }
718
745
  };
@@ -917,7 +944,7 @@ var OpenAIResponsesComputerAdapter = class {
917
944
  let pointer;
918
945
  const append = (action) => {
919
946
  const parsed = ComputerActionSchema.safeParse(action);
920
- if (!parsed.success) throw invalidOutput("invalid_arguments");
947
+ if (!parsed.success) throw invalidOutput("invalid_arguments", void 0, modelValidation(action, "converted_action", parsed.error));
921
948
  proposals.push({
922
949
  kind: "action",
923
950
  action: parsed.data
@@ -82,6 +82,176 @@ declare const Reply: z.ZodObject<{
82
82
  invalid_envelope: "invalid_envelope";
83
83
  output_limit: "output_limit";
84
84
  }>>;
85
+ validation: z.ZodOptional<z.ZodObject<{
86
+ action: z.ZodEnum<{
87
+ type: "type";
88
+ key: "key";
89
+ unknown: "unknown";
90
+ answer: "answer";
91
+ wait: "wait";
92
+ typeText: "typeText";
93
+ batch: "batch";
94
+ terminate: "terminate";
95
+ activate: "activate";
96
+ showMenu: "showMenu";
97
+ click: "click";
98
+ drag: "drag";
99
+ setValue: "setValue";
100
+ pressKeys: "pressKeys";
101
+ scroll: "scroll";
102
+ activateSequence: "activateSequence";
103
+ interact: "interact";
104
+ takeover: "takeover";
105
+ finished: "finished";
106
+ button_plan: "button_plan";
107
+ activate_sequence: "activate_sequence";
108
+ show_menu: "show_menu";
109
+ set_value: "set_value";
110
+ left_click: "left_click";
111
+ right_click: "right_click";
112
+ double_click: "double_click";
113
+ hscroll: "hscroll";
114
+ }>;
115
+ stage: z.ZodEnum<{
116
+ plan: "plan";
117
+ schema: "schema";
118
+ converted_action: "converted_action";
119
+ typing_target: "typing_target";
120
+ keyboard: "keyboard";
121
+ }>;
122
+ issues: z.ZodArray<z.ZodObject<{
123
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
124
+ reason: "reason";
125
+ keys: "keys";
126
+ value: "value";
127
+ name: "name";
128
+ time: "time";
129
+ from: "from";
130
+ action: "action";
131
+ when: "when";
132
+ label: "label";
133
+ text: "text";
134
+ kind: "kind";
135
+ status: "status";
136
+ durationMs: "durationMs";
137
+ role: "role";
138
+ to: "to";
139
+ actions: "actions";
140
+ count: "count";
141
+ x: "x";
142
+ y: "y";
143
+ point: "point";
144
+ arguments: "arguments";
145
+ ref: "ref";
146
+ button: "button";
147
+ deltaX: "deltaX";
148
+ deltaY: "deltaY";
149
+ refs: "refs";
150
+ pixels: "pixels";
151
+ steps: "steps";
152
+ coordinate: "coordinate";
153
+ unknown_field: "unknown_field";
154
+ proposal: "proposal";
155
+ claimedSuccess: "claimedSuccess";
156
+ }>, z.ZodNumber]>>;
157
+ code: z.ZodEnum<{
158
+ custom: "custom";
159
+ invalid_type: "invalid_type";
160
+ unrecognized_keys: "unrecognized_keys";
161
+ invalid_union: "invalid_union";
162
+ invalid_value: "invalid_value";
163
+ invalid_format: "invalid_format";
164
+ too_big: "too_big";
165
+ too_small: "too_small";
166
+ not_multiple_of: "not_multiple_of";
167
+ missing_point: "missing_point";
168
+ outside_frame: "outside_frame";
169
+ editable_target_missing: "editable_target_missing";
170
+ editable_target_ambiguous: "editable_target_ambiguous";
171
+ invalid_context: "invalid_context";
172
+ unsupported_key: "unsupported_key";
173
+ plan_not_grounded: "plan_not_grounded";
174
+ }>;
175
+ action: z.ZodEnum<{
176
+ type: "type";
177
+ key: "key";
178
+ unknown: "unknown";
179
+ answer: "answer";
180
+ wait: "wait";
181
+ typeText: "typeText";
182
+ batch: "batch";
183
+ terminate: "terminate";
184
+ activate: "activate";
185
+ showMenu: "showMenu";
186
+ click: "click";
187
+ drag: "drag";
188
+ setValue: "setValue";
189
+ pressKeys: "pressKeys";
190
+ scroll: "scroll";
191
+ activateSequence: "activateSequence";
192
+ interact: "interact";
193
+ takeover: "takeover";
194
+ finished: "finished";
195
+ button_plan: "button_plan";
196
+ activate_sequence: "activate_sequence";
197
+ show_menu: "show_menu";
198
+ set_value: "set_value";
199
+ left_click: "left_click";
200
+ right_click: "right_click";
201
+ double_click: "double_click";
202
+ hscroll: "hscroll";
203
+ }>;
204
+ }, z.core.$strict>>;
205
+ }, z.core.$strict>>;
206
+ stability: z.ZodOptional<z.ZodObject<{
207
+ stage: z.ZodEnum<{
208
+ initial_capture: "initial_capture";
209
+ pre_dispatch: "pre_dispatch";
210
+ post_action: "post_action";
211
+ }>;
212
+ samples: z.ZodNumber;
213
+ action: z.ZodOptional<z.ZodEnum<{
214
+ type: "type";
215
+ key: "key";
216
+ unknown: "unknown";
217
+ answer: "answer";
218
+ wait: "wait";
219
+ typeText: "typeText";
220
+ batch: "batch";
221
+ terminate: "terminate";
222
+ activate: "activate";
223
+ showMenu: "showMenu";
224
+ click: "click";
225
+ drag: "drag";
226
+ setValue: "setValue";
227
+ pressKeys: "pressKeys";
228
+ scroll: "scroll";
229
+ activateSequence: "activateSequence";
230
+ interact: "interact";
231
+ takeover: "takeover";
232
+ finished: "finished";
233
+ button_plan: "button_plan";
234
+ activate_sequence: "activate_sequence";
235
+ show_menu: "show_menu";
236
+ set_value: "set_value";
237
+ left_click: "left_click";
238
+ right_click: "right_click";
239
+ double_click: "double_click";
240
+ hscroll: "hscroll";
241
+ }>>;
242
+ changes: z.ZodArray<z.ZodEnum<{
243
+ window_identity: "window_identity";
244
+ window_geometry: "window_geometry";
245
+ image_dimensions: "image_dimensions";
246
+ accessibility_structure: "accessibility_structure";
247
+ accessibility_text: "accessibility_text";
248
+ accessibility_state: "accessibility_state";
249
+ accessibility_geometry: "accessibility_geometry";
250
+ visual_or_unexposed_state: "visual_or_unexposed_state";
251
+ deadline: "deadline";
252
+ }>>;
253
+ changedElementIndices: z.ZodArray<z.ZodNumber>;
254
+ }, z.core.$strict>>;
85
255
  httpStatus: z.ZodOptional<z.ZodNumber>;
86
256
  requestId: z.ZodOptional<z.ZodString>;
87
257
  serviceErrorCode: z.ZodOptional<z.ZodEnum<{
@@ -15,6 +15,7 @@ import { ComputerNativeTimingSchema, ComputerSessionDiagnostics } from "./diagno
15
15
  import { executeComputerProgram } from "./program-runtime.js";
16
16
  import { ComputerExpectationSchema, ComputerTaskState, verifyComputerExpectation } from "./task-state.js";
17
17
  import { executeComputerBatch } from "./batch.js";
18
+ import { ComputerStabilityTracker } from "./stability-diagnostics.js";
18
19
  import { randomUUID } from "node:crypto";
19
20
  import { z } from "zod";
20
21
  import { setTimeout } from "node:timers/promises";
@@ -720,7 +721,7 @@ var ComputerRuntime = class {
720
721
  expect: context.expectation,
721
722
  flowId: context.flowId
722
723
  };
723
- this.reserveRescue(s, signal);
724
+ this.reserveRescue(s, signal, result.diagnostic);
724
725
  } else if (status.value.status !== "ready") return this.present(status.value);
725
726
  if (input.op === "step") {
726
727
  if (input.flowId || s.lastFlowId) s.adapter?.reset?.();
@@ -741,6 +742,7 @@ var ComputerRuntime = class {
741
742
  owner
742
743
  }, signal);
743
744
  try {
745
+ if (observed.value.diagnostic && observed.value.errorCode) throw new ComputerOperationError(observed.value.diagnostic);
744
746
  const verification = verifyComputerExpectation(input.expect, observed.value.observation);
745
747
  if (input.op === "observe") s.diagnostics.verify(verification);
746
748
  if (input.op === "observe" && !input.question) return {
@@ -859,7 +861,7 @@ var ComputerRuntime = class {
859
861
  phase = "dispatch";
860
862
  const result = await this.dispatchAction(s, e, signal, goalContext);
861
863
  if (!this.isUndispatchedChange(result)) return result;
862
- this.reserveRescue(s, signal);
864
+ this.reserveRescue(s, signal, result.diagnostic);
863
865
  } finally {
864
866
  observed.frame?.fill(0);
865
867
  }
@@ -878,12 +880,15 @@ var ComputerRuntime = class {
878
880
  isUndispatchedChange(result) {
879
881
  return result.status === "ready" && result.errorCode === "COMPUTER_OBSERVATION_CHANGED" && !result.receipt;
880
882
  }
881
- reserveRescue(s, signal) {
883
+ reserveRescue(s, signal, diagnostic) {
882
884
  signal.throwIfAborted();
883
885
  const limit = Math.min(s.rescueLimit, this.getConfig().computer.maxRescuesPerSession);
884
886
  if (s.rescues >= limit) {
885
887
  s.diagnostics.count("rescueExhaustions");
886
- throw new Error("COMPUTER_UI_UNSTABLE");
888
+ throw diagnostic ? new ComputerOperationError({
889
+ ...diagnostic,
890
+ errorCode: "COMPUTER_UI_UNSTABLE"
891
+ }) : /* @__PURE__ */ new Error("COMPUTER_UI_UNSTABLE");
887
892
  }
888
893
  s.rescues++;
889
894
  s.diagnostics.count("rescueAttempts");
@@ -925,8 +930,10 @@ var ComputerRuntime = class {
925
930
  const receipt = reply.value.receipt;
926
931
  const nativeMs = reply.value.nativeMs;
927
932
  let stable = false;
933
+ const stability = new ComputerStabilityTracker("post_action", envelope.action.kind);
928
934
  try {
929
935
  for (let sample = 0; sample < 3; sample++) {
936
+ await setTimeout(100, void 0, { signal });
930
937
  const next = await this.send(s, {
931
938
  op: "observe",
932
939
  sessionId: s.id,
@@ -942,22 +949,43 @@ var ComputerRuntime = class {
942
949
  nativeMs
943
950
  }
944
951
  };
952
+ if (reply.value.diagnostic?.stability) reply.value.diagnostic = {
953
+ ...reply.value.diagnostic,
954
+ stability: {
955
+ ...reply.value.diagnostic.stability,
956
+ stage: "post_action",
957
+ action: envelope.action.kind
958
+ }
959
+ };
945
960
  previous.frame?.fill(0);
946
961
  if (previous.value.brokerEpoch !== next.value.brokerEpoch || previous.value.generation !== next.value.generation || previous.value.grantId !== next.value.grantId) {
947
962
  reply.value.errorCode = "COMPUTER_GRANT_REVOKED";
948
963
  break;
949
964
  }
950
965
  const a = previous.value.observation, b = next.value.observation;
966
+ if (a && b) stability.compare(a, b);
951
967
  stable = next.value.status === "ready" && !next.value.errorCode && !!a && !!b && previous.value.brokerEpoch === next.value.brokerEpoch && previous.value.generation === next.value.generation && previous.value.grantId === next.value.grantId && a.stateDigest === b.stateDigest && JSON.stringify(a.target) === JSON.stringify(b.target);
952
968
  if (stable || next.value.status !== "ready" || next.value.errorCode) break;
953
969
  }
954
- if (!stable && !reply.value.errorCode) reply.value.errorCode = "COMPUTER_UI_UNSTABLE";
955
- } catch {
970
+ if (!stable && !reply.value.errorCode) {
971
+ reply.value.errorCode = "COMPUTER_UI_UNSTABLE";
972
+ reply.value.diagnostic = stability.diagnostic("COMPUTER_UI_UNSTABLE", 4);
973
+ }
974
+ } catch (error) {
956
975
  reply.frame?.fill(0);
976
+ const diagnostic = computerDiagnostic(error);
957
977
  reply = { value: {
958
978
  ...reply.value,
959
979
  receipt,
960
- errorCode: signal?.aborted ? "COMPUTER_OPERATION_ABORTED" : "COMPUTER_POST_ACTION_OBSERVATION_FAILED"
980
+ errorCode: signal?.aborted ? "COMPUTER_OPERATION_ABORTED" : diagnostic?.errorCode ?? "COMPUTER_POST_ACTION_OBSERVATION_FAILED",
981
+ ...diagnostic ? { diagnostic: {
982
+ ...diagnostic,
983
+ ...diagnostic.stability ? { stability: {
984
+ ...diagnostic.stability,
985
+ stage: "post_action",
986
+ action: envelope.action.kind
987
+ } } : {}
988
+ } } : {}
961
989
  } };
962
990
  }
963
991
  }
@@ -984,7 +1012,7 @@ var ComputerRuntime = class {
984
1012
  const verification = verifyComputerExpectation(context?.expectation, reply.value.observation, context?.before);
985
1013
  if (reply.value.receipt) s.diagnostics.record(reply.value.receipt, context?.before, reply.value.observation, verification);
986
1014
  const failureCode = reply.value.errorCode ?? (reply.value.receipt?.dispatch === "unknown" || reply.value.receipt?.dispatch === "started" ? reply.value.receipt.errorCode ?? "COMPUTER_NATIVE_ACTION_FAILED" : void 0);
987
- if (failureCode) s.diagnostics.fail(new Error(failureCode), "dispatch", reply.value.receipt?.dispatch ?? "notStarted");
1015
+ if (failureCode) s.diagnostics.fail(reply.value.diagnostic ? new ComputerOperationError(reply.value.diagnostic) : new Error(failureCode), "dispatch", reply.value.receipt?.dispatch ?? "notStarted");
988
1016
  if (context && reply.value.receipt) {
989
1017
  s.task.record(context.goal, envelope.action, context.before, reply.value.receipt, reply.value.observation, verification);
990
1018
  s.flowCapture.record(envelope.action, context.before, reply.value.receipt, reply.value.observation, context.expectation, verification);