@openhands/agent-canvas 1.7.2 → 1.9.0
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/README.md +1 -1
- package/README.windows.md +2 -2
- package/build/assets/{Trans-DP5rcauH.js → Trans-Bwpzk1wT.js} +1 -1
- package/build/assets/{acp-providers-BHKZvEm5.js → acp-providers-C921BlYB.js} +1 -1
- package/build/assets/active-backend-context-BiwzkzDy.js +2 -0
- package/build/assets/agent-context-settings-DXNT_dcw.js +1 -0
- package/build/assets/agent-profiles-settings-BymJf3EP.js +1 -0
- package/build/assets/agent-server-conversation-service.api-CYSWw-2g.js +41 -0
- package/build/assets/agent-settings-BjgQQe-_.js +1 -0
- package/build/assets/{agent-settings-BIOsUglV.js → agent-settings-WzqXk6B4.js} +2 -2
- package/build/assets/{alert-banner-C1nzoXBC.js → alert-banner-DR8EVyZM.js} +1 -1
- package/build/assets/api-error-message-e16L1kwH.js +1 -0
- package/build/assets/api-key-entry-screen-DI0I04O3.js +1 -0
- package/build/assets/app-settings-DGistSFV.js +1 -0
- package/build/assets/automation-C_eCrGyP.js +1 -0
- package/build/assets/automation-detail-DY6x2FW1.js +2 -0
- package/build/assets/automation-export-C09f-Lua.js +2 -0
- package/build/assets/automation-setup-route-CqKp0717.js +1 -0
- package/build/assets/automations-list-CqWJ7qXW.js +1 -0
- package/build/assets/{back-nav-button-Be_L157B.js → back-nav-button-D4ngzpSh.js} +1 -1
- package/build/assets/backend-form-modal-B8D5hBzK.js +1 -0
- package/build/assets/{backend-synced-settings-badge-BNpEylNP.js → backend-synced-settings-badge-BnzI8Ysj.js} +1 -1
- package/build/assets/{badge-DwgrwohM.js → badge-1Mf1iPcX.js} +1 -1
- package/build/assets/{base-modal-CSHhJTSr.js → base-modal-BBuy0WQQ.js} +1 -1
- package/build/assets/{brand-button-CQO8oqVo.js → brand-button-DGN6Y9o6.js} +1 -1
- package/build/assets/browser-D_ekTlTS.js +6 -0
- package/build/assets/{browser-tab-CEApjoEV.js → browser-tab-D4a4Ou_w.js} +1 -1
- package/build/assets/{chat-send-button-D4614wUz.js → chat-send-button-CgbcjD97.js} +1 -1
- package/build/assets/check-CPLXgluF.js +1 -0
- package/build/assets/chevron-down-CP4QHvyc.js +1 -0
- package/build/assets/circle-check-Dpy2_xSI.js +1 -0
- package/build/assets/{circle-plus-check-toggle-E3Ecb_gg.js → circle-plus-check-toggle-yTAS-nX3.js} +1 -1
- package/build/assets/cloud-funnel-analytics-CEOl5Gxr.js +1 -0
- package/build/assets/{combobox-caret-C8_eGdp2.js → combobox-caret-Bd2yySnF.js} +1 -1
- package/build/assets/command-menu-Bj6X4ckE.js +1 -0
- package/build/assets/condenser-settings-EAXQNR2E.js +1 -0
- package/build/assets/{confirmation-modal-gZtbojCm.js → confirmation-modal-NCUPr2-O.js} +1 -1
- package/build/assets/{context-menu-list-item-BTHGFhIx.js → context-menu-list-item-CrCrYuPF.js} +1 -1
- package/build/assets/conversation-BzyIcSwr.js +1 -0
- package/build/assets/conversation-CUJ0Vo8g.js +90 -0
- package/build/assets/conversation-panel-BzyIcSwr.js +1 -0
- package/build/assets/conversation-state-store-F62HvuI1.js +1 -0
- package/build/assets/{conversation-tab-empty-state-BCMHkGQk.js → conversation-tab-empty-state-BCZ7rUMH.js} +1 -1
- package/build/assets/{copy-B8Y5ufoR.js → copy-DCmZtz6n.js} +1 -1
- package/build/assets/{copy-to-clipboard-button-C4l3CMSd.js → copy-to-clipboard-button-D_Lp6-Fl.js} +1 -1
- package/build/assets/{device-verify-C_M7Z8xs.js → device-verify-DLmolX8Q.js} +1 -1
- package/build/assets/{dropdown-classes-DQlj-MpS.js → dropdown-classes-BB8rzqXL.js} +1 -1
- package/build/assets/{entry.client-DETaouwO.js → entry.client-BbIYOsIg.js} +2 -2
- package/build/assets/{enum-filter-dropdown-paB-lFSP.js → enum-filter-dropdown-C08-srev.js} +1 -1
- package/build/assets/{environment-switch-overlay-D0FgCMqs.js → environment-switch-overlay-BepBBX66.js} +1 -1
- package/build/assets/extensions-hub-R3KNv-5V.js +1 -0
- package/build/assets/extensions-navigation-CfWFmI1I.js +1 -0
- package/build/assets/{external-link-Cnnd6ikC.js → external-link-BdBSg8rk.js} +1 -1
- package/build/assets/files-tab-DEq8MbHu.js +1 -0
- package/build/assets/{form-control-classes-CSPevi7c.js → form-control-classes-DAfsCJTe.js} +1 -1
- package/build/assets/{format-time-delta-DuhE50B-.js → format-time-delta-CxfPJpzC.js} +1 -1
- package/build/assets/git-provider-icon-BZqqUPlm.js +1 -0
- package/build/assets/git-repo-dropdown-9WKINV6J.js +1 -0
- package/build/assets/git-repo-dropdown-DEpOwUez.js +1 -0
- package/build/assets/{highlighted-source-view-suUKd5if.js → highlighted-source-view-CX9oIoVT.js} +1 -1
- package/build/assets/home-CY0JaxiY.js +1 -0
- package/build/assets/home-CaNWlVvB.js +1 -0
- package/build/assets/home-store-Ch1ErdBc.js +1 -0
- package/build/assets/index-home-CaNWlVvB.js +1 -0
- package/build/assets/info-CmWQXtRQ.js +1 -0
- package/build/assets/install-server-modal-BWrudmZU.js +1 -0
- package/build/assets/{launch-Ccnhte5b.js → launch-B1POpHuP.js} +1 -1
- package/build/assets/{list-todo-_BXQzOiB.js → list-todo-DtiL3lTp.js} +1 -1
- package/build/assets/llm-not-configured-banner-3tMsM4K6.js +27 -0
- package/build/assets/llm-settings-CXo8iPNW.js +1 -0
- package/build/assets/llm-settings-D0W8mJDk.js +1 -0
- package/build/assets/{llm-subscription-service-W5BprsNA.js → llm-subscription-service-DBJbfd8Z.js} +1 -1
- package/build/assets/loader-circle-B4QDBARx.js +1 -0
- package/build/assets/{loading-spinner-CcpnCr_d.js → loading-spinner-DfZ_bhV7.js} +1 -1
- package/build/assets/manage-backends-modal-CwyWsiag.js +1 -0
- package/build/assets/manifest-39f4789d.js +1 -0
- package/build/assets/{markdown-renderer-CvOO0YIr.js → markdown-renderer-DgiLLhW6.js} +6 -6
- package/build/assets/mcp-DXG9LWrI.js +9 -0
- package/build/assets/mcp-marketplace-utils-DFmhKc5s.js +1 -0
- package/build/assets/messages-kBjKaAeA.js +40 -0
- package/build/assets/{modal-body-DQhiw-AR.js → modal-body-CMsDpalT.js} +1 -1
- package/build/assets/{modal-classes-YaEEa5eZ.js → modal-classes-B6PDrxXo.js} +1 -1
- package/build/assets/{modal-close-button-turIYn0t.js → modal-close-button-DyxBZaAb.js} +1 -1
- package/build/assets/{onboarding-BegDrOKn.js → onboarding-47hh2IHA.js} +1 -1
- package/build/assets/onboarding-modal-9BuvvROo.js +1 -0
- package/build/assets/organization-service.api-UDy63-oC.js +1 -0
- package/build/assets/{pencil-8_lvWDoZ.js → pencil-BjgtZmWp.js} +1 -1
- package/build/assets/{planner-tab-w6HT0N_A.js → planner-tab-BWk8885v.js} +1 -1
- package/build/assets/plugins-management-service-CjkgF2dd.js +1 -0
- package/build/assets/plus-DrKuuvMe.js +1 -0
- package/build/assets/profiles-service.api-CukSFLzz.js +1 -0
- package/build/assets/providers-CqUWC85T.js +1 -0
- package/build/assets/proxy-BBUG3sd2.js +1 -0
- package/build/assets/{puzzle-DXWdfaa7.js → puzzle-BoNc6zZ8.js} +1 -1
- package/build/assets/recommended-automations-launcher-ejxy1P27.js +1 -0
- package/build/assets/{refresh-cw-D7CYLy-d.js → refresh-cw-BrM5ZAZD.js} +1 -1
- package/build/assets/root-5S-M8SYa.js +2 -0
- package/build/assets/root-DZ39lS5f.css +1 -0
- package/build/assets/root-layout-BPqoa0gv.js +3 -0
- package/build/assets/schema-field-nImDoY6-.js +1 -0
- package/build/assets/{sdk-section-page-BW-i45yr.js → sdk-section-page-BxMrtUNV.js} +1 -1
- package/build/assets/search-Dc2qR4O2.js +1 -0
- package/build/assets/secrets-service-Dhjh3HhH.js +1 -0
- package/build/assets/{secrets-settings-D7U1ErCH.js → secrets-settings-CPdxceT_.js} +1 -1
- package/build/assets/segmented-toggle-Do6oyepX.js +1 -0
- package/build/assets/settings-BRbnfKEm.js +1 -0
- package/build/assets/{settings-dropdown-input-Dx6vlkgf.js → settings-dropdown-input-DYCULKpp.js} +1 -1
- package/build/assets/{settings-index-COAdxm2Q.js → settings-index-C9o2NBO0.js} +1 -1
- package/build/assets/settings-input-B-q2gkVy.js +1 -0
- package/build/assets/{settings-list-classes-gQdBahdt.js → settings-list-classes-WpQi0q1L.js} +1 -1
- package/build/assets/{settings-modal-CFnbQ8_4.js → settings-modal-CEK0AIx6.js} +1 -1
- package/build/assets/settings-service.api-CZiPD8__.js +1 -0
- package/build/assets/{settings-switch-UNSf8K8I.js → settings-switch-LqKdGxHL.js} +1 -1
- package/build/assets/shared-conversation-Bu-dQlgp.js +1 -0
- package/build/assets/{sidebar-layout-DXHtbEj1.js → sidebar-layout-oHBGQmLh.js} +1 -1
- package/build/assets/{sidebar-mobile-menu-toggle-U78hQRJ1.js → sidebar-mobile-menu-toggle-ND-hgygu.js} +1 -1
- package/build/assets/{sidebar-nav-link-pvUivfK2.js → sidebar-nav-link-CrujNA09.js} +1 -1
- package/build/assets/{sidebar-store-DwrYKwYr.js → sidebar-store-Bui-WNEr.js} +1 -1
- package/build/assets/{skill-card-pill-row-D7XCz5uk.js → skill-card-pill-row-CZBI7OqH.js} +1 -1
- package/build/assets/{skill-icon-badge-HqBWZ2Eq.js → skill-icon-badge-BOov_phZ.js} +1 -1
- package/build/assets/{skills-plugins-BPhaNpfx.js → skills-plugins-D0PiHWAD.js} +1 -1
- package/build/assets/{skills-settings-CcwMtnnJ.js → skills-settings-B43KArIz.js} +2 -2
- package/build/assets/{styled-tooltip-DsjDnR_W.js → styled-tooltip-C7grwnOX.js} +1 -1
- package/build/assets/{task-list-tab-BmaTwjaS.js → task-list-tab-R3ac6m7O.js} +1 -1
- package/build/assets/{terminal-BRcoba5B.js → terminal-yqkNdEAx.js} +1 -1
- package/build/assets/{toggle-switch-BptY3XRG.js → toggle-switch-BeSrbgCg.js} +1 -1
- package/build/assets/{trash-2-Bq4lHbTB.js → trash-2-wW5TWcdN.js} +1 -1
- package/build/assets/{typography-C6fuRTTT.js → typography-iYhzLlHO.js} +1 -1
- package/build/assets/{use-acp-credential-form-B0_pZ_uS.js → use-acp-credential-form-DUxbxmbq.js} +1 -1
- package/build/assets/use-activate-agent-profile-CDHA52tC.js +1 -0
- package/build/assets/use-agent-profiles-TsOdIyw5.js +1 -0
- package/build/assets/{use-can-manage-org-profiles-CrG1km7R.js → use-can-manage-org-profiles-Bt1M71u5.js} +1 -1
- package/build/assets/use-cloud-current-user-id-DWt7HCgf.js +1 -0
- package/build/assets/{use-config-Csy8EAP9.js → use-config-CxlEdf_v.js} +1 -1
- package/build/assets/{use-create-conversation-Dsa4nzU9.js → use-create-conversation-nOJ6Um5h.js} +1 -1
- package/build/assets/{use-create-secret-BnxuAjDt.js → use-create-secret-Dj5ang9x.js} +1 -1
- package/build/assets/use-is-authed-BT7Iud4U.js +1 -0
- package/build/assets/{use-is-creating-conversation-CIAcnd8M.js → use-is-creating-conversation-CAggrM75.js} +1 -1
- package/build/assets/use-llm-profiles-2Wc2db8u.js +1 -0
- package/build/assets/use-onboarding-completion-gxQlcEy2.js +1 -0
- package/build/assets/use-plugins-marketplace-CVO7sXYR.js +1 -0
- package/build/assets/use-save-agent-profile-D0wC5ExW.js +1 -0
- package/build/assets/{use-save-settings-BRh9p_fv.js → use-save-settings-L3aMaDeS.js} +1 -1
- package/build/assets/use-settings-8nt3DGxW.js +1 -0
- package/build/assets/use-settings-nav-items-DHAAD-zk.js +16 -0
- package/build/assets/use-skills-CE6miQ3r.js +1 -0
- package/build/assets/use-tracking-BGboadaZ.js +68 -0
- package/build/assets/{use-user-conversation-GnGhs_Ob.js → use-user-conversation-BIIpGUgM.js} +1 -1
- package/build/assets/useInfiniteQuery-BLRVmVPU.js +1 -0
- package/build/assets/{useMutation-DyQXZFEF.js → useMutation-CaSHLnX0.js} +1 -1
- package/build/assets/{useQueries-B3T1a7qt.js → useQueries--d_WWAzc.js} +1 -1
- package/build/assets/{useQuery-B38jBavx.js → useQuery-DiPh8LRJ.js} +1 -1
- package/build/assets/utils-BgGG1znF.js +1 -0
- package/build/assets/{vendor~browser-CIoZCqGs.js → vendor~browser-IVYgIgG1.js} +1 -1
- package/build/assets/{vendor~entry.client-Di4qO77Y.js → vendor~entry.client-BcYIVQvB.js} +1 -1
- package/build/assets/{vendor~entry.client-BfviqoVc.js → vendor~entry.client-CXM9oiAk.js} +1 -1
- package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~g4xrpilz-CJ7amdtQ.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~b0bpqexo-CbTboogo.js} +2 -2
- package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~f9xdmd0z-DLMP7bZx.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~d4by102p-C2f0ZhS-.js} +1 -1
- package/build/assets/{vendor~files-tab-vm3f67Pz.js → vendor~files-tab-C7RmQJwN.js} +1 -1
- package/build/assets/{vendor~index-home~home~conversation-panel~conversation-kX4LrGQC.js → vendor~index-home~home~conversation-panel~conversation-Bqp1ZqJM.js} +1 -1
- package/build/assets/{vendor~root-layout~conversation-panel~conversation-DpA6fir3.js → vendor~root-layout~conversation-panel~conversation-BCn8lzeG.js} +1 -1
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~automation-setup-route-B_L-gcOG.js +1 -0
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-sjx0x5ac.js +1 -0
- package/build/assets/vendor~root-layout~index-home~home~mcp~automations-list~automation-setup-route~onboarding-modal-D7IDevqN.js +1 -0
- package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~bi2r7bko-Bw4AuHN1.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~dfc8ddxy-tTyxnjXT.js} +1 -1
- package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hakxo2tj-ClV0p9g3.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gy8zbn65-CGt6bWRT.js} +1 -1
- package/build/assets/{vendor~root-layout~index-home~home~conversation-panel~conversation~launch~skills-settings~a~eywn6ulz-BKxxr74w.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~dufan6ng-Dtdw8H0q.js} +17 -4
- package/build/assets/{verification-settings-CaCzojbc.js → verification-settings-DBsnSXC3.js} +1 -1
- package/build/assets/x-omAzpXkl.js +1 -0
- package/build/favicon-16x16.png +0 -0
- package/build/favicon-32x32.png +0 -0
- package/build/favicon.ico +0 -0
- package/build/index.html +4 -4
- package/build/locales/ar/openhands.json +39 -2
- package/build/locales/ca/openhands.json +39 -2
- package/build/locales/de/openhands.json +39 -2
- package/build/locales/en/openhands.json +40 -3
- package/build/locales/es/openhands.json +39 -2
- package/build/locales/fr/openhands.json +39 -2
- package/build/locales/it/openhands.json +39 -2
- package/build/locales/ja/openhands.json +39 -2
- package/build/locales/ko-KR/openhands.json +39 -2
- package/build/locales/no/openhands.json +39 -2
- package/build/locales/pt/openhands.json +39 -2
- package/build/locales/tr/openhands.json +39 -2
- package/build/locales/uk/openhands.json +39 -2
- package/build/locales/zh-CN/openhands.json +39 -2
- package/build/locales/zh-TW/openhands.json +39 -2
- package/config/defaults.json +4 -4
- package/dist/api/agent-server-adapter.cjs +3 -3
- package/dist/api/agent-server-adapter.cjs.map +1 -1
- package/dist/api/agent-server-adapter.d.ts +46 -6
- package/dist/api/agent-server-adapter.js +187 -168
- package/dist/api/agent-server-adapter.js.map +1 -1
- package/dist/api/agent-server-compatibility.cjs +1 -1
- package/dist/api/agent-server-compatibility.cjs.map +1 -1
- package/dist/api/agent-server-compatibility.d.ts +4 -0
- package/dist/api/agent-server-compatibility.js +41 -38
- package/dist/api/agent-server-compatibility.js.map +1 -1
- package/dist/api/automation-service/automation-service.api.cjs +1 -1
- package/dist/api/automation-service/automation-service.api.cjs.map +1 -1
- package/dist/api/automation-service/automation-service.api.d.ts +20 -0
- package/dist/api/automation-service/automation-service.api.js +136 -99
- package/dist/api/automation-service/automation-service.api.js.map +1 -1
- package/dist/api/backend-registry/storage.cjs +1 -1
- package/dist/api/backend-registry/storage.cjs.map +1 -1
- package/dist/api/backend-registry/storage.js +1 -1
- package/dist/api/backend-registry/storage.js.map +1 -1
- package/dist/api/backend-registry/types.d.ts +2 -0
- package/dist/api/cloud/conversation-service.api.cjs +1 -1
- package/dist/api/cloud/conversation-service.api.js +22 -22
- package/dist/api/mcp-service/mcp-service.api.cjs +1 -1
- package/dist/api/mcp-service/mcp-service.api.cjs.map +1 -1
- package/dist/api/mcp-service/mcp-service.api.js +19 -19
- package/dist/api/mcp-service/mcp-service.api.js.map +1 -1
- package/dist/api/settings-service/settings-service.api.cjs +1 -1
- package/dist/api/settings-service/settings-service.api.cjs.map +1 -1
- package/dist/api/settings-service/settings-service.api.js +26 -12
- package/dist/api/settings-service/settings-service.api.js.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-action-event-title.cjs +2 -0
- package/dist/components/conversation-events/chat/event-content-helpers/get-action-event-title.cjs.map +1 -0
- package/dist/components/conversation-events/chat/event-content-helpers/get-action-event-title.d.ts +12 -0
- package/dist/components/conversation-events/chat/event-content-helpers/get-action-event-title.js +94 -0
- package/dist/components/conversation-events/chat/event-content-helpers/get-action-event-title.js.map +1 -0
- package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.cjs +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.js +31 -90
- package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.js.map +1 -1
- package/dist/components/features/automations/recommended-automations-launcher.d.ts +0 -7
- package/dist/components/features/automations/recommended-automations-section.d.ts +0 -6
- package/dist/components/features/backends/backend-form-modal.cjs +1 -1
- package/dist/components/features/backends/backend-form-modal.cjs.map +1 -1
- package/dist/components/features/backends/backend-form-modal.js +568 -358
- package/dist/components/features/backends/backend-form-modal.js.map +1 -1
- package/dist/components/features/backends/device-flow-auth.cjs +1 -1
- package/dist/components/features/backends/device-flow-auth.cjs.map +1 -1
- package/dist/components/features/backends/device-flow-auth.d.ts +9 -1
- package/dist/components/features/backends/device-flow-auth.js +56 -55
- package/dist/components/features/backends/device-flow-auth.js.map +1 -1
- package/dist/components/features/backends/manage-backends-modal.cjs +1 -1
- package/dist/components/features/backends/manage-backends-modal.cjs.map +1 -1
- package/dist/components/features/backends/manage-backends-modal.js +1 -1
- package/dist/components/features/backends/manage-backends-modal.js.map +1 -1
- package/dist/components/features/chat/chat-interface.cjs +1 -1
- package/dist/components/features/chat/chat-interface.cjs.map +1 -1
- package/dist/components/features/chat/chat-interface.js +105 -105
- package/dist/components/features/chat/chat-interface.js.map +1 -1
- package/dist/components/features/chat/chat-message.cjs +1 -1
- package/dist/components/features/chat/chat-message.cjs.map +1 -1
- package/dist/components/features/chat/chat-message.d.ts +2 -1
- package/dist/components/features/chat/chat-message.js +59 -49
- package/dist/components/features/chat/chat-message.js.map +1 -1
- package/dist/components/features/chat/pending-user-messages.cjs +1 -1
- package/dist/components/features/chat/pending-user-messages.cjs.map +1 -1
- package/dist/components/features/chat/pending-user-messages.js +4 -1
- package/dist/components/features/chat/pending-user-messages.js.map +1 -1
- package/dist/components/features/chat/typing-indicator.cjs +1 -1
- package/dist/components/features/chat/typing-indicator.cjs.map +1 -1
- package/dist/components/features/chat/typing-indicator.d.ts +8 -1
- package/dist/components/features/chat/typing-indicator.js +94 -10
- package/dist/components/features/chat/typing-indicator.js.map +1 -1
- package/dist/components/features/command-menu/command-menu-items.d.ts +5 -1
- package/dist/components/features/files-tab/segmented-toggle.cjs +1 -1
- package/dist/components/features/files-tab/segmented-toggle.cjs.map +1 -1
- package/dist/components/features/files-tab/segmented-toggle.d.ts +2 -0
- package/dist/components/features/files-tab/segmented-toggle.js +17 -14
- package/dist/components/features/files-tab/segmented-toggle.js.map +1 -1
- package/dist/components/features/manifest/manifest-form-field.d.ts +27 -0
- package/dist/components/features/manifest/manifest-prerequisites-step.d.ts +11 -0
- package/dist/components/features/manifest/manifest-review-step.d.ts +14 -0
- package/dist/components/features/manifest/manifest-setup-dialog.d.ts +14 -0
- package/dist/components/features/mcp-page/custom-server-editor.cjs +1 -1
- package/dist/components/features/mcp-page/custom-server-editor.js +16 -16
- package/dist/components/features/mcp-page/installed-server-card.cjs +1 -1
- package/dist/components/features/mcp-page/installed-server-card.cjs.map +1 -1
- package/dist/components/features/mcp-page/installed-server-card.d.ts +2 -2
- package/dist/components/features/mcp-page/installed-server-card.js +6 -7
- package/dist/components/features/mcp-page/installed-server-card.js.map +1 -1
- package/dist/components/features/mcp-page/installed-servers-section.cjs +1 -1
- package/dist/components/features/mcp-page/installed-servers-section.cjs.map +1 -1
- package/dist/components/features/mcp-page/installed-servers-section.d.ts +2 -2
- package/dist/components/features/mcp-page/installed-servers-section.js +2 -2
- package/dist/components/features/mcp-page/installed-servers-section.js.map +1 -1
- package/dist/components/features/mcp-page/mcp-server-health.cjs +1 -1
- package/dist/components/features/mcp-page/mcp-server-health.js +4 -4
- package/dist/components/features/settings/mcp-settings/mcp-server-form.cjs +1 -1
- package/dist/components/features/settings/mcp-settings/mcp-server-form.cjs.map +1 -1
- package/dist/components/features/settings/mcp-settings/mcp-server-form.js +2 -1
- package/dist/components/features/settings/mcp-settings/mcp-server-form.js.map +1 -1
- package/dist/components/features/settings/settings-input.cjs +1 -1
- package/dist/components/features/settings/settings-input.cjs.map +1 -1
- package/dist/components/features/settings/settings-input.d.ts +6 -0
- package/dist/components/features/settings/settings-input.js +13 -8
- package/dist/components/features/settings/settings-input.js.map +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.cjs +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.cjs.map +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.js +124 -123
- package/dist/components/features/sidebar/sidebar-rail-body.js.map +1 -1
- package/dist/config/defaults.cjs +1 -1
- package/dist/config/defaults.cjs.map +1 -1
- package/dist/config/defaults.js +3 -3
- package/dist/config/defaults.js.map +1 -1
- package/dist/contexts/active-backend-context.cjs +1 -1
- package/dist/contexts/active-backend-context.cjs.map +1 -1
- package/dist/contexts/active-backend-context.d.ts +3 -2
- package/dist/contexts/active-backend-context.js +55 -42
- package/dist/contexts/active-backend-context.js.map +1 -1
- package/dist/favicon-16x16.png +0 -0
- package/dist/favicon-32x32.png +0 -0
- package/dist/favicon.ico +0 -0
- package/dist/hooks/mutation/use-update-mcp-server.cjs +1 -1
- package/dist/hooks/mutation/use-update-mcp-server.js +5 -5
- package/dist/hooks/query/query-keys.cjs.map +1 -1
- package/dist/hooks/query/query-keys.d.ts +4 -0
- package/dist/hooks/query/query-keys.js.map +1 -1
- package/dist/hooks/query/use-cloud-current-user-id.cjs +1 -1
- package/dist/hooks/query/use-cloud-current-user-id.cjs.map +1 -1
- package/dist/hooks/query/use-cloud-current-user-id.js +7 -5
- package/dist/hooks/query/use-cloud-current-user-id.js.map +1 -1
- package/dist/hooks/query/use-cloud-organizations.cjs +1 -1
- package/dist/hooks/query/use-cloud-organizations.cjs.map +1 -1
- package/dist/hooks/query/use-cloud-organizations.js +5 -1
- package/dist/hooks/query/use-cloud-organizations.js.map +1 -1
- package/dist/hooks/query/use-manifest-capabilities.d.ts +21 -0
- package/dist/hooks/query/use-manifest-prerequisites.d.ts +24 -0
- package/dist/hooks/use-can-manage-org-profiles.cjs +1 -1
- package/dist/hooks/use-can-manage-org-profiles.cjs.map +1 -1
- package/dist/hooks/use-can-manage-org-profiles.js +2 -1
- package/dist/hooks/use-can-manage-org-profiles.js.map +1 -1
- package/dist/hooks/use-llm-configured.cjs +1 -1
- package/dist/hooks/use-llm-configured.cjs.map +1 -1
- package/dist/hooks/use-llm-configured.js +2 -1
- package/dist/hooks/use-llm-configured.js.map +1 -1
- package/dist/hooks/use-manifest-preflight.d.ts +18 -0
- package/dist/hooks/use-tracking.cjs +1 -1
- package/dist/hooks/use-tracking.cjs.map +1 -1
- package/dist/hooks/use-tracking.d.ts +14 -0
- package/dist/hooks/use-tracking.js +28 -10
- package/dist/hooks/use-tracking.js.map +1 -1
- package/dist/i18n/declaration.cjs +1 -1
- package/dist/i18n/declaration.cjs.map +1 -1
- package/dist/i18n/declaration.d.ts +38 -1
- package/dist/i18n/declaration.js +1 -1
- package/dist/i18n/declaration.js.map +1 -1
- package/dist/i18n/translation.cjs +2 -2
- package/dist/i18n/translation.cjs.map +1 -1
- package/dist/i18n/translation.js +645 -16
- package/dist/i18n/translation.js.map +1 -1
- package/dist/icons/external-link.cjs +2 -0
- package/dist/icons/external-link.cjs.map +1 -0
- package/dist/icons/external-link.js +22 -0
- package/dist/icons/external-link.js.map +1 -0
- package/dist/icons/server.cjs +2 -0
- package/dist/icons/server.cjs.map +1 -0
- package/dist/icons/server.js +17 -0
- package/dist/icons/server.js.map +1 -0
- package/dist/locales/ar/openhands.json +39 -2
- package/dist/locales/ca/openhands.json +39 -2
- package/dist/locales/de/openhands.json +39 -2
- package/dist/locales/en/openhands.json +40 -3
- package/dist/locales/es/openhands.json +39 -2
- package/dist/locales/fr/openhands.json +39 -2
- package/dist/locales/it/openhands.json +39 -2
- package/dist/locales/ja/openhands.json +39 -2
- package/dist/locales/ko-KR/openhands.json +39 -2
- package/dist/locales/no/openhands.json +39 -2
- package/dist/locales/pt/openhands.json +39 -2
- package/dist/locales/tr/openhands.json +39 -2
- package/dist/locales/uk/openhands.json +39 -2
- package/dist/locales/zh-CN/openhands.json +39 -2
- package/dist/locales/zh-TW/openhands.json +39 -2
- package/dist/manifests/automation-interface.cjs +2 -0
- package/dist/manifests/automation-interface.cjs.map +1 -0
- package/dist/manifests/automation-interface.d.ts +44 -0
- package/dist/manifests/automation-interface.js +81 -0
- package/dist/manifests/automation-interface.js.map +1 -0
- package/dist/manifests/automation-setup.cjs +2 -0
- package/dist/manifests/automation-setup.cjs.map +1 -0
- package/dist/manifests/automation-setup.d.ts +52 -0
- package/dist/manifests/automation-setup.js +8 -0
- package/dist/manifests/automation-setup.js.map +1 -0
- package/dist/manifests/interface-validation.cjs +2 -0
- package/dist/manifests/interface-validation.cjs.map +1 -0
- package/dist/manifests/interface-validation.d.ts +27 -0
- package/dist/manifests/interface-validation.js +182 -0
- package/dist/manifests/interface-validation.js.map +1 -0
- package/dist/manifests/manifest-actions.d.ts +15 -0
- package/dist/manifests/manifest-capabilities.d.ts +25 -0
- package/dist/manifests/manifest-error-map.d.ts +40 -0
- package/dist/manifests/manifest-local-validation.d.ts +56 -0
- package/dist/manifests/manifest-registry.cjs +2 -0
- package/dist/manifests/manifest-registry.cjs.map +1 -0
- package/dist/manifests/manifest-registry.d.ts +15 -0
- package/dist/manifests/manifest-registry.js +26 -0
- package/dist/manifests/manifest-registry.js.map +1 -0
- package/dist/manifests/manifest-sources.cjs +2 -0
- package/dist/manifests/manifest-sources.cjs.map +1 -0
- package/dist/manifests/manifest-sources.d.ts +15 -0
- package/dist/manifests/manifest-sources.js +8 -0
- package/dist/manifests/manifest-sources.js.map +1 -0
- package/dist/manifests/manifest-template.d.ts +18 -0
- package/dist/manifests/manifest-validation.cjs +2 -0
- package/dist/manifests/manifest-validation.cjs.map +1 -0
- package/dist/manifests/manifest-validation.d.ts +30 -0
- package/dist/manifests/manifest-validation.js +145 -0
- package/dist/manifests/manifest-validation.js.map +1 -0
- package/dist/manifests/types.cjs +2 -0
- package/dist/manifests/types.cjs.map +1 -0
- package/dist/manifests/types.d.ts +227 -0
- package/dist/manifests/types.js +6 -0
- package/dist/manifests/types.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js +75 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-pr-reviewer/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js +78 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/incident-retrospective-drafter/manifest.cjs +17 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/incident-retrospective-drafter/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/incident-retrospective-drafter/manifest.js +89 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/incident-retrospective-drafter/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.cjs +10 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.js +17 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-triage-assistant/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-triage-assistant/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-triage-assistant/manifest.js +15 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/linear-triage-assistant/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/research-brief-writer/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/research-brief-writer/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/research-brief-writer/manifest.js +18 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/research-brief-writer/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/slack-channel-monitor/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/slack-channel-monitor/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/slack-channel-monitor/manifest.js +14 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/slack-channel-monitor/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/slack-standup-digest/manifest.cjs +9 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/slack-standup-digest/manifest.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/slack-standup-digest/manifest.js +14 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog/slack-standup-digest/manifest.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.js +23 -0
- package/dist/node_modules/@openhands/extensions/automations/catalog-index.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/index.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/automations/index.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/index.js +18 -0
- package/dist/node_modules/@openhands/extensions/automations/index.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/interface.cjs +2 -0
- package/dist/node_modules/@openhands/extensions/automations/interface.cjs.map +1 -0
- package/dist/node_modules/@openhands/extensions/automations/interface.js +89 -0
- package/dist/node_modules/@openhands/extensions/automations/interface.js.map +1 -0
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.cjs +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.js +3 -3
- package/dist/node_modules/@openhands/extensions/integrations/catalog/datadog.js.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.cjs +17 -4
- package/dist/node_modules/@openhands/extensions/skills/index.cjs.map +1 -1
- package/dist/node_modules/@openhands/extensions/skills/index.js +5 -5
- package/dist/node_modules/@openhands/extensions/skills/index.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/settings-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/settings-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/settings-client.js +9 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/settings-client.js.map +1 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/monitor.cjs +2 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/monitor.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/monitor.js +29 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/monitor.js.map +1 -0
- package/dist/package.cjs +1 -1
- package/dist/package.cjs.map +1 -1
- package/dist/package.js +3 -3
- package/dist/package.js.map +1 -1
- package/dist/routes/app-settings.cjs +1 -1
- package/dist/routes/app-settings.js +5 -5
- package/dist/routes/mcp.cjs +1 -1
- package/dist/routes/mcp.cjs.map +1 -1
- package/dist/routes/mcp.js +73 -82
- package/dist/routes/mcp.js.map +1 -1
- package/dist/services/telemetry.cjs +1 -1
- package/dist/services/telemetry.cjs.map +1 -1
- package/dist/services/telemetry.d.ts +8 -0
- package/dist/services/telemetry.js +163 -116
- package/dist/services/telemetry.js.map +1 -1
- package/dist/types/agent-server/core/events/conversation-state-event.d.ts +2 -19
- package/dist/types/agent-server/core/events/observation-event.d.ts +2 -18
- package/dist/types/automation.d.ts +7 -3
- package/dist/types/mcp-server.d.ts +5 -0
- package/dist/types/settings.d.ts +3 -0
- package/dist/utils/api-error-message.d.ts +6 -2
- package/dist/utils/automation-catalog.cjs +2 -0
- package/dist/utils/automation-catalog.cjs.map +1 -0
- package/dist/utils/automation-catalog.d.ts +28 -0
- package/dist/utils/automation-catalog.js +5 -0
- package/dist/utils/automation-catalog.js.map +1 -0
- package/dist/utils/automation-timeout.d.ts +3 -2
- package/dist/utils/mcp-config.cjs +1 -1
- package/dist/utils/mcp-config.cjs.map +1 -1
- package/dist/utils/mcp-config.d.ts +8 -0
- package/dist/utils/mcp-config.js +25 -20
- package/dist/utils/mcp-config.js.map +1 -1
- package/dist/utils/mcp-installed-servers.cjs +1 -1
- package/dist/utils/mcp-installed-servers.cjs.map +1 -1
- package/dist/utils/mcp-installed-servers.js +6 -3
- package/dist/utils/mcp-installed-servers.js.map +1 -1
- package/dist/utils/responder-deployment.d.ts +5 -1
- package/dist/utils/transcript-export/index.cjs +5 -5
- package/dist/utils/transcript-export/index.js +12 -12
- package/package.json +3 -3
- package/scripts/check-sdk-version-sync.mjs +6 -6
- package/scripts/check-translation-completeness.cjs +1 -0
- package/scripts/dev-safe.mjs +17 -12
- package/scripts/dev-static.mjs +17 -0
- package/scripts/dev-with-automation.mjs +12 -14
- package/scripts/ingress.mjs +22 -0
- package/scripts/proxy-utils.mjs +157 -2
- package/scripts/runtime-services-info.mjs +6 -6
- package/scripts/static-build.mjs +0 -7
- package/scripts/static-server.mjs +10 -0
- package/build/assets/active-backend-context-BlZPzZNU.js +0 -1
- package/build/assets/agent-context-settings-CTaN-Iw9.js +0 -1
- package/build/assets/agent-profiles-settings-CR4VTqv_.js +0 -1
- package/build/assets/agent-server-conversation-service.api-Btmi4q6d.js +0 -41
- package/build/assets/agent-settings-KQs-occT.js +0 -1
- package/build/assets/api-key-entry-screen-BhR24gkM.js +0 -1
- package/build/assets/app-settings-Bs4sY8WP.js +0 -1
- package/build/assets/automation-BGP_I1RR.js +0 -1
- package/build/assets/automation-detail-CwDnJbYR.js +0 -2
- package/build/assets/automation-export-Bu-r-EzL.js +0 -2
- package/build/assets/automations-list-CYw7_6FR.js +0 -1
- package/build/assets/backend-form-modal-Ce-KRHOJ.js +0 -1
- package/build/assets/browser-BUDJnBg4.js +0 -6
- package/build/assets/check-BMOG005H.js +0 -1
- package/build/assets/chevron-down-CV1zZP_K.js +0 -1
- package/build/assets/circle-check-lvN_jFN5.js +0 -1
- package/build/assets/client-source-1v-kWLNU.js +0 -1
- package/build/assets/cloud-funnel-analytics-CasMM7EO.js +0 -1
- package/build/assets/command-menu-N_BriUy8.js +0 -1
- package/build/assets/condenser-settings-Czi8cKxV.js +0 -1
- package/build/assets/conversation-C25pc2dT.js +0 -1
- package/build/assets/conversation-CObLYSJd.js +0 -90
- package/build/assets/conversation-panel-C25pc2dT.js +0 -1
- package/build/assets/conversation-state-store-DTq4hFoP.js +0 -1
- package/build/assets/extensions-hub-BKftOQ-X.js +0 -1
- package/build/assets/extensions-navigation-DF24q1H1.js +0 -1
- package/build/assets/files-tab-SAiFCnS5.js +0 -1
- package/build/assets/git-provider-icon-BREx-yUX.js +0 -1
- package/build/assets/home-EPNFgzUh.js +0 -1
- package/build/assets/home-sN90Xcxp.js +0 -1
- package/build/assets/index-home-EPNFgzUh.js +0 -1
- package/build/assets/install-server-modal-BI8yUfmr.js +0 -1
- package/build/assets/llm-not-configured-banner-DTWzISnk.js +0 -27
- package/build/assets/llm-settings-BXk5_Pac.js +0 -1
- package/build/assets/llm-settings-C1vpgWam.js +0 -1
- package/build/assets/loader-circle-6zlEYCJw.js +0 -1
- package/build/assets/manage-backends-modal-DhflyGTf.js +0 -1
- package/build/assets/manifest-8082e879.js +0 -1
- package/build/assets/mcp-CxLPda-W.js +0 -9
- package/build/assets/messages-DINDkPNK.js +0 -40
- package/build/assets/onboarding-modal-DdvE6rzw.js +0 -1
- package/build/assets/organization-service.api-CT2OQlLz.js +0 -1
- package/build/assets/plugins-management-service-DVkoM3eA.js +0 -1
- package/build/assets/plus-vIbGD459.js +0 -1
- package/build/assets/profiles-service.api-CBafmAPO.js +0 -1
- package/build/assets/providers-9UzRB9mT.js +0 -1
- package/build/assets/proxy-C79PCMjo.js +0 -1
- package/build/assets/recommended-automations-launcher-BF2mtAKw.js +0 -58
- package/build/assets/root-B5JXKp1P.css +0 -1
- package/build/assets/root-Sj7W28yE.js +0 -2
- package/build/assets/root-layout-DbhKVoc7.js +0 -3
- package/build/assets/schema-field-CV6bFnoL.js +0 -1
- package/build/assets/search-sKuYKllf.js +0 -1
- package/build/assets/secrets-service-BjK-bPN2.js +0 -1
- package/build/assets/segmented-toggle-DbbD3Tve.js +0 -1
- package/build/assets/settings-Bj5Oo45A.js +0 -1
- package/build/assets/settings-input-BjW_zyTN.js +0 -1
- package/build/assets/settings-service.api-DryhKdSr.js +0 -1
- package/build/assets/shared-conversation-CnMxy7p_.js +0 -1
- package/build/assets/telemetry-cmCL3o6Z.js +0 -2
- package/build/assets/use-activate-agent-profile-DH33MvVj.js +0 -1
- package/build/assets/use-agent-profiles-Dmd_4H8q.js +0 -1
- package/build/assets/use-cloud-current-user-id-B6DP3s47.js +0 -1
- package/build/assets/use-is-authed-BsS4XwSL.js +0 -1
- package/build/assets/use-llm-profiles-BMQoc612.js +0 -1
- package/build/assets/use-onboarding-completion-B-2BTS-y.js +0 -1
- package/build/assets/use-plugins-marketplace-PBc_XNz_.js +0 -1
- package/build/assets/use-save-agent-profile-2Mk9ZX37.js +0 -1
- package/build/assets/use-settings-DBI44RnH.js +0 -1
- package/build/assets/use-settings-nav-items-Cva28C-c.js +0 -16
- package/build/assets/use-skills-RQsCtdzN.js +0 -1
- package/build/assets/use-tracking-CN1nIMnY.js +0 -1
- package/build/assets/utils-qjs_KuS4.js +0 -1
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation-EShpjxey.js +0 -1
- package/build/assets/vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation-DD_UNO02.js +0 -1
- package/build/assets/vendor~root-layout~index-home~home~mcp~automations-list~onboarding-modal-Be63Q2Ln.js +0 -1
- package/build/assets/x-EjvKGawc.js +0 -1
- /package/build/assets/{vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~f1hl7voa-BrmgjeOw.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~emdr2jt4-BrmgjeOw.js} +0 -0
package/dist/node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
var e = {
|
|
2
|
+
id: "github-repo-monitor",
|
|
3
|
+
name: "GitHub repository monitor",
|
|
4
|
+
category: "Developer tools",
|
|
5
|
+
description: "Watch a repository for @OpenHands mentions in issues and PR comments, start a conversation, and post the agent's reply back to GitHub.",
|
|
6
|
+
requires: {
|
|
7
|
+
integrations: { github: { message: "Used to read issue and pull request comments and post replies." } },
|
|
8
|
+
features: [
|
|
9
|
+
"repoClone",
|
|
10
|
+
"presetPrompt",
|
|
11
|
+
"webhookDelivery"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
popularityRank: 98,
|
|
15
|
+
estimatedSetupMinutes: 5,
|
|
16
|
+
exampleImplementation: "Trigger: cron, every minute (configurable)\nRequired secret: GITHUB_PERSONAL_ACCESS_TOKEN\n\n1. Poll GitHub for new issue and PR comments since the last run.\n2. Match comments containing the trigger phrase (case-insensitive, default: @OpenHands).\n3. Post an acknowledgment comment with a link to the new OpenHands conversation.\n4. Forward follow-up replies in the same thread to the running conversation.\n5. Post the agent's final response back to GitHub when the conversation completes.",
|
|
17
|
+
setup: {
|
|
18
|
+
version: "1.0",
|
|
19
|
+
mode: "direct",
|
|
20
|
+
form: {
|
|
21
|
+
triggers: { event: {
|
|
22
|
+
on: {
|
|
23
|
+
type: "select",
|
|
24
|
+
label: "Respond to",
|
|
25
|
+
help: "Which GitHub comment event starts a conversation.",
|
|
26
|
+
default: "issue_comment.created",
|
|
27
|
+
required: !0,
|
|
28
|
+
options: [{
|
|
29
|
+
value: "issue_comment.created",
|
|
30
|
+
label: "Comments on issues and pull requests"
|
|
31
|
+
}, {
|
|
32
|
+
value: "pull_request_review_comment.created",
|
|
33
|
+
label: "Pull request review comments only"
|
|
34
|
+
}]
|
|
35
|
+
},
|
|
36
|
+
triggerPhrase: {
|
|
37
|
+
type: "text",
|
|
38
|
+
label: "Trigger phrase",
|
|
39
|
+
help: "Only comments containing this phrase start a conversation. Matched case-insensitively. Quotes and backslashes are not allowed, because the phrase becomes part of the event filter expression.",
|
|
40
|
+
default: "@openhands",
|
|
41
|
+
required: !0,
|
|
42
|
+
constraints: {
|
|
43
|
+
minLength: 2,
|
|
44
|
+
maxLength: 50,
|
|
45
|
+
format: "safeExpressionLiteral"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
} },
|
|
49
|
+
args: {
|
|
50
|
+
repository: {
|
|
51
|
+
type: "repo-picker",
|
|
52
|
+
label: "Repository",
|
|
53
|
+
help: "The repository or repositories to watch for mentions.",
|
|
54
|
+
provider: "github",
|
|
55
|
+
required: !0
|
|
56
|
+
},
|
|
57
|
+
ref: {
|
|
58
|
+
type: "text",
|
|
59
|
+
label: "Base branch",
|
|
60
|
+
help: "Branch checked out when the agent responds.",
|
|
61
|
+
default: "main",
|
|
62
|
+
required: !0,
|
|
63
|
+
constraints: {
|
|
64
|
+
minLength: 1,
|
|
65
|
+
maxLength: 255
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
prompt: "A comment in {{form.repository}} mentions '{{form.triggerPhrase}}'. Read the surrounding issue or pull request context from the event payload, then post a helpful reply as a comment on the same thread.",
|
|
71
|
+
filter: "icontains(comment.body, '{{form.triggerPhrase}}') && glob(repository.full_name, '{{form.repository}}')",
|
|
72
|
+
message: "This deployment cannot run the webhook-driven monitor directly. Set it up in this conversation instead: confirm the repository to watch, the comment event, and the trigger phrase, then create the automation. If webhook delivery is unavailable here, build the polling variant this skill supports."
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
//#endregion
|
|
76
|
+
export { e as default };
|
|
77
|
+
|
|
78
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","names":[],"sources":["../../../../../../../node_modules/@openhands/extensions/automations/catalog/github-repo-monitor/manifest.json"],"sourcesContent":["{\n \"id\": \"github-repo-monitor\",\n \"name\": \"GitHub repository monitor\",\n \"category\": \"Developer tools\",\n \"description\": \"Watch a repository for @OpenHands mentions in issues and PR comments, start a conversation, and post the agent's reply back to GitHub.\",\n \"requires\": {\n \"integrations\": {\n \"github\": {\n \"message\": \"Used to read issue and pull request comments and post replies.\"\n }\n },\n \"features\": [\n \"repoClone\",\n \"presetPrompt\",\n \"webhookDelivery\"\n ]\n },\n \"popularityRank\": 98,\n \"estimatedSetupMinutes\": 5,\n \"exampleImplementation\": \"Trigger: cron, every minute (configurable)\\nRequired secret: GITHUB_PERSONAL_ACCESS_TOKEN\\n\\n1. Poll GitHub for new issue and PR comments since the last run.\\n2. Match comments containing the trigger phrase (case-insensitive, default: @OpenHands).\\n3. Post an acknowledgment comment with a link to the new OpenHands conversation.\\n4. Forward follow-up replies in the same thread to the running conversation.\\n5. Post the agent's final response back to GitHub when the conversation completes.\",\n \"setup\": {\n \"version\": \"1.0\",\n \"mode\": \"direct\",\n \"form\": {\n \"triggers\": {\n \"event\": {\n \"on\": {\n \"type\": \"select\",\n \"label\": \"Respond to\",\n \"help\": \"Which GitHub comment event starts a conversation.\",\n \"default\": \"issue_comment.created\",\n \"required\": true,\n \"options\": [\n {\n \"value\": \"issue_comment.created\",\n \"label\": \"Comments on issues and pull requests\"\n },\n {\n \"value\": \"pull_request_review_comment.created\",\n \"label\": \"Pull request review comments only\"\n }\n ]\n },\n \"triggerPhrase\": {\n \"type\": \"text\",\n \"label\": \"Trigger phrase\",\n \"help\": \"Only comments containing this phrase start a conversation. Matched case-insensitively. Quotes and backslashes are not allowed, because the phrase becomes part of the event filter expression.\",\n \"default\": \"@openhands\",\n \"required\": true,\n \"constraints\": {\n \"minLength\": 2,\n \"maxLength\": 50,\n \"format\": \"safeExpressionLiteral\"\n }\n }\n }\n },\n \"args\": {\n \"repository\": {\n \"type\": \"repo-picker\",\n \"label\": \"Repository\",\n \"help\": \"The repository or repositories to watch for mentions.\",\n \"provider\": \"github\",\n \"required\": true\n },\n \"ref\": {\n \"type\": \"text\",\n \"label\": \"Base branch\",\n \"help\": \"Branch checked out when the agent responds.\",\n \"default\": \"main\",\n \"required\": true,\n \"constraints\": {\n \"minLength\": 1,\n \"maxLength\": 255\n }\n }\n }\n },\n \"prompt\": \"A comment in {{form.repository}} mentions '{{form.triggerPhrase}}'. Read the surrounding issue or pull request context from the event payload, then post a helpful reply as a comment on the same thread.\",\n \"filter\": \"icontains(comment.body, '{{form.triggerPhrase}}') && glob(repository.full_name, '{{form.repository}}')\",\n \"message\": \"This deployment cannot run the webhook-driven monitor directly. Set it up in this conversation instead: confirm the repository to watch, the comment event, and the trigger phrase, then create the automation. If webhook delivery is unavailable here, build the polling variant this skill supports.\"\n }\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require("../../../../../../_virtual/_rolldown/runtime.cjs");var e={id:`incident-retrospective-drafter`,name:`Incident retrospective drafter`,category:`Reliability`,description:`Collect incident chatter and issue updates, then draft a timeline and follow-up checklist.`,requires:{integrations:{slack:{message:`Reads incident discussion and timestamps.`},linear:{message:`Reads follow-up tickets, owners, and status.`},notion:{message:`Publishes the drafted retrospective. Can be connected later during setup.`,required:!1}},features:[`mcpTools`,`conversationDispatch`]},popularityRank:78,estimatedSetupMinutes:8,skill:`incident-retrospective`,exampleImplementation:`Trigger: manual, cron, or incident label added
|
|
2
|
+
Required MCPs: Slack, Linear, Notion
|
|
3
|
+
|
|
4
|
+
1. Gather incident messages, timestamps, and linked issue references.
|
|
5
|
+
2. Pull Linear follow-up tickets, owners, and status.
|
|
6
|
+
3. TODO: define the incident identifier format and approved Notion template.
|
|
7
|
+
4. Build a timeline, impact summary, root-cause hypotheses, and action items.
|
|
8
|
+
5. Publish a draft retrospective and notify the incident owner.`,setup:{version:`1.0`,mode:`assisted`,form:{note:`These answers start the conversation. Anything left blank is something the agent will ask about.`,args:{incidentChannel:{type:`text`,label:`Incident channel`,help:`The Slack channel where incidents are discussed.`,placeholder:`#incidents`,required:!1,constraints:{maxLength:100}},linearTeam:{type:`text`,label:`Linear team`,help:`The team whose follow-up tickets belong in the retrospective.`,required:!1,constraints:{maxLength:100}},notionDestination:{type:`text`,label:`Notion destination`,help:`Page or database where drafts should be published. Leave blank to decide during setup.`,required:!1,constraints:{maxLength:200}},triggerPreference:{type:`select`,label:`How should it run?`,help:`A starting preference only. The agent confirms the exact trigger before creating anything.`,default:`undecided`,required:!1,options:[{value:`undecided`,label:`Let the agent recommend one`},{value:`scheduled`,label:`On a schedule`},{value:`onIncidentLabel`,label:`When an incident is labelled`},{value:`manual`,label:`Only when I run it`}]},notes:{type:`textarea`,label:`Anything else the agent should know?`,help:`Incident naming conventions, an existing retro template, who should be notified.`,required:!1,constraints:{maxLength:2e3}}}},message:`The user supplied these starting points. Confirm each one, ask about anything left blank, then create the automation.
|
|
9
|
+
|
|
10
|
+
- Incident channel: {{form.incidentChannel}}
|
|
11
|
+
- Linear team: {{form.linearTeam}}
|
|
12
|
+
- Notion destination: {{form.notionDestination}}
|
|
13
|
+
- Preferred trigger: {{form.triggerPreference}}
|
|
14
|
+
- Notes: {{form.notes}}
|
|
15
|
+
|
|
16
|
+
Still undecided and required before creation: the incident identifier format and the approved Notion retrospective template.`}};exports.default=e;
|
|
17
|
+
//# sourceMappingURL=manifest.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.cjs","names":[],"sources":["../../../../../../../node_modules/@openhands/extensions/automations/catalog/incident-retrospective-drafter/manifest.json"],"sourcesContent":["{\n \"id\": \"incident-retrospective-drafter\",\n \"name\": \"Incident retrospective drafter\",\n \"category\": \"Reliability\",\n \"description\": \"Collect incident chatter and issue updates, then draft a timeline and follow-up checklist.\",\n \"requires\": {\n \"integrations\": {\n \"slack\": {\n \"message\": \"Reads incident discussion and timestamps.\"\n },\n \"linear\": {\n \"message\": \"Reads follow-up tickets, owners, and status.\"\n },\n \"notion\": {\n \"message\": \"Publishes the drafted retrospective. Can be connected later during setup.\",\n \"required\": false\n }\n },\n \"features\": [\n \"mcpTools\",\n \"conversationDispatch\"\n ]\n },\n \"popularityRank\": 78,\n \"estimatedSetupMinutes\": 8,\n \"skill\": \"incident-retrospective\",\n \"exampleImplementation\": \"Trigger: manual, cron, or incident label added\\nRequired MCPs: Slack, Linear, Notion\\n\\n1. Gather incident messages, timestamps, and linked issue references.\\n2. Pull Linear follow-up tickets, owners, and status.\\n3. TODO: define the incident identifier format and approved Notion template.\\n4. Build a timeline, impact summary, root-cause hypotheses, and action items.\\n5. Publish a draft retrospective and notify the incident owner.\",\n \"setup\": {\n \"version\": \"1.0\",\n \"mode\": \"assisted\",\n \"form\": {\n \"note\": \"These answers start the conversation. Anything left blank is something the agent will ask about.\",\n \"args\": {\n \"incidentChannel\": {\n \"type\": \"text\",\n \"label\": \"Incident channel\",\n \"help\": \"The Slack channel where incidents are discussed.\",\n \"placeholder\": \"#incidents\",\n \"required\": false,\n \"constraints\": {\n \"maxLength\": 100\n }\n },\n \"linearTeam\": {\n \"type\": \"text\",\n \"label\": \"Linear team\",\n \"help\": \"The team whose follow-up tickets belong in the retrospective.\",\n \"required\": false,\n \"constraints\": {\n \"maxLength\": 100\n }\n },\n \"notionDestination\": {\n \"type\": \"text\",\n \"label\": \"Notion destination\",\n \"help\": \"Page or database where drafts should be published. Leave blank to decide during setup.\",\n \"required\": false,\n \"constraints\": {\n \"maxLength\": 200\n }\n },\n \"triggerPreference\": {\n \"type\": \"select\",\n \"label\": \"How should it run?\",\n \"help\": \"A starting preference only. The agent confirms the exact trigger before creating anything.\",\n \"default\": \"undecided\",\n \"required\": false,\n \"options\": [\n {\n \"value\": \"undecided\",\n \"label\": \"Let the agent recommend one\"\n },\n {\n \"value\": \"scheduled\",\n \"label\": \"On a schedule\"\n },\n {\n \"value\": \"onIncidentLabel\",\n \"label\": \"When an incident is labelled\"\n },\n {\n \"value\": \"manual\",\n \"label\": \"Only when I run it\"\n }\n ]\n },\n \"notes\": {\n \"type\": \"textarea\",\n \"label\": \"Anything else the agent should know?\",\n \"help\": \"Incident naming conventions, an existing retro template, who should be notified.\",\n \"required\": false,\n \"constraints\": {\n \"maxLength\": 2000\n }\n }\n }\n },\n \"message\": \"The user supplied these starting points. Confirm each one, ask about anything left blank, then create the automation.\\n\\n- Incident channel: {{form.incidentChannel}}\\n- Linear team: {{form.linearTeam}}\\n- Notion destination: {{form.notionDestination}}\\n- Preferred trigger: {{form.triggerPreference}}\\n- Notes: {{form.notes}}\\n\\nStill undecided and required before creation: the incident identifier format and the approved Notion retrospective template.\"\n }\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
var e = {
|
|
2
|
+
id: "incident-retrospective-drafter",
|
|
3
|
+
name: "Incident retrospective drafter",
|
|
4
|
+
category: "Reliability",
|
|
5
|
+
description: "Collect incident chatter and issue updates, then draft a timeline and follow-up checklist.",
|
|
6
|
+
requires: {
|
|
7
|
+
integrations: {
|
|
8
|
+
slack: { message: "Reads incident discussion and timestamps." },
|
|
9
|
+
linear: { message: "Reads follow-up tickets, owners, and status." },
|
|
10
|
+
notion: {
|
|
11
|
+
message: "Publishes the drafted retrospective. Can be connected later during setup.",
|
|
12
|
+
required: !1
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
features: ["mcpTools", "conversationDispatch"]
|
|
16
|
+
},
|
|
17
|
+
popularityRank: 78,
|
|
18
|
+
estimatedSetupMinutes: 8,
|
|
19
|
+
skill: "incident-retrospective",
|
|
20
|
+
exampleImplementation: "Trigger: manual, cron, or incident label added\nRequired MCPs: Slack, Linear, Notion\n\n1. Gather incident messages, timestamps, and linked issue references.\n2. Pull Linear follow-up tickets, owners, and status.\n3. TODO: define the incident identifier format and approved Notion template.\n4. Build a timeline, impact summary, root-cause hypotheses, and action items.\n5. Publish a draft retrospective and notify the incident owner.",
|
|
21
|
+
setup: {
|
|
22
|
+
version: "1.0",
|
|
23
|
+
mode: "assisted",
|
|
24
|
+
form: {
|
|
25
|
+
note: "These answers start the conversation. Anything left blank is something the agent will ask about.",
|
|
26
|
+
args: {
|
|
27
|
+
incidentChannel: {
|
|
28
|
+
type: "text",
|
|
29
|
+
label: "Incident channel",
|
|
30
|
+
help: "The Slack channel where incidents are discussed.",
|
|
31
|
+
placeholder: "#incidents",
|
|
32
|
+
required: !1,
|
|
33
|
+
constraints: { maxLength: 100 }
|
|
34
|
+
},
|
|
35
|
+
linearTeam: {
|
|
36
|
+
type: "text",
|
|
37
|
+
label: "Linear team",
|
|
38
|
+
help: "The team whose follow-up tickets belong in the retrospective.",
|
|
39
|
+
required: !1,
|
|
40
|
+
constraints: { maxLength: 100 }
|
|
41
|
+
},
|
|
42
|
+
notionDestination: {
|
|
43
|
+
type: "text",
|
|
44
|
+
label: "Notion destination",
|
|
45
|
+
help: "Page or database where drafts should be published. Leave blank to decide during setup.",
|
|
46
|
+
required: !1,
|
|
47
|
+
constraints: { maxLength: 200 }
|
|
48
|
+
},
|
|
49
|
+
triggerPreference: {
|
|
50
|
+
type: "select",
|
|
51
|
+
label: "How should it run?",
|
|
52
|
+
help: "A starting preference only. The agent confirms the exact trigger before creating anything.",
|
|
53
|
+
default: "undecided",
|
|
54
|
+
required: !1,
|
|
55
|
+
options: [
|
|
56
|
+
{
|
|
57
|
+
value: "undecided",
|
|
58
|
+
label: "Let the agent recommend one"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
value: "scheduled",
|
|
62
|
+
label: "On a schedule"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
value: "onIncidentLabel",
|
|
66
|
+
label: "When an incident is labelled"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
value: "manual",
|
|
70
|
+
label: "Only when I run it"
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
notes: {
|
|
75
|
+
type: "textarea",
|
|
76
|
+
label: "Anything else the agent should know?",
|
|
77
|
+
help: "Incident naming conventions, an existing retro template, who should be notified.",
|
|
78
|
+
required: !1,
|
|
79
|
+
constraints: { maxLength: 2e3 }
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
message: "The user supplied these starting points. Confirm each one, ask about anything left blank, then create the automation.\n\n- Incident channel: {{form.incidentChannel}}\n- Linear team: {{form.linearTeam}}\n- Notion destination: {{form.notionDestination}}\n- Preferred trigger: {{form.triggerPreference}}\n- Notes: {{form.notes}}\n\nStill undecided and required before creation: the incident identifier format and the approved Notion retrospective template."
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
//#endregion
|
|
87
|
+
export { e as default };
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","names":[],"sources":["../../../../../../../node_modules/@openhands/extensions/automations/catalog/incident-retrospective-drafter/manifest.json"],"sourcesContent":["{\n \"id\": \"incident-retrospective-drafter\",\n \"name\": \"Incident retrospective drafter\",\n \"category\": \"Reliability\",\n \"description\": \"Collect incident chatter and issue updates, then draft a timeline and follow-up checklist.\",\n \"requires\": {\n \"integrations\": {\n \"slack\": {\n \"message\": \"Reads incident discussion and timestamps.\"\n },\n \"linear\": {\n \"message\": \"Reads follow-up tickets, owners, and status.\"\n },\n \"notion\": {\n \"message\": \"Publishes the drafted retrospective. Can be connected later during setup.\",\n \"required\": false\n }\n },\n \"features\": [\n \"mcpTools\",\n \"conversationDispatch\"\n ]\n },\n \"popularityRank\": 78,\n \"estimatedSetupMinutes\": 8,\n \"skill\": \"incident-retrospective\",\n \"exampleImplementation\": \"Trigger: manual, cron, or incident label added\\nRequired MCPs: Slack, Linear, Notion\\n\\n1. Gather incident messages, timestamps, and linked issue references.\\n2. Pull Linear follow-up tickets, owners, and status.\\n3. TODO: define the incident identifier format and approved Notion template.\\n4. Build a timeline, impact summary, root-cause hypotheses, and action items.\\n5. Publish a draft retrospective and notify the incident owner.\",\n \"setup\": {\n \"version\": \"1.0\",\n \"mode\": \"assisted\",\n \"form\": {\n \"note\": \"These answers start the conversation. Anything left blank is something the agent will ask about.\",\n \"args\": {\n \"incidentChannel\": {\n \"type\": \"text\",\n \"label\": \"Incident channel\",\n \"help\": \"The Slack channel where incidents are discussed.\",\n \"placeholder\": \"#incidents\",\n \"required\": false,\n \"constraints\": {\n \"maxLength\": 100\n }\n },\n \"linearTeam\": {\n \"type\": \"text\",\n \"label\": \"Linear team\",\n \"help\": \"The team whose follow-up tickets belong in the retrospective.\",\n \"required\": false,\n \"constraints\": {\n \"maxLength\": 100\n }\n },\n \"notionDestination\": {\n \"type\": \"text\",\n \"label\": \"Notion destination\",\n \"help\": \"Page or database where drafts should be published. Leave blank to decide during setup.\",\n \"required\": false,\n \"constraints\": {\n \"maxLength\": 200\n }\n },\n \"triggerPreference\": {\n \"type\": \"select\",\n \"label\": \"How should it run?\",\n \"help\": \"A starting preference only. The agent confirms the exact trigger before creating anything.\",\n \"default\": \"undecided\",\n \"required\": false,\n \"options\": [\n {\n \"value\": \"undecided\",\n \"label\": \"Let the agent recommend one\"\n },\n {\n \"value\": \"scheduled\",\n \"label\": \"On a schedule\"\n },\n {\n \"value\": \"onIncidentLabel\",\n \"label\": \"When an incident is labelled\"\n },\n {\n \"value\": \"manual\",\n \"label\": \"Only when I run it\"\n }\n ]\n },\n \"notes\": {\n \"type\": \"textarea\",\n \"label\": \"Anything else the agent should know?\",\n \"help\": \"Incident naming conventions, an existing retro template, who should be notified.\",\n \"required\": false,\n \"constraints\": {\n \"maxLength\": 2000\n }\n }\n }\n },\n \"message\": \"The user supplied these starting points. Confirm each one, ask about anything left blank, then create the automation.\\n\\n- Incident channel: {{form.incidentChannel}}\\n- Linear team: {{form.linearTeam}}\\n- Notion destination: {{form.notionDestination}}\\n- Preferred trigger: {{form.triggerPreference}}\\n- Notes: {{form.notes}}\\n\\nStill undecided and required before creation: the incident identifier format and the approved Notion retrospective template.\"\n }\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.cjs
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
require("../../../../../../_virtual/_rolldown/runtime.cjs");var e={id:`jira-issue-to-pr`,name:`Jira issue to GitHub PR`,category:`Project management`,description:`Watch a Jira Cloud project for issues with a configurable label and automatically open a GitHub pull request for each new issue found. The target GitHub repo is read from the ticket body - no repo parameter required at deploy time.`,requires:{integrations:{jira:{message:`Reads the project for issues carrying the trigger label.`},github:{message:`Opens a pull request on the repository named in the ticket.`}}},popularityRank:85,estimatedSetupMinutes:5,exampleImplementation:`Trigger: cron polling (e.g. every 5 minutes)
|
|
2
|
+
Required secrets: Jira API token, GitHub personal access token (repo + workflow scope)
|
|
3
|
+
|
|
4
|
+
1. Collect Jira base URL, email, API token secret name, label to watch, and cron schedule from the user. No GitHub repo is needed at deploy time - each ticket must include the target repo (owner/repo) in its body.
|
|
5
|
+
2. Poll POST /rest/api/3/search/jql on the Jira Cloud instance to find open issues carrying the configured label.
|
|
6
|
+
3. Deduplicate against a KV-store-backed set of already-processed issue keys so re-runs never create duplicate PRs.
|
|
7
|
+
4. For each new issue, start an independent OpenHands agent conversation that extracts the GitHub repo from the ticket body, clones it, creates a branch named after the Jira key, implements or scaffolds the requested change, and opens a pull request.
|
|
8
|
+
5. Immediately after the conversation is created, post a Jira comment on the issue: 'I'm on it: <conversation URL>'.
|
|
9
|
+
6. Persist the processed issue key immediately after dispatching so the next poll skips it.`};exports.default=e;
|
|
10
|
+
//# sourceMappingURL=manifest.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.cjs","names":[],"sources":["../../../../../../../node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.json"],"sourcesContent":["{\n \"id\": \"jira-issue-to-pr\",\n \"name\": \"Jira issue to GitHub PR\",\n \"category\": \"Project management\",\n \"description\": \"Watch a Jira Cloud project for issues with a configurable label and automatically open a GitHub pull request for each new issue found. The target GitHub repo is read from the ticket body - no repo parameter required at deploy time.\",\n \"requires\": {\n \"integrations\": {\n \"jira\": {\n \"message\": \"Reads the project for issues carrying the trigger label.\"\n },\n \"github\": {\n \"message\": \"Opens a pull request on the repository named in the ticket.\"\n }\n }\n },\n \"popularityRank\": 85,\n \"estimatedSetupMinutes\": 5,\n \"exampleImplementation\": \"Trigger: cron polling (e.g. every 5 minutes)\\nRequired secrets: Jira API token, GitHub personal access token (repo + workflow scope)\\n\\n1. Collect Jira base URL, email, API token secret name, label to watch, and cron schedule from the user. No GitHub repo is needed at deploy time - each ticket must include the target repo (owner/repo) in its body.\\n2. Poll POST /rest/api/3/search/jql on the Jira Cloud instance to find open issues carrying the configured label.\\n3. Deduplicate against a KV-store-backed set of already-processed issue keys so re-runs never create duplicate PRs.\\n4. For each new issue, start an independent OpenHands agent conversation that extracts the GitHub repo from the ticket body, clones it, creates a branch named after the Jira key, implements or scaffolds the requested change, and opens a pull request.\\n5. Immediately after the conversation is created, post a Jira comment on the issue: 'I'm on it: <conversation URL>'.\\n6. Persist the processed issue key immediately after dispatching so the next poll skips it.\"\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var e = {
|
|
2
|
+
id: "jira-issue-to-pr",
|
|
3
|
+
name: "Jira issue to GitHub PR",
|
|
4
|
+
category: "Project management",
|
|
5
|
+
description: "Watch a Jira Cloud project for issues with a configurable label and automatically open a GitHub pull request for each new issue found. The target GitHub repo is read from the ticket body - no repo parameter required at deploy time.",
|
|
6
|
+
requires: { integrations: {
|
|
7
|
+
jira: { message: "Reads the project for issues carrying the trigger label." },
|
|
8
|
+
github: { message: "Opens a pull request on the repository named in the ticket." }
|
|
9
|
+
} },
|
|
10
|
+
popularityRank: 85,
|
|
11
|
+
estimatedSetupMinutes: 5,
|
|
12
|
+
exampleImplementation: "Trigger: cron polling (e.g. every 5 minutes)\nRequired secrets: Jira API token, GitHub personal access token (repo + workflow scope)\n\n1. Collect Jira base URL, email, API token secret name, label to watch, and cron schedule from the user. No GitHub repo is needed at deploy time - each ticket must include the target repo (owner/repo) in its body.\n2. Poll POST /rest/api/3/search/jql on the Jira Cloud instance to find open issues carrying the configured label.\n3. Deduplicate against a KV-store-backed set of already-processed issue keys so re-runs never create duplicate PRs.\n4. For each new issue, start an independent OpenHands agent conversation that extracts the GitHub repo from the ticket body, clones it, creates a branch named after the Jira key, implements or scaffolds the requested change, and opens a pull request.\n5. Immediately after the conversation is created, post a Jira comment on the issue: 'I'm on it: <conversation URL>'.\n6. Persist the processed issue key immediately after dispatching so the next poll skips it."
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { e as default };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=manifest.js.map
|
package/dist/node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","names":[],"sources":["../../../../../../../node_modules/@openhands/extensions/automations/catalog/jira-issue-to-pr/manifest.json"],"sourcesContent":["{\n \"id\": \"jira-issue-to-pr\",\n \"name\": \"Jira issue to GitHub PR\",\n \"category\": \"Project management\",\n \"description\": \"Watch a Jira Cloud project for issues with a configurable label and automatically open a GitHub pull request for each new issue found. The target GitHub repo is read from the ticket body - no repo parameter required at deploy time.\",\n \"requires\": {\n \"integrations\": {\n \"jira\": {\n \"message\": \"Reads the project for issues carrying the trigger label.\"\n },\n \"github\": {\n \"message\": \"Opens a pull request on the repository named in the ticket.\"\n }\n }\n },\n \"popularityRank\": 85,\n \"estimatedSetupMinutes\": 5,\n \"exampleImplementation\": \"Trigger: cron polling (e.g. every 5 minutes)\\nRequired secrets: Jira API token, GitHub personal access token (repo + workflow scope)\\n\\n1. Collect Jira base URL, email, API token secret name, label to watch, and cron schedule from the user. No GitHub repo is needed at deploy time - each ticket must include the target repo (owner/repo) in its body.\\n2. Poll POST /rest/api/3/search/jql on the Jira Cloud instance to find open issues carrying the configured label.\\n3. Deduplicate against a KV-store-backed set of already-processed issue keys so re-runs never create duplicate PRs.\\n4. For each new issue, start an independent OpenHands agent conversation that extracts the GitHub repo from the ticket body, clones it, creates a branch named after the Jira key, implements or scaffolds the requested change, and opens a pull request.\\n5. Immediately after the conversation is created, post a Jira comment on the issue: 'I'm on it: <conversation URL>'.\\n6. Persist the processed issue key immediately after dispatching so the next poll skips it.\"\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
require("../../../../../../_virtual/_rolldown/runtime.cjs");var e={id:`linear-triage-assistant`,name:`Linear issue triage assistant`,category:`Project management`,description:`Classify new Linear issues, suggest labels, find duplicates, and ask clarifying questions.`,requires:{integrations:{linear:{message:`Reads new issues and applies labels, comments, and duplicate links.`}}},popularityRank:90,estimatedSetupMinutes:3,skill:`linear-triage`,exampleImplementation:`Trigger: linear Issue create
|
|
2
|
+
Required MCP: Linear
|
|
3
|
+
|
|
4
|
+
1. Load the new issue, team context, project, labels, and recent similar issues.
|
|
5
|
+
2. Score priority and classify the request as bug, feature, support, or chore.
|
|
6
|
+
3. TODO: map local team labels and priority conventions.
|
|
7
|
+
4. Add a triage comment with rationale and suggested next actions.
|
|
8
|
+
5. Optionally update labels, priority, and assignee.`};exports.default=e;
|
|
9
|
+
//# sourceMappingURL=manifest.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.cjs","names":[],"sources":["../../../../../../../node_modules/@openhands/extensions/automations/catalog/linear-triage-assistant/manifest.json"],"sourcesContent":["{\n \"id\": \"linear-triage-assistant\",\n \"name\": \"Linear issue triage assistant\",\n \"category\": \"Project management\",\n \"description\": \"Classify new Linear issues, suggest labels, find duplicates, and ask clarifying questions.\",\n \"requires\": {\n \"integrations\": {\n \"linear\": {\n \"message\": \"Reads new issues and applies labels, comments, and duplicate links.\"\n }\n }\n },\n \"popularityRank\": 90,\n \"estimatedSetupMinutes\": 3,\n \"skill\": \"linear-triage\",\n \"exampleImplementation\": \"Trigger: linear Issue create\\nRequired MCP: Linear\\n\\n1. Load the new issue, team context, project, labels, and recent similar issues.\\n2. Score priority and classify the request as bug, feature, support, or chore.\\n3. TODO: map local team labels and priority conventions.\\n4. Add a triage comment with rationale and suggested next actions.\\n5. Optionally update labels, priority, and assignee.\"\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var e = {
|
|
2
|
+
id: "linear-triage-assistant",
|
|
3
|
+
name: "Linear issue triage assistant",
|
|
4
|
+
category: "Project management",
|
|
5
|
+
description: "Classify new Linear issues, suggest labels, find duplicates, and ask clarifying questions.",
|
|
6
|
+
requires: { integrations: { linear: { message: "Reads new issues and applies labels, comments, and duplicate links." } } },
|
|
7
|
+
popularityRank: 90,
|
|
8
|
+
estimatedSetupMinutes: 3,
|
|
9
|
+
skill: "linear-triage",
|
|
10
|
+
exampleImplementation: "Trigger: linear Issue create\nRequired MCP: Linear\n\n1. Load the new issue, team context, project, labels, and recent similar issues.\n2. Score priority and classify the request as bug, feature, support, or chore.\n3. TODO: map local team labels and priority conventions.\n4. Add a triage comment with rationale and suggested next actions.\n5. Optionally update labels, priority, and assignee."
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { e as default };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","names":[],"sources":["../../../../../../../node_modules/@openhands/extensions/automations/catalog/linear-triage-assistant/manifest.json"],"sourcesContent":["{\n \"id\": \"linear-triage-assistant\",\n \"name\": \"Linear issue triage assistant\",\n \"category\": \"Project management\",\n \"description\": \"Classify new Linear issues, suggest labels, find duplicates, and ask clarifying questions.\",\n \"requires\": {\n \"integrations\": {\n \"linear\": {\n \"message\": \"Reads new issues and applies labels, comments, and duplicate links.\"\n }\n }\n },\n \"popularityRank\": 90,\n \"estimatedSetupMinutes\": 3,\n \"skill\": \"linear-triage\",\n \"exampleImplementation\": \"Trigger: linear Issue create\\nRequired MCP: Linear\\n\\n1. Load the new issue, team context, project, labels, and recent similar issues.\\n2. Score priority and classify the request as bug, feature, support, or chore.\\n3. TODO: map local team labels and priority conventions.\\n4. Add a triage comment with rationale and suggested next actions.\\n5. Optionally update labels, priority, and assignee.\"\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
require("../../../../../../_virtual/_rolldown/runtime.cjs");var e={id:`research-brief-writer`,name:`Research brief writer`,category:`Research`,description:`Monitor a topic, gather sources from the web, and publish a short brief for your team.`,requires:{integrations:{tavily:{message:`Searches the web for sources on the topic.`},notion:{message:`Publishes the finished brief.`}}},popularityRank:84,estimatedSetupMinutes:7,skill:`research-brief`,exampleImplementation:`Trigger: cron, weekly or daily
|
|
2
|
+
Required MCPs: Tavily, Notion
|
|
3
|
+
|
|
4
|
+
1. Run focused Tavily searches for configured topics and competitors.
|
|
5
|
+
2. Deduplicate sources and rank them by freshness and authority.
|
|
6
|
+
3. TODO: confirm citation format and destination Notion database schema.
|
|
7
|
+
4. Write an executive summary, implications, and recommended actions.
|
|
8
|
+
5. Create or update a Notion page with citations and source links.`};exports.default=e;
|
|
9
|
+
//# sourceMappingURL=manifest.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.cjs","names":[],"sources":["../../../../../../../node_modules/@openhands/extensions/automations/catalog/research-brief-writer/manifest.json"],"sourcesContent":["{\n \"id\": \"research-brief-writer\",\n \"name\": \"Research brief writer\",\n \"category\": \"Research\",\n \"description\": \"Monitor a topic, gather sources from the web, and publish a short brief for your team.\",\n \"requires\": {\n \"integrations\": {\n \"tavily\": {\n \"message\": \"Searches the web for sources on the topic.\"\n },\n \"notion\": {\n \"message\": \"Publishes the finished brief.\"\n }\n }\n },\n \"popularityRank\": 84,\n \"estimatedSetupMinutes\": 7,\n \"skill\": \"research-brief\",\n \"exampleImplementation\": \"Trigger: cron, weekly or daily\\nRequired MCPs: Tavily, Notion\\n\\n1. Run focused Tavily searches for configured topics and competitors.\\n2. Deduplicate sources and rank them by freshness and authority.\\n3. TODO: confirm citation format and destination Notion database schema.\\n4. Write an executive summary, implications, and recommended actions.\\n5. Create or update a Notion page with citations and source links.\"\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var e = {
|
|
2
|
+
id: "research-brief-writer",
|
|
3
|
+
name: "Research brief writer",
|
|
4
|
+
category: "Research",
|
|
5
|
+
description: "Monitor a topic, gather sources from the web, and publish a short brief for your team.",
|
|
6
|
+
requires: { integrations: {
|
|
7
|
+
tavily: { message: "Searches the web for sources on the topic." },
|
|
8
|
+
notion: { message: "Publishes the finished brief." }
|
|
9
|
+
} },
|
|
10
|
+
popularityRank: 84,
|
|
11
|
+
estimatedSetupMinutes: 7,
|
|
12
|
+
skill: "research-brief",
|
|
13
|
+
exampleImplementation: "Trigger: cron, weekly or daily\nRequired MCPs: Tavily, Notion\n\n1. Run focused Tavily searches for configured topics and competitors.\n2. Deduplicate sources and rank them by freshness and authority.\n3. TODO: confirm citation format and destination Notion database schema.\n4. Write an executive summary, implications, and recommended actions.\n5. Create or update a Notion page with citations and source links."
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
16
|
+
export { e as default };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","names":[],"sources":["../../../../../../../node_modules/@openhands/extensions/automations/catalog/research-brief-writer/manifest.json"],"sourcesContent":["{\n \"id\": \"research-brief-writer\",\n \"name\": \"Research brief writer\",\n \"category\": \"Research\",\n \"description\": \"Monitor a topic, gather sources from the web, and publish a short brief for your team.\",\n \"requires\": {\n \"integrations\": {\n \"tavily\": {\n \"message\": \"Searches the web for sources on the topic.\"\n },\n \"notion\": {\n \"message\": \"Publishes the finished brief.\"\n }\n }\n },\n \"popularityRank\": 84,\n \"estimatedSetupMinutes\": 7,\n \"skill\": \"research-brief\",\n \"exampleImplementation\": \"Trigger: cron, weekly or daily\\nRequired MCPs: Tavily, Notion\\n\\n1. Run focused Tavily searches for configured topics and competitors.\\n2. Deduplicate sources and rank them by freshness and authority.\\n3. TODO: confirm citation format and destination Notion database schema.\\n4. Write an executive summary, implications, and recommended actions.\\n5. Create or update a Notion page with citations and source links.\"\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
require("../../../../../../_virtual/_rolldown/runtime.cjs");var e={id:`slack-channel-monitor`,name:`Slack channel monitor`,category:`Team communication`,description:`Watch Slack channels for @openhands mentions, open a conversation with the message context, reply when the agent finishes, and continue the same conversation from triggered Slack thread follow-ups.`,requires:{integrations:{slack:{message:`Reads channel messages and posts replies back to the thread.`}}},popularityRank:92,estimatedSetupMinutes:7,exampleImplementation:`Trigger: cron, every minute
|
|
2
|
+
Required secret: SLACK_BOT_TOKEN or SLACK_USER_TOKEN
|
|
3
|
+
|
|
4
|
+
1. Poll up to 10 configured Slack channels for new messages since the last run.
|
|
5
|
+
2. Match messages containing the trigger phrase (default: @openhands).
|
|
6
|
+
3. React with 👀 and start an OpenHands conversation with the message and recent channel context.
|
|
7
|
+
4. Post a thread reply with a link to the conversation, then post the agent response when done.
|
|
8
|
+
5. Keep the thread in a short follow-up watch window and forward only replies that repeat the trigger phrase to the same conversation, with per-thread backoff for quiet threads.`};exports.default=e;
|
|
9
|
+
//# sourceMappingURL=manifest.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.cjs","names":[],"sources":["../../../../../../../node_modules/@openhands/extensions/automations/catalog/slack-channel-monitor/manifest.json"],"sourcesContent":["{\n \"id\": \"slack-channel-monitor\",\n \"name\": \"Slack channel monitor\",\n \"category\": \"Team communication\",\n \"description\": \"Watch Slack channels for @openhands mentions, open a conversation with the message context, reply when the agent finishes, and continue the same conversation from triggered Slack thread follow-ups.\",\n \"requires\": {\n \"integrations\": {\n \"slack\": {\n \"message\": \"Reads channel messages and posts replies back to the thread.\"\n }\n }\n },\n \"popularityRank\": 92,\n \"estimatedSetupMinutes\": 7,\n \"exampleImplementation\": \"Trigger: cron, every minute\\nRequired secret: SLACK_BOT_TOKEN or SLACK_USER_TOKEN\\n\\n1. Poll up to 10 configured Slack channels for new messages since the last run.\\n2. Match messages containing the trigger phrase (default: @openhands).\\n3. React with 👀 and start an OpenHands conversation with the message and recent channel context.\\n4. Post a thread reply with a link to the conversation, then post the agent response when done.\\n5. Keep the thread in a short follow-up watch window and forward only replies that repeat the trigger phrase to the same conversation, with per-thread backoff for quiet threads.\"\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var e = {
|
|
2
|
+
id: "slack-channel-monitor",
|
|
3
|
+
name: "Slack channel monitor",
|
|
4
|
+
category: "Team communication",
|
|
5
|
+
description: "Watch Slack channels for @openhands mentions, open a conversation with the message context, reply when the agent finishes, and continue the same conversation from triggered Slack thread follow-ups.",
|
|
6
|
+
requires: { integrations: { slack: { message: "Reads channel messages and posts replies back to the thread." } } },
|
|
7
|
+
popularityRank: 92,
|
|
8
|
+
estimatedSetupMinutes: 7,
|
|
9
|
+
exampleImplementation: "Trigger: cron, every minute\nRequired secret: SLACK_BOT_TOKEN or SLACK_USER_TOKEN\n\n1. Poll up to 10 configured Slack channels for new messages since the last run.\n2. Match messages containing the trigger phrase (default: @openhands).\n3. React with 👀 and start an OpenHands conversation with the message and recent channel context.\n4. Post a thread reply with a link to the conversation, then post the agent response when done.\n5. Keep the thread in a short follow-up watch window and forward only replies that repeat the trigger phrase to the same conversation, with per-thread backoff for quiet threads."
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { e as default };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","names":[],"sources":["../../../../../../../node_modules/@openhands/extensions/automations/catalog/slack-channel-monitor/manifest.json"],"sourcesContent":["{\n \"id\": \"slack-channel-monitor\",\n \"name\": \"Slack channel monitor\",\n \"category\": \"Team communication\",\n \"description\": \"Watch Slack channels for @openhands mentions, open a conversation with the message context, reply when the agent finishes, and continue the same conversation from triggered Slack thread follow-ups.\",\n \"requires\": {\n \"integrations\": {\n \"slack\": {\n \"message\": \"Reads channel messages and posts replies back to the thread.\"\n }\n }\n },\n \"popularityRank\": 92,\n \"estimatedSetupMinutes\": 7,\n \"exampleImplementation\": \"Trigger: cron, every minute\\nRequired secret: SLACK_BOT_TOKEN or SLACK_USER_TOKEN\\n\\n1. Poll up to 10 configured Slack channels for new messages since the last run.\\n2. Match messages containing the trigger phrase (default: @openhands).\\n3. React with 👀 and start an OpenHands conversation with the message and recent channel context.\\n4. Post a thread reply with a link to the conversation, then post the agent response when done.\\n5. Keep the thread in a short follow-up watch window and forward only replies that repeat the trigger phrase to the same conversation, with per-thread backoff for quiet threads.\"\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
require("../../../../../../_virtual/_rolldown/runtime.cjs");var e={id:`slack-standup-digest`,name:`Slack standup digest`,category:`Team updates`,description:`Summarize yesterday’s Slack activity into an async standup note with blockers, decisions, and owners.`,requires:{integrations:{slack:{message:`Reads recent channel activity and posts the digest.`}}},popularityRank:94,estimatedSetupMinutes:5,exampleImplementation:`Trigger: cron, weekday mornings
|
|
2
|
+
Required MCP: Slack
|
|
3
|
+
|
|
4
|
+
1. Search configured channels for messages since the last digest window.
|
|
5
|
+
2. Cluster updates into shipped work, active work, blockers, and decisions.
|
|
6
|
+
3. TODO: choose a safe allowlist for channels and whether DMs are excluded.
|
|
7
|
+
4. Draft a Slack message with owners, links, and unanswered questions.
|
|
8
|
+
5. Optionally post to the configured standup channel.`};exports.default=e;
|
|
9
|
+
//# sourceMappingURL=manifest.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.cjs","names":[],"sources":["../../../../../../../node_modules/@openhands/extensions/automations/catalog/slack-standup-digest/manifest.json"],"sourcesContent":["{\n \"id\": \"slack-standup-digest\",\n \"name\": \"Slack standup digest\",\n \"category\": \"Team updates\",\n \"description\": \"Summarize yesterday’s Slack activity into an async standup note with blockers, decisions, and owners.\",\n \"requires\": {\n \"integrations\": {\n \"slack\": {\n \"message\": \"Reads recent channel activity and posts the digest.\"\n }\n }\n },\n \"popularityRank\": 94,\n \"estimatedSetupMinutes\": 5,\n \"exampleImplementation\": \"Trigger: cron, weekday mornings\\nRequired MCP: Slack\\n\\n1. Search configured channels for messages since the last digest window.\\n2. Cluster updates into shipped work, active work, blockers, and decisions.\\n3. TODO: choose a safe allowlist for channels and whether DMs are excluded.\\n4. Draft a Slack message with owners, links, and unanswered questions.\\n5. Optionally post to the configured standup channel.\"\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
package/dist/node_modules/@openhands/extensions/automations/catalog/slack-standup-digest/manifest.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var e = {
|
|
2
|
+
id: "slack-standup-digest",
|
|
3
|
+
name: "Slack standup digest",
|
|
4
|
+
category: "Team updates",
|
|
5
|
+
description: "Summarize yesterday’s Slack activity into an async standup note with blockers, decisions, and owners.",
|
|
6
|
+
requires: { integrations: { slack: { message: "Reads recent channel activity and posts the digest." } } },
|
|
7
|
+
popularityRank: 94,
|
|
8
|
+
estimatedSetupMinutes: 5,
|
|
9
|
+
exampleImplementation: "Trigger: cron, weekday mornings\nRequired MCP: Slack\n\n1. Search configured channels for messages since the last digest window.\n2. Cluster updates into shipped work, active work, blockers, and decisions.\n3. TODO: choose a safe allowlist for channels and whether DMs are excluded.\n4. Draft a Slack message with owners, links, and unanswered questions.\n5. Optionally post to the configured standup channel."
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { e as default };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","names":[],"sources":["../../../../../../../node_modules/@openhands/extensions/automations/catalog/slack-standup-digest/manifest.json"],"sourcesContent":["{\n \"id\": \"slack-standup-digest\",\n \"name\": \"Slack standup digest\",\n \"category\": \"Team updates\",\n \"description\": \"Summarize yesterday’s Slack activity into an async standup note with blockers, decisions, and owners.\",\n \"requires\": {\n \"integrations\": {\n \"slack\": {\n \"message\": \"Reads recent channel activity and posts the digest.\"\n }\n }\n },\n \"popularityRank\": 94,\n \"estimatedSetupMinutes\": 5,\n \"exampleImplementation\": \"Trigger: cron, weekday mornings\\nRequired MCP: Slack\\n\\n1. Search configured channels for messages since the last digest window.\\n2. Cluster updates into shipped work, active work, blockers, and decisions.\\n3. TODO: choose a safe allowlist for channels and whether DMs are excluded.\\n4. Draft a Slack message with owners, links, and unanswered questions.\\n5. Optionally post to the configured standup channel.\"\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require("./catalog/github-pr-reviewer/manifest.cjs"),t=require("./catalog/github-repo-monitor/manifest.cjs"),n=require("./catalog/slack-standup-digest/manifest.cjs"),r=require("./catalog/slack-channel-monitor/manifest.cjs"),i=require("./catalog/linear-triage-assistant/manifest.cjs"),a=require("./catalog/jira-issue-to-pr/manifest.cjs"),o=require("./catalog/research-brief-writer/manifest.cjs"),s=require("./catalog/incident-retrospective-drafter/manifest.cjs");var c=[e.default,t.default,n.default,r.default,i.default,a.default,o.default,s.default];exports.AUTOMATION_CATALOG_ENTRIES=c;
|
|
2
|
+
//# sourceMappingURL=catalog-index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-index.cjs","names":["entry0","entry1","entry2","entry3","entry4","entry5","entry6","entry7"],"sources":["../../../../../node_modules/@openhands/extensions/automations/catalog-index.js"],"sourcesContent":["// This file is auto-generated by scripts/build-automation-catalog.mjs.\n// Do not edit it manually. To update it after changing automations/catalog/*/manifest.json,\n// run: npm run build:automations\n\nimport entry0 from \"./catalog/github-pr-reviewer/manifest.json\" with { type: \"json\" };\nimport entry1 from \"./catalog/github-repo-monitor/manifest.json\" with { type: \"json\" };\nimport entry2 from \"./catalog/slack-standup-digest/manifest.json\" with { type: \"json\" };\nimport entry3 from \"./catalog/slack-channel-monitor/manifest.json\" with { type: \"json\" };\nimport entry4 from \"./catalog/linear-triage-assistant/manifest.json\" with { type: \"json\" };\nimport entry5 from \"./catalog/jira-issue-to-pr/manifest.json\" with { type: \"json\" };\nimport entry6 from \"./catalog/research-brief-writer/manifest.json\" with { type: \"json\" };\nimport entry7 from \"./catalog/incident-retrospective-drafter/manifest.json\" with { type: \"json\" };\n\nexport const AUTOMATION_CATALOG_ENTRIES = [\n entry0,\n entry1,\n entry2,\n entry3,\n entry4,\n entry5,\n entry6,\n entry7,\n];\n"],"x_google_ignoreList":[0],"mappings":"4gBAaA,IAAa,EAA6B,CACxCA,EAAAA,QACAC,EAAAA,QACAC,EAAAA,QACAC,EAAAA,QACAC,EAAAA,QACAC,EAAAA,QACAC,EAAAA,QACAC,EAAAA,OACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import e from "./catalog/github-pr-reviewer/manifest.js";
|
|
2
|
+
import t from "./catalog/github-repo-monitor/manifest.js";
|
|
3
|
+
import n from "./catalog/slack-standup-digest/manifest.js";
|
|
4
|
+
import r from "./catalog/slack-channel-monitor/manifest.js";
|
|
5
|
+
import i from "./catalog/linear-triage-assistant/manifest.js";
|
|
6
|
+
import a from "./catalog/jira-issue-to-pr/manifest.js";
|
|
7
|
+
import o from "./catalog/research-brief-writer/manifest.js";
|
|
8
|
+
import s from "./catalog/incident-retrospective-drafter/manifest.js";
|
|
9
|
+
//#region node_modules/@openhands/extensions/automations/catalog-index.js
|
|
10
|
+
var c = [
|
|
11
|
+
e,
|
|
12
|
+
t,
|
|
13
|
+
n,
|
|
14
|
+
r,
|
|
15
|
+
i,
|
|
16
|
+
a,
|
|
17
|
+
o,
|
|
18
|
+
s
|
|
19
|
+
];
|
|
20
|
+
//#endregion
|
|
21
|
+
export { c as AUTOMATION_CATALOG_ENTRIES };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=catalog-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-index.js","names":["entry0","entry1","entry2","entry3","entry4","entry5","entry6","entry7"],"sources":["../../../../../node_modules/@openhands/extensions/automations/catalog-index.js"],"sourcesContent":["// This file is auto-generated by scripts/build-automation-catalog.mjs.\n// Do not edit it manually. To update it after changing automations/catalog/*/manifest.json,\n// run: npm run build:automations\n\nimport entry0 from \"./catalog/github-pr-reviewer/manifest.json\" with { type: \"json\" };\nimport entry1 from \"./catalog/github-repo-monitor/manifest.json\" with { type: \"json\" };\nimport entry2 from \"./catalog/slack-standup-digest/manifest.json\" with { type: \"json\" };\nimport entry3 from \"./catalog/slack-channel-monitor/manifest.json\" with { type: \"json\" };\nimport entry4 from \"./catalog/linear-triage-assistant/manifest.json\" with { type: \"json\" };\nimport entry5 from \"./catalog/jira-issue-to-pr/manifest.json\" with { type: \"json\" };\nimport entry6 from \"./catalog/research-brief-writer/manifest.json\" with { type: \"json\" };\nimport entry7 from \"./catalog/incident-retrospective-drafter/manifest.json\" with { type: \"json\" };\n\nexport const AUTOMATION_CATALOG_ENTRIES = [\n entry0,\n entry1,\n entry2,\n entry3,\n entry4,\n entry5,\n entry6,\n entry7,\n];\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;AAaA,IAAa,IAA6B;CACxCA;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;AACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../../../../_virtual/_rolldown/runtime.cjs"),t=require("./catalog-index.cjs"),n=require("./interface.cjs");var r=e.__exportAll({AUTOMATION_CATALOG:()=>l,AUTOMATION_INTERFACE:()=>u,default:()=>l,getAutomationCatalogEntry:()=>c,listAutomationCatalog:()=>s}),i=e=>JSON.parse(JSON.stringify(e)),a=t.AUTOMATION_CATALOG_ENTRIES,o=new Map(a.map(e=>[e.id,e])),s=()=>i(a),c=e=>{let t=o.get(e);return t?i(t):void 0},l=i(a),u=i(n.default);Object.defineProperty(exports,"automations_exports",{enumerable:!0,get:function(){return r}}),exports.default=l;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["AUTOMATION_CATALOG_ENTRIES","interfaceManifest"],"sources":["../../../../../node_modules/@openhands/extensions/automations/index.js"],"sourcesContent":["/**\n * Runtime automation catalog.\n *\n * The source of truth is the hand-authored `automations/catalog/<id>/manifest.json`\n * directory. `catalog-index.js` is generated from that directory so the JS\n * package can statically import each JSON file without an aggregate JSON asset.\n */\nimport { AUTOMATION_CATALOG_ENTRIES } from \"./catalog-index.js\";\nimport interfaceManifest from \"./interface.json\" with { type: \"json\" };\n\nconst clone = (value) => JSON.parse(JSON.stringify(value));\nconst AUTOMATIONS = AUTOMATION_CATALOG_ENTRIES;\nconst AUTOMATION_BY_ID = new Map(AUTOMATIONS.map((entry) => [entry.id, entry]));\n\nexport const listAutomationCatalog = () => clone(AUTOMATIONS);\n\nexport const getAutomationCatalogEntry = (id) => {\n const entry = AUTOMATION_BY_ID.get(id);\n return entry ? clone(entry) : undefined;\n};\n\nexport const AUTOMATION_CATALOG = clone(AUTOMATIONS);\n\n/**\n * The production Automation interface manifest: the domain-level facts of the\n * interface, hand-authored in `automations/interface.json`.\n */\nexport const AUTOMATION_INTERFACE = clone(interfaceManifest);\n\nexport default AUTOMATION_CATALOG;\n"],"x_google_ignoreList":[0],"mappings":"iRAUM,EAAS,GAAU,KAAK,MAAM,KAAK,UAAU,CAAK,CAAC,EACnD,EAAcA,EAAAA,2BACd,EAAmB,IAAI,IAAI,EAAY,IAAK,GAAU,CAAC,EAAM,GAAI,CAAK,CAAC,CAAC,EAEjE,MAA8B,EAAM,CAAW,EAE/C,EAA6B,GAAO,CAC/C,IAAM,EAAQ,EAAiB,IAAI,CAAE,EACrC,OAAO,EAAQ,EAAM,CAAK,EAAI,IAAA,EAChC,EAEa,EAAqB,EAAM,CAAW,EAMtC,EAAuB,EAAMC,EAAAA,OAAiB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { __exportAll as e } from "../../../../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { AUTOMATION_CATALOG_ENTRIES as t } from "./catalog-index.js";
|
|
3
|
+
import n from "./interface.js";
|
|
4
|
+
//#region node_modules/@openhands/extensions/automations/index.js
|
|
5
|
+
var r = /* @__PURE__ */ e({
|
|
6
|
+
AUTOMATION_CATALOG: () => l,
|
|
7
|
+
AUTOMATION_INTERFACE: () => u,
|
|
8
|
+
default: () => l,
|
|
9
|
+
getAutomationCatalogEntry: () => c,
|
|
10
|
+
listAutomationCatalog: () => s
|
|
11
|
+
}), i = (e) => JSON.parse(JSON.stringify(e)), a = t, o = new Map(a.map((e) => [e.id, e])), s = () => i(a), c = (e) => {
|
|
12
|
+
let t = o.get(e);
|
|
13
|
+
return t ? i(t) : void 0;
|
|
14
|
+
}, l = i(a), u = i(n);
|
|
15
|
+
//#endregion
|
|
16
|
+
export { r as automations_exports, l as default };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["interfaceManifest"],"sources":["../../../../../node_modules/@openhands/extensions/automations/index.js"],"sourcesContent":["/**\n * Runtime automation catalog.\n *\n * The source of truth is the hand-authored `automations/catalog/<id>/manifest.json`\n * directory. `catalog-index.js` is generated from that directory so the JS\n * package can statically import each JSON file without an aggregate JSON asset.\n */\nimport { AUTOMATION_CATALOG_ENTRIES } from \"./catalog-index.js\";\nimport interfaceManifest from \"./interface.json\" with { type: \"json\" };\n\nconst clone = (value) => JSON.parse(JSON.stringify(value));\nconst AUTOMATIONS = AUTOMATION_CATALOG_ENTRIES;\nconst AUTOMATION_BY_ID = new Map(AUTOMATIONS.map((entry) => [entry.id, entry]));\n\nexport const listAutomationCatalog = () => clone(AUTOMATIONS);\n\nexport const getAutomationCatalogEntry = (id) => {\n const entry = AUTOMATION_BY_ID.get(id);\n return entry ? clone(entry) : undefined;\n};\n\nexport const AUTOMATION_CATALOG = clone(AUTOMATIONS);\n\n/**\n * The production Automation interface manifest: the domain-level facts of the\n * interface, hand-authored in `automations/interface.json`.\n */\nexport const AUTOMATION_INTERFACE = clone(interfaceManifest);\n\nexport default AUTOMATION_CATALOG;\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;IAUM,KAAS,MAAU,KAAK,MAAM,KAAK,UAAU,CAAK,CAAC,GACnD,IAAc,GACd,IAAmB,IAAI,IAAI,EAAY,KAAK,MAAU,CAAC,EAAM,IAAI,CAAK,CAAC,CAAC,GAEjE,UAA8B,EAAM,CAAW,GAE/C,KAA6B,MAAO;CAC/C,IAAM,IAAQ,EAAiB,IAAI,CAAE;CACrC,OAAO,IAAQ,EAAM,CAAK,IAAI,KAAA;AAChC,GAEa,IAAqB,EAAM,CAAW,GAMtC,IAAuB,EAAMA,CAAiB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");var e={version:`1.0`,routes:{list:`/automations`,setup:`/automations/new/:automationId`,detail:`/automations/:automationId`},navigation:{sidebar:{label:`Automate`},commandMenu:{title:`Automations`,description:`Review scheduled and webhook automations.`,keywords:`automate cron schedule webhook jobs`}},pages:{list:{title:`Automations`,subtitle:`View active and inactive automations, search by metadata, and inspect read-only details.`},detail:{backLabel:`Back to Automations`},edit:{title:`Edit automation`}},docsUrl:`https://docs.openhands.dev/openhands/usage/automations/overview`,attributes:{name:{type:`text`,label:`Name`,required:!0},prompt:{type:`textarea`,label:`Prompt`,help:`Edits apply to future runs only.`,required:!1},model:{type:`llm-profile`,label:`LLM profile`,required:!1},timeout:{type:`number`,label:`Timeout (seconds)`,help:`Maximum time a single run may take. Leave empty for the default of 600 seconds (10 minutes); maximum 1800 seconds (30 minutes).`,required:!1,constraints:{min:1,max:1800}},schedule:{type:`schedule`,label:`Frequency`,required:!1}},importExport:{fileKind:`automation`,fileVersion:1,filenameSuffix:`.automation.json`,importDefaults:{repoProvider:`github`,placeholderEventSource:`agent-canvas-import`}},endpoints:{list:`/v1`,detail:`/v1/{id}`,dispatch:`/v1/{id}/dispatch`,runs:`/v1/{id}/runs`,tarball:`/v1/{id}/tarball`,health:`/health`,capabilities:`/v1/capabilities`,validate:`/v1/validate`,createPrompt:`/v1/preset/prompt`,createPlugin:`/v1/preset/plugin`},featuredAutomationIds:[`github-pr-reviewer`,`github-repo-monitor`,`slack-channel-monitor`],responderIntegrationIds:[`github`,`slack`]};exports.default=e;
|
|
2
|
+
//# sourceMappingURL=interface.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.cjs","names":[],"sources":["../../../../../node_modules/@openhands/extensions/automations/interface.json"],"sourcesContent":["{\n \"version\": \"1.0\",\n \"routes\": {\n \"list\": \"/automations\",\n \"setup\": \"/automations/new/:automationId\",\n \"detail\": \"/automations/:automationId\"\n },\n \"navigation\": {\n \"sidebar\": { \"label\": \"Automate\" },\n \"commandMenu\": {\n \"title\": \"Automations\",\n \"description\": \"Review scheduled and webhook automations.\",\n \"keywords\": \"automate cron schedule webhook jobs\"\n }\n },\n \"pages\": {\n \"list\": {\n \"title\": \"Automations\",\n \"subtitle\": \"View active and inactive automations, search by metadata, and inspect read-only details.\"\n },\n \"detail\": { \"backLabel\": \"Back to Automations\" },\n \"edit\": { \"title\": \"Edit automation\" }\n },\n \"docsUrl\": \"https://docs.openhands.dev/openhands/usage/automations/overview\",\n \"attributes\": {\n \"name\": { \"type\": \"text\", \"label\": \"Name\", \"required\": true },\n \"prompt\": {\n \"type\": \"textarea\",\n \"label\": \"Prompt\",\n \"help\": \"Edits apply to future runs only.\",\n \"required\": false\n },\n \"model\": { \"type\": \"llm-profile\", \"label\": \"LLM profile\", \"required\": false },\n \"timeout\": {\n \"type\": \"number\",\n \"label\": \"Timeout (seconds)\",\n \"help\": \"Maximum time a single run may take. Leave empty for the default of 600 seconds (10 minutes); maximum 1800 seconds (30 minutes).\",\n \"required\": false,\n \"constraints\": { \"min\": 1, \"max\": 1800 }\n },\n \"schedule\": { \"type\": \"schedule\", \"label\": \"Frequency\", \"required\": false }\n },\n \"importExport\": {\n \"fileKind\": \"automation\",\n \"fileVersion\": 1,\n \"filenameSuffix\": \".automation.json\",\n \"importDefaults\": {\n \"repoProvider\": \"github\",\n \"placeholderEventSource\": \"agent-canvas-import\"\n }\n },\n \"endpoints\": {\n \"list\": \"/v1\",\n \"detail\": \"/v1/{id}\",\n \"dispatch\": \"/v1/{id}/dispatch\",\n \"runs\": \"/v1/{id}/runs\",\n \"tarball\": \"/v1/{id}/tarball\",\n \"health\": \"/health\",\n \"capabilities\": \"/v1/capabilities\",\n \"validate\": \"/v1/validate\",\n \"createPrompt\": \"/v1/preset/prompt\",\n \"createPlugin\": \"/v1/preset/plugin\"\n },\n \"featuredAutomationIds\": [\n \"github-pr-reviewer\",\n \"github-repo-monitor\",\n \"slack-channel-monitor\"\n ],\n \"responderIntegrationIds\": [\"github\", \"slack\"]\n}\n"],"x_google_ignoreList":[0],"mappings":""}
|