@runfusion/fusion 0.45.0 → 0.46.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/dist/bin.js +531 -99
- package/dist/client/.vite/manifest.json +244 -244
- package/dist/client/assets/{AgentDetailView-DJTi6hKC.js → AgentDetailView-D1cA9Bfj.js} +1 -1
- package/dist/client/assets/{AgentPermissionPolicyEditor-C5DR9dUS.js → AgentPermissionPolicyEditor-DE0wv8-L.js} +1 -1
- package/dist/client/assets/{AgentsView-BNd90PSx.js → AgentsView-Bm_FA_1w.js} +3 -3
- package/dist/client/assets/{ChatView-B7JaZCL_.js → ChatView-CHEkov6q.js} +1 -1
- package/dist/client/assets/CommandCenter-Cfgek-dC.js +71 -0
- package/dist/client/assets/{CommandCenter-Xs5Ftv8s.css → CommandCenter-DDjpYkPe.css} +1 -1
- package/dist/client/assets/DevServerView-DgDksVH2.css +1 -0
- package/dist/client/assets/DevServerView-_or2KLVw.js +1 -0
- package/dist/client/assets/{DirectoryPicker-DegxT8ia.js → DirectoryPicker-etVwa-6X.js} +1 -1
- package/dist/client/assets/{DocumentsView-kVVQYISc.js → DocumentsView-e8ZTdPIZ.js} +1 -1
- package/dist/client/assets/{EvalsView-C9-iTSat.js → EvalsView-CjDRQFMQ.js} +1 -1
- package/dist/client/assets/{ExperimentalAgentOnboardingModal-DjP_xNkc.js → ExperimentalAgentOnboardingModal-DXR0OAsR.js} +1 -1
- package/dist/client/assets/{GoalsView-VoIHJJ5l.js → GoalsView-WWDKVslN.js} +1 -1
- package/dist/client/assets/{InsightsView-BIZaUcpd.js → InsightsView-DxIfxOzx.js} +1 -1
- package/dist/client/assets/{MemoryView-7v7rv6ns.js → MemoryView-BVW2hkWf.js} +1 -1
- package/dist/client/assets/{PiExtensionsManager-CB89rV4U.js → PiExtensionsManager-CpSfMok2.js} +1 -1
- package/dist/client/assets/{PluginManager-BNSuW_R4.js → PluginManager-CpBCy656.js} +1 -1
- package/dist/client/assets/{PullRequestView-CI5jdKBL.js → PullRequestView-BMspX1ga.js} +1 -1
- package/dist/client/assets/{ResearchView-BT5dR_m8.js → ResearchView--YEtcv_s.js} +1 -1
- package/dist/client/assets/{SecretsView-WPYI58Uo.js → SecretsView-CC6QDMWN.js} +1 -1
- package/dist/client/assets/{SessionTerminal-C6gyOWLt.js → SessionTerminal-DJGtgIls.js} +1 -1
- package/dist/client/assets/{SettingsModal-Bq_3AbaB.js → SettingsModal-4d_p8D7W.js} +1 -1
- package/dist/client/assets/SettingsModal-ino68pI2.css +1 -0
- package/dist/client/assets/SettingsModal-wABa7xmZ.js +21 -0
- package/dist/client/assets/{SetupWizardModal-CrgbnR_d.js → SetupWizardModal-DHe2tXzx.js} +2 -2
- package/dist/client/assets/{ShadcnColorPicker-1icHuwhC.js → ShadcnColorPicker-HX3j1v66.js} +1 -1
- package/dist/client/assets/{SkillsView-byuSe3e0.js → SkillsView-mdFVTX-r.js} +1 -1
- package/dist/client/assets/{TodoView-CQ9GjYBg.js → TodoView-DQVugDpW.js} +1 -1
- package/dist/client/assets/{WorkflowNodeEditor-DW7sJZUX.js → WorkflowNodeEditor-CeERQHHu.js} +1 -1
- package/dist/client/assets/{agentSkills-CeytXLHF.js → agentSkills-C2v1wbxh.js} +1 -1
- package/dist/client/assets/{app-7-5DWLtg.js → app-BJGkp7Tt.js} +3 -3
- package/dist/client/assets/{app-CZ2LTFce.js → app-BKLUvvm8.js} +3 -3
- package/dist/client/assets/{app-Cv9xEnll.js → app-BaoNC9zg.js} +1 -1
- package/dist/client/assets/{app-x_yPcO5Y.js → app-CZQ_fFNf.js} +3 -3
- package/dist/client/assets/{app-CSvE5Noc.js → app-DAu3AzsS.js} +3 -3
- package/dist/client/assets/{app-3wbZ08YC.js → app-DgezOJub.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-BRI0QwDf.js → architectureDiagram-3BPJPVTR-CGEhhgX_.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-BXkN8Hv_.js → blockDiagram-GPEHLZMM-D0DTo0HT.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-C_Kcokep.js → c4Diagram-AAUBKEIU-DNykNaRb.js} +1 -1
- package/dist/client/assets/channel-Dwf1FoGU.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-BGeuCz9C.js → chunk-2J33WTMH-5oQfAhmr.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-DcVdctr0.js → chunk-4BX2VUAB-BqLZXgFw.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-Dg6gDigQ.js → chunk-55IACEB6-C1oIjX3T.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-B9B-vlEb.js → chunk-727SXJPM-BaovQTgk.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-LrWQ-2yi.js → chunk-AQP2D5EJ-B4ikBK42.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-Bnd6hAED.js → chunk-FMBD7UC4-5zgtNnG2.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-nAw93UB5.js → chunk-ND2GUHAM-ByrypRna.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-CgprKcZo.js → chunk-QZHKN3VN-B7D1exsu.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-WqSUwcK_.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-WqSUwcK_.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-Bhn0g_iK.js → cose-bilkent-S5V4N54A-CQmiNzGr.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-CP4kfwqd.js → dagre-BM42HDAG-BH8Uk0Up.js} +1 -1
- package/dist/client/assets/{dashboard-view-CM6Xin_H.js → dashboard-view-CWJ-b59n.js} +1 -1
- package/dist/client/assets/{dashboard-view-DV1nEhh9.js → dashboard-view-D3PWY2PH.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-DPhzVEUf.js → diagram-2AECGRRQ-CDoHfkxY.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-8QOC3K_L.js → diagram-5GNKFQAL-DARILCuD.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-C1twgEch.js → diagram-KO2AKTUF-CNP-qi0y.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-3bEegSuf.js → diagram-LMA3HP47-SCiVmkcf.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-BJ_x0rm6.js → diagram-OG6HWLK6-iTJLXH61.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-DNiiS5q6.js → erDiagram-TEJ5UH35-ByMpiPIa.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-DoouPklt.js → flowDiagram-I6XJVG4X-DW3m3ZpM.js} +1 -1
- package/dist/client/assets/{folder-open-CuUs2W7f.js → folder-open-G-9vPAdv.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-BrR6VnP5.js → ganttDiagram-6RSMTGT7-BJeYH7Ol.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-BV8_J6Ee.js → gitGraphDiagram-PVQCEYII-CK_Chj4m.js} +1 -1
- package/dist/client/assets/index-ccFe_1av.js +1459 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-DGwIIFkR.js → infoDiagram-5YYISTIA-D8Wg1IgN.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-D5dEH4RE.js → ishikawaDiagram-YF4QCWOH-DWROR2aX.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-BuuSWPw5.js → journeyDiagram-JHISSGLW-Bns9774_.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-DA34uUla.js → kanban-definition-UN3LZRKU-QtURfAoI.js} +1 -1
- package/dist/client/assets/{mermaid.core-Ch4HatqA.js → mermaid.core-DqgrgWWm.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-DUCG-qD3.js → mindmap-definition-RKZ34NQL-jLaDb5_X.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-DWvFGiLa.js → pieDiagram-4H26LBE5-CjbHuIje.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-OPTVW3WT.js → quadrantDiagram-W4KKPZXB-xgHbylQr.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-D7feZvlU.js → requirementDiagram-4Y6WPE33-CHdD7W41.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-AtnSsEX1.js → sankeyDiagram-5OEKKPKP-C3me87g9.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BZjHUeI5.js → sequenceDiagram-3UESZ5HK-DSHfs1kU.js} +1 -1
- package/dist/client/assets/{shield-alert-CzaF9ROV.js → shield-alert-DkGlhVjI.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-C8j23Pvn.js → stateDiagram-AJRCARHV-C08n7sMP.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-CiZR_S5-.js → stateDiagram-v2-BHNVJYJU-BosoAbfO.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-DvfNz25n.js → timeline-definition-PNZ67QCA-C21h9Zqh.js} +1 -1
- package/dist/client/assets/{upload-DTsYywhN.js → upload-B9B-tYt9.js} +1 -1
- package/dist/client/assets/{users-yAd09tKP.js → users-C_BA3C7E.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-CG2aMt3v.js → vennDiagram-CIIHVFJN-Bv3G0dwI.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-BnhBteen.js → wardley-L42UT6IY-WX0hHKcN.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DwqTzM3T.js → wardleyDiagram-YWT4CUSO-CMwIPWm7.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-5Cv2ZKMV.js → xychartDiagram-2RQKCTM6-CZvFdt6j.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/client/version.json +1 -1
- package/dist/droid-cli/package.json +1 -1
- package/dist/extension.js +472 -94
- package/dist/pi-claude-cli/package.json +1 -1
- package/dist/plugin-sdk/index.d.ts +11 -0
- package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
- package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
- package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
- package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-reports/package.json +1 -1
- package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
- package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
- package/package.json +1 -1
- package/dist/client/assets/CommandCenter-CHO21xEW.js +0 -74
- package/dist/client/assets/DevServerView-B_p91Mj_.css +0 -1
- package/dist/client/assets/DevServerView-H9OkT1ld.js +0 -1
- package/dist/client/assets/SettingsModal-BZokaNyx.css +0 -1
- package/dist/client/assets/SettingsModal-JHACoQJe.js +0 -21
- package/dist/client/assets/channel-Clzpzu32.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CzYHP-af.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CzYHP-af.js +0 -1
- package/dist/client/assets/index-CZcWjLAb.js +0 -1459
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ExperimentalAgentOnboardingModal-
|
|
2
|
-
import{A as m,g as w,m as I,u as ee,r as te,a as se,b as ae,d as ne,X as re,C as ie,e as k,S as le,f as D,L as E,E as oe,_ as de}from"./index-CZcWjLAb.js";import{r as i,j as e}from"./vendor-react-SZ_qB27O.js";import{D as ce}from"./DirectoryPicker-DegxT8ia.js";import{s as M}from"./projectDetection-G3XuxD2X.js";import{u as ue}from"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-Bg-Qjzh8.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";import"./folder-open-CuUs2W7f.js";const pe=i.lazy(()=>de(()=>import("./ExperimentalAgentOnboardingModal-DjP_xNkc.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])).then(u=>({default:u.ExperimentalAgentOnboardingModal})));function be({onProjectRegistered:u,onClose:N,agentOnboardingEnabled:v=!1,includeAgentStep:b=!0}){const{t:a}=ue("app"),S="https://discord.gg/ksrfuy7WYR",h=i.useMemo(()=>w("ceo")??m[0],[]),[R,F]=i.useState(!0),[t,r]=i.useState(()=>({step:"manual",manualMode:"existing",manualPath:"",manualCloneUrl:"",manualName:"",manualIsolationMode:"in-process",manualNodeId:"",registeredProject:null,selectedPresetId:h.id,agentDraft:I(h),isCreatingAgent:!1,isRegistering:!1,error:null,agentError:null,agentOutcome:null})),[y,T]=i.useState(!1),[C,j]=i.useState(!1),z=i.useRef(null),{nodes:P,loading:U}=ee(),O=P.find(s=>s.type==="local")?.id,x=i.useCallback(()=>{F(!1),N?.()},[N]),L=i.useCallback(()=>{if(t.registeredProject){u(t.registeredProject);return}x()},[x,u,t.registeredProject]);i.useEffect(()=>{t.agentError&&z.current?.focus()},[t.agentError]);const _=i.useCallback(s=>{r(n=>{const l={manualPath:s};return s&&(!n.manualName||n.manualName===M(n.manualPath))&&(l.manualName=M(s)),{...n,...l}})},[]),H=i.useCallback(async()=>{const s=t.manualPath.trim(),n=t.manualName.trim(),l=t.manualCloneUrl.trim();if(!(!s||!n)&&!(t.manualMode==="clone"&&!l)){r(d=>({...d,isRegistering:!0,error:null}));try{const d={name:n,path:s,isolationMode:t.manualIsolationMode,nodeId:t.manualNodeId||void 0,cloneUrl:t.manualMode==="clone"?l:void 0},o=await te(d);if(!b){r(p=>({...p,isRegistering:!1})),u(o);return}r(p=>({...p,step:"agent",registeredProject:o,isRegistering:!1}))}catch(d){r(o=>({...o,isRegistering:!1,error:d instanceof Error?d.message:"Failed to register project"}))}}},[b,u,t.manualPath,t.manualName,t.manualCloneUrl,t.manualMode,t.manualIsolationMode,t.manualNodeId]),f=i.useCallback(s=>{const n=w(s);n&&r(l=>({...l,selectedPresetId:n.id,agentDraft:I(n),agentError:null}))},[]),B=i.useCallback((s,n)=>{const l=m.findIndex(Q=>Q.id===n);if(l<0)return;const d=m.length-1;let o=null;if(s.key==="ArrowDown"||s.key==="ArrowRight"?o=l===d?0:l+1:s.key==="ArrowUp"||s.key==="ArrowLeft"?o=l===0?d:l-1:s.key==="Home"?o=0:s.key==="End"&&(o=d),o===null)return;s.preventDefault();const p=m[o];f(p.id),requestAnimationFrame(()=>{document.querySelector(`[data-agent-preset-id="${p.id}"]`)?.focus()})},[f]),$=i.useCallback(s=>{r(n=>({...n,selectedPresetId:"",agentDraft:se(s),agentError:null}))},[]),W=i.useCallback(async()=>{if(!(!t.registeredProject||!t.agentDraft.name.trim())){r(s=>({...s,isCreatingAgent:!0,agentError:null}));try{await ae(ne(t.agentDraft),t.registeredProject.id),r(s=>({...s,step:"complete",isCreatingAgent:!1,agentOutcome:"created"}))}catch(s){r(n=>({...n,isCreatingAgent:!1,agentError:s instanceof Error?s.message:a("setup.firstAgentCreateError","Failed to create agent")}))}}},[t.agentDraft,t.registeredProject,a]),Y=i.useCallback(()=>{r(s=>({...s,step:"complete",agentError:null,agentOutcome:"skipped"}))},[]);if(!R)return null;const A=t.manualMode==="existing",c=t.manualMode==="clone",G=t.manualPath.trim().length>0,q=t.manualName.trim().length>0,K=t.manualCloneUrl.trim().length>0,V=t.isRegistering||!G||!q||c&&!K,X=t.selectedPresetId?w(t.selectedPresetId):void 0,g=t.isCreatingAgent,Z=t.selectedPresetId||h.id,J=`modal setup-wizard-modal${t.step==="agent"?" setup-wizard-modal--agent":""}`;return e.jsxs("div",{className:"modal-overlay open setup-wizard-overlay",role:"dialog","aria-modal":"true","aria-labelledby":"wizard-title",children:[e.jsxs("div",{className:J,children:[e.jsxs("div",{className:"setup-wizard-header",children:[e.jsxs("div",{className:"setup-wizard-heading",children:[e.jsxs("div",{className:"setup-wizard-brand","aria-label":a("setup.brandName","Fusion"),children:[e.jsxs("svg",{className:"setup-wizard-brand-logo",width:28,height:28,viewBox:"0 0 128 128",fill:"none","aria-label":a("setup.brandLogo","Fusion logo"),role:"img",children:[e.jsx("circle",{cx:"64",cy:"64",r:"52",stroke:"currentColor",strokeWidth:"8"}),e.jsx("path",{d:"M26 101C44 82 62 64 82 45C90 37 98 30 104 24C96 35 89 47 81 60C70 79 57 95 43 108C38 112 32 108 26 101Z",fill:"currentColor"})]}),e.jsx("span",{className:"setup-wizard-brand-name",children:a("setup.brandName","Fusion")})]}),e.jsxs("h2",{id:"wizard-title",className:"setup-wizard-title",children:[t.step==="manual"&&a("setup.welcomeToFusion","Welcome to Fusion"),t.step==="agent"&&a("setup.firstAgentTitle","Create your first agent"),t.step==="complete"&&a("setup.setupCompleteTitle","Setup Complete!")]})]}),t.step!=="complete"&&t.step!=="agent"&&e.jsx("button",{className:"modal-close",onClick:x,"aria-label":a("setup.closeWizard","Close wizard"),children:e.jsx(re,{size:20})})]}),e.jsxs("div",{className:"setup-wizard-content",children:[t.step==="manual"&&e.jsxs("div",{className:"setup-wizard-manual",children:[e.jsxs("div",{className:"form-group",children:[e.jsx("label",{htmlFor:"project-name",children:a("setup.projectName","Project Name")}),e.jsx("input",{id:"project-name",type:"text",value:t.manualName,onChange:s=>r(n=>({...n,manualName:s.target.value})),placeholder:a("setup.projectNamePlaceholder","my-project")}),e.jsx("p",{className:"form-hint",children:c?a("setup.projectNameHintClone","By default this follows the destination folder name unless you edit it."):a("setup.projectNameHintExisting","By default this follows the selected directory name unless you edit it.")})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{htmlFor:"project-path",children:c?a("setup.destinationDirectory","Destination Directory"):a("setup.projectDirectory","Project Directory")}),e.jsx(ce,{value:t.manualPath,onChange:_,nodeId:t.manualNodeId||void 0,localNodeId:O,placeholder:c?a("setup.clonePathPlaceholder","/path/for/new-clone"):a("setup.projectPathPlaceholder","/path/to/your/project")}),e.jsx("p",{className:"form-hint",children:c?a("setup.clonePathHint","Select or type an absolute destination path. Fusion will clone into this directory."):a("setup.projectPathHint","Select or type the absolute path to your project")})]}),e.jsxs("div",{className:"setup-wizard-advanced",children:[e.jsxs("button",{type:"button",className:"setup-wizard-advanced-toggle","aria-expanded":y,onClick:()=>T(s=>!s),children:[e.jsx(ie,{size:16,className:"setup-wizard-advanced-chevron"}),e.jsx("span",{children:a("setup.advancedSettings","Advanced settings")})]}),y&&e.jsxs("div",{className:"setup-wizard-advanced-panel",children:[e.jsxs("fieldset",{className:"setup-wizard-mode-switch","aria-label":"Project setup mode",children:[e.jsx("legend",{children:a("setup.setupMode","Setup Mode")}),e.jsxs("label",{className:`setup-wizard-mode-option${A?" selected":""}`,children:[e.jsx("input",{type:"radio",name:"setup-mode",value:"existing",checked:A,onChange:()=>r(s=>({...s,manualMode:"existing",error:null}))}),e.jsx("span",{children:a("setup.useExistingDirectory","Use Existing Directory")})]}),e.jsxs("label",{className:`setup-wizard-mode-option${c?" selected":""}`,children:[e.jsx("input",{type:"radio",name:"setup-mode",value:"clone",checked:c,onChange:()=>r(s=>({...s,manualMode:"clone",error:null}))}),e.jsx("span",{children:a("setup.cloneGitRepository","Clone Git Repository")})]})]}),c&&e.jsxs("div",{className:"form-group",children:[e.jsx("label",{htmlFor:"project-clone-url",children:a("setup.repositoryUrl","Repository URL")}),e.jsx("input",{id:"project-clone-url",type:"text",value:t.manualCloneUrl,onChange:s=>r(n=>({...n,manualCloneUrl:s.target.value})),placeholder:a("setup.repositoryUrlPlaceholder","https://github.com/owner/repo.git")}),e.jsx("p",{className:"form-hint",children:a("setup.cloneGitHint","Fusion will run git clone into the destination directory, then register that cloned folder.")})]}),e.jsx("div",{className:"form-group",children:e.jsxs("div",{className:"project-node-selector",children:[e.jsx("span",{className:"project-node-selector__label",children:a("setup.runtimeNode","Runtime Node")}),e.jsxs("select",{value:t.manualNodeId,onChange:s=>r(n=>({...n,manualNodeId:s.target.value})),disabled:U||t.isRegistering,children:[e.jsx("option",{value:"",children:a("setup.localNode","Local node")}),P.map(s=>e.jsxs("option",{value:s.id,children:[s.name," (",s.type,")"]},s.id))]})]})}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("setup.isolationMode","Isolation Mode")}),e.jsxs("div",{className:"setup-wizard-isolation-options",children:[e.jsxs("label",{className:`setup-wizard-isolation-option${t.manualIsolationMode==="in-process"?" selected":""}`,children:[e.jsx("input",{type:"radio",name:"isolation-mode",value:"in-process",checked:t.manualIsolationMode==="in-process",onChange:()=>r(s=>({...s,manualIsolationMode:"in-process"}))}),e.jsxs("div",{className:"setup-wizard-isolation-option-content",children:[e.jsx("strong",{children:a("setup.inProcess","In-Process")}),e.jsx("span",{children:a("setup.inProcessDesc","Lower overhead, shared memory. Best for most projects.")}),e.jsx("span",{className:"wizard-option-recommended",children:a("setup.recommended","Recommended")})]})]}),e.jsxs("label",{className:`setup-wizard-isolation-option${t.manualIsolationMode==="child-process"?" selected":""}`,children:[e.jsx("input",{type:"radio",name:"isolation-mode",value:"child-process",checked:t.manualIsolationMode==="child-process",onChange:()=>r(s=>({...s,manualIsolationMode:"child-process"}))}),e.jsxs("div",{className:"setup-wizard-isolation-option-content",children:[e.jsx("strong",{children:a("setup.childProcess","Child-Process")}),e.jsx("span",{children:a("setup.childProcessDesc","Isolated execution with crash containment.")})]})]})]})]})]})]}),t.error&&e.jsx("div",{className:"wizard-error",role:"alert",children:t.error})]}),t.step==="agent"&&e.jsxs("div",{className:"setup-wizard-agent-step",children:[e.jsx("p",{className:"setup-wizard-agent-intro",children:a("setup.firstAgentIntro","Agents are optional. Fusion can build tasks without one by starting temporary agents for planning, coding, review, and merge. Create an agent only if you want help coordinating tasks and direction.")}),e.jsxs("div",{className:"setup-wizard-agent-layout",children:[e.jsxs("section",{className:"setup-wizard-agent-presets","aria-labelledby":"setup-first-agent-presets-heading",children:[e.jsx("div",{className:"setup-wizard-agent-section-heading",id:"setup-first-agent-presets-heading",children:a("setup.firstAgentTemplates","Templates")}),e.jsx("div",{className:"setup-wizard-agent-preset-list",role:"radiogroup","aria-label":a("setup.firstAgentTemplates","Templates"),children:m.map(s=>{const n=t.selectedPresetId===s.id;return e.jsxs("button",{type:"button",className:`setup-wizard-agent-preset${n?" selected":""}`,role:"radio","aria-checked":n,"aria-label":n?a("setup.selectedAgentTemplate","{{name}} selected",{name:s.name}):s.name,tabIndex:s.id===Z?0:-1,"data-agent-preset-id":s.id,disabled:g,onClick:()=>f(s.id),onKeyDown:l=>B(l,s.id),children:[e.jsx(k,{agent:{id:s.id,icon:s.icon,name:s.name},size:28}),e.jsxs("span",{className:"setup-wizard-agent-preset-copy",children:[e.jsxs("span",{className:"setup-wizard-agent-preset-name",children:[s.name,s.id==="ceo"&&e.jsx("span",{className:"wizard-option-recommended",children:a("setup.recommended","Recommended")})]}),e.jsx("span",{className:"setup-wizard-agent-preset-description",children:s.description})]})]},s.id)})})]}),e.jsxs("section",{className:"setup-wizard-agent-preview","aria-labelledby":"setup-first-agent-preview-heading",children:[e.jsx("div",{className:"setup-wizard-agent-section-heading",id:"setup-first-agent-preview-heading",children:a("setup.firstAgentPreview","Preview")}),e.jsxs("div",{className:"setup-wizard-agent-preview-card",children:[e.jsxs("div",{className:"setup-wizard-agent-preview-title-row",children:[e.jsx(k,{agent:{id:t.selectedPresetId||"draft",icon:t.agentDraft.icon,name:t.agentDraft.name},size:36}),e.jsxs("div",{children:[e.jsx("h3",{children:t.agentDraft.name||a("setup.firstAgentDraftName","Draft agent")}),e.jsx("p",{children:t.agentDraft.title||X?.title||a("setup.firstAgentCustomDraft","Custom agent draft")})]})]}),e.jsxs("dl",{className:"setup-wizard-agent-preview-list",children:[e.jsxs("div",{children:[e.jsx("dt",{children:a("agents.fieldRole","Role")}),e.jsx("dd",{children:t.agentDraft.role})]}),e.jsxs("div",{children:[e.jsx("dt",{children:a("agents.fieldInstructionsText","Inline Instructions")}),e.jsx("dd",{children:t.agentDraft.instructionsText||a("setup.firstAgentNoInstructions","No inline instructions yet")})]})]}),v&&e.jsxs("button",{type:"button",className:"btn setup-wizard-agent-ai-btn",onClick:()=>j(!0),disabled:g,children:[e.jsx(le,{size:16}),e.jsx("span",{children:a("agents.aiInterview","AI Interview")})]})]})]})]}),t.agentError&&e.jsx("div",{className:"wizard-error",role:"alert",tabIndex:-1,ref:z,children:t.agentError})]}),t.step==="complete"&&e.jsxs("div",{className:"setup-wizard-complete",children:[e.jsxs("div",{className:"setup-wizard-success-streak","aria-hidden":"true",children:[e.jsx("div",{className:"setup-wizard-success-streak-core"}),e.jsx("div",{className:"setup-wizard-success-streak-glow"})]}),e.jsx(D,{size:64,className:"success-icon"}),e.jsx("h3",{children:a("setup.allSet","All Set!")}),e.jsx("p",{children:t.agentOutcome==="created"?a("setup.firstAgentCreatedSuccess","Your project is registered and your first agent is ready."):a("setup.projectRegisteredSuccess","Your project has been registered successfully.")}),e.jsx("p",{children:t.agentOutcome==="skipped"?a("setup.firstAgentSkippedHint","You can create agents later from the Agents view."):a("setup.addMoreProjectsHint","You can add more projects anytime from the project overview.")})]})]}),e.jsxs("div",{className:"setup-wizard-footer",children:[e.jsx("a",{className:"btn setup-wizard-help-link",href:S,target:"_blank",rel:"noopener noreferrer",children:a("setup.needHelp","Need help?")}),t.step==="manual"&&e.jsx("button",{className:"btn btn-primary",onClick:H,disabled:V,children:t.isRegistering?e.jsxs(e.Fragment,{children:[e.jsx(E,{size:16,className:"animate-spin"}),e.jsx("span",{children:a("setup.registering","Registering...")})]}):e.jsx("span",{children:a("setup.registerProject","Register Project")})}),t.step==="agent"&&e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"btn",onClick:Y,disabled:g,children:a("setup.skipFirstAgent","Skip for now")}),e.jsx("button",{className:"btn btn-primary",onClick:()=>void W(),disabled:g||!t.agentDraft.name.trim(),"aria-busy":t.isCreatingAgent,children:t.isCreatingAgent?e.jsxs(e.Fragment,{children:[e.jsx(E,{size:16,className:"animate-spin"}),e.jsx("span",{children:a("setup.creatingFirstAgent","Creating agent...")})]}):e.jsx("span",{children:a("setup.createFirstAgent","Create Agent")})})]}),t.step==="complete"&&e.jsxs("button",{className:"btn btn-primary",onClick:L,children:[e.jsx(D,{size:16}),e.jsx("span",{children:a("setup.getStarted","Get Started")})]})]})]}),v&&C&&e.jsx(oe,{level:"modal",fallback:e.jsxs("div",{className:"wizard-error setup-wizard-agent-interview-error",role:"alert",children:[e.jsx("span",{children:a("setup.firstAgentInterviewLoadError","AI interview could not load. You can still create an agent from a template or skip this step.")}),e.jsx("button",{type:"button",className:"btn",onClick:()=>j(!1),children:a("setup.firstAgentContinueWithTemplates","Continue with templates")})]}),children:e.jsx(i.Suspense,{fallback:e.jsx("div",{className:"wizard-error setup-wizard-agent-interview-error",role:"status",children:a("setup.firstAgentInterviewLoading","Loading AI Interview...")}),children:e.jsx(pe,{isOpen:C,onClose:()=>j(!1),onUseDraft:$,projectId:t.registeredProject?.id,existingAgents:[],mode:"create"})})})]})}export{be as SetupWizardModal};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ExperimentalAgentOnboardingModal-DXR0OAsR.js","assets/vendor-react-SZ_qB27O.js","assets/index-ccFe_1av.js","assets/vendor-i18n-GF3RlKbq.js","assets/vendor-reactflow-Bg-Qjzh8.js","assets/vendor-reactflow-C5ap-Sga.css","assets/vendor-xterm-BNq00GSj.js","assets/vendor-xterm-LZoznX6r.css","assets/vendor-codemirror-jBKmHyH0.js","assets/index-BZBQ_KsL.css","assets/ExperimentalAgentOnboardingModal-3ZEFv8sr.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{A as m,g as w,m as I,u as ee,r as te,a as se,b as ae,d as ne,X as re,C as ie,e as k,S as le,f as D,L as E,E as oe,_ as de}from"./index-ccFe_1av.js";import{r as i,j as e}from"./vendor-react-SZ_qB27O.js";import{D as ce}from"./DirectoryPicker-etVwa-6X.js";import{s as M}from"./projectDetection-G3XuxD2X.js";import{u as ue}from"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-Bg-Qjzh8.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";import"./folder-open-G-9vPAdv.js";const pe=i.lazy(()=>de(()=>import("./ExperimentalAgentOnboardingModal-DXR0OAsR.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])).then(u=>({default:u.ExperimentalAgentOnboardingModal})));function be({onProjectRegistered:u,onClose:N,agentOnboardingEnabled:v=!1,includeAgentStep:b=!0}){const{t:a}=ue("app"),S="https://discord.gg/ksrfuy7WYR",h=i.useMemo(()=>w("ceo")??m[0],[]),[R,F]=i.useState(!0),[t,r]=i.useState(()=>({step:"manual",manualMode:"existing",manualPath:"",manualCloneUrl:"",manualName:"",manualIsolationMode:"in-process",manualNodeId:"",registeredProject:null,selectedPresetId:h.id,agentDraft:I(h),isCreatingAgent:!1,isRegistering:!1,error:null,agentError:null,agentOutcome:null})),[y,T]=i.useState(!1),[C,j]=i.useState(!1),z=i.useRef(null),{nodes:P,loading:U}=ee(),O=P.find(s=>s.type==="local")?.id,x=i.useCallback(()=>{F(!1),N?.()},[N]),L=i.useCallback(()=>{if(t.registeredProject){u(t.registeredProject);return}x()},[x,u,t.registeredProject]);i.useEffect(()=>{t.agentError&&z.current?.focus()},[t.agentError]);const _=i.useCallback(s=>{r(n=>{const l={manualPath:s};return s&&(!n.manualName||n.manualName===M(n.manualPath))&&(l.manualName=M(s)),{...n,...l}})},[]),H=i.useCallback(async()=>{const s=t.manualPath.trim(),n=t.manualName.trim(),l=t.manualCloneUrl.trim();if(!(!s||!n)&&!(t.manualMode==="clone"&&!l)){r(d=>({...d,isRegistering:!0,error:null}));try{const d={name:n,path:s,isolationMode:t.manualIsolationMode,nodeId:t.manualNodeId||void 0,cloneUrl:t.manualMode==="clone"?l:void 0},o=await te(d);if(!b){r(p=>({...p,isRegistering:!1})),u(o);return}r(p=>({...p,step:"agent",registeredProject:o,isRegistering:!1}))}catch(d){r(o=>({...o,isRegistering:!1,error:d instanceof Error?d.message:"Failed to register project"}))}}},[b,u,t.manualPath,t.manualName,t.manualCloneUrl,t.manualMode,t.manualIsolationMode,t.manualNodeId]),f=i.useCallback(s=>{const n=w(s);n&&r(l=>({...l,selectedPresetId:n.id,agentDraft:I(n),agentError:null}))},[]),B=i.useCallback((s,n)=>{const l=m.findIndex(Q=>Q.id===n);if(l<0)return;const d=m.length-1;let o=null;if(s.key==="ArrowDown"||s.key==="ArrowRight"?o=l===d?0:l+1:s.key==="ArrowUp"||s.key==="ArrowLeft"?o=l===0?d:l-1:s.key==="Home"?o=0:s.key==="End"&&(o=d),o===null)return;s.preventDefault();const p=m[o];f(p.id),requestAnimationFrame(()=>{document.querySelector(`[data-agent-preset-id="${p.id}"]`)?.focus()})},[f]),$=i.useCallback(s=>{r(n=>({...n,selectedPresetId:"",agentDraft:se(s),agentError:null}))},[]),W=i.useCallback(async()=>{if(!(!t.registeredProject||!t.agentDraft.name.trim())){r(s=>({...s,isCreatingAgent:!0,agentError:null}));try{await ae(ne(t.agentDraft),t.registeredProject.id),r(s=>({...s,step:"complete",isCreatingAgent:!1,agentOutcome:"created"}))}catch(s){r(n=>({...n,isCreatingAgent:!1,agentError:s instanceof Error?s.message:a("setup.firstAgentCreateError","Failed to create agent")}))}}},[t.agentDraft,t.registeredProject,a]),Y=i.useCallback(()=>{r(s=>({...s,step:"complete",agentError:null,agentOutcome:"skipped"}))},[]);if(!R)return null;const A=t.manualMode==="existing",c=t.manualMode==="clone",G=t.manualPath.trim().length>0,q=t.manualName.trim().length>0,K=t.manualCloneUrl.trim().length>0,V=t.isRegistering||!G||!q||c&&!K,X=t.selectedPresetId?w(t.selectedPresetId):void 0,g=t.isCreatingAgent,Z=t.selectedPresetId||h.id,J=`modal setup-wizard-modal${t.step==="agent"?" setup-wizard-modal--agent":""}`;return e.jsxs("div",{className:"modal-overlay open setup-wizard-overlay",role:"dialog","aria-modal":"true","aria-labelledby":"wizard-title",children:[e.jsxs("div",{className:J,children:[e.jsxs("div",{className:"setup-wizard-header",children:[e.jsxs("div",{className:"setup-wizard-heading",children:[e.jsxs("div",{className:"setup-wizard-brand","aria-label":a("setup.brandName","Fusion"),children:[e.jsxs("svg",{className:"setup-wizard-brand-logo",width:28,height:28,viewBox:"0 0 128 128",fill:"none","aria-label":a("setup.brandLogo","Fusion logo"),role:"img",children:[e.jsx("circle",{cx:"64",cy:"64",r:"52",stroke:"currentColor",strokeWidth:"8"}),e.jsx("path",{d:"M26 101C44 82 62 64 82 45C90 37 98 30 104 24C96 35 89 47 81 60C70 79 57 95 43 108C38 112 32 108 26 101Z",fill:"currentColor"})]}),e.jsx("span",{className:"setup-wizard-brand-name",children:a("setup.brandName","Fusion")})]}),e.jsxs("h2",{id:"wizard-title",className:"setup-wizard-title",children:[t.step==="manual"&&a("setup.welcomeToFusion","Welcome to Fusion"),t.step==="agent"&&a("setup.firstAgentTitle","Create your first agent"),t.step==="complete"&&a("setup.setupCompleteTitle","Setup Complete!")]})]}),t.step!=="complete"&&t.step!=="agent"&&e.jsx("button",{className:"modal-close",onClick:x,"aria-label":a("setup.closeWizard","Close wizard"),children:e.jsx(re,{size:20})})]}),e.jsxs("div",{className:"setup-wizard-content",children:[t.step==="manual"&&e.jsxs("div",{className:"setup-wizard-manual",children:[e.jsxs("div",{className:"form-group",children:[e.jsx("label",{htmlFor:"project-name",children:a("setup.projectName","Project Name")}),e.jsx("input",{id:"project-name",type:"text",value:t.manualName,onChange:s=>r(n=>({...n,manualName:s.target.value})),placeholder:a("setup.projectNamePlaceholder","my-project")}),e.jsx("p",{className:"form-hint",children:c?a("setup.projectNameHintClone","By default this follows the destination folder name unless you edit it."):a("setup.projectNameHintExisting","By default this follows the selected directory name unless you edit it.")})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{htmlFor:"project-path",children:c?a("setup.destinationDirectory","Destination Directory"):a("setup.projectDirectory","Project Directory")}),e.jsx(ce,{value:t.manualPath,onChange:_,nodeId:t.manualNodeId||void 0,localNodeId:O,placeholder:c?a("setup.clonePathPlaceholder","/path/for/new-clone"):a("setup.projectPathPlaceholder","/path/to/your/project")}),e.jsx("p",{className:"form-hint",children:c?a("setup.clonePathHint","Select or type an absolute destination path. Fusion will clone into this directory."):a("setup.projectPathHint","Select or type the absolute path to your project")})]}),e.jsxs("div",{className:"setup-wizard-advanced",children:[e.jsxs("button",{type:"button",className:"setup-wizard-advanced-toggle","aria-expanded":y,onClick:()=>T(s=>!s),children:[e.jsx(ie,{size:16,className:"setup-wizard-advanced-chevron"}),e.jsx("span",{children:a("setup.advancedSettings","Advanced settings")})]}),y&&e.jsxs("div",{className:"setup-wizard-advanced-panel",children:[e.jsxs("fieldset",{className:"setup-wizard-mode-switch","aria-label":"Project setup mode",children:[e.jsx("legend",{children:a("setup.setupMode","Setup Mode")}),e.jsxs("label",{className:`setup-wizard-mode-option${A?" selected":""}`,children:[e.jsx("input",{type:"radio",name:"setup-mode",value:"existing",checked:A,onChange:()=>r(s=>({...s,manualMode:"existing",error:null}))}),e.jsx("span",{children:a("setup.useExistingDirectory","Use Existing Directory")})]}),e.jsxs("label",{className:`setup-wizard-mode-option${c?" selected":""}`,children:[e.jsx("input",{type:"radio",name:"setup-mode",value:"clone",checked:c,onChange:()=>r(s=>({...s,manualMode:"clone",error:null}))}),e.jsx("span",{children:a("setup.cloneGitRepository","Clone Git Repository")})]})]}),c&&e.jsxs("div",{className:"form-group",children:[e.jsx("label",{htmlFor:"project-clone-url",children:a("setup.repositoryUrl","Repository URL")}),e.jsx("input",{id:"project-clone-url",type:"text",value:t.manualCloneUrl,onChange:s=>r(n=>({...n,manualCloneUrl:s.target.value})),placeholder:a("setup.repositoryUrlPlaceholder","https://github.com/owner/repo.git")}),e.jsx("p",{className:"form-hint",children:a("setup.cloneGitHint","Fusion will run git clone into the destination directory, then register that cloned folder.")})]}),e.jsx("div",{className:"form-group",children:e.jsxs("div",{className:"project-node-selector",children:[e.jsx("span",{className:"project-node-selector__label",children:a("setup.runtimeNode","Runtime Node")}),e.jsxs("select",{value:t.manualNodeId,onChange:s=>r(n=>({...n,manualNodeId:s.target.value})),disabled:U||t.isRegistering,children:[e.jsx("option",{value:"",children:a("setup.localNode","Local node")}),P.map(s=>e.jsxs("option",{value:s.id,children:[s.name," (",s.type,")"]},s.id))]})]})}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("setup.isolationMode","Isolation Mode")}),e.jsxs("div",{className:"setup-wizard-isolation-options",children:[e.jsxs("label",{className:`setup-wizard-isolation-option${t.manualIsolationMode==="in-process"?" selected":""}`,children:[e.jsx("input",{type:"radio",name:"isolation-mode",value:"in-process",checked:t.manualIsolationMode==="in-process",onChange:()=>r(s=>({...s,manualIsolationMode:"in-process"}))}),e.jsxs("div",{className:"setup-wizard-isolation-option-content",children:[e.jsx("strong",{children:a("setup.inProcess","In-Process")}),e.jsx("span",{children:a("setup.inProcessDesc","Lower overhead, shared memory. Best for most projects.")}),e.jsx("span",{className:"wizard-option-recommended",children:a("setup.recommended","Recommended")})]})]}),e.jsxs("label",{className:`setup-wizard-isolation-option${t.manualIsolationMode==="child-process"?" selected":""}`,children:[e.jsx("input",{type:"radio",name:"isolation-mode",value:"child-process",checked:t.manualIsolationMode==="child-process",onChange:()=>r(s=>({...s,manualIsolationMode:"child-process"}))}),e.jsxs("div",{className:"setup-wizard-isolation-option-content",children:[e.jsx("strong",{children:a("setup.childProcess","Child-Process")}),e.jsx("span",{children:a("setup.childProcessDesc","Isolated execution with crash containment.")})]})]})]})]})]})]}),t.error&&e.jsx("div",{className:"wizard-error",role:"alert",children:t.error})]}),t.step==="agent"&&e.jsxs("div",{className:"setup-wizard-agent-step",children:[e.jsx("p",{className:"setup-wizard-agent-intro",children:a("setup.firstAgentIntro","Agents are optional. Fusion can build tasks without one by starting temporary agents for planning, coding, review, and merge. Create an agent only if you want help coordinating tasks and direction.")}),e.jsxs("div",{className:"setup-wizard-agent-layout",children:[e.jsxs("section",{className:"setup-wizard-agent-presets","aria-labelledby":"setup-first-agent-presets-heading",children:[e.jsx("div",{className:"setup-wizard-agent-section-heading",id:"setup-first-agent-presets-heading",children:a("setup.firstAgentTemplates","Templates")}),e.jsx("div",{className:"setup-wizard-agent-preset-list",role:"radiogroup","aria-label":a("setup.firstAgentTemplates","Templates"),children:m.map(s=>{const n=t.selectedPresetId===s.id;return e.jsxs("button",{type:"button",className:`setup-wizard-agent-preset${n?" selected":""}`,role:"radio","aria-checked":n,"aria-label":n?a("setup.selectedAgentTemplate","{{name}} selected",{name:s.name}):s.name,tabIndex:s.id===Z?0:-1,"data-agent-preset-id":s.id,disabled:g,onClick:()=>f(s.id),onKeyDown:l=>B(l,s.id),children:[e.jsx(k,{agent:{id:s.id,icon:s.icon,name:s.name},size:28}),e.jsxs("span",{className:"setup-wizard-agent-preset-copy",children:[e.jsxs("span",{className:"setup-wizard-agent-preset-name",children:[s.name,s.id==="ceo"&&e.jsx("span",{className:"wizard-option-recommended",children:a("setup.recommended","Recommended")})]}),e.jsx("span",{className:"setup-wizard-agent-preset-description",children:s.description})]})]},s.id)})})]}),e.jsxs("section",{className:"setup-wizard-agent-preview","aria-labelledby":"setup-first-agent-preview-heading",children:[e.jsx("div",{className:"setup-wizard-agent-section-heading",id:"setup-first-agent-preview-heading",children:a("setup.firstAgentPreview","Preview")}),e.jsxs("div",{className:"setup-wizard-agent-preview-card",children:[e.jsxs("div",{className:"setup-wizard-agent-preview-title-row",children:[e.jsx(k,{agent:{id:t.selectedPresetId||"draft",icon:t.agentDraft.icon,name:t.agentDraft.name},size:36}),e.jsxs("div",{children:[e.jsx("h3",{children:t.agentDraft.name||a("setup.firstAgentDraftName","Draft agent")}),e.jsx("p",{children:t.agentDraft.title||X?.title||a("setup.firstAgentCustomDraft","Custom agent draft")})]})]}),e.jsxs("dl",{className:"setup-wizard-agent-preview-list",children:[e.jsxs("div",{children:[e.jsx("dt",{children:a("agents.fieldRole","Role")}),e.jsx("dd",{children:t.agentDraft.role})]}),e.jsxs("div",{children:[e.jsx("dt",{children:a("agents.fieldInstructionsText","Inline Instructions")}),e.jsx("dd",{children:t.agentDraft.instructionsText||a("setup.firstAgentNoInstructions","No inline instructions yet")})]})]}),v&&e.jsxs("button",{type:"button",className:"btn setup-wizard-agent-ai-btn",onClick:()=>j(!0),disabled:g,children:[e.jsx(le,{size:16}),e.jsx("span",{children:a("agents.aiInterview","AI Interview")})]})]})]})]}),t.agentError&&e.jsx("div",{className:"wizard-error",role:"alert",tabIndex:-1,ref:z,children:t.agentError})]}),t.step==="complete"&&e.jsxs("div",{className:"setup-wizard-complete",children:[e.jsxs("div",{className:"setup-wizard-success-streak","aria-hidden":"true",children:[e.jsx("div",{className:"setup-wizard-success-streak-core"}),e.jsx("div",{className:"setup-wizard-success-streak-glow"})]}),e.jsx(D,{size:64,className:"success-icon"}),e.jsx("h3",{children:a("setup.allSet","All Set!")}),e.jsx("p",{children:t.agentOutcome==="created"?a("setup.firstAgentCreatedSuccess","Your project is registered and your first agent is ready."):a("setup.projectRegisteredSuccess","Your project has been registered successfully.")}),e.jsx("p",{children:t.agentOutcome==="skipped"?a("setup.firstAgentSkippedHint","You can create agents later from the Agents view."):a("setup.addMoreProjectsHint","You can add more projects anytime from the project overview.")})]})]}),e.jsxs("div",{className:"setup-wizard-footer",children:[e.jsx("a",{className:"btn setup-wizard-help-link",href:S,target:"_blank",rel:"noopener noreferrer",children:a("setup.needHelp","Need help?")}),t.step==="manual"&&e.jsx("button",{className:"btn btn-primary",onClick:H,disabled:V,children:t.isRegistering?e.jsxs(e.Fragment,{children:[e.jsx(E,{size:16,className:"animate-spin"}),e.jsx("span",{children:a("setup.registering","Registering...")})]}):e.jsx("span",{children:a("setup.registerProject","Register Project")})}),t.step==="agent"&&e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"btn",onClick:Y,disabled:g,children:a("setup.skipFirstAgent","Skip for now")}),e.jsx("button",{className:"btn btn-primary",onClick:()=>void W(),disabled:g||!t.agentDraft.name.trim(),"aria-busy":t.isCreatingAgent,children:t.isCreatingAgent?e.jsxs(e.Fragment,{children:[e.jsx(E,{size:16,className:"animate-spin"}),e.jsx("span",{children:a("setup.creatingFirstAgent","Creating agent...")})]}):e.jsx("span",{children:a("setup.createFirstAgent","Create Agent")})})]}),t.step==="complete"&&e.jsxs("button",{className:"btn btn-primary",onClick:L,children:[e.jsx(D,{size:16}),e.jsx("span",{children:a("setup.getStarted","Get Started")})]})]})]}),v&&C&&e.jsx(oe,{level:"modal",fallback:e.jsxs("div",{className:"wizard-error setup-wizard-agent-interview-error",role:"alert",children:[e.jsx("span",{children:a("setup.firstAgentInterviewLoadError","AI interview could not load. You can still create an agent from a template or skip this step.")}),e.jsx("button",{type:"button",className:"btn",onClick:()=>j(!1),children:a("setup.firstAgentContinueWithTemplates","Continue with templates")})]}),children:e.jsx(i.Suspense,{fallback:e.jsx("div",{className:"wizard-error setup-wizard-agent-interview-error",role:"status",children:a("setup.firstAgentInterviewLoading","Loading AI Interview...")}),children:e.jsx(pe,{isOpen:C,onClose:()=>j(!1),onUseDraft:$,projectId:t.registeredProject?.id,existingAgents:[],mode:"create"})})})]})}export{be as SetupWizardModal};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as i,c1 as b,c2 as d,c3 as v,c4 as p}from"./index-
|
|
1
|
+
import{c as i,c1 as b,c2 as d,c3 as v,c4 as p}from"./index-ccFe_1av.js";import{r as N,j as e}from"./vendor-react-SZ_qB27O.js";import{u as w}from"./vendor-i18n-GF3RlKbq.js";/**
|
|
2
2
|
* @license lucide-react v1.7.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as a,j as l}from"./vendor-react-SZ_qB27O.js";import{h as ml,i as ul,t as vl,j as hl,k as gl,l as bl,V as wl,Z as xl,X as H,R as fl,n as jl,C as pl,L as A,o as q,p as G,M as J}from"./index-CZcWjLAb.js";import{u as Nl}from"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-Bg-Qjzh8.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";const Sl=new Set([".md",".markdown",".mdx"]);function Cl(r){const d=r.toLowerCase(),j=d.lastIndexOf(".");return j<0?!1:Sl.has(d.slice(j))}function zl({projectId:r,addToast:d,onClose:j}){const{t:e}=Nl("app"),[k,p]=a.useState([]),[F,T]=a.useState(!0),[Y,V]=a.useState(!1),[I,D]=a.useState(null),[_,ll]=a.useState([]),[g,sl]=a.useState(""),[M,B]=a.useState(null),[c,N]=a.useState(null),[b,S]=a.useState(null),[el,K]=a.useState(!1),[Q,C]=a.useState(null),[y,w]=a.useState(null),[u,v]=a.useState(null),[il,z]=a.useState(!1),[$,h]=a.useState(null),m=a.useRef(null),[P,al]=a.useState(""),O=g.trim()?k.filter(s=>s.name.toLowerCase().includes(g.toLowerCase())||s.relativePath.toLowerCase().includes(g.toLowerCase())):k,x=a.useCallback(async()=>{T(!0);try{const s=await ml(r);p(s)}catch(s){const t=s instanceof Error?s.message:e("skills.loadDiscoveredError","Failed to load discovered skills");d(t,"error")}finally{T(!1)}},[r,d]),f=a.useCallback(async s=>{const t=i=>{if(!i||typeof i!="object")return!1;const n=i;if(typeof n.status=="number"&&n.status>=500)return!0;if(n.details&&typeof n.details=="object"){const L=n.details;if(typeof L.code=="string"&&L.code.startsWith("upstream_"))return!0}const o=i;return typeof o.error=="string"&&typeof o.code=="string"};V(!0),D(null);try{const i=await ul(s,20,r);ll(i.entries)}catch(i){if(t(i))D(e("skills.catalogUnavailable","Catalog is temporarily unavailable. Please try again later."));else{const n=i instanceof Error?i.message:e("skills.loadCatalogError","Failed to load catalog");D(n)}}finally{V(!1)}},[r]);a.useEffect(()=>{x(),f("")},[x,f]);const tl=a.useCallback(s=>{sl(s),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{al(s),m.current=null},300)},[]);a.useEffect(()=>()=>{m.current&&(clearTimeout(m.current),m.current=null)},[]),a.useEffect(()=>{f(P)},[P,f]);const nl=a.useCallback(async(s,t)=>{const i=!t;p(n=>n.map(o=>o.id===s?{...o,toggling:!0}:o));try{await vl(s,i,r),p(n=>n.map(o=>o.id===s?{...o,enabled:i,toggling:!1}:o)),d(e(`skills.${i?"enabled":"disabled"}`,i?"Skill enabled":"Skill disabled"),"success")}catch(n){p(L=>L.map(R=>R.id===s?{...R,toggling:!1}:R));const o=n instanceof Error?n.message:e("skills.toggleError","Failed to toggle skill");d(e("skills.toggleFailed","Failed to toggle skill: {{message}}",{message:o}),"error")}},[r,d]),cl=a.useCallback(async s=>{const t=s.repo?.trim();if(!(!t||M===s.id)){B(s.id);try{await hl(t,s.slug||s.name,r),d(e("skills.installSuccess","Installed {{name}}",{name:s.name}),"success"),await x()}catch(i){const n=i instanceof Error?i.message:e("skills.installError","Failed to install skill");d(e("skills.installFailed","Failed to install {{name}}: {{message}}",{name:s.name,message:n}),"error")}finally{B(i=>i===s.id?null:i)}}},[d,M,x,r]),E=a.useCallback(async s=>{K(!0),C(null),S(null),w(null),v(null),h(null);try{const t=await gl(s,r);S(t)}catch(t){const i=t instanceof Error?t.message:e("skills.loadContentError","Failed to load skill content");C(i)}finally{K(!1)}},[r]),U=a.useCallback((s,t)=>{if(!(t&&t.target.closest(".skills-view-item-toggle"))){if(c===s){N(null),S(null),C(null),w(null),v(null),h(null);return}N(s),E(s)}},[c,E]),ol=a.useCallback(s=>{c!==s&&N(s),E(s)},[E,c]),W=a.useCallback(async(s,t)=>{w(t),v(null),h(null),z(!0);try{const i=await bl(s,t,r);v(i)}catch(i){const n=i instanceof Error?i.message:e("skills.loadFileError","Failed to load file");h(n)}finally{z(!1)}},[r]),rl=a.useCallback(()=>{w(null),v(null),h(null),z(!1)},[]),X=a.useCallback(()=>{N(null),S(null),C(null),w(null),v(null),h(null)},[]),dl=a.useMemo(()=>k.find(s=>s.id===c)??null,[k,c]),Z=()=>!b||b.files.length===0?null:l.jsxs("div",{className:"skills-view-detail-files","data-testid":"skill-files",children:[l.jsxs("span",{className:"skills-view-detail-files-label",children:[e("skills.filesLabel","Files"),":"]}),b.files.map(s=>{if(s.type==="directory")return l.jsxs("span",{className:"badge badge--sm skills-view-detail-file--dir",children:[s.name,"/"]},s.relativePath);const t=y===s.relativePath;return l.jsx("button",{type:"button","data-testid":"skill-file-item",className:`badge badge--sm skills-view-detail-file${t?" skills-view-detail-file--active":""}`,onClick:()=>c&&void W(c,s.relativePath),"aria-pressed":t,"aria-label":e("skills.viewFile","View {{name}}",{name:s.name}),children:s.name},s.relativePath)})]}),kl=()=>c?el?l.jsxs("div",{className:"skills-view-detail-loading",children:[l.jsx(A,{size:16,className:"spin"}),e("skills.loadingContent","Loading skill content...")]}):Q?l.jsxs("div",{className:"skills-view-detail-error",children:[l.jsx(G,{size:14}),l.jsx("span",{children:Q}),l.jsx("button",{className:"btn btn-sm",onClick:()=>ol(c),children:e("common.retry","Retry")})]}):b?y!==null?l.jsxs("div",{className:"skills-view-file-viewer","data-testid":"skill-file-viewer",children:[l.jsxs("div",{className:"skills-view-file-viewer-bar",children:[l.jsxs("button",{type:"button",className:"btn btn-sm skills-view-file-back",onClick:rl,"data-testid":"skill-file-back","aria-label":e("skills.backToSkillMd","Back to SKILL.md"),children:[l.jsx(q,{size:14}),e("skills.backToSkillMd","Back to SKILL.md")]}),l.jsx("span",{className:"skills-view-file-viewer-name",children:y})]}),il?l.jsxs("div",{className:"skills-view-detail-loading",children:[l.jsx(A,{size:16,className:"spin"}),e("skills.loadingFile","Loading file...")]}):$?l.jsxs("div",{className:"skills-view-detail-error",children:[l.jsx(G,{size:14}),l.jsx("span",{children:$}),l.jsx("button",{className:"btn btn-sm",onClick:()=>c&&void W(c,y),children:e("common.retry","Retry")})]}):u&&!u.isText?l.jsx("div",{className:"skills-view-detail-empty",children:e("skills.fileNotPreviewable","This file cannot be previewed.")}):u?Cl(u.relativePath)?l.jsx(J,{content:u.content||e("skills.emptyFile","(Empty file)"),className:"skills-view-detail-markdown",testId:"skills-view-detail-markdown"}):l.jsx("pre",{className:"skills-view-detail-content",children:u.content||e("skills.emptyFile","(Empty file)")}):null,Z()]}):l.jsxs(l.Fragment,{children:[l.jsx(J,{content:b.skillMd||e("skills.noSkillMd","(No SKILL.md found)"),className:"skills-view-detail-markdown",testId:"skills-view-detail-markdown"}),Z()]}):null:l.jsx("div",{className:"skills-view-detail-placeholder","data-testid":"skills-detail-empty",children:e("skills.selectASkill","Select a skill to view its details")});return l.jsxs("div",{className:"skills-view","data-testid":"skills-view","data-selected":c?"true":"false",children:[l.jsx(wl,{icon:xl,title:e("skills.title","Skills"),actions:l.jsxs(l.Fragment,{children:[l.jsxs("span",{className:"skills-view-count","aria-label":e("skills.discoveredCount","{{count}} discovered skills",{count:k.length}),children:[k.length," ",e("skills.discovered","discovered")]}),l.jsx("button",{className:"btn-icon skills-view-close touch-target",onClick:j,"aria-label":e("skills.closeView","Close skills view"),children:l.jsx(H,{size:16})}),l.jsxs("button",{className:"btn btn-sm",onClick:()=>void x(),disabled:F,children:[l.jsx(fl,{size:14,className:F?"spin":""}),e("common.refresh","Refresh")]})]})}),l.jsxs("div",{className:"skills-view-body",children:[l.jsx("div",{className:"skills-view__list","data-testid":"skills-list",children:l.jsxs("div",{className:"skills-view-content",children:[l.jsx("div",{className:"skills-view-search",children:l.jsx("input",{type:"text",className:"form-input",placeholder:e("skills.searchPlaceholder","Search skills..."),value:g,onChange:s=>tl(s.target.value),"aria-label":e("skills.searchLabel","Search skills")})}),l.jsxs("section",{className:"skills-view-section","aria-labelledby":"discovered-skills-title",children:[l.jsx("h3",{id:"discovered-skills-title",className:"skills-view-section-title",children:e("skills.discoveredSection","Discovered Skills")}),F?l.jsxs("div",{className:"skills-view-loading",children:[l.jsx("span",{className:"spinner"}),e("skills.loadingDiscovered","Loading discovered skills...")]}):k.length===0?l.jsx("div",{className:"skills-view-empty",children:l.jsx("p",{children:e("skills.noDiscovered","No skills discovered in this project.")})}):O.length===0?l.jsx("div",{className:"skills-view-empty",children:l.jsx("p",{children:e("skills.noMatchingDiscovered","No discovered skills match your search.")})}):l.jsx("div",{className:"skills-view-list",children:O.map(s=>{const t=c===s.id;return l.jsx("div",{children:l.jsxs("div",{className:`skills-view-item${t?" skills-view-item--selected":""}`,onClick:i=>U(s.id,i),role:"button",tabIndex:0,onKeyDown:i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),U(s.id))},"aria-expanded":t,"aria-label":e("skills.viewDetails","View details for {{name}}",{name:s.name}),children:[l.jsxs("div",{className:"skills-view-item-info",children:[l.jsxs("span",{className:"skills-view-item-name",children:[t?l.jsx(jl,{size:14}):l.jsx(pl,{size:14}),s.name]}),l.jsx("span",{className:"skills-view-item-path",children:s.relativePath}),l.jsx("span",{className:"skills-view-item-source",children:s.metadata.source})]}),l.jsxs("label",{className:"skills-view-item-toggle",onClick:i=>i.stopPropagation(),children:[l.jsx("input",{type:"checkbox",checked:s.enabled,disabled:s.toggling,onChange:()=>void nl(s.id,s.enabled),"aria-label":e(`skills.${s.enabled?"disable":"enable"}Skill`,s.enabled?"Disable {{name}}":"Enable {{name}}",{name:s.name})}),l.jsx("span",{className:"skills-view-toggle-slider"})]})]})},s.id)})})]}),l.jsxs("section",{className:"skills-view-section","aria-labelledby":"catalog-title",children:[l.jsx("h3",{id:"catalog-title",className:"skills-view-section-title",children:e("skills.catalogSection","Skills Catalog")}),I?l.jsxs("div",{className:"skills-view-error",children:[l.jsx("p",{children:I}),l.jsx("button",{className:"btn btn-sm",onClick:()=>void f(P),children:e("common.tryAgain","Try Again")})]}):Y?l.jsxs("div",{className:"skills-view-loading",children:[l.jsx("span",{className:"spinner"}),e("skills.loadingCatalog","Loading catalog...")]}):_.length===0?l.jsx("div",{className:"skills-view-empty",children:g?l.jsx("p",{children:e("skills.noMatchingSearch","No skills match your search.")}):l.jsx("p",{children:e("skills.noCatalogAvailable","No skills available in the catalog.")})}):l.jsx("div",{className:"skills-view-grid",children:_.map(s=>{const i=!!s.repo?.trim(),n=M===s.id;return l.jsxs("div",{className:"skills-view-card",children:[l.jsxs("div",{className:"skills-view-card-header",children:[l.jsx("h4",{className:"skills-view-card-title",children:s.name}),i?l.jsxs("button",{type:"button",className:"btn btn-sm skills-view-card-install",onClick:()=>void cl(s),disabled:n,"aria-label":e("skills.installSkill","Install {{name}}",{name:s.name}),children:[n?l.jsx(A,{size:14,className:"spin"}):null,n?e("skills.installing","Installing…"):e("skills.install","Install")]}):null]}),s.description&&l.jsx("p",{className:"skills-view-card-description",children:s.description}),s.tags&&s.tags.length>0&&l.jsx("div",{className:"skills-view-card-tags",children:s.tags.map(o=>l.jsx("span",{className:"badge badge--sm",children:o},o))}),s.installs!==void 0&&l.jsx("span",{className:"skills-view-card-installs",children:e("skills.installsCount","{{value}} installs",{value:s.installs.toLocaleString()})})]},s.id)})})]})]})}),l.jsxs("div",{className:"skills-view__detail","data-testid":"skill-detail",children:[l.jsxs("div",{className:"skills-view-detail-header",children:[l.jsx("button",{type:"button",className:"btn btn-sm btn-icon skills-view-detail-back",onClick:X,"aria-label":e("skills.backToList","Back to skills"),title:e("skills.backToList","Back to skills"),"data-testid":"skills-detail-back",children:l.jsx(q,{size:14})}),l.jsx("span",{className:"skills-view-detail-title",children:dl?.name??e("skills.detailTitle","Skill")}),l.jsxs("button",{className:"btn btn-sm skills-view-detail-close",onClick:X,disabled:!c,"aria-label":e("skills.closeDetail","Close skill detail"),children:[l.jsx(H,{size:14}),e("common.close","Close")]})]}),l.jsx("div",{className:"skills-view-detail-body",children:kl()})]})]})]})}export{zl as SkillsView};
|
|
1
|
+
import{r as a,j as l}from"./vendor-react-SZ_qB27O.js";import{h as ml,i as ul,t as vl,j as hl,k as gl,l as bl,V as wl,Z as xl,X as H,R as fl,n as jl,C as pl,L as A,o as q,p as G,M as J}from"./index-ccFe_1av.js";import{u as Nl}from"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-Bg-Qjzh8.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";const Sl=new Set([".md",".markdown",".mdx"]);function Cl(r){const d=r.toLowerCase(),j=d.lastIndexOf(".");return j<0?!1:Sl.has(d.slice(j))}function zl({projectId:r,addToast:d,onClose:j}){const{t:e}=Nl("app"),[k,p]=a.useState([]),[F,T]=a.useState(!0),[Y,V]=a.useState(!1),[I,D]=a.useState(null),[_,ll]=a.useState([]),[g,sl]=a.useState(""),[M,B]=a.useState(null),[c,N]=a.useState(null),[b,S]=a.useState(null),[el,K]=a.useState(!1),[Q,C]=a.useState(null),[y,w]=a.useState(null),[u,v]=a.useState(null),[il,z]=a.useState(!1),[$,h]=a.useState(null),m=a.useRef(null),[P,al]=a.useState(""),O=g.trim()?k.filter(s=>s.name.toLowerCase().includes(g.toLowerCase())||s.relativePath.toLowerCase().includes(g.toLowerCase())):k,x=a.useCallback(async()=>{T(!0);try{const s=await ml(r);p(s)}catch(s){const t=s instanceof Error?s.message:e("skills.loadDiscoveredError","Failed to load discovered skills");d(t,"error")}finally{T(!1)}},[r,d]),f=a.useCallback(async s=>{const t=i=>{if(!i||typeof i!="object")return!1;const n=i;if(typeof n.status=="number"&&n.status>=500)return!0;if(n.details&&typeof n.details=="object"){const L=n.details;if(typeof L.code=="string"&&L.code.startsWith("upstream_"))return!0}const o=i;return typeof o.error=="string"&&typeof o.code=="string"};V(!0),D(null);try{const i=await ul(s,20,r);ll(i.entries)}catch(i){if(t(i))D(e("skills.catalogUnavailable","Catalog is temporarily unavailable. Please try again later."));else{const n=i instanceof Error?i.message:e("skills.loadCatalogError","Failed to load catalog");D(n)}}finally{V(!1)}},[r]);a.useEffect(()=>{x(),f("")},[x,f]);const tl=a.useCallback(s=>{sl(s),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{al(s),m.current=null},300)},[]);a.useEffect(()=>()=>{m.current&&(clearTimeout(m.current),m.current=null)},[]),a.useEffect(()=>{f(P)},[P,f]);const nl=a.useCallback(async(s,t)=>{const i=!t;p(n=>n.map(o=>o.id===s?{...o,toggling:!0}:o));try{await vl(s,i,r),p(n=>n.map(o=>o.id===s?{...o,enabled:i,toggling:!1}:o)),d(e(`skills.${i?"enabled":"disabled"}`,i?"Skill enabled":"Skill disabled"),"success")}catch(n){p(L=>L.map(R=>R.id===s?{...R,toggling:!1}:R));const o=n instanceof Error?n.message:e("skills.toggleError","Failed to toggle skill");d(e("skills.toggleFailed","Failed to toggle skill: {{message}}",{message:o}),"error")}},[r,d]),cl=a.useCallback(async s=>{const t=s.repo?.trim();if(!(!t||M===s.id)){B(s.id);try{await hl(t,s.slug||s.name,r),d(e("skills.installSuccess","Installed {{name}}",{name:s.name}),"success"),await x()}catch(i){const n=i instanceof Error?i.message:e("skills.installError","Failed to install skill");d(e("skills.installFailed","Failed to install {{name}}: {{message}}",{name:s.name,message:n}),"error")}finally{B(i=>i===s.id?null:i)}}},[d,M,x,r]),E=a.useCallback(async s=>{K(!0),C(null),S(null),w(null),v(null),h(null);try{const t=await gl(s,r);S(t)}catch(t){const i=t instanceof Error?t.message:e("skills.loadContentError","Failed to load skill content");C(i)}finally{K(!1)}},[r]),U=a.useCallback((s,t)=>{if(!(t&&t.target.closest(".skills-view-item-toggle"))){if(c===s){N(null),S(null),C(null),w(null),v(null),h(null);return}N(s),E(s)}},[c,E]),ol=a.useCallback(s=>{c!==s&&N(s),E(s)},[E,c]),W=a.useCallback(async(s,t)=>{w(t),v(null),h(null),z(!0);try{const i=await bl(s,t,r);v(i)}catch(i){const n=i instanceof Error?i.message:e("skills.loadFileError","Failed to load file");h(n)}finally{z(!1)}},[r]),rl=a.useCallback(()=>{w(null),v(null),h(null),z(!1)},[]),X=a.useCallback(()=>{N(null),S(null),C(null),w(null),v(null),h(null)},[]),dl=a.useMemo(()=>k.find(s=>s.id===c)??null,[k,c]),Z=()=>!b||b.files.length===0?null:l.jsxs("div",{className:"skills-view-detail-files","data-testid":"skill-files",children:[l.jsxs("span",{className:"skills-view-detail-files-label",children:[e("skills.filesLabel","Files"),":"]}),b.files.map(s=>{if(s.type==="directory")return l.jsxs("span",{className:"badge badge--sm skills-view-detail-file--dir",children:[s.name,"/"]},s.relativePath);const t=y===s.relativePath;return l.jsx("button",{type:"button","data-testid":"skill-file-item",className:`badge badge--sm skills-view-detail-file${t?" skills-view-detail-file--active":""}`,onClick:()=>c&&void W(c,s.relativePath),"aria-pressed":t,"aria-label":e("skills.viewFile","View {{name}}",{name:s.name}),children:s.name},s.relativePath)})]}),kl=()=>c?el?l.jsxs("div",{className:"skills-view-detail-loading",children:[l.jsx(A,{size:16,className:"spin"}),e("skills.loadingContent","Loading skill content...")]}):Q?l.jsxs("div",{className:"skills-view-detail-error",children:[l.jsx(G,{size:14}),l.jsx("span",{children:Q}),l.jsx("button",{className:"btn btn-sm",onClick:()=>ol(c),children:e("common.retry","Retry")})]}):b?y!==null?l.jsxs("div",{className:"skills-view-file-viewer","data-testid":"skill-file-viewer",children:[l.jsxs("div",{className:"skills-view-file-viewer-bar",children:[l.jsxs("button",{type:"button",className:"btn btn-sm skills-view-file-back",onClick:rl,"data-testid":"skill-file-back","aria-label":e("skills.backToSkillMd","Back to SKILL.md"),children:[l.jsx(q,{size:14}),e("skills.backToSkillMd","Back to SKILL.md")]}),l.jsx("span",{className:"skills-view-file-viewer-name",children:y})]}),il?l.jsxs("div",{className:"skills-view-detail-loading",children:[l.jsx(A,{size:16,className:"spin"}),e("skills.loadingFile","Loading file...")]}):$?l.jsxs("div",{className:"skills-view-detail-error",children:[l.jsx(G,{size:14}),l.jsx("span",{children:$}),l.jsx("button",{className:"btn btn-sm",onClick:()=>c&&void W(c,y),children:e("common.retry","Retry")})]}):u&&!u.isText?l.jsx("div",{className:"skills-view-detail-empty",children:e("skills.fileNotPreviewable","This file cannot be previewed.")}):u?Cl(u.relativePath)?l.jsx(J,{content:u.content||e("skills.emptyFile","(Empty file)"),className:"skills-view-detail-markdown",testId:"skills-view-detail-markdown"}):l.jsx("pre",{className:"skills-view-detail-content",children:u.content||e("skills.emptyFile","(Empty file)")}):null,Z()]}):l.jsxs(l.Fragment,{children:[l.jsx(J,{content:b.skillMd||e("skills.noSkillMd","(No SKILL.md found)"),className:"skills-view-detail-markdown",testId:"skills-view-detail-markdown"}),Z()]}):null:l.jsx("div",{className:"skills-view-detail-placeholder","data-testid":"skills-detail-empty",children:e("skills.selectASkill","Select a skill to view its details")});return l.jsxs("div",{className:"skills-view","data-testid":"skills-view","data-selected":c?"true":"false",children:[l.jsx(wl,{icon:xl,title:e("skills.title","Skills"),actions:l.jsxs(l.Fragment,{children:[l.jsxs("span",{className:"skills-view-count","aria-label":e("skills.discoveredCount","{{count}} discovered skills",{count:k.length}),children:[k.length," ",e("skills.discovered","discovered")]}),l.jsx("button",{className:"btn-icon skills-view-close touch-target",onClick:j,"aria-label":e("skills.closeView","Close skills view"),children:l.jsx(H,{size:16})}),l.jsxs("button",{className:"btn btn-sm",onClick:()=>void x(),disabled:F,children:[l.jsx(fl,{size:14,className:F?"spin":""}),e("common.refresh","Refresh")]})]})}),l.jsxs("div",{className:"skills-view-body",children:[l.jsx("div",{className:"skills-view__list","data-testid":"skills-list",children:l.jsxs("div",{className:"skills-view-content",children:[l.jsx("div",{className:"skills-view-search",children:l.jsx("input",{type:"text",className:"form-input",placeholder:e("skills.searchPlaceholder","Search skills..."),value:g,onChange:s=>tl(s.target.value),"aria-label":e("skills.searchLabel","Search skills")})}),l.jsxs("section",{className:"skills-view-section","aria-labelledby":"discovered-skills-title",children:[l.jsx("h3",{id:"discovered-skills-title",className:"skills-view-section-title",children:e("skills.discoveredSection","Discovered Skills")}),F?l.jsxs("div",{className:"skills-view-loading",children:[l.jsx("span",{className:"spinner"}),e("skills.loadingDiscovered","Loading discovered skills...")]}):k.length===0?l.jsx("div",{className:"skills-view-empty",children:l.jsx("p",{children:e("skills.noDiscovered","No skills discovered in this project.")})}):O.length===0?l.jsx("div",{className:"skills-view-empty",children:l.jsx("p",{children:e("skills.noMatchingDiscovered","No discovered skills match your search.")})}):l.jsx("div",{className:"skills-view-list",children:O.map(s=>{const t=c===s.id;return l.jsx("div",{children:l.jsxs("div",{className:`skills-view-item${t?" skills-view-item--selected":""}`,onClick:i=>U(s.id,i),role:"button",tabIndex:0,onKeyDown:i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),U(s.id))},"aria-expanded":t,"aria-label":e("skills.viewDetails","View details for {{name}}",{name:s.name}),children:[l.jsxs("div",{className:"skills-view-item-info",children:[l.jsxs("span",{className:"skills-view-item-name",children:[t?l.jsx(jl,{size:14}):l.jsx(pl,{size:14}),s.name]}),l.jsx("span",{className:"skills-view-item-path",children:s.relativePath}),l.jsx("span",{className:"skills-view-item-source",children:s.metadata.source})]}),l.jsxs("label",{className:"skills-view-item-toggle",onClick:i=>i.stopPropagation(),children:[l.jsx("input",{type:"checkbox",checked:s.enabled,disabled:s.toggling,onChange:()=>void nl(s.id,s.enabled),"aria-label":e(`skills.${s.enabled?"disable":"enable"}Skill`,s.enabled?"Disable {{name}}":"Enable {{name}}",{name:s.name})}),l.jsx("span",{className:"skills-view-toggle-slider"})]})]})},s.id)})})]}),l.jsxs("section",{className:"skills-view-section","aria-labelledby":"catalog-title",children:[l.jsx("h3",{id:"catalog-title",className:"skills-view-section-title",children:e("skills.catalogSection","Skills Catalog")}),I?l.jsxs("div",{className:"skills-view-error",children:[l.jsx("p",{children:I}),l.jsx("button",{className:"btn btn-sm",onClick:()=>void f(P),children:e("common.tryAgain","Try Again")})]}):Y?l.jsxs("div",{className:"skills-view-loading",children:[l.jsx("span",{className:"spinner"}),e("skills.loadingCatalog","Loading catalog...")]}):_.length===0?l.jsx("div",{className:"skills-view-empty",children:g?l.jsx("p",{children:e("skills.noMatchingSearch","No skills match your search.")}):l.jsx("p",{children:e("skills.noCatalogAvailable","No skills available in the catalog.")})}):l.jsx("div",{className:"skills-view-grid",children:_.map(s=>{const i=!!s.repo?.trim(),n=M===s.id;return l.jsxs("div",{className:"skills-view-card",children:[l.jsxs("div",{className:"skills-view-card-header",children:[l.jsx("h4",{className:"skills-view-card-title",children:s.name}),i?l.jsxs("button",{type:"button",className:"btn btn-sm skills-view-card-install",onClick:()=>void cl(s),disabled:n,"aria-label":e("skills.installSkill","Install {{name}}",{name:s.name}),children:[n?l.jsx(A,{size:14,className:"spin"}):null,n?e("skills.installing","Installing…"):e("skills.install","Install")]}):null]}),s.description&&l.jsx("p",{className:"skills-view-card-description",children:s.description}),s.tags&&s.tags.length>0&&l.jsx("div",{className:"skills-view-card-tags",children:s.tags.map(o=>l.jsx("span",{className:"badge badge--sm",children:o},o))}),s.installs!==void 0&&l.jsx("span",{className:"skills-view-card-installs",children:e("skills.installsCount","{{value}} installs",{value:s.installs.toLocaleString()})})]},s.id)})})]})]})}),l.jsxs("div",{className:"skills-view__detail","data-testid":"skill-detail",children:[l.jsxs("div",{className:"skills-view-detail-header",children:[l.jsx("button",{type:"button",className:"btn btn-sm btn-icon skills-view-detail-back",onClick:X,"aria-label":e("skills.backToList","Back to skills"),title:e("skills.backToList","Back to skills"),"data-testid":"skills-detail-back",children:l.jsx(q,{size:14})}),l.jsx("span",{className:"skills-view-detail-title",children:dl?.name??e("skills.detailTitle","Skill")}),l.jsxs("button",{className:"btn btn-sm skills-view-detail-close",onClick:X,disabled:!c,"aria-label":e("skills.closeDetail","Close skill detail"),children:[l.jsx(H,{size:14}),e("common.close","Close")]})]}),l.jsx("div",{className:"skills-view-detail-body",children:kl()})]})]})]})}export{zl as SkillsView};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as l,j as e}from"./vendor-react-SZ_qB27O.js";import{c as Rt,ax as ft,ay as ht,az as Ot,bf as _t,bg as Pt,bh as Ut,bi as Kt,bj as Bt,bk as Vt,bl as Xt,bm as zt,aC as Ht,ad as Wt,bn as qt,bo as Z,bp as xt,L as Gt,P as gt,F as tt,X as et,bq as vt,H as Lt,I as yt,br as Yt,ac as Jt,n as Qt,bs as Zt,bt as jt,ak as te}from"./index-
|
|
1
|
+
import{r as l,j as e}from"./vendor-react-SZ_qB27O.js";import{c as Rt,ax as ft,ay as ht,az as Ot,bf as _t,bg as Pt,bh as Ut,bi as Kt,bj as Bt,bk as Vt,bl as Xt,bm as zt,aC as Ht,ad as Wt,bn as qt,bo as Z,bp as xt,L as Gt,P as gt,F as tt,X as et,bq as vt,H as Lt,I as yt,br as Yt,ac as Jt,n as Qt,bs as Zt,bt as jt,ak as te}from"./index-ccFe_1av.js";import{u as kt}from"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-Bg-Qjzh8.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";/**
|
|
2
2
|
* @license lucide-react v1.7.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
package/dist/client/assets/{WorkflowNodeEditor-DW7sJZUX.js → WorkflowNodeEditor-CeERQHHu.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as o,j as e,b as To}from"./vendor-react-SZ_qB27O.js";import{R as zo,u as Wo,d as $o,e as _o,f as Bo,B as qo,C as Vo,M as Go}from"./vendor-reactflow-Bg-Qjzh8.js";import{c as Ho,eb as ns,ec as we,ed as Ga,ee as Uo,ef as Ko,eg as Yo,eh as Ha,bo as le,bn as Et,P as Se,b6 as Le,bt as Jo,ac as Xo,n as Ce,I as be,al as Ua,ei as Qo,bK as Ft,ej as sa,bE as Ka,ek as is,ak as Zo,C as Ee,bO as rs,el,em as tl,H as sl,en as al,eo as ol,cp as aa,ep as ll,eq as nl,er as il,cd as rl,es as dl,dw as cl,a2 as oa,ad as ul,et as fl,eu as pl,ev as ml,ew as wl,ex as hl,ey as gl,ez as bl,eA as xl,eB as kl,eC as la,eD as na,eE as ia,eF as ra,eG as da,eH as ca,eI as vl,eJ as jl,eK as Nl,eL as yl,eM as Cl,eN as Sl,eO as El,eP as Fl,eQ as Ml,eR as Pl,eS as ua,eT as fa,eU as Al,eV as pa,eW as ma,eX as Il,eY as es,eZ as Rl,e_ as Ya,e$ as Dl,f0 as wa,f1 as Ol,h as ha,f2 as Ja,df as ga,f3 as ba,X as ds,br as xa,L as Ie,f4 as ts,bq as Xa,ba as Ll,f5 as Tl,a0 as zl,aj as Wl,b9 as $l,f6 as _l,f7 as Bl,f8 as ql,f9 as ka,fa as Vl,fb as Gl,fc as Hl,fd as St,S as He,fe as Ul,ff as Kl,fg as Yl,dg as va,fh as ja,fi as Jl,fj as Xl}from"./index-
|
|
1
|
+
import{r as o,j as e,b as To}from"./vendor-react-SZ_qB27O.js";import{R as zo,u as Wo,d as $o,e as _o,f as Bo,B as qo,C as Vo,M as Go}from"./vendor-reactflow-Bg-Qjzh8.js";import{c as Ho,eb as ns,ec as we,ed as Ga,ee as Uo,ef as Ko,eg as Yo,eh as Ha,bo as le,bn as Et,P as Se,b6 as Le,bt as Jo,ac as Xo,n as Ce,I as be,al as Ua,ei as Qo,bK as Ft,ej as sa,bE as Ka,ek as is,ak as Zo,C as Ee,bO as rs,el,em as tl,H as sl,en as al,eo as ol,cp as aa,ep as ll,eq as nl,er as il,cd as rl,es as dl,dw as cl,a2 as oa,ad as ul,et as fl,eu as pl,ev as ml,ew as wl,ex as hl,ey as gl,ez as bl,eA as xl,eB as kl,eC as la,eD as na,eE as ia,eF as ra,eG as da,eH as ca,eI as vl,eJ as jl,eK as Nl,eL as yl,eM as Cl,eN as Sl,eO as El,eP as Fl,eQ as Ml,eR as Pl,eS as ua,eT as fa,eU as Al,eV as pa,eW as ma,eX as Il,eY as es,eZ as Rl,e_ as Ya,e$ as Dl,f0 as wa,f1 as Ol,h as ha,f2 as Ja,df as ga,f3 as ba,X as ds,br as xa,L as Ie,f4 as ts,bq as Xa,ba as Ll,f5 as Tl,a0 as zl,aj as Wl,b9 as $l,f6 as _l,f7 as Bl,f8 as ql,f9 as ka,fa as Vl,fb as Gl,fc as Hl,fd as St,S as He,fe as Ul,ff as Kl,fg as Yl,dg as va,fh as ja,fi as Jl,fj as Xl}from"./index-ccFe_1av.js";import{u as xe}from"./vendor-i18n-GF3RlKbq.js";import{U as Ql}from"./upload-B9B-tYt9.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";/**
|
|
2
2
|
* @license lucide-react v1.7.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as d,j as s}from"./vendor-react-SZ_qB27O.js";import{h as j,ak as v}from"./index-
|
|
1
|
+
import{r as d,j as s}from"./vendor-react-SZ_qB27O.js";import{h as j,ak as v}from"./index-ccFe_1av.js";import{u as N}from"./vendor-i18n-GF3RlKbq.js";function $({value:e,onChange:t,projectId:i,disabled:r=!1,id:n,label:o="Skills"}){const{t:a}=N("app"),[m,k]=d.useState([]),[f,h]=d.useState(!0);d.useEffect(()=>{let l=!1;return h(!0),j(i).then(c=>{l||k(c)}).catch(()=>{l||k([])}).finally(()=>{l||h(!1)}),()=>{l=!0}},[i]);const S=l=>{e.includes(l)||t([...e,l])},x=l=>{t(e.filter(c=>c!==l))},u=l=>m.find(g=>g.id===l)?.name??l,p=m.filter(l=>!e.includes(l.id));return s.jsxs("div",{className:"skill-multiselect","data-testid":"skill-multiselect",children:[o&&s.jsx("label",{htmlFor:n?`${n}-select`:void 0,className:"skill-multiselect-label",children:o}),e.length>0&&s.jsx("div",{className:"skill-multiselect-chips","data-testid":"skill-chips",children:e.map(l=>s.jsxs("span",{className:"skill-chip","data-testid":`skill-chip-${l}`,children:[s.jsx("span",{className:"skill-chip-name",children:u(l)}),s.jsx("button",{type:"button",className:"skill-chip-remove",onClick:()=>x(l),disabled:r,"aria-label":a("skills.removeSkill","Remove {{name}}",{name:u(l)}),"data-testid":`remove-skill-${l}`,children:"×"})]},l))}),s.jsx("div",{className:"skill-multiselect-add",children:f?s.jsx("span",{className:"skill-multiselect-loading","data-testid":"skills-loading",children:s.jsx(v,{label:a("skills.loading","Loading skills…")})}):p.length===0?s.jsx("span",{className:"skill-multiselect-empty","data-testid":"skills-empty",children:e.length===0?a("skills.noSkillsDiscovered","No skills discovered"):a("skills.allSkillsSelected","All skills selected")}):s.jsxs("select",{id:n?`${n}-select`:void 0,className:"select skill-multiselect-dropdown",value:"",onChange:l=>{l.target.value&&(S(l.target.value),l.target.value="")},disabled:r,"data-testid":"skill-dropdown",children:[s.jsx("option",{value:"",children:a("skills.addSkill","Add a skill…")}),p.map(l=>s.jsx("option",{value:l.id,children:l.name},l.id))]})})]})}const L=/(?:^|\/)skills\/([^/]+)\/SKILL\.md$/i;function y(e){const t=e.trim();if(!t)return e;const i=t.match(L);return i?.[1]?i[1]:t}export{$ as S,y as f};
|