@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.
- package/dist/browser-ext/dist/assets/{page-context-BKnEwsOO.js → page-context-b-rB5vJC.js} +1 -1
- package/dist/browser-ext/dist/background.js +1 -1
- package/dist/browser-ext/dist/sidepanel.html +1 -1
- package/dist/browser-ext/dist/sidepanel.js +29 -1
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{activity-store-DNkXnatd.js → activity-store-CMw8qBuC.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DOnHjAY_.js → agent-avatar-dicebear-JI0YWOIm.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-display-C9Lu9LVl.js → agent-avatar-display-YqmwzOSa.js} +2 -2
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DlvjxWg6.js +1 -0
- package/dist/gateway/static/root/assets/{agent-plugin-dialog-sQNbqsGL.js → agent-plugin-dialog-OBueuQSc.js} +1 -1
- package/dist/gateway/static/root/assets/{agents-DZ77luyw.js → agents-Cp6_5OOQ.js} +4 -4
- package/dist/gateway/static/root/assets/{agents-admin-api-DIm_IHQL.js → agents-admin-api-DLnmdC1h.js} +1 -1
- package/dist/gateway/static/root/assets/{api-BUJQiCoX.js → api-Boc-CVh7.js} +1 -1
- package/dist/gateway/static/root/assets/{api-By0yX3z1.js → api-bL7sxjAF.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-PPgc1xaD.js → app-management-settings-panel-jIG5i7KE.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-DbI9t4GS.js → appearance-settings-BnaQW9Xd.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-DIC28vl4.js → apps-page-C2WKUwtN.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-B5ZSQVw2.js → archive-plugin-DjboG3kA.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-api-CfjICuJK.js → automation-api-CZqL9l_d.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-result-state-DpQSVGNY.js → automation-result-state-DRd-X_Ai.js} +1 -1
- package/dist/gateway/static/root/assets/automation-task-card-wbnR5i6N.js +3 -0
- package/dist/gateway/static/root/assets/{automations-page-1NCQMSK1.js → automations-page-HyBQIfmn.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-D6cTOKr7.js +9 -0
- package/dist/gateway/static/root/assets/{binary-plugins-_riZg0hb.js → binary-plugins-Bg8ARZUH.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-BpYTVDaG.js → block-editor-DKohqFAW.js} +2 -2
- package/dist/gateway/static/root/assets/{browser-automation-inputs-DLbHyWE5.js → browser-automation-inputs-YeibTzw4.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-BfOHr7er.js → browser-automations-page-BWNcbuz2.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-control-api-CqjIQdQ4.js → browser-control-api-CDeuxy2x.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-settings-page-CqjLefvt.js → browser-settings-page-L0nBjfhG.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-BQ0bsu6d.js → capabilities-BcQa8c9n.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-CTu4Y4Gc.js → capabilities-aT-QjNTl.js} +1 -1
- package/dist/gateway/static/root/assets/capabilities-page-DlpuHdHi.js +2 -0
- package/dist/gateway/static/root/assets/{capabilities-settings-panel-Cq28kvMr.js → capabilities-settings-panel-pvqkN2-2.js} +3 -3
- package/dist/gateway/static/root/assets/{channels-BPVkbqBI.js → channels-BUPtawh6.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-agents-api-XnegLpGF.js → chat-agents-api-B8JO6Tcj.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-chart-block-BJFCFZz2.js → chat-chart-block-DRtuFfF1.js} +1 -1
- package/dist/gateway/static/root/assets/chat-page-BP0huA-W.js +72 -0
- package/dist/gateway/static/root/assets/{chat-terminal-dock-B9KlHa8j.js → chat-terminal-dock-Dkqq5FSL.js} +1 -1
- package/dist/gateway/static/root/assets/{command-palette-api-DW7O6fME.js → command-palette-api-qujvNqkK.js} +1 -1
- package/dist/gateway/static/root/assets/{composer-payload-handoff-qheyxoAD.js → composer-payload-handoff-CYIhcczq.js} +1 -1
- package/dist/gateway/static/root/assets/{computer-settings-page-KmaJ2UVz.js → computer-settings-page-8q4hRmoo.js} +1 -1
- package/dist/gateway/static/root/assets/connected-providers-grid-CKZfhHSD.js +1 -0
- package/dist/gateway/static/root/assets/{connector-service-page-BgexZyHR.js → connector-service-page-DQaTI21R.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-api-DEYdFCdS.js → connectors-api-BjypBp2g.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-Lf1ZzaVn.js +1 -0
- package/dist/gateway/static/root/assets/{date-picker-CSuiNiPU.js → date-picker-D_PSHGpe.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-DHFVFI74.js → dependency-picker-UqKVJ9dv.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-DK3tV5PW.js → desktop-pet-1Et9VqkM.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-narrative-CS8qJpNO.js → desktop-pet-narrative-rADKU0FX.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-BKIcBnfQ.js → desktop-pet-settings-0fCGgaG7.js} +1 -1
- package/dist/gateway/static/root/assets/{dev-view-store-ZgXvR5Sl.js → dev-view-store-TTj_djD8.js} +1 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-ByEL5lvM.js +1 -0
- package/dist/gateway/static/root/assets/{directory-picker-path-field-C4N_kXUX.js → directory-picker-path-field-C07a7wYX.js} +1 -1
- package/dist/gateway/static/root/assets/{discussion-annotation-sync-CdbkKHiR.js → discussion-annotation-sync-BFqKm9ky.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-vdSyb_US.js → extension-debug-page-DFaVlqas.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-iframe-host-D4w7-mf1.js → extension-iframe-host-BfzPfXBq.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-marketplace-api-BVMU-5FO.js → extension-marketplace-api-ow0K1Y4_.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-BE7FHMek.js → extension-page-CrDADV5W.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-8RM98QmD.js → extension-provider-mnRoa63o.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page--SP1Dy2l.js → extension-settings-page-BLl02GFY.js} +1 -1
- package/dist/gateway/static/root/assets/{file-preview-surface-CFFuUQVY.js → file-preview-surface-TGdKqhCf.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-i6wzzdws.js → gateway-config-swr-DfPQIHOL.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-B1CCUrsG.js → gateway-realtime-67vWg_M2.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-Bkt1z-xo.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-restart-B3Odfu1z.js → gateway-restart-CLtR2wkL.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-QIwB2Ld0.js → gateway-settings-COvC3r-l.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-DBpCoigO.js → gateway-startup-retry-9YQllbw2.js} +1 -1
- package/dist/gateway/static/root/assets/{global-defaults-api-GQG-5G20.js → global-defaults-api-DYMRjGvd.js} +1 -1
- package/dist/gateway/static/root/assets/{home-page-BsfeSXsZ.js → home-page-k9LFXcVa.js} +2 -2
- package/dist/gateway/static/root/assets/{image-generation-api-CaiTrM7V.js → image-generation-api-Dzydfvy8.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-CLkhwelO.js → imports-page-Csd_YZXZ.js} +1 -1
- package/dist/gateway/static/root/assets/index-CpwPxKQ8.css +1 -0
- package/dist/gateway/static/root/assets/index-DKW7BeT_.js +11 -0
- package/dist/gateway/static/root/assets/{install-connector-dialog-B9YBBGhs.js → install-connector-dialog-CTQAKTPv.js} +1 -1
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DrZQukhN.js → keyboard-shortcuts-settings-B201bMIa.js} +1 -1
- package/dist/gateway/static/root/assets/{local-app-workbench-page-CecbOjks.js → local-app-workbench-page-CD_8_gd_.js} +1 -1
- package/dist/gateway/static/root/assets/{local-apps-page-CkVtgVlJ.js → local-apps-page-BOwqNH0L.js} +1 -1
- package/dist/gateway/static/root/assets/local-session-drafts-DjmK-SM9.js +4 -0
- package/dist/gateway/static/root/assets/{locale-store-_-_QzAV0.js → locale-store-Bg_XR36n.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-Dok7TpJ0.js → logs-page-gw3E9CMQ.js} +1 -1
- package/dist/gateway/static/root/assets/{management-settings-CNbeHUKa.js → management-settings-t_Z2mCyw.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-CFWJhIqU.js → markdown-view-BUpXJUPv.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-BEcCzwnv.js → media-plugins-_shnaEMY.js} +1 -1
- package/dist/gateway/static/root/assets/messages-DG4HLOER.js +3 -0
- package/dist/gateway/static/root/assets/model-selector-a7PIT1Lk.js +1 -0
- package/dist/gateway/static/root/assets/{models-hub-cache-B1dBNhhc.js → models-hub-cache-KOJC3z6Q.js} +1 -1
- package/dist/gateway/static/root/assets/note-detail-panel-BsHYUFgk.js +5 -0
- package/dist/gateway/static/root/assets/note-image-lightbox-B-bEtjhj.js +1 -0
- package/dist/gateway/static/root/assets/{notes-api-ja_AMIh6.js → notes-api-BSmikUKI.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-_IG1mwIH.js → notes-page-CA0NRL8O.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-api-C0NG7Hgs.js → oauth-api-D2t9HXoC.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-provider-connect-DLQ6Jhjc.js → oauth-provider-connect-DGGGGtcB.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-capture-button-DBlILV5t.js → page-context-capture-button-BH54VO0V.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-draft-CcZSjlMa.js → page-context-draft-BS5y8Cx9.js} +1 -1
- package/dist/gateway/static/root/assets/page-header-store-BdZnUh-D.js +1 -0
- package/dist/gateway/static/root/assets/{personal-avatar-D3tjI4rK.js → personal-avatar-D8DtpDTa.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-page-C1gIYjQo.js → personal-page-KJezmTKP.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-settings-panel-Nm03jL4v.js → personal-settings-panel-9uDaNJy5.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-dependencies-card-72RGs4eb.js → phone-dependencies-card-DLYrI0C4.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-model-picker-CNxK_l_B.js → phone-model-picker-BbA2iI-3.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-settings-page-D5PodpGU.js → phone-settings-page-Cg_BPss4.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-workspace-store-Ci43KRd6.js → phone-workspace-store-CVDk80Bf.js} +1 -1
- package/dist/gateway/static/root/assets/plugin-details-dialog-DgibLkc3.js +1 -0
- package/dist/gateway/static/root/assets/{preference-select-fields-CyFvi9Es.js → preference-select-fields-BVoN-lAv.js} +1 -1
- package/dist/gateway/static/root/assets/{product-automation-feedback-BRdOheLC.js → product-automation-feedback-DCo90zGh.js} +2 -2
- package/dist/gateway/static/root/assets/{product-open-page-CIZj7rh-.js → product-open-page-OWl8IAoY.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-content-yK-9po5S.js → product-preview-content-Cjas7UNe.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-modal-CkdKPk-W.js → product-preview-modal-CPWRvBI9.js} +2 -2
- package/dist/gateway/static/root/assets/{project-detail-page-D_Kft8au.js → project-detail-page-B_HlZux_.js} +3 -3
- package/dist/gateway/static/root/assets/{project-understanding-6raciQr0.js → project-understanding-Ba02SFzB.js} +1 -1
- package/dist/gateway/static/root/assets/{projects-page-CNCw6Q5o.js → projects-page-CdfKjp95.js} +1 -1
- package/dist/gateway/static/root/assets/{providers-api-DGeFqpPL.js → providers-api-rwQ4LWzr.js} +1 -1
- package/dist/gateway/static/root/assets/{recording-upload-rA0Z6W2g.js → recording-upload-BSmvRrZQ.js} +1 -1
- package/dist/gateway/static/root/assets/{registry-api-5LqCHY-I.js → registry-api-Vy7LfH6E.js} +1 -1
- package/dist/gateway/static/root/assets/{remote-access-hub-DftT6xNt.js → remote-access-hub-UXrnpGev.js} +1 -1
- package/dist/gateway/static/root/assets/{resource-unavailable-CqP8gARc.js → resource-unavailable-f9OzSi4W.js} +1 -1
- package/dist/gateway/static/root/assets/route-preload-BtObM-co.js +2 -0
- package/dist/gateway/static/root/assets/{runtime-tools-api-CUzfEj0z.js → runtime-tools-api-Bt8t37z5.js} +1 -1
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-DU4UXnBm.js +1 -0
- package/dist/gateway/static/root/assets/{service-recommendation-list-Bo46zqXR.js → service-recommendation-list-CuYsRcBB.js} +1 -1
- package/dist/gateway/static/root/assets/{session-api-CZQ-wpwx.js → session-api-DJI9eSgw.js} +1 -1
- package/dist/gateway/static/root/assets/session-manager-CtKgACGl.js +23 -0
- package/dist/gateway/static/root/assets/sessions-page-BAsKzRHt.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-CjAFqg2U.js +1 -0
- package/dist/gateway/static/root/assets/{settings-advanced-section-CrqVxpan.js → settings-advanced-section-BxUuF_yi.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-mode-store-D4AZlZDq.js → settings-mode-store-CaoRh2gt.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-header-CoPd_JDb.js → settings-page-header-CyUHrn7c.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-layout-D39EvFvm.js → settings-page-layout-DGVqXrlp.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-D-X2rL2k.js → settings-page-qQ8-6dJ_.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-BpaPb625.js +1 -0
- package/dist/gateway/static/root/assets/{share-link-dialog-D4oGzmxA.js → share-link-dialog-CQJ6Ykm2.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-CArPpOZz.js → share-preview-page-Cem96FbB.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-DbJOyf2K.js → shares-api-Dowes16l.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-DZEkZDR0.js +1 -0
- package/dist/gateway/static/root/assets/{skill-api-CQxLO0sy.js → skill-api-D8ZwFEVe.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-list-api-BkahlC5N.js → skill-list-api-B4gp00-f.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-DZQLAkSr.js → skill-reload-api-ClmaaDXo.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-BBlJMOZU.js → skills-page-CV0X9rvG.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-b2h_YWsq.js → system-settings-panel-D095uacX.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-CY2C4AM2.js +2 -0
- package/dist/gateway/static/root/assets/{task-result-evidence-DLnPVj6x.js → task-result-evidence-LUrJlUhb.js} +1 -1
- package/dist/gateway/static/root/assets/{terminal-panel-store-Xmw-UfZa.js → terminal-panel-store-BqEDB1Vl.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-DU_07f3M.js → theme-store-gAcojLgP.js} +1 -1
- package/dist/gateway/static/root/assets/tool-friendly-title-o6sxGVUu.js +1 -0
- package/dist/gateway/static/root/assets/tracing-settings-page-B1ZRh-Is.js +1 -0
- package/dist/gateway/static/root/assets/{tunnel-api-DD2HgB7G.js → tunnel-api-C9u9E3UQ.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-activity-store-CyQMYQhD.js → understanding-activity-store-BTrzsR6_.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-refresh-store-CTgQYLOe.js → understanding-refresh-store-5Qava3jh.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-BUZLOZLg.js → usage-page-DFMLYKAc.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-BqTpwsvF.js → use-autosave-3O-X7x15.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-DfP3JrD6.js → use-composer-attachments-BLc4dBfe.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-D2m6BZLU.js → use-file-preview-expanded-BaOmTXsT.js} +2 -2
- package/dist/gateway/static/root/assets/{use-personal-profile-CmLuBSVu.js → use-personal-profile-MusPgljM.js} +1 -1
- package/dist/gateway/static/root/assets/{use-workspace-tree-DBvuHcas.js → use-workspace-tree-Ck_U2yTw.js} +1 -1
- package/dist/gateway/static/root/assets/user-model-page-Den5Lg-k.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-DGyL8PYB.js → voice-api-key-field-C5zJApoa.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-CIRG9O8T.js → voice-config-api-DC1bYDt1.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-input-shortcut-events-DrVMpqDV.js → voice-input-shortcut-events-0SZjJdVV.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-transcribe-api-H8o-xLEf.js → voice-transcribe-api-CxVeANPX.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-CobALTh0.js → work-discovery-overlay-DAQ8McVe.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-page-Dxf_Hrwx.js → work-discovery-page-DUQysEyb.js} +1 -1
- package/dist/gateway/static/root/assets/{working-directory-picker-modal-E9f8G3se.js → working-directory-picker-modal-BO9qdJyZ.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-api-N7bfM4a1.js → workspace-api-ZrN6yUER.js} +2 -2
- package/dist/gateway/static/root/assets/workspace-editor-agent-store-Bo5dwoWP.js +1 -0
- package/dist/gateway/static/root/assets/{workspace-file-preview-dialog-BTQfAXNK.js → workspace-file-preview-dialog-Yj_kBWSb.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-open-location-menu-BOGOi-Ck.js → workspace-open-location-menu-yxT7wajO.js} +1 -1
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-Dqfy4Lwy.js → xopc-cloud-account-card-IcH9KDzx.js} +1 -1
- package/dist/gateway/static/root/index.html +82 -82
- package/dist/package.js +1 -1
- package/dist/packages/computer-control-contract/src/index.js +33 -3
- package/dist/packages/gateway-contract/src/clarification-questions.js +86 -0
- package/dist/packages/gateway-contract/src/clarifications.js +19 -0
- package/dist/packages/gateway-contract/src/index.js +1 -0
- package/dist/packages/gateway-contract/src/session-input-command.js +3 -0
- package/dist/src/agent/agent-manager.js +2 -2
- package/dist/src/agent/background-review/run-background-review.js +2 -2
- package/dist/src/agent/coding/repository-instructions.js +1 -1
- package/dist/src/agent/embedded/index.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js +1 -1
- package/dist/src/agent/embedded/run-turn.js +67 -7
- package/dist/src/agent/embedded/session-tool-result-guard.js +2 -2
- package/dist/src/agent/embedded/tool-result-truncation.js +1 -1
- package/dist/src/agent/external-tools/cliProvider.js +2 -2
- package/dist/src/agent/external-tools/composio-provider.js +2 -2
- package/dist/src/agent/external-tools/endpoint-provider.js +2 -2
- package/dist/src/agent/inbound/attachment-pipeline.js +1 -1
- package/dist/src/agent/memory/compaction.js +1 -1
- package/dist/src/agent/memory/context-budget.js +1 -1
- package/dist/src/agent/memory/context-recovery.js +1 -1
- package/dist/src/agent/memory/user-message-text.js +1 -1
- package/dist/src/agent/service/btw-query.js +1 -1
- package/dist/src/agent/service/direct-turn-helpers.js +1 -1
- package/dist/src/agent/service/process-direct-streaming.js +2 -2
- package/dist/src/agent/service.js +1 -1
- package/dist/src/agent/skills/index.js +1 -1
- package/dist/src/agent/skills/managed-store.js +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +1 -1
- package/dist/src/agent/source-context/types.d.ts +1 -0
- package/dist/src/agent/tool-manuals/computer.d.ts +1 -1
- package/dist/src/agent/tool-manuals/computer.js +6 -0
- package/dist/src/agent/tools/clarify-tool.js +43 -5
- package/dist/src/agent/tools/cli-clarify.js +1 -0
- package/dist/src/agent/tools/computer-use-tool.js +18 -5
- package/dist/src/agent/tools/dataBatch.js +1 -1
- package/dist/src/agent/tools/personal-read-tool.js +1 -1
- package/dist/src/agent/tools/personal-task-tool.d.ts +1 -1
- package/dist/src/agent/tools/phone-use-tool.js +14 -4
- package/dist/src/agent/tools/session-search-tool.js +1 -1
- package/dist/src/agent/tools/xopc-use-tool.js +2 -2
- package/dist/src/agent-catalog/capabilities.js +2 -2
- package/dist/src/agent-catalog/repository.js +1 -1
- package/dist/src/automations/api/routes.js +2 -2
- package/dist/src/automations/capabilities/drafts.js +1 -1
- package/dist/src/automations/capabilities/write.js +1 -1
- package/dist/src/automations/configuration-conversation.js +1 -1
- package/dist/src/browser/providers/browser-ext-install.js +1 -1
- package/dist/src/capabilities/runtime/dispatcher.js +1 -1
- package/dist/src/capabilities/runtime/product.js +1 -1
- package/dist/src/cli/commands/agent.js +1 -1
- package/dist/src/cli/commands/agents.js +1 -1
- package/dist/src/cli/commands/backup.js +1 -1
- package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
- package/dist/src/cli/commands/models.js +2 -2
- package/dist/src/cli/commands/onboard/model.js +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/platform.js +1 -1
- package/dist/src/cli/commands/profile.js +1 -1
- package/dist/src/cli/commands/tunnel.js +1 -1
- package/dist/src/cli/commands/update.js +1 -1
- package/dist/src/cli/extension-cli-register.js +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +1 -1
- package/dist/src/computer/agent-context.d.ts +21 -0
- package/dist/src/computer/agent-context.js +107 -0
- package/dist/src/computer/broker.d.ts +4 -2
- package/dist/src/computer/broker.js +26 -11
- package/dist/src/computer/diagnostics.d.ts +63 -9
- package/dist/src/computer/diagnostics.js +45 -4
- package/dist/src/computer/errors.d.ts +1 -1
- package/dist/src/computer/errors.js +4 -0
- package/dist/src/computer/evaluation.d.ts +4 -4
- package/dist/src/computer/native-timing.d.ts +15 -0
- package/dist/src/computer/native-timing.js +49 -0
- package/dist/src/computer/program-runtime.d.ts +22 -0
- package/dist/src/computer/program-runtime.js +105 -0
- package/dist/src/computer/runtime.d.ts +36 -2
- package/dist/src/computer/runtime.js +269 -58
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/index.js +1 -1
- package/dist/src/config/schema.d.ts +18 -0
- package/dist/src/connectors/learning-coordinator.js +1 -1
- package/dist/src/execution-environments/local-worktree-manager.js +1 -1
- package/dist/src/extensions/agent-plugins/skill-catalog.js +1 -1
- package/dist/src/extensions/agent-plugins/validation.js +1 -1
- package/dist/src/gateway/agents-admin.js +2 -2
- package/dist/src/gateway/ephemeral-clarification-waiter.js +1 -0
- package/dist/src/gateway/global-defaults-admin.js +2 -2
- package/dist/src/gateway/hono/routes/agents.js +1 -1
- package/dist/src/gateway/hono/routes/composer-history.js +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
- package/dist/src/gateway/hono/routes/connectors.js +1 -1
- package/dist/src/gateway/hono/routes/home.js +1 -1
- package/dist/src/gateway/hono/routes/notes.js +2 -2
- package/dist/src/gateway/hono/routes/phone-setup.js +1 -1
- package/dist/src/gateway/hono/routes/phone.js +31 -6
- package/dist/src/gateway/hono/routes/projects.js +2 -2
- package/dist/src/gateway/hono/routes/public-gateway.js +2 -1
- package/dist/src/gateway/hono/routes/session-command-handler.js +1 -0
- package/dist/src/gateway/hono/routes/session-input-handler.d.ts +6 -0
- package/dist/src/gateway/hono/routes/session-input-handler.js +1 -1
- package/dist/src/gateway/hono/routes/tasks.js +1 -1
- package/dist/src/gateway/hono/routes/user-model-refresh.js +1 -1
- package/dist/src/gateway/image-generation-setup.js +1 -1
- package/dist/src/gateway/next-turn-suggestions/snapshot.js +1 -1
- package/dist/src/gateway/service/agent-runner.js +8 -3
- package/dist/src/gateway/service/config-coordinator.d.ts +6 -0
- package/dist/src/gateway/service/run-gateway-agent.js +1 -1
- package/dist/src/gateway/service/session-input-coordinator.js +5 -4
- package/dist/src/gateway/service.js +7 -7
- package/dist/src/gateway/xopc-cloud-capability-setup.js +1 -1
- package/dist/src/home-intelligence/host.js +2 -2
- package/dist/src/imports/importService.js +1 -1
- package/dist/src/local-apps/service.js +1 -1
- package/dist/src/personal-agent/service.js +1 -1
- package/dist/src/phone/adb-driver.d.ts +15 -1
- package/dist/src/phone/adb-driver.js +104 -41
- package/dist/src/phone/assistance.js +3 -0
- package/dist/src/phone/autoglm-protocol.d.ts +36 -0
- package/dist/src/phone/autoglm-protocol.js +88 -0
- package/dist/src/phone/autoglm-upstream-prompt.d.ts +2 -0
- package/dist/src/phone/autoglm-upstream-prompt.js +5 -0
- package/dist/src/phone/autoglm-upstream.LICENSE +201 -0
- package/dist/src/phone/cloud-adb-connection.d.ts +3 -0
- package/dist/src/phone/cloud-adb-connection.js +102 -31
- package/dist/src/phone/cloud-adb.js +18 -6
- package/dist/src/phone/completion-recovery.d.ts +6 -0
- package/dist/src/phone/completion-recovery.js +30 -0
- package/dist/src/phone/contracts.d.ts +24 -0
- package/dist/src/phone/contracts.js +6 -0
- package/dist/src/phone/execution-trace.d.ts +51 -0
- package/dist/src/phone/execution-trace.js +78 -0
- package/dist/src/phone/model-adapter.d.ts +9 -1
- package/dist/src/phone/model-adapter.js +132 -61
- package/dist/src/phone/model-response.d.ts +5 -0
- package/dist/src/phone/model-response.js +118 -0
- package/dist/src/phone/runtime.d.ts +11 -1
- package/dist/src/phone/runtime.js +177 -40
- package/dist/src/phone/text-session.d.ts +14 -0
- package/dist/src/phone/text-session.js +39 -0
- package/dist/src/phone/ui-dump-binary.d.ts +1 -1
- package/dist/src/phone/ui-dump-binary.js +1 -1
- package/dist/src/phone/ui-session.d.ts +22 -0
- package/dist/src/phone/ui-session.js +191 -0
- package/dist/src/process/phone-process.d.ts +1 -0
- package/dist/src/process/phone-process.js +11 -1
- package/dist/src/routing/agent-session-key.js +1 -1
- package/dist/src/runtime-tools/archive.js +1 -1
- package/dist/src/session/session-context-for-llm.js +1 -0
- package/dist/src/session/session-title.js +1 -1
- package/dist/src/storage/sqlite/clarification-wait-repository.js +45 -4
- package/dist/src/storage/sqlite/index.js +6 -6
- package/dist/src/storage/sqlite/session-creation-repository.js +1 -1
- package/dist/src/storage/sqlite/session-repository.js +1 -1
- package/dist/src/tasks/capabilities/read.js +2 -2
- package/dist/src/tasks/capabilities/write.js +1 -1
- package/dist/src/tasks/home-query-service.js +1 -1
- package/dist/src/tasks/task-allocation-repository.js +1 -1
- package/dist/src/tui/backends/embedded-backend.js +2 -2
- package/dist/src/voice/realtime/persona-context.js +1 -1
- package/package.json +3 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-L6J-FYQS.js +0 -1
- package/dist/gateway/static/root/assets/automation-task-card-BV7hPwN1.js +0 -3
- package/dist/gateway/static/root/assets/automations-workspace-CPFYdI8m.js +0 -9
- package/dist/gateway/static/root/assets/capabilities-page-ljQTg4T5.js +0 -2
- package/dist/gateway/static/root/assets/chat-page-BpvlJdEr.js +0 -72
- package/dist/gateway/static/root/assets/connected-providers-grid-BIX82L4N.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-BawS0DUd.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-ZY_cdq5I.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-BFCA_TAU.js +0 -1
- package/dist/gateway/static/root/assets/index-Dv8mUlNN.css +0 -1
- package/dist/gateway/static/root/assets/index-GX_PTIj6.js +0 -11
- package/dist/gateway/static/root/assets/local-session-drafts-DVSVgTCK.js +0 -1
- package/dist/gateway/static/root/assets/messages-D1u8VsPq.js +0 -3
- package/dist/gateway/static/root/assets/model-selector-DKB20MJY.js +0 -1
- package/dist/gateway/static/root/assets/note-detail-panel-COp5zpe4.js +0 -5
- package/dist/gateway/static/root/assets/note-image-lightbox-DvtEn8dg.js +0 -1
- package/dist/gateway/static/root/assets/page-header-store-RgQRaRbH.js +0 -1
- package/dist/gateway/static/root/assets/plugin-details-dialog-D_Lkepqt.js +0 -1
- package/dist/gateway/static/root/assets/route-preload-Hr12PIMD.js +0 -2
- package/dist/gateway/static/root/assets/runtime-impact-DbySfhdp.js +0 -1
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-VIFAEKJi.js +0 -1
- package/dist/gateway/static/root/assets/session-manager-DhoRfUGE.js +0 -23
- package/dist/gateway/static/root/assets/sessions-page-BISYL6iE.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-BLnNiubD.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-DyzdCgrb.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-BFLomErf.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-BkvjB6fd.js +0 -2
- package/dist/gateway/static/root/assets/tool-friendly-title-DGmi7rCQ.js +0 -1
- package/dist/gateway/static/root/assets/tracing-settings-page-CemIMuec.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-BhX_Ahlu.js +0 -2
- 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
|
|
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
|
|
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
|
|
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
|
-
|
|
344
|
-
|
|
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 (
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
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 (!
|
|
363
|
-
|
|
364
|
-
|
|
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
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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";
|
package/dist/src/config/index.js
CHANGED
|
@@ -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";
|