@xopcai/xopc 0.0.423 → 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.
Files changed (361) hide show
  1. package/dist/browser-ext/dist/assets/{page-context-BKnEwsOO.js → page-context-b-rB5vJC.js} +1 -1
  2. package/dist/browser-ext/dist/background.js +1 -1
  3. package/dist/browser-ext/dist/sidepanel.html +1 -1
  4. package/dist/browser-ext/dist/sidepanel.js +29 -1
  5. package/dist/browser-ext/manifest.json +1 -1
  6. package/dist/extensions/telegram/xopc.extension.json +1 -1
  7. package/dist/gateway/static/root/assets/{activity-store-DNkXnatd.js → activity-store-CMw8qBuC.js} +1 -1
  8. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DOnHjAY_.js → agent-avatar-dicebear-JI0YWOIm.js} +1 -1
  9. package/dist/gateway/static/root/assets/{agent-avatar-display-C9Lu9LVl.js → agent-avatar-display-YqmwzOSa.js} +2 -2
  10. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DlvjxWg6.js +1 -0
  11. package/dist/gateway/static/root/assets/{agent-plugin-dialog-sQNbqsGL.js → agent-plugin-dialog-OBueuQSc.js} +1 -1
  12. package/dist/gateway/static/root/assets/{agents-DZ77luyw.js → agents-Cp6_5OOQ.js} +4 -4
  13. package/dist/gateway/static/root/assets/{agents-admin-api-DIm_IHQL.js → agents-admin-api-DLnmdC1h.js} +1 -1
  14. package/dist/gateway/static/root/assets/{api-BUJQiCoX.js → api-Boc-CVh7.js} +1 -1
  15. package/dist/gateway/static/root/assets/{api-By0yX3z1.js → api-bL7sxjAF.js} +1 -1
  16. package/dist/gateway/static/root/assets/{app-management-settings-panel-PPgc1xaD.js → app-management-settings-panel-jIG5i7KE.js} +1 -1
  17. package/dist/gateway/static/root/assets/{appearance-settings-DbI9t4GS.js → appearance-settings-BnaQW9Xd.js} +1 -1
  18. package/dist/gateway/static/root/assets/{apps-page-DIC28vl4.js → apps-page-C2WKUwtN.js} +1 -1
  19. package/dist/gateway/static/root/assets/{archive-plugin-B5ZSQVw2.js → archive-plugin-DjboG3kA.js} +1 -1
  20. package/dist/gateway/static/root/assets/{automation-api-CfjICuJK.js → automation-api-CZqL9l_d.js} +1 -1
  21. package/dist/gateway/static/root/assets/{automation-result-state-DpQSVGNY.js → automation-result-state-DRd-X_Ai.js} +1 -1
  22. package/dist/gateway/static/root/assets/automation-task-card-wbnR5i6N.js +3 -0
  23. package/dist/gateway/static/root/assets/{automations-page-1NCQMSK1.js → automations-page-HyBQIfmn.js} +1 -1
  24. package/dist/gateway/static/root/assets/automations-workspace-D6cTOKr7.js +9 -0
  25. package/dist/gateway/static/root/assets/{binary-plugins-_riZg0hb.js → binary-plugins-Bg8ARZUH.js} +1 -1
  26. package/dist/gateway/static/root/assets/{block-editor-BpYTVDaG.js → block-editor-DKohqFAW.js} +2 -2
  27. package/dist/gateway/static/root/assets/{browser-automation-inputs-DLbHyWE5.js → browser-automation-inputs-YeibTzw4.js} +1 -1
  28. package/dist/gateway/static/root/assets/{browser-automations-page-BfOHr7er.js → browser-automations-page-BWNcbuz2.js} +1 -1
  29. package/dist/gateway/static/root/assets/{browser-control-api-CqjIQdQ4.js → browser-control-api-CDeuxy2x.js} +1 -1
  30. package/dist/gateway/static/root/assets/{browser-settings-page-CqjLefvt.js → browser-settings-page-L0nBjfhG.js} +1 -1
  31. package/dist/gateway/static/root/assets/{capabilities-BQ0bsu6d.js → capabilities-BcQa8c9n.js} +1 -1
  32. package/dist/gateway/static/root/assets/{capabilities-CTu4Y4Gc.js → capabilities-aT-QjNTl.js} +1 -1
  33. package/dist/gateway/static/root/assets/capabilities-page-DlpuHdHi.js +2 -0
  34. package/dist/gateway/static/root/assets/{capabilities-settings-panel-Cq28kvMr.js → capabilities-settings-panel-pvqkN2-2.js} +3 -3
  35. package/dist/gateway/static/root/assets/{channels-BPVkbqBI.js → channels-BUPtawh6.js} +1 -1
  36. package/dist/gateway/static/root/assets/{chat-agents-api-XnegLpGF.js → chat-agents-api-B8JO6Tcj.js} +1 -1
  37. package/dist/gateway/static/root/assets/{chat-chart-block-BJFCFZz2.js → chat-chart-block-DRtuFfF1.js} +1 -1
  38. package/dist/gateway/static/root/assets/chat-page-BP0huA-W.js +72 -0
  39. package/dist/gateway/static/root/assets/{chat-terminal-dock-B9KlHa8j.js → chat-terminal-dock-Dkqq5FSL.js} +1 -1
  40. package/dist/gateway/static/root/assets/{command-palette-api-DW7O6fME.js → command-palette-api-qujvNqkK.js} +1 -1
  41. package/dist/gateway/static/root/assets/{composer-payload-handoff-qheyxoAD.js → composer-payload-handoff-CYIhcczq.js} +1 -1
  42. package/dist/gateway/static/root/assets/{computer-settings-page-KmaJ2UVz.js → computer-settings-page-8q4hRmoo.js} +1 -1
  43. package/dist/gateway/static/root/assets/connected-providers-grid-CKZfhHSD.js +1 -0
  44. package/dist/gateway/static/root/assets/{connector-service-page-BgexZyHR.js → connector-service-page-DQaTI21R.js} +1 -1
  45. package/dist/gateway/static/root/assets/{connectors-api-DEYdFCdS.js → connectors-api-BjypBp2g.js} +1 -1
  46. package/dist/gateway/static/root/assets/connectors-page-Lf1ZzaVn.js +1 -0
  47. package/dist/gateway/static/root/assets/{date-picker-CSuiNiPU.js → date-picker-D_PSHGpe.js} +1 -1
  48. package/dist/gateway/static/root/assets/{dependency-picker-DHFVFI74.js → dependency-picker-UqKVJ9dv.js} +1 -1
  49. package/dist/gateway/static/root/assets/{desktop-pet-DK3tV5PW.js → desktop-pet-1Et9VqkM.js} +1 -1
  50. package/dist/gateway/static/root/assets/{desktop-pet-narrative-CS8qJpNO.js → desktop-pet-narrative-rADKU0FX.js} +1 -1
  51. package/dist/gateway/static/root/assets/{desktop-pet-settings-BKIcBnfQ.js → desktop-pet-settings-0fCGgaG7.js} +1 -1
  52. package/dist/gateway/static/root/assets/{dev-view-store-ZgXvR5Sl.js → dev-view-store-TTj_djD8.js} +1 -1
  53. package/dist/gateway/static/root/assets/device-pairing-wizard-ByEL5lvM.js +1 -0
  54. package/dist/gateway/static/root/assets/{directory-picker-path-field-C4N_kXUX.js → directory-picker-path-field-C07a7wYX.js} +1 -1
  55. package/dist/gateway/static/root/assets/{discussion-annotation-sync-CdbkKHiR.js → discussion-annotation-sync-BFqKm9ky.js} +1 -1
  56. package/dist/gateway/static/root/assets/{extension-debug-page-vdSyb_US.js → extension-debug-page-DFaVlqas.js} +1 -1
  57. package/dist/gateway/static/root/assets/{extension-iframe-host-D4w7-mf1.js → extension-iframe-host-BfzPfXBq.js} +1 -1
  58. package/dist/gateway/static/root/assets/{extension-marketplace-api-BVMU-5FO.js → extension-marketplace-api-ow0K1Y4_.js} +1 -1
  59. package/dist/gateway/static/root/assets/{extension-page-BE7FHMek.js → extension-page-CrDADV5W.js} +1 -1
  60. package/dist/gateway/static/root/assets/{extension-provider-8RM98QmD.js → extension-provider-mnRoa63o.js} +1 -1
  61. package/dist/gateway/static/root/assets/{extension-settings-page--SP1Dy2l.js → extension-settings-page-BLl02GFY.js} +1 -1
  62. package/dist/gateway/static/root/assets/{file-preview-surface-CFFuUQVY.js → file-preview-surface-TGdKqhCf.js} +1 -1
  63. package/dist/gateway/static/root/assets/{gateway-config-swr-i6wzzdws.js → gateway-config-swr-DfPQIHOL.js} +1 -1
  64. package/dist/gateway/static/root/assets/{gateway-realtime-B1CCUrsG.js → gateway-realtime-67vWg_M2.js} +1 -1
  65. package/dist/gateway/static/root/assets/gateway-realtime-store-Bkt1z-xo.js +1 -0
  66. package/dist/gateway/static/root/assets/{gateway-restart-B3Odfu1z.js → gateway-restart-CLtR2wkL.js} +1 -1
  67. package/dist/gateway/static/root/assets/{gateway-settings-QIwB2Ld0.js → gateway-settings-COvC3r-l.js} +1 -1
  68. package/dist/gateway/static/root/assets/{gateway-startup-retry-DBpCoigO.js → gateway-startup-retry-9YQllbw2.js} +1 -1
  69. package/dist/gateway/static/root/assets/{global-defaults-api-GQG-5G20.js → global-defaults-api-DYMRjGvd.js} +1 -1
  70. package/dist/gateway/static/root/assets/{home-page-BsfeSXsZ.js → home-page-k9LFXcVa.js} +2 -2
  71. package/dist/gateway/static/root/assets/{image-generation-api-CaiTrM7V.js → image-generation-api-Dzydfvy8.js} +1 -1
  72. package/dist/gateway/static/root/assets/{imports-page-CLkhwelO.js → imports-page-Csd_YZXZ.js} +1 -1
  73. package/dist/gateway/static/root/assets/index-CpwPxKQ8.css +1 -0
  74. package/dist/gateway/static/root/assets/index-DKW7BeT_.js +11 -0
  75. package/dist/gateway/static/root/assets/{install-connector-dialog-B9YBBGhs.js → install-connector-dialog-CTQAKTPv.js} +1 -1
  76. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DrZQukhN.js → keyboard-shortcuts-settings-B201bMIa.js} +1 -1
  77. package/dist/gateway/static/root/assets/{local-app-workbench-page-CecbOjks.js → local-app-workbench-page-CD_8_gd_.js} +1 -1
  78. package/dist/gateway/static/root/assets/{local-apps-page-CkVtgVlJ.js → local-apps-page-BOwqNH0L.js} +1 -1
  79. package/dist/gateway/static/root/assets/local-session-drafts-DjmK-SM9.js +4 -0
  80. package/dist/gateway/static/root/assets/{locale-store-_-_QzAV0.js → locale-store-Bg_XR36n.js} +1 -1
  81. package/dist/gateway/static/root/assets/{logs-page-Dok7TpJ0.js → logs-page-gw3E9CMQ.js} +1 -1
  82. package/dist/gateway/static/root/assets/{management-settings-CNbeHUKa.js → management-settings-t_Z2mCyw.js} +1 -1
  83. package/dist/gateway/static/root/assets/{markdown-view-CFWJhIqU.js → markdown-view-BUpXJUPv.js} +1 -1
  84. package/dist/gateway/static/root/assets/{media-plugins-BEcCzwnv.js → media-plugins-_shnaEMY.js} +1 -1
  85. package/dist/gateway/static/root/assets/messages-DG4HLOER.js +3 -0
  86. package/dist/gateway/static/root/assets/model-selector-a7PIT1Lk.js +1 -0
  87. package/dist/gateway/static/root/assets/{models-hub-cache-B1dBNhhc.js → models-hub-cache-KOJC3z6Q.js} +1 -1
  88. package/dist/gateway/static/root/assets/note-detail-panel-BsHYUFgk.js +5 -0
  89. package/dist/gateway/static/root/assets/note-image-lightbox-B-bEtjhj.js +1 -0
  90. package/dist/gateway/static/root/assets/{notes-api-ja_AMIh6.js → notes-api-BSmikUKI.js} +1 -1
  91. package/dist/gateway/static/root/assets/{notes-page-_IG1mwIH.js → notes-page-CA0NRL8O.js} +1 -1
  92. package/dist/gateway/static/root/assets/{oauth-api-C0NG7Hgs.js → oauth-api-D2t9HXoC.js} +1 -1
  93. package/dist/gateway/static/root/assets/{oauth-provider-connect-DLQ6Jhjc.js → oauth-provider-connect-DGGGGtcB.js} +1 -1
  94. package/dist/gateway/static/root/assets/{page-context-capture-button-DBlILV5t.js → page-context-capture-button-BH54VO0V.js} +1 -1
  95. package/dist/gateway/static/root/assets/{page-context-draft-CcZSjlMa.js → page-context-draft-BS5y8Cx9.js} +1 -1
  96. package/dist/gateway/static/root/assets/page-header-store-BdZnUh-D.js +1 -0
  97. package/dist/gateway/static/root/assets/{personal-avatar-D3tjI4rK.js → personal-avatar-D8DtpDTa.js} +1 -1
  98. package/dist/gateway/static/root/assets/{personal-page-C1gIYjQo.js → personal-page-KJezmTKP.js} +1 -1
  99. package/dist/gateway/static/root/assets/{personal-settings-panel-Nm03jL4v.js → personal-settings-panel-9uDaNJy5.js} +1 -1
  100. package/dist/gateway/static/root/assets/{phone-dependencies-card-72RGs4eb.js → phone-dependencies-card-DLYrI0C4.js} +1 -1
  101. package/dist/gateway/static/root/assets/{phone-model-picker-CNxK_l_B.js → phone-model-picker-BbA2iI-3.js} +1 -1
  102. package/dist/gateway/static/root/assets/{phone-settings-page-D5PodpGU.js → phone-settings-page-Cg_BPss4.js} +1 -1
  103. package/dist/gateway/static/root/assets/{phone-workspace-store-Ci43KRd6.js → phone-workspace-store-CVDk80Bf.js} +1 -1
  104. package/dist/gateway/static/root/assets/plugin-details-dialog-DgibLkc3.js +1 -0
  105. package/dist/gateway/static/root/assets/{preference-select-fields-CyFvi9Es.js → preference-select-fields-BVoN-lAv.js} +1 -1
  106. package/dist/gateway/static/root/assets/{product-automation-feedback-BRdOheLC.js → product-automation-feedback-DCo90zGh.js} +2 -2
  107. package/dist/gateway/static/root/assets/{product-open-page-CIZj7rh-.js → product-open-page-OWl8IAoY.js} +1 -1
  108. package/dist/gateway/static/root/assets/{product-preview-content-yK-9po5S.js → product-preview-content-Cjas7UNe.js} +1 -1
  109. package/dist/gateway/static/root/assets/{product-preview-modal-CkdKPk-W.js → product-preview-modal-CPWRvBI9.js} +2 -2
  110. package/dist/gateway/static/root/assets/{project-detail-page-D_Kft8au.js → project-detail-page-B_HlZux_.js} +3 -3
  111. package/dist/gateway/static/root/assets/{project-understanding-6raciQr0.js → project-understanding-Ba02SFzB.js} +1 -1
  112. package/dist/gateway/static/root/assets/{projects-page-CNCw6Q5o.js → projects-page-CdfKjp95.js} +1 -1
  113. package/dist/gateway/static/root/assets/{providers-api-DGeFqpPL.js → providers-api-rwQ4LWzr.js} +1 -1
  114. package/dist/gateway/static/root/assets/{recording-upload-rA0Z6W2g.js → recording-upload-BSmvRrZQ.js} +1 -1
  115. package/dist/gateway/static/root/assets/{registry-api-5LqCHY-I.js → registry-api-Vy7LfH6E.js} +1 -1
  116. package/dist/gateway/static/root/assets/{remote-access-hub-DftT6xNt.js → remote-access-hub-UXrnpGev.js} +1 -1
  117. package/dist/gateway/static/root/assets/{resource-unavailable-CqP8gARc.js → resource-unavailable-f9OzSi4W.js} +1 -1
  118. package/dist/gateway/static/root/assets/route-preload-BtObM-co.js +2 -0
  119. package/dist/gateway/static/root/assets/{runtime-tools-api-CUzfEj0z.js → runtime-tools-api-Bt8t37z5.js} +1 -1
  120. package/dist/gateway/static/root/assets/runtime-tools-settings-panel-DU4UXnBm.js +1 -0
  121. package/dist/gateway/static/root/assets/{service-recommendation-list-Bo46zqXR.js → service-recommendation-list-CuYsRcBB.js} +1 -1
  122. package/dist/gateway/static/root/assets/{session-api-CZQ-wpwx.js → session-api-DJI9eSgw.js} +1 -1
  123. package/dist/gateway/static/root/assets/session-manager-CtKgACGl.js +23 -0
  124. package/dist/gateway/static/root/assets/sessions-page-BAsKzRHt.js +1 -0
  125. package/dist/gateway/static/root/assets/settings-advanced-gate-CjAFqg2U.js +1 -0
  126. package/dist/gateway/static/root/assets/{settings-advanced-section-CrqVxpan.js → settings-advanced-section-BxUuF_yi.js} +1 -1
  127. package/dist/gateway/static/root/assets/{settings-mode-store-D4AZlZDq.js → settings-mode-store-CaoRh2gt.js} +1 -1
  128. package/dist/gateway/static/root/assets/{settings-page-header-CoPd_JDb.js → settings-page-header-CyUHrn7c.js} +1 -1
  129. package/dist/gateway/static/root/assets/{settings-page-layout-D39EvFvm.js → settings-page-layout-DGVqXrlp.js} +1 -1
  130. package/dist/gateway/static/root/assets/{settings-page-D-X2rL2k.js → settings-page-qQ8-6dJ_.js} +1 -1
  131. package/dist/gateway/static/root/assets/setup-status-panel-BpaPb625.js +1 -0
  132. package/dist/gateway/static/root/assets/{share-link-dialog-D4oGzmxA.js → share-link-dialog-CQJ6Ykm2.js} +1 -1
  133. package/dist/gateway/static/root/assets/{share-preview-page-CArPpOZz.js → share-preview-page-Cem96FbB.js} +1 -1
  134. package/dist/gateway/static/root/assets/{shares-api-DbJOyf2K.js → shares-api-Dowes16l.js} +1 -1
  135. package/dist/gateway/static/root/assets/shares-settings-DZEkZDR0.js +1 -0
  136. package/dist/gateway/static/root/assets/{skill-api-CQxLO0sy.js → skill-api-D8ZwFEVe.js} +1 -1
  137. package/dist/gateway/static/root/assets/{skill-list-api-BkahlC5N.js → skill-list-api-B4gp00-f.js} +1 -1
  138. package/dist/gateway/static/root/assets/{skill-reload-api-DZQLAkSr.js → skill-reload-api-ClmaaDXo.js} +1 -1
  139. package/dist/gateway/static/root/assets/{skills-page-BBlJMOZU.js → skills-page-CV0X9rvG.js} +1 -1
  140. package/dist/gateway/static/root/assets/{system-settings-panel-b2h_YWsq.js → system-settings-panel-D095uacX.js} +1 -1
  141. package/dist/gateway/static/root/assets/task-detail-page-CY2C4AM2.js +2 -0
  142. package/dist/gateway/static/root/assets/{task-result-evidence-DLnPVj6x.js → task-result-evidence-LUrJlUhb.js} +1 -1
  143. package/dist/gateway/static/root/assets/{terminal-panel-store-Xmw-UfZa.js → terminal-panel-store-BqEDB1Vl.js} +1 -1
  144. package/dist/gateway/static/root/assets/{theme-store-DU_07f3M.js → theme-store-gAcojLgP.js} +1 -1
  145. package/dist/gateway/static/root/assets/tool-friendly-title-o6sxGVUu.js +1 -0
  146. package/dist/gateway/static/root/assets/tracing-settings-page-B1ZRh-Is.js +1 -0
  147. package/dist/gateway/static/root/assets/{tunnel-api-DD2HgB7G.js → tunnel-api-C9u9E3UQ.js} +1 -1
  148. package/dist/gateway/static/root/assets/{understanding-activity-store-CyQMYQhD.js → understanding-activity-store-BTrzsR6_.js} +1 -1
  149. package/dist/gateway/static/root/assets/{understanding-refresh-store-CTgQYLOe.js → understanding-refresh-store-5Qava3jh.js} +1 -1
  150. package/dist/gateway/static/root/assets/{usage-page-BUZLOZLg.js → usage-page-DFMLYKAc.js} +1 -1
  151. package/dist/gateway/static/root/assets/{use-autosave-BqTpwsvF.js → use-autosave-3O-X7x15.js} +1 -1
  152. package/dist/gateway/static/root/assets/{use-composer-attachments-DfP3JrD6.js → use-composer-attachments-BLc4dBfe.js} +1 -1
  153. package/dist/gateway/static/root/assets/{use-file-preview-expanded-D2m6BZLU.js → use-file-preview-expanded-BaOmTXsT.js} +2 -2
  154. package/dist/gateway/static/root/assets/{use-personal-profile-CmLuBSVu.js → use-personal-profile-MusPgljM.js} +1 -1
  155. package/dist/gateway/static/root/assets/{use-workspace-tree-DBvuHcas.js → use-workspace-tree-Ck_U2yTw.js} +1 -1
  156. package/dist/gateway/static/root/assets/user-model-page-Den5Lg-k.js +2 -0
  157. package/dist/gateway/static/root/assets/{voice-api-key-field-DGyL8PYB.js → voice-api-key-field-C5zJApoa.js} +1 -1
  158. package/dist/gateway/static/root/assets/{voice-config-api-CIRG9O8T.js → voice-config-api-DC1bYDt1.js} +1 -1
  159. package/dist/gateway/static/root/assets/{voice-input-shortcut-events-DrVMpqDV.js → voice-input-shortcut-events-0SZjJdVV.js} +1 -1
  160. package/dist/gateway/static/root/assets/{voice-transcribe-api-H8o-xLEf.js → voice-transcribe-api-CxVeANPX.js} +1 -1
  161. package/dist/gateway/static/root/assets/{work-discovery-overlay-CobALTh0.js → work-discovery-overlay-DAQ8McVe.js} +1 -1
  162. package/dist/gateway/static/root/assets/{work-discovery-page-Dxf_Hrwx.js → work-discovery-page-DUQysEyb.js} +1 -1
  163. package/dist/gateway/static/root/assets/{working-directory-picker-modal-E9f8G3se.js → working-directory-picker-modal-BO9qdJyZ.js} +1 -1
  164. package/dist/gateway/static/root/assets/{workspace-api-N7bfM4a1.js → workspace-api-ZrN6yUER.js} +2 -2
  165. package/dist/gateway/static/root/assets/workspace-editor-agent-store-Bo5dwoWP.js +1 -0
  166. package/dist/gateway/static/root/assets/{workspace-file-preview-dialog-BTQfAXNK.js → workspace-file-preview-dialog-Yj_kBWSb.js} +1 -1
  167. package/dist/gateway/static/root/assets/{workspace-open-location-menu-BOGOi-Ck.js → workspace-open-location-menu-yxT7wajO.js} +1 -1
  168. package/dist/gateway/static/root/assets/{xopc-cloud-account-card-Dqfy4Lwy.js → xopc-cloud-account-card-IcH9KDzx.js} +1 -1
  169. package/dist/gateway/static/root/index.html +82 -82
  170. package/dist/package.js +1 -1
  171. package/dist/packages/computer-control-contract/src/index.js +33 -3
  172. package/dist/packages/gateway-contract/src/clarification-questions.js +86 -0
  173. package/dist/packages/gateway-contract/src/clarifications.js +19 -0
  174. package/dist/packages/gateway-contract/src/index.js +1 -0
  175. package/dist/packages/gateway-contract/src/session-input-command.js +3 -0
  176. package/dist/src/agent/agent-manager.js +2 -2
  177. package/dist/src/agent/background-review/run-background-review.js +2 -2
  178. package/dist/src/agent/coding/repository-instructions.js +1 -1
  179. package/dist/src/agent/embedded/index.js +1 -1
  180. package/dist/src/agent/embedded/run-for-session.js +1 -1
  181. package/dist/src/agent/embedded/run-turn.js +67 -7
  182. package/dist/src/agent/embedded/session-tool-result-guard.js +2 -2
  183. package/dist/src/agent/embedded/tool-result-truncation.js +1 -1
  184. package/dist/src/agent/external-tools/cliProvider.js +2 -2
  185. package/dist/src/agent/external-tools/composio-provider.js +2 -2
  186. package/dist/src/agent/external-tools/endpoint-provider.js +2 -2
  187. package/dist/src/agent/inbound/attachment-pipeline.js +1 -1
  188. package/dist/src/agent/memory/compaction.js +1 -1
  189. package/dist/src/agent/memory/context-budget.js +1 -1
  190. package/dist/src/agent/memory/context-recovery.js +1 -1
  191. package/dist/src/agent/memory/user-message-text.js +1 -1
  192. package/dist/src/agent/service/btw-query.js +1 -1
  193. package/dist/src/agent/service/direct-turn-helpers.js +1 -1
  194. package/dist/src/agent/service/process-direct-streaming.js +2 -2
  195. package/dist/src/agent/service.js +1 -1
  196. package/dist/src/agent/skills/index.js +1 -1
  197. package/dist/src/agent/skills/managed-store.js +1 -1
  198. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  199. package/dist/src/agent/source-context/types.d.ts +1 -0
  200. package/dist/src/agent/tool-manuals/computer.d.ts +1 -1
  201. package/dist/src/agent/tool-manuals/computer.js +6 -0
  202. package/dist/src/agent/tools/clarify-tool.js +43 -5
  203. package/dist/src/agent/tools/cli-clarify.js +1 -0
  204. package/dist/src/agent/tools/computer-use-tool.js +18 -5
  205. package/dist/src/agent/tools/dataBatch.js +1 -1
  206. package/dist/src/agent/tools/personal-read-tool.js +1 -1
  207. package/dist/src/agent/tools/personal-task-tool.d.ts +1 -1
  208. package/dist/src/agent/tools/phone-use-tool.js +14 -4
  209. package/dist/src/agent/tools/session-search-tool.js +1 -1
  210. package/dist/src/agent/tools/xopc-use-tool.js +2 -2
  211. package/dist/src/agent-catalog/capabilities.js +2 -2
  212. package/dist/src/agent-catalog/repository.js +1 -1
  213. package/dist/src/automations/api/routes.js +2 -2
  214. package/dist/src/automations/capabilities/drafts.js +1 -1
  215. package/dist/src/automations/capabilities/write.js +1 -1
  216. package/dist/src/automations/configuration-conversation.js +1 -1
  217. package/dist/src/browser/providers/browser-ext-install.js +1 -1
  218. package/dist/src/capabilities/runtime/dispatcher.js +1 -1
  219. package/dist/src/capabilities/runtime/product.js +1 -1
  220. package/dist/src/cli/commands/agent.js +1 -1
  221. package/dist/src/cli/commands/agents.js +1 -1
  222. package/dist/src/cli/commands/backup.js +1 -1
  223. package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
  224. package/dist/src/cli/commands/models.js +2 -2
  225. package/dist/src/cli/commands/onboard/model.js +1 -1
  226. package/dist/src/cli/commands/onboard.js +1 -1
  227. package/dist/src/cli/commands/platform.js +1 -1
  228. package/dist/src/cli/commands/profile.js +1 -1
  229. package/dist/src/cli/commands/tunnel.js +1 -1
  230. package/dist/src/cli/commands/update.js +1 -1
  231. package/dist/src/cli/extension-cli-register.js +1 -1
  232. package/dist/src/cli/utils/init-workspace-core.js +1 -1
  233. package/dist/src/computer/agent-context.d.ts +21 -0
  234. package/dist/src/computer/agent-context.js +107 -0
  235. package/dist/src/computer/broker.d.ts +4 -2
  236. package/dist/src/computer/broker.js +26 -11
  237. package/dist/src/computer/diagnostics.d.ts +63 -9
  238. package/dist/src/computer/diagnostics.js +45 -4
  239. package/dist/src/computer/errors.d.ts +1 -1
  240. package/dist/src/computer/errors.js +4 -0
  241. package/dist/src/computer/evaluation.d.ts +4 -4
  242. package/dist/src/computer/native-timing.d.ts +15 -0
  243. package/dist/src/computer/native-timing.js +49 -0
  244. package/dist/src/computer/program-runtime.d.ts +22 -0
  245. package/dist/src/computer/program-runtime.js +105 -0
  246. package/dist/src/computer/runtime.d.ts +36 -2
  247. package/dist/src/computer/runtime.js +269 -58
  248. package/dist/src/config/agent-profile.js +1 -1
  249. package/dist/src/config/index.js +1 -1
  250. package/dist/src/config/schema.d.ts +18 -0
  251. package/dist/src/connectors/learning-coordinator.js +1 -1
  252. package/dist/src/execution-environments/local-worktree-manager.js +1 -1
  253. package/dist/src/extensions/agent-plugins/skill-catalog.js +1 -1
  254. package/dist/src/extensions/agent-plugins/validation.js +1 -1
  255. package/dist/src/gateway/agents-admin.js +2 -2
  256. package/dist/src/gateway/ephemeral-clarification-waiter.js +1 -0
  257. package/dist/src/gateway/global-defaults-admin.js +2 -2
  258. package/dist/src/gateway/hono/routes/agents.js +1 -1
  259. package/dist/src/gateway/hono/routes/composer-history.js +1 -1
  260. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  261. package/dist/src/gateway/hono/routes/connectors.js +1 -1
  262. package/dist/src/gateway/hono/routes/home.js +1 -1
  263. package/dist/src/gateway/hono/routes/notes.js +2 -2
  264. package/dist/src/gateway/hono/routes/phone-setup.js +1 -1
  265. package/dist/src/gateway/hono/routes/phone.js +31 -6
  266. package/dist/src/gateway/hono/routes/projects.js +2 -2
  267. package/dist/src/gateway/hono/routes/public-gateway.js +2 -1
  268. package/dist/src/gateway/hono/routes/session-command-handler.js +1 -0
  269. package/dist/src/gateway/hono/routes/session-input-handler.d.ts +6 -0
  270. package/dist/src/gateway/hono/routes/session-input-handler.js +1 -1
  271. package/dist/src/gateway/hono/routes/tasks.js +1 -1
  272. package/dist/src/gateway/hono/routes/user-model-refresh.js +1 -1
  273. package/dist/src/gateway/image-generation-setup.js +1 -1
  274. package/dist/src/gateway/next-turn-suggestions/snapshot.js +1 -1
  275. package/dist/src/gateway/service/agent-runner.js +8 -3
  276. package/dist/src/gateway/service/config-coordinator.d.ts +6 -0
  277. package/dist/src/gateway/service/run-gateway-agent.js +1 -1
  278. package/dist/src/gateway/service/session-input-coordinator.js +5 -4
  279. package/dist/src/gateway/service.js +7 -7
  280. package/dist/src/gateway/xopc-cloud-capability-setup.js +1 -1
  281. package/dist/src/home-intelligence/host.js +2 -2
  282. package/dist/src/imports/importService.js +1 -1
  283. package/dist/src/local-apps/service.js +1 -1
  284. package/dist/src/personal-agent/service.js +1 -1
  285. package/dist/src/phone/adb-driver.d.ts +15 -1
  286. package/dist/src/phone/adb-driver.js +104 -41
  287. package/dist/src/phone/assistance.js +3 -0
  288. package/dist/src/phone/autoglm-protocol.d.ts +36 -0
  289. package/dist/src/phone/autoglm-protocol.js +88 -0
  290. package/dist/src/phone/autoglm-upstream-prompt.d.ts +2 -0
  291. package/dist/src/phone/autoglm-upstream-prompt.js +5 -0
  292. package/dist/src/phone/autoglm-upstream.LICENSE +201 -0
  293. package/dist/src/phone/cloud-adb-connection.d.ts +3 -0
  294. package/dist/src/phone/cloud-adb-connection.js +102 -31
  295. package/dist/src/phone/cloud-adb.js +18 -6
  296. package/dist/src/phone/completion-recovery.d.ts +6 -0
  297. package/dist/src/phone/completion-recovery.js +30 -0
  298. package/dist/src/phone/contracts.d.ts +24 -0
  299. package/dist/src/phone/contracts.js +6 -0
  300. package/dist/src/phone/execution-trace.d.ts +51 -0
  301. package/dist/src/phone/execution-trace.js +78 -0
  302. package/dist/src/phone/model-adapter.d.ts +9 -1
  303. package/dist/src/phone/model-adapter.js +132 -61
  304. package/dist/src/phone/model-response.d.ts +5 -0
  305. package/dist/src/phone/model-response.js +118 -0
  306. package/dist/src/phone/runtime.d.ts +11 -1
  307. package/dist/src/phone/runtime.js +177 -40
  308. package/dist/src/phone/text-session.d.ts +14 -0
  309. package/dist/src/phone/text-session.js +39 -0
  310. package/dist/src/phone/ui-dump-binary.d.ts +1 -1
  311. package/dist/src/phone/ui-dump-binary.js +1 -1
  312. package/dist/src/phone/ui-session.d.ts +22 -0
  313. package/dist/src/phone/ui-session.js +191 -0
  314. package/dist/src/process/phone-process.d.ts +1 -0
  315. package/dist/src/process/phone-process.js +11 -1
  316. package/dist/src/routing/agent-session-key.js +1 -1
  317. package/dist/src/runtime-tools/archive.js +1 -1
  318. package/dist/src/session/session-context-for-llm.js +1 -0
  319. package/dist/src/session/session-title.js +1 -1
  320. package/dist/src/storage/sqlite/clarification-wait-repository.js +45 -4
  321. package/dist/src/storage/sqlite/index.js +6 -6
  322. package/dist/src/storage/sqlite/session-creation-repository.js +1 -1
  323. package/dist/src/storage/sqlite/session-repository.js +1 -1
  324. package/dist/src/tasks/capabilities/read.js +2 -2
  325. package/dist/src/tasks/capabilities/write.js +1 -1
  326. package/dist/src/tasks/home-query-service.js +1 -1
  327. package/dist/src/tasks/task-allocation-repository.js +1 -1
  328. package/dist/src/tui/backends/embedded-backend.js +2 -2
  329. package/dist/src/voice/realtime/persona-context.js +1 -1
  330. package/package.json +3 -1
  331. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-L6J-FYQS.js +0 -1
  332. package/dist/gateway/static/root/assets/automation-task-card-BV7hPwN1.js +0 -3
  333. package/dist/gateway/static/root/assets/automations-workspace-CPFYdI8m.js +0 -9
  334. package/dist/gateway/static/root/assets/capabilities-page-ljQTg4T5.js +0 -2
  335. package/dist/gateway/static/root/assets/chat-page-BpvlJdEr.js +0 -72
  336. package/dist/gateway/static/root/assets/connected-providers-grid-BIX82L4N.js +0 -1
  337. package/dist/gateway/static/root/assets/connectors-page-BawS0DUd.js +0 -1
  338. package/dist/gateway/static/root/assets/device-pairing-wizard-ZY_cdq5I.js +0 -1
  339. package/dist/gateway/static/root/assets/gateway-realtime-store-BFCA_TAU.js +0 -1
  340. package/dist/gateway/static/root/assets/index-Dv8mUlNN.css +0 -1
  341. package/dist/gateway/static/root/assets/index-GX_PTIj6.js +0 -11
  342. package/dist/gateway/static/root/assets/local-session-drafts-DVSVgTCK.js +0 -1
  343. package/dist/gateway/static/root/assets/messages-D1u8VsPq.js +0 -3
  344. package/dist/gateway/static/root/assets/model-selector-DKB20MJY.js +0 -1
  345. package/dist/gateway/static/root/assets/note-detail-panel-COp5zpe4.js +0 -5
  346. package/dist/gateway/static/root/assets/note-image-lightbox-DvtEn8dg.js +0 -1
  347. package/dist/gateway/static/root/assets/page-header-store-RgQRaRbH.js +0 -1
  348. package/dist/gateway/static/root/assets/plugin-details-dialog-D_Lkepqt.js +0 -1
  349. package/dist/gateway/static/root/assets/route-preload-Hr12PIMD.js +0 -2
  350. package/dist/gateway/static/root/assets/runtime-impact-DbySfhdp.js +0 -1
  351. package/dist/gateway/static/root/assets/runtime-tools-settings-panel-VIFAEKJi.js +0 -1
  352. package/dist/gateway/static/root/assets/session-manager-DhoRfUGE.js +0 -23
  353. package/dist/gateway/static/root/assets/sessions-page-BISYL6iE.js +0 -1
  354. package/dist/gateway/static/root/assets/settings-advanced-gate-BLnNiubD.js +0 -1
  355. package/dist/gateway/static/root/assets/setup-status-panel-DyzdCgrb.js +0 -1
  356. package/dist/gateway/static/root/assets/shares-settings-BFLomErf.js +0 -1
  357. package/dist/gateway/static/root/assets/task-detail-page-BkvjB6fd.js +0 -2
  358. package/dist/gateway/static/root/assets/tool-friendly-title-DGmi7rCQ.js +0 -1
  359. package/dist/gateway/static/root/assets/tracing-settings-page-CemIMuec.js +0 -1
  360. package/dist/gateway/static/root/assets/user-model-page-BhX_Ahlu.js +0 -2
  361. package/dist/gateway/static/root/assets/workspace-editor-agent-store-Cb4TlnKX.js +0 -1
