admin08077/Githubgemini
0
1import{r as i,j as e}from"./react-CIdJ77ke.js";import{u as q,a as L,d as M,R as W,G as B,L as H,S as V,e as F,s as Y,f as j,v as z}from"./index-CX7Qxd1D.js";import{A as S,e as K}from"./workspaceConnectorService-KhhKdOYD.js";import"./@braintree-DzxiOROe.js";import"./react-dom-R9L8nDNe.js";import"./scheduler-CoSDG3-6.js";import"./@google-CcUHq7Ay.js";import"./idb-Dob3nYDb.js";import"./marked-BrGMJkBT.js";import"./mermaid-KwKZWwy0.js";import"./dayjs-CeEF-NGT.js";import"./d3-transition-CiCB8KJE.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CtIaNujU.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-BYoC3mS3.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CTpFWynZ.js";import"./lodash-es-Dt6r0yiR.js";import"./d3-shape-CX8xTzfR.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-DRZz3QW5.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-oKFFZvz7.js";import"./cytoscape-DtBltrT8.js";import"./cytoscape-cose-bilkent-Cgr1thlj.js";import"./cose-base-CwCxnKwh.js";import"./layout-base-CMXQqlmj.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";import"./jszip-CFFhfFtd.js";import"./octokit-B6bKu3NB.js";import"./@octokit-MBEWYTsi.js";import"./bottleneck-D_vuF9V7.js";import"./universal-user-agent-CLgqIJsR.js";import"./before-after-hook-y8XtM9xW.js";import"./fast-content-type-parse-3SwieiST.js";const _=({serviceName:y,icon:f,fields:m,onConnect:p,onDisconnect:a,status:r,isLoading:u})=>{const[x,h]=i.useState({}),l=()=>{p(x)},c=r.startsWith("Connected");return e.jsxs("div",{className:"bg-surface border border-border rounded-lg p-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("div",{className:"w-10 h-10",children:f}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-bold text-text-primary",children:y}),e.jsx("p",{className:`text-sm ${c?"text-green-600":"text-text-secondary"}`,children:r})]})]}),c&&e.jsx("button",{onClick:a,className:"px-4 py-2 bg-red-500/10 text-red-600 font-semibold rounded-lg hover:bg-red-500/20",children:"Disconnect"})]}),!c&&e.jsxs("div",{className:"mt-4 pt-4 border-t border-border space-y-2",children:[m.map(n=>e.jsxs("div",{children:[e.jsx("label",{className:"text-xs text-text-secondary",children:n.label}),e.jsx("input",{type:n.id.includes("token")||n.id.includes("pat")?"password":"text",value:x[n.id]||"",onChange:b=>h(k=>({...k,[n.id]:b.target.value})),placeholder:n.placeholder,className:"w-full mt-1 p-2 bg-background border border-border rounded-md text-sm"})]},n.id)),e.jsx("button",{onClick:l,disabled:u,className:"btn-primary w-full mt-2 py-2 flex items-center justify-center",children:u?e.jsx(H,{}):"Connect"})]})]})},xt=()=>{const{state:y,dispatch:f}=q(),{user:m,githubUser:p,vaultState:a}=y,{addNotification:r}=L(),{requestUnlock:u,requestCreation:x}=M(),[h,l]=i.useState({}),[c,n]=i.useState({}),[b,k]=i.useState([...S.keys()][0]),[A,R]=i.useState({}),[E,G]=i.useState(!1),[U,w]=i.useState(""),J=i.useMemo(()=>{const t=new Map;return S.forEach(s=>{t.has(s.service)||t.set(s.service,{name:s.service,actions:[]}),t.get(s.service).actions.push(s)}),Array.from(t.values())},[]),g=i.useCallback(async()=>{if(!m||!a.isUnlocked)return;const t=async(s,o,d)=>{const D=await F(s);n(O=>({...O,[o]:D?d:"Not Connected"}))};await t("github_pat","GitHub",p?`Connected as ${p.login}`:"Connected"),await t("jira_pat","Jira","Connected"),await t("slack_bot_token","Slack","Connected")},[m,a.isUnlocked,p]);i.useEffect(()=>{g()},[g]);const C=i.useCallback(async t=>{if(!a.isInitialized&&!await x()){r("Vault setup is required.","error");return}if(!a.isUnlocked&&!await u()){r("Vault must be unlocked to manage connections.","error");return}await t()},[a,x,u,r]),v=async(t,s)=>{await C(async()=>{l(o=>({...o,[t]:!0}));try{for(const[o,d]of Object.entries(s))d&&await j(o,d);if(t==="GitHub"&&s.github_pat){const o=await z(s.github_pat);f({type:"SET_GITHUB_USER",payload:o}),await j("github_user",JSON.stringify(o))}r(`${t} connected successfully!`,"success"),g()}catch(o){r(`Failed to connect ${t}: ${o instanceof Error?o.message:"Unknown error"}`,"error")}finally{l(o=>({...o,[t]:!1}))}})},N=async(t,s)=>{await C(async()=>{l(o=>({...o,[t]:!0}));try{for(const o of s)await j(o,"");t==="GitHub"&&(f({type:"SET_GITHUB_USER",payload:null}),await j("github_user","")),r(`${t} disconnected.`,"info"),g()}catch{r(`Failed to disconnect ${t}.`,"error")}finally{l(o=>({...o,[t]:!1}))}})},T=async()=>{await C(async()=>{G(!0),w("");try{const t=await K(b,A);w(JSON.stringify(t,null,2)),r("Action executed successfully!","success")}catch(t){w(`Error: ${t instanceof Error?t.message:"Unknown Error"}`),r("Action failed.","error")}finally{G(!1)}})},P=()=>{Y()},I=S.get(b),$=I?I.getParameters():{};return m?e.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8 text-text-primary",children:[e.jsxs("header",{className:"mb-8",children:[e.jsxs("h1",{className:"text-4xl font-extrabold tracking-tight flex items-center",children:[e.jsx(W,{}),e.jsx("span",{className:"ml-3",children:"Workspace Connector Hub"})]}),e.jsx("p",{className:"mt-2 text-lg text-text-secondary",children:"Connect to your development services to unlock cross-platform AI actions."})]}),e.jsxs("div",{className:"flex-grow grid grid-cols-1 lg:grid-cols-2 gap-8 min-h-0",children:[e.jsxs("div",{className:"flex flex-col gap-6 overflow-y-auto pr-4",children:[e.jsx("h2",{className:"text-2xl font-bold",children:"Service Connections"}),e.jsx(_,{serviceName:"GitHub",icon:e.jsx(B,{}),fields:[{id:"github_pat",label:"Personal Access Token",placeholder:"ghp_..."}],onConnect:t=>v("GitHub",t),onDisconnect:()=>N("GitHub",["github_pat"]),status:c.GitHub||"Checking...",isLoading:h.GitHub}),e.jsx(_,{serviceName:"Jira",icon:e.jsx("div",{className:"w-10 h-10 bg-[#0052CC] rounded flex items-center justify-center text-white font-bold text-xl",children:"J"}),fields:[{id:"jira_domain",label:"Jira Domain",placeholder:"your-company.atlassian.net"},{id:"jira_email",label:"Your Jira Email",placeholder:"you@example.com"},{id:"jira_pat",label:"API Token",placeholder:"Your API Token"}],onConnect:t=>v("Jira",t),onDisconnect:()=>N("Jira",["jira_domain","jira_email","jira_pat"]),status:c.Jira||"Checking...",isLoading:h.Jira}),e.jsx(_,{serviceName:"Slack",icon:e.jsx("div",{className:"w-10 h-10 bg-[#4A154B] rounded flex items-center justify-center text-white font-bold text-2xl",children:"#"}),fields:[{id:"slack_bot_token",label:"Bot User OAuth Token",placeholder:"xoxb-..."}],onConnect:t=>v("Slack",t),onDisconnect:()=>N("Slack",["slack_bot_token"]),status:c.Slack||"Checking...",isLoading:h.Slack})]}),e.jsxs("div",{className:"flex flex-col gap-6 bg-surface p-6 border border-border rounded-lg",children:[e.jsx("h2",{className:"text-2xl font-bold",children:"Manual Action Runner"}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium",children:"Action"}),e.jsx("select",{value:b,onChange:t=>k(t.target.value),className:"w-full mt-1 p-2 bg-background border rounded",children:J.map(t=>e.jsx("optgroup",{label:t.name,children:t.actions.map(s=>e.jsx("option",{value:s.id,children:s.description},s.id))},t.name))})]}),Object.entries($).map(([t,s])=>e.jsxs("div",{children:[e.jsxs("label",{className:"text-sm font-medium",children:[t," ",s.required&&"*"]}),e.jsx("input",{type:s.type,value:A[t]||"",onChange:o=>R(d=>({...d,[t]:o.target.value})),placeholder:s.default||"",className:"w-full mt-1 p-2 bg-background border rounded"})]},t)),e.jsx("button",{onClick:T,disabled:E,className:"btn-primary w-full py-2 flex items-center justify-center gap-2",children:E?e.jsx(H,{}):e.jsxs(e.Fragment,{children:[e.jsx(V,{})," Execute Action"]})})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium",children:"Result"}),e.jsx("pre",{className:"w-full h-48 mt-1 p-2 bg-background border rounded overflow-auto text-xs",children:U||"Action results will appear here."})]})]})]})]}):e.jsx("div",{className:"h-full flex items-center justify-center",children:e.jsxs("div",{className:"text-center bg-surface p-8 rounded-lg border border-border max-w-md",children:[e.jsx("h2",{className:"text-xl font-bold",children:"Sign In Required"}),e.jsx("p",{className:"text-text-secondary my-4",children:"Please sign in with your Google account to manage workspace connections."}),e.jsx("button",{onClick:P,className:"btn-primary px-6 py-3 flex items-center justify-center gap-2 mx-auto",children:"Sign in with Google"})]})})};export{xt as WorkspaceConnectorHub};2//# sourceMappingURL=WorkspaceConnectorHub-sp07MOSr.js.map3 