@openhands/agent-canvas 1.11.0 → 1.12.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/{active-backend-context-BBvP-bI2.js → active-backend-context-B_bg5h9O.js} +1 -1
- package/build/assets/{agent-context-settings-Bno1nwPL.js → agent-context-settings-CzWS1DgR.js} +1 -1
- package/build/assets/{agent-profiles-settings-DqoS7RL3.js → agent-profiles-settings-hd2cAIZM.js} +1 -1
- package/build/assets/{agent-server-conversation-service.api-0RztSdJJ.js → agent-server-conversation-service.api-BheU4HX3.js} +3 -3
- package/build/assets/{agent-settings-h8hQz-IU.js → agent-settings-D2J1dKVd.js} +1 -1
- package/build/assets/agent-settings-D_SVrWhI.js +1 -0
- package/build/assets/{api-key-entry-screen-Qsb83VX1.js → api-key-entry-screen-D70oJj2c.js} +1 -1
- package/build/assets/app-settings-D0OKHB3M.js +1 -0
- package/build/assets/{automation-detail-7LkL91j9.js → automation-detail-C0SxWTnQ.js} +1 -1
- package/build/assets/{automation-export-U2QNyNy6.js → automation-export-BjQa_fT6.js} +1 -1
- package/build/assets/{automation-setup-route-Bel9_Lue.js → automation-setup-route-BzCNpljP.js} +1 -1
- package/build/assets/{automation-templates-CRLDssaI.js → automation-templates-D9gs6ihu.js} +1 -1
- package/build/assets/{automations-list-B2iV3ZKW.js → automations-list-dZg8zOCl.js} +1 -1
- package/build/assets/backend-form-modal-HwclKrUS.js +1 -0
- package/build/assets/{backend-synced-settings-badge-DB4717Iu.js → backend-synced-settings-badge-YI3k09Wr.js} +1 -1
- package/build/assets/{badge-yR53enbU.js → badge-Dpn3-LTV.js} +1 -1
- package/build/assets/{browser-tab-A94o33Vn.js → browser-tab-4CPdj3J3.js} +1 -1
- package/build/assets/{cloud-funnel-analytics-CBQdPZl_.js → cloud-funnel-analytics-CcSez21r.js} +1 -1
- package/build/assets/{command-menu-PsRXVBz2.js → command-menu-BKOLj-TC.js} +1 -1
- package/build/assets/{condenser-settings-w7L3EFvm.js → condenser-settings-DLQogFnB.js} +1 -1
- package/build/assets/{conversation-BUzBZAc-.js → conversation-Cmyw9bFh.js} +3 -3
- package/build/assets/conversation-CvoGZ5vC.js +1 -0
- package/build/assets/conversation-panel-CvoGZ5vC.js +1 -0
- package/build/assets/{conversation-state-store-Bs8gA263.js → conversation-state-store-CtgILxWF.js} +1 -1
- package/build/assets/{entry.client-DzbDyLkV.js → entry.client-EBn3ZtNP.js} +1 -1
- package/build/assets/{extensions-hub-DOmHPGTA.js → extensions-hub-BZ3HYztk.js} +1 -1
- package/build/assets/{extensions-navigation-6zU5M1pa.js → extensions-navigation-Bnx32WAb.js} +1 -1
- package/build/assets/{files-tab-BzofBmF4.js → files-tab-D5zuU5TY.js} +1 -1
- package/build/assets/format-model-name-BN_rx1Y3.js +1 -0
- package/build/assets/{format-relative-time-DGPQlPx0.js → format-relative-time-BerVamGl.js} +1 -1
- package/build/assets/{git-provider-icon-BLMlwy02.js → git-provider-icon-zuKz2cwo.js} +1 -1
- package/build/assets/{git-repo-dropdown-B7RvO70z.js → git-repo-dropdown-B5VnMftu.js} +1 -1
- package/build/assets/git-repo-dropdown-Bo7ciSNX.js +1 -0
- package/build/assets/home-DqyeeFA_.js +1 -0
- package/build/assets/{home-DEZaZqYv.js → home-Y0aDou-a.js} +1 -1
- package/build/assets/{home-store-D7CjMN_-.js → home-store-Cubdq0uP.js} +1 -1
- package/build/assets/index-home-DqyeeFA_.js +1 -0
- package/build/assets/info-C9lpK5pw.js +1 -0
- package/build/assets/{install-server-modal-BTwK5lbi.js → install-server-modal-DW6dSyGr.js} +1 -1
- package/build/assets/{kebab-menu-item-content-C4CkeiJO.js → kebab-menu-item-content-CKydZrbH.js} +1 -1
- package/build/assets/{launch-DVlx4v9o.js → launch-c4GEP8oo.js} +1 -1
- package/build/assets/llm-not-configured-banner-DCE_0B4I.js +27 -0
- package/build/assets/llm-settings-8eWBF3Ij.js +1 -0
- package/build/assets/llm-settings-D9ko42Pi.js +1 -0
- package/build/assets/{llm-subscription-service-7eVfDIE1.js → llm-subscription-service-B3K-97lP.js} +1 -1
- package/build/assets/{manage-backends-modal-HNWKLYhq.js → manage-backends-modal-DTCME_Pu.js} +1 -1
- package/build/assets/manifest-e1c3bc3b.js +1 -0
- package/build/assets/{manifest-subpage-layout-D-m-h8_t.js → manifest-subpage-layout-Ds7G5GZ8.js} +1 -1
- package/build/assets/{markdown-renderer-BiiiIznl.js → markdown-renderer-DzvgdZey.js} +1 -1
- package/build/assets/{mcp-gLgPP7AS.js → mcp-Da7wFU7A.js} +1 -1
- package/build/assets/{mcp-marketplace-utils-Dr_HG_ol.js → mcp-marketplace-utils-DSLou4n7.js} +1 -1
- package/build/assets/messages-B2l0qLVk.js +40 -0
- package/build/assets/{npm-DRzJF5Zn.js → npm-Cswluf6-.js} +1 -1
- package/build/assets/{onboarding-DSr8hOpk.js → onboarding-BKbTYlW1.js} +1 -1
- package/build/assets/{onboarding-modal-C6Euf7N4.js → onboarding-modal-DrrGlEQq.js} +1 -1
- package/build/assets/{organization-service.api-C4GYWwj9.js → organization-service.api-DK8csGvK.js} +1 -1
- package/build/assets/{planner-tab-CZcguxTK.js → planner-tab-D-mZ1I7n.js} +1 -1
- package/build/assets/{plugins-management-service-BmDzOQsd.js → plugins-management-service-CywqyfLK.js} +1 -1
- package/build/assets/{profiles-service.api-CoLTwjc1.js → profiles-service.api-vcE_jJCe.js} +1 -1
- package/build/assets/{providers-tBzTpz1w.js → providers-CdrPPm0z.js} +1 -1
- package/build/assets/{proxy-DCI9S-LA.js → proxy-b4aqL4SX.js} +1 -1
- package/build/assets/{recommended-automations-launcher-BbJAJVED.js → recommended-automations-launcher-DIYgUdMm.js} +1 -1
- package/build/assets/root-CBBi6IAe.js +2 -0
- package/build/assets/root-CRK9fOFd.css +1 -0
- package/build/assets/root-layout-BFN2rCOy.js +2 -0
- package/build/assets/{schema-field-zhsVDllR.js → schema-field-Z-rMg9ti.js} +1 -1
- package/build/assets/{sdk-section-page-CS4GWn0y.js → sdk-section-page-m_cjygxR.js} +1 -1
- package/build/assets/{secrets-service-DjgGduXk.js → secrets-service-BHF4fxML.js} +1 -1
- package/build/assets/{secrets-settings-f-qahfbi.js → secrets-settings-aBGXtQhX.js} +1 -1
- package/build/assets/{settings-DQd0xLEw.js → settings-CZPGNens.js} +1 -1
- package/build/assets/{settings-index-BVwy9JEp.js → settings-index-Dtlegd6s.js} +1 -1
- package/build/assets/{settings-modal-D6D5ngET.js → settings-modal-CalzJP2l.js} +1 -1
- package/build/assets/{settings-service.api-DZp7E7A9.js → settings-service.api-DfPYaxZJ.js} +1 -1
- package/build/assets/{shared-conversation-DIxZjElr.js → shared-conversation-BIAcuORk.js} +1 -1
- package/build/assets/{sidebar-mobile-menu-toggle-OoZBHxaT.js → sidebar-mobile-menu-toggle-C6HpQ55l.js} +1 -1
- package/build/assets/{skill-scope-B1Per5XI.js → skill-scope-Dt1V5X2p.js} +1 -1
- package/build/assets/{skills-plugins-B3AO6sMz.js → skills-plugins-B-H0cCOP.js} +1 -1
- package/build/assets/{skills-settings-DmmgJ6CT.js → skills-settings-DthdIDUb.js} +1 -1
- package/build/assets/{task-list-tab-C19Q_JNf.js → task-list-tab-BTde81Iu.js} +1 -1
- package/build/assets/{terminal-CbuMRYal.js → terminal-DRrJo-cR.js} +1 -1
- package/build/assets/{use-acp-credential-form-DJmmJKMo.js → use-acp-credential-form-DGyo0QvL.js} +1 -1
- package/build/assets/{use-activate-agent-profile-CeFfYwu_.js → use-activate-agent-profile-DrPzIKJF.js} +1 -1
- package/build/assets/{use-agent-profiles-BHLkLbRR.js → use-agent-profiles-B37XWDLq.js} +1 -1
- package/build/assets/{use-can-manage-org-profiles-Bu4y8gSx.js → use-can-manage-org-profiles-BzE28H3x.js} +1 -1
- package/build/assets/{use-cloud-current-user-id-QD9x3ySO.js → use-cloud-current-user-id-U6HPjy50.js} +1 -1
- package/build/assets/{use-config-CPwqciXN.js → use-config-DapX3pjC.js} +1 -1
- package/build/assets/{use-create-conversation-DWaSVUOB.js → use-create-conversation-CRf1dCm5.js} +1 -1
- package/build/assets/{use-create-secret-BsOfOLvg.js → use-create-secret-DcpT3RPw.js} +1 -1
- package/build/assets/{use-llm-profiles-CU8ah1pz.js → use-llm-profiles-CHxqoHiN.js} +1 -1
- package/build/assets/{use-manifest-capabilities-DBYPjyV6.js → use-manifest-capabilities-zihHDbMW.js} +1 -1
- package/build/assets/{use-onboarding-completion-CtNJxkXG.js → use-onboarding-completion-6kWOW3ul.js} +1 -1
- package/build/assets/{use-plugins-marketplace-ZEA-gyM9.js → use-plugins-marketplace-CqkR8kLE.js} +1 -1
- package/build/assets/{use-save-agent-profile-DgI_Uz9a.js → use-save-agent-profile-CH9_EXQG.js} +1 -1
- package/build/assets/{use-save-settings-pSjRhD_m.js → use-save-settings-DIEurJ3D.js} +1 -1
- package/build/assets/{use-settings-BHWsOcIG.js → use-settings-BmLzQjnC.js} +1 -1
- package/build/assets/{use-settings-nav-items-CQgkxUbV.js → use-settings-nav-items-DV9qgeu7.js} +1 -1
- package/build/assets/{use-tracking-CGCsBWhg.js → use-tracking-salbPJxT.js} +1 -1
- package/build/assets/{use-user-conversation-DRfEU8x0.js → use-user-conversation-Dt-W6uNw.js} +1 -1
- package/build/assets/{verification-settings-BItwt998.js → verification-settings-oi54wEc1.js} +1 -1
- package/build/index.html +4 -4
- package/config/defaults.json +1 -1
- package/dist/components/features/chat/components/chat-input-llm-profile-picker.cjs +1 -1
- package/dist/components/features/chat/components/chat-input-llm-profile-picker.cjs.map +1 -1
- package/dist/components/features/chat/components/chat-input-llm-profile-picker.js +61 -60
- package/dist/components/features/chat/components/chat-input-llm-profile-picker.js.map +1 -1
- package/dist/components/features/chat/model-messages.cjs +1 -1
- package/dist/components/features/chat/model-messages.cjs.map +1 -1
- package/dist/components/features/chat/model-messages.js +26 -25
- package/dist/components/features/chat/model-messages.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.js +4 -4
- package/dist/components/features/settings/llm-profiles/profile-row.cjs +1 -1
- package/dist/components/features/settings/llm-profiles/profile-row.js +1 -0
- package/dist/components/shared/modals/settings/model-selector.cjs +1 -1
- package/dist/components/shared/modals/settings/model-selector.cjs.map +1 -1
- package/dist/components/shared/modals/settings/model-selector.js +154 -98
- package/dist/components/shared/modals/settings/model-selector.js.map +1 -1
- package/dist/config/defaults.cjs +1 -1
- package/dist/config/defaults.cjs.map +1 -1
- package/dist/config/defaults.js +1 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/hooks/chat/use-slash-command.cjs +1 -1
- package/dist/hooks/chat/use-slash-command.cjs.map +1 -1
- package/dist/hooks/chat/use-slash-command.js +61 -60
- package/dist/hooks/chat/use-slash-command.js.map +1 -1
- package/dist/package.cjs +1 -1
- package/dist/package.cjs.map +1 -1
- package/dist/package.js +1 -1
- package/dist/package.js.map +1 -1
- package/dist/routes/app-settings.cjs +1 -1
- package/dist/routes/app-settings.cjs.map +1 -1
- package/dist/routes/app-settings.js +94 -93
- package/dist/routes/app-settings.js.map +1 -1
- package/dist/routes/llm-settings.cjs +1 -1
- package/dist/routes/llm-settings.cjs.map +1 -1
- package/dist/routes/llm-settings.js +131 -119
- package/dist/routes/llm-settings.js.map +1 -1
- package/dist/utils/format-model-name.cjs +1 -1
- package/dist/utils/format-model-name.cjs.map +1 -1
- package/dist/utils/format-model-name.d.ts +11 -0
- package/dist/utils/format-model-name.js +11 -3
- package/dist/utils/format-model-name.js.map +1 -1
- package/package.json +1 -1
- package/build/assets/agent-settings-BJHryp65.js +0 -1
- package/build/assets/app-settings-r1RUbgGi.js +0 -1
- package/build/assets/backend-form-modal-OroTqnAv.js +0 -1
- package/build/assets/conversation-panel-pzAKsSDb.js +0 -1
- package/build/assets/conversation-pzAKsSDb.js +0 -1
- package/build/assets/git-repo-dropdown-B_PTq4ol.js +0 -1
- package/build/assets/home-r89Vj2td.js +0 -1
- package/build/assets/index-home-r89Vj2td.js +0 -1
- package/build/assets/llm-not-configured-banner-CwKu8C6g.js +0 -27
- package/build/assets/llm-settings-BJotLQND.js +0 -1
- package/build/assets/llm-settings-CDM-5H2A.js +0 -1
- package/build/assets/manifest-2a36a8f8.js +0 -1
- package/build/assets/messages-D1cbVhRK.js +0 -40
- package/build/assets/root-BfM_kC_d.css +0 -1
- package/build/assets/root-gstBEjty.js +0 -2
- package/build/assets/root-layout-BIAFLP9p.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{B as r,U as i,c as a}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~lq5hicxx-cHFhpUBq.js";import{t as o}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{t as s}from"./useInfiniteQuery-DbCv0Jzd.js";import{s as c}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t as l}from"./useQuery-BCnzy4LX.js";import{$ as u}from"./active-backend-context-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{B as r,U as i,c as a}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~lq5hicxx-cHFhpUBq.js";import{t as o}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{t as s}from"./useInfiniteQuery-DbCv0Jzd.js";import{s as c}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t as l}from"./useQuery-BCnzy4LX.js";import{$ as u}from"./active-backend-context-B_bg5h9O.js";import{z as d}from"./utils-DPQfkd-7.js";import{t as f}from"./messages-B2l0qLVk.js";import{t as p}from"./loading-spinner-CN3riY7k.js";import{t as m}from"./openhands-logo-BS-Epajy.js";import{S as h,u as g}from"./markdown-renderer-DzvgdZey.js";var _=e(t(),1),v=e=>l({queryKey:[`shared-conversation`,e],queryFn:()=>{if(!e)throw Error(`Conversation ID is required`);return new c(u()).getSharedConversation(e)},enabled:!!e,retry:!1}),y=e=>s({queryKey:[`shared-conversation-events`,e],queryFn:({pageParam:t})=>{if(!e)throw Error(`Conversation ID is required`);return new c(u()).searchSharedEvents({conversationId:e,limit:100,pageId:t})},initialPageParam:void 0,getNextPageParam:e=>e.next_page_id??void 0,enabled:!!e,retry:!1}),b=({hasNextPage:e,isFetchingNextPage:t,fetchNextPage:n,threshold:r=100})=>{let i=(0,_.useRef)(null),a=(0,_.useCallback)(()=>{if(!i.current||t||!e)return;let{scrollTop:a,scrollHeight:o,clientHeight:s}=i.current;a+s>=o-r&&n()},[e,t,n,r]);return(0,_.useEffect)(()=>{let e=i.current;if(e)return e.addEventListener(`scroll`,a),()=>{e.removeEventListener(`scroll`,a)}},[a]),i},x=n(),S=i(function(){let{t:e}=o(`openhands`),{conversationId:t}=r(),{data:n,isLoading:i,error:s}=v(t),{data:c,isLoading:l,error:u,hasNextPage:S,fetchNextPage:C,isFetchingNextPage:w}=y(t),T=i||l,E=s||u,D=_.useMemo(()=>c?.pages?c.pages.flatMap(e=>e.items):[],[c?.pages]),O=_.useMemo(()=>D.reduce((e,t)=>h(t,e),[]).filter(g),[D]),k=b({hasNextPage:!!S,isFetchingNextPage:w,fetchNextPage:C});return T?(0,x.jsx)(`div`,{className:`flex items-center justify-center h-screen bg-base`,children:(0,x.jsx)(p,{size:`large`})}):E||!n?(0,x.jsx)(`div`,{className:`flex items-center justify-center h-screen bg-base`,children:(0,x.jsx)(`div`,{className:`text-white`,children:e(d.CONVERSATION$NOT_FOUND)})}):(0,x.jsxs)(`div`,{className:`h-screen bg-base text-white flex flex-col`,children:[(0,x.jsx)(`div`,{className:`border-b border-[var(--oh-border-subtle)] p-4 flex-shrink-0`,children:(0,x.jsxs)(`div`,{className:`max-w-4xl mx-auto flex items-start gap-4`,children:[(0,x.jsx)(a,{to:`/conversations`,className:`flex-shrink-0`,"aria-label":e(d.BRANDING$OPENHANDS_LOGO),children:(0,x.jsx)(m,{width:46,height:30})}),(0,x.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,x.jsx)(`h1`,{className:`text-xl font-medium mb-2`,children:n?.title||e(d.CONVERSATION$SHARED_CONVERSATION)}),n?.selected_branch&&(0,x.jsxs)(`div`,{className:`text-sm text-[var(--oh-muted)]`,children:[e(d.CONVERSATION$BRANCH),`: `,n.selected_branch]}),n?.selected_repository&&(0,x.jsxs)(`div`,{className:`text-sm text-[var(--oh-muted)]`,children:[e(d.CONVERSATION$REPOSITORY),`:`,` `,n.selected_repository]}),n?.llm_model&&(0,x.jsxs)(`div`,{className:`text-sm text-[var(--oh-muted)]`,children:[e(d.LLM$MODEL),`: `,n.llm_model]})]})]})}),(0,x.jsx)(`div`,{ref:k,className:`flex-1 overflow-y-auto custom-scrollbar-always px-4 pt-4 gap-2`,children:(0,x.jsxs)(`div`,{className:`max-w-4xl mx-auto p-4 border border-[var(--oh-border-subtle)] rounded`,children:[O.length>0?(0,x.jsx)(f,{messages:O,allEvents:D}):(0,x.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,x.jsx)(`div`,{className:`text-center text-[var(--oh-muted)] py-8`,children:e(d.CONVERSATION$NO_HISTORY_AVAILABLE)})}),w&&(0,x.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,x.jsx)(p,{size:`small`})})]})})]})});export{S as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{n as r}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js";import{t as i}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{t as a}from"./useMutation-ChpkYxI5.js";import{t as o}from"./vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-U-xdsAEx.js";import{t as s,z as c}from"./utils-DPQfkd-7.js";import{t as l}from"./modal-backdrop-BSzNhM4r.js";import{n as u}from"./modal-body-duRaxj_K.js";import{n as d,r as f}from"./base-modal-3NmIOKDm.js";import{_ as p,u as m}from"./form-control-classes-DLN3Qgub.js";import{t as h}from"./brand-button-CJcwjnfb.js";import{t as g}from"./agent-server-conversation-service.api-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{n as r}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js";import{t as i}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{t as a}from"./useMutation-ChpkYxI5.js";import{t as o}from"./vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-U-xdsAEx.js";import{t as s,z as c}from"./utils-DPQfkd-7.js";import{t as l}from"./modal-backdrop-BSzNhM4r.js";import{n as u}from"./modal-body-duRaxj_K.js";import{n as d,r as f}from"./base-modal-3NmIOKDm.js";import{_ as p,u as m}from"./form-control-classes-DLN3Qgub.js";import{t as h}from"./brand-button-CJcwjnfb.js";import{t as g}from"./agent-server-conversation-service.api-BheU4HX3.js";var _=e(t(),1),v=n();function y({onConfirm:e,onCancel:t,conversationTitle:n,title:r,description:a}){let{t:s}=i(`openhands`),p;return p=a??(n?(0,v.jsx)(o,{ns:`openhands`,i18nKey:c.CONVERSATION$DELETE_WARNING_WITH_TITLE,values:{title:n},components:{title:(0,v.jsx)(`span`,{className:`text-white`})}}):s(c.CONVERSATION$DELETE_WARNING)),(0,v.jsx)(l,{onClose:t,children:(0,v.jsxs)(u,{className:`items-start border border-[var(--oh-border)]`,children:[(0,v.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,v.jsx)(f,{title:r??s(c.CONVERSATION$CONFIRM_DELETE)}),(0,v.jsx)(d,{children:p})]}),(0,v.jsxs)(`div`,{className:`flex justify-end gap-2 w-full`,onClick:e=>e.stopPropagation(),children:[(0,v.jsx)(h,{type:`button`,variant:`secondary`,onClick:t,"data-testid":`cancel-button`,children:s(c.BUTTON$CANCEL)}),(0,v.jsx)(h,{type:`button`,variant:`primary`,onClick:e,"data-testid":`confirm-button`,children:s(c.ACTION$CONFIRM_DELETE)})]})]})})}function b({onConfirm:e,onCancel:t}){let{t:n}=i(`openhands`);return(0,v.jsx)(l,{onClose:t,children:(0,v.jsxs)(u,{className:`items-start border border-[var(--oh-border)]`,children:[(0,v.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,v.jsx)(f,{title:n(c.CONVERSATION$CONFIRM_CLOSE_CONVERSATION)}),(0,v.jsx)(d,{description:n(c.CONVERSATION$CLOSE_CONVERSATION_WARNING)})]}),(0,v.jsxs)(`div`,{className:`flex justify-end gap-2 w-full`,onClick:e=>e.stopPropagation(),children:[(0,v.jsx)(h,{type:`button`,variant:`secondary`,onClick:t,"data-testid":`cancel-button`,children:n(c.BUTTON$CANCEL)}),(0,v.jsx)(h,{type:`button`,variant:`primary`,onClick:e,"data-testid":`confirm-button`,children:n(c.ACTION$CONFIRM_CLOSE)})]})]})})}var x=()=>{let e=r();return a({mutationFn:e=>g.updateConversationTitle(e.conversationId,e.newTitle),onMutate:async t=>{await e.cancelQueries({queryKey:[`user`,`conversations`]});let n=e.getQueryData([`user`,`conversations`]);return e.setQueryData([`user`,`conversations`],e=>e?.map(e=>e.id===t.conversationId?{...e,title:t.newTitle}:e)),e.setQueryData([`user`,`conversation`,t.conversationId],e=>e&&{...e,title:t.newTitle}),{previousConversations:n}},onError:(t,n,r)=>{r?.previousConversations&&e.setQueryData([`user`,`conversations`],r.previousConversations)},onSettled:(t,n,r)=>{e.invalidateQueries({queryKey:[`user`,`conversations`]}),e.invalidateQueries({queryKey:[`user`,`conversation`,r.conversationId]})}})};function S(e){if(!e)return null;try{let t=new URL(e);return t.hostname===`localhost`&&window.location.hostname!==`localhost`?(t.hostname=window.location.hostname,t.toString()):e}catch{return e}}var C=e=>(0,v.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,v.jsx)(`path`,{d:`M12 2C12.5523 2 13 2.44772 13 3V13.5858L15.2929 11.2929C15.6834 10.9024 16.3166 10.9024 16.7071 11.2929C17.0976 11.6834 17.0976 12.3166 16.7071 12.7071L12.7071 16.7071C12.3166 17.0976 11.6834 17.0976 11.2929 16.7071L7.29289 12.7071C6.90237 12.3166 6.90237 11.6834 7.29289 11.2929C7.68342 10.9024 8.31658 10.9024 8.70711 11.2929L11 13.5858V3C11 2.44772 11.4477 2 12 2ZM5 17C5.55228 17 6 17.4477 6 18V20H18V18C18 17.4477 18.4477 17 19 17C19.5523 17 20 17.4477 20 18V20C20 21.1046 19.1046 22 18 22H6C4.89543 22 4 21.1046 4 20V18C4 17.4477 4.44772 17 5 17Z`,fill:`currentColor`})}),w=e=>(0,v.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,v.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M21 7.5V9H3V7.5H21ZM3 10.5H21V18H3V10.5ZM21 6H3C2.60218 6 2.22064 6.15804 1.93934 6.43934C1.65804 6.72064 1.5 7.10218 1.5 7.5V18C1.5 18.3978 1.65804 18.7794 1.93934 19.0607C2.22064 19.342 2.60218 19.5 3 19.5H21C21.3978 19.5 21.7794 19.342 22.0607 19.0607C22.342 18.7794 22.5 18.3978 22.5 18V7.5C22.5 7.10218 22.342 6.72064 22.0607 6.43934C21.7794 6.15804 21.3978 6 21 6ZM16.5 15H19.5V16.5H16.5V15Z`,fill:`currentColor`})}),T=_.createContext(null);function E({children:e}){let[t,n]=_.useState(!1),r=_.useCallback(()=>n(!0),[]),i=_.useCallback(()=>n(!1),[]),a=_.useCallback(()=>n(e=>!e),[]),o=_.useMemo(()=>({isOpen:t,open:r,close:i,toggle:a}),[t,r,i,a]);return(0,v.jsx)(T.Provider,{value:o,children:e})}function D(){let e=_.useContext(T);if(!e)throw Error(`useSidebarMobileNav must be used within SidebarMobileNavProvider`);return e}var O=s(`inline-flex shrink-0 cursor-pointer items-center justify-center rounded-md p-1`,`text-[var(--oh-muted)]`,p,m),k=`size-5 shrink-0`,A=e=>(0,v.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,v.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M10 5.5H18C18.2761 5.5 18.5 5.72386 18.5 6V18C18.5 18.2761 18.2761 18.5 18 18.5H10L10 5.5ZM8.5 5.5H6C5.72386 5.5 5.5 5.72386 5.5 6V18C5.5 18.2761 5.72386 18.5 6 18.5H8.5L8.5 5.5ZM18 4H6C4.89543 4 4 4.89543 4 6V18C4 19.1046 4.89543 20 6 20H18C19.1046 20 20 19.1046 20 18V6C20 4.89543 19.1046 4 18 4Z`,fill:`currentColor`})});function j(){let{t:e}=i(`openhands`),{isOpen:t,toggle:n}=D();return(0,v.jsx)(`button`,{type:`button`,"data-testid":`sidebar-mobile-menu-toggle`,onClick:n,"aria-expanded":t,"aria-label":e(t?c.SIDEBAR$CLOSE_MENU:c.SIDEBAR$OPEN_MENU),className:O,children:(0,v.jsx)(A,{className:k,"aria-hidden":!0})})}export{E as a,C as c,b as d,y as f,k as i,S as l,A as n,D as o,O as r,w as s,j as t,x as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t}from"./useQuery-BCnzy4LX.js";import{$ as n,ct as r,yt as i}from"./active-backend-context-
|
|
1
|
+
import{u as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t}from"./useQuery-BCnzy4LX.js";import{$ as n,ct as r,yt as i}from"./active-backend-context-B_bg5h9O.js";import{t as a}from"./proxy-b4aqL4SX.js";import{t as o}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~ht43enc2-C0JXQb_q.js";var s=100;function c(){let e=r().backend;if(e.kind!==`cloud`)throw Error(`Cloud skills call requires a cloud backend.`);return e}async function l(){let e=c(),t=[],n=null;do{let r=new URLSearchParams({limit:String(s)});n&&r.set(`page_id`,n);let i=await a({backend:e,method:`GET`,path:`/api/v1/skills/search?${r.toString()}`});t.push(...i.items??[]),n=i.next_page_id}while(n);return t}function u(e){return{name:e.name,type:`knowledge`,source:`public`,description:e.description,triggers:e.triggers,category:e.category,content:e.content,license:e.license??null,compatibility:e.compatibility??null}}var d=o.map(u),f=class{static async getSkills(t){if(r().backend.kind===`cloud`)return l();let a=[];try{a=(await new e(n()).getSkills({load_public:!1,load_user:!0,load_project:!0,load_org:!1,project_dir:t??i()})).skills??[]}catch{}return[...a,...d]}},p=e=>t({queryKey:[`skills`,e??null],queryFn:()=>f.getSkills(e),staleTime:1e3*60*10,refetchOnWindowFocus:!1}),m=[`project`,`personal`,`public`],h=[`/.agents/skills/`,`/.openhands/skills/`,`/.openhands/microagents/`];function g(e){return e.replace(/\\/g,`/`)}function _(e){let t=g(e).toLowerCase();return t===`public`?!0:t.includes(`public-skills`)||t.includes(`/.openhands/cache/skills/`)}function v(e){let t=g(e);return/^\/Users\/[^/]+\/\.(agents|openhands)\//.test(t)||/^\/home\/[^/]+\/\.(agents|openhands)\//.test(t)?!0:h.some(e=>{let n=t.indexOf(e);if(n===-1)return!1;let r=t.slice(0,n);return/^\/Users\/[^/]+$/.test(r)||/^\/home\/[^/]+$/.test(r)})}function y(e,t){let n=g(e);if(!h.some(e=>n.includes(e))||v(e))return!1;if(t){let e=g(t).replace(/\/$/,``);if(n.startsWith(e))return!0}return!0}function b(e,t){let n=e.source?.trim();if(!n)return e.type===`repo`?`project`:`public`;let r=n.toLowerCase();return _(n)?`public`:r===`user`||r===`global`?`personal`:r===`project`||r===`repo`||r===`sandbox`?`project`:v(n)?`personal`:y(n,t)?`project`:`public`}function x(e,t){let n={project:[],personal:[],public:[]};for(let r of e)n[b(r,t)].push(r);for(let e of m)n[e].sort((e,t)=>e.name.localeCompare(t.name));return n}export{p as i,b as n,x as r,m as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{U as r}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~lq5hicxx-cHFhpUBq.js";import{n as i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js";import{t as a}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{t as o}from"./useMutation-ChpkYxI5.js";import{t as s}from"./useQuery-BCnzy4LX.js";import{At as c,I as l,Pt as u,jt as d,n as f}from"./active-backend-context-BBvP-bI2.js";import{t as p,z as m}from"./utils-DPQfkd-7.js";import{t as h}from"./search-CYaiKHRp.js";import{t as g}from"./x-RYDBg-e2.js";import{t as _}from"./loading-spinner-CN3riY7k.js";import{t as v}from"./modal-backdrop-BSzNhM4r.js";import{n as y}from"./modal-classes-CLEXO6dj.js";import{t as b}from"./brand-button-CJcwjnfb.js";import{n as x}from"./navigation-context-CQZwH_tC.js";import{t as S}from"./modal-close-button-D0aT02hs.js";import{t as C}from"./settings-input-D61Vzp9e.js";import{t as w}from"./plugins-management-service-BmDzOQsd.js";import{a as T,i as E,r as D}from"./extension-module-card-classes-Bo43vY5V.js";import{t as O}from"./settings-switch-Drt-rF5s.js";import{n as k}from"./circle-plus-check-toggle-BVzv5EkZ.js";import{n as A,t as ee}from"./use-plugins-marketplace-ZEA-gyM9.js";import{n as j}from"./extensions-navigation-6zU5M1pa.js";import{t as M}from"./skill-icon-badge-CN41Hy9l.js";import{n as N}from"./settings-like-page-layout-classes-Cw4Yzv_P.js";import{n as P,t as F}from"./highlighted-source-view-CgJfD5VT.js";var I=e(t(),1),L=n();function R({plugin:e,isBusy:t=!1,isDisabled:n=!1,onOpen:r,onInstall:i,onToggle:o}){let{t:s}=a(`openhands`);return(0,L.jsxs)(`div`,{"data-testid":`plugin-card-${e.name}`,role:`button`,tabIndex:0,onClick:r,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),r())},className:p(`flex min-w-0 flex-col gap-3 overflow-hidden p-4`,T,D),children:[(0,L.jsxs)(`header`,{className:`flex items-start justify-between gap-3`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsx)(`h3`,{"data-testid":`plugin-name-${e.name}`,className:`truncate text-sm font-semibold text-white`,children:e.name}),e.source?(0,L.jsx)(`p`,{"data-testid":`plugin-source-${e.name}`,className:`mt-0.5 min-w-0 truncate text-xs text-tertiary-alt`,title:e.source,children:e.source}):null]}),e.installed?(0,L.jsx)(k,{testId:`plugin-toggle-${e.name}`,isSelected:e.enabled,isDisabled:n||t,onToggle:o,disableTooltipKey:m.COMMON$DISABLE}):e.isLocal?(0,L.jsx)(`span`,{"data-testid":`plugin-local-badge-${e.name}`,className:p(E,`flex-shrink-0`),children:s(m.SETTINGS$PLUGINS_FILTER_LOCAL)}):(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-install-${e.name}`,isDisabled:n||t,className:`flex-shrink-0 whitespace-nowrap`,onClick:e=>{e?.stopPropagation(),i()},children:s(t?m.SETTINGS$PLUGINS_INSTALLING:m.SETTINGS$PLUGINS_INSTALL)})]}),e.description?(0,L.jsx)(`p`,{"data-testid":`plugin-description-${e.name}`,className:`line-clamp-2 break-words text-xs leading-relaxed text-tertiary-light`,children:e.description}):null,(e.installed||e.isLocal)&&e.version?(0,L.jsx)(`span`,{"data-testid":`plugin-version-${e.name}`,className:p(E,`self-start`),children:s(m.SETTINGS$SKILLS_VERSION,{version:e.version})}):null]})}var z=[{value:`all`,labelKey:m.SETTINGS$PLUGINS_FILTER_ALL},{value:`installed`,labelKey:m.SETTINGS$PLUGINS_FILTER_INSTALLED},{value:`available`,labelKey:m.SETTINGS$PLUGINS_FILTER_AVAILABLE},{value:`local`,labelKey:m.SETTINGS$PLUGINS_FILTER_LOCAL}];function B({search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r}){let{t:i}=a(`openhands`);return(0,L.jsxs)(`div`,{"data-testid":`plugins-toolbar`,className:`flex items-stretch gap-2`,children:[(0,L.jsxs)(`div`,{className:p(`relative flex flex-1 min-w-0 items-center`,`rounded-lg border border-[var(--oh-border)] bg-base-secondary`,`focus-within:border-white/40 focus-within:ring-1 focus-within:ring-white/20`,`transition-colors`),children:[(0,L.jsx)(h,{className:`ml-3 h-4 w-4 shrink-0 text-tertiary-alt`,"aria-hidden":!0}),(0,L.jsx)(`input`,{"data-testid":`plugins-search-input`,type:`search`,value:e,onChange:e=>t(e.target.value),placeholder:i(m.SETTINGS$PLUGINS_SEARCH_PLACEHOLDER),"aria-label":i(m.SETTINGS$PLUGINS_SEARCH_PLACEHOLDER),className:p(`flex-1 min-w-0 bg-transparent border-0 outline-none`,`px-3 py-2 text-sm placeholder:text-tertiary-alt`,`[&::-webkit-search-cancel-button]:hidden`)}),e?(0,L.jsx)(`button`,{type:`button`,onClick:()=>t(``),"aria-label":i(m.MCP$SEARCH_CLEAR),className:`mr-2 p-1 rounded text-tertiary-alt hover:text-white cursor-pointer`,children:(0,L.jsx)(g,{className:`h-4 w-4`,"aria-hidden":!0})}):null]}),(0,L.jsx)(`div`,{"data-testid":`plugins-status-filter`,className:`flex shrink-0 items-center gap-1 rounded-lg border border-[var(--oh-border)] bg-base-secondary p-1`,children:z.map(e=>(0,L.jsx)(`button`,{type:`button`,"data-testid":`plugins-filter-${e.value}`,"aria-pressed":n===e.value,onClick:()=>r(e.value),className:p(`cursor-pointer rounded-md px-3 py-1 text-xs transition-colors`,n===e.value?`bg-surface-raised text-white`:`text-tertiary-alt hover:text-white`),children:i(e.labelKey)},e.value))})]})}var V=(e,t)=>s({queryKey:[`plugin-file-content`,e,t],queryFn:()=>{if(!e||!t)throw Error(`No file selected`);return A.getPluginFileContent(e,t)},enabled:!!(e&&t),retry:!1,staleTime:1e3*60*10,refetchOnWindowFocus:!1});function H({basePath:e,files:t}){let{t:n}=a(`openhands`),[r,i]=I.useState(null),o=r&&t.includes(r)?r:null,{data:s,isLoading:c,isError:l}=V(o?e:null,o);return(0,L.jsxs)(`section`,{"data-testid":`plugin-files-section`,className:`flex min-w-0 flex-col gap-2`,children:[(0,L.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:n(m.COMMON$FILES)}),(0,L.jsxs)(`div`,{className:`min-w-0 rounded-lg border border-[var(--oh-border)] bg-[rgba(255,255,255,0.04)]`,children:[(0,L.jsx)(`div`,{className:`max-h-48 overflow-y-auto custom-scrollbar`,children:(0,L.jsx)(P,{paths:t,selectedPath:o,onSelectFile:e=>i(t=>t===e?null:e)})}),o?(0,L.jsxs)(`div`,{"data-testid":`plugin-file-content`,className:`flex h-60 min-w-0 flex-col border-t border-[var(--oh-border)]`,children:[(0,L.jsx)(`p`,{className:`truncate px-3 py-2 text-xs text-tertiary-alt`,title:o,children:o}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,children:c?(0,L.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,L.jsx)(_,{size:`small`})}):l?(0,L.jsx)(`p`,{className:`px-3 py-2 text-xs text-tertiary-light`,children:n(m.FILES$LOAD_ERROR)}):s?.kind===`binary`?(0,L.jsx)(`p`,{className:`px-3 py-2 text-xs text-tertiary-light`,children:n(m.FILES$BINARY_FALLBACK)}):(0,L.jsx)(F,{path:o,text:s?.text??``})})]}):null]})]})}function U({plugin:e,isBusy:t=!1,isDisabled:n=!1,onToggle:r,onInstall:i,onUninstall:o,onRefresh:s,onClose:c,onStartConversation:l}){let{t:u}=a(`openhands`),d=n||t;return(0,L.jsx)(v,{onClose:c,"aria-label":e.name,children:(0,L.jsxs)(`div`,{"data-testid":`plugin-detail-modal`,"data-plugin-name":e.name,className:`relative flex w-[640px] max-w-[90vw] max-h-[85vh] flex-col rounded-xl border border-[var(--oh-border)] bg-base-secondary`,children:[(0,L.jsx)(S,{onClose:c,testId:`plugin-detail-modal-close`}),(0,L.jsxs)(`header`,{className:`flex-shrink-0 px-6 pb-4 pt-6`,children:[(0,L.jsx)(`h2`,{className:p(`pr-6`,y),children:e.name}),e.source?(0,L.jsx)(`p`,{className:`mt-1 break-all text-xs text-tertiary-alt`,children:e.source}):null]}),(0,L.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 custom-scrollbar`,children:[e.description?(0,L.jsx)(`p`,{className:`text-sm leading-relaxed text-tertiary-light`,children:e.description}):null,(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[e.isLocal?(0,L.jsx)(`span`,{className:E,children:u(m.SETTINGS$PLUGINS_FILTER_LOCAL)}):null,e.version?(0,L.jsx)(`span`,{className:E,children:u(m.SETTINGS$SKILLS_VERSION,{version:e.version})}):null,e.ref?(0,L.jsxs)(`span`,{className:E,children:[u(m.SETTINGS$PLUGINS_REF_LABEL),` `,e.ref]}):null,e.repoPath?(0,L.jsxs)(`span`,{className:E,children:[u(m.SETTINGS$PLUGINS_REPO_PATH_LABEL),` `,e.repoPath]}):null]}),e.installed?(0,L.jsx)(O,{testId:`plugin-modal-toggle-${e.name}`,isToggled:e.enabled,onToggle:r,isDisabled:d,togglePosition:`right`,children:u(e.enabled?m.SETTINGS$SKILLS_ENABLED:m.SETTINGS$SKILLS_DISABLED)}):null,e.skills?.length?(0,L.jsxs)(`section`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,L.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:u(m.SETTINGS$PLUGINS_SKILLS_IN_BUNDLE)}),(0,L.jsx)(`ul`,{className:`flex min-w-0 flex-col gap-2`,children:e.skills.map(e=>(0,L.jsxs)(`li`,{"data-testid":`plugin-bundled-skill-${e.name}`,className:`flex items-start gap-3 rounded-lg border border-[var(--oh-border)] bg-[rgba(255,255,255,0.04)] px-3 py-2.5`,children:[(0,L.jsx)(M,{skillName:e.name}),(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsx)(`p`,{className:`truncate text-sm font-semibold text-white`,children:e.name}),e.description?(0,L.jsx)(`p`,{className:`mt-0.5 break-words text-xs leading-relaxed text-tertiary-light`,children:e.description}):null]})]},e.name))})]}):null,e.path&&e.files?.length?(0,L.jsx)(H,{basePath:e.path,files:e.files}):null]}),(0,L.jsxs)(`footer`,{className:`flex flex-shrink-0 flex-wrap justify-end gap-2 px-6 pb-6 pt-4`,children:[e.installed?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-refresh-${e.name}`,isDisabled:d,onClick:s,children:u(m.SETTINGS$PLUGINS_REFRESH)}),(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-uninstall-${e.name}`,isDisabled:d,onClick:o,children:u(m.SETTINGS$PLUGINS_UNINSTALL)})]}):e.isLocal?null:(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-install-${e.name}`,isDisabled:d,onClick:i,children:u(t?m.SETTINGS$PLUGINS_INSTALLING:m.SETTINGS$PLUGINS_INSTALL)}),e.source&&l?(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-start-conversation-${e.name}`,onClick:l,children:u(m.COMMON$START_CONVERSATION)}):null,(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-modal-dismiss`,onClick:c,children:u(m.BUTTON$CLOSE)})]})]})})}function W(){let e=i(),{t}=a(`openhands`);return o({mutationFn:e=>w.installPlugin(e),onSuccess:()=>{e.invalidateQueries({queryKey:l.installed}),e.invalidateQueries({queryKey:l.marketplace}),d(t(m.SETTINGS$PLUGINS_INSTALL_SUCCESS))},onError:e=>{c(u(e)||t(m.ERROR$GENERIC))}})}function G({onClose:e,onInstalled:t}){let{t:n}=a(`openhands`),r=W(),[i,o]=I.useState(``),[s,c]=I.useState(``),[l,u]=I.useState(``),d=i.trim(),f=d.length>0&&!r.isPending;return(0,L.jsx)(v,{onClose:e,"aria-label":n(m.SETTINGS$PLUGINS_ADD_MODAL_TITLE),children:(0,L.jsxs)(`form`,{onSubmit:n=>{n.preventDefault(),f&&r.mutate({source:d,ref:s.trim()||null,repo_path:l.trim()||null},{onSuccess:()=>{t?.(),e()}})},"data-testid":`add-plugin-modal`,className:`relative flex w-[520px] max-w-[90vw] max-h-[85vh] flex-col rounded-xl border border-[var(--oh-border)] bg-base-secondary`,children:[(0,L.jsx)(S,{onClose:e,testId:`add-plugin-modal-close`}),(0,L.jsxs)(`header`,{className:`flex-shrink-0 px-6 pb-4 pt-6`,children:[(0,L.jsx)(`h2`,{className:p(`pr-6`,y),children:n(m.SETTINGS$PLUGINS_ADD_MODAL_TITLE)}),(0,L.jsx)(`p`,{className:`mt-4 text-sm text-tertiary-light`,children:n(m.SETTINGS$PLUGINS_ADD_MODAL_INTRO)})]}),(0,L.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 custom-scrollbar`,children:[(0,L.jsx)(C,{testId:`add-plugin-source-input`,label:n(m.SETTINGS$PLUGINS_SOURCE_LABEL),type:`text`,value:i,onChange:o,placeholder:n(m.SETTINGS$PLUGINS_SOURCE_PLACEHOLDER),showRequiredTag:!0}),(0,L.jsx)(C,{testId:`add-plugin-ref-input`,label:n(m.SETTINGS$PLUGINS_REF_LABEL),type:`text`,value:s,onChange:c,showOptionalTag:!0}),(0,L.jsx)(C,{testId:`add-plugin-repo-path-input`,label:n(m.SETTINGS$PLUGINS_REPO_PATH_LABEL),type:`text`,value:l,onChange:u,showOptionalTag:!0})]}),(0,L.jsxs)(`footer`,{className:`flex flex-shrink-0 justify-end gap-2 px-6 pb-6 pt-4`,children:[(0,L.jsx)(b,{type:`button`,variant:`secondary`,onClick:e,testId:`add-plugin-modal-dismiss`,children:n(m.BUTTON$CLOSE)}),(0,L.jsx)(b,{type:`submit`,variant:`primary`,testId:`add-plugin-submit`,isDisabled:!f,children:n(r.isPending?m.SETTINGS$PLUGINS_INSTALLING:m.SETTINGS$PLUGINS_INSTALL)})]})]})})}function K(e,t,n=void 0){let r=new Map;for(let t of e??[])r.set(t.name,{name:t.name,description:t.description,source:t.source,ref:t.ref??null,repoPath:t.repo_path??null,installed:t.installed,enabled:!1,version:null,inCatalog:!0,isLocal:!1,path:t.path??null,skills:t.skills??null,files:t.files??null});for(let e of t??[]){let t=r.get(e.name),n=e.skills!=null||e.files!=null;r.set(e.name,{name:e.name,description:t?.description??e.description??null,source:e.source??t?.source??null,ref:e.resolved_ref??t?.ref??null,repoPath:e.repo_path??t?.repoPath??null,installed:!0,enabled:e.enabled,version:e.version??null,inCatalog:t?.inCatalog??!1,isLocal:!1,path:n?e.install_path:t?.path??null,skills:n?e.skills??null:t?.skills??null,files:n?e.files??null:t?.files??null})}for(let e of n??[])r.has(e.name)||r.set(e.name,{name:e.name,description:e.description||null,source:null,ref:null,repoPath:null,installed:!1,enabled:!1,version:e.version||null,inCatalog:!1,isLocal:!0,path:e.path??null,skills:e.skills??null,files:e.files??null});let i=e=>e.installed?0:e.isLocal?1:2;return Array.from(r.values()).sort((e,t)=>{let n=i(e)-i(t);return n===0?e.name.localeCompare(t.name):n})}function q(e,t){let n=t.trim().toLowerCase();return n?[e.name,e.description??``,e.source??``,e.repoPath??``,e.ref??``].some(e=>e.toLowerCase().includes(n)):!0}function J(e,t){return t===`installed`?e.installed:t===`available`?!e.installed&&!e.isLocal:t===`local`?e.isLocal:!0}var Y=()=>s({queryKey:l.installed,queryFn:()=>w.listInstalledPlugins(),staleTime:1e3*60*10,refetchOnWindowFocus:!1}),X=()=>s({queryKey:l.local,queryFn:()=>A.getLocalPlugins(),staleTime:1e3*60*10,refetchOnWindowFocus:!1});function Z(){let e=i(),{t}=a(`openhands`);return o({mutationFn:({name:e,enabled:t})=>w.setPluginEnabled(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:l.installed})},onError:e=>{c(u(e)||t(m.ERROR$GENERIC))}})}function Q(){let e=i(),{t}=a(`openhands`);return o({mutationFn:e=>w.uninstallPlugin(e),onSuccess:()=>{e.invalidateQueries({queryKey:l.installed}),e.invalidateQueries({queryKey:l.marketplace}),d(t(m.SETTINGS$PLUGINS_UNINSTALL_SUCCESS))},onError:e=>{c(u(e)||t(m.ERROR$GENERIC))}})}function te(){let e=i(),{t}=a(`openhands`);return o({mutationFn:e=>w.refreshPlugin(e),onSuccess:()=>{e.invalidateQueries({queryKey:l.installed}),d(t(m.SETTINGS$PLUGINS_REFRESH_SUCCESS))},onError:e=>{c(u(e)||t(m.ERROR$GENERIC))}})}function ne(e){let t=btoa(JSON.stringify(e));return`/launch?${new URLSearchParams({plugins:t}).toString()}`}var $=r(function(){let{t:e}=a(`openhands`),{backend:t}=f(),{navigate:n}=x(),r=t.kind===`local`,{data:i,isLoading:o}=ee(),{data:s,isLoading:c}=Y(),{data:l,isLoading:u}=X(),d=W(),h=Z(),g=Q(),_=te(),[v,y]=I.useState(``),[S,C]=I.useState(`all`),[w,T]=I.useState(null),[E,D]=I.useState(!1),O=I.useMemo(()=>K(i,s,l),[i,s,l]),k=I.useMemo(()=>O.filter(e=>J(e,S)&&q(e,v)),[O,S,v]),A=w?O.find(e=>e.name===w)??null:null,M=o||c||u,P=(h.isPending?h.variables?.name:void 0)??(g.isPending?g.variables:void 0)??(_.isPending?_.variables:void 0)??null,F=e=>P===e.name||d.isPending&&d.variables?.source===e.source,z=e=>{e.source&&d.mutate({source:e.source,ref:e.ref,repo_path:e.repoPath})},V=(e,t)=>{h.mutate({name:e.name,enabled:t})},H=e=>{g.mutate(e.name,{onSuccess:()=>T(null)})},$=e=>{_.mutate(e.name)},re=e=>{e.source&&n(ne([{source:e.source,ref:e.ref,repo_path:e.repoPath}]))};return(0,L.jsxs)(`div`,{"data-testid":`skills-plugins-screen`,className:`flex h-full gap-4 md:gap-6 md:pl-8 lg:gap-10 lg:pl-10`,children:[(0,L.jsx)(j,{}),(0,L.jsx)(`main`,{className:p(N,`h-full`),children:(0,L.jsxs)(`div`,{className:`mx-auto flex w-full min-w-0 max-w-[800px] flex-col gap-6`,children:[(0,L.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-4`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,L.jsx)(`h2`,{className:`text-xl font-semibold leading-6 text-foreground`,children:e(m.SETTINGS$PLUGINS_TITLE)}),(0,L.jsx)(`div`,{"data-testid":`plugins-settings-description`,className:`max-w-2xl text-sm text-tertiary-light`,children:e(m.SETTINGS$PLUGINS_PAGE_DESCRIPTION)})]}),(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugins-add-plugin-button`,isDisabled:!r,className:`flex-shrink-0 whitespace-nowrap`,onClick:()=>D(!0),children:e(m.SETTINGS$PLUGINS_ADD_BUTTON)})]}),M&&(0,L.jsx)(`div`,{className:`flex flex-col gap-4`,children:[1,2,3].map(e=>(0,L.jsx)(`div`,{className:`h-24 rounded-2xl bg-tertiary animate-pulse`},e))}),!M&&O.length===0&&(0,L.jsx)(`div`,{"data-testid":`plugins-empty`,className:`rounded-xl border border-[var(--oh-border)] p-8 text-center`,children:(0,L.jsx)(`p`,{className:`text-sm text-tertiary-light`,children:e(m.SETTINGS$PLUGINS_NO_PLUGINS)})}),!M&&O.length>0&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(B,{search:v,onSearchChange:y,statusFilter:S,onStatusFilterChange:C}),k.length===0?(0,L.jsx)(`div`,{"data-testid":`plugins-no-match`,className:`rounded-xl border border-[var(--oh-border)] p-8 text-center`,children:(0,L.jsx)(`p`,{className:`text-sm text-tertiary-light`,children:e(m.SETTINGS$PLUGINS_NO_MATCH)})}):(0,L.jsx)(`section`,{className:p(`flex min-w-0 flex-col gap-3`,`@container min-w-0 w-full`),children:(0,L.jsx)(`div`,{className:`grid min-w-0 grid-cols-1 gap-3 @min-[600px]:grid-cols-2`,children:k.map(e=>(0,L.jsx)(R,{plugin:e,isBusy:F(e),isDisabled:!r,onOpen:()=>T(e.name),onInstall:()=>z(e),onToggle:t=>V(e,t)},e.name))})})]}),A&&(0,L.jsx)(U,{plugin:A,isBusy:F(A),isDisabled:!r,onToggle:e=>V(A,e),onInstall:()=>z(A),onUninstall:()=>H(A),onRefresh:()=>$(A),onStartConversation:()=>re(A),onClose:()=>T(null)}),E&&(0,L.jsx)(G,{onClose:()=>D(!1)})]})})]})});export{$ as default};
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{U as r}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~lq5hicxx-cHFhpUBq.js";import{n as i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js";import{t as a}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{t as o}from"./useMutation-ChpkYxI5.js";import{t as s}from"./useQuery-BCnzy4LX.js";import{At as c,I as l,Pt as u,jt as d,n as f}from"./active-backend-context-B_bg5h9O.js";import{t as p,z as m}from"./utils-DPQfkd-7.js";import{t as h}from"./search-CYaiKHRp.js";import{t as g}from"./x-RYDBg-e2.js";import{t as _}from"./loading-spinner-CN3riY7k.js";import{t as v}from"./modal-backdrop-BSzNhM4r.js";import{n as y}from"./modal-classes-CLEXO6dj.js";import{t as b}from"./brand-button-CJcwjnfb.js";import{n as x}from"./navigation-context-CQZwH_tC.js";import{t as S}from"./modal-close-button-D0aT02hs.js";import{t as C}from"./settings-input-D61Vzp9e.js";import{t as w}from"./plugins-management-service-CywqyfLK.js";import{a as T,i as E,r as D}from"./extension-module-card-classes-Bo43vY5V.js";import{t as O}from"./settings-switch-Drt-rF5s.js";import{n as k}from"./circle-plus-check-toggle-BVzv5EkZ.js";import{n as A,t as ee}from"./use-plugins-marketplace-CqkR8kLE.js";import{n as j}from"./extensions-navigation-Bnx32WAb.js";import{t as M}from"./skill-icon-badge-CN41Hy9l.js";import{n as N}from"./settings-like-page-layout-classes-Cw4Yzv_P.js";import{n as P,t as F}from"./highlighted-source-view-CgJfD5VT.js";var I=e(t(),1),L=n();function R({plugin:e,isBusy:t=!1,isDisabled:n=!1,onOpen:r,onInstall:i,onToggle:o}){let{t:s}=a(`openhands`);return(0,L.jsxs)(`div`,{"data-testid":`plugin-card-${e.name}`,role:`button`,tabIndex:0,onClick:r,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),r())},className:p(`flex min-w-0 flex-col gap-3 overflow-hidden p-4`,T,D),children:[(0,L.jsxs)(`header`,{className:`flex items-start justify-between gap-3`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsx)(`h3`,{"data-testid":`plugin-name-${e.name}`,className:`truncate text-sm font-semibold text-white`,children:e.name}),e.source?(0,L.jsx)(`p`,{"data-testid":`plugin-source-${e.name}`,className:`mt-0.5 min-w-0 truncate text-xs text-tertiary-alt`,title:e.source,children:e.source}):null]}),e.installed?(0,L.jsx)(k,{testId:`plugin-toggle-${e.name}`,isSelected:e.enabled,isDisabled:n||t,onToggle:o,disableTooltipKey:m.COMMON$DISABLE}):e.isLocal?(0,L.jsx)(`span`,{"data-testid":`plugin-local-badge-${e.name}`,className:p(E,`flex-shrink-0`),children:s(m.SETTINGS$PLUGINS_FILTER_LOCAL)}):(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-install-${e.name}`,isDisabled:n||t,className:`flex-shrink-0 whitespace-nowrap`,onClick:e=>{e?.stopPropagation(),i()},children:s(t?m.SETTINGS$PLUGINS_INSTALLING:m.SETTINGS$PLUGINS_INSTALL)})]}),e.description?(0,L.jsx)(`p`,{"data-testid":`plugin-description-${e.name}`,className:`line-clamp-2 break-words text-xs leading-relaxed text-tertiary-light`,children:e.description}):null,(e.installed||e.isLocal)&&e.version?(0,L.jsx)(`span`,{"data-testid":`plugin-version-${e.name}`,className:p(E,`self-start`),children:s(m.SETTINGS$SKILLS_VERSION,{version:e.version})}):null]})}var z=[{value:`all`,labelKey:m.SETTINGS$PLUGINS_FILTER_ALL},{value:`installed`,labelKey:m.SETTINGS$PLUGINS_FILTER_INSTALLED},{value:`available`,labelKey:m.SETTINGS$PLUGINS_FILTER_AVAILABLE},{value:`local`,labelKey:m.SETTINGS$PLUGINS_FILTER_LOCAL}];function B({search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r}){let{t:i}=a(`openhands`);return(0,L.jsxs)(`div`,{"data-testid":`plugins-toolbar`,className:`flex items-stretch gap-2`,children:[(0,L.jsxs)(`div`,{className:p(`relative flex flex-1 min-w-0 items-center`,`rounded-lg border border-[var(--oh-border)] bg-base-secondary`,`focus-within:border-white/40 focus-within:ring-1 focus-within:ring-white/20`,`transition-colors`),children:[(0,L.jsx)(h,{className:`ml-3 h-4 w-4 shrink-0 text-tertiary-alt`,"aria-hidden":!0}),(0,L.jsx)(`input`,{"data-testid":`plugins-search-input`,type:`search`,value:e,onChange:e=>t(e.target.value),placeholder:i(m.SETTINGS$PLUGINS_SEARCH_PLACEHOLDER),"aria-label":i(m.SETTINGS$PLUGINS_SEARCH_PLACEHOLDER),className:p(`flex-1 min-w-0 bg-transparent border-0 outline-none`,`px-3 py-2 text-sm placeholder:text-tertiary-alt`,`[&::-webkit-search-cancel-button]:hidden`)}),e?(0,L.jsx)(`button`,{type:`button`,onClick:()=>t(``),"aria-label":i(m.MCP$SEARCH_CLEAR),className:`mr-2 p-1 rounded text-tertiary-alt hover:text-white cursor-pointer`,children:(0,L.jsx)(g,{className:`h-4 w-4`,"aria-hidden":!0})}):null]}),(0,L.jsx)(`div`,{"data-testid":`plugins-status-filter`,className:`flex shrink-0 items-center gap-1 rounded-lg border border-[var(--oh-border)] bg-base-secondary p-1`,children:z.map(e=>(0,L.jsx)(`button`,{type:`button`,"data-testid":`plugins-filter-${e.value}`,"aria-pressed":n===e.value,onClick:()=>r(e.value),className:p(`cursor-pointer rounded-md px-3 py-1 text-xs transition-colors`,n===e.value?`bg-surface-raised text-white`:`text-tertiary-alt hover:text-white`),children:i(e.labelKey)},e.value))})]})}var V=(e,t)=>s({queryKey:[`plugin-file-content`,e,t],queryFn:()=>{if(!e||!t)throw Error(`No file selected`);return A.getPluginFileContent(e,t)},enabled:!!(e&&t),retry:!1,staleTime:1e3*60*10,refetchOnWindowFocus:!1});function H({basePath:e,files:t}){let{t:n}=a(`openhands`),[r,i]=I.useState(null),o=r&&t.includes(r)?r:null,{data:s,isLoading:c,isError:l}=V(o?e:null,o);return(0,L.jsxs)(`section`,{"data-testid":`plugin-files-section`,className:`flex min-w-0 flex-col gap-2`,children:[(0,L.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:n(m.COMMON$FILES)}),(0,L.jsxs)(`div`,{className:`min-w-0 rounded-lg border border-[var(--oh-border)] bg-[rgba(255,255,255,0.04)]`,children:[(0,L.jsx)(`div`,{className:`max-h-48 overflow-y-auto custom-scrollbar`,children:(0,L.jsx)(P,{paths:t,selectedPath:o,onSelectFile:e=>i(t=>t===e?null:e)})}),o?(0,L.jsxs)(`div`,{"data-testid":`plugin-file-content`,className:`flex h-60 min-w-0 flex-col border-t border-[var(--oh-border)]`,children:[(0,L.jsx)(`p`,{className:`truncate px-3 py-2 text-xs text-tertiary-alt`,title:o,children:o}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,children:c?(0,L.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,L.jsx)(_,{size:`small`})}):l?(0,L.jsx)(`p`,{className:`px-3 py-2 text-xs text-tertiary-light`,children:n(m.FILES$LOAD_ERROR)}):s?.kind===`binary`?(0,L.jsx)(`p`,{className:`px-3 py-2 text-xs text-tertiary-light`,children:n(m.FILES$BINARY_FALLBACK)}):(0,L.jsx)(F,{path:o,text:s?.text??``})})]}):null]})]})}function U({plugin:e,isBusy:t=!1,isDisabled:n=!1,onToggle:r,onInstall:i,onUninstall:o,onRefresh:s,onClose:c,onStartConversation:l}){let{t:u}=a(`openhands`),d=n||t;return(0,L.jsx)(v,{onClose:c,"aria-label":e.name,children:(0,L.jsxs)(`div`,{"data-testid":`plugin-detail-modal`,"data-plugin-name":e.name,className:`relative flex w-[640px] max-w-[90vw] max-h-[85vh] flex-col rounded-xl border border-[var(--oh-border)] bg-base-secondary`,children:[(0,L.jsx)(S,{onClose:c,testId:`plugin-detail-modal-close`}),(0,L.jsxs)(`header`,{className:`flex-shrink-0 px-6 pb-4 pt-6`,children:[(0,L.jsx)(`h2`,{className:p(`pr-6`,y),children:e.name}),e.source?(0,L.jsx)(`p`,{className:`mt-1 break-all text-xs text-tertiary-alt`,children:e.source}):null]}),(0,L.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 custom-scrollbar`,children:[e.description?(0,L.jsx)(`p`,{className:`text-sm leading-relaxed text-tertiary-light`,children:e.description}):null,(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[e.isLocal?(0,L.jsx)(`span`,{className:E,children:u(m.SETTINGS$PLUGINS_FILTER_LOCAL)}):null,e.version?(0,L.jsx)(`span`,{className:E,children:u(m.SETTINGS$SKILLS_VERSION,{version:e.version})}):null,e.ref?(0,L.jsxs)(`span`,{className:E,children:[u(m.SETTINGS$PLUGINS_REF_LABEL),` `,e.ref]}):null,e.repoPath?(0,L.jsxs)(`span`,{className:E,children:[u(m.SETTINGS$PLUGINS_REPO_PATH_LABEL),` `,e.repoPath]}):null]}),e.installed?(0,L.jsx)(O,{testId:`plugin-modal-toggle-${e.name}`,isToggled:e.enabled,onToggle:r,isDisabled:d,togglePosition:`right`,children:u(e.enabled?m.SETTINGS$SKILLS_ENABLED:m.SETTINGS$SKILLS_DISABLED)}):null,e.skills?.length?(0,L.jsxs)(`section`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,L.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:u(m.SETTINGS$PLUGINS_SKILLS_IN_BUNDLE)}),(0,L.jsx)(`ul`,{className:`flex min-w-0 flex-col gap-2`,children:e.skills.map(e=>(0,L.jsxs)(`li`,{"data-testid":`plugin-bundled-skill-${e.name}`,className:`flex items-start gap-3 rounded-lg border border-[var(--oh-border)] bg-[rgba(255,255,255,0.04)] px-3 py-2.5`,children:[(0,L.jsx)(M,{skillName:e.name}),(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsx)(`p`,{className:`truncate text-sm font-semibold text-white`,children:e.name}),e.description?(0,L.jsx)(`p`,{className:`mt-0.5 break-words text-xs leading-relaxed text-tertiary-light`,children:e.description}):null]})]},e.name))})]}):null,e.path&&e.files?.length?(0,L.jsx)(H,{basePath:e.path,files:e.files}):null]}),(0,L.jsxs)(`footer`,{className:`flex flex-shrink-0 flex-wrap justify-end gap-2 px-6 pb-6 pt-4`,children:[e.installed?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-refresh-${e.name}`,isDisabled:d,onClick:s,children:u(m.SETTINGS$PLUGINS_REFRESH)}),(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-uninstall-${e.name}`,isDisabled:d,onClick:o,children:u(m.SETTINGS$PLUGINS_UNINSTALL)})]}):e.isLocal?null:(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-install-${e.name}`,isDisabled:d,onClick:i,children:u(t?m.SETTINGS$PLUGINS_INSTALLING:m.SETTINGS$PLUGINS_INSTALL)}),e.source&&l?(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-start-conversation-${e.name}`,onClick:l,children:u(m.COMMON$START_CONVERSATION)}):null,(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugin-detail-modal-dismiss`,onClick:c,children:u(m.BUTTON$CLOSE)})]})]})})}function W(){let e=i(),{t}=a(`openhands`);return o({mutationFn:e=>w.installPlugin(e),onSuccess:()=>{e.invalidateQueries({queryKey:l.installed}),e.invalidateQueries({queryKey:l.marketplace}),d(t(m.SETTINGS$PLUGINS_INSTALL_SUCCESS))},onError:e=>{c(u(e)||t(m.ERROR$GENERIC))}})}function G({onClose:e,onInstalled:t}){let{t:n}=a(`openhands`),r=W(),[i,o]=I.useState(``),[s,c]=I.useState(``),[l,u]=I.useState(``),d=i.trim(),f=d.length>0&&!r.isPending;return(0,L.jsx)(v,{onClose:e,"aria-label":n(m.SETTINGS$PLUGINS_ADD_MODAL_TITLE),children:(0,L.jsxs)(`form`,{onSubmit:n=>{n.preventDefault(),f&&r.mutate({source:d,ref:s.trim()||null,repo_path:l.trim()||null},{onSuccess:()=>{t?.(),e()}})},"data-testid":`add-plugin-modal`,className:`relative flex w-[520px] max-w-[90vw] max-h-[85vh] flex-col rounded-xl border border-[var(--oh-border)] bg-base-secondary`,children:[(0,L.jsx)(S,{onClose:e,testId:`add-plugin-modal-close`}),(0,L.jsxs)(`header`,{className:`flex-shrink-0 px-6 pb-4 pt-6`,children:[(0,L.jsx)(`h2`,{className:p(`pr-6`,y),children:n(m.SETTINGS$PLUGINS_ADD_MODAL_TITLE)}),(0,L.jsx)(`p`,{className:`mt-4 text-sm text-tertiary-light`,children:n(m.SETTINGS$PLUGINS_ADD_MODAL_INTRO)})]}),(0,L.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 custom-scrollbar`,children:[(0,L.jsx)(C,{testId:`add-plugin-source-input`,label:n(m.SETTINGS$PLUGINS_SOURCE_LABEL),type:`text`,value:i,onChange:o,placeholder:n(m.SETTINGS$PLUGINS_SOURCE_PLACEHOLDER),showRequiredTag:!0}),(0,L.jsx)(C,{testId:`add-plugin-ref-input`,label:n(m.SETTINGS$PLUGINS_REF_LABEL),type:`text`,value:s,onChange:c,showOptionalTag:!0}),(0,L.jsx)(C,{testId:`add-plugin-repo-path-input`,label:n(m.SETTINGS$PLUGINS_REPO_PATH_LABEL),type:`text`,value:l,onChange:u,showOptionalTag:!0})]}),(0,L.jsxs)(`footer`,{className:`flex flex-shrink-0 justify-end gap-2 px-6 pb-6 pt-4`,children:[(0,L.jsx)(b,{type:`button`,variant:`secondary`,onClick:e,testId:`add-plugin-modal-dismiss`,children:n(m.BUTTON$CLOSE)}),(0,L.jsx)(b,{type:`submit`,variant:`primary`,testId:`add-plugin-submit`,isDisabled:!f,children:n(r.isPending?m.SETTINGS$PLUGINS_INSTALLING:m.SETTINGS$PLUGINS_INSTALL)})]})]})})}function K(e,t,n=void 0){let r=new Map;for(let t of e??[])r.set(t.name,{name:t.name,description:t.description,source:t.source,ref:t.ref??null,repoPath:t.repo_path??null,installed:t.installed,enabled:!1,version:null,inCatalog:!0,isLocal:!1,path:t.path??null,skills:t.skills??null,files:t.files??null});for(let e of t??[]){let t=r.get(e.name),n=e.skills!=null||e.files!=null;r.set(e.name,{name:e.name,description:t?.description??e.description??null,source:e.source??t?.source??null,ref:e.resolved_ref??t?.ref??null,repoPath:e.repo_path??t?.repoPath??null,installed:!0,enabled:e.enabled,version:e.version??null,inCatalog:t?.inCatalog??!1,isLocal:!1,path:n?e.install_path:t?.path??null,skills:n?e.skills??null:t?.skills??null,files:n?e.files??null:t?.files??null})}for(let e of n??[])r.has(e.name)||r.set(e.name,{name:e.name,description:e.description||null,source:null,ref:null,repoPath:null,installed:!1,enabled:!1,version:e.version||null,inCatalog:!1,isLocal:!0,path:e.path??null,skills:e.skills??null,files:e.files??null});let i=e=>e.installed?0:e.isLocal?1:2;return Array.from(r.values()).sort((e,t)=>{let n=i(e)-i(t);return n===0?e.name.localeCompare(t.name):n})}function q(e,t){let n=t.trim().toLowerCase();return n?[e.name,e.description??``,e.source??``,e.repoPath??``,e.ref??``].some(e=>e.toLowerCase().includes(n)):!0}function J(e,t){return t===`installed`?e.installed:t===`available`?!e.installed&&!e.isLocal:t===`local`?e.isLocal:!0}var Y=()=>s({queryKey:l.installed,queryFn:()=>w.listInstalledPlugins(),staleTime:1e3*60*10,refetchOnWindowFocus:!1}),X=()=>s({queryKey:l.local,queryFn:()=>A.getLocalPlugins(),staleTime:1e3*60*10,refetchOnWindowFocus:!1});function Z(){let e=i(),{t}=a(`openhands`);return o({mutationFn:({name:e,enabled:t})=>w.setPluginEnabled(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:l.installed})},onError:e=>{c(u(e)||t(m.ERROR$GENERIC))}})}function Q(){let e=i(),{t}=a(`openhands`);return o({mutationFn:e=>w.uninstallPlugin(e),onSuccess:()=>{e.invalidateQueries({queryKey:l.installed}),e.invalidateQueries({queryKey:l.marketplace}),d(t(m.SETTINGS$PLUGINS_UNINSTALL_SUCCESS))},onError:e=>{c(u(e)||t(m.ERROR$GENERIC))}})}function te(){let e=i(),{t}=a(`openhands`);return o({mutationFn:e=>w.refreshPlugin(e),onSuccess:()=>{e.invalidateQueries({queryKey:l.installed}),d(t(m.SETTINGS$PLUGINS_REFRESH_SUCCESS))},onError:e=>{c(u(e)||t(m.ERROR$GENERIC))}})}function ne(e){let t=btoa(JSON.stringify(e));return`/launch?${new URLSearchParams({plugins:t}).toString()}`}var $=r(function(){let{t:e}=a(`openhands`),{backend:t}=f(),{navigate:n}=x(),r=t.kind===`local`,{data:i,isLoading:o}=ee(),{data:s,isLoading:c}=Y(),{data:l,isLoading:u}=X(),d=W(),h=Z(),g=Q(),_=te(),[v,y]=I.useState(``),[S,C]=I.useState(`all`),[w,T]=I.useState(null),[E,D]=I.useState(!1),O=I.useMemo(()=>K(i,s,l),[i,s,l]),k=I.useMemo(()=>O.filter(e=>J(e,S)&&q(e,v)),[O,S,v]),A=w?O.find(e=>e.name===w)??null:null,M=o||c||u,P=(h.isPending?h.variables?.name:void 0)??(g.isPending?g.variables:void 0)??(_.isPending?_.variables:void 0)??null,F=e=>P===e.name||d.isPending&&d.variables?.source===e.source,z=e=>{e.source&&d.mutate({source:e.source,ref:e.ref,repo_path:e.repoPath})},V=(e,t)=>{h.mutate({name:e.name,enabled:t})},H=e=>{g.mutate(e.name,{onSuccess:()=>T(null)})},$=e=>{_.mutate(e.name)},re=e=>{e.source&&n(ne([{source:e.source,ref:e.ref,repo_path:e.repoPath}]))};return(0,L.jsxs)(`div`,{"data-testid":`skills-plugins-screen`,className:`flex h-full gap-4 md:gap-6 md:pl-8 lg:gap-10 lg:pl-10`,children:[(0,L.jsx)(j,{}),(0,L.jsx)(`main`,{className:p(N,`h-full`),children:(0,L.jsxs)(`div`,{className:`mx-auto flex w-full min-w-0 max-w-[800px] flex-col gap-6`,children:[(0,L.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-4`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,L.jsx)(`h2`,{className:`text-xl font-semibold leading-6 text-foreground`,children:e(m.SETTINGS$PLUGINS_TITLE)}),(0,L.jsx)(`div`,{"data-testid":`plugins-settings-description`,className:`max-w-2xl text-sm text-tertiary-light`,children:e(m.SETTINGS$PLUGINS_PAGE_DESCRIPTION)})]}),(0,L.jsx)(b,{type:`button`,variant:`secondary`,testId:`plugins-add-plugin-button`,isDisabled:!r,className:`flex-shrink-0 whitespace-nowrap`,onClick:()=>D(!0),children:e(m.SETTINGS$PLUGINS_ADD_BUTTON)})]}),M&&(0,L.jsx)(`div`,{className:`flex flex-col gap-4`,children:[1,2,3].map(e=>(0,L.jsx)(`div`,{className:`h-24 rounded-2xl bg-tertiary animate-pulse`},e))}),!M&&O.length===0&&(0,L.jsx)(`div`,{"data-testid":`plugins-empty`,className:`rounded-xl border border-[var(--oh-border)] p-8 text-center`,children:(0,L.jsx)(`p`,{className:`text-sm text-tertiary-light`,children:e(m.SETTINGS$PLUGINS_NO_PLUGINS)})}),!M&&O.length>0&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(B,{search:v,onSearchChange:y,statusFilter:S,onStatusFilterChange:C}),k.length===0?(0,L.jsx)(`div`,{"data-testid":`plugins-no-match`,className:`rounded-xl border border-[var(--oh-border)] p-8 text-center`,children:(0,L.jsx)(`p`,{className:`text-sm text-tertiary-light`,children:e(m.SETTINGS$PLUGINS_NO_MATCH)})}):(0,L.jsx)(`section`,{className:p(`flex min-w-0 flex-col gap-3`,`@container min-w-0 w-full`),children:(0,L.jsx)(`div`,{className:`grid min-w-0 grid-cols-1 gap-3 @min-[600px]:grid-cols-2`,children:k.map(e=>(0,L.jsx)(R,{plugin:e,isBusy:F(e),isDisabled:!r,onOpen:()=>T(e.name),onInstall:()=>z(e),onToggle:t=>V(e,t)},e.name))})})]}),A&&(0,L.jsx)(U,{plugin:A,isBusy:F(A),isDisabled:!r,onToggle:e=>V(A,e),onInstall:()=>z(A),onUninstall:()=>H(A),onRefresh:()=>$(A),onStartConversation:()=>re(A),onClose:()=>T(null)}),E&&(0,L.jsx)(G,{onClose:()=>D(!1)})]})})]})});export{$ as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{H as r,U as i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~lq5hicxx-cHFhpUBq.js";import{t as a}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{E as o}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t as s}from"./vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-U-xdsAEx.js";import{At as c,Pt as l}from"./active-backend-context-BBvP-bI2.js";import{t as u,z as d}from"./utils-DPQfkd-7.js";import{t as f}from"./bot-DuN83i3p.js";import{t as p}from"./check-DLOKoFU9.js";import{a as m,i as h,n as g,r as _,t as v}from"./wrench-B1_H-tL1.js";import{t as y}from"./search-CYaiKHRp.js";import{t as b}from"./shield-check-D2cpEpv3.js";import{t as x}from"./x-RYDBg-e2.js";import{n as S}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~ht43enc2-C0JXQb_q.js";import{n as ee}from"./use-settings-BHWsOcIG.js";import{t as te}from"./use-save-settings-pSjRhD_m.js";import{t as C}from"./modal-backdrop-BSzNhM4r.js";import{n as w,t as T}from"./modal-body-duRaxj_K.js";import{n as E}from"./modal-classes-CLEXO6dj.js";import{t as D}from"./brand-button-CJcwjnfb.js";import{t as O}from"./modal-close-button-D0aT02hs.js";import{t as k}from"./checkmark-XZyokq_Y.js";import{t as A}from"./copy-Drmhc2jD.js";import{a as j,n as ne,o as re,r as M,t as ie}from"./extension-module-card-classes-Bo43vY5V.js";import{t as N}from"./settings-switch-Drt-rF5s.js";import{n as P,t as F}from"./skill-card-pill-row-B_BYBONu.js";import{n as I}from"./circle-plus-check-toggle-BVzv5EkZ.js";import{i as ae,n as L,t as oe}from"./skill-scope-B1Per5XI.js";import{n as se}from"./extensions-navigation-6zU5M1pa.js";import{t as ce}from"./skill-icon-badge-CN41Hy9l.js";import{n as le,t as ue}from"./use-launch-skill-in-chat-BcKNjxxd.js";import{n as de}from"./settings-like-page-layout-classes-Cw4Yzv_P.js";var fe=o(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),pe=o(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),me=o(`pen-line`,[[`path`,{d:`M13 21h8`,key:`1jsn5i`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]),R=e(t(),1),he=`https://docs.openhands.dev/overview/skills/adding#adding-new-skills`,z=`/add-skill https://github.com/OpenHands/extensions/tree/main/skills/codereview`,B=n(),ge=[d.SETTINGS$SKILLS_ADD_MODAL_STEP_1,d.SETTINGS$SKILLS_ADD_MODAL_STEP_2,d.SETTINGS$SKILLS_ADD_MODAL_STEP_3,d.SETTINGS$SKILLS_ADD_MODAL_STEP_4,d.SETTINGS$SKILLS_ADD_MODAL_STEP_5],V={cmd:(0,B.jsx)(H,{}),path:(0,B.jsx)(H,{}),env:(0,B.jsx)(H,{})};function H({children:e}){return(0,B.jsx)(`code`,{className:u(`mx-0.5 inline-block rounded-sm border border-[var(--oh-border-subtle)]`,`bg-[var(--oh-surface-raised)] px-1.5 py-0.5 align-baseline font-mono text-[11px] text-white`),children:e})}function _e(){let{t:e}=a(`openhands`),[t,n]=R.useState(!1);return R.useEffect(()=>{if(!t)return;let e=setTimeout(()=>n(!1),2e3);return()=>clearTimeout(e)},[t]),(0,B.jsxs)(`div`,{className:`relative`,children:[(0,B.jsx)(`pre`,{"data-testid":`add-skill-modal-example`,className:u(`overflow-x-auto rounded-sm border border-[var(--oh-border-subtle)]`,`bg-[var(--oh-surface-raised)] p-2 pr-10 text-xs text-white`),children:z}),(0,B.jsx)(`button`,{type:`button`,"data-testid":`add-skill-modal-example-copy`,"aria-label":e(t?d.BUTTON$COPIED:d.BUTTON$COPY),disabled:t,onClick:async()=>{await navigator.clipboard.writeText(z),n(!0)},className:u(`absolute right-2 top-2 cursor-pointer rounded-sm border border-[var(--oh-border-subtle)]`,`bg-base-secondary p-1 text-tertiary-alt transition-colors`,`hover:bg-[var(--oh-surface)] hover:text-white disabled:cursor-default [&_path]:fill-current`),children:t?(0,B.jsx)(k,{width:14,height:14}):(0,B.jsx)(A,{width:14,height:14})})]})}function U({i18nKey:e}){return(0,B.jsx)(`p`,{className:`text-xs leading-relaxed text-tertiary-light`,children:(0,B.jsx)(s,{ns:`openhands`,i18nKey:e,components:V})})}function ve({onClose:e}){let{t}=a(`openhands`);return(0,B.jsx)(C,{onClose:e,"aria-label":t(d.SETTINGS$SKILLS_ADD_MODAL_TITLE),children:(0,B.jsxs)(`div`,{"data-testid":`add-skill-modal`,className:`relative flex w-[520px] max-w-[90vw] max-h-[85vh] flex-col rounded-xl border border-[var(--oh-border)] bg-base-secondary`,children:[(0,B.jsx)(O,{onClose:e,testId:`add-skill-modal-close`}),(0,B.jsxs)(`header`,{className:`flex-shrink-0 px-6 pb-4 pt-6`,children:[(0,B.jsx)(`h2`,{className:u(`pr-6`,E),children:t(d.SETTINGS$SKILLS_ADD_MODAL_TITLE)}),(0,B.jsx)(`p`,{className:`mt-4 text-sm text-tertiary-light`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_INTRO)})]}),(0,B.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 custom-scrollbar`,children:[(0,B.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,B.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_CHAT_TITLE)}),(0,B.jsx)(U,{i18nKey:d.SETTINGS$SKILLS_ADD_MODAL_CHAT_BODY}),(0,B.jsx)(`p`,{className:`text-xs text-tertiary-light`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_EXAMPLE_LABEL)}),(0,B.jsx)(_e,{}),(0,B.jsx)(`ol`,{className:`list-decimal space-y-1 pl-4 text-xs leading-relaxed text-tertiary-light`,children:ge.map(e=>(0,B.jsx)(`li`,{children:e===d.SETTINGS$SKILLS_ADD_MODAL_STEP_3?(0,B.jsx)(s,{ns:`openhands`,i18nKey:e,components:V}):t(e)},e))})]}),(0,B.jsxs)(`section`,{className:`flex flex-col gap-1`,children:[(0,B.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_URL_FORMATS_TITLE)}),(0,B.jsx)(`p`,{className:`text-xs leading-relaxed text-tertiary-light`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_URL_FORMATS)})]}),(0,B.jsxs)(`section`,{className:`flex flex-col gap-1`,children:[(0,B.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_STORAGE_TITLE)}),(0,B.jsx)(U,{i18nKey:d.SETTINGS$SKILLS_ADD_MODAL_STORAGE_BODY})]}),(0,B.jsx)(U,{i18nKey:d.SETTINGS$SKILLS_ADD_MODAL_PRIVATE_REPOS}),(0,B.jsx)(`a`,{href:he,target:`_blank`,rel:`noreferrer`,"data-testid":`add-skill-modal-docs-link`,className:`self-start text-xs text-[var(--oh-muted)] transition-colors hover:text-white hover:underline`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_VIEW_DOCS)})]}),(0,B.jsx)(`footer`,{className:`flex flex-shrink-0 justify-end gap-2 px-6 pb-6 pt-4`,children:(0,B.jsx)(D,{type:`button`,variant:`secondary`,onClick:e,testId:`add-skill-modal-dismiss`,children:t(d.BUTTON$CLOSE)})})]})})}var W=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;function ye(e){let t=e.match(/^description:\s*\|\s*\r?\n((?:[ \t].*(?:\r?\n|$))+)/m);if(t)return t[1].replace(/^[ \t]+/gm,``).trim();let n=e.match(/^description:\s*['"](.+?)['"]\s*$/m);if(n)return n[1].trim();let r=e.match(/^description:\s*(.+)\s*$/m);return r?r[1].trim():null}function be(e){let t=e.match(W);return t?e.slice(t[0].length).trim():e.trim()}function xe(e){let t=e.replace(/^#+\s+[^\n]+\n+/,``).trim();return t.split(/\n\s*\n/).map(e=>e.replace(/\s+/g,` `).trim()).find(e=>e.length>0)??t.replace(/\s+/g,` `).trim()}function G(e){let t=e.description?.trim();if(t)return t;let n=e.content?.trim();if(!n)return``;let r=n.match(W);if(r){let e=ye(r[1]);if(e)return e}return xe(be(n))}var Se=`inline-flex shrink-0 items-center whitespace-nowrap rounded-full border border-text-secondary/35 bg-text-secondary/12 px-2 py-0.5 text-[11px] font-medium leading-4 text-tertiary-light`,Ce={agentskills:{labelKey:d.SETTINGS$SKILLS_TYPE_AGENTSKILLS},knowledge:{labelKey:d.SETTINGS$SKILLS_TYPE_KNOWLEDGE},repo:{labelKey:d.SETTINGS$SKILLS_TYPE_REPO}};function we({type:e}){let{t}=a(`openhands`),n=Ce[e];return(0,B.jsx)(`span`,{"data-testid":`skill-type-badge-${e}`,className:Se,children:t(n.labelKey)})}var K=[`automations`,`environment`,`code-hosting`,`agent-authoring`,`code-quality`,`integrations`,`writing`,`design`,`other`],q={automations:d.SETTINGS$SKILLS_CATEGORY_AUTOMATIONS,environment:d.SETTINGS$SKILLS_CATEGORY_ENVIRONMENT,"code-hosting":d.SETTINGS$SKILLS_CATEGORY_CODE_HOSTING,"agent-authoring":d.SETTINGS$SKILLS_CATEGORY_AGENT_AUTHORING,"code-quality":d.SETTINGS$SKILLS_CATEGORY_CODE_QUALITY,integrations:d.SETTINGS$SKILLS_CATEGORY_INTEGRATIONS,writing:d.SETTINGS$SKILLS_CATEGORY_WRITING,design:d.SETTINGS$SKILLS_CATEGORY_DESIGN,other:d.SETTINGS$SKILLS_CATEGORY_OTHER},Te={automations:g,environment:v,"code-hosting":m,"agent-authoring":f,"code-quality":b,integrations:_,writing:me,design:pe,other:fe},Ee=`other`,De=new Set(S);function Oe(e){let t=e.category;return t&&De.has(t)?t:Ee}function J(e,t,n){if(e)return`${e}-${t}-${n}`}function ke(e,t,n={}){let{variant:r=`card`,testIdPrefix:i}=n,a=Oe(e),o=[{id:`type-${e.type}`,node:(0,B.jsx)(we,{type:e.type})}];if(a!==`other`&&o.push({id:`category-${a}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`category`)??`skill-category-${e.name}`,className:F,children:t(q[a])})}),e.version&&o.push({id:`version-${e.version}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`version`)??`skill-version-${e.name}`,className:F,children:t(d.SETTINGS$SKILLS_VERSION,{version:e.version})})}),r===`detail`&&e.license&&o.push({id:`license-${e.license}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`license`),className:F,children:e.license})}),r===`detail`&&e.compatibility&&o.push({id:`compatibility-${e.compatibility}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`compatibility`),className:F,children:e.compatibility})}),e.disable_model_invocation&&o.push({id:`disable-model-invocation`,node:(0,B.jsxs)(`span`,{"data-testid":J(i,e.name,`disable-model-invocation`)??`skill-disable-model-invocation-${e.name}`,className:`inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-[rgba(248,113,113,0.35)] bg-[rgba(248,113,113,0.12)] px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]`,children:[(0,B.jsx)(`span`,{className:`size-1.5 rounded-full bg-[#fca5a5]`}),t(d.SETTINGS$SKILLS_DISABLE_MODEL_INVOCATION)]})}),r===`detail`&&e.allowed_tools)for(let t of e.allowed_tools)o.push({id:`allowed-tool-${t}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`tool-${t}`),className:u(F,`font-mono`),children:t})});if(r===`detail`&&e.metadata)for(let[t,n]of Object.entries(e.metadata))o.push({id:`metadata-${t}`,node:(0,B.jsxs)(`span`,{"data-testid":J(i,e.name,`metadata-${t}`),className:F,children:[(0,B.jsxs)(`span`,{className:`font-mono text-[10px] text-tertiary-light`,children:[t,`:`]}),` `,n]})});for(let t of e.triggers??[])o.push({id:`trigger-${t}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`trigger-${t}`),className:F,children:t})});return o}function Ae(e){let t=e?.trim();return t?!!(/^https?:\/\//i.test(t)||t.startsWith(`/`)||t.startsWith(`./`)||t.startsWith(`../`)||t.startsWith(`~`)||/^[A-Za-z]:[\\/]/.test(t)||t.includes(`/`)||t.includes(`\\`)):!1}function je({skill:e,enabled:t,onOpen:n,onToggle:r}){let{t:i}=a(`openhands`),[o,s]=R.useState(!1),c=G(e),l=R.useMemo(()=>ke(e,i),[e,i]),f=Ae(e.source);return R.useEffect(()=>{if(!o)return;let e=setTimeout(()=>s(!1),2e3);return()=>clearTimeout(e)},[o]),(0,B.jsx)(`div`,{"data-testid":`skill-card-${e.name}`,role:`button`,tabIndex:0,onClick:n,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),n())},className:u(`flex min-w-0 flex-col gap-3 overflow-hidden p-4`,j,M),children:(0,B.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,B.jsx)(ce,{skillName:e.name}),(0,B.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-3`,children:[(0,B.jsxs)(`header`,{className:`flex items-start justify-between gap-3`,children:[(0,B.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,B.jsx)(`h3`,{"data-testid":`skill-name-${e.name}`,className:`truncate text-sm font-semibold text-white`,children:e.name}),e.source?(0,B.jsxs)(`div`,{className:`mt-0.5 flex min-w-0 items-center gap-1`,children:[(0,B.jsx)(`p`,{"data-testid":`skill-source-${e.name}`,className:`min-w-0 flex-1 truncate text-xs text-tertiary-alt`,title:e.source,children:e.source}),f?(0,B.jsx)(`button`,{type:`button`,"data-testid":`skill-copy-source-${e.name}`,"aria-label":i(o?d.BUTTON$COPIED:d.SETTINGS$SKILLS_COPY_PATH),disabled:o,onClick:async t=>{t.stopPropagation(),e.source&&(await navigator.clipboard.writeText(e.source),s(!0))},className:`shrink-0 cursor-pointer border-0 bg-transparent p-0.5 text-tertiary-alt hover:text-white disabled:cursor-default [&_path]:fill-current`,children:o?(0,B.jsx)(k,{width:12,height:12}):(0,B.jsx)(A,{width:12,height:12})}):null]}):null]}),(0,B.jsx)(I,{testId:`skill-toggle-${e.name}`,isSelected:t,onToggle:r,disableTooltipKey:d.COMMON$DISABLE})]}),c?(0,B.jsx)(`div`,{"data-testid":`skill-description-${e.name}`,className:`min-w-0`,children:(0,B.jsx)(`p`,{className:`line-clamp-2 break-words text-xs leading-relaxed text-tertiary-light`,children:c})}):null,l.length>0?(0,B.jsx)(P,{pills:l,testId:`skill-triggers-${e.name}`}):null]})]})})}function Me(e){return e.name===`add-skill`?z:`/${e.name} `}function Ne({testId:e,label:t,value:n}){return(0,B.jsxs)(`label`,{className:`flex min-w-0 w-full flex-col gap-2.5`,children:[(0,B.jsx)(`span`,{className:`text-sm`,children:t}),(0,B.jsx)(`textarea`,{"data-testid":e,readOnly:!0,value:n,rows:Math.min(12,Math.max(4,n.split(`
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{H as r,U as i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~lq5hicxx-cHFhpUBq.js";import{t as a}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{E as o}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t as s}from"./vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-U-xdsAEx.js";import{At as c,Pt as l}from"./active-backend-context-B_bg5h9O.js";import{t as u,z as d}from"./utils-DPQfkd-7.js";import{t as f}from"./bot-DuN83i3p.js";import{t as p}from"./check-DLOKoFU9.js";import{a as m,i as h,n as g,r as _,t as v}from"./wrench-B1_H-tL1.js";import{t as y}from"./search-CYaiKHRp.js";import{t as b}from"./shield-check-D2cpEpv3.js";import{t as x}from"./x-RYDBg-e2.js";import{n as S}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~ht43enc2-C0JXQb_q.js";import{n as ee}from"./use-settings-BmLzQjnC.js";import{t as te}from"./use-save-settings-DIEurJ3D.js";import{t as C}from"./modal-backdrop-BSzNhM4r.js";import{n as w,t as T}from"./modal-body-duRaxj_K.js";import{n as E}from"./modal-classes-CLEXO6dj.js";import{t as D}from"./brand-button-CJcwjnfb.js";import{t as O}from"./modal-close-button-D0aT02hs.js";import{t as k}from"./checkmark-XZyokq_Y.js";import{t as A}from"./copy-Drmhc2jD.js";import{a as j,n as ne,o as re,r as M,t as ie}from"./extension-module-card-classes-Bo43vY5V.js";import{t as N}from"./settings-switch-Drt-rF5s.js";import{n as P,t as F}from"./skill-card-pill-row-B_BYBONu.js";import{n as I}from"./circle-plus-check-toggle-BVzv5EkZ.js";import{i as ae,n as L,t as oe}from"./skill-scope-Dt1V5X2p.js";import{n as se}from"./extensions-navigation-Bnx32WAb.js";import{t as ce}from"./skill-icon-badge-CN41Hy9l.js";import{n as le,t as ue}from"./use-launch-skill-in-chat-BcKNjxxd.js";import{n as de}from"./settings-like-page-layout-classes-Cw4Yzv_P.js";var fe=o(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),pe=o(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),me=o(`pen-line`,[[`path`,{d:`M13 21h8`,key:`1jsn5i`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]),R=e(t(),1),he=`https://docs.openhands.dev/overview/skills/adding#adding-new-skills`,z=`/add-skill https://github.com/OpenHands/extensions/tree/main/skills/codereview`,B=n(),ge=[d.SETTINGS$SKILLS_ADD_MODAL_STEP_1,d.SETTINGS$SKILLS_ADD_MODAL_STEP_2,d.SETTINGS$SKILLS_ADD_MODAL_STEP_3,d.SETTINGS$SKILLS_ADD_MODAL_STEP_4,d.SETTINGS$SKILLS_ADD_MODAL_STEP_5],V={cmd:(0,B.jsx)(H,{}),path:(0,B.jsx)(H,{}),env:(0,B.jsx)(H,{})};function H({children:e}){return(0,B.jsx)(`code`,{className:u(`mx-0.5 inline-block rounded-sm border border-[var(--oh-border-subtle)]`,`bg-[var(--oh-surface-raised)] px-1.5 py-0.5 align-baseline font-mono text-[11px] text-white`),children:e})}function _e(){let{t:e}=a(`openhands`),[t,n]=R.useState(!1);return R.useEffect(()=>{if(!t)return;let e=setTimeout(()=>n(!1),2e3);return()=>clearTimeout(e)},[t]),(0,B.jsxs)(`div`,{className:`relative`,children:[(0,B.jsx)(`pre`,{"data-testid":`add-skill-modal-example`,className:u(`overflow-x-auto rounded-sm border border-[var(--oh-border-subtle)]`,`bg-[var(--oh-surface-raised)] p-2 pr-10 text-xs text-white`),children:z}),(0,B.jsx)(`button`,{type:`button`,"data-testid":`add-skill-modal-example-copy`,"aria-label":e(t?d.BUTTON$COPIED:d.BUTTON$COPY),disabled:t,onClick:async()=>{await navigator.clipboard.writeText(z),n(!0)},className:u(`absolute right-2 top-2 cursor-pointer rounded-sm border border-[var(--oh-border-subtle)]`,`bg-base-secondary p-1 text-tertiary-alt transition-colors`,`hover:bg-[var(--oh-surface)] hover:text-white disabled:cursor-default [&_path]:fill-current`),children:t?(0,B.jsx)(k,{width:14,height:14}):(0,B.jsx)(A,{width:14,height:14})})]})}function U({i18nKey:e}){return(0,B.jsx)(`p`,{className:`text-xs leading-relaxed text-tertiary-light`,children:(0,B.jsx)(s,{ns:`openhands`,i18nKey:e,components:V})})}function ve({onClose:e}){let{t}=a(`openhands`);return(0,B.jsx)(C,{onClose:e,"aria-label":t(d.SETTINGS$SKILLS_ADD_MODAL_TITLE),children:(0,B.jsxs)(`div`,{"data-testid":`add-skill-modal`,className:`relative flex w-[520px] max-w-[90vw] max-h-[85vh] flex-col rounded-xl border border-[var(--oh-border)] bg-base-secondary`,children:[(0,B.jsx)(O,{onClose:e,testId:`add-skill-modal-close`}),(0,B.jsxs)(`header`,{className:`flex-shrink-0 px-6 pb-4 pt-6`,children:[(0,B.jsx)(`h2`,{className:u(`pr-6`,E),children:t(d.SETTINGS$SKILLS_ADD_MODAL_TITLE)}),(0,B.jsx)(`p`,{className:`mt-4 text-sm text-tertiary-light`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_INTRO)})]}),(0,B.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 custom-scrollbar`,children:[(0,B.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,B.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_CHAT_TITLE)}),(0,B.jsx)(U,{i18nKey:d.SETTINGS$SKILLS_ADD_MODAL_CHAT_BODY}),(0,B.jsx)(`p`,{className:`text-xs text-tertiary-light`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_EXAMPLE_LABEL)}),(0,B.jsx)(_e,{}),(0,B.jsx)(`ol`,{className:`list-decimal space-y-1 pl-4 text-xs leading-relaxed text-tertiary-light`,children:ge.map(e=>(0,B.jsx)(`li`,{children:e===d.SETTINGS$SKILLS_ADD_MODAL_STEP_3?(0,B.jsx)(s,{ns:`openhands`,i18nKey:e,components:V}):t(e)},e))})]}),(0,B.jsxs)(`section`,{className:`flex flex-col gap-1`,children:[(0,B.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_URL_FORMATS_TITLE)}),(0,B.jsx)(`p`,{className:`text-xs leading-relaxed text-tertiary-light`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_URL_FORMATS)})]}),(0,B.jsxs)(`section`,{className:`flex flex-col gap-1`,children:[(0,B.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_STORAGE_TITLE)}),(0,B.jsx)(U,{i18nKey:d.SETTINGS$SKILLS_ADD_MODAL_STORAGE_BODY})]}),(0,B.jsx)(U,{i18nKey:d.SETTINGS$SKILLS_ADD_MODAL_PRIVATE_REPOS}),(0,B.jsx)(`a`,{href:he,target:`_blank`,rel:`noreferrer`,"data-testid":`add-skill-modal-docs-link`,className:`self-start text-xs text-[var(--oh-muted)] transition-colors hover:text-white hover:underline`,children:t(d.SETTINGS$SKILLS_ADD_MODAL_VIEW_DOCS)})]}),(0,B.jsx)(`footer`,{className:`flex flex-shrink-0 justify-end gap-2 px-6 pb-6 pt-4`,children:(0,B.jsx)(D,{type:`button`,variant:`secondary`,onClick:e,testId:`add-skill-modal-dismiss`,children:t(d.BUTTON$CLOSE)})})]})})}var W=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;function ye(e){let t=e.match(/^description:\s*\|\s*\r?\n((?:[ \t].*(?:\r?\n|$))+)/m);if(t)return t[1].replace(/^[ \t]+/gm,``).trim();let n=e.match(/^description:\s*['"](.+?)['"]\s*$/m);if(n)return n[1].trim();let r=e.match(/^description:\s*(.+)\s*$/m);return r?r[1].trim():null}function be(e){let t=e.match(W);return t?e.slice(t[0].length).trim():e.trim()}function xe(e){let t=e.replace(/^#+\s+[^\n]+\n+/,``).trim();return t.split(/\n\s*\n/).map(e=>e.replace(/\s+/g,` `).trim()).find(e=>e.length>0)??t.replace(/\s+/g,` `).trim()}function G(e){let t=e.description?.trim();if(t)return t;let n=e.content?.trim();if(!n)return``;let r=n.match(W);if(r){let e=ye(r[1]);if(e)return e}return xe(be(n))}var Se=`inline-flex shrink-0 items-center whitespace-nowrap rounded-full border border-text-secondary/35 bg-text-secondary/12 px-2 py-0.5 text-[11px] font-medium leading-4 text-tertiary-light`,Ce={agentskills:{labelKey:d.SETTINGS$SKILLS_TYPE_AGENTSKILLS},knowledge:{labelKey:d.SETTINGS$SKILLS_TYPE_KNOWLEDGE},repo:{labelKey:d.SETTINGS$SKILLS_TYPE_REPO}};function we({type:e}){let{t}=a(`openhands`),n=Ce[e];return(0,B.jsx)(`span`,{"data-testid":`skill-type-badge-${e}`,className:Se,children:t(n.labelKey)})}var K=[`automations`,`environment`,`code-hosting`,`agent-authoring`,`code-quality`,`integrations`,`writing`,`design`,`other`],q={automations:d.SETTINGS$SKILLS_CATEGORY_AUTOMATIONS,environment:d.SETTINGS$SKILLS_CATEGORY_ENVIRONMENT,"code-hosting":d.SETTINGS$SKILLS_CATEGORY_CODE_HOSTING,"agent-authoring":d.SETTINGS$SKILLS_CATEGORY_AGENT_AUTHORING,"code-quality":d.SETTINGS$SKILLS_CATEGORY_CODE_QUALITY,integrations:d.SETTINGS$SKILLS_CATEGORY_INTEGRATIONS,writing:d.SETTINGS$SKILLS_CATEGORY_WRITING,design:d.SETTINGS$SKILLS_CATEGORY_DESIGN,other:d.SETTINGS$SKILLS_CATEGORY_OTHER},Te={automations:g,environment:v,"code-hosting":m,"agent-authoring":f,"code-quality":b,integrations:_,writing:me,design:pe,other:fe},Ee=`other`,De=new Set(S);function Oe(e){let t=e.category;return t&&De.has(t)?t:Ee}function J(e,t,n){if(e)return`${e}-${t}-${n}`}function ke(e,t,n={}){let{variant:r=`card`,testIdPrefix:i}=n,a=Oe(e),o=[{id:`type-${e.type}`,node:(0,B.jsx)(we,{type:e.type})}];if(a!==`other`&&o.push({id:`category-${a}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`category`)??`skill-category-${e.name}`,className:F,children:t(q[a])})}),e.version&&o.push({id:`version-${e.version}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`version`)??`skill-version-${e.name}`,className:F,children:t(d.SETTINGS$SKILLS_VERSION,{version:e.version})})}),r===`detail`&&e.license&&o.push({id:`license-${e.license}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`license`),className:F,children:e.license})}),r===`detail`&&e.compatibility&&o.push({id:`compatibility-${e.compatibility}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`compatibility`),className:F,children:e.compatibility})}),e.disable_model_invocation&&o.push({id:`disable-model-invocation`,node:(0,B.jsxs)(`span`,{"data-testid":J(i,e.name,`disable-model-invocation`)??`skill-disable-model-invocation-${e.name}`,className:`inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-[rgba(248,113,113,0.35)] bg-[rgba(248,113,113,0.12)] px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]`,children:[(0,B.jsx)(`span`,{className:`size-1.5 rounded-full bg-[#fca5a5]`}),t(d.SETTINGS$SKILLS_DISABLE_MODEL_INVOCATION)]})}),r===`detail`&&e.allowed_tools)for(let t of e.allowed_tools)o.push({id:`allowed-tool-${t}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`tool-${t}`),className:u(F,`font-mono`),children:t})});if(r===`detail`&&e.metadata)for(let[t,n]of Object.entries(e.metadata))o.push({id:`metadata-${t}`,node:(0,B.jsxs)(`span`,{"data-testid":J(i,e.name,`metadata-${t}`),className:F,children:[(0,B.jsxs)(`span`,{className:`font-mono text-[10px] text-tertiary-light`,children:[t,`:`]}),` `,n]})});for(let t of e.triggers??[])o.push({id:`trigger-${t}`,node:(0,B.jsx)(`span`,{"data-testid":J(i,e.name,`trigger-${t}`),className:F,children:t})});return o}function Ae(e){let t=e?.trim();return t?!!(/^https?:\/\//i.test(t)||t.startsWith(`/`)||t.startsWith(`./`)||t.startsWith(`../`)||t.startsWith(`~`)||/^[A-Za-z]:[\\/]/.test(t)||t.includes(`/`)||t.includes(`\\`)):!1}function je({skill:e,enabled:t,onOpen:n,onToggle:r}){let{t:i}=a(`openhands`),[o,s]=R.useState(!1),c=G(e),l=R.useMemo(()=>ke(e,i),[e,i]),f=Ae(e.source);return R.useEffect(()=>{if(!o)return;let e=setTimeout(()=>s(!1),2e3);return()=>clearTimeout(e)},[o]),(0,B.jsx)(`div`,{"data-testid":`skill-card-${e.name}`,role:`button`,tabIndex:0,onClick:n,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),n())},className:u(`flex min-w-0 flex-col gap-3 overflow-hidden p-4`,j,M),children:(0,B.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,B.jsx)(ce,{skillName:e.name}),(0,B.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-3`,children:[(0,B.jsxs)(`header`,{className:`flex items-start justify-between gap-3`,children:[(0,B.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,B.jsx)(`h3`,{"data-testid":`skill-name-${e.name}`,className:`truncate text-sm font-semibold text-white`,children:e.name}),e.source?(0,B.jsxs)(`div`,{className:`mt-0.5 flex min-w-0 items-center gap-1`,children:[(0,B.jsx)(`p`,{"data-testid":`skill-source-${e.name}`,className:`min-w-0 flex-1 truncate text-xs text-tertiary-alt`,title:e.source,children:e.source}),f?(0,B.jsx)(`button`,{type:`button`,"data-testid":`skill-copy-source-${e.name}`,"aria-label":i(o?d.BUTTON$COPIED:d.SETTINGS$SKILLS_COPY_PATH),disabled:o,onClick:async t=>{t.stopPropagation(),e.source&&(await navigator.clipboard.writeText(e.source),s(!0))},className:`shrink-0 cursor-pointer border-0 bg-transparent p-0.5 text-tertiary-alt hover:text-white disabled:cursor-default [&_path]:fill-current`,children:o?(0,B.jsx)(k,{width:12,height:12}):(0,B.jsx)(A,{width:12,height:12})}):null]}):null]}),(0,B.jsx)(I,{testId:`skill-toggle-${e.name}`,isSelected:t,onToggle:r,disableTooltipKey:d.COMMON$DISABLE})]}),c?(0,B.jsx)(`div`,{"data-testid":`skill-description-${e.name}`,className:`min-w-0`,children:(0,B.jsx)(`p`,{className:`line-clamp-2 break-words text-xs leading-relaxed text-tertiary-light`,children:c})}):null,l.length>0?(0,B.jsx)(P,{pills:l,testId:`skill-triggers-${e.name}`}):null]})]})})}function Me(e){return e.name===`add-skill`?z:`/${e.name} `}function Ne({testId:e,label:t,value:n}){return(0,B.jsxs)(`label`,{className:`flex min-w-0 w-full flex-col gap-2.5`,children:[(0,B.jsx)(`span`,{className:`text-sm`,children:t}),(0,B.jsx)(`textarea`,{"data-testid":e,readOnly:!0,value:n,rows:Math.min(12,Math.max(4,n.split(`
|
|
2
2
|
`).length)),className:u(`bg-[var(--oh-surface-raised)] border border-[var(--oh-border-subtle)] w-full min-w-0 rounded-sm p-2 text-sm`,`cursor-not-allowed resize-none custom-scrollbar`)})]})}function Pe({skill:e,enabled:t,onToggle:n,onClose:r}){let{t:i}=a(`openhands`),o=ue(),[s,c]=R.useState(!1),l=R.useMemo(()=>Me(e),[e]),u=G(e),f=R.useMemo(()=>ke(e,i,{variant:`detail`,testIdPrefix:`skill-modal-pill`}),[e,i]),p=Ae(e.source);return R.useEffect(()=>{if(!s)return;let e=setTimeout(()=>c(!1),2e3);return()=>clearTimeout(e)},[s]),(0,B.jsx)(C,{onClose:r,"aria-label":e.name,children:(0,B.jsxs)(`div`,{"data-testid":`skill-detail-modal`,"data-skill-name":e.name,className:`relative bg-base-secondary p-6 rounded-xl flex flex-col gap-4 border border-[var(--oh-border)] w-[520px] max-w-[90vw] max-h-[85vh] overflow-y-auto custom-scrollbar`,children:[(0,B.jsx)(O,{onClose:r,testId:`skill-detail-modal-close`}),(0,B.jsxs)(`div`,{className:`flex items-start gap-3 pr-6`,children:[(0,B.jsx)(ce,{skillName:e.name}),(0,B.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,B.jsx)(`h2`,{"data-testid":`skill-modal-name-${e.name}`,className:E,children:e.name}),e.source?(0,B.jsxs)(`div`,{className:`mt-0.5 flex min-w-0 items-center gap-1`,children:[(0,B.jsx)(`p`,{"data-testid":`skill-modal-source-${e.name}`,className:`min-w-0 flex-1 truncate text-xs text-tertiary-alt`,title:e.source,children:e.source}),p?(0,B.jsx)(`button`,{type:`button`,"data-testid":`skill-modal-copy-source-${e.name}`,"aria-label":i(s?d.BUTTON$COPIED:d.SETTINGS$SKILLS_COPY_PATH),disabled:s,onClick:async()=>{e.source&&(await navigator.clipboard.writeText(e.source),c(!0))},className:`shrink-0 cursor-pointer border-0 bg-transparent p-0.5 text-tertiary-alt hover:text-white disabled:cursor-default [&_path]:fill-current`,children:s?(0,B.jsx)(k,{width:12,height:12}):(0,B.jsx)(A,{width:12,height:12})}):null]}):null]})]}),(0,B.jsx)(`div`,{"data-testid":`skill-modal-enable-row-${e.name}`,className:`flex w-full items-center rounded-lg border border-[var(--oh-border)] bg-[rgba(255,255,255,0.04)] px-3 py-2.5`,children:(0,B.jsx)(N,{testId:`skill-modal-toggle-${e.name}`,isToggled:t,onToggle:n,togglePosition:`right`,children:i(t?d.SETTINGS$SKILLS_ENABLED:d.SETTINGS$SKILLS_DISABLED)})}),u?(0,B.jsx)(`p`,{"data-testid":`skill-modal-description-${e.name}`,className:`text-xs text-tertiary-light`,children:u}):null,f.length>0?(0,B.jsx)(P,{pills:f,testId:`skill-modal-pills-${e.name}`}):null,e.content?(0,B.jsx)(Ne,{testId:`skill-modal-field-content-${e.name}`,label:i(d.SETTINGS$SKILLS_CONTENT),value:e.content}):null,(0,B.jsxs)(`div`,{className:`mt-2 flex justify-end gap-2`,children:[(0,B.jsx)(D,{type:`button`,variant:`secondary`,onClick:r,testId:`skill-detail-close`,children:i(d.BUTTON$CLOSE)}),(0,B.jsx)(D,{type:`button`,variant:`primary`,isDisabled:!t,onClick:()=>o(l,r),testId:`skill-detail-use-skill-${e.name}`,startContent:(0,B.jsx)(le,{className:`size-4`,"aria-hidden":!0}),children:i(d.SETTINGS$SKILLS_USE_SKILL_BUTTON)})]})]})})}function Fe({labelKey:e,count:t,checked:n,disabled:r,icon:i,testId:o,onToggle:s}){let{t:c}=a(`openhands`),l=c(e);return(0,B.jsxs)(`button`,{type:`button`,role:`checkbox`,"aria-checked":n,"data-testid":o,disabled:r,onClick:s,className:u(`flex w-full items-center gap-2 rounded-md px-1.5 py-1 text-left text-sm`,r?`cursor-default text-tertiary-alt/40`:`cursor-pointer hover:bg-[var(--oh-surface-raised)] hover:text-white`,n?`text-white`:`text-tertiary-light`),children:[(0,B.jsx)(`span`,{"aria-hidden":!0,className:u(`flex size-3.5 shrink-0 items-center justify-center rounded-[3px] border`,n?`border-white bg-white text-black`:`border-[var(--oh-border)]`),children:n?(0,B.jsx)(p,{className:`size-2.5`,strokeWidth:3}):null}),i?(0,B.jsx)(i,{className:`size-3.5 shrink-0`,"aria-hidden":!0}):null,(0,B.jsx)(`span`,{title:l,className:`min-w-0 flex-1 truncate`,children:l}),(0,B.jsx)(`span`,{className:`shrink-0 text-xs text-tertiary-alt`,children:t})]})}function Ie(e,t){if(e===`category`)return Te[t]}function Le({groups:e,onToggle:t,className:n}){let{t:r}=a(`openhands`);return e.length===0?null:(0,B.jsx)(`div`,{"data-testid":`skill-facet-rail`,className:u(`flex min-w-0 flex-col gap-5`,n),children:e.map(e=>{let n=`skill-facet-group-${e.id}-title`;return(0,B.jsxs)(`div`,{"data-testid":`skill-facet-group-${e.id}`,role:`group`,"aria-labelledby":n,className:`flex flex-col gap-1.5`,children:[(0,B.jsx)(`span`,{id:n,className:`px-1 text-[11px] font-semibold uppercase tracking-wider text-tertiary-alt`,children:r(e.labelKey)}),e.rows.map(n=>(0,B.jsx)(Fe,{testId:`skill-facet-${e.id}-${n.value}`,labelKey:n.labelKey,count:n.count,checked:n.checked,disabled:n.disabled,icon:Ie(e.id,n.value),onToggle:()=>t(e.id,n.value)},n.value))]},e.id)})})}function Re({groups:e,activeCount:t,onToggle:n,onClearAll:r,onClose:i}){let{t:o}=a(`openhands`);return(0,B.jsx)(C,{onClose:i,"aria-label":o(d.SETTINGS$SKILLS_FILTERS_MODAL_TITLE),children:(0,B.jsxs)(w,{testID:`skill-filters-modal`,className:u(`items-stretch`,T),children:[(0,B.jsx)(`h3`,{className:`text-lg font-semibold text-foreground`,children:o(d.SETTINGS$SKILLS_FILTERS_MODAL_TITLE)}),(0,B.jsx)(`div`,{className:`max-h-[60vh] overflow-y-auto custom-scrollbar-always`,children:(0,B.jsx)(Le,{groups:e,onToggle:n})}),(0,B.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[t>0?(0,B.jsx)(D,{type:`button`,variant:`secondary`,testId:`skill-filters-modal-clear`,onClick:r,children:o(d.SETTINGS$SKILLS_CLEAR_FILTERS)}):null,(0,B.jsx)(D,{type:`button`,variant:`primary`,testId:`skill-filters-modal-done`,onClick:i,children:o(d.BUTTON$CLOSE)})]})]})})}var ze=`source`,Be=`category`,Ve=`type`,He=`state`,Ue=[`enabled`,`disabled`],We=[`agentskills`,`knowledge`,`repo`],Ge={query:``,sources:new Set,categories:new Set,types:new Set,states:new Set};function Y(e,t){return e.map(e=>({value:e,labelKey:t[e]}))}function X(e,t){return new Set(e.filter(e=>t.has(e)))}var Ke={project:d.SETTINGS$SKILLS_SOURCE_PROJECT,personal:d.SETTINGS$SKILLS_SOURCE_PERSONAL,public:d.SETTINGS$SKILLS_SOURCE_PUBLIC},qe={agentskills:d.SETTINGS$SKILLS_TYPE_AGENTSKILLS,knowledge:d.SETTINGS$SKILLS_TYPE_KNOWLEDGE,repo:d.SETTINGS$SKILLS_TYPE_REPO},Je={enabled:d.SETTINGS$SKILLS_ENABLED,disabled:d.SETTINGS$SKILLS_DISABLED},Z=[{id:`state`,labelKey:d.SETTINGS$SKILLS_FACET_STATE,param:He,values:Y(Ue,Je),valueOf:(e,t)=>t.has(e.name)?`disabled`:`enabled`,selected:e=>e.states,withSelected:(e,t)=>({...e,states:X(Ue,t)})},{id:`source`,labelKey:d.SETTINGS$SKILLS_FACET_SOURCE,param:ze,values:Y(oe,Ke),valueOf:e=>L(e),selected:e=>e.sources,withSelected:(e,t)=>({...e,sources:X(oe,t)})},{id:`category`,labelKey:d.SETTINGS$SKILLS_FACET_CATEGORY,param:Be,values:Y(K,q),valueOf:e=>Oe(e),selected:e=>e.categories,withSelected:(e,t)=>({...e,categories:X(K,t)})},{id:`type`,labelKey:d.SETTINGS$SKILLS_FACET_TYPE,param:Ve,values:Y(We,qe),valueOf:e=>e.type,selected:e=>e.types,withSelected:(e,t)=>({...e,types:X(We,t)})}];function Ye(e){let t=Z.find(t=>t.id===e);if(!t)throw Error(`Unknown skill facet group: ${e}`);return t}function Xe(e,t){let n=new Set(t.values.map(({value:e})=>e));return new Set(e.map(e=>e.trim()).filter(e=>n.has(e)))}function Ze(e){return Z.reduce((t,n)=>n.withSelected(t,Xe(e.getAll(n.param),n)),{...Ge,query:e.get(`q`)??``})}function Q(e){let t=new URLSearchParams;e.query&&t.set(`q`,e.query);for(let n of Z){let r=n.selected(e);for(let{value:e}of n.values)r.has(e)&&t.append(n.param,e)}return t}function Qe(e,t){let n=t.trim();if(!n)return!0;let r=[e.name,G(e),e.description??``,e.content??``,e.license??``,e.compatibility??``,...e.triggers??[],...e.allowed_tools??[]],i=n.toLowerCase();return r.some(e=>e.toLowerCase().includes(i))}function $e(e,t,n,r){return Z.every(i=>{if(i.id===r)return!0;let a=i.selected(n);return a.size===0?!0:a.has(i.valueOf(e,t))})}function et(e,t,n){return e.filter(e=>Qe(e,n.query)&&$e(e,t,n))}function $(e,t,n){let r={};for(let i of e){let e=t.valueOf(i,n);r[e]=(r[e]??0)+1}return r}function tt(e,t,n,r,i){let a=$(t,e,r),o=e.values.filter(({value:e})=>(a[e]??0)>0),s=e.selected(i);if(o.length<2&&s.size===0)return null;let c=e.values.filter(({value:e})=>(a[e]??0)>0||s.has(e)),l=$(n.filter(t=>$e(t,r,i,e.id)),e,r);return{id:e.id,labelKey:e.labelKey,rows:c.map(({value:e,labelKey:t})=>{let n=l[e]??0,r=s.has(e);return{value:e,labelKey:t,count:n,checked:r,disabled:n===0&&!r}})}}function nt(e,t,n){let r=e.filter(e=>Qe(e,n.query));return Z.map(i=>tt(i,e,r,t,n)).filter(e=>e!==null)}function rt(e,t,n){let r=Ye(t);if(!r.values.some(e=>e.value===n))return e;let i=new Set(r.selected(e));return i.has(n)?i.delete(n):i.add(n),r.withSelected(e,i)}function it(e){return{...Ge,query:e.query}}function at(e){return Z.reduce((t,n)=>t+n.selected(e).size,0)}function ot({search:e,onSearchChange:t,activeFilterCount:n,onOpenFilters:r}){let{t:i}=a(`openhands`);return(0,B.jsxs)(`div`,{"data-testid":`skills-toolbar`,className:`flex items-stretch gap-2`,children:[(0,B.jsxs)(`div`,{className:u(`relative flex flex-1 min-w-0 items-center`,`rounded-lg border border-[var(--oh-border)] bg-base-secondary`,`focus-within:border-white/40 focus-within:ring-1 focus-within:ring-white/20`,`transition-colors`),children:[(0,B.jsx)(y,{className:`ml-3 h-4 w-4 shrink-0 text-tertiary-alt`,"aria-hidden":!0}),(0,B.jsx)(`input`,{"data-testid":`skills-search-input`,type:`search`,value:e,onChange:e=>t(e.target.value),placeholder:i(d.SETTINGS$SKILLS_SEARCH_PLACEHOLDER),"aria-label":i(d.SETTINGS$SKILLS_SEARCH_PLACEHOLDER),className:u(`flex-1 min-w-0 bg-transparent border-0 outline-none`,`px-3 py-2 text-sm placeholder:text-tertiary-alt`,`[&::-webkit-search-cancel-button]:hidden`)}),e?(0,B.jsx)(`button`,{type:`button`,onClick:()=>t(``),"aria-label":i(d.MCP$SEARCH_CLEAR),className:`mr-2 p-1 rounded text-tertiary-alt hover:text-white cursor-pointer`,children:(0,B.jsx)(x,{className:`h-4 w-4`,"aria-hidden":!0})}):null]}),(0,B.jsxs)(`button`,{type:`button`,"data-testid":`skills-filters-button`,onClick:r,className:u(`flex shrink-0 items-center gap-2 rounded-lg px-3 py-2 text-sm md:hidden`,`border border-[var(--oh-border)] bg-base-secondary text-white`,`cursor-pointer hover:bg-[var(--oh-interactive-hover)]`),children:[(0,B.jsx)(h,{className:`size-4 shrink-0`,"aria-hidden":!0}),i(d.SETTINGS$SKILLS_FILTERS_BUTTON),n>0?(0,B.jsx)(`span`,{className:`rounded-full bg-white px-1.5 text-[11px] font-medium text-black`,children:n}):null]})]})}var st=300;function ct(){let{t:e}=a(`openhands`),{mutate:t}=te(),{data:n,isLoading:i}=ee(),{data:o,isLoading:s}=ae(),[f,p]=r(),[m,h]=R.useState(()=>f.get(`q`)??``),g=R.useRef(m),[_,v]=R.useState(new Set),[y,b]=R.useState(!1),[x,S]=R.useState(null),[C,w]=R.useState(!1),[T,E]=R.useState(!1),O=i||s||!n,k=o??[],A=R.useMemo(()=>({...Ze(f),query:m}),[f,m]),j=R.useMemo(()=>nt(k,_,A),[k,_,A]),M=R.useMemo(()=>et(k,_,A),[k,_,A]),N=at(A);R.useEffect(()=>{i||!n||(v(new Set(n.disabled_skills??[])),b(!0))},[i,n?.disabled_skills]),R.useEffect(()=>{y&&t({disabled_skills:Array.from(_)},{onError:t=>{c(l(t)||e(d.ERROR$GENERIC))}})},[_,y,t,e]),R.useEffect(()=>{let e=f.get(`q`)??``;e!==g.current&&(g.current=e,h(e))},[f]),R.useEffect(()=>{if((f.get(`q`)??``)===m)return;let e=setTimeout(()=>{g.current=m,p(e=>{let t=new URLSearchParams(e);return m?t.set(`q`,m):t.delete(`q`),t},{replace:!0})},st);return()=>clearTimeout(e)},[m,f,p]);let P=e=>{e.query!==A.query&&h(e.query),Q({...e,query:``}).toString()!==Q({...A,query:``}).toString()&&p(Q(e))},F=(e,t)=>P(rt(A,e,t)),I=()=>P(it(A)),L=(e,t)=>{v(n=>{let r=new Set(n);return t?r.delete(e):r.add(e),r})};return(0,B.jsxs)(`div`,{"data-testid":`skills-settings-screen`,className:`flex h-full gap-4 md:gap-6 md:pl-8 lg:gap-10 lg:pl-10`,children:[(0,B.jsx)(se,{}),(0,B.jsxs)(`main`,{className:u(de,`h-full`),children:[(0,B.jsxs)(`div`,{"data-testid":`skills-page`,className:`mx-auto flex w-full min-w-0 max-w-[1100px] flex-col gap-6`,children:[(0,B.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-4`,children:[(0,B.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,B.jsx)(`h2`,{className:`text-xl font-semibold leading-6 text-foreground`,children:e(d.SETTINGS$SKILLS_TITLE)}),(0,B.jsx)(`div`,{"data-testid":`skills-settings-description`,className:`max-w-2xl text-sm text-tertiary-light`,children:e(d.SETTINGS$SKILLS_PAGE_DESCRIPTION)})]}),(0,B.jsx)(D,{type:`button`,variant:`secondary`,testId:`skills-add-skill-button`,className:`flex-shrink-0 whitespace-nowrap`,onClick:()=>w(!0),children:e(d.SETTINGS$SKILLS_ADD_BUTTON)})]}),O?(0,B.jsx)(`div`,{className:`flex flex-col gap-4`,children:[1,2,3].map(e=>(0,B.jsx)(`div`,{className:`h-24 rounded-2xl bg-tertiary animate-pulse`},e))}):null,!O&&k.length===0?(0,B.jsx)(`div`,{"data-testid":`skills-empty`,className:re,children:(0,B.jsx)(`p`,{className:`text-sm text-tertiary-light`,children:e(d.SETTINGS$SKILLS_NO_SKILLS)})}):null,!O&&k.length>0?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(ot,{search:A.query,onSearchChange:e=>P({...A,query:e}),activeFilterCount:N,onOpenFilters:()=>E(!0)}),(0,B.jsxs)(`div`,{className:`flex min-w-0 gap-6`,children:[(0,B.jsx)(Le,{groups:j,onToggle:F,className:`hidden w-[240px] shrink-0 self-start md:flex`}),(0,B.jsxs)(`section`,{className:`flex min-w-0 flex-1 flex-col gap-3`,children:[(0,B.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-xs text-tertiary-light`,children:[(0,B.jsx)(`span`,{"data-testid":`skills-result-summary`,children:e(d.SETTINGS$SKILLS_RESULT_COUNT,{count:M.length})}),N>0?(0,B.jsx)(`button`,{type:`button`,"data-testid":`skills-clear-filters`,onClick:I,className:`cursor-pointer underline hover:text-white`,children:e(d.SETTINGS$SKILLS_CLEAR_FILTERS)}):null]}),M.length===0?(0,B.jsx)(`div`,{"data-testid":`skills-no-match`,className:re,children:(0,B.jsx)(`p`,{className:`text-sm text-tertiary-light`,children:e(d.SETTINGS$SKILLS_NO_MATCH)})}):(0,B.jsx)(`div`,{className:u(ne),children:(0,B.jsx)(`div`,{className:ie,children:M.map(e=>(0,B.jsx)(je,{skill:e,enabled:!_.has(e.name),onOpen:()=>S(e),onToggle:t=>L(e.name,t)},e.name))})})]})]}),T?(0,B.jsx)(Re,{groups:j,activeCount:N,onToggle:F,onClearAll:I,onClose:()=>E(!1)}):null]}):null]}),x&&(0,B.jsx)(Pe,{skill:x,enabled:!_.has(x.name),onToggle:e=>L(x.name,e),onClose:()=>S(null)}),C&&(0,B.jsx)(ve,{onClose:()=>w(!1)})]})]})}var lt=i(ct);export{lt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{t as r}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{t as i,z as a}from"./utils-DPQfkd-7.js";import{a as o,i as s}from"./messages-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{t as r}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{t as i,z as a}from"./utils-DPQfkd-7.js";import{a as o,i as s}from"./messages-B2l0qLVk.js";import{n as c}from"./conversation-Cmyw9bFh.js";import{r as l}from"./typography-D9tiHct7.js";import{t as u}from"./u-check-circle-BKn1spCL.js";import{t as d}from"./conversation-tab-empty-state-C9sfDOlt.js";var f=e(t(),1),p=n();function m({task:e}){let{t}=r(`openhands`),n=(0,f.useMemo)(()=>{switch(e.status){case`todo`:return(0,p.jsx)(o,{className:`w-4 h-4 text-[#ffffff]`});case`in_progress`:return(0,p.jsx)(s,{className:`w-4 h-4 text-[#ffffff]`});case`done`:return(0,p.jsx)(u,{className:`w-4 h-4 text-[var(--oh-muted)]`});default:return(0,p.jsx)(o,{className:`w-4 h-4 text-[#ffffff]`})}},[e.status]),c=e.status===`done`;return(0,p.jsxs)(`div`,{className:`flex gap-2 items-center w-full`,"data-name":`item`,children:[(0,p.jsx)(`div`,{className:`shrink-0`,children:n}),(0,p.jsxs)(`div`,{className:`flex flex-col items-start justify-center leading-[16px] text-nowrap whitespace-pre font-normal`,children:[(0,p.jsx)(l.Text,{className:i(`text-[12px]`,c?`text-[var(--oh-muted)]`:`text-white`),children:e.title}),e.notes&&(0,p.jsxs)(l.Text,{className:`text-[10px] text-[var(--oh-muted)]`,children:[t(a.TASK_TRACKING_OBSERVATION$TASK_NOTES),`: `,e.notes]})]})]})}function h(){let{t:e}=r(`openhands`),{taskList:t}=c();return t.length===0?(0,p.jsx)(d,{icon:(0,p.jsx)(u,{}),children:e(a.COMMON$NO_TASKS)}):(0,p.jsx)(`main`,{className:`h-full overflow-y-auto flex flex-col custom-scrollbar-always`,children:t.map(e=>(0,p.jsx)(`div`,{"data-active":e.status===`in_progress`?`true`:`false`,className:i(`px-4 py-2`,e.status===`in_progress`&&`bg-[var(--oh-surface-raised)]`),children:(0,p.jsx)(m,{task:e})},e.id))})}export{h as default};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{t as r}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{E as i,t as a,z as o}from"./utils-DPQfkd-7.js";import{i as s}from"./conversation-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{t as r}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{E as i,t as a,z as o}from"./utils-DPQfkd-7.js";import{i as s}from"./conversation-Cmyw9bFh.js";import{d as c}from"./llm-not-configured-banner-DCE_0B4I.js";import{G as l,v as u}from"./markdown-renderer-DzvgdZey.js";import{n as d,t as f}from"./vendor~terminal-BVSbSr6V.js";import{t as p}from"./conversation-tab-empty-state-C9sfDOlt.js";var m=e(t(),1),h=`[Python Interpreter: `,g=e=>{let t=e.indexOf(h);if(t<0)return e;let n=t+21;return e.indexOf(`]`,n)<=n?e:e.substring(0,t).trim()},_=(e,t,n=!1)=>{let{content:r,type:i}=e;if(i===`input`&&n)return;let a=(r||``).replaceAll(`
|
|
2
2
|
`,`\r
|
|
3
3
|
`).trim();a&&t.writeln(g(a))},v=(e,t,n)=>{if(!e||!t||!n||window.getComputedStyle(n).display===`none`)return!1;let{clientWidth:r,clientHeight:i}=n;return!(r===0||i===0||!e.element)};function y(e){let t=e.ownerDocument.createElement(`span`);t.style.color=`var(--oh-surface-foreground)`,t.style.position=`absolute`,t.style.visibility=`hidden`,t.style.pointerEvents=`none`,e.appendChild(t);let n=getComputedStyle(t).color;return t.remove(),n&&n!==`rgba(0, 0, 0, 0)`?n:getComputedStyle(e).color}var b={current:0},x=()=>{let e=u(e=>e.commands),t=m.useRef(null),n=m.useRef(null),r=m.useRef(null),i=b,a=m.useRef(!1),o=e=>new f({fontFamily:`Menlo, Monaco, 'Courier New', monospace`,fontSize:14,scrollback:1e4,scrollSensitivity:1,fastScrollSensitivity:5,disableStdin:!0,allowTransparency:!0,theme:{background:`rgba(0, 0, 0, 0)`,foreground:y(e)}}),s=m.useCallback(()=>{a.current||v(t.current,n.current,r.current)&&n.current.fit()},[]),c=()=>{t.current&&(n.current&&t.current.loadAddon(n.current),r.current&&(t.current.open(r.current),t.current.write(`\x1B[?25l`),s()))};return m.useEffect(()=>{a.current=!1;let s=r.current;if(s){if(t.current=o(s),n.current=new d,r.current&&(c(),e.length>0)){for(let n=0;n<e.length;n+=1)e[n].type===`input`&&t.current.write(`$ `),_(e[n],t.current,!1);i.current=e.length}return()=>{a.current=!0,t.current?.dispose(),i.current=0}}},[]),m.useEffect(()=>{if(t.current&&e.length>0&&i.current<e.length){for(let n=i.current;n<e.length;n+=1)e[n].type===`input`&&t.current.write(`$ `),_(e[n],t.current,!1);i.current=e.length}},[e]),m.useEffect(()=>{let e=null;return e=new ResizeObserver(()=>{requestAnimationFrame(()=>{s()})}),r.current&&e.observe(r.current),()=>{e?.disconnect()}},[s]),r},S=n();function C({className:e,testId:t}){return(0,S.jsx)(c,{testId:t,className:e})}function w(){let{t:e}=r(`openhands`);return(0,S.jsx)(p,{className:`h-full`,icon:(0,S.jsx)(s,{"aria-hidden":!0,strokeWidth:2,className:`size-full`}),children:e(o.TERMINAL$NO_OUTPUT)})}function T(){let{curAgentState:e}=l(),t=u(e=>e.commands),n=i.includes(e),r=t.length>0,o=n||!r,s=x();return(0,S.jsxs)(`div`,{className:`relative flex h-full min-h-0 flex-col`,children:[n&&(0,S.jsx)(C,{className:`pt-16`}),!n&&!r&&(0,S.jsx)(w,{}),(0,S.jsx)(`div`,{className:a(`flex-1 min-h-0 p-4`,o&&`pointer-events-none absolute inset-0 h-0 w-0 overflow-hidden p-0 opacity-0`),children:(0,S.jsx)(`div`,{ref:s,className:`h-full w-full`})})]})}export{T as default};
|
package/build/assets/{use-acp-credential-form-DJmmJKMo.js → use-acp-credential-form-DGyo0QvL.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{n as r}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js";import{t as i}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{v as a}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t as o}from"./useQuery-BCnzy4LX.js";import{$ as s,At as c,Nt as l,Pt as u,jt as d,n as f}from"./active-backend-context-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{n as r}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js";import{t as i}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{v as a}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t as o}from"./useQuery-BCnzy4LX.js";import{$ as s,At as c,Nt as l,Pt as u,jt as d,n as f}from"./active-backend-context-B_bg5h9O.js";import{t as p,z as m}from"./utils-DPQfkd-7.js";import{t as h}from"./check-DLOKoFU9.js";import{t as g}from"./loader-circle-C5AnEN8r.js";import{l as _}from"./form-control-classes-DLN3Qgub.js";import{n as v,t as y}from"./settings-input-D61Vzp9e.js";import{a as b,l as x}from"./acp-providers-BkL3HWa3.js";import{n as S,t as C}from"./use-create-secret-DcpT3RPw.js";var w=e(t(),1),T=n();function E({conflicts:e}){let{t}=i(`openhands`);return(0,T.jsx)(T.Fragment,{children:e.map(([e,n])=>(0,T.jsx)(`p`,{"data-testid":`acp-credential-conflict-warning`,className:`text-sm text-amber-300`,children:t(m.SETTINGS$ACP_CREDENTIAL_CONFLICT_WARNING,{credential:e,conflicting:n})},`${e}:${n}`))})}function D({status:e,isChecking:t,providerName:n,testIdPrefix:r}){let{t:a}=i(`openhands`);return e===`authenticated`?(0,T.jsxs)(`div`,{"data-testid":`${r}-detected`,className:`flex items-start gap-2 rounded-xl border border-green-500/40 bg-green-500/10 px-4 py-3 text-sm text-green-200`,children:[(0,T.jsx)(h,{className:`mt-0.5 size-4 shrink-0 text-green-400`,"aria-hidden":!0}),(0,T.jsx)(`span`,{children:a(m.ONBOARDING$ACP_AUTH_DETECTED,{provider:n})})]}):t?(0,T.jsxs)(`div`,{"data-testid":`${r}-checking`,className:`flex items-center gap-2 text-sm text-[var(--oh-muted)]`,children:[(0,T.jsx)(g,{className:`size-4 shrink-0 animate-spin`,"aria-hidden":!0}),(0,T.jsx)(`span`,{children:a(m.ONBOARDING$ACP_AUTH_CHECKING,{provider:n})})]}):null}function O({field:e,value:t,onChange:n,alreadySet:r,testId:a,showOptionalTag:o}){let{t:s}=i(`openhands`),c=r?s(m.ONBOARDING$ACP_SECRET_ALREADY_SET):``;return(0,T.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[e.multiline?(0,T.jsxs)(`label`,{className:`flex flex-col gap-2.5`,children:[(0,T.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`span`,{className:`text-sm font-mono text-white`,children:e.name}),o&&(0,T.jsx)(v,{})]}),(0,T.jsx)(`textarea`,{"data-testid":a,name:e.name,rows:4,spellCheck:!1,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`,value:t,placeholder:c,onChange:e=>n(e.target.value),className:p(_,`font-mono text-xs`)})]}):(0,T.jsx)(y,{testId:a,name:e.name,label:e.name,labelClassName:`font-mono`,type:e.secret?`password`:`text`,value:t,onChange:n,showOptionalTag:o,placeholder:c}),(0,T.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:s(e.hint_key,e.hint_values)})]})}var k=10;function A(e){return`${e.stdout??``}\n${e.stderr??``}`}function j(e){let t;try{t=JSON.parse((e.stdout??``).trim())}catch{return`unknown`}let n=t?.loggedIn;return typeof n==`boolean`?n?`authenticated`:`unauthenticated`:`unknown`}function M(e){let t=A(e).toLowerCase();return t.includes(`not logged in`)?`unauthenticated`:t.includes(`logged in`)?`authenticated`:`unknown`}function N(e){let t=(e.stdout??``).trim();return t===`present`?`authenticated`:t===`absent`?`unauthenticated`:`unknown`}var P={"claude-code":{command:`claude auth status --json`,classify:j},codex:{command:`codex login status`,classify:M},"gemini-cli":{command:`test -f "$HOME/.gemini/oauth_creds.json" && echo present || echo absent`,classify:N}},F=class{static async getAuthStatus(e){let t=P[e];if(!t)return`unknown`;let n=await new a(s()).executeCommand(t.command,void 0,k);return t.classify(n)}};async function I(e){try{return await F.getAuthStatus(e)}catch{return`unknown`}}function L(e,t={}){let{enabled:n=!0}=t,r=f(),i=r.backend.kind===`local`,a=n&&i&&!!e,s=o({queryKey:[`acp-auth-status`,r.backend.id,e],queryFn:()=>I(e),enabled:a,staleTime:1/0,gcTime:1e3*60*15,retry:!1,refetchOnWindowFocus:!1,refetchOnMount:!1});return{status:s.data??`unknown`,isChecking:a&&s.isFetching&&s.data===void 0,isSupported:i}}function R(e,t){let{t:n}=i(`openhands`),a=r(),{mutateAsync:o}=C(),[s,f]=w.useState(!1);return{saveFilled:async(r,{silent:i=!1}={})=>{let s=e.map(e=>({field:e,value:r[e.name]?.trim()})).filter(e=>!!e.value);if(s.length===0)return!0;f(!0);try{for(let{field:e,value:t}of s)await o({name:e.name,value:t});return await a.invalidateQueries({queryKey:[`secrets-search`]}),await a.invalidateQueries({queryKey:[`secrets`]}),!t&&s.some(({field:e})=>e.multiline)?l(n(m.ONBOARDING$ACP_SECRETS_ORPHANED_WARNING)):i||d(n(m.SETTINGS$SAVED)),!0}catch(e){return c(u(e)||n(m.ERROR$GENERIC)),!1}finally{f(!1)}},isSaving:s}}function z(e){let{data:t}=S(),n=w.useMemo(()=>x(e),[e]),[r,i]=w.useState({}),{saveFilled:a,isSaving:o}=R(n,!0);w.useEffect(()=>{i({})},[e]);let s=w.useCallback(e=>(t??[]).some(t=>t.name===e),[t]),c=w.useCallback(e=>!!r[e]?.trim()||s(e),[r,s]),l=w.useCallback((e,t)=>i(n=>({...n,[e]:t})),[]),u=w.useCallback(()=>i({}),[]);return{fields:n,values:r,setValue:l,secretExists:s,hasValueFor:c,conflicts:b(e,c),consumesFileCredentials:!0,isDirty:n.some(e=>!!r[e.name]?.trim()),save:e=>a(r,e),reset:u,isSaving:o}}export{E as a,D as i,L as n,O as r,z as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js";import{t}from"./useMutation-ChpkYxI5.js";import{R as n,k as r}from"./active-backend-context-
|
|
1
|
+
import{n as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js";import{t}from"./useMutation-ChpkYxI5.js";import{R as n,k as r}from"./active-backend-context-B_bg5h9O.js";import{t as i}from"./settings-service.api-DfPYaxZJ.js";import{n as a}from"./use-agent-profiles-B37XWDLq.js";var o=[`activate-agent-profile`];function s(){let s=e();return t({mutationKey:o,mutationFn:e=>a.activateProfile(e),onMutate:async e=>{await s.cancelQueries({queryKey:r.all});let t=s.getQueriesData({queryKey:r.all});return s.setQueriesData({queryKey:r.all},t=>t&&{...t,active_agent_profile_id:e}),{snapshots:t}},onError:(e,t,n)=>{n?.snapshots?.forEach(([e,t])=>{s.setQueryData(e,t)})},onSuccess:async()=>{i.invalidateCache(),await s.invalidateQueries({queryKey:r.all}),await s.invalidateQueries({queryKey:n.personal()})}})}export{s as n,o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t}from"./useQuery-BCnzy4LX.js";import{$ as n,A as r,M as i,ct as a,k as o,n as s}from"./active-backend-context-
|
|
1
|
+
import{b as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t}from"./useQuery-BCnzy4LX.js";import{$ as n,A as r,M as i,ct as a,k as o,n as s}from"./active-backend-context-B_bg5h9O.js";import{t as c}from"./proxy-b4aqL4SX.js";var l=`/api/agent-profiles`;function u(){let e=a().backend;if(e.kind!==`cloud`)throw Error(`Cloud agent-profile call requires a cloud backend.`);return e}async function d(){return c({backend:u(),method:`GET`,path:l})}async function f(e){return c({backend:u(),method:`GET`,path:`${l}/${encodeURIComponent(e)}`})}async function p(e,t){return c({backend:u(),method:`POST`,path:`${l}/${encodeURIComponent(e)}`,body:t})}async function m(e){return c({backend:u(),method:`DELETE`,path:`${l}/${encodeURIComponent(e)}`})}async function h(e,t){return c({backend:u(),method:`POST`,path:`${l}/${encodeURIComponent(e)}/rename`,body:{new_name:t}})}async function g(e){return c({backend:u(),method:`POST`,path:`${l}/${encodeURIComponent(e)}/activate`,body:{}})}function _(){return a().backend.kind===`cloud`}var v=`default`,y=class{static async listProfiles(){return _()?d():new e(n()).listAgentProfiles()}static async getProfile(t,r){if(_())return f(t);let i=r?{exposeSecrets:r}:{};return new e(n()).getAgentProfile(t,i)}static async saveProfile(t,r){return _()?p(t,r):new e(n()).saveAgentProfile(t,r)}static async deleteProfile(t){return _()?m(t):new e(n()).deleteAgentProfile(t)}static async renameProfile(t,r){return _()?h(t,r):new e(n()).renameAgentProfile(t,r)}static async activateProfile(t){return _()?g(t):new e(n()).activateAgentProfile(t)}};function b(e={}){let{backend:n,orgId:a}=s();return t({queryKey:[...o.all,n.id,a],queryFn:y.listProfiles,...i,...r,enabled:e.enabled??!0,meta:{disableToast:!0}})}export{y as n,v as r,b as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{t as r}from"./useQuery-BCnzy4LX.js";import{n as i}from"./active-backend-context-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{t as r}from"./useQuery-BCnzy4LX.js";import{n as i}from"./active-backend-context-B_bg5h9O.js";import{t as a}from"./utils-DPQfkd-7.js";import{t as o}from"./organization-service.api-DK8csGvK.js";import{_ as s,u as c}from"./form-control-classes-DLN3Qgub.js";import{c as l,u}from"./dropdown-classes-zFW7qPSK.js";var d=n();function f({icon:e,text:t,className:n}){return(0,d.jsxs)(`div`,{className:a(`flex min-w-0 w-full items-center`,l,n),children:[(0,d.jsx)(`span`,{className:u,"aria-hidden":!0,children:e}),(0,d.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t})]})}var p=e(t()),m=e=>(0,d.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,d.jsx)(`path`,{d:`M7 4C7 2.89543 7.89543 2 9 2H15C16.1046 2 17 2.89543 17 4V6H18.9897C18.9959 5.99994 19.0021 5.99994 19.0083 6H21C21.5523 6 22 6.44772 22 7C22 7.55228 21.5523 8 21 8H19.9311L19.0638 20.1425C18.989 21.1891 18.1182 22 17.0689 22H6.93112C5.88184 22 5.01096 21.1891 4.9362 20.1425L4.06888 8H3C2.44772 8 2 7.55228 2 7C2 6.44772 2.44772 6 3 6H4.99174C4.99795 5.99994 5.00414 5.99994 5.01032 6H7V4ZM9 6H15V4H9V6ZM6.07398 8L6.93112 20H17.0689L17.926 8H6.07398ZM10 10C10.5523 10 11 10.4477 11 11V17C11 17.5523 10.5523 18 10 18C9.44772 18 9 17.5523 9 17V11C9 10.4477 9.44772 10 10 10ZM14 10C14.5523 10 15 10.4477 15 11V17C15 17.5523 14.5523 18 14 18C13.4477 18 13 17.5523 13 17V11C13 10.4477 13.4477 10 14 10Z`,fill:`currentColor`})}),h=e=>(0,d.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,d.jsx)(`path`,{d:`M14.25 19.5C14.25 20.7426 13.2426 21.75 12 21.75C10.7574 21.75 9.75 20.7426 9.75 19.5C9.75 18.2574 10.7574 17.25 12 17.25C13.2426 17.25 14.25 18.2574 14.25 19.5ZM14.25 12C14.25 13.2426 13.2426 14.25 12 14.25C10.7574 14.25 9.75 13.2426 9.75 12C9.75 10.7574 10.7574 9.75 12 9.75C13.2426 9.75 14.25 10.7574 14.25 12ZM14.25 4.5C14.25 5.74264 13.2426 6.75 12 6.75C10.7574 6.75 9.75 5.74264 9.75 4.5C9.75 3.25736 10.7574 2.25 12 2.25C13.2426 2.25 14.25 3.25736 14.25 4.5Z`,fill:`currentColor`})}),g=p.forwardRef(function({onClick:e,className:t,iconClassName:n,ariaLabel:r,testId:i=`ellipsis-button`},o){return(0,d.jsx)(`button`,{ref:o,"data-testid":i,type:`button`,onClick:e,"aria-label":r,className:a(`p-1 rounded-md cursor-pointer`,s,`text-[var(--oh-muted)]`,c,`flex items-center justify-center`,t),children:(0,d.jsx)(h,{className:n??`w-4 h-4`})})}),_=`edit_org_settings`;function v(){let{backend:e,orgId:t}=i(),n=e.kind===`cloud`,{data:a}=r({queryKey:[`cloud-current-user`,e.id,t,e.connectionRevision??0],queryFn:()=>o(t,e),enabled:n&&!!t,staleTime:1e3*60*5,retry:!1,meta:{disableToast:!0}});return n?a?.permissions?a.permissions.includes(_):a?.role===`owner`||a?.role===`admin`:!0}export{f as a,m as i,g as n,h as r,v as t};
|
package/build/assets/{use-cloud-current-user-id-QD9x3ySO.js → use-cloud-current-user-id-U6HPjy50.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./useQueries-Cjv3E8_1.js";import{n as t,r as n}from"./active-backend-context-
|
|
1
|
+
import{t as e}from"./useQueries-Cjv3E8_1.js";import{n as t,r as n}from"./active-backend-context-B_bg5h9O.js";import{n as r,r as i,t as a}from"./organization-service.api-DK8csGvK.js";function o(){let{backends:t}=n(),a=t.filter(e=>e.kind===`cloud`),o=e({queries:a.map(e=>({queryKey:[`cloud-organizations`,e.id,e.connectionRevision??0],queryFn:async()=>{let t=await r(e);if(e.authMode===`cookie`)return t;let n=await i(e);return n.isLegacyKey||n.orgId===null?t:{...t,items:t.items.filter(e=>e.id===n.orgId)}},staleTime:1e3*60*5,retry:!1,meta:{disableToast:!0}}))}),s={};return a.forEach((e,t)=>{let n=o[t];s[e.id]={backend:e,isLoading:n.isLoading,orgs:n.data?.items??[],currentOrgId:n.data?.currentOrgId??null}}),s}function s(){let{backends:r}=n(),i=t(),s=o(),c=[];for(let e of r)if(e.kind===`cloud`){let t=s[e.id],n=e.id===i.backend.id&&i.orgId?i.orgId:t?.orgs[0]?.id??null;n&&c.push({backendId:e.id,connectionRevision:e.connectionRevision??0,orgIdForMe:n})}let l=e({queries:c.map(({backendId:e,connectionRevision:t,orgIdForMe:n})=>{let i=r.find(t=>t.id===e);return{queryKey:[`cloud-current-user`,e,n,t],queryFn:async()=>i?a(n,i):{orgId:n,userId:``},enabled:!!i,staleTime:1e3*60*5,retry:!1,meta:{disableToast:!0}}})}),u={};return c.forEach((e,t)=>{let n=l[t];u[e.backendId]={isLoading:n.isLoading,userId:n.data?.userId??null}}),u}export{o as n,s as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t}from"./useQuery-BCnzy4LX.js";import{$ as n,J as r,K as i,L as a,M as o,Z as s}from"./active-backend-context-
|
|
1
|
+
import{m as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t}from"./useQuery-BCnzy4LX.js";import{$ as n,J as r,K as i,L as a,M as o,Z as s}from"./active-backend-context-B_bg5h9O.js";var c=class{static async getModels(){let t=new e(n()),[r,i,a]=await Promise.all([t.getModels(),t.getVerifiedModels(),t.getProviders()]),o=Object.keys(i??{}).sort(),s=o.flatMap(e=>i[e]??[]);return{models:r??[],verified_models:s,verified_providers:a?.filter(e=>o.includes(e))??o,default_model:s[0]??r?.[0]??``}}static async getConfig(){return await s(),{feature_flags:{hide_llm_settings:!1,hide_users_page:!0},providers_configured:[],maintenance_start_time:null,recaptcha_site_key:null,faulty_models:[],error_message:null,updated_at:new Date().toISOString()}}},l=e=>t({queryKey:a.WEB_CLIENT_CONFIG,queryFn:c.getConfig,retry:(e,t)=>!r(t)&&!i(t)&&e<3,meta:{disableToast:!0},...o,enabled:e?.enabled});export{c as n,l as t};
|
package/build/assets/{use-create-conversation-DWaSVUOB.js → use-create-conversation-CRf1dCm5.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js";import{t}from"./useMutation-ChpkYxI5.js";import{A as n,I as r,N as i,k as a,n as o}from"./active-backend-context-
|
|
1
|
+
import{n as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js";import{t}from"./useMutation-ChpkYxI5.js";import{A as n,I as r,N as i,k as a,n as o}from"./active-backend-context-B_bg5h9O.js";import{t as s}from"./use-tracking-salbPJxT.js";import{C as c,S as l,t as u,x as d}from"./agent-server-conversation-service.api-BheU4HX3.js";import{t as f}from"./profiles-service.api-vcE_jJCe.js";import{t as p}from"./use-llm-profiles-CHxqoHiN.js";import{n as m,t as h}from"./use-agent-profiles-B37XWDLq.js";import{t as g}from"./plugins-management-service-CywqyfLK.js";function _(e){if(e.name)return e.name;if(e.repo_path){let t=e.repo_path.split(`/`).filter(Boolean);if(t.length>0)return t[t.length-1]}let{source:t}=e;return t.startsWith(`github:`)?t.replace(`github:`,``):t.includes(`/`)&&t.split(`/`).pop()?.replace(/\.git$/,``)||t}function v(e){let{source:t}=e;return!(t.startsWith(`github:`)||/^[a-z][a-z0-9+.-]*:\/\//i.test(t))}function y(e){let t=e.source.startsWith(`github:`)?e.source.replace(`github:`,``):e.source;return e.ref?`${t} @ ${e.ref}`:t}function b(e){return[e.source,e.ref??``,e.repo_path??``].join(` `)}var x=[`create-conversation`],S=()=>{let _=e(),{trackConversationCreated:v}=s(),{data:y}=p(),{backend:S,orgId:C}=o();return h(),t({mutationKey:x,mutationFn:async e=>{let{query:t,conversationInstructions:o,plugins:s,repository:p,workingDir:h,workspaceMode:v,parentConversationId:x,agentType:w,agentProfileId:T}=e,E;try{E=await _.ensureQueryData({queryKey:[...a.all,S.id,C],queryFn:m.listProfiles,...n})}catch{}let D=T??E?.active_agent_profile_id??void 0,O=D?E?.profiles?.find(e=>e.id===D):void 0,k=S.kind===`cloud`,A=D;if(!k&&O?.name==="default"&&O?.agent_kind===`openhands`)A=void 0;else if(O?.agent_kind===`openhands`&&O.llm_profile_ref){let e=!1;try{e=(await _.ensureQueryData({queryKey:[...i.all,S.id,C],queryFn:f.listProfiles,retry:!1})).profiles.some(e=>e.name===O.llm_profile_ref)}catch{}e||(console.warn(`Agent profile "${O.name}" references missing LLM profile "${O.llm_profile_ref}"; launching from agent_settings instead.`),A=void 0)}let j=A?[void 0,A,O?.agent_kind]:[],M=await u.createConversation(t,o,s,p?{selected_repository:p.name,selected_branch:p.branch??null,git_provider:p.gitProvider}:null,h,v,x,w,...j),N=M.app_conversation_id,P=s?.map(c)??[],F=P;if(N){let e=[];try{e=await _.ensureQueryData({queryKey:r.installed,queryFn:()=>g.listInstalledPlugins()})}catch{}let t=new Set(P.map(b)),n=e.filter(e=>e.enabled).map(e=>({source:e.source,ref:e.resolved_ref??null,repo_path:e.repo_path??null,name:e.name})).filter(e=>!t.has(b(e)));F=[...P,...n]}let I=A&&O?.agent_kind===`openhands`?O.llm_profile_ref:y?.active_profile??null;if(N&&(I||F.length)){let e=d(N);l(N,{selected_repository:e?.selected_repository??null,selected_branch:e?.selected_branch??null,git_provider:e?.git_provider??null,selected_workspace:e?.selected_workspace??null,workspace_mode:e?.workspace_mode??null,active_profile:I??e?.active_profile??null,plugins:F.length?F:e?.plugins??null})}return{conversation_id:M.app_conversation_id?M.app_conversation_id:`task-${M.id}`,session_api_key:null,url:M.agent_server_url,task_id:M.id}},onSuccess:async(e,t)=>{v({conversationId:e.conversation_id,taskId:e.task_id,hasRepository:!!t.repository,gitProvider:t.repository?.gitProvider,hasWorkspace:!!t.workingDir,workspaceMode:t.workspaceMode,hasInitialQuery:!!t.query,agentType:t.agentType,hasParentConversation:!!t.parentConversationId,entryPoint:t.entryPoint}),_.invalidateQueries({queryKey:[`user`,`conversations`]}),_.invalidateQueries({queryKey:[`start-tasks`]})}})};export{v as a,y as i,S as n,b as o,_ as r,x as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t}from"./vendor-styling-Ck5D_A2Q.js";import{t as n}from"./useMutation-ChpkYxI5.js";import{t as r}from"./useQuery-BCnzy4LX.js";import{n as i}from"./active-backend-context-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t}from"./vendor-styling-Ck5D_A2Q.js";import{t as n}from"./useMutation-ChpkYxI5.js";import{t as r}from"./useQuery-BCnzy4LX.js";import{n as i}from"./active-backend-context-B_bg5h9O.js";import{t as a}from"./secrets-service-BHF4fxML.js";var o=e(t(),1),s=(e={})=>{let{nameContains:t,enabled:n=!0}=e,s=i(),c=r({queryKey:[`secrets`,s.backend.id,s.orgId],queryFn:a.getSecrets,enabled:n,staleTime:1e3*60*5,gcTime:1e3*60*15});return{data:(0,o.useMemo)(()=>{if(!c.data)return[];if(!t)return c.data;let e=t.toLowerCase();return c.data.filter(t=>t.name.toLowerCase().includes(e))},[c.data,t]),isLoading:c.isLoading,isError:c.isError,hasNextPage:!1,isFetchingNextPage:!1,fetchNextPage:()=>{},onLoadMore:()=>{},refetch:c.refetch}},c=()=>n({mutationFn:({name:e,value:t,description:n})=>a.createSecret(e,t,n)});export{s as n,c as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./useQuery-BCnzy4LX.js";import{M as t,N as n,n as r}from"./active-backend-context-
|
|
1
|
+
import{t as e}from"./useQuery-BCnzy4LX.js";import{M as t,N as n,n as r}from"./active-backend-context-B_bg5h9O.js";import{t as i}from"./profiles-service.api-vcE_jJCe.js";function a(a={}){let{backend:o,orgId:s}=r();return e({queryKey:[...n.all,o.id,s],queryFn:i.listProfiles,...t,enabled:a.enabled??!0,meta:{disableToast:!0}})}export{a as t};
|
package/build/assets/{use-manifest-capabilities-DBYPjyV6.js → use-manifest-capabilities-zihHDbMW.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t}from"./useQuery-BCnzy4LX.js";import{n,z as r}from"./active-backend-context-
|
|
1
|
+
import{j as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t}from"./useQuery-BCnzy4LX.js";import{n,z as r}from"./active-backend-context-B_bg5h9O.js";import{n as i}from"./use-tracking-salbPJxT.js";function a(t){if(e.isAxiosError(t))return t.response?.data;if(t instanceof Error&&`response`in t)return t.response}function o(e,t){let n=a(e);if(n&&typeof n==`object`){let{message:e,detail:t}=n;if(typeof e==`string`&&e)return e;if(typeof t==`string`&&t)return t}return e instanceof Error&&e.message?e.message:t}function s(e,t){return t.filter(t=>!e.includes(t))}function c(e,t){if(!t.ready)return{supported:!1,unmet:[]};let n=[...s(t.features??[],e.requires.features??[]),...s(t.triggerKinds??[],Object.keys(e.setup.form.triggers??{}))];return{supported:n.length===0,unmet:n}}function l(){let{backend:e,orgId:a}=n();return t({queryKey:[...r.capabilities(),e.id,a],queryFn:()=>i.getCapabilities(),retry:!1,staleTime:1e3*60*5,meta:{disableToast:!0}})}function u(e){let t=l();if(t.isLoading)return{capabilities:null,supported:`unknown`,unmet:[],isLoading:!0};if(!t.data)return{capabilities:null,supported:`unknown`,unmet:[],isLoading:!1};let n=c(e,t.data);return{capabilities:t.data,supported:n.supported,unmet:n.unmet,isLoading:!1}}export{o as i,u as n,a as r,l as t};
|
package/build/assets/{use-onboarding-completion-CtNJxkXG.js → use-onboarding-completion-6kWOW3ul.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t}from"./vendor-styling-Ck5D_A2Q.js";import{S as n,d as r,j as i,y as a}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t as o}from"./useQueries-Cjv3E8_1.js";import{$ as s,B as c,Dt as l,Et as u,Lt as d,Ot as f,Rt as p,Tt as m,X as h}from"./active-backend-context-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t}from"./vendor-styling-Ck5D_A2Q.js";import{S as n,d as r,j as i,y as a}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t as o}from"./useQueries-Cjv3E8_1.js";import{$ as s,B as c,Dt as l,Et as u,Lt as d,Ot as f,Rt as p,Tt as m,X as h}from"./active-backend-context-B_bg5h9O.js";import"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~hjcjabwg-CuQhkiS7.js";import{n as g,r as _}from"./organization-service.api-DK8csGvK.js";var v=e(t(),1),y=1e4,b=4e3,x=`Invalid API key`,S=`API key required`,C=`Cloud API key or network issue`,w=`Logged out`;function T(e){return e===x}function E(e){return e===S}function D(e){return e===C}function O(e){return e.kind===`cloud`&&e.authMode!==`cookie`&&!e.apiKey.trim()}function k(e){return e===w}async function A(e){if(e.kind===`cloud`){if(e.authMode!==`cookie`&&!e.apiKey?.trim())throw Error(S);try{e.authMode===`cookie`?await g(e):await _(e)}catch(e){throw i.isAxiosError(e)&&e.response?.status===401||e instanceof n&&e.status===401?Error(w):d(e)?Error(C):e}return!0}try{let t=s({host:e.host,sessionApiKey:e.apiKey||null,timeout:b});await new r(t).getSettings(),c(await new a(t).getServerInfo())}catch(e){throw h(e,401)?Error(x):e}return!0}var j=2,M=300;function N(e){return e instanceof Error?e.message!==`Invalid API key`&&e.message!==`API key required`&&e.message!==`Logged out`:!0}async function P(e){for(let t=0;;t+=1)try{return await A(e)}catch(e){if(t>=j||!N(e))throw e;await new Promise(e=>{setTimeout(e,M)})}}function F(e,t={}){let{probeDisabledOnce:n=!1}=t,r=v.useSyncExternalStore(f,m,m),i=o({queries:e.map(e=>{let t=r[e.id],i=O(e),a=t?.disabled===!0,o=a&&e.kind===`cloud`&&p(t?.lastError),s=!i&&(!a||n||o);return{queryKey:[`backend-health`,e.id,e.kind,e.host,e.apiKey??``],queryFn:async()=>{try{let t=await P(e);return l(e.id),t}catch(t){throw u(e.id,t),t}},enabled:s,refetchInterval:a||i?!1:y,refetchIntervalInBackground:!1,refetchOnMount:a&&n?`always`:!0,refetchOnReconnect:!a&&!i,refetchOnWindowFocus:!a&&!i,retry:!1,staleTime:a?0:y,meta:{disableToast:!0}}})}),a={};return e.forEach((e,t)=>{let n=i[t],o=r[e.id],s=O(e),c=s?!1:o?.disabled===!0,l=s?0:o?.consecutiveFailures??0,u=s?S:o?.lastError??null,d;d=s||c?!1:n.isSuccess?!0:n.isError?!1:null,a[e.id]={isConnected:d,consecutiveFailures:l,lastError:u,disabled:c}}),a}var I=`openhands-onboarded`;function L(){if(typeof window>`u`)return!0;try{return window.localStorage.getItem(I)!==null}catch{return!0}}function R(){let[e,t]=v.useState(()=>L());return v.useEffect(()=>{let e=e=>{e.key===`openhands-onboarded`&&t(L())};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[]),{isCompleted:e,markCompleted:v.useCallback(()=>{try{window.localStorage.setItem(I,`1`)}catch{}t(!0)},[])}}export{E as a,T as i,D as n,F as o,k as r,R as t};
|
package/build/assets/{use-plugins-marketplace-ZEA-gyM9.js → use-plugins-marketplace-CqkR8kLE.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as e,l as t}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t as n}from"./useQuery-BCnzy4LX.js";import{$ as r,ct as i}from"./active-backend-context-
|
|
1
|
+
import{g as e,l as t}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t as n}from"./useQuery-BCnzy4LX.js";import{$ as r,ct as i}from"./active-backend-context-B_bg5h9O.js";function a(e){let t=new Uint8Array(e,0,Math.min(e.byteLength,8e3));for(let e=0;e<t.length;e+=1)if(t[e]===0)return!0;return!1}var o=class{static async getPluginsMarketplace(){if(i().backend.kind===`cloud`)return[];try{return(await new t(r()).getPluginsMarketplace()).plugins??[]}catch{return[]}}static async getLocalPlugins(){if(i().backend.kind===`cloud`)return[];try{return(await new t(r()).getPlugins({load_user:!0,load_project:!1})).plugins??[]}catch{return[]}}static async getPluginFileContent(t,n){if(i().backend.kind===`cloud`)throw Error(`Reading plugin files is only available on a local backend.`);let o=await new e(r()).downloadFile(`${t}/${n}`);return a(o)?{kind:`binary`,text:null}:{kind:`text`,text:new TextDecoder(`utf-8`,{fatal:!1}).decode(o)}}},s=()=>n({queryKey:[`plugins-marketplace`],queryFn:()=>o.getPluginsMarketplace(),staleTime:1e3*60*10,refetchOnWindowFocus:!1});export{o as n,s as t};
|
package/build/assets/{use-save-agent-profile-DgI_Uz9a.js → use-save-agent-profile-CH9_EXQG.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js";import{t}from"./useMutation-ChpkYxI5.js";import{k as n}from"./active-backend-context-
|
|
1
|
+
import{n as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js";import{t}from"./useMutation-ChpkYxI5.js";import{k as n}from"./active-backend-context-B_bg5h9O.js";import{n as r}from"./use-agent-profiles-B37XWDLq.js";function i(){let i=e();return t({mutationFn:({name:e,profile:t})=>r.saveProfile(e,t),onSuccess:async()=>{await i.invalidateQueries({queryKey:n.all})},meta:{disableToast:!0}})}export{i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js";import{t}from"./useMutation-ChpkYxI5.js";import{R as n}from"./active-backend-context-
|
|
1
|
+
import{n as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~cy4jtuc2-rfV8mQ9m.js";import{t}from"./useMutation-ChpkYxI5.js";import{R as n}from"./active-backend-context-B_bg5h9O.js";import{t as r}from"./use-tracking-salbPJxT.js";import{t as i}from"./settings-service.api-DfPYaxZJ.js";import{n as a}from"./use-settings-BmLzQjnC.js";var o=async e=>{let t={...e};delete t.agent_settings_schema,delete t.conversation_settings_schema;let n={...t.conversation_settings_diff??{}};Object.keys(n).length>0?t.conversation_settings_diff=n:delete t.conversation_settings_diff,delete t.conversation_settings;let r=t.agent_settings_diff,a=r?.llm;if(a&&typeof a.api_key==`string`){let e=a.api_key.trim();a.api_key=e===``?``:e}r&&Object.keys(r).length>0?t.agent_settings_diff=r:delete t.agent_settings_diff,delete t.agent_settings,typeof t.search_api_key==`string`&&(t.search_api_key=t.search_api_key.trim()),typeof t.git_user_name==`string`&&(t.git_user_name=t.git_user_name.trim()),typeof t.git_user_email==`string`&&(t.git_user_email=t.git_user_email.trim()),await i.saveSettings(t)},s=(i=`personal`,{retry:s}={})=>{let{trackMcpConfigUpdated:c}=r(),l=e(),{data:u}=a(i);return t({...s===void 0?{}:{retry:s},mutationFn:async e=>{let t=e.mcp_config,n=u?.mcp_config;if(t&&n!==t){let e=Object.values(t);c({sseServersCount:e.filter(e=>e.transport===`sse`).length,stdioServersCount:e.filter(e=>e.transport===`stdio`).length})}await o(e)},onSuccess:async()=>{await l.invalidateQueries({queryKey:n.byScope(i)})},meta:{disableToast:!0}})};export{s as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t}from"./useQuery-BCnzy4LX.js";import{R as n,dt as r,n as i}from"./active-backend-context-
|
|
1
|
+
import{j as e}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{t}from"./useQuery-BCnzy4LX.js";import{R as n,dt as r,n as i}from"./active-backend-context-B_bg5h9O.js";import{t as a}from"./settings-CWFxymAf.js";import{l as o,t as s}from"./settings-service.api-DfPYaxZJ.js";var c=(...e)=>e.find(e=>typeof e==`boolean`),l=(...e)=>e.find(e=>typeof e==`number`),u=(...e)=>{for(let t of e){if(typeof t==`string`)return t;if(t===null)return null}},d=t=>{if(typeof t==`object`&&t&&`status`in t){let{status:e}=t;if(typeof e==`number`)return e}if(e.isAxiosError(t))return t.response?.status},f=(e,t)=>{let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r},p=(e,t,n,r=!1)=>{let i=f(e,t);return typeof i==`string`&&(i.length>0||r)?i:n},m=e=>{let t=e.agent_settings??{},n={...a.conversation_settings??{},...e.conversation_settings??{}},r=t.mcp_config===void 0?e.mcp_config??a.mcp_config:o(t.mcp_config);return{...a,...e,llm_model:p(t,`llm.model`,a.llm_model),llm_base_url:p(t,`llm.base_url`,a.llm_base_url,!0),agent:p(t,`agent`,a.agent),llm_api_key:e.llm_api_key??null,llm_api_key_set:e.llm_api_key_set??!1,confirmation_mode:c(n.confirmation_mode)??a.confirmation_mode,security_analyzer:u(n.security_analyzer)??a.security_analyzer,max_iterations:l(n.max_iterations)??a.max_iterations,enable_default_condenser:c(f(t,`condenser.enabled`))??a.enable_default_condenser,condenser_max_size:l(f(t,`condenser.max_size`))??a.condenser_max_size,mcp_config:r,search_api_key:e.search_api_key||``,email:e.email||``,git_user_name:e.git_user_name||a.git_user_name,git_user_email:e.git_user_email||a.git_user_email,is_new_user:!1,disabled_skills:e.disabled_skills??a.disabled_skills,agent_settings_schema:e.agent_settings_schema??null,agent_settings:e.agent_settings??a.agent_settings,conversation_settings_schema:e.conversation_settings_schema??a.conversation_settings_schema,conversation_settings:n}},h=async(e=`personal`)=>{if(e!==`personal`)throw Error(`Unsupported settings scope: ${e}`);return m(await s.getSettings())},g=(e=`personal`)=>{let o=i(),s=!r(o.backend),c=t({queryKey:[...n.byScope(e),o.backend.id,o.orgId],queryFn:()=>h(e),retry:(e,t)=>d(t)!==404,enabled:s,refetchOnWindowFocus:!1,staleTime:1e3*60*5,gcTime:1e3*60*15,meta:{disableToast:!0}});return s?d(c.error)===404?{data:a,error:c.error,isError:c.isError,isLoading:c.isLoading,isFetching:c.isFetching,isFetched:c.isFetched,isSuccess:c.isSuccess,status:c.status,fetchStatus:c.fetchStatus,refetch:c.refetch}:c:{data:a,error:null,isError:!1,isLoading:!1,isFetching:!1,isFetched:!1,isSuccess:!0,status:`success`,fetchStatus:`idle`,refetch:c.refetch}};export{g as n,d as t};
|
package/build/assets/{use-settings-nav-items-CQgkxUbV.js → use-settings-nav-items-DV9qgeu7.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{t as r}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{E as i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{D as a,H as o,dt as s,n as c,r as l,xt as u}from"./active-backend-context-BBvP-bI2.js";import{t as d,z as f}from"./utils-DPQfkd-7.js";import{t as p}from"./check-DLOKoFU9.js";import{a as m,i as h,n as g,o as _,r as v,t as y}from"./npm-DRzJF5Zn.js";import{t as b}from"./circle-check-CxCYJrpZ.js";import{r as x}from"./map-provider-7Bp2aih5.js";import{t as S}from"./external-link-zWbg5KXS.js";import{t as C}from"./puzzle-B3v361yY.js";import{t as w}from"./refresh-cw-B9GhC3QC.js";import{t as T}from"./use-config-CPwqciXN.js";import{t as E}from"./modal-backdrop-BSzNhM4r.js";import{n as D}from"./modal-body-duRaxj_K.js";import{r as O}from"./base-modal-3NmIOKDm.js";import{t as k}from"./brand-button-CJcwjnfb.js";import{a as A,f as j,o as M,u as N}from"./sidebar-layout-Dxg6zc2K.js";import{t as P}from"./modal-close-button-D0aT02hs.js";import{t as F}from"./u-robot-BvAOA2ZD.js";import{r as I}from"./settings-utils-gw2ppAvw.js";var L=i(`app-window`,[[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}],[`path`,{d:`M10 4v4`,key:`pp8u80`}],[`path`,{d:`M2 8h20`,key:`d11cs7`}],[`path`,{d:`M6 4v4`,key:`1svtjw`}]]),R=i(`brain`,[[`path`,{d:`M12 18V5`,key:`adv99a`}],[`path`,{d:`M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4`,key:`1e3is1`}],[`path`,{d:`M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5`,key:`1gqd8o`}],[`path`,{d:`M17.997 5.125a4 4 0 0 1 2.526 5.77`,key:`iwvgf7`}],[`path`,{d:`M18 18a4 4 0 0 0 2-7.464`,key:`efp6ie`}],[`path`,{d:`M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517`,key:`1gq6am`}],[`path`,{d:`M6 18a4 4 0 0 1-2-7.464`,key:`k1g0md`}],[`path`,{d:`M6.003 5.125a4 4 0 0 0-2.526 5.77`,key:`q97ue3`}]]),z=i(`cloud`,[[`path`,{d:`M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z`,key:`p7xjir`}]]),B=i(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),V=e(t(),1),H=n(),U=2e3,W=[`npm`,`docker`];function G(e){return e===`npm`?f.SETTINGS$VERSION_NPM_RECOMMENDED:f.SETTINGS$VERSION_DOCKER}function K({tab:e}){return e===`npm`?(0,H.jsx)(y,{className:`size-4 shrink-0`,"aria-hidden":!0}):(0,H.jsx)(g,{className:`size-5 shrink-0`,"aria-hidden":!0})}function q(){let{t:e}=r(`openhands`),[t,n]=(0,V.useState)(`npm`),[i,a]=(0,V.useState)(!1),o=(0,V.useRef)(null),s=t===`npm`?m.npm:m.docker;(0,V.useEffect)(()=>()=>{o.current!==null&&window.clearTimeout(o.current)},[]),(0,V.useEffect)(()=>{a(!1),o.current!==null&&(window.clearTimeout(o.current),o.current=null)},[t]);let c=(0,V.useCallback)(()=>{navigator.clipboard?.writeText(s),a(!0),o.current!==null&&window.clearTimeout(o.current),o.current=window.setTimeout(()=>{a(!1),o.current=null},U)},[s]);return(0,H.jsxs)(`div`,{className:`w-full`,children:[(0,H.jsx)(`div`,{className:`flex justify-center`,children:W.map(r=>(0,H.jsxs)(`button`,{type:`button`,onClick:()=>n(r),className:d(`inline-flex items-center gap-1.5 px-3 pb-2 text-sm font-medium`,t===r?`border-b border-white text-white`:`text-[var(--oh-muted)] hover:text-white`),children:[(0,H.jsx)(K,{tab:r}),e(G(r))]},r))}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--oh-border)] bg-[var(--oh-surface-deep)] px-4 py-3`,children:[(0,H.jsx)(`code`,{"data-testid":t===`npm`?`agent-canvas-update-command-npm`:`agent-canvas-update-command-docker`,className:`min-w-0 flex-1 overflow-visible whitespace-nowrap font-mono text-sm text-white`,children:s}),(0,H.jsx)(`button`,{type:`button`,"data-testid":`copy-to-clipboard`,onClick:c,"aria-label":e(i?f.BUTTON$COPIED:f.SETTINGS$VERSION_COPY_COMMAND),disabled:i,className:`shrink-0 text-[var(--oh-muted)] hover:text-white disabled:hover:text-[var(--oh-muted)]`,children:i?(0,H.jsx)(p,{className:`size-4 text-[var(--oh-status-success)]`,"aria-hidden":!0}):(0,H.jsx)(x,{className:`size-4`,"aria-hidden":!0})})]})]})}function J({onClose:e,latestVersion:t,isPending:n,isFetching:i,updateAvailable:o,upToDate:s,onCheckForUpdates:c}){let{t:l}=r(`openhands`);return(0,H.jsx)(E,{onClose:e,children:(0,H.jsxs)(D,{width:`md`,className:`relative flex max-h-[80vh] flex-col items-start overflow-auto border border-[var(--oh-border)]`,testID:`agent-canvas-update-modal`,children:[(0,H.jsx)(P,{onClose:e,testId:`close-agent-canvas-update-modal`}),(0,H.jsxs)(`div`,{className:`flex w-full flex-col gap-2 pr-10`,children:[(0,H.jsx)(O,{title:l(f.SETTINGS$APP_UPDATE_CARD_TITLE)}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs`,children:[(0,H.jsx)(`span`,{className:`text-[var(--oh-text-dim)]`,children:l(f.SETTINGS$APP_UPDATE_VERSION_LABEL)}),(0,H.jsx)(`span`,{className:`text-white`,children:a})]})]}),(0,H.jsxs)(`div`,{className:`flex w-full flex-col gap-3`,children:[(0,H.jsx)(k,{testId:`agent-canvas-update-check-button`,type:`button`,variant:`secondary`,className:`w-full`,isDisabled:i,"aria-busy":i,onClick:c,startContent:(0,H.jsx)(w,{className:d(`size-4`,i&&`animate-spin`),"aria-hidden":!0}),children:l(f.SETTINGS$APP_UPDATE_CHECK_BUTTON)}),(0,H.jsx)(`div`,{"data-testid":`agent-canvas-update-status`,className:`w-full`,children:n||i?(0,H.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:l(f.SETTINGS$APP_UPDATE_CHECKING)}):o?(0,H.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[#3B82F6]/30 bg-[#1E3A5F] px-3 py-2 text-xs text-[#3B82F6]`,children:[(0,H.jsx)(_,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,H.jsxs)(`span`,{children:[l(f.SETTINGS$APP_UPDATE_AVAILABLE_MESSAGE,{version:t}),` `,(0,H.jsxs)(`a`,{"data-testid":`agent-canvas-update-release-notes`,href:h,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1.5 whitespace-nowrap font-medium text-white hover:text-[var(--oh-text)]`,children:[l(f.SETTINGS$VERSION_RELEASE_NOTES),(0,H.jsx)(S,{className:`size-3.5 shrink-0`,"aria-hidden":!0})]})]})]}):s?(0,H.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--oh-status-success)]/30 bg-[var(--oh-status-success)]/10 px-3 py-2 text-xs text-[var(--oh-status-success)]`,children:[(0,H.jsx)(b,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,H.jsxs)(`span`,{children:[l(f.SETTINGS$APP_UPDATE_LATEST_MESSAGE),` `,(0,H.jsxs)(`a`,{"data-testid":`agent-canvas-update-release-notes`,href:h,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1.5 whitespace-nowrap font-medium text-white hover:text-[var(--oh-text)]`,children:[l(f.SETTINGS$VERSION_RELEASE_NOTES),(0,H.jsx)(S,{className:`size-3.5 shrink-0`,"aria-hidden":!0})]})]})]}):(0,H.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:l(f.SETTINGS$APP_UPDATE_CHECK_FAILED)})}),o?(0,H.jsxs)(`div`,{className:`flex w-full flex-col border-t border-[var(--oh-border)] pt-3`,children:[(0,H.jsx)(`span`,{className:`text-sm font-medium text-white`,children:l(f.SETTINGS$APP_UPDATE_HOW_TO_UPDATE)}),(0,H.jsx)(`span`,{className:`mt-1 mb-4 text-sm text-[var(--oh-text-dim)]`,children:l(f.SETTINGS$APP_UPDATE_RUN_COMMANDS)}),(0,H.jsx)(q,{})]}):null]})]})})}function Y({hideWhenUpToDate:e=!1}){let{t}=r(`openhands`),[n,i]=(0,V.useState)(!1),s=u()!==null,c=v({enabled:!s});if(s)return null;let l=c.data,p=l===void 0?null:o(l,a),m=p===1,h=p!==null&&p<=0;return e&&!m?null:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`section`,{"data-testid":`agent-canvas-update-card`,children:(0,H.jsxs)(`button`,{type:`button`,onClick:()=>i(!0),"aria-haspopup":`dialog`,"data-testid":`agent-canvas-update-toggle`,className:`flex w-full cursor-pointer flex-col gap-1 rounded-md border border-[var(--oh-border)] bg-base-secondary px-3 py-2 text-left hover:bg-[var(--oh-surface-raised)]`,children:[(0,H.jsxs)(`span`,{className:`flex w-full items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`flex-1 truncate text-sm font-semibold leading-5 text-white`,children:t(f.SETTINGS$APP_UPDATE_CARD_TITLE)}),p!==null&&(0,H.jsxs)(`span`,{"data-testid":`agent-canvas-update-badge`,className:d(`inline-flex shrink-0 items-center gap-1 text-[10px] font-medium leading-none`,m?`rounded-full border border-transparent bg-[#1E3A5F] px-1.5 py-0.5 text-[#3B82F6]`:`text-success`),children:[m?(0,H.jsx)(_,{className:`size-3 shrink-0`,"aria-hidden":!0}):(0,H.jsx)(b,{className:`size-3 shrink-0`,"aria-hidden":!0}),t(m?f.SETTINGS$APP_UPDATE_BADGE_UPDATE_AVAILABLE:f.SETTINGS$APP_UPDATE_BADGE_UP_TO_DATE)]})]}),(0,H.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs leading-5 text-[var(--oh-muted)]`,children:[(0,H.jsx)(`span`,{children:t(f.SETTINGS$APP_UPDATE_VERSION_LABEL)}),(0,H.jsx)(`span`,{className:`text-white`,children:a})]})]})}),n&&(0,H.jsx)(J,{onClose:()=>i(!1),latestVersion:l,isPending:c.isPending,isFetching:c.isFetching,updateAvailable:m,upToDate:h,onCheckForUpdates:()=>c.refetch()})]})}function X(){let{t:e}=r(`openhands`),{active:t}=l(),{backend:n}=t;return s(n)||n.kind!==`cloud`?null:(0,H.jsxs)(`a`,{"data-testid":`settings-cloud-link`,href:`${n.host.replace(/\/+$/,``)}/settings`,target:`_blank`,rel:`noopener noreferrer`,className:d(j({collapsed:!1}),M.idle),children:[(0,H.jsx)(`span`,{className:A,children:(0,H.jsx)(z,{className:`size-4 shrink-0`,"aria-hidden":!0})}),(0,H.jsx)(`span`,{className:d(N(!1),`flex-1`),children:e(f.SETTINGS$CLOUD_SETTINGS_LINK)}),(0,H.jsx)(S,{className:`size-4 shrink-0 text-[var(--oh-muted)]`,"aria-hidden":!0})]})}function Z(){let{t:e}=r(`openhands`),{active:t}=l(),{backend:n}=t;return s(n)||n.kind!==`cloud`?null:(0,H.jsxs)(`a`,{"data-testid":`settings-integrations-link`,href:`${n.host.replace(/\/+$/,``)}/settings/integrations`,target:`_blank`,rel:`noopener noreferrer`,className:d(j({collapsed:!1}),M.idle),children:[(0,H.jsx)(`span`,{className:A,children:(0,H.jsx)(C,{className:`size-4 shrink-0`,"aria-hidden":!0})}),(0,H.jsx)(`span`,{className:d(N(!1),`flex-1`),children:e(f.SETTINGS$INTEGRATIONS_SETTINGS_LINK)}),(0,H.jsx)(S,{className:`size-4 shrink-0 text-[var(--oh-muted)]`,"aria-hidden":!0})]})}var Q=[{icon:(0,H.jsx)(F,{width:16,height:16}),to:`/settings/agents`,text:`SETTINGS$NAV_AGENT`,subtitle:`SETTINGS$PAGE_AGENT_PROFILES_SUBLINE`},{icon:(0,H.jsx)(e=>(0,H.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,H.jsx)(`path`,{d:`M10 13C9.80222 13 9.60888 13.0586 9.44443 13.1685C9.27998 13.2784 9.15181 13.4346 9.07612 13.6173C9.00043 13.8 8.98063 14.0011 9.01921 14.1951C9.0578 14.3891 9.15304 14.5673 9.29289 14.7071C9.43275 14.847 9.61093 14.9422 9.80491 14.9808C9.99889 15.0194 10.2 14.9996 10.3827 14.9239C10.5654 14.8482 10.7216 14.72 10.8315 14.5556C10.9414 14.3911 11 14.1978 11 14C11 13.7348 10.8946 13.4804 10.7071 13.2929C10.5196 13.1054 10.2652 13 10 13ZM10 9C9.80222 9 9.60888 9.05865 9.44443 9.16853C9.27998 9.27841 9.15181 9.43459 9.07612 9.61732C9.00043 9.80004 8.98063 10.0011 9.01921 10.1951C9.0578 10.3891 9.15304 10.5673 9.29289 10.7071C9.43275 10.847 9.61093 10.9422 9.80491 10.9808C9.99889 11.0194 10.2 10.9996 10.3827 10.9239C10.5654 10.8482 10.7216 10.72 10.8315 10.5556C10.9414 10.3911 11 10.1978 11 10C11 9.73478 10.8946 9.48043 10.7071 9.29289C10.5196 9.10536 10.2652 9 10 9ZM14 9C13.8022 9 13.6089 9.05865 13.4444 9.16853C13.28 9.27841 13.1518 9.43459 13.0761 9.61732C13.0004 9.80004 12.9806 10.0011 13.0192 10.1951C13.0578 10.3891 13.153 10.5673 13.2929 10.7071C13.4327 10.847 13.6109 10.9422 13.8049 10.9808C13.9989 11.0194 14.2 10.9996 14.3827 10.9239C14.5654 10.8482 14.7216 10.72 14.8315 10.5556C14.9414 10.3911 15 10.1978 15 10C15 9.73478 14.8946 9.48043 14.7071 9.29289C14.5196 9.10536 14.2652 9 14 9ZM21 13C21.2652 13 21.5196 12.8946 21.7071 12.7071C21.8946 12.5196 22 12.2652 22 12C22 11.7348 21.8946 11.4804 21.7071 11.2929C21.5196 11.1054 21.2652 11 21 11H19V9H21C21.2652 9 21.5196 8.89464 21.7071 8.70711C21.8946 8.51957 22 8.26522 22 8C22 7.73478 21.8946 7.48043 21.7071 7.29289C21.5196 7.10536 21.2652 7 21 7H18.82C18.6707 6.5806 18.4299 6.19969 18.1151 5.8849C17.8003 5.57011 17.4194 5.32932 17 5.18V3C17 2.73478 16.8946 2.48043 16.7071 2.29289C16.5196 2.10536 16.2652 2 16 2C15.7348 2 15.4804 2.10536 15.2929 2.29289C15.1054 2.48043 15 2.73478 15 3V5H13V3C13 2.73478 12.8946 2.48043 12.7071 2.29289C12.5196 2.10536 12.2652 2 12 2C11.7348 2 11.4804 2.10536 11.2929 2.29289C11.1054 2.48043 11 2.73478 11 3V5H9V3C9 2.73478 8.89464 2.48043 8.70711 2.29289C8.51957 2.10536 8.26522 2 8 2C7.73478 2 7.48043 2.10536 7.29289 2.29289C7.10536 2.48043 7 2.73478 7 3V5.18C6.5806 5.32932 6.19969 5.57011 5.8849 5.8849C5.57011 6.19969 5.32932 6.5806 5.18 7H3C2.73478 7 2.48043 7.10536 2.29289 7.29289C2.10536 7.48043 2 7.73478 2 8C2 8.26522 2.10536 8.51957 2.29289 8.70711C2.48043 8.89464 2.73478 9 3 9H5V11H3C2.73478 11 2.48043 11.1054 2.29289 11.2929C2.10536 11.4804 2 11.7348 2 12C2 12.2652 2.10536 12.5196 2.29289 12.7071C2.48043 12.8946 2.73478 13 3 13H5V15H3C2.73478 15 2.48043 15.1054 2.29289 15.2929C2.10536 15.4804 2 15.7348 2 16C2 16.2652 2.10536 16.5196 2.29289 16.7071C2.48043 16.8946 2.73478 17 3 17H5.18C5.32932 17.4194 5.57011 17.8003 5.8849 18.1151C6.19969 18.4299 6.5806 18.6707 7 18.82V21C7 21.2652 7.10536 21.5196 7.29289 21.7071C7.48043 21.8946 7.73478 22 8 22C8.26522 22 8.51957 21.8946 8.70711 21.7071C8.89464 21.5196 9 21.2652 9 21V19H11V21C11 21.2652 11.1054 21.5196 11.2929 21.7071C11.4804 21.8946 11.7348 22 12 22C12.2652 22 12.5196 21.8946 12.7071 21.7071C12.8946 21.5196 13 21.2652 13 21V19H15V21C15 21.2652 15.1054 21.5196 15.2929 21.7071C15.4804 21.8946 15.7348 22 16 22C16.2652 22 16.5196 21.8946 16.7071 21.7071C16.8946 21.5196 17 21.2652 17 21V18.82C17.4194 18.6707 17.8003 18.4299 18.1151 18.1151C18.4299 17.8003 18.6707 17.4194 18.82 17H21C21.2652 17 21.5196 16.8946 21.7071 16.7071C21.8946 16.5196 22 16.2652 22 16C22 15.7348 21.8946 15.4804 21.7071 15.2929C21.5196 15.1054 21.2652 15 21 15H19V13H21ZM17 16C17 16.2652 16.8946 16.5196 16.7071 16.7071C16.5196 16.8946 16.2652 17 16 17H8C7.73478 17 7.48043 16.8946 7.29289 16.7071C7.10536 16.5196 7 16.2652 7 16V8C7 7.73478 7.10536 7.48043 7.29289 7.29289C7.48043 7.10536 7.73478 7 8 7H16C16.2652 7 16.5196 7.10536 16.7071 7.29289C16.8946 7.48043 17 7.73478 17 8V16ZM14 13C13.8022 13 13.6089 13.0586 13.4444 13.1685C13.28 13.2784 13.1518 13.4346 13.0761 13.6173C13.0004 13.8 12.9806 14.0011 13.0192 14.1951C13.0578 14.3891 13.153 14.5673 13.2929 14.7071C13.4327 14.847 13.6109 14.9422 13.8049 14.9808C13.9989 15.0194 14.2 14.9996 14.3827 14.9239C14.5654 14.8482 14.7216 14.72 14.8315 14.5556C14.9414 14.3911 15 14.1978 15 14C15 13.7348 14.8946 13.4804 14.7071 13.2929C14.5196 13.1054 14.2652 13 14 13Z`,fill:`currentColor`})}),{width:16,height:16}),to:`/settings/llm`,text:`SETTINGS$NAV_LLM`,subtitle:`SETTINGS$PAGE_LLM_SUBLINE`},{icon:(0,H.jsx)(e=>(0,H.jsxs)(`svg`,{id:`Layer_1`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 22.3 18.66`,...e,children:[(0,H.jsx)(`defs`,{children:(0,H.jsx)(`style`,{children:`
|
|
1
|
+
import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{St as t,yt as n}from"./vendor-styling-Ck5D_A2Q.js";import{t as r}from"./vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~gxu4j2ea-Cwhh3zLe.js";import{E as i}from"./vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~kv3pap4j-oGvLV0dO.js";import{D as a,H as o,dt as s,n as c,r as l,xt as u}from"./active-backend-context-B_bg5h9O.js";import{t as d,z as f}from"./utils-DPQfkd-7.js";import{t as p}from"./check-DLOKoFU9.js";import{a as m,i as h,n as g,o as _,r as v,t as y}from"./npm-Cswluf6-.js";import{t as b}from"./circle-check-CxCYJrpZ.js";import{r as x}from"./map-provider-7Bp2aih5.js";import{t as S}from"./external-link-zWbg5KXS.js";import{t as C}from"./puzzle-B3v361yY.js";import{t as w}from"./refresh-cw-B9GhC3QC.js";import{t as T}from"./use-config-DapX3pjC.js";import{t as E}from"./modal-backdrop-BSzNhM4r.js";import{n as D}from"./modal-body-duRaxj_K.js";import{r as O}from"./base-modal-3NmIOKDm.js";import{t as k}from"./brand-button-CJcwjnfb.js";import{a as A,f as j,o as M,u as N}from"./sidebar-layout-Dxg6zc2K.js";import{t as P}from"./modal-close-button-D0aT02hs.js";import{t as F}from"./u-robot-BvAOA2ZD.js";import{r as I}from"./settings-utils-gw2ppAvw.js";var L=i(`app-window`,[[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}],[`path`,{d:`M10 4v4`,key:`pp8u80`}],[`path`,{d:`M2 8h20`,key:`d11cs7`}],[`path`,{d:`M6 4v4`,key:`1svtjw`}]]),R=i(`brain`,[[`path`,{d:`M12 18V5`,key:`adv99a`}],[`path`,{d:`M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4`,key:`1e3is1`}],[`path`,{d:`M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5`,key:`1gqd8o`}],[`path`,{d:`M17.997 5.125a4 4 0 0 1 2.526 5.77`,key:`iwvgf7`}],[`path`,{d:`M18 18a4 4 0 0 0 2-7.464`,key:`efp6ie`}],[`path`,{d:`M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517`,key:`1gq6am`}],[`path`,{d:`M6 18a4 4 0 0 1-2-7.464`,key:`k1g0md`}],[`path`,{d:`M6.003 5.125a4 4 0 0 0-2.526 5.77`,key:`q97ue3`}]]),z=i(`cloud`,[[`path`,{d:`M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z`,key:`p7xjir`}]]),B=i(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),V=e(t(),1),H=n(),U=2e3,W=[`npm`,`docker`];function G(e){return e===`npm`?f.SETTINGS$VERSION_NPM_RECOMMENDED:f.SETTINGS$VERSION_DOCKER}function K({tab:e}){return e===`npm`?(0,H.jsx)(y,{className:`size-4 shrink-0`,"aria-hidden":!0}):(0,H.jsx)(g,{className:`size-5 shrink-0`,"aria-hidden":!0})}function q(){let{t:e}=r(`openhands`),[t,n]=(0,V.useState)(`npm`),[i,a]=(0,V.useState)(!1),o=(0,V.useRef)(null),s=t===`npm`?m.npm:m.docker;(0,V.useEffect)(()=>()=>{o.current!==null&&window.clearTimeout(o.current)},[]),(0,V.useEffect)(()=>{a(!1),o.current!==null&&(window.clearTimeout(o.current),o.current=null)},[t]);let c=(0,V.useCallback)(()=>{navigator.clipboard?.writeText(s),a(!0),o.current!==null&&window.clearTimeout(o.current),o.current=window.setTimeout(()=>{a(!1),o.current=null},U)},[s]);return(0,H.jsxs)(`div`,{className:`w-full`,children:[(0,H.jsx)(`div`,{className:`flex justify-center`,children:W.map(r=>(0,H.jsxs)(`button`,{type:`button`,onClick:()=>n(r),className:d(`inline-flex items-center gap-1.5 px-3 pb-2 text-sm font-medium`,t===r?`border-b border-white text-white`:`text-[var(--oh-muted)] hover:text-white`),children:[(0,H.jsx)(K,{tab:r}),e(G(r))]},r))}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--oh-border)] bg-[var(--oh-surface-deep)] px-4 py-3`,children:[(0,H.jsx)(`code`,{"data-testid":t===`npm`?`agent-canvas-update-command-npm`:`agent-canvas-update-command-docker`,className:`min-w-0 flex-1 overflow-visible whitespace-nowrap font-mono text-sm text-white`,children:s}),(0,H.jsx)(`button`,{type:`button`,"data-testid":`copy-to-clipboard`,onClick:c,"aria-label":e(i?f.BUTTON$COPIED:f.SETTINGS$VERSION_COPY_COMMAND),disabled:i,className:`shrink-0 text-[var(--oh-muted)] hover:text-white disabled:hover:text-[var(--oh-muted)]`,children:i?(0,H.jsx)(p,{className:`size-4 text-[var(--oh-status-success)]`,"aria-hidden":!0}):(0,H.jsx)(x,{className:`size-4`,"aria-hidden":!0})})]})]})}function J({onClose:e,latestVersion:t,isPending:n,isFetching:i,updateAvailable:o,upToDate:s,onCheckForUpdates:c}){let{t:l}=r(`openhands`);return(0,H.jsx)(E,{onClose:e,children:(0,H.jsxs)(D,{width:`md`,className:`relative flex max-h-[80vh] flex-col items-start overflow-auto border border-[var(--oh-border)]`,testID:`agent-canvas-update-modal`,children:[(0,H.jsx)(P,{onClose:e,testId:`close-agent-canvas-update-modal`}),(0,H.jsxs)(`div`,{className:`flex w-full flex-col gap-2 pr-10`,children:[(0,H.jsx)(O,{title:l(f.SETTINGS$APP_UPDATE_CARD_TITLE)}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs`,children:[(0,H.jsx)(`span`,{className:`text-[var(--oh-text-dim)]`,children:l(f.SETTINGS$APP_UPDATE_VERSION_LABEL)}),(0,H.jsx)(`span`,{className:`text-white`,children:a})]})]}),(0,H.jsxs)(`div`,{className:`flex w-full flex-col gap-3`,children:[(0,H.jsx)(k,{testId:`agent-canvas-update-check-button`,type:`button`,variant:`secondary`,className:`w-full`,isDisabled:i,"aria-busy":i,onClick:c,startContent:(0,H.jsx)(w,{className:d(`size-4`,i&&`animate-spin`),"aria-hidden":!0}),children:l(f.SETTINGS$APP_UPDATE_CHECK_BUTTON)}),(0,H.jsx)(`div`,{"data-testid":`agent-canvas-update-status`,className:`w-full`,children:n||i?(0,H.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:l(f.SETTINGS$APP_UPDATE_CHECKING)}):o?(0,H.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[#3B82F6]/30 bg-[#1E3A5F] px-3 py-2 text-xs text-[#3B82F6]`,children:[(0,H.jsx)(_,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,H.jsxs)(`span`,{children:[l(f.SETTINGS$APP_UPDATE_AVAILABLE_MESSAGE,{version:t}),` `,(0,H.jsxs)(`a`,{"data-testid":`agent-canvas-update-release-notes`,href:h,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1.5 whitespace-nowrap font-medium text-white hover:text-[var(--oh-text)]`,children:[l(f.SETTINGS$VERSION_RELEASE_NOTES),(0,H.jsx)(S,{className:`size-3.5 shrink-0`,"aria-hidden":!0})]})]})]}):s?(0,H.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--oh-status-success)]/30 bg-[var(--oh-status-success)]/10 px-3 py-2 text-xs text-[var(--oh-status-success)]`,children:[(0,H.jsx)(b,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,H.jsxs)(`span`,{children:[l(f.SETTINGS$APP_UPDATE_LATEST_MESSAGE),` `,(0,H.jsxs)(`a`,{"data-testid":`agent-canvas-update-release-notes`,href:h,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1.5 whitespace-nowrap font-medium text-white hover:text-[var(--oh-text)]`,children:[l(f.SETTINGS$VERSION_RELEASE_NOTES),(0,H.jsx)(S,{className:`size-3.5 shrink-0`,"aria-hidden":!0})]})]})]}):(0,H.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:l(f.SETTINGS$APP_UPDATE_CHECK_FAILED)})}),o?(0,H.jsxs)(`div`,{className:`flex w-full flex-col border-t border-[var(--oh-border)] pt-3`,children:[(0,H.jsx)(`span`,{className:`text-sm font-medium text-white`,children:l(f.SETTINGS$APP_UPDATE_HOW_TO_UPDATE)}),(0,H.jsx)(`span`,{className:`mt-1 mb-4 text-sm text-[var(--oh-text-dim)]`,children:l(f.SETTINGS$APP_UPDATE_RUN_COMMANDS)}),(0,H.jsx)(q,{})]}):null]})]})})}function Y({hideWhenUpToDate:e=!1}){let{t}=r(`openhands`),[n,i]=(0,V.useState)(!1),s=u()!==null,c=v({enabled:!s});if(s)return null;let l=c.data,p=l===void 0?null:o(l,a),m=p===1,h=p!==null&&p<=0;return e&&!m?null:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`section`,{"data-testid":`agent-canvas-update-card`,children:(0,H.jsxs)(`button`,{type:`button`,onClick:()=>i(!0),"aria-haspopup":`dialog`,"data-testid":`agent-canvas-update-toggle`,className:`flex w-full cursor-pointer flex-col gap-1 rounded-md border border-[var(--oh-border)] bg-base-secondary px-3 py-2 text-left hover:bg-[var(--oh-surface-raised)]`,children:[(0,H.jsxs)(`span`,{className:`flex w-full items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`flex-1 truncate text-sm font-semibold leading-5 text-white`,children:t(f.SETTINGS$APP_UPDATE_CARD_TITLE)}),p!==null&&(0,H.jsxs)(`span`,{"data-testid":`agent-canvas-update-badge`,className:d(`inline-flex shrink-0 items-center gap-1 text-[10px] font-medium leading-none`,m?`rounded-full border border-transparent bg-[#1E3A5F] px-1.5 py-0.5 text-[#3B82F6]`:`text-success`),children:[m?(0,H.jsx)(_,{className:`size-3 shrink-0`,"aria-hidden":!0}):(0,H.jsx)(b,{className:`size-3 shrink-0`,"aria-hidden":!0}),t(m?f.SETTINGS$APP_UPDATE_BADGE_UPDATE_AVAILABLE:f.SETTINGS$APP_UPDATE_BADGE_UP_TO_DATE)]})]}),(0,H.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs leading-5 text-[var(--oh-muted)]`,children:[(0,H.jsx)(`span`,{children:t(f.SETTINGS$APP_UPDATE_VERSION_LABEL)}),(0,H.jsx)(`span`,{className:`text-white`,children:a})]})]})}),n&&(0,H.jsx)(J,{onClose:()=>i(!1),latestVersion:l,isPending:c.isPending,isFetching:c.isFetching,updateAvailable:m,upToDate:h,onCheckForUpdates:()=>c.refetch()})]})}function X(){let{t:e}=r(`openhands`),{active:t}=l(),{backend:n}=t;return s(n)||n.kind!==`cloud`?null:(0,H.jsxs)(`a`,{"data-testid":`settings-cloud-link`,href:`${n.host.replace(/\/+$/,``)}/settings`,target:`_blank`,rel:`noopener noreferrer`,className:d(j({collapsed:!1}),M.idle),children:[(0,H.jsx)(`span`,{className:A,children:(0,H.jsx)(z,{className:`size-4 shrink-0`,"aria-hidden":!0})}),(0,H.jsx)(`span`,{className:d(N(!1),`flex-1`),children:e(f.SETTINGS$CLOUD_SETTINGS_LINK)}),(0,H.jsx)(S,{className:`size-4 shrink-0 text-[var(--oh-muted)]`,"aria-hidden":!0})]})}function Z(){let{t:e}=r(`openhands`),{active:t}=l(),{backend:n}=t;return s(n)||n.kind!==`cloud`?null:(0,H.jsxs)(`a`,{"data-testid":`settings-integrations-link`,href:`${n.host.replace(/\/+$/,``)}/settings/integrations`,target:`_blank`,rel:`noopener noreferrer`,className:d(j({collapsed:!1}),M.idle),children:[(0,H.jsx)(`span`,{className:A,children:(0,H.jsx)(C,{className:`size-4 shrink-0`,"aria-hidden":!0})}),(0,H.jsx)(`span`,{className:d(N(!1),`flex-1`),children:e(f.SETTINGS$INTEGRATIONS_SETTINGS_LINK)}),(0,H.jsx)(S,{className:`size-4 shrink-0 text-[var(--oh-muted)]`,"aria-hidden":!0})]})}var Q=[{icon:(0,H.jsx)(F,{width:16,height:16}),to:`/settings/agents`,text:`SETTINGS$NAV_AGENT`,subtitle:`SETTINGS$PAGE_AGENT_PROFILES_SUBLINE`},{icon:(0,H.jsx)(e=>(0,H.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,...e,children:(0,H.jsx)(`path`,{d:`M10 13C9.80222 13 9.60888 13.0586 9.44443 13.1685C9.27998 13.2784 9.15181 13.4346 9.07612 13.6173C9.00043 13.8 8.98063 14.0011 9.01921 14.1951C9.0578 14.3891 9.15304 14.5673 9.29289 14.7071C9.43275 14.847 9.61093 14.9422 9.80491 14.9808C9.99889 15.0194 10.2 14.9996 10.3827 14.9239C10.5654 14.8482 10.7216 14.72 10.8315 14.5556C10.9414 14.3911 11 14.1978 11 14C11 13.7348 10.8946 13.4804 10.7071 13.2929C10.5196 13.1054 10.2652 13 10 13ZM10 9C9.80222 9 9.60888 9.05865 9.44443 9.16853C9.27998 9.27841 9.15181 9.43459 9.07612 9.61732C9.00043 9.80004 8.98063 10.0011 9.01921 10.1951C9.0578 10.3891 9.15304 10.5673 9.29289 10.7071C9.43275 10.847 9.61093 10.9422 9.80491 10.9808C9.99889 11.0194 10.2 10.9996 10.3827 10.9239C10.5654 10.8482 10.7216 10.72 10.8315 10.5556C10.9414 10.3911 11 10.1978 11 10C11 9.73478 10.8946 9.48043 10.7071 9.29289C10.5196 9.10536 10.2652 9 10 9ZM14 9C13.8022 9 13.6089 9.05865 13.4444 9.16853C13.28 9.27841 13.1518 9.43459 13.0761 9.61732C13.0004 9.80004 12.9806 10.0011 13.0192 10.1951C13.0578 10.3891 13.153 10.5673 13.2929 10.7071C13.4327 10.847 13.6109 10.9422 13.8049 10.9808C13.9989 11.0194 14.2 10.9996 14.3827 10.9239C14.5654 10.8482 14.7216 10.72 14.8315 10.5556C14.9414 10.3911 15 10.1978 15 10C15 9.73478 14.8946 9.48043 14.7071 9.29289C14.5196 9.10536 14.2652 9 14 9ZM21 13C21.2652 13 21.5196 12.8946 21.7071 12.7071C21.8946 12.5196 22 12.2652 22 12C22 11.7348 21.8946 11.4804 21.7071 11.2929C21.5196 11.1054 21.2652 11 21 11H19V9H21C21.2652 9 21.5196 8.89464 21.7071 8.70711C21.8946 8.51957 22 8.26522 22 8C22 7.73478 21.8946 7.48043 21.7071 7.29289C21.5196 7.10536 21.2652 7 21 7H18.82C18.6707 6.5806 18.4299 6.19969 18.1151 5.8849C17.8003 5.57011 17.4194 5.32932 17 5.18V3C17 2.73478 16.8946 2.48043 16.7071 2.29289C16.5196 2.10536 16.2652 2 16 2C15.7348 2 15.4804 2.10536 15.2929 2.29289C15.1054 2.48043 15 2.73478 15 3V5H13V3C13 2.73478 12.8946 2.48043 12.7071 2.29289C12.5196 2.10536 12.2652 2 12 2C11.7348 2 11.4804 2.10536 11.2929 2.29289C11.1054 2.48043 11 2.73478 11 3V5H9V3C9 2.73478 8.89464 2.48043 8.70711 2.29289C8.51957 2.10536 8.26522 2 8 2C7.73478 2 7.48043 2.10536 7.29289 2.29289C7.10536 2.48043 7 2.73478 7 3V5.18C6.5806 5.32932 6.19969 5.57011 5.8849 5.8849C5.57011 6.19969 5.32932 6.5806 5.18 7H3C2.73478 7 2.48043 7.10536 2.29289 7.29289C2.10536 7.48043 2 7.73478 2 8C2 8.26522 2.10536 8.51957 2.29289 8.70711C2.48043 8.89464 2.73478 9 3 9H5V11H3C2.73478 11 2.48043 11.1054 2.29289 11.2929C2.10536 11.4804 2 11.7348 2 12C2 12.2652 2.10536 12.5196 2.29289 12.7071C2.48043 12.8946 2.73478 13 3 13H5V15H3C2.73478 15 2.48043 15.1054 2.29289 15.2929C2.10536 15.4804 2 15.7348 2 16C2 16.2652 2.10536 16.5196 2.29289 16.7071C2.48043 16.8946 2.73478 17 3 17H5.18C5.32932 17.4194 5.57011 17.8003 5.8849 18.1151C6.19969 18.4299 6.5806 18.6707 7 18.82V21C7 21.2652 7.10536 21.5196 7.29289 21.7071C7.48043 21.8946 7.73478 22 8 22C8.26522 22 8.51957 21.8946 8.70711 21.7071C8.89464 21.5196 9 21.2652 9 21V19H11V21C11 21.2652 11.1054 21.5196 11.2929 21.7071C11.4804 21.8946 11.7348 22 12 22C12.2652 22 12.5196 21.8946 12.7071 21.7071C12.8946 21.5196 13 21.2652 13 21V19H15V21C15 21.2652 15.1054 21.5196 15.2929 21.7071C15.4804 21.8946 15.7348 22 16 22C16.2652 22 16.5196 21.8946 16.7071 21.7071C16.8946 21.5196 17 21.2652 17 21V18.82C17.4194 18.6707 17.8003 18.4299 18.1151 18.1151C18.4299 17.8003 18.6707 17.4194 18.82 17H21C21.2652 17 21.5196 16.8946 21.7071 16.7071C21.8946 16.5196 22 16.2652 22 16C22 15.7348 21.8946 15.4804 21.7071 15.2929C21.5196 15.1054 21.2652 15 21 15H19V13H21ZM17 16C17 16.2652 16.8946 16.5196 16.7071 16.7071C16.5196 16.8946 16.2652 17 16 17H8C7.73478 17 7.48043 16.8946 7.29289 16.7071C7.10536 16.5196 7 16.2652 7 16V8C7 7.73478 7.10536 7.48043 7.29289 7.29289C7.48043 7.10536 7.73478 7 8 7H16C16.2652 7 16.5196 7.10536 16.7071 7.29289C16.8946 7.48043 17 7.73478 17 8V16ZM14 13C13.8022 13 13.6089 13.0586 13.4444 13.1685C13.28 13.2784 13.1518 13.4346 13.0761 13.6173C13.0004 13.8 12.9806 14.0011 13.0192 14.1951C13.0578 14.3891 13.153 14.5673 13.2929 14.7071C13.4327 14.847 13.6109 14.9422 13.8049 14.9808C13.9989 15.0194 14.2 14.9996 14.3827 14.9239C14.5654 14.8482 14.7216 14.72 14.8315 14.5556C14.9414 14.3911 15 14.1978 15 14C15 13.7348 14.8946 13.4804 14.7071 13.2929C14.5196 13.1054 14.2652 13 14 13Z`,fill:`currentColor`})}),{width:16,height:16}),to:`/settings/llm`,text:`SETTINGS$NAV_LLM`,subtitle:`SETTINGS$PAGE_LLM_SUBLINE`},{icon:(0,H.jsx)(e=>(0,H.jsxs)(`svg`,{id:`Layer_1`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 22.3 18.66`,...e,children:[(0,H.jsx)(`defs`,{children:(0,H.jsx)(`style`,{children:`
|
|
2
2
|
.st0 {
|
|
3
3
|
stroke-miterlimit: 10;
|
|
4
4
|
}
|