@@ -45,14 +45,32 @@ declare const Reply: z.ZodObject<{
45
45
  precheckMs: z.ZodNumber;
46
46
  inputMs: z.ZodNumber;
47
47
  postObserveMs: z.ZodNumber;
48
+ inputDetail: z.ZodOptional<z.ZodObject<{
49
+ wallMs: z.ZodNumber;
50
+ identityCheckMs: z.ZodNumber;
51
+ actionValidationMs: z.ZodNumber;
52
+ windowsInputGuardMs: z.ZodNullable<z.ZodNumber>;
53
+ sdkCallMs: z.ZodNumber;
54
+ resultValidationMs: z.ZodNumber;
55
+ renderGraceMs: z.ZodNumber;
56
+ unattributedMs: z.ZodNumber;
57
+ sdkCalls: z.ZodNumber;
58
+ completed: z.ZodBoolean;
59
+ }, z.core.$strict>>;
60
+ precheckSamples: z.ZodOptional<z.ZodNumber>;
61
+ }, z.core.$strict>>;
62
+ transportTiming: z.ZodOptional<z.ZodObject<{
63
+ brokerWallMs: z.ZodNumber;
64
+ frameUploadMs: z.ZodNullable<z.ZodNumber>;
65
+ commandWallMs: z.ZodNumber;
48
66
  }, z.core.$strict>>;
