@xopcai/xopc 0.0.425 → 0.0.427
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/src/adapters/security-adapter.js +1 -1
- package/dist/extensions/telegram/src/pairing-config-resolver.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +2 -2
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +1 -1
- package/dist/extensions/weixin/src/auth/accounts.js +2 -2
- package/dist/extensions/weixin/src/auth/pairing.js +1 -1
- package/dist/extensions/weixin/src/cdn/upload.js +1 -1
- package/dist/extensions/weixin/src/cli/gateway-qr-login.js +1 -1
- package/dist/extensions/weixin/src/cli/qr-login.js +1 -1
- package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
- package/dist/extensions/weixin/src/messaging/inbound.js +2 -2
- package/dist/extensions/weixin/src/messaging/process-message.js +3 -3
- package/dist/extensions/weixin/src/messaging/send.js +12 -3
- package/dist/extensions/weixin/src/monitor/monitor.js +1 -1
- package/dist/extensions/weixin/src/outbound-send.js +12 -3
- package/dist/extensions/weixin/src/pairing-config-resolver.js +1 -1
- package/dist/extensions/weixin/src/plugin.js +1 -1
- package/dist/gateway/static/root/assets/{activity-store-CMw8qBuC.js → activity-store-D_DXNHba.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-JI0YWOIm.js → agent-avatar-dicebear-CjaQxFQt.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-display-YqmwzOSa.js → agent-avatar-display-6Z4m31Fz.js} +2 -2
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-D4ClP_DJ.js +1 -0
- package/dist/gateway/static/root/assets/agent-plugin-dialog-m1A8wF9p.js +1 -0
- package/dist/gateway/static/root/assets/agents-B9slUA_1.js +77 -0
- package/dist/gateway/static/root/assets/{agents-admin-api-DLnmdC1h.js → agents-admin-api-u5c3GREg.js} +1 -1
- package/dist/gateway/static/root/assets/{api-Boc-CVh7.js → api-C3Tp9MkF.js} +1 -1
- package/dist/gateway/static/root/assets/{api-bL7sxjAF.js → api-CRT9ZyH0.js} +1 -1
- package/dist/gateway/static/root/assets/app-link-DRy3-k7j.js +1 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-jIG5i7KE.js → app-management-settings-panel-XqoIBF2H.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-BnaQW9Xd.js → appearance-settings-9ZtqCASo.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-DUeu_7iC.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-DjboG3kA.js → archive-plugin-BCQnOkV8.js} +1 -1
- package/dist/gateway/static/root/assets/attachment-load-DrVGNxJm.js +1 -0
- package/dist/gateway/static/root/assets/{automation-api-CZqL9l_d.js → automation-api-hRsGx-qe.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-result-state-DRd-X_Ai.js → automation-result-state-CMfVTv_i.js} +1 -1
- package/dist/gateway/static/root/assets/automation-task-card-Bur78p68.js +3 -0
- package/dist/gateway/static/root/assets/{automations-page-HyBQIfmn.js → automations-page-DMIyWsP0.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-DEkDjxeU.js +9 -0
- package/dist/gateway/static/root/assets/{binary-plugins-Bg8ARZUH.js → binary-plugins-CIB5cbvQ.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-DKohqFAW.js → block-editor-CXdlNAmZ.js} +2 -2
- package/dist/gateway/static/root/assets/{browser-automation-inputs-YeibTzw4.js → browser-automation-inputs-Fxo7HbK6.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-BWNcbuz2.js → browser-automations-page-Dn3LN5wo.js} +2 -2
- package/dist/gateway/static/root/assets/{browser-control-api-CDeuxy2x.js → browser-control-api-CbbPvhHR.js} +1 -1
- package/dist/gateway/static/root/assets/browser-settings-page-Cpm9fEPV.js +3 -0
- package/dist/gateway/static/root/assets/{button-CnRSIP6m.js → button-Cc4hUNTt.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-BcQa8c9n.js → capabilities-BEvywfF9.js} +1 -1
- package/dist/gateway/static/root/assets/capabilities-Bo2qEJhH.js +1 -0
- package/dist/gateway/static/root/assets/capabilities-page-BCzsIzvC.js +2 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-Cr67ziwX.js +8 -0
- package/dist/gateway/static/root/assets/{capability-header-actions-CTUCuBlW.js → capability-header-actions-BxMYfQ8y.js} +1 -1
- package/dist/gateway/static/root/assets/channels-CA5z5dGY.js +1 -0
- package/dist/gateway/static/root/assets/{chat-agents-api-B8JO6Tcj.js → chat-agents-api-D8YS5amE.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-chart-block-DRtuFfF1.js → chat-chart-block-B39npsXj.js} +1 -1
- package/dist/gateway/static/root/assets/chat-page-D92AWJbh.js +72 -0
- package/dist/gateway/static/root/assets/{chat-terminal-dock-Dkqq5FSL.js → chat-terminal-dock-DjFnElAM.js} +2 -2
- package/dist/gateway/static/root/assets/{command-palette-api-qujvNqkK.js → command-palette-api-Dijix7V6.js} +1 -1
- package/dist/gateway/static/root/assets/composer-payload-handoff-BQXlFKf4.js +1 -0
- package/dist/gateway/static/root/assets/{computer-settings-page-8q4hRmoo.js → computer-settings-page-MkqyKyf3.js} +1 -1
- package/dist/gateway/static/root/assets/confirm-dialog-D7dQJytv.js +1 -0
- package/dist/gateway/static/root/assets/connected-providers-grid-BSvKP2u-.js +1 -0
- package/dist/gateway/static/root/assets/{connector-service-page-DQaTI21R.js → connector-service-page-DlIl9bLx.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-api-BjypBp2g.js → connectors-api-DEJU8mgn.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-Vx8-MY0Y.js +1 -0
- package/dist/gateway/static/root/assets/{copy-text-row-CYIv7RfP.js → copy-text-row-CpiRzq4G.js} +1 -1
- package/dist/gateway/static/root/assets/{date-picker-D_PSHGpe.js → date-picker-BIfjfOTM.js} +1 -1
- package/dist/gateway/static/root/assets/dependency-picker-XjPB8FJS.js +1 -0
- package/dist/gateway/static/root/assets/{desktop-pet-1Et9VqkM.js → desktop-pet-DFNehTtd.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-narrative-rADKU0FX.js → desktop-pet-narrative-ChwjpnsG.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-0fCGgaG7.js → desktop-pet-settings-BDjsFown.js} +1 -1
- package/dist/gateway/static/root/assets/{dev-view-store-TTj_djD8.js → dev-view-store-CeZZLOc6.js} +1 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-DH_uJ698.js +1 -0
- package/dist/gateway/static/root/assets/{directory-picker-path-field-C07a7wYX.js → directory-picker-path-field-DiZXY7jF.js} +1 -1
- package/dist/gateway/static/root/assets/{discussion-annotation-sync-BFqKm9ky.js → discussion-annotation-sync-BXqNuZnx.js} +1 -1
- package/dist/gateway/static/root/assets/dist-BGTk37IG.js +1 -0
- package/dist/gateway/static/root/assets/dist-BuHnPloF.js +1 -0
- package/dist/gateway/static/root/assets/dist-GJ8-1PAx.js +1 -0
- package/dist/gateway/static/root/assets/dist-ZrL34Ps4.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-DFaVlqas.js → extension-debug-page-myQqsol2.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-iframe-host-BfzPfXBq.js → extension-iframe-host-DaL-OcTw.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-marketplace-api-ow0K1Y4_.js → extension-marketplace-api-DRBszrCR.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-CrDADV5W.js → extension-page-DvlGhZLa.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-mnRoa63o.js → extension-provider-fOi6V6Cr.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-BLl02GFY.js → extension-settings-page-DOGlQpkx.js} +1 -1
- package/dist/gateway/static/root/assets/{file-preview-surface-TGdKqhCf.js → file-preview-surface-DfkXvFnc.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-DfPQIHOL.js → gateway-config-swr-BOCt_zOo.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-67vWg_M2.js → gateway-realtime-BL_Cf0OQ.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-BHBOPF_q.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-restart-CLtR2wkL.js → gateway-restart-CHf8qY7H.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-COvC3r-l.js → gateway-settings-Di41peSM.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-9YQllbw2.js → gateway-startup-retry-CvkJYurV.js} +1 -1
- package/dist/gateway/static/root/assets/{global-defaults-api-DYMRjGvd.js → global-defaults-api-BWMbKu72.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-B3sgqrl3.js +2 -0
- package/dist/gateway/static/root/assets/{image-generation-api-Dzydfvy8.js → image-generation-api-Ce-IY7Ug.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-Csd_YZXZ.js → imports-page-W7_cDbxy.js} +1 -1
- package/dist/gateway/static/root/assets/index-D4B6O8B3.js +11 -0
- package/dist/gateway/static/root/assets/index-DGWBJDAM.css +1 -0
- package/dist/gateway/static/root/assets/install-connector-dialog-DWVl9ekV.js +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-B201bMIa.js → keyboard-shortcuts-settings-Doyu0Q9e.js} +1 -1
- package/dist/gateway/static/root/assets/link-2-D_ZKYUW7.js +1 -0
- package/dist/gateway/static/root/assets/local-app-workbench-page-B3h3P6aI.js +1 -0
- package/dist/gateway/static/root/assets/{local-apps-page-BOwqNH0L.js → local-apps-page-D6D2bZGW.js} +1 -1
- package/dist/gateway/static/root/assets/{local-session-drafts-DjmK-SM9.js → local-session-drafts-BJ1B1dQ7.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-Bg_XR36n.js → locale-store-Br7IfbXK.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-gw3E9CMQ.js → logs-page-qiXos_12.js} +2 -2
- package/dist/gateway/static/root/assets/management-settings-C0WcSdK7.js +1 -0
- package/dist/gateway/static/root/assets/{markdown-view-BUpXJUPv.js → markdown-view-Ck5s16p9.js} +2 -2
- package/dist/gateway/static/root/assets/mcp-conversation-setup-page-CENs3hGU.js +1 -0
- package/dist/gateway/static/root/assets/{media-plugins-_shnaEMY.js → media-plugins-Ba6vUE4J.js} +1 -1
- package/dist/gateway/static/root/assets/messages-ByFlEbsu.js +3 -0
- package/dist/gateway/static/root/assets/model-selector-DCBmsHzj.js +1 -0
- package/dist/gateway/static/root/assets/{models-hub-cache-KOJC3z6Q.js → models-hub-cache-Bd-fYUrV.js} +1 -1
- package/dist/gateway/static/root/assets/note-detail-panel-CnuxqWMd.js +5 -0
- package/dist/gateway/static/root/assets/note-image-lightbox-BFKZ7qJr.js +1 -0
- package/dist/gateway/static/root/assets/{notes-api-BSmikUKI.js → notes-api-8kp0X1x6.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-CA0NRL8O.js → notes-page-XMdy-H3H.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-api-D2t9HXoC.js → oauth-api-DMMdeaNd.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-provider-connect-DGGGGtcB.js → oauth-provider-connect-CfOK8mPM.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-capture-button-BH54VO0V.js → page-context-capture-button-CKlKWSJ7.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-draft-BS5y8Cx9.js → page-context-draft-LF33STHC.js} +1 -1
- package/dist/gateway/static/root/assets/page-header-store-Du44NIEJ.js +1 -0
- package/dist/gateway/static/root/assets/{personal-avatar-D8DtpDTa.js → personal-avatar-D6CzIIfo.js} +1 -1
- package/dist/gateway/static/root/assets/personal-page-CIMMSI25.js +1 -0
- package/dist/gateway/static/root/assets/{personal-settings-panel-9uDaNJy5.js → personal-settings-panel-wKdlrfPq.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-dependencies-card-DLYrI0C4.js → phone-dependencies-card-CDhk5277.js} +1 -1
- package/dist/gateway/static/root/assets/phone-model-connection-DZ-ZunPz.js +1 -0
- package/dist/gateway/static/root/assets/{phone-model-picker-BbA2iI-3.js → phone-model-picker-DuZc5jYO.js} +1 -1
- package/dist/gateway/static/root/assets/phone-settings-page-0u0GQl_R.js +1 -0
- package/dist/gateway/static/root/assets/{phone-workspace-store-CVDk80Bf.js → phone-workspace-store-SN7hfddU.js} +1 -1
- package/dist/gateway/static/root/assets/plugin-details-dialog-Bfc-Wmrd.js +1 -0
- package/dist/gateway/static/root/assets/{popover-select-DD8fmrxH.js → popover-select-CEMWIrtY.js} +1 -1
- package/dist/gateway/static/root/assets/{preference-select-fields-BVoN-lAv.js → preference-select-fields-BKeHZLXZ.js} +1 -1
- package/dist/gateway/static/root/assets/{product-automation-feedback-DCo90zGh.js → product-automation-feedback-BPur0vyo.js} +2 -2
- package/dist/gateway/static/root/assets/{product-open-page-OWl8IAoY.js → product-open-page-Bfd7R483.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-content-Cjas7UNe.js → product-preview-content-Bnq68oVw.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-modal-CPWRvBI9.js → product-preview-modal-BPmTeweh.js} +2 -2
- package/dist/gateway/static/root/assets/project-detail-page-D9nnyvrI.js +7 -0
- package/dist/gateway/static/root/assets/{project-understanding-Ba02SFzB.js → project-understanding-DLvxAoTT.js} +1 -1
- package/dist/gateway/static/root/assets/projects-page-BGy1pw9a.js +1 -0
- package/dist/gateway/static/root/assets/{providers-api-rwQ4LWzr.js → providers-api-DOnNfkwQ.js} +1 -1
- package/dist/gateway/static/root/assets/{recording-upload-BSmvRrZQ.js → recording-upload-CHFJbqW1.js} +1 -1
- package/dist/gateway/static/root/assets/{refresh-button-bU_0NarN.js → refresh-button-DiWdGAaX.js} +1 -1
- package/dist/gateway/static/root/assets/{registry-api-Vy7LfH6E.js → registry-api-DFDvOTg4.js} +1 -1
- package/dist/gateway/static/root/assets/{remote-access-hub-UXrnpGev.js → remote-access-hub-BVqwnOqO.js} +1 -1
- package/dist/gateway/static/root/assets/{resource-unavailable-f9OzSi4W.js → resource-unavailable-TQcRCpAg.js} +1 -1
- package/dist/gateway/static/root/assets/route-preload-DI43HQV_.js +2 -0
- package/dist/gateway/static/root/assets/{runtime-tools-api-Bt8t37z5.js → runtime-tools-api-9o3Wfji1.js} +1 -1
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-DU4UXnBm.js → runtime-tools-settings-panel-ccVBG-bZ.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-BKeP5G7b.js → schema-form-C-jw6Hid.js} +1 -1
- package/dist/gateway/static/root/assets/{secret-input-BQvFXqzz.js → secret-input-Dryrns2s.js} +1 -1
- package/dist/gateway/static/root/assets/{service-recommendation-list-CuYsRcBB.js → service-recommendation-list-CNghOavt.js} +1 -1
- package/dist/gateway/static/root/assets/{session-api-DJI9eSgw.js → session-api-Bs3r_d2_.js} +1 -1
- package/dist/gateway/static/root/assets/session-manager-Bnq3qpqy.js +23 -0
- package/dist/gateway/static/root/assets/sessions-page-CyBj1Xw2.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-BI4DMz4_.js +1 -0
- package/dist/gateway/static/root/assets/{settings-advanced-section-BxUuF_yi.js → settings-advanced-section-DwpPPxT0.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-mode-store-CaoRh2gt.js → settings-mode-store-CiRpsdTJ.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-qQ8-6dJ_.js → settings-page-Cd8Ermnn.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-header-CyUHrn7c.js → settings-page-header-BZl4AMiN.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-layout-DGVqXrlp.js → settings-page-layout-onhEgq-K.js} +1 -1
- package/dist/gateway/static/root/assets/setup-interaction-page-Cvvj6JyV.js +1 -0
- package/dist/gateway/static/root/assets/setup-status-panel-D4qgE7QM.js +1 -0
- package/dist/gateway/static/root/assets/share-link-dialog-DA0QuFOD.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-Cem96FbB.js → share-preview-page-YDpIY4dC.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-Dowes16l.js → shares-api-D8Q-m46d.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-DUvjOMmA.js +1 -0
- package/dist/gateway/static/root/assets/{skill-api-D8ZwFEVe.js → skill-api-uKU4sRiv.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-list-api-B4gp00-f.js → skill-list-api-BzKzG-xG.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-ClmaaDXo.js → skill-reload-api-DkUXekcd.js} +1 -1
- package/dist/gateway/static/root/assets/skills-page-ClyNSh-7.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-D095uacX.js → system-settings-panel-BN6sUX0H.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-CS9m7Ipo.js +2 -0
- package/dist/gateway/static/root/assets/{task-result-evidence-LUrJlUhb.js → task-result-evidence-DKygspo2.js} +1 -1
- package/dist/gateway/static/root/assets/{terminal-panel-store-BqEDB1Vl.js → terminal-panel-store-DJVC7HqA.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-gAcojLgP.js → theme-store-Dlnmgryi.js} +1 -1
- package/dist/gateway/static/root/assets/tool-friendly-title-DcCc6g7o.js +1 -0
- package/dist/gateway/static/root/assets/tracing-settings-page-Bs76WeoF.js +1 -0
- package/dist/gateway/static/root/assets/{tunnel-api-C9u9E3UQ.js → tunnel-api-B7nx0NQJ.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-activity-store-BTrzsR6_.js → understanding-activity-store-C4bblRnQ.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-refresh-store-5Qava3jh.js → understanding-refresh-store-BvCj9-Ue.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-DFMLYKAc.js → usage-page-anU5gslJ.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-3O-X7x15.js → use-autosave-YHxQ-UZg.js} +1 -1
- package/dist/gateway/static/root/assets/use-composer-attachments-DYY3Yz4a.js +2 -0
- package/dist/gateway/static/root/assets/use-file-preview-expanded-CYgWzDnv.js +2 -0
- package/dist/gateway/static/root/assets/{use-personal-profile-MusPgljM.js → use-personal-profile-D2Un8G1L.js} +1 -1
- package/dist/gateway/static/root/assets/{use-workspace-tree-Ck_U2yTw.js → use-workspace-tree-Dkg9tUr4.js} +1 -1
- package/dist/gateway/static/root/assets/user-model-page-DIgPL3tN.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-C5zJApoa.js → voice-api-key-field-BUes-Jlp.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-DC1bYDt1.js → voice-config-api-CrULrSKC.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-input-shortcut-events-0SZjJdVV.js → voice-input-shortcut-events-DFMNIyy4.js} +1 -1
- package/dist/gateway/static/root/assets/voice-transcribe-api-Dy4hfftb.js +1 -0
- package/dist/gateway/static/root/assets/{work-discovery-overlay-DAQ8McVe.js → work-discovery-overlay-CFF4cRFl.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-page-DUQysEyb.js → work-discovery-page-BnYaVH3V.js} +1 -1
- package/dist/gateway/static/root/assets/working-directory-picker-modal-GFwVefVA.js +1 -0
- package/dist/gateway/static/root/assets/{workspace-api-ZrN6yUER.js → workspace-api-BdB4NEOh.js} +2 -2
- package/dist/gateway/static/root/assets/workspace-editor-agent-store-4cZ26iaD.js +1 -0
- package/dist/gateway/static/root/assets/{workspace-file-preview-dialog-Yj_kBWSb.js → workspace-file-preview-dialog-NRL3YRjg.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-open-location-menu-yxT7wajO.js → workspace-open-location-menu-Dcij7wvJ.js} +1 -1
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-IcH9KDzx.js → xopc-cloud-account-card-DC9aG7Pl.js} +1 -1
- package/dist/gateway/static/root/index.html +100 -98
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/automations.js +7 -0
- package/dist/packages/gateway-contract/src/capabilities.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +1 -0
- package/dist/src/agent/agent-manager.js +1 -0
- package/dist/src/agent/child-agent-factory.js +1 -1
- package/dist/src/agent/data-acquisition/service.js +1 -1
- package/dist/src/agent/embedded/configuration-capability-correction.d.ts +3 -0
- package/dist/src/agent/embedded/configuration-capability-correction.js +14 -0
- package/dist/src/agent/embedded/run-for-session.js +20 -5
- package/dist/src/agent/embedded/run-turn.js +13 -1
- package/dist/src/agent/embedded/session-runner.js +6 -3
- package/dist/src/agent/image/generation/openai-images-provider.js +1 -1
- package/dist/src/agent/image/load-image-media.js +1 -1
- package/dist/src/agent/inbound/inbound-loop.js +4 -1
- package/dist/src/agent/independent-execution.js +1 -1
- package/dist/src/agent/mcp/config.js +1 -1
- package/dist/src/agent/mcp/connection-drafts.d.ts +3 -1
- package/dist/src/agent/mcp/connection-drafts.js +3 -2
- package/dist/src/agent/mcp/connection-setup.js +34 -2
- package/dist/src/agent/mcp/conversation-setup.d.ts +163 -0
- package/dist/src/agent/mcp/conversation-setup.js +621 -0
- package/dist/src/agent/mcp/native-mcp.d.ts +1 -0
- package/dist/src/agent/mcp/tool-catalog.d.ts +5 -0
- package/dist/src/agent/mcp/tool-catalog.js +19 -2
- package/dist/src/agent/mcp/weixin-setup-scope.d.ts +12 -0
- package/dist/src/agent/mcp/weixin-setup-scope.js +43 -0
- package/dist/src/agent/prompt/conversational-configuration-guide.js +2 -1
- package/dist/src/agent/prompt/sections/tooling.js +3 -2
- package/dist/src/agent/prompt/service-prompt-builder.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.d.ts +2 -0
- package/dist/src/agent/service.js +11 -1
- package/dist/src/agent/service.types.d.ts +1 -0
- package/dist/src/agent/tasks/task-judge-service.js +2 -2
- package/dist/src/agent/tool-manuals/xopc-configuration.d.ts +6 -4
- package/dist/src/agent/tool-manuals/xopc-configuration.js +92 -8
- package/dist/src/agent/tools/automation-tool.d.ts +9 -1
- package/dist/src/agent/tools/automation-tool.js +34 -5
- package/dist/src/agent/tools/create-share-tool.js +1 -1
- package/dist/src/agent/tools/factory.d.ts +3 -0
- package/dist/src/agent/tools/factory.js +34 -23
- package/dist/src/agent/tools/image-generate-tool.js +3 -3
- package/dist/src/agent/tools/index.d.ts +1 -0
- package/dist/src/agent/tools/index.js +5 -4
- package/dist/src/agent/tools/mcp-setup-tool.d.ts +9 -0
- package/dist/src/agent/tools/mcp-setup-tool.js +32 -0
- package/dist/src/agent/tools/personal-task-tool.js +2 -2
- package/dist/src/agent/tools/publish-artifacts.js +1 -1
- package/dist/src/agent/tools/read.js +1 -1
- package/dist/src/agent/tools/skill-install-tool.js +56 -1
- package/dist/src/agent/tools/skill-manage-tool.d.ts +4 -0
- package/dist/src/agent/tools/skill-manage-tool.js +74 -2
- package/dist/src/agent/tools/skills-tools.js +1 -1
- package/dist/src/agent/tools/task-collaboration-tool.js +1 -1
- package/dist/src/agent/tools/tool-manual-tool.d.ts +1 -1
- package/dist/src/agent/tools/tool-manual-tool.js +3 -1
- package/dist/src/agent/tools/toolExposure.js +2 -0
- package/dist/src/agent/tools/write.js +1 -1
- package/dist/src/agent/tools/xopc-use-tool.d.ts +4 -2
- package/dist/src/agent/tools/xopc-use-tool.js +60 -10
- package/dist/src/agent-catalog/service.d.ts +1 -1
- package/dist/src/agent-catalog/service.js +2 -1
- package/dist/src/automations/capabilities/drafts.js +5 -2
- package/dist/src/automations/capabilities/read.js +18 -7
- package/dist/src/automations/capabilities/write.d.ts +111 -52
- package/dist/src/automations/capabilities/write.js +44 -10
- package/dist/src/automations/delivery/delivery-router.d.ts +1 -0
- package/dist/src/automations/delivery/delivery-router.js +7 -1
- package/dist/src/automations/domain/types.d.ts +8 -0
- package/dist/src/automations/domain/validation.d.ts +24 -0
- package/dist/src/automations/domain/validation.js +7 -0
- package/dist/src/automations/draft/automation-draft-validator.d.ts +6 -0
- package/dist/src/automations/index.js +2 -2
- package/dist/src/automations/mcp-source.d.ts +60 -0
- package/dist/src/automations/mcp-source.js +173 -0
- package/dist/src/automations/service/action-executor.js +15 -1
- package/dist/src/automations/service/automation-service.d.ts +5 -0
- package/dist/src/automations/service/automation-service.js +52 -2
- package/dist/src/automations/service/index.js +2 -2
- package/dist/src/browser/setup/repository.d.ts +1 -0
- package/dist/src/browser/setup/repository.js +7 -1
- package/dist/src/browser/setup/service.d.ts +3 -0
- package/dist/src/browser/setup/service.js +41 -18
- package/dist/src/browser/setup/types.d.ts +1 -0
- package/dist/src/channels/attachments/voice-stt-webchat.js +1 -1
- package/dist/src/channels/index.js +1 -1
- package/dist/src/channels/manager.d.ts +1 -0
- package/dist/src/channels/outbound-sender.d.ts +1 -0
- package/dist/src/channels/outbound-sender.js +3 -0
- package/dist/src/channels/pairing/pairing-service.js +1 -1
- package/dist/src/channels/weixin/account-identity.d.ts +2 -0
- package/dist/src/channels/weixin/account-identity.js +15 -0
- package/dist/src/chat-commands/builtins/config.js +1 -1
- package/dist/src/cli/commands/backup.js +1 -1
- package/dist/src/cli/commands/channels.js +2 -2
- package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js +1 -1
- package/dist/src/cli/commands/mcp.js +1 -1
- package/dist/src/config/models-json.d.ts +12 -0
- package/dist/src/extensions/agent-plugins/credentials.js +1 -1
- package/dist/src/extensions/agent-plugins/setup.d.ts +1 -1
- package/dist/src/extensions/agent-plugins/setup.js +3 -3
- package/dist/src/extensions/api.js +1 -1
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/device-routes.js +1 -1
- package/dist/src/gateway/global-defaults-admin.js +1 -1
- package/dist/src/gateway/hono/app.js +1 -1
- package/dist/src/gateway/hono/lib/config-payload.js +1 -1
- package/dist/src/gateway/hono/oauth-async.js +1 -1
- package/dist/src/gateway/hono/routes/channels.js +1 -1
- package/dist/src/gateway/hono/routes/config.js +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +1 -1
- package/dist/src/gateway/hono/routes/mcp.js +39 -2
- package/dist/src/gateway/hono/routes/notes.js +2 -2
- package/dist/src/gateway/hono/routes/phone-setup.js +45 -16
- package/dist/src/gateway/hono/routes/phone.js +2 -4
- package/dist/src/gateway/hono/routes/projects.js +1 -1
- package/dist/src/gateway/hono/routes/provider-setup.js +1 -1
- package/dist/src/gateway/hono/routes/public-gateway.js +22 -0
- package/dist/src/gateway/hono/routes/session-input-handler.js +1 -1
- package/dist/src/gateway/hono/routes/shares.js +1 -1
- package/dist/src/gateway/hono/routes/site-shares.js +1 -1
- package/dist/src/gateway/hono/routes/tasks.js +1 -1
- package/dist/src/gateway/media-access.js +1 -1
- package/dist/src/gateway/service/agent-runner.d.ts +1 -0
- package/dist/src/gateway/service/agent-runner.js +3 -1
- package/dist/src/gateway/service/config-coordinator.d.ts +1 -1
- package/dist/src/gateway/service/config-coordinator.js +2 -1
- package/dist/src/gateway/service/run-gateway-agent.js +1 -1
- package/dist/src/gateway/service/sessions-api.js +2 -1
- package/dist/src/gateway/service.d.ts +5 -1
- package/dist/src/gateway/service.js +86 -12
- package/dist/src/gateway/session-context-summary.js +1 -1
- package/dist/src/gateway/session-reset-service.d.ts +1 -0
- package/dist/src/gateway/session-reset-service.js +15 -2
- package/dist/src/gateway/xopc-cloud-capability-setup.js +9 -1
- package/dist/src/notes/service.js +1 -1
- package/dist/src/personal-agent/prompts.js +1 -1
- package/dist/src/personal-agent/reply-composer.js +2 -2
- package/dist/src/personal-agent/request-service.js +3 -3
- package/dist/src/personal-agent/service.js +1 -1
- package/dist/src/personal-agent/task-cancel.js +1 -1
- package/dist/src/phone/cloud-adb-connection.js +8 -5
- package/dist/src/phone/contracts.d.ts +4 -0
- package/dist/src/phone/contracts.js +6 -1
- package/dist/src/phone/gui-protocol.d.ts +7 -0
- package/dist/src/phone/gui-protocol.js +302 -0
- package/dist/src/phone/model-adapter.d.ts +1 -1
- package/dist/src/phone/model-adapter.js +7 -4
- package/dist/src/phone/runtime.js +8 -2
- package/dist/src/phone/setup/service.d.ts +14 -4
- package/dist/src/phone/setup/service.js +106 -28
- 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 +2 -0
- package/dist/src/phone/ui-session.js +23 -4
- package/dist/src/projects/index.js +1 -1
- package/dist/src/projects/project-service.js +1 -1
- package/dist/src/providers/env-keys.js +2 -0
- package/dist/src/providers/index.js +11 -0
- package/dist/src/providers/model-catalog-types.d.ts +1 -1
- package/dist/src/providers/model-supplements.d.ts +1 -1
- package/dist/src/providers/model-supplements.js +6 -3
- package/dist/src/providers/phone-models.d.ts +3 -0
- package/dist/src/providers/phone-models.js +33 -0
- package/dist/src/providers/presentation.js +0 -1
- package/dist/src/runtime-tools/phone-dependencies.d.ts +2 -0
- package/dist/src/runtime-tools/phone-dependencies.js +10 -0
- package/dist/src/share/note-share-service.js +1 -1
- package/dist/src/share/site-proxy.js +1 -1
- package/dist/src/tasks/capabilities/write.js +1 -1
- package/dist/src/tasks/index.js +1 -1
- package/dist/src/tasks/task-allocation-service.js +3 -3
- package/dist/src/tasks/task-application-service.js +2 -2
- package/dist/src/tasks/task-context-assembler.js +1 -1
- package/dist/src/tasks/task-contract-planner.js +1 -1
- package/dist/src/tasks/task-handoff.js +1 -1
- package/dist/src/tasks/task-research-result.js +1 -1
- package/dist/src/tasks/task-run-coordinator.js +2 -2
- package/dist/src/tui/backends/embedded-backend.js +1 -1
- package/dist/src/tui/tui.js +1 -1
- package/dist/src/voice/platform-catalog.d.ts +1 -1
- package/package.json +3 -1
- package/skills/tools/configure-xopc/SKILL.md +10 -3
- package/skills/tools/configure-xopc/references/browser/chrome-extension.md +4 -1
- package/skills/tools/configure-xopc/references/browser/overview.md +2 -2
- package/skills/tools/configure-xopc/references/phone/aliyun.md +3 -2
- package/skills/tools/configure-xopc/references/phone/overview.md +2 -2
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DlvjxWg6.js +0 -1
- package/dist/gateway/static/root/assets/agent-plugin-dialog-OBueuQSc.js +0 -1
- package/dist/gateway/static/root/assets/agents-Cp6_5OOQ.js +0 -77
- package/dist/gateway/static/root/assets/app-link-1j40sJ-z.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-C2WKUwtN.js +0 -1
- package/dist/gateway/static/root/assets/attachment-load-qjPpQzYY.js +0 -1
- package/dist/gateway/static/root/assets/automation-task-card-wbnR5i6N.js +0 -3
- package/dist/gateway/static/root/assets/automations-workspace-D6cTOKr7.js +0 -9
- package/dist/gateway/static/root/assets/browser-settings-page-L0nBjfhG.js +0 -3
- package/dist/gateway/static/root/assets/capabilities-aT-QjNTl.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-page-DlpuHdHi.js +0 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-pvqkN2-2.js +0 -8
- package/dist/gateway/static/root/assets/channels-BUPtawh6.js +0 -1
- package/dist/gateway/static/root/assets/chat-page-BP0huA-W.js +0 -72
- package/dist/gateway/static/root/assets/composer-payload-handoff-CYIhcczq.js +0 -1
- package/dist/gateway/static/root/assets/confirm-dialog-XGclfBqe.js +0 -1
- package/dist/gateway/static/root/assets/connected-providers-grid-CKZfhHSD.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-Lf1ZzaVn.js +0 -1
- package/dist/gateway/static/root/assets/dependency-picker-UqKVJ9dv.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-ByEL5lvM.js +0 -1
- package/dist/gateway/static/root/assets/dist-CaUuvp8-.js +0 -1
- package/dist/gateway/static/root/assets/dist-D3lWNSe7.js +0 -1
- package/dist/gateway/static/root/assets/dist-DfWfZ9iu.js +0 -1
- package/dist/gateway/static/root/assets/dist-DusecO_p.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-Bkt1z-xo.js +0 -1
- package/dist/gateway/static/root/assets/home-page-k9LFXcVa.js +0 -2
- package/dist/gateway/static/root/assets/index-CpwPxKQ8.css +0 -1
- package/dist/gateway/static/root/assets/index-DKW7BeT_.js +0 -11
- package/dist/gateway/static/root/assets/install-connector-dialog-CTQAKTPv.js +0 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-CD_8_gd_.js +0 -1
- package/dist/gateway/static/root/assets/management-settings-t_Z2mCyw.js +0 -1
- package/dist/gateway/static/root/assets/messages-DG4HLOER.js +0 -3
- package/dist/gateway/static/root/assets/model-selector-a7PIT1Lk.js +0 -1
- package/dist/gateway/static/root/assets/note-detail-panel-BsHYUFgk.js +0 -5
- package/dist/gateway/static/root/assets/note-image-lightbox-B-bEtjhj.js +0 -1
- package/dist/gateway/static/root/assets/page-header-store-BdZnUh-D.js +0 -1
- package/dist/gateway/static/root/assets/personal-page-KJezmTKP.js +0 -1
- package/dist/gateway/static/root/assets/phone-settings-page-Cg_BPss4.js +0 -1
- package/dist/gateway/static/root/assets/plugin-details-dialog-DgibLkc3.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-B_HlZux_.js +0 -7
- package/dist/gateway/static/root/assets/projects-page-CdfKjp95.js +0 -1
- package/dist/gateway/static/root/assets/route-preload-BtObM-co.js +0 -2
- package/dist/gateway/static/root/assets/session-manager-CtKgACGl.js +0 -23
- package/dist/gateway/static/root/assets/sessions-page-BAsKzRHt.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-CjAFqg2U.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-BpaPb625.js +0 -1
- package/dist/gateway/static/root/assets/share-link-dialog-CQJ6Ykm2.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-DZEkZDR0.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-CV0X9rvG.js +0 -2
- package/dist/gateway/static/root/assets/task-detail-page-CY2C4AM2.js +0 -2
- package/dist/gateway/static/root/assets/tool-friendly-title-o6sxGVUu.js +0 -1
- package/dist/gateway/static/root/assets/tracing-settings-page-B1ZRh-Is.js +0 -1
- package/dist/gateway/static/root/assets/use-composer-attachments-BLc4dBfe.js +0 -2
- package/dist/gateway/static/root/assets/use-file-preview-expanded-BaOmTXsT.js +0 -2
- package/dist/gateway/static/root/assets/user-model-page-Den5Lg-k.js +0 -2
- package/dist/gateway/static/root/assets/voice-transcribe-api-CxVeANPX.js +0 -1
- package/dist/gateway/static/root/assets/working-directory-picker-modal-BO9qdJyZ.js +0 -1
- package/dist/gateway/static/root/assets/workspace-editor-agent-store-Bo5dwoWP.js +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { turnOutcomeKindFromFileName } from "../../../packages/gateway-contract/src/turn-outcome.js";
|
|
2
2
|
import { init_src } from "../../../packages/gateway-contract/src/index.js";
|
|
3
|
+
import { resolveReverseProxyPublicUrl } from "../../gateway/public-url.js";
|
|
3
4
|
import { assertWorkspaceTreeReadable, checkedFilePath } from "../sandbox/fileAccess.js";
|
|
4
5
|
import { resolvePathUnderWorkspace } from "./tool-paths.js";
|
|
5
6
|
import { resolveGatewayEffectiveHost } from "../../config/gateway-bind.js";
|
|
@@ -9,7 +10,6 @@ import { getShareStore } from "../../share/share-store.js";
|
|
|
9
10
|
import { getSiteShareStore } from "../../share/site-share-store.js";
|
|
10
11
|
import { resolveShareUrl, resolveSiteShareUrl } from "../../share/share-url.js";
|
|
11
12
|
import { publishHostedStaticSite } from "../../share/hosted-static-site-publish.js";
|
|
12
|
-
import { resolveReverseProxyPublicUrl } from "../../gateway/public-url.js";
|
|
13
13
|
import { audienceDefaults, decideShareKind, makeDescription, makeTitle, probeShareTarget, rememberStagedSite, stageSingleHtmlAsSite } from "../../share/share-auto.js";
|
|
14
14
|
import { scheduleThumbnail } from "../../share/share-thumbnail.js";
|
|
15
15
|
import { resolveToolLocale, shareToolErrorLine, shareToolSuccessLines } from "../../i18n/share-tool-bundle.js";
|
|
@@ -34,6 +34,8 @@ export interface ToolFactoryDeps {
|
|
|
34
34
|
chatId: string;
|
|
35
35
|
conversationId: string;
|
|
36
36
|
origin: TurnOrigin;
|
|
37
|
+
isGroup?: boolean;
|
|
38
|
+
metadata?: Record<string, unknown>;
|
|
37
39
|
} | null;
|
|
38
40
|
endpointTools?: EndpointToolRuntime;
|
|
39
41
|
hookRunner?: import('../../extensions/index.js').ExtensionHookRunner;
|
|
@@ -60,6 +62,7 @@ export interface ToolFactoryDeps {
|
|
|
60
62
|
canConfigureEndpoint?: (endpointId: string) => boolean;
|
|
61
63
|
getPhoneSetupService?: () => import('../../phone/setup/service.js').PhoneSetupService | undefined;
|
|
62
64
|
getBrowserSetupService?: () => import('../../browser/setup/service.js').BrowserSetupService | undefined;
|
|
65
|
+
getMcpSetupService?: () => import('../mcp/conversation-setup.js').McpConversationSetup | undefined;
|
|
63
66
|
getBrowserAutomationService?: () => BrowserAutomationService | undefined;
|
|
64
67
|
emitBrowserEvent?: (type: string, payload: unknown) => void;
|
|
65
68
|
/** Gateway: enables the `xopc_use` product-object tool. */
|
|
@@ -9,6 +9,8 @@ import { patchSessionMetadata } from "../../storage/sqlite/session-repository.js
|
|
|
9
9
|
import { getSessionTaskPlan, setSessionTaskPlan } from "../../storage/sqlite/session-task-plan-repository.js";
|
|
10
10
|
import "../../storage/sqlite/index.js";
|
|
11
11
|
import { init_agent_scope, resolveDefaultAgentId } from "../agent-scope.js";
|
|
12
|
+
import { getConversationRouting } from "../../storage/sqlite/conversation-repository.js";
|
|
13
|
+
import { init_session_key } from "../../routing/session-key.js";
|
|
12
14
|
import { resolveUserContextSessionAccess } from "../../user-context/access-policy.js";
|
|
13
15
|
import { resolveEffectiveAgentConfigForAgent } from "../../config/agent-profile.js";
|
|
14
16
|
import { PERSONAL_TOOL_DESCRIPTIONS } from "../../personal-agent/policy.js";
|
|
@@ -24,10 +26,12 @@ import { markCodemodeCoreRead } from "./codemode-permissions.js";
|
|
|
24
26
|
import "../../../packages/browser-control-contract/src/index.js";
|
|
25
27
|
import { wrapToolsWithProtection } from "./executor.js";
|
|
26
28
|
import { createDefaultExternalToolGatewayTools } from "../external-tools/index.js";
|
|
27
|
-
import { createReadFileTool } from "./read.js";
|
|
28
|
-
import { createDataBatchTool } from "./dataBatch.js";
|
|
29
29
|
import { buildRuntimeEnvironment } from "../../runtime-tools/environment.js";
|
|
30
30
|
import { skillEnvironmentId } from "../skills/installer.js";
|
|
31
|
+
import { createDataBatchTool } from "./dataBatch.js";
|
|
32
|
+
import { createXopcUseTool } from "./xopc-use-tool.js";
|
|
33
|
+
import { createMcpSetupTool } from "./mcp-setup-tool.js";
|
|
34
|
+
import { createReadFileTool } from "./read.js";
|
|
31
35
|
import { createWriteFileTool } from "./write.js";
|
|
32
36
|
import { createListDirTool } from "./list-dir.js";
|
|
33
37
|
import { createPublishArtifactsTool } from "./publish-artifacts.js";
|
|
@@ -59,7 +63,6 @@ import { getActiveTranscriptUserText, getPendingTranscriptUserText } from "../in
|
|
|
59
63
|
import { createDelegateTool } from "./delegate-tool.js";
|
|
60
64
|
import { createAutomationTool } from "./automation-tool.js";
|
|
61
65
|
import { createBrowserAutomationTool } from "./browser-automation-tool.js";
|
|
62
|
-
import { createXopcUseTool } from "./xopc-use-tool.js";
|
|
63
66
|
import { createSkillViewTool, createSkillsListTool } from "./skills-tools.js";
|
|
64
67
|
import { createSkillManageTool } from "./skill-manage-tool.js";
|
|
65
68
|
import { createSkillsMarketplaceSearchTool } from "./skills-marketplace-search-tool.js";
|
|
@@ -93,6 +96,7 @@ import { sortToolsForPromptCache } from "./cache-stability.js";
|
|
|
93
96
|
init_agent_scope();
|
|
94
97
|
init_request_repository();
|
|
95
98
|
init_logger();
|
|
99
|
+
init_session_key();
|
|
96
100
|
init_paths_state();
|
|
97
101
|
const log = createLogger("AgentToolsFactory");
|
|
98
102
|
/** Channels where `clarify` can block for a user answer (web UI, Telegram, CLI readline). */
|
|
@@ -324,6 +328,12 @@ var AgentToolsFactory = class AgentToolsFactory {
|
|
|
324
328
|
const grep = createGrepTool(workspace);
|
|
325
329
|
const find = createFindTool(workspace);
|
|
326
330
|
const productToolDeps = {
|
|
331
|
+
canRequestWeixinMcpSetup: () => {
|
|
332
|
+
const context = this.deps.getCurrentContext();
|
|
333
|
+
if (!context || context.origin.type !== "channel" || context.origin.channel !== "weixin" || context.isGroup) return false;
|
|
334
|
+
const route = getConversationRouting(context.conversationId);
|
|
335
|
+
return route?.accountId === context.metadata?.accountId && route.peerId.toLowerCase() === context.chatId.toLowerCase();
|
|
336
|
+
},
|
|
327
337
|
canConfigureFromConversation: () => {
|
|
328
338
|
const origin = this.deps.getCurrentContext()?.origin;
|
|
329
339
|
return origin?.type === "system" && origin.source === "cli" || origin?.type === "endpoint" && this.deps.canConfigureEndpoint?.(origin.endpointId) === true;
|
|
@@ -341,6 +351,7 @@ var AgentToolsFactory = class AgentToolsFactory {
|
|
|
341
351
|
getLocalAppService: this.deps.getLocalAppService,
|
|
342
352
|
getChatPreviewService: this.deps.getChatPreviewService,
|
|
343
353
|
getBrowserSetupService: this.deps.getBrowserSetupService,
|
|
354
|
+
getMcpSetupService: this.deps.getMcpSetupService,
|
|
344
355
|
getPhoneSetupService: this.deps.getPhoneSetupService,
|
|
345
356
|
dispatchTaskEvents: this.deps.dispatchTaskEvents,
|
|
346
357
|
dispatchTaskRuns: this.deps.dispatchTaskRuns,
|
|
@@ -398,7 +409,8 @@ var AgentToolsFactory = class AgentToolsFactory {
|
|
|
398
409
|
createSkillManageTool({
|
|
399
410
|
getSkillManager: getSkillMgr,
|
|
400
411
|
getWorkspace: () => workspace,
|
|
401
|
-
onSkillsFilesystemMutate: this.deps.onSkillsFilesystemMutate
|
|
412
|
+
onSkillsFilesystemMutate: this.deps.onSkillsFilesystemMutate,
|
|
413
|
+
getSkillIndexingContext: this.deps.getSkillIndexingContext
|
|
402
414
|
})
|
|
403
415
|
] : [],
|
|
404
416
|
createSkillsMarketplaceSearchTool({
|
|
@@ -559,26 +571,25 @@ var AgentToolsFactory = class AgentToolsFactory {
|
|
|
559
571
|
getCurrentConversationId: () => this.deps.getCurrentContext()?.conversationId,
|
|
560
572
|
canAccess: () => currentAccess().crossSessionHistory
|
|
561
573
|
})] : [],
|
|
562
|
-
...this.deps.getAutomationService ? [createAutomationTool(
|
|
563
|
-
getCurrentConversationId: () => this.deps.getCurrentContext()?.conversationId,
|
|
564
|
-
getAutomationService: this.deps.getAutomationService,
|
|
565
|
-
getCurrentAgentId: () => options.agentId,
|
|
566
|
-
getProjectService: this.deps.getProjectService
|
|
567
|
-
})] : [],
|
|
574
|
+
...this.deps.getAutomationService ? [createAutomationTool(productToolDeps)] : [],
|
|
568
575
|
...browserEnabled && this.deps.getBrowserAutomationService ? [createBrowserAutomationTool({ getBrowserAutomationService: this.deps.getBrowserAutomationService })] : [],
|
|
569
|
-
...this.deps.getPhoneSetupService || this.deps.getBrowserSetupService || this.deps.getAutomationService || this.deps.getProjectService || this.deps.getNotesService || this.deps.getLocalAppService || this.deps.getChatPreviewService || this.deps.dispatchTaskEvents || this.deps.dispatchTaskRuns ? [
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
576
|
+
...this.deps.getPhoneSetupService || this.deps.getBrowserSetupService || this.deps.getAutomationService || this.deps.getProjectService || this.deps.getNotesService || this.deps.getLocalAppService || this.deps.getChatPreviewService || this.deps.dispatchTaskEvents || this.deps.dispatchTaskRuns ? [
|
|
577
|
+
createXopcUseTool(productToolDeps),
|
|
578
|
+
...this.deps.getMcpSetupService ? [createMcpSetupTool(productToolDeps)] : [],
|
|
579
|
+
...personalToolsConfigured ? [
|
|
580
|
+
createPersonalTaskTool(productToolDeps),
|
|
581
|
+
createPersonalReadTool({
|
|
582
|
+
...productToolDeps,
|
|
583
|
+
getCurrentConversationId: currentConversationId
|
|
584
|
+
}),
|
|
585
|
+
createPersonalResultTool(currentConversationId),
|
|
586
|
+
...createPersonalRequestTools(productToolDeps),
|
|
587
|
+
createPersonalAttentionTool({
|
|
588
|
+
getConversationId: () => this.deps.getCurrentContext()?.conversationId,
|
|
589
|
+
getConfig: () => this.deps.getConfig?.()
|
|
590
|
+
})
|
|
591
|
+
] : []
|
|
592
|
+
] : [],
|
|
582
593
|
...cfg?.phone?.enabled || this.deps.getPhoneSetupService ? [createPhoneUseTool({
|
|
583
594
|
runtime: getPhoneRuntime(),
|
|
584
595
|
getSetupService: this.deps.getPhoneSetupService,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { getAgentDefaultImageGenerationModelConfig, init_schema } from "../../config/schema.js";
|
|
2
|
-
import { readWorkspaceFile, writeWorkspaceFile } from "../sandbox/fileAccess.js";
|
|
3
|
-
import { imageAssetFromDataUrl, imageFileExtensionForMimeType, mimeTypeFromFileName, parseImageDataUrl, sniffImageMimeType } from "../image/generation/image-assets.js";
|
|
4
|
-
import { persistToolMedia } from "./tool-media.js";
|
|
5
2
|
import { buildCapabilityPlansForConfig } from "../../capabilities/readiness/from-config.js";
|
|
6
3
|
import "../../capabilities/readiness/index.js";
|
|
7
4
|
import { applyImageGenerationModelConfigDefaults } from "../image/image-helpers.js";
|
|
5
|
+
import { readWorkspaceFile, writeWorkspaceFile } from "../sandbox/fileAccess.js";
|
|
6
|
+
import { imageAssetFromDataUrl, imageFileExtensionForMimeType, mimeTypeFromFileName, parseImageDataUrl, sniffImageMimeType } from "../image/generation/image-assets.js";
|
|
7
|
+
import { persistToolMedia } from "./tool-media.js";
|
|
8
8
|
import { isFailoverError } from "../failover-error.js";
|
|
9
9
|
import { getImageGenerationProvider } from "../image/generation/provider-registry.js";
|
|
10
10
|
import { generateImage, listImageGenerationProvidersSummary } from "../image/generation/runtime.js";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { createMcpSetupTool } from './mcp-setup-tool.js';
|
|
1
2
|
export { getToolMetadata, DEFAULT_TOOL_METADATA, type AgentToolWithMetadata, type ToolMutationScope, type ToolVerificationKind, type XopcToolMetadata, } from './metadata.js';
|
|
2
3
|
export { ToolConcurrencyController, resolveToolLockMode, type ToolLockMode, } from './concurrency.js';
|
|
3
4
|
export { createReadFileTool, type CreateReadFileToolOptions } from './read.js';
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { DEFAULT_TOOL_METADATA, getToolMetadata } from "./metadata.js";
|
|
2
2
|
import { ToolConcurrencyController, resolveToolLockMode } from "./concurrency.js";
|
|
3
|
+
import { resolveImageModelConfigForTool } from "../image/tool-model-config.js";
|
|
4
|
+
import { createDataBatchTool } from "./dataBatch.js";
|
|
5
|
+
import { createXopcUseTool } from "./xopc-use-tool.js";
|
|
6
|
+
import { createMcpSetupTool } from "./mcp-setup-tool.js";
|
|
3
7
|
import { DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, GREP_MAX_LINE_LENGTH, formatSize, truncateHead, truncateLine, truncateTail } from "./truncate.js";
|
|
4
8
|
import { createReadFileTool } from "./read.js";
|
|
5
|
-
import { createDataBatchTool } from "./dataBatch.js";
|
|
6
9
|
import { createWriteFileTool, writeFileTool } from "./write.js";
|
|
7
10
|
import { createListDirTool, listDirTool } from "./list-dir.js";
|
|
8
11
|
import { createPublishArtifactsTool } from "./publish-artifacts.js";
|
|
@@ -30,11 +33,9 @@ import { createClarifyTool } from "./clarify-tool.js";
|
|
|
30
33
|
import { assertBrowserUrlAllowed } from "../../browser/url-policy.js";
|
|
31
34
|
import { BrowserRuntime } from "../../browser/runtime/browser-runtime.js";
|
|
32
35
|
import "../../browser/index.js";
|
|
33
|
-
import { resolveImageModelConfigForTool } from "../image/tool-model-config.js";
|
|
34
36
|
import { DEFAULT_DELEGATE_TOOLS, DELEGATE_BLOCKED_TOOLS, createDelegateTool } from "./delegate-tool.js";
|
|
35
37
|
import { createAutomationTool } from "./automation-tool.js";
|
|
36
38
|
import { createBrowserAutomationTool } from "./browser-automation-tool.js";
|
|
37
|
-
import { createXopcUseTool } from "./xopc-use-tool.js";
|
|
38
39
|
import { createSkillViewTool, createSkillsListTool } from "./skills-tools.js";
|
|
39
40
|
import { createSkillManageTool } from "./skill-manage-tool.js";
|
|
40
41
|
import { createSkillsMarketplaceSearchTool } from "./skills-marketplace-search-tool.js";
|
|
@@ -46,4 +47,4 @@ import { createImageTool } from "./image-tool.js";
|
|
|
46
47
|
import { createImageGenerateTool, resolveImageGenerationModelConfigForTool } from "./image-generate-tool.js";
|
|
47
48
|
import { createPersonalReadTool } from "./personal-read-tool.js";
|
|
48
49
|
import { createTaskCollaborationTool } from "./task-collaboration-tool.js";
|
|
49
|
-
export { BrowserRuntime, DEFAULT_DELEGATE_TOOLS, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, DEFAULT_TOOL_METADATA, DEFAULT_WEB_EXTRACT_MAX_LENGTH, DELEGATE_BLOCKED_TOOLS, GREP_MAX_LINE_LENGTH, MAX_RAW_HTML_CHARS_FOR_WEB_EXTRACT, TodoStore, ToolConcurrencyController, assertBrowserUrlAllowed, createApplyPatchTool, createAutomationTool, createBrowserAutomationTool, createClarifyTool, createCreateShareTool, createDataBatchTool, createDelegateTool, createDesktopPetTool, createExecCommandTool, createFindTool, createGrepTool, createImageGenerateTool, createImageTool, createKnowledgeGetTool, createKnowledgeReadTool, createKnowledgeSearchTool, createKnowledgeWriteTool, createListDirTool, createManagedJobTool, createMemoryMaintenanceTool, createMessageTool, createPersonalReadTool, createPublishArtifactsTool, createReadFileTool, createReadMediaTool, createSendMediaTool, createSessionRecallTool, createSessionSearchTool, createSessionStatusTool, createSkillInstallTool, createSkillManageTool, createSkillViewTool, createSkillsListTool, createSkillsMarketplaceSearchTool, createTaskCollaborationTool, createTaskResultTool, createTodoTool, createToolManualTool, createUpdatePlanTool, createUserContextGetTool, createUserContextReadTool, createUserContextSearchTool, createUserContextUpdateTool, createWebExtractTool, createWebFetchTool, createWebSearchTool, createWriteFileTool, createXopcUseTool, findTool, formatSize, fuzzyFindText, generateDiffString, getToolMetadata, grepTool, isShareToolAvailable, listDirTool, normalizeForFuzzyMatch, normalizeToLF, resolveImageGenerationModelConfigForTool, resolveImageModelConfigForTool, resolveToolLockMode, restoreLineEndings, stripBom, stripHtmlBoilerplate, truncateHead, truncateLine, truncateTail, writeFileTool };
|
|
50
|
+
export { BrowserRuntime, DEFAULT_DELEGATE_TOOLS, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, DEFAULT_TOOL_METADATA, DEFAULT_WEB_EXTRACT_MAX_LENGTH, DELEGATE_BLOCKED_TOOLS, GREP_MAX_LINE_LENGTH, MAX_RAW_HTML_CHARS_FOR_WEB_EXTRACT, TodoStore, ToolConcurrencyController, assertBrowserUrlAllowed, createApplyPatchTool, createAutomationTool, createBrowserAutomationTool, createClarifyTool, createCreateShareTool, createDataBatchTool, createDelegateTool, createDesktopPetTool, createExecCommandTool, createFindTool, createGrepTool, createImageGenerateTool, createImageTool, createKnowledgeGetTool, createKnowledgeReadTool, createKnowledgeSearchTool, createKnowledgeWriteTool, createListDirTool, createManagedJobTool, createMcpSetupTool, createMemoryMaintenanceTool, createMessageTool, createPersonalReadTool, createPublishArtifactsTool, createReadFileTool, createReadMediaTool, createSendMediaTool, createSessionRecallTool, createSessionSearchTool, createSessionStatusTool, createSkillInstallTool, createSkillManageTool, createSkillViewTool, createSkillsListTool, createSkillsMarketplaceSearchTool, createTaskCollaborationTool, createTaskResultTool, createTodoTool, createToolManualTool, createUpdatePlanTool, createUserContextGetTool, createUserContextReadTool, createUserContextSearchTool, createUserContextUpdateTool, createWebExtractTool, createWebFetchTool, createWebSearchTool, createWriteFileTool, createXopcUseTool, findTool, formatSize, fuzzyFindText, generateDiffString, getToolMetadata, grepTool, isShareToolAvailable, listDirTool, normalizeForFuzzyMatch, normalizeToLF, resolveImageGenerationModelConfigForTool, resolveImageModelConfigForTool, resolveToolLockMode, restoreLineEndings, stripBom, stripHtmlBoilerplate, truncateHead, truncateLine, truncateTail, writeFileTool };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AgentTool } from '@earendil-works/pi-agent-core';
|
|
2
|
+
import { type XopcUseToolDeps } from './xopc-use-tool.js';
|
|
3
|
+
declare const schema: import("@sinclair/typebox").TObject<{
|
|
4
|
+
command: import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TLiteral<string>[]>;
|
|
5
|
+
args: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny>>;
|
|
6
|
+
}>;
|
|
7
|
+
/** Small eager entry point; the existing product adapter owns authority and execution. */
|
|
8
|
+
export declare function createMcpSetupTool(deps: XopcUseToolDeps): AgentTool<typeof schema, Record<string, unknown>>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createXopcUseTool } from "./xopc-use-tool.js";
|
|
2
|
+
import { Type } from "@sinclair/typebox";
|
|
3
|
+
//#region src/agent/tools/mcp-setup-tool.ts
|
|
4
|
+
const schema = Type.Object({
|
|
5
|
+
command: Type.Union([
|
|
6
|
+
"inspect",
|
|
7
|
+
"start",
|
|
8
|
+
"get",
|
|
9
|
+
"advance",
|
|
10
|
+
"cancel",
|
|
11
|
+
"set_enabled",
|
|
12
|
+
"remove"
|
|
13
|
+
].map((value) => Type.Literal(value))),
|
|
14
|
+
args: Type.Optional(Type.Record(Type.String(), Type.Any(), { description: "inspect: {}. start: {serverId,url,purpose,displayName?,expectedRevision?}; derive an ASCII serverId if the user gave none. get: {setupId}. advance/cancel: {setupId,expectedVersion}. set_enabled/remove: {serverId,expectedRevision,enabled?}. Never include credentials." }))
|
|
15
|
+
});
|
|
16
|
+
/** Small eager entry point; the existing product adapter owns authority and execution. */
|
|
17
|
+
function createMcpSetupTool(deps) {
|
|
18
|
+
const product = createXopcUseTool(deps);
|
|
19
|
+
return {
|
|
20
|
+
name: "mcp_setup",
|
|
21
|
+
label: "Connect MCP service",
|
|
22
|
+
parameters: schema,
|
|
23
|
+
description: "Configure a user-requested HTTP MCP service on the Gateway host, including user-provided localhost/127.0.0.1 addresses. Probe before claiming an address is unreachable. A clear request authorizes that specific local connection/change/removal; do not ask again. In a paired Weixin private chat, start proposes a specific owner-approved connection; global inspect is unavailable there. Otherwise inspect existing connections; start then advance with the returned version. Token/OAuth uses the trusted interactionPath, never chat input. The host resumes the original objective when ready. Read tool_manual xopc_use topic mcp for details. Connection success is not a business read.",
|
|
24
|
+
execute: (id, params, signal, update) => product.execute(id, {
|
|
25
|
+
mode: "mcp_setup",
|
|
26
|
+
command: params.command,
|
|
27
|
+
args: params.args
|
|
28
|
+
}, signal, update)
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { createMcpSetupTool };
|
|
@@ -12,10 +12,10 @@ import { TaskAllocationRepository } from "../../tasks/task-allocation-repository
|
|
|
12
12
|
import { TaskReadModelProjector } from "../../tasks/task-read-model-projector.js";
|
|
13
13
|
import { TaskOriginRepository } from "../../tasks/task-origin-repository.js";
|
|
14
14
|
import { boundedPersonalResult } from "./personal-result-budget.js";
|
|
15
|
-
import { TaskCollaborationRepository } from "../../tasks/task-collaboration-repository.js";
|
|
16
|
-
import "../../personal-agent/communication.js";
|
|
17
15
|
import { parseTaskHandoffReferences } from "../../tasks/task-handoff.js";
|
|
16
|
+
import { TaskCollaborationRepository } from "../../tasks/task-collaboration-repository.js";
|
|
18
17
|
import { TaskApplicationService } from "../../tasks/task-application-service.js";
|
|
18
|
+
import "../../personal-agent/communication.js";
|
|
19
19
|
import { getAvailablePersonalAgentTools, personalAgentModelAvailability } from "../../personal-agent/specialist-capabilities.js";
|
|
20
20
|
import { assessSpecialist, matchSpecialists } from "../../agent-matching/service.js";
|
|
21
21
|
import { createXopcUseTool } from "./xopc-use-tool.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { turnOutcomeKindFromFileName, turnOutcomeMimeTypeFromFileName } from "../../../packages/gateway-contract/src/turn-outcome.js";
|
|
2
2
|
import { init_src } from "../../../packages/gateway-contract/src/index.js";
|
|
3
|
+
import { fileResourceId, fileSpaceId } from "../../files/file-service.js";
|
|
3
4
|
import { evaluateFilePolicy } from "../sandbox/exec-policy.js";
|
|
4
5
|
import { readWorkspaceFile } from "../sandbox/fileAccess.js";
|
|
5
6
|
import { resolvePathUnderWorkspace } from "./tool-paths.js";
|
|
6
|
-
import { fileResourceId, fileSpaceId } from "../../files/file-service.js";
|
|
7
7
|
import { persistToolMedia } from "./tool-media.js";
|
|
8
8
|
import { basename, isAbsolute, relative, sep } from "node:path";
|
|
9
9
|
import { Type } from "@sinclair/typebox";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { checkedFilePath, readWorkspaceFileAsync } from "../sandbox/fileAccess.js";
|
|
2
|
-
import { dataScheduler } from "../data-acquisition/scheduler.js";
|
|
3
2
|
import { checkFileSafety } from "../prompt/safety.js";
|
|
3
|
+
import { dataScheduler } from "../data-acquisition/scheduler.js";
|
|
4
4
|
import { formatSize, truncateHead } from "./truncate.js";
|
|
5
5
|
import { isBareProfileMarkdownFileName, resolvePathUnderWorkspace, resolveProfileMarkdownPathIfBareName } from "./tool-paths.js";
|
|
6
6
|
import { stat } from "fs/promises";
|
|
@@ -1,7 +1,16 @@
|
|
|
1
|
+
import { init_connection, isXopcDatabaseOpen } from "../../storage/sqlite/connection.js";
|
|
2
|
+
import { DurableState } from "../../storage/sqlite/durable-state.js";
|
|
1
3
|
import { isSkillInstallTarget } from "../skills/install-target.js";
|
|
4
|
+
import { createHash } from "node:crypto";
|
|
2
5
|
import { Type } from "@sinclair/typebox";
|
|
3
6
|
//#region src/agent/tools/skill-install-tool.ts
|
|
7
|
+
init_connection();
|
|
4
8
|
const SkillInstallSchema = Type.Object({
|
|
9
|
+
idempotencyKey: Type.Optional(Type.String({
|
|
10
|
+
minLength: 1,
|
|
11
|
+
maxLength: 200,
|
|
12
|
+
description: "Stable installation intent key. Keep the same key after a timeout; use a new key for a new install/update request."
|
|
13
|
+
})),
|
|
5
14
|
source: Type.Optional(Type.String({ description: "Explicit source install: Git URL, GitHub repository URL, https .zip/.tar.gz URL, file:// URL, or local archive/path." })),
|
|
6
15
|
provider: Type.Optional(Type.Union([
|
|
7
16
|
Type.Literal("store"),
|
|
@@ -21,7 +30,7 @@ function clean(value) {
|
|
|
21
30
|
return typeof value === "string" && value.trim() ? value.trim() : void 0;
|
|
22
31
|
}
|
|
23
32
|
function createSkillInstallTool(deps) {
|
|
24
|
-
|
|
33
|
+
const tool = {
|
|
25
34
|
name: "skill_install",
|
|
26
35
|
label: "Install skill",
|
|
27
36
|
description: "Install an xopc skill from a Store/SkillHub/ClawHub marketplace result or an explicit source. Use only when the user clearly asks to install or update a skill; never treat search or a pasted URL as installation consent.",
|
|
@@ -146,6 +155,52 @@ function createSkillInstallTool(deps) {
|
|
|
146
155
|
idempotent: false,
|
|
147
156
|
finalGuardRelevant: true
|
|
148
157
|
};
|
|
158
|
+
const execute = tool.execute.bind(tool);
|
|
159
|
+
tool.execute = async (callId, params, signal, update) => {
|
|
160
|
+
if (!isXopcDatabaseOpen() || !deps.getConversationId?.()) return execute(callId, params, signal, update);
|
|
161
|
+
const key = clean(params.idempotencyKey) ?? callId;
|
|
162
|
+
const input = {
|
|
163
|
+
source: clean(params.source),
|
|
164
|
+
provider: clean(params.provider),
|
|
165
|
+
name: clean(params.name),
|
|
166
|
+
version: clean(params.version),
|
|
167
|
+
ref: clean(params.ref),
|
|
168
|
+
path: clean(params.path),
|
|
169
|
+
skillId: clean(params.skillId),
|
|
170
|
+
target: isSkillInstallTarget(params.target) ? params.target : "global",
|
|
171
|
+
force: params.force === true,
|
|
172
|
+
strictScan: params.strictScan === true
|
|
173
|
+
};
|
|
174
|
+
const fingerprint = createHash("sha256").update(JSON.stringify(input)).digest("hex");
|
|
175
|
+
const receipts = new DurableState("skills.install", deps.getConversationId());
|
|
176
|
+
const previous = receipts.update(key, (value) => ({
|
|
177
|
+
value: value ?? { fingerprint },
|
|
178
|
+
result: value
|
|
179
|
+
}));
|
|
180
|
+
if (previous) {
|
|
181
|
+
if (previous.fingerprint !== fingerprint) return {
|
|
182
|
+
content: [{
|
|
183
|
+
type: "text",
|
|
184
|
+
text: "Installation intent key was already used with different parameters."
|
|
185
|
+
}],
|
|
186
|
+
details: { errorCode: "intent_conflict" }
|
|
187
|
+
};
|
|
188
|
+
return previous.result ?? {
|
|
189
|
+
content: [{
|
|
190
|
+
type: "text",
|
|
191
|
+
text: "Installation result is not yet known. Inspect skill_manage status before taking further action; do not blindly reinstall or overwrite."
|
|
192
|
+
}],
|
|
193
|
+
details: { errorCode: "install_unknown" }
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
const result = await execute(callId, params, signal, update);
|
|
197
|
+
receipts.set(key, {
|
|
198
|
+
fingerprint,
|
|
199
|
+
result
|
|
200
|
+
});
|
|
201
|
+
return result;
|
|
202
|
+
};
|
|
203
|
+
return tool;
|
|
149
204
|
}
|
|
150
205
|
//#endregion
|
|
151
206
|
export { createSkillInstallTool };
|
|
@@ -4,5 +4,9 @@ export interface SkillManageToolDeps {
|
|
|
4
4
|
getSkillManager: () => SkillManager | undefined;
|
|
5
5
|
getWorkspace: () => string;
|
|
6
6
|
onSkillsFilesystemMutate?: () => void;
|
|
7
|
+
getSkillIndexingContext?: () => {
|
|
8
|
+
registeredToolNames: string[];
|
|
9
|
+
skillAllowlist?: string[];
|
|
10
|
+
} | undefined;
|
|
7
11
|
}
|
|
8
12
|
export declare function createSkillManageTool(deps: SkillManageToolDeps): AgentTool;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { resolveStateDir } from "../../config/paths-state.js";
|
|
2
2
|
import { init_paths } from "../../config/paths.js";
|
|
3
|
-
import {
|
|
3
|
+
import { removeSkillsLockEntry } from "../skills/hub-lock.js";
|
|
4
|
+
import { hasBinary } from "../skills/installer.js";
|
|
5
|
+
import { createSkillConfigManager, getSkillEnvironment, isSkillEnabled, resolveSkillConfig } from "../skills/config.js";
|
|
6
|
+
import { resolveWorkspaceSkillsDir, resolveWorkspaceSkillsLockPath } from "../skills/workspace-skills-dir.js";
|
|
4
7
|
import { applyPatchToContent, atomicWriteUtf8, effectiveAgentWritePolicy, ensureCategorySegment, isPathInsideDir, maxSkillMdChars, maxSupportFileBytes, mutatableSkillOrNull, resolveCreateSkillDir, scanSkillDirOrError, validateSkillMdContent, validateSkillNameSegment, validateSupportingRelativePath } from "../skills/skill-manage-ops.js";
|
|
5
8
|
import { join } from "path";
|
|
6
9
|
import { existsSync, rmSync } from "fs";
|
|
@@ -10,6 +13,9 @@ import { Type } from "@sinclair/typebox";
|
|
|
10
13
|
init_paths();
|
|
11
14
|
const SkillManageSchema = Type.Object({
|
|
12
15
|
action: Type.Union([
|
|
16
|
+
Type.Literal("status"),
|
|
17
|
+
Type.Literal("enable"),
|
|
18
|
+
Type.Literal("disable"),
|
|
13
19
|
Type.Literal("create"),
|
|
14
20
|
Type.Literal("edit"),
|
|
15
21
|
Type.Literal("patch"),
|
|
@@ -40,7 +46,7 @@ function createSkillManageTool(deps) {
|
|
|
40
46
|
return {
|
|
41
47
|
name: "skill_manage",
|
|
42
48
|
label: "🛠️ Skill",
|
|
43
|
-
description: "Create, edit, patch, or delete user skills under ~/.xopc/skills and/or workspace .xopc/skills/ (see skills.agentWritePolicy). Also write_file / remove_file under references/, templates/, scripts/, assets/. Bundled and extra-dir skills cannot be modified. Runs a security scan after writes.",
|
|
49
|
+
description: "Inspect installed skills with status (including disabled skills and current Agent availability); enable or disable by name. Create, edit, patch, or delete/uninstall user skills under ~/.xopc/skills and/or workspace .xopc/skills/ (see skills.agentWritePolicy). Also write_file / remove_file under references/, templates/, scripts/, assets/. Bundled and extra-dir skills cannot be modified. Runs a security scan after writes.",
|
|
44
50
|
parameters: SkillManageSchema,
|
|
45
51
|
async execute(_toolCallId, params) {
|
|
46
52
|
const mgr = deps.getSkillManager();
|
|
@@ -56,6 +62,71 @@ function createSkillManageTool(deps) {
|
|
|
56
62
|
const notify = () => deps.onSkillsFilesystemMutate?.();
|
|
57
63
|
try {
|
|
58
64
|
switch (params.action) {
|
|
65
|
+
case "status":
|
|
66
|
+
case "enable":
|
|
67
|
+
case "disable": {
|
|
68
|
+
const requested = params.name?.trim();
|
|
69
|
+
if (params.action !== "status" && !requested) return jsonResult({
|
|
70
|
+
success: false,
|
|
71
|
+
error: "name is required."
|
|
72
|
+
});
|
|
73
|
+
const skill = requested ? mgr.findSkill(requested) : void 0;
|
|
74
|
+
if (requested && !skill) return jsonResult({
|
|
75
|
+
success: false,
|
|
76
|
+
error: "Skill is not installed.",
|
|
77
|
+
errorCode: "skill_not_found"
|
|
78
|
+
});
|
|
79
|
+
if (params.action !== "status") {
|
|
80
|
+
const enabled = params.action === "enable";
|
|
81
|
+
const manager = createSkillConfigManager(resolveStateDir());
|
|
82
|
+
manager.setSkillEnabled(requested, enabled);
|
|
83
|
+
if (manager.load().entries?.[requested]?.enabled !== enabled) return jsonResult({
|
|
84
|
+
success: false,
|
|
85
|
+
error: "Skill enabled state could not be saved."
|
|
86
|
+
});
|
|
87
|
+
mgr.refreshPromptFromConfig();
|
|
88
|
+
notify();
|
|
89
|
+
}
|
|
90
|
+
const config = createSkillConfigManager(resolveStateDir()).load();
|
|
91
|
+
const indexing = deps.getSkillIndexingContext?.();
|
|
92
|
+
const canLoad = !indexing || indexing.registeredToolNames.includes("skill_view");
|
|
93
|
+
const visible = new Set(canLoad ? mgr.getEnabledSkillsForAgentSession(indexing).map((item) => item.name) : []);
|
|
94
|
+
return jsonResult({
|
|
95
|
+
success: true,
|
|
96
|
+
skills: (skill ? [skill] : mgr.getSkills()).map((item) => {
|
|
97
|
+
const enabled = resolveSkillConfig(item, config).enabled !== false;
|
|
98
|
+
const requires = item.metadata.xopc?.requires ?? item.metadata.requires;
|
|
99
|
+
const environment = getSkillEnvironment(item, config);
|
|
100
|
+
const missingEnv = requires?.env?.filter((name) => !environment[name]) ?? [];
|
|
101
|
+
const anyBinsMissing = Boolean(requires?.anyBins?.length && !requires.anyBins.some(hasBinary));
|
|
102
|
+
const requirementsMet = !missingEnv.length && !anyBinsMissing && isSkillEnabled(item, {
|
|
103
|
+
...config,
|
|
104
|
+
entries: {
|
|
105
|
+
...config.entries,
|
|
106
|
+
[item.name]: {
|
|
107
|
+
...config.entries?.[item.name],
|
|
108
|
+
enabled: true
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
return {
|
|
113
|
+
name: item.name,
|
|
114
|
+
description: item.description,
|
|
115
|
+
source: item.source,
|
|
116
|
+
managed: item.origin?.managed === true,
|
|
117
|
+
writable: Boolean(mutatableSkillOrNull(item, workspace, policy)),
|
|
118
|
+
enabled,
|
|
119
|
+
requirementsMet,
|
|
120
|
+
missingEnv,
|
|
121
|
+
availableToCurrentAgent: requirementsMet && visible.has(item.name),
|
|
122
|
+
state: !enabled ? "disabled" : !requirementsMet ? "requirements_unmet" : !visible.has(item.name) ? "agent_unavailable" : "ready",
|
|
123
|
+
verified: false
|
|
124
|
+
};
|
|
125
|
+
}),
|
|
126
|
+
managementPath: "/capabilities/skills?tab=installed",
|
|
127
|
+
guidance: "Ready means the current Agent can load the skill, not that a task has been tested. After installation, load skill_view and complete the requested task; explain relevant examples and any remaining requirements. Enabling is shared by skill name."
|
|
128
|
+
});
|
|
129
|
+
}
|
|
59
130
|
case "create": {
|
|
60
131
|
const nameErr = validateSkillNameSegment(params.name ?? "", "name");
|
|
61
132
|
if (nameErr) return jsonResult({
|
|
@@ -246,6 +317,7 @@ function createSkillManageTool(deps) {
|
|
|
246
317
|
recursive: true,
|
|
247
318
|
force: true
|
|
248
319
|
});
|
|
320
|
+
removeSkillsLockEntry(name, isPathInsideDir(resolveWorkspaceSkillsDir(workspace), sk.baseDir) ? resolveWorkspaceSkillsLockPath(workspace) : void 0);
|
|
249
321
|
notify();
|
|
250
322
|
return jsonResult({
|
|
251
323
|
success: true,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { resolveStateDir } from "../../config/paths-state.js";
|
|
2
2
|
import { init_paths } from "../../config/paths.js";
|
|
3
|
-
import { DEFAULT_MAX_BYTES, formatSize, truncateHead } from "./truncate.js";
|
|
4
3
|
import { createSkillConfigManager, isSkillEnabled, resolveSkillConfig } from "../skills/config.js";
|
|
4
|
+
import { DEFAULT_MAX_BYTES, formatSize, truncateHead } from "./truncate.js";
|
|
5
5
|
import { resolveSkillReadablePath } from "../skills/skill-view-path.js";
|
|
6
6
|
import { readFileSync, statSync } from "fs";
|
|
7
7
|
import { Type } from "@sinclair/typebox";
|
|
@@ -8,9 +8,9 @@ import { init_session_repository } from "../../storage/sqlite/session-repository
|
|
|
8
8
|
import { TaskReadModelProjector } from "../../tasks/task-read-model-projector.js";
|
|
9
9
|
import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
|
|
10
10
|
import { getEmbeddedExecutionSession } from "../embedded/execution-context.js";
|
|
11
|
+
import { assertTaskHandoffAccess, assertTaskHandoffExecutorAccess, getTaskHandoff, materializeTaskHandoffFile, readTaskHandoffSource } from "../../tasks/task-handoff.js";
|
|
11
12
|
import { TaskCollaborationRepository } from "../../tasks/task-collaboration-repository.js";
|
|
12
13
|
import { taskResearchEvidence } from "../../tasks/task-research-result.js";
|
|
13
|
-
import { assertTaskHandoffAccess, assertTaskHandoffExecutorAccess, getTaskHandoff, materializeTaskHandoffFile, readTaskHandoffSource } from "../../tasks/task-handoff.js";
|
|
14
14
|
import { createXopcUseTool } from "./xopc-use-tool.js";
|
|
15
15
|
import { Type } from "@sinclair/typebox";
|
|
16
16
|
//#region src/agent/tools/task-collaboration-tool.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AgentTool } from '@earendil-works/pi-agent-core';
|
|
2
2
|
declare const ToolManualSchema: import("@sinclair/typebox").TObject<{
|
|
3
3
|
tool: import("@sinclair/typebox").TString;
|
|
4
|
-
topic: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"agent">, import("@sinclair/typebox").TLiteral<"settings">, import("@sinclair/typebox").TLiteral<"automation">, import("@sinclair/typebox").TLiteral<"connections">, import("@sinclair/typebox").TLiteral<"browser_setup">, import("@sinclair/typebox").TLiteral<"phone_setup">]>>;
|
|
4
|
+
topic: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"mcp">, import("@sinclair/typebox").TLiteral<"skills">, import("@sinclair/typebox").TLiteral<"agent">, import("@sinclair/typebox").TLiteral<"settings">, import("@sinclair/typebox").TLiteral<"automation">, import("@sinclair/typebox").TLiteral<"connections">, import("@sinclair/typebox").TLiteral<"browser_setup">, import("@sinclair/typebox").TLiteral<"phone_setup">]>>;
|
|
5
5
|
}>;
|
|
6
6
|
export declare function createToolManualTool(): AgentTool<typeof ToolManualSchema, {}>;
|
|
7
7
|
export {};
|
|
@@ -5,13 +5,15 @@ import { Type } from "@sinclair/typebox";
|
|
|
5
5
|
const ToolManualSchema = Type.Object({
|
|
6
6
|
tool: Type.String({ description: "Built-in tool name, e.g. browser_use" }),
|
|
7
7
|
topic: Type.Optional(Type.Union([
|
|
8
|
+
Type.Literal("mcp"),
|
|
9
|
+
Type.Literal("skills"),
|
|
8
10
|
Type.Literal("agent"),
|
|
9
11
|
Type.Literal("settings"),
|
|
10
12
|
Type.Literal("automation"),
|
|
11
13
|
Type.Literal("connections"),
|
|
12
14
|
Type.Literal("browser_setup"),
|
|
13
15
|
Type.Literal("phone_setup")
|
|
14
|
-
], { description: "Focused
|
|
16
|
+
], { description: "Focused product workflow; omit for the full parameter manual." }))
|
|
15
17
|
});
|
|
16
18
|
function createToolManualTool() {
|
|
17
19
|
return {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { appendProductDeliveryText } from "../../../packages/gateway-contract/src/product-delivery.js";
|
|
2
2
|
import { init_src } from "../../../packages/gateway-contract/src/index.js";
|
|
3
|
+
import { fileResourceId, fileSpaceId } from "../../files/file-service.js";
|
|
3
4
|
import { writeWorkspaceFile } from "../sandbox/fileAccess.js";
|
|
4
5
|
import { checkFileSafety } from "../prompt/safety.js";
|
|
5
6
|
import { isBareProfileMarkdownFileName, resolvePathUnderWorkspace, resolveProfileMarkdownPathIfBareName } from "./tool-paths.js";
|
|
6
|
-
import { fileResourceId, fileSpaceId } from "../../files/file-service.js";
|
|
7
7
|
import { basename, relative, sep } from "path";
|
|
8
8
|
import { realpath } from "fs/promises";
|
|
9
9
|
import { Type } from "@sinclair/typebox";
|
|
@@ -9,12 +9,12 @@ import type { LocalAppService } from '../../local-apps/index.js';
|
|
|
9
9
|
import type { ChatPreviewService } from '../../chat-previews/index.js';
|
|
10
10
|
import { TaskApplicationService } from '../../tasks/task-application-service.js';
|
|
11
11
|
declare const XopcUseToolSchema: import("@sinclair/typebox").TObject<{
|
|
12
|
-
mode: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"context">, import("@sinclair/typebox").TLiteral<"project">, import("@sinclair/typebox").TLiteral<"automation">, import("@sinclair/typebox").TLiteral<"note">, import("@sinclair/typebox").TLiteral<"task">, import("@sinclair/typebox").TLiteral<"task_run">, import("@sinclair/typebox").TLiteral<"local_app">, import("@sinclair/typebox").TLiteral<"chat_preview">, import("@sinclair/typebox").TLiteral<"agent">, import("@sinclair/typebox").TLiteral<"settings">, import("@sinclair/typebox").TLiteral<"browser_setup">, import("@sinclair/typebox").TLiteral<"phone_setup">]>;
|
|
12
|
+
mode: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"context">, import("@sinclair/typebox").TLiteral<"project">, import("@sinclair/typebox").TLiteral<"automation">, import("@sinclair/typebox").TLiteral<"note">, import("@sinclair/typebox").TLiteral<"task">, import("@sinclair/typebox").TLiteral<"task_run">, import("@sinclair/typebox").TLiteral<"local_app">, import("@sinclair/typebox").TLiteral<"chat_preview">, import("@sinclair/typebox").TLiteral<"agent">, import("@sinclair/typebox").TLiteral<"settings">, import("@sinclair/typebox").TLiteral<"browser_setup">, import("@sinclair/typebox").TLiteral<"phone_setup">, import("@sinclair/typebox").TLiteral<"mcp_setup">]>;
|
|
13
13
|
command: import("@sinclair/typebox").TString;
|
|
14
14
|
args: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny>>;
|
|
15
15
|
dryRun: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
16
16
|
}>;
|
|
17
|
-
export type XopcUseMode = 'context' | 'project' | 'automation' | 'note' | 'task' | 'task_run' | 'chat_preview' | 'local_app' | 'agent' | 'settings' | 'browser_setup' | 'phone_setup';
|
|
17
|
+
export type XopcUseMode = 'context' | 'project' | 'automation' | 'note' | 'task' | 'task_run' | 'chat_preview' | 'local_app' | 'agent' | 'settings' | 'browser_setup' | 'phone_setup' | 'mcp_setup';
|
|
18
18
|
export interface XopcUseToolInput {
|
|
19
19
|
mode: XopcUseMode;
|
|
20
20
|
command: string;
|
|
@@ -23,8 +23,10 @@ export interface XopcUseToolInput {
|
|
|
23
23
|
}
|
|
24
24
|
export interface XopcUseToolDeps {
|
|
25
25
|
canConfigureFromConversation?: () => boolean;
|
|
26
|
+
canRequestWeixinMcpSetup?: () => boolean;
|
|
26
27
|
getPhoneSetupService?: () => import('../../phone/setup/service.js').PhoneSetupService | undefined;
|
|
27
28
|
getBrowserSetupService?: () => import('../../browser/setup/service.js').BrowserSetupService | undefined;
|
|
29
|
+
getMcpSetupService?: () => import('../mcp/conversation-setup.js').McpConversationSetup | undefined;
|
|
28
30
|
authorizeCapability?: CapabilityContext['authorize'];
|
|
29
31
|
getWorkspace?: () => string;
|
|
30
32
|
getConfig?: () => Config | undefined;
|