49
67
  errorCode: z.ZodOptional<z.ZodString>;
50
68
  diagnostic: z.ZodOptional<z.ZodObject<{
51
69
  errorCode: z.ZodString;
52
70
  phase: z.ZodEnum<{
53
71
  model: "model";
54
- observe: "observe";
55
72
  dispatch: "dispatch";
73
+ observe: "observe";
56
74
  frame_upload: "frame_upload";
57
75
  }>;
58
76
  diagnosticId: z.ZodUUID;
@@ -122,6 +140,10 @@ export declare const ComputerUseInputSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
122
140
  observe: "observe";
123
141
  }>;
124
142
  prepare: z.ZodBoolean;
143
+ planner: z.ZodOptional<z.ZodEnum<{
144
+ agent: "agent";
145
+ gui: "gui";
146
+ }>>;
125
147
  }, z.core.$strict>, z.ZodObject<{
126
148
  op: z.ZodLiteral<"observe">;
127
149
  question: z.ZodOptional<z.ZodString>;
@@ -151,6 +173,11 @@ export declare const ComputerUseInputSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
151
173
  label: z.ZodString;
152
174
  }, z.core.$strict>], "kind">>;
153
175
  flowId: z.ZodOptional<z.ZodUUID>;
176
+ }, z.core.$strict>, z.ZodObject<{
177
+ op: z.ZodLiteral<"exec">;
178
+ code: z.ZodString;
179
+ maxActions: z.ZodOptional<z.ZodNumber>;
180
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
154
181
  }, z.core.$strict>, z.ZodObject<{
155
182
  op: z.ZodLiteral<"run">;
156
183
  goal: z.ZodString;
@@ -181,6 +208,10 @@ export type ComputerUseInput = z.infer<typeof ComputerUseInputSchema>;
181
208
  export interface ComputerPublicResult {
182
209
  status: string;
183
210
  sessionId: string;
211
+ output?: string;
212
+ scriptError?: string;
213
+ scriptErrorMessage?: string;
214
+ imageRef?: string;
184
215
  pending?: boolean;
185
216
  summary?: string;
186
217
  receipt?: z.infer<typeof Reply>['receipt'];
@@ -238,8 +269,11 @@ export declare class ComputerRuntime {
238
269
  private readonly reports;
239
270
  private readonly openingReports;
240
271
  constructor(endpoints: EndpointToolRuntime, getConfig: () => Config, getTurnEndpoint?: (owner: string) => string | undefined, flowStore?: ComputerFlowRepository);
241
- execute(owner: string, input: ComputerUseInput, signal?: AbortSignal): Promise<ComputerPublicResult>;
272
+ execute(owner: string, input: ComputerUseInput, signal?: AbortSignal, execution?: {
273
+ toolCallId: string;
274
+ }): Promise<ComputerPublicResult>;
242
275
  private flowScope;
276
+ private executeProgram;
243
277
  private executeGoal;
244
278
  private executeInput;
245
279
  private isUndispatchedChange;
@@ -1,16 +1,18 @@
1
1
  import { createLogger } from "../utils/logger/index.js";
2
2
  import { init_logger } from "../utils/logger.js";
3
3
  import { resolveEffectiveAgentConfigForSession } from "../config/agent-profile.js";
4
- import { COMPUTER_CONTROL_TOOL, ComputerAppSchema, ComputerObservationSchema, ComputerWindowSchema, init_src } from "../../packages/computer-control-contract/src/index.js";
4
+ import { COMPUTER_CONTROL_TOOL, ComputerActionSchema, ComputerAppSchema, ComputerObservationSchema, ComputerTransportTimingSchema, ComputerWindowSchema, init_src } from "../../packages/computer-control-contract/src/index.js";
5
5
  import { ComputerServiceLimitsSchema, computerModelProfile, init_model_policy } from "./model-policy.js";
6
6
  import { getApiKey, init_providers, resolveModel } from "../providers/index.js";
7
7
  import { rejectUnbudgetedCloudTransport } from "../providers/xopc-cloud-credit-budget.js";
8
8
  import { enterComputerControl, leaveComputerControl } from "./control-guard.js";
9
+ import { clearComputerFrames, computerAgentTurn, retainComputerFrame } from "./agent-context.js";
9
10
  import { ComputerDiagnosticSchema, ComputerOperationError, computerDiagnostic, computerRecovery } from "./errors.js";
10
11
  import { createComputerModelAdapter, predictComputerStep, readComputerJson } from "./model-adapter.js";
11
12
  import { groundComputerAction } from "./semantic-actions.js";
12
13
  import { ComputerFlowCapture, ComputerFlowStore, computerFlowHint, computerFlowMetadata } from "./flows.js";
13
14
  import { ComputerNativeTimingSchema, ComputerSessionDiagnostics } from "./diagnostics.js";
15
+ import { executeComputerProgram } from "./program-runtime.js";
14
16
  import { ComputerExpectationSchema, ComputerTaskState, verifyComputerExpectation } from "./task-state.js";
15
17
  import { randomUUID } from "node:crypto";
16
18
  import { z } from "zod";
@@ -36,6 +38,7 @@ const Reply = z.object({
36
38
  grantId: z.string().optional(),
37
39
  observation: ComputerObservationSchema.optional(),
38
40
  nativeMs: ComputerNativeTimingSchema.optional(),
41
+ transportTiming: ComputerTransportTimingSchema.optional(),
39
42
  errorCode: z.string().optional(),
40
43
  diagnostic: ComputerDiagnosticSchema.optional(),
41
44
  apps: z.array(ComputerAppSchema).max(100).optional(),
@@ -72,7 +75,8 @@ const ComputerUseInputSchema = z.discriminatedUnion("op", [
72
75
  appRef: z.string().min(1).max(200),
73
76
  windowRef: z.string().min(1).max(200).optional(),
74
77
  mode: z.enum(["observe", "control"]),
75
- prepare: z.boolean()
78
+ prepare: z.boolean(),
79
+ planner: z.enum(["gui", "agent"]).optional()
76
80
  }).strict(),
77
81
  z.object({
78
82
  op: z.literal("observe"),
@@ -85,6 +89,12 @@ const ComputerUseInputSchema = z.discriminatedUnion("op", [
85
89
  expect: ComputerExpectationSchema.optional(),
86
90
  flowId: z.uuid().optional()
87
91
  }).strict(),
92
+ z.object({
93
+ op: z.literal("exec"),
94
+ code: z.string().max(65536),
95
+ maxActions: z.number().int().min(1).max(12).optional(),
96
+ timeoutMs: z.number().int().min(100).max(12e4).optional()
97
+ }).strict(),
88
98
  z.object({
89
99
  op: z.literal("run"),
90
100
  goal: z.string().min(1).max(4e3),
@@ -113,7 +123,7 @@ var ComputerRuntime = class {
113
123
  this.getTurnEndpoint = getTurnEndpoint;
114
124
  this.flowStore = flowStore;
115
125
  }
116
- async execute(owner, input, signal) {
126
+ async execute(owner, input, signal, execution) {
117
127
  input = ComputerUseInputSchema.parse(input);
118
128
  if (!owner) throw new Error("COMPUTER_CONVERSATION_REQUIRED");
119
129
  if (input.op === "flows" || input.op === "forget_flow") {
@@ -207,7 +217,7 @@ var ComputerRuntime = class {
207
217
  if (diagnostics) this.openingReports.set(owner, diagnostics);
208
218
  try {
209
219
  const operationSignal = signal ? AbortSignal.any([signal, operation.signal]) : operation.signal;
210
- const result = input.op === "run" ? await this.executeGoal(owner, input, operationSignal, diagnostics) : await this.executeInput(owner, input, operationSignal, diagnostics);
220
+ const result = input.op === "exec" ? await this.executeProgram(owner, input, operationSignal, execution) : input.op === "run" ? await this.executeGoal(owner, input, operationSignal, diagnostics) : await this.executeInput(owner, input, operationSignal, diagnostics);
211
221
  if (result.errorCode) diagnostics?.fail(new Error(result.errorCode), diagnostics.phase, result.receipt?.dispatch ?? "notStarted");
212
222
  if (diagnostics && !this.sessions.has(owner)) this.retainReport(owner, diagnostics);
213
223
  return {
@@ -242,6 +252,182 @@ var ComputerRuntime = class {
242
252
  const effective = resolveEffectiveAgentConfigForSession(owner).config;
243
253
  return JSON.stringify([effective.id, effective.workspace]);
244
254
  }
255
+ async executeProgram(owner, input, signal, execution) {
256
+ const s = this.sessions.get(owner);
257
+ if (!s) throw new Error("COMPUTER_OPEN_REQUIRED");
258
+ if (!("planner" in s.binding) || s.binding.planner !== "agent" || !execution) throw new Error("COMPUTER_PLANNER_MISMATCH");
259
+ const turn = computerAgentTurn(owner);
260
+ if (JSON.stringify(turn.binding) !== JSON.stringify(s.binding)) {
261
+ await this.close(owner);
262
+ throw new Error("COMPUTER_AGENT_MODEL_CHANGED");
263
+ }
264
+ const combined = AbortSignal.any([signal, s.controller.signal]);
265
+ let current;
266
+ let actions = 0;
267
+ let imageRef;
268
+ const observe = async (observationSignal = combined) => {
269
+ current?.frame?.fill(0);
270
+ current = await this.send(s, {
271
+ op: "observe",
272
+ sessionId: s.id,
273
+ owner
274
+ }, observationSignal);
275
+ if (current.value.status !== "ready" || current.value.errorCode || !current.value.observation) throw new Error(current.value.errorCode ?? "COMPUTER_NOT_READY");
276
+ const observation = current.value.observation;
277
+ let data;
278
+ try {
279
+ data = JSON.parse(observation.summary);
280
+ } catch {
281
+ data = {
282
+ text: observation.summary,
283
+ elements: [],
284
+ truncated: true
285
+ };
286
+ }
287
+ return {
288
+ snapshotId: observation.id,
289
+ ...data
290
+ };
291
+ };
292
+ const snapshot = (id) => {
293
+ const observation = current?.value.observation;
294
+ if (!observation || observation.id !== id || Date.now() - observation.capturedAt > 5e3) throw new Error("COMPUTER_STALE_OBSERVATION");
295
+ return observation;
296
+ };
297
+ try {
298
+ const result = await executeComputerProgram(input.code, async (method, args, callSignal) => {
299
+ callSignal.throwIfAborted();
300
+ if (!this.getConfig().computer.enabled || Date.now() - s.createdAt >= this.getConfig().computer.maxSessionDurationMs) throw new Error("COMPUTER_SESSION_BUDGET");
301
+ if (JSON.stringify(computerAgentTurn(owner).binding) !== JSON.stringify(s.binding)) throw new Error("COMPUTER_AGENT_MODEL_CHANGED");
302
+ await turn.authorize?.(method, args);
303
+ const hostResult = await (async () => {
304
+ if (method === "observe") {
305
+ const options = z.object({ visual: z.boolean().optional() }).strict().parse(args ?? {});
306
+ const state = await observe(callSignal);
307
+ if (options.visual && current?.frame && current.mimeType) imageRef = retainComputerFrame(owner, execution.toolCallId, current.frame, current.mimeType);
308
+ return state;
309
+ }
310
+ if (method === "emitScreenshot") {
311
+ snapshot(z.object({ snapshotId: z.string() }).strict().parse(args).snapshotId);
312
+ if (!current?.frame || !current.mimeType) throw new Error("COMPUTER_FRAME_REQUIRED");
313
+ imageRef = retainComputerFrame(owner, execution.toolCallId, current.frame, current.mimeType);
314
+ return { imageRef };
315
+ }
316
+ if (method === "resolve") {
317
+ const value = z.object({
318
+ snapshotId: z.string(),
319
+ role: z.string().max(100),
320
+ label: z.string().max(300)
321
+ }).strict().parse(args);
322
+ const data = JSON.parse(snapshot(value.snapshotId).summary);
323
+ if (data.truncated || !Array.isArray(data.elements)) throw new Error("COMPUTER_ELEMENT_REF_REQUIRED");
324
+ const candidates = data.elements.filter((e) => e.role === value.role && e.label === value.label && e.in_web_content !== true);
325
+ if (candidates.length !== 1 || typeof candidates[0].ref !== "string") throw new Error("COMPUTER_ELEMENT_REF_REQUIRED");
326
+ return candidates[0];
327
+ }
328
+ if (method === "verify" || method === "waitFor") {
329
+ const value = z.object({
330
+ expect: ComputerExpectationSchema,
331
+ timeoutMs: z.number().int().min(0).max(5e3).optional()
332
+ }).strict().parse(args);
333
+ const deadline = Date.now() + (method === "waitFor" ? value.timeoutMs ?? 2e3 : 0);
334
+ for (let sample = 0; sample < 20; sample++) {
335
+ const state = await observe(callSignal);
336
+ const verification = verifyComputerExpectation(value.expect, current.value.observation);
337
+ s.diagnostics.verify(verification);
338
+ if (verification?.status === "satisfied" || Date.now() >= deadline || sample === 19) return {
339
+ ...state,
340
+ verification
341
+ };
342
+ await setTimeout(100, void 0, { signal: callSignal });
343
+ }
344
+ }
345
+ if (method === "act") {
346
+ if (s.mode === "observe") throw new Error("COMPUTER_READ_ONLY");
347
+ const value = z.object({
348
+ snapshotId: z.string(),
349
+ action: ComputerActionSchema,
350
+ expect: ComputerExpectationSchema.optional()
351
+ }).strict().parse(args);
352
+ const before = snapshot(value.snapshotId);
353
+ if (++actions > (input.maxActions ?? 6)) throw new Error("COMPUTER_ACTION_BUDGET");
354
+ const action = groundComputerAction(value.action, before);
355
+ s.task.assertProgress(action, before);
356
+ s.pendingContext = {
357
+ goal: "Authorized main-agent UI program",
358
+ before,
359
+ expectation: value.expect
360
+ };
361
+ const envelope = {
362
+ actionId: randomUUID(),
363
+ sessionId: s.id,
364
+ observationId: before.id,
365
+ brokerEpoch: before.brokerEpoch,
366
+ generation: before.generation,
367
+ grantId: current.value.grantId,
368
+ deadlineAt: Date.now() + 12e4,
369
+ action
370
+ };
371
+ const context = {
372
+ observationsReused: 0,
373
+ stabilityObservations: 0,
374
+ actionsRemaining: 1,
375
+ nativeMs: {
376
+ precheckMs: 0,
377
+ inputMs: 0,
378
+ postObserveMs: 0
379
+ }
380
+ };
381
+ clearComputerFrames(owner);
382
+ imageRef = void 0;
383
+ current?.frame?.fill(0);
384
+ current = void 0;
385
+ const authorizationDeadline = Date.now() + 6e4;
386
+ let reply = await this.dispatchAction(s, envelope, callSignal, context);
387
+ while (reply.status === "pending_action") {
388
+ if (Date.now() >= authorizationDeadline) throw new Error("COMPUTER_AUTHORIZATION_TIMEOUT");
389
+ await setTimeout(250, void 0, { signal: callSignal });
390
+ reply = await this.dispatchAction(s, envelope, callSignal, context);
391
+ }
392
+ current = context.observation;
393
+ if (reply.errorCode || reply.receipt?.dispatch !== "completed") throw new Error(reply.errorCode ?? "COMPUTER_NATIVE_ACTION_FAILED");
394
+ let state = {};
395
+ try {
396
+ state = JSON.parse(current?.value.observation?.summary ?? "{}");
397
+ } catch {
398
+ state = { truncated: true };
399
+ }
400
+ return {
401
+ ...state,
402
+ receipt: reply.receipt,
403
+ verification: reply.verification,
404
+ snapshotId: current?.value.observation?.id
405
+ };
406
+ }
407
+ throw new Error("COMPUTER_INVALID_INPUT");
408
+ })();
409
+ return await turn.complete?.(method, hostResult) ?? hostResult;
410
+ }, s.programStore ??= Object.create(null), combined, input.timeoutMs);
411
+ if (result.status === "program_error") {
412
+ await this.close(owner);
413
+ return {
414
+ ...result,
415
+ sessionId: s.id
416
+ };
417
+ }
418
+ return {
419
+ ...result,
420
+ sessionId: s.id,
421
+ ...imageRef ? { imageRef } : {},
422
+ budget: this.budget(s)
423
+ };
424
+ } catch (error) {
425
+ await this.close(owner);
426
+ throw error;
427
+ } finally {
428
+ current?.frame?.fill(0);
429
+ }
430
+ }
245
431
  async executeGoal(owner, input, signal, diagnostics) {
246
432
  const startedAt = Date.now();
247
433
  const phasesBefore = diagnostics?.snapshot().phaseMs;
@@ -310,7 +496,7 @@ var ComputerRuntime = class {
310
496
  } finally {
311
497
  context.observation?.frame?.fill(0);
312
498
  context.observation = void 0;
313
- this.sessions.get(owner)?.adapter.reset?.();
499
+ this.sessions.get(owner)?.adapter?.reset?.();
314
500
  }
315
501
  }
316
502
  async executeInput(owner, input, signal, diagnostics, goalContext) {
@@ -321,7 +507,7 @@ var ComputerRuntime = class {
321
507
  throw new Error("COMPUTER_DISABLED");
322
508
  }
323
509
  let s = this.sessions.get(owner);
324
- if (s?.binding.modelRef.startsWith("xopc-cloud/")) rejectUnbudgetedCloudTransport("computer use");
510
+ if (s && !("planner" in s.binding) && s.binding.modelRef.startsWith("xopc-cloud/")) rejectUnbudgetedCloudTransport("computer use");
325
511
  if (input.op === "discover") {
326
512
  const endpoint = this.resolveEndpoint(owner);
327
513
  const id = randomUUID();
@@ -340,49 +526,66 @@ var ComputerRuntime = class {
340
526
  if (input.op === "open" && !s) {
341
527
  const endpoint = this.resolveEndpoint(owner);
342
528
  const effective = resolveEffectiveAgentConfigForSession(owner).config;
343
- const ref = effective.models.computerUse?.primary;
344
- if (!ref) throw new Error("COMPUTER_MODEL_REQUIRED");
345
- const model = resolveModel(ref);
346
- const profile = computerModelProfile(model);
347
- if (!profile) throw new Error("COMPUTER_MODEL_CAPABILITY_REQUIRED");
348
- const apiKey = await getApiKey(model.provider, {
349
- agentId: effective.id,
350
- appConfig: config
351
- });
352
- if (!apiKey) throw new Error("COMPUTER_MODEL_KEY_MISSING");
353
- let deployment;
529
+ let adapter;
530
+ let binding;
354
531
  let serviceLimits;
355
- if (model.provider === "xopc-cloud") {
356
- rejectUnbudgetedCloudTransport("computer use");
357
- const response = await fetch(`${model.baseUrl.replace(/\/$/, "")}/models`, {
358
- headers: { Authorization: `Bearer ${apiKey}` },
359
- redirect: "error",
360
- signal: signal ? AbortSignal.any([signal, AbortSignal.timeout(15e3)]) : AbortSignal.timeout(15e3)
532
+ if (input.planner === "agent") {
533
+ const turn = computerAgentTurn(owner);
534
+ binding = turn.binding;
535
+ turn.cleanup = async () => {
536
+ await this.close(owner);
537
+ };
538
+ } else {
539
+ const ref = effective.models.computerUse?.primary;
540
+ if (!ref) throw new Error("COMPUTER_MODEL_REQUIRED");
541
+ const model = resolveModel(ref);
542
+ const profile = computerModelProfile(model);
543
+ if (!profile) throw new Error("COMPUTER_MODEL_CAPABILITY_REQUIRED");
544
+ const apiKey = await getApiKey(model.provider, {
545
+ agentId: effective.id,
546
+ appConfig: config
361
547
  });
362
- if (!response.ok) {
363
- await response.body?.cancel();
364
- throw new Error("COMPUTER_DEPLOYMENT_UNAVAILABLE");
548
+ if (!apiKey) throw new Error("COMPUTER_MODEL_KEY_MISSING");
549
+ let deployment;
550
+ if (model.provider === "xopc-cloud") {
551
+ rejectUnbudgetedCloudTransport("computer use");
552
+ const response = await fetch(`${model.baseUrl.replace(/\/$/, "")}/models`, {
553
+ headers: { Authorization: `Bearer ${apiKey}` },
554
+ redirect: "error",
555
+ signal: signal ? AbortSignal.any([signal, AbortSignal.timeout(15e3)]) : AbortSignal.timeout(15e3)
556
+ });
557
+ if (!response.ok) {
558
+ await response.body?.cancel();
559
+ throw new Error("COMPUTER_DEPLOYMENT_UNAVAILABLE");
560
+ }
561
+ const metadata = (await readComputerJson(response, 2 * 1024 * 1024)).data?.find((item) => item.id === model.id)?.xopc;
562
+ const parsedDeployment = z.object({
563
+ revision: z.string().regex(/^[a-f0-9]{64}$/),
564
+ origin: z.string().url().optional()
565
+ }).safeParse(metadata?.computerDeployment);
566
+ const parsedLimits = ComputerServiceLimitsSchema.optional().safeParse(metadata?.computerLimits);
567
+ if (!parsedDeployment.success || !parsedLimits.success) throw new Error("COMPUTER_DEPLOYMENT_UNAVAILABLE");
568
+ deployment = parsedDeployment.data;
569
+ serviceLimits = parsedLimits.data;
365
570
  }
366
- const metadata = (await readComputerJson(response, 2 * 1024 * 1024)).data?.find((item) => item.id === model.id)?.xopc;
367
- const parsedDeployment = z.object({
368
- revision: z.string().regex(/^[a-f0-9]{64}$/),
369
- origin: z.string().url().optional()
370
- }).safeParse(metadata?.computerDeployment);
371
- const parsedLimits = ComputerServiceLimitsSchema.optional().safeParse(metadata?.computerLimits);
372
- if (!parsedDeployment.success || !parsedLimits.success) throw new Error("COMPUTER_DEPLOYMENT_UNAVAILABLE");
373
- deployment = parsedDeployment.data;
374
- serviceLimits = parsedLimits.data;
571
+ adapter = createComputerModelAdapter({
572
+ modelId: model.id,
573
+ baseUrl: model.baseUrl,
574
+ api: model.api,
575
+ apiKey,
576
+ profile,
577
+ headers: model.headers,
578
+ deploymentRevision: deployment?.revision,
579
+ maxOutputTokens: Math.min(2048, model.maxTokens ?? 2048, serviceLimits?.maxOutputTokens ?? 2048)
580
+ });
581
+ binding = {
582
+ modelRef: ref,
583
+ profile,
584
+ origin: new URL(model.baseUrl).origin,
585
+ runtimeLocation: "unknown",
586
+ ...deployment?.origin ? { upstreamOrigin: deployment.origin } : {}
587
+ };
375
588
  }
376
- const adapter = createComputerModelAdapter({
377
- modelId: model.id,
378
- baseUrl: model.baseUrl,
379
- api: model.api,
380
- apiKey,
381
- profile,
382
- headers: model.headers,
383
- deploymentRevision: deployment?.revision,
384
- maxOutputTokens: Math.min(2048, model.maxTokens ?? 2048, serviceLimits?.maxOutputTokens ?? 2048)
385
- });
386
589
  signal.throwIfAborted();
387
590
  s = {
388
591
  id: randomUUID(),
@@ -393,13 +596,7 @@ var ComputerRuntime = class {
393
596
  windowRef: input.windowRef,
394
597
  endpointId: endpoint.endpointId,
395
598
  adapter,
396
- binding: {
397
- modelRef: ref,
398
- profile,
399
- origin: new URL(model.baseUrl).origin,
400
- runtimeLocation: "unknown",
401
- ...deployment?.origin ? { upstreamOrigin: deployment.origin } : {}
402
- },
599
+ binding,
403
600
  createdAt: Date.now(),
404
601
  actions: 0,
405
602
  modelRequests: 0,
@@ -430,7 +627,7 @@ var ComputerRuntime = class {
430
627
  s.diagnostics.phase = "observe";
431
628
  try {
432
629
  if (input.op === "open") {
433
- if (input.appRef !== s.appRef || input.windowRef !== s.windowRef || input.mode !== s.mode || input.prepare !== s.prepare) throw new Error("COMPUTER_CLOSE_BEFORE_TARGET_CHANGE");
630
+ if (input.planner === "agent" !== "planner" in s.binding || input.appRef !== s.appRef || input.windowRef !== s.windowRef || input.mode !== s.mode || input.prepare !== s.prepare) throw new Error("COMPUTER_CLOSE_BEFORE_TARGET_CHANGE");
434
631
  const reply = await this.send(s, {
435
632
  op: "open",
436
633
  sessionId: s.id,
@@ -474,7 +671,7 @@ var ComputerRuntime = class {
474
671
  this.reserveRescue(s, signal);
475
672
  } else if (status.value.status !== "ready") return this.present(status.value);
476
673
  if (input.op === "step") {
477
- if (input.flowId || s.lastFlowId) s.adapter.reset?.();
674
+ if (input.flowId || s.lastFlowId) s.adapter?.reset?.();
478
675
  s.lastFlowId = input.flowId;
479
676
  }
480
677
  while (true) {
@@ -513,7 +710,7 @@ var ComputerRuntime = class {
513
710
  };
514
711
  if (input.op === "step" && input.expect?.kind !== "text" && verification?.status === "satisfied") {
515
712
  s.diagnostics.verify(verification);
516
- s.adapter.reset?.();
713
+ s.adapter?.reset?.();
517
714
  return {
518
715
  status: "condition_satisfied",
519
716
  sessionId: s.id,
@@ -536,6 +733,7 @@ var ComputerRuntime = class {
536
733
  }
537
734
  phase = "model";
538
735
  const predictionInput = input;
736
+ if (!s.adapter) throw new Error("COMPUTER_PLANNER_MISMATCH");
539
737
  const proposal = await s.diagnostics.measure("model", () => predictComputerStep(s.adapter, {
540
738
  goal: predictionInput.op === "observe" ? predictionInput.question : predictionInput.goal,
541
739
  readOnly: predictionInput.op === "observe",
@@ -636,7 +834,7 @@ var ComputerRuntime = class {
636
834
  }
637
835
  s.rescues++;
638
836
  s.diagnostics.count("rescueAttempts");
639
- s.adapter.reset?.();
837
+ s.adapter?.reset?.();
640
838
  }
641
839
  async dispatchAction(s, envelope, signal, goalContext) {
642
840
  if (!s.pending) {
@@ -655,7 +853,7 @@ var ComputerRuntime = class {
655
853
  reply.frame?.fill(0);
656
854
  throw new Error("COMPUTER_RECEIPT_MISMATCH");
657
855
  }
658
- if (goalContext && s.adapter.hasPendingPlan && reply.value.status === "ready" && !reply.value.errorCode && reply.value.receipt?.dispatch === "completed" && reply.value.observation) {
856
+ if (goalContext && s.adapter?.hasPendingPlan && reply.value.status === "ready" && !reply.value.errorCode && reply.value.receipt?.dispatch === "completed" && reply.value.observation) {
659
857
  const receipt = reply.value.receipt;
660
858
  const nativeMs = reply.value.nativeMs;
661
859
  let stable = false;
@@ -686,7 +884,7 @@ var ComputerRuntime = class {
686
884
  if (stable || next.value.status !== "ready" || next.value.errorCode) break;
687
885
  }
688
886
  if (!stable && !reply.value.errorCode) reply.value.errorCode = "COMPUTER_UI_UNSTABLE";
689
- } catch (error) {
887
+ } catch {
690
888
  reply.frame?.fill(0);
691
889
  reply = { value: {
692
890
  ...reply.value,
@@ -800,7 +998,9 @@ var ComputerRuntime = class {
800
998
  });
801
999
  const phase = command.op === "open" ? "open" : command.op === "act" ? "dispatch" : command.op === "observe" ? "observe" : command.op === "release" ? "release" : void 0;
802
1000
  if (command.op === "observe") s.diagnostics?.count("observations");
1001
+ const startedAt = performance.now();
803
1002
  const reply = s.diagnostics && phase ? await s.diagnostics.measure(phase, invoke) : await invoke();
1003
+ const endpointRoundTripMs = performance.now() - startedAt;
804
1004
  const file = reply.content.find((item) => item.type === "file");
805
1005
  let frame;
806
1006
  if (file?.type === "file" && reply.invocationId) frame = this.endpoints.uploads.takeComputerFrame(file.fileId, reply.invocationId);
@@ -809,6 +1009,13 @@ var ComputerRuntime = class {
809
1009
  const json = reply.content.find((item) => item.type === "json");
810
1010
  const value = Reply.parse(json?.type === "json" ? json.value : void 0);
811
1011
  if (value.sessionId !== s.id) throw new Error("COMPUTER_SESSION_MISMATCH");
1012
+ if (command.op === "act" && value.receipt?.actionId === command.envelope.actionId && (value.nativeMs || value.transportTiming)) s.diagnostics?.timing({
1013
+ actionId: value.receipt.actionId,
1014
+ kind: command.envelope.action.kind,
1015
+ nativeMs: value.nativeMs,
1016
+ transport: value.transportTiming,
1017
+ endpointRoundTripMs
1018
+ });
812
1019
  if (file && !frame || value.observation && !frame && !value.errorCode) throw new Error("COMPUTER_FRAME_HANDOFF_FAILED");
813
1020
  if (frame && (!value.observation || !["observe", "act"].includes(command.op))) throw new Error("COMPUTER_UNEXPECTED_FRAME");
814
1021
  return {
@@ -827,14 +1034,18 @@ var ComputerRuntime = class {
827
1034
  leaveComputerControl(s.owner);
828
1035
  s.diagnostics.finish(true);
829
1036
  this.retainReport(s.owner, s.diagnostics);
1037
+ clearComputerFrames(s.owner);
1038
+ s.programStore = void 0;
830
1039
  s.task.clear();
831
1040
  s.pendingContext = void 0;
832
1041
  s.controller.abort();
833
1042
  }
834
1043
  async close(owner) {
835
1044
  this.operations.get(owner)?.abort();
1045
+ clearComputerFrames(owner);
836
1046
  const s = this.sessions.get(owner);
837
1047
  if (!s) return true;
1048
+ s.programStore = void 0;
838
1049
  s.task.clear();
839
1050
  s.pendingContext = void 0;
840
1051
  s.controller.abort();
@@ -1,6 +1,6 @@
1
+ import { normalizeAgentId } from "../agent-catalog/id.js";
1
2
  import { resolveEffectiveAgentConfig } from "../agent-config/resolver.js";
2
3
  import { init_agent_config } from "../agent-config/index.js";
3
- import { normalizeAgentId } from "../agent-catalog/id.js";
4
4
  import { AgentCatalogRepository, init_repository } from "../agent-catalog/repository.js";
5
5
  import { init_agent_scope, resolveAgentWorkspaceDir } from "../agent/agent-scope.js";
6
6
  import { getConversationRouting } from "../storage/sqlite/conversation-repository.js";
@@ -14,9 +14,9 @@ import { applyConfigOverrides, getConfigOverrides, resetConfigOverrides, setConf
14
14
  import { canonicalizeConfiguredMcpServer, normalizeConfiguredMcpServers } from "./mcp-config-normalize.js";
15
15
  import { formatThinkingLevels, listThinkingLevels, normalizeElevatedMode, normalizeReasoningLevel, normalizeThinkLevel, normalizeVerboseLevel, thinkLevelToNumber } from "../agent/transcript/thinking-types.js";
16
16
  import { loadConfig, saveConfig } from "./loader.js";
17
- import { diffConfigPaths } from "./diff.js";
18
17
  import { listAgentProfileMarkdownDirs, listAgentWorkspaceDirs } from "./workspace-dirs.js";
19
18
  import { ProfileManager, createProfile, deleteProfile, getCurrentProfile, getProfileManager, getProfileNameFromDir, getSwitchCommand, listProfiles, resolveProfileStateDir } from "./profile.js";
19
+ import { diffConfigPaths } from "./diff.js";
20
20
  import { BASE_RELOAD_RULES, buildReloadPlan, matchReloadRule } from "./rules.js";
21
21
  import { ConfigHotReloader } from "./reload.js";
22
22
  //#region src/config/index.ts
@@ -1785,6 +1785,24 @@ export declare const ConfigSchema: z.ZodDefault<z.ZodObject<{
1785
1785
  direct: "direct";
1786
1786
  }>>;
1787
1787
  adbPath: z.ZodOptional<z.ZodString>;
1788
+ autoGlmPrompt: z.ZodDefault<z.ZodEnum<{
1789
+ current: "current";
1790
+ upstream: "upstream";
1791
+ }>>;
1792
+ autoGlmProtocol: z.ZodDefault<z.ZodEnum<{
1793
+ current: "current";
1794
+ upstream: "upstream";
1795
+ }>>;
1796
+ autoGlmSampling: z.ZodDefault<z.ZodEnum<{
1797
+ current: "current";
1798
+ upstream: "upstream";
1799
+ }>>;
1800
+ modelResponseMode: z.ZodDefault<z.ZodEnum<{
1801
+ json: "json";
1802
+ stream: "stream";
1803
+ }>>;
1804
+ batchReadings: z.ZodDefault<z.ZodBoolean>;
1805
+ modelRepetitionGuard: z.ZodDefault<z.ZodBoolean>;
1788
1806
  semanticControls: z.ZodDefault<z.ZodBoolean>;
1789
1807
  hierarchicalPlanning: z.ZodDefault<z.ZodBoolean>;
1790
1808
  maxActionsPerSession: z.ZodDefault<z.ZodNumber>;
@@ -1,8 +1,8 @@
1
1
  import { createLogger } from "../utils/logger/index.js";
2
2
  import { init_logger } from "../utils/logger.js";
3
- import { claimNextConnectorLearningJob, enqueueConnectorLearningJob, listConnectorLearningJobs, recoverStaleConnectorLearningJobs, setConnectorLearningPaused, updateConnectorLearningJob } from "../storage/sqlite/connector-learning-repository.js";
4
3
  import { getConnectorAccount, reconcileConnectorAccount } from "../storage/sqlite/connector-account-repository.js";
5
4
  import { getConnectorInstallation, listConnectorConnections, upsertConnectorConnection } from "../storage/sqlite/connector-repository.js";
5
+ import { claimNextConnectorLearningJob, enqueueConnectorLearningJob, listConnectorLearningJobs, recoverStaleConnectorLearningJobs, setConnectorLearningPaused, updateConnectorLearningJob } from "../storage/sqlite/connector-learning-repository.js";
6
6
  import { pruneBoundedKnowledgeSourceItems } from "../storage/sqlite/knowledge-repository.js";
7
7
  import { getConnectorSyncPolicyForConnection } from "../storage/sqlite/connector-sync-policy-repository.js";
8
8
  import "../storage/sqlite/index.js";
@@ -8,8 +8,8 @@ import { assertManagedWorktreePath, assertNoNestedRegisteredWorktrees, readDirec
8
8
  import { dirname, resolve } from "node:path";
9
9
  import { existsSync } from "node:fs";
10
10
  import { randomUUID } from "node:crypto";
11
- import { mkdir, rm, stat } from "node:fs/promises";
12
11
  import lockfile from "proper-lockfile";
12
+ import { mkdir, rm, stat } from "node:fs/promises";
13
13
  //#region src/execution-environments/local-worktree-manager.ts
14
14
  init_logger();
15
15
  const log = createLogger("ExecutionEnvironment:LocalWorktree");
@@ -1,7 +1,7 @@
1
- import { parseFrontmatter } from "../../markdown/frontmatter.js";
2
1
  import { containedPath } from "./contained-path.js";
3
2
  import "./validation.js";
4
3
  import { AgentPluginStore } from "./store.js";
4
+ import { parseFrontmatter } from "../../markdown/frontmatter.js";
5
5
  import { createSkillConfigManager } from "../../agent/skills/config.js";
6
6
  import { parseSkillLocalizations } from "../../agent/skills/parse-skill-metadata.js";
7
7
  import { buildSkillMarkdownPreviewFromRaw } from "../../agent/skills/skill-markdown-preview-from-raw.js";
@@ -9,8 +9,8 @@ import { dirname, join, resolve } from "node:path";
9
9
  import { existsSync, lstatSync, readFileSync, readdirSync, realpathSync, statSync } from "node:fs";
10
10
  import { createHash } from "node:crypto";
11
11
  import { z } from "zod";
12
- import yaml from "js-yaml";
13
12
  import { validateHeaderName, validateHeaderValue } from "node:http";
13
+ import yaml from "js-yaml";
14
14
  //#region src/extensions/agent-plugins/validation.ts
15
15
  init_schema();
16
16
  const PLUGIN_SCHEMA = "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json";