@lovelybunch/api 1.0.75-alpha.0 → 1.0.75-alpha.1
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/routes/api/v1/events/status/route.d.ts +1 -1
- package/dist/routes/api/v1/jobs/[id]/run/route.d.ts +2 -2
- package/dist/routes/api/v1/jobs/[id]/runs/[runId]/route.d.ts +2 -2
- package/dist/routes/api/v1/jobs/status/route.d.ts +1 -1
- package/dist/routes/api/v1/proposals/[id]/route.d.ts +8 -8
- package/package.json +4 -4
- package/static/assets/{ActivityPage-Dl3u61DF.js → ActivityPage-BYrDJlH6.js} +1 -1
- package/static/assets/{AgentDetailPage-BJD22FSv.js → AgentDetailPage-D6yg4CtT.js} +1 -1
- package/static/assets/{AgentEditPage-ZYd0Rode.js → AgentEditPage-CTnjxjX7.js} +1 -1
- package/static/assets/{AgentsPage-CUuxxQ2o.js → AgentsPage-NdB5OB1C.js} +1 -1
- package/static/assets/{AgentsSettingsPage-Dd8MrsKx.js → AgentsSettingsPage-CYXp908g.js} +1 -1
- package/static/assets/{ApiKeysSettingsPage-DTZStkII.js → ApiKeysSettingsPage-Jl6vvVmW.js} +1 -1
- package/static/assets/{ArchitectureEditPage-CVxBD88N.js → ArchitectureEditPage-Bw2d_hmk.js} +1 -1
- package/static/assets/{ArchitecturePage-GchbFR8L.js → ArchitecturePage-36wO0UD7.js} +1 -1
- package/static/assets/{AuthSettingsPage-B7a-i1_T.js → AuthSettingsPage-CKifiWsx.js} +1 -1
- package/static/assets/{CallbackPage-xYgfYT1Z.js → CallbackPage-Ck0dddEW.js} +1 -1
- package/static/assets/{CodePage-xpXX0hlR.js → CodePage-b3JR4eWW.js} +1 -1
- package/static/assets/{CollapsibleSection-ka7CEJhS.js → CollapsibleSection-BKY-lfsm.js} +1 -1
- package/static/assets/{DashboardPage-DQFlhP54.js → DashboardPage-Cv2-duAx.js} +1 -1
- package/static/assets/{GitPage-B-aSKe9Z.js → GitPage-BgCxzm-C.js} +1 -1
- package/static/assets/{GitSettingsPage-vLNJs4r3.js → GitSettingsPage-CKIWkAnw.js} +1 -1
- package/static/assets/{IdentityPage-ZAp_iARt.js → IdentityPage-BsZnszF-.js} +1 -1
- package/static/assets/{ImplementationStepsEditor-BC8bzHNj.js → ImplementationStepsEditor-iqrCqyOb.js} +1 -1
- package/static/assets/{IntegrationsSettingsPage-CqWZ8GUI.js → IntegrationsSettingsPage-C1dC_vVy.js} +1 -1
- package/static/assets/{JobDetailPage-BWq4XLO2.js → JobDetailPage-BgGQJkND.js} +1 -1
- package/static/assets/{KnowledgeDetailPage-C8evStGp.js → KnowledgeDetailPage-Dzy2V7yT.js} +1 -1
- package/static/assets/{KnowledgeEditPage-DquJprU_.js → KnowledgeEditPage-av1ALt0h.js} +1 -1
- package/static/assets/{KnowledgePage-BBUKBhzS.js → KnowledgePage-C_UDfD9X.js} +1 -1
- package/static/assets/{LoginPage-Dp6lQSZW.js → LoginPage-DqbNxfY6.js} +1 -1
- package/static/assets/{McpSettingsPage-BGIEripM.js → McpSettingsPage-BqbErEWS.js} +1 -1
- package/static/assets/{NewAgentPage-D9hL7NY6.js → NewAgentPage-UEVIYkt3.js} +1 -1
- package/static/assets/{NewKnowledgePage-CEdd8Yns.js → NewKnowledgePage-CzYXdoDb.js} +1 -1
- package/static/assets/{NewProposalPage-B152OXnT.js → NewProposalPage-DrU0ihJX.js} +1 -1
- package/static/assets/{ProjectEditPage-D0uSaGy0.js → ProjectEditPage-j4KporiC.js} +1 -1
- package/static/assets/{ProjectPage-DzWJky4Y.js → ProjectPage-BQNa0qA-.js} +1 -1
- package/static/assets/{PromptsSettingsPage-DH-4vcbF.js → PromptsSettingsPage-sYphs8Dn.js} +1 -1
- package/static/assets/ProposalDetailPage-CHR1MmwC.js +1 -0
- package/static/assets/{ProposalEditPage-D4412azZ.js → ProposalEditPage-CkcZqgax.js} +1 -1
- package/static/assets/{ProposalsPage-D2gMbCBV.js → ProposalsPage-CUB_aLXW.js} +2 -2
- package/static/assets/{ResourcesPage-7tbvXxDb.js → ResourcesPage-DzjwPoyS.js} +1 -1
- package/static/assets/{RoleEditPage-Ne8Dh8Tt.js → RoleEditPage-DhVneoNR.js} +1 -1
- package/static/assets/{RolePage-3sb7lhw8.js → RolePage-BOI2T8QG.js} +1 -1
- package/static/assets/{RulesSettingsPage-CEWEvNFC.js → RulesSettingsPage-VsteFA-j.js} +1 -1
- package/static/assets/{SchedulePage-Crd-VMiL.js → SchedulePage-_v4YfdHo.js} +1 -1
- package/static/assets/{SourceInput-fvbAHpzT.js → SourceInput-BFxoOvqS.js} +1 -1
- package/static/assets/{TagInput-DRSgjTau.js → TagInput-BWLBdW8h.js} +1 -1
- package/static/assets/{TerminalPage-BGZJDqvR.js → TerminalPage-DtVDWX7G.js} +1 -1
- package/static/assets/{TerminalSessionPage-DILvcnLG.js → TerminalSessionPage-BUHzje8A.js} +1 -1
- package/static/assets/{UserPreferencesPage-ChHrBs8H.js → UserPreferencesPage-CkXJuogz.js} +1 -1
- package/static/assets/{UserSettingsPage-Cv60YInV.js → UserSettingsPage-Dz-R1ijS.js} +1 -1
- package/static/assets/{UtilitiesPage-ChLTn_u9.js → UtilitiesPage-CRqQYVsb.js} +1 -1
- package/static/assets/{alert-CBWqAyb9.js → alert-C7sSXJf0.js} +1 -1
- package/static/assets/{arrow-down-PY3QZW33.js → arrow-down-DNa4SyO2.js} +1 -1
- package/static/assets/{arrow-left-JpEq5x30.js → arrow-left-DkoECaEJ.js} +1 -1
- package/static/assets/{arrow-up-qJ-_eNlY.js → arrow-up-DQlu6uQE.js} +1 -1
- package/static/assets/{badge-D6QJCkgl.js → badge-2ZOe5ynf.js} +1 -1
- package/static/assets/{browser-modal-DT5zGtM2.js → browser-modal-DUCXGaha.js} +1 -1
- package/static/assets/{calendar-sFw_mHQb.js → calendar-tNgwmWmG.js} +1 -1
- package/static/assets/{card-CjY6k9qN.js → card-By4vbQ_f.js} +1 -1
- package/static/assets/{chevron-left-DiMUBSvf.js → chevron-left-CJfNRqcH.js} +1 -1
- package/static/assets/{chevrons-up-CKVPmJ25.js → chevrons-up-DoBrp0tt.js} +1 -1
- package/static/assets/{circle-alert-Bc4Eo-aL.js → circle-alert-B4JJ0jKl.js} +1 -1
- package/static/assets/{circle-check-C8DZc7FJ.js → circle-check-DC5Ek4MP.js} +1 -1
- package/static/assets/{circle-check-big-D_PvuS7-.js → circle-check-big-Dw4YJZos.js} +1 -1
- package/static/assets/{circle-play-Ba60SPvN.js → circle-play-D9VS6Vdc.js} +1 -1
- package/static/assets/{circle-x-BYe1-ctZ.js → circle-x-BReHgv4g.js} +1 -1
- package/static/assets/{clipboard-DZHDxSAN.js → clipboard-CuF9OlXN.js} +1 -1
- package/static/assets/{clock-E0FNqZih.js → clock-CDTi2Cen.js} +1 -1
- package/static/assets/{download-DbHXGD3a.js → download-DHIAgGlY.js} +1 -1
- package/static/assets/droid-BvMEm3eg.js +8 -0
- package/static/assets/{eye-CvcvqrS0.js → eye-Ch7ecV9Z.js} +1 -1
- package/static/assets/{folder-git-2-DK9b1q2x.js → folder-git-2-BYI_osdA.js} +1 -1
- package/static/assets/{index-C4LGSoHO.js → index-CCs6x1Au.js} +2 -2
- package/static/assets/{label-DGhQh35t.js → label-BUv8Ltyw.js} +1 -1
- package/static/assets/{markdown-editor-52vxb0rp.js → markdown-editor-BP8Xkecg.js} +1 -1
- package/static/assets/{pause-B7dyLcuH.js → pause-B0clczfE.js} +1 -1
- package/static/assets/{play-C3zkOZiK.js → play-BHUpJCX1.js} +1 -1
- package/static/assets/{plus-BCs8PAn6.js → plus-D0SUNNMH.js} +1 -1
- package/static/assets/{radio-group-BseQ4OVV.js → radio-group-CSBH8ca-.js} +1 -1
- package/static/assets/{refresh-cw-ucF4I6xx.js → refresh-cw-C-yGwsHL.js} +1 -1
- package/static/assets/{search-TqAjHy3_.js → search-DFtqbVgP.js} +1 -1
- package/static/assets/{switch-B6px80Oh.js → switch-WtOd8h5Z.js} +1 -1
- package/static/assets/{tabs-BHSWuVOa.js → tabs-D93ZjKR7.js} +1 -1
- package/static/assets/{tag-DjI_1POr.js → tag-EEDDoCc_.js} +1 -1
- package/static/assets/{terminal-preview-C0DTE3G7.js → terminal-preview-sns5QTN_.js} +1 -1
- package/static/assets/{use-terminal-KpWB08HL.js → use-terminal-BW9XYY8N.js} +1 -1
- package/static/assets/{zap-DruahTJJ.js → zap-BYFYWzmj.js} +1 -1
- package/static/index.html +1 -1
- package/static/assets/ProposalDetailPage-BI5HDp5I.js +0 -1
- package/static/assets/droid-Caom7ttu.js +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as J,a as U,r as i,j as e,B as r,T as S,P as K,v as L,X as G,J as H,a9 as W}from"./index-
|
|
1
|
+
import{u as J,a as U,r as i,j as e,B as r,T as S,P as K,v as L,X as G,J as H,a9 as W}from"./index-CCs6x1Au.js";import{C as f,a as X}from"./card-By4vbQ_f.js";import{u as _}from"./use-terminal-BW9XYY8N.js";import{T as q}from"./terminal-preview-sns5QTN_.js";/* empty css */import{R as Q}from"./refresh-cw-C-yGwsHL.js";import{C as V,a as Y}from"./chevrons-up-DoBrp0tt.js";import{P as M}from"./play-BHUpJCX1.js";import{C as Z}from"./circle-play-D9VS6Vdc.js";import"./xterm-DTxiCjtJ.js";function me(){const m=J(),{sessions:p,loading:o,error:k,refreshSessions:h,createSession:j,destroySession:P}=_(),{toast:l}=U(),[x,u]=i.useState(""),[g,T]=i.useState(!1),[v,I]=i.useState(!1),[N,$]=i.useState([]),[,w]=i.useState(null),B=s=>{const t=Date.now(),a=new Date(s).getTime(),n=Math.max(0,Math.floor((t-a)/1e3));if(n<60)return`${n}s ago`;const b=Math.floor(n/60);if(b<60)return`${b}m ago`;const C=Math.floor(b/60);return C<24?`${C}h ago`:`${Math.floor(C/24)}d ago`};i.useEffect(()=>{h()},[h]),i.useEffect(()=>{y(s=>{const t={...s};return p.forEach(a=>{a.id in t||(t[a.id]=!0)}),t})},[p]),i.useEffect(()=>{try{const s=localStorage.getItem("terminal.commandHistory");s&&$(JSON.parse(s))}catch{}},[]);const D=s=>{s&&($(t=>{const a=[s,...t.filter(n=>n!==s)].slice(0,5);try{localStorage.setItem("terminal.commandHistory",JSON.stringify(a))}catch{}return a}),w(null))},c=p.filter(s=>!s.proposalId?.startsWith("cp-")).sort((s,t)=>new Date(t.lastActivity).getTime()-new Date(s.lastActivity).getTime()),[d,y]=i.useState(()=>{const s={};return p.forEach(t=>{s[t.id]=!0}),s}),R=async()=>{const s=`session-${Date.now()}`;await j(s,!1)&&(l({title:"New terminal started",description:`${s}`}),m(`/terminal/${s}`))},E=async()=>{const s=x.trim();if(!s)return;const t=`session-${Date.now()}`;T(!0);try{await j(t,!1,s)?(D(s),l({title:"Session started",description:`${t}`}),m(`/terminal/${t}`)):l({title:"Failed to start",description:"See error above",variant:"destructive"})}finally{T(!1)}},A=async()=>{const s=x.trim();if(!s)return;const t=`session-${Date.now()}`;I(!0);try{await j(t,!1,s)?(D(s),setTimeout(()=>h(),150),u(""),l({title:"Started in background",description:`${t}`,action:e.jsx(W,{altText:"Open session",onClick:()=>m(`/terminal/${t}`),children:"Open"})})):l({title:"Failed to start",description:"See error above",variant:"destructive"})}finally{I(!1)}},O=async s=>{await P(s)?(l({title:"Session closed",description:s}),setTimeout(()=>h(),100)):l({title:"Failed to close session",description:s,variant:"destructive"})},F=()=>{const s=c.every(a=>d[a.id]),t={};c.forEach(a=>{t[a.id]=!s}),y(t)},z=c.length>0&&c.every(s=>d[s.id]);return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:"Terminal"}),e.jsx("p",{className:"text-muted-foreground hidden sm:block",children:"Manage terminal sessions"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(r,{variant:"outline",onClick:()=>h(),disabled:o,children:[e.jsx(Q,{className:`h-4 w-4 sm:mr-2 ${o?"animate-spin":""}`}),e.jsx("span",{className:"hidden sm:inline",children:"Refresh"})]}),c.length>0&&e.jsx(r,{variant:"outline",onClick:F,children:z?e.jsxs(e.Fragment,{children:[e.jsx(V,{className:"h-4 w-4 sm:mr-2"}),e.jsx("span",{className:"hidden sm:inline",children:"Hide All"})]}):e.jsxs(e.Fragment,{children:[e.jsx(Y,{className:"h-4 w-4 sm:mr-2"}),e.jsx("span",{className:"hidden sm:inline",children:"Show All"})]})}),e.jsxs(r,{onClick:R,disabled:o,children:[e.jsx(S,{className:"h-4 w-4 sm:mr-2"}),e.jsx("span",{className:"hidden sm:inline",children:"New Terminal"})]})]})]}),k&&e.jsx("div",{className:"p-4 bg-red-50 border border-red-200 rounded-lg",children:e.jsx("div",{className:"text-red-600",children:k})}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h2",{className:"text-lg font-semibold",children:"Sessions"}),o?e.jsx("div",{className:"space-y-2",children:[...Array(2)].map((s,t)=>e.jsx(f,{className:"p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"h-4 w-4 rounded bg-muted animate-pulse"}),e.jsxs("div",{children:[e.jsx("div",{className:"h-4 w-40 bg-muted rounded animate-pulse mb-2"}),e.jsx("div",{className:"h-3 w-24 bg-muted rounded animate-pulse"})]})]}),e.jsx("div",{className:"h-6 w-20 bg-muted rounded animate-pulse"})]})},t))}):c.length===0?e.jsx(f,{className:"p-8",children:e.jsxs("div",{className:"flex flex-col items-center justify-center text-center space-y-3",children:[e.jsx(S,{className:"h-12 w-12 text-muted-foreground"}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-lg mb-2",children:"No active sessions"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Get started by launching a new terminal session with the"," ",e.jsx("button",{onClick:R,className:"text-primary hover:underline font-medium",children:"New Terminal"})," ","button above."]})]})]})}):e.jsx("div",{className:"space-y-2",children:c.slice(0,10).map(s=>e.jsxs(f,{className:"p-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(S,{className:"h-4 w-4"}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:s.proposalId}),e.jsxs("div",{className:"text-xs text-gray-500",children:["Session ",s.id.split("-").slice(-1)[0].substring(0,8)," • Last activity ",B(s.lastActivity)]})]})]}),e.jsxs("div",{className:"flex items-center gap-1 sm:gap-2",children:[e.jsx("div",{className:`flex items-center gap-1 ${s.connected?"text-green-600":"text-gray-400"}`,title:s.connected?"Connected":"Disconnected",children:e.jsx("div",{className:`w-2 h-2 rounded-full ${s.connected?"bg-green-500":"bg-gray-400"}`})}),e.jsx(r,{size:"sm",variant:"outline",onClick:()=>{y(t=>({...t,[s.id]:!t[s.id]}))},"aria-label":d[s.id]?"Hide preview":"Show preview",title:d[s.id]?"Hide preview":"Show preview",children:d[s.id]?e.jsx(K,{className:"h-4 w-4"}):e.jsx(L,{className:"h-4 w-4"})}),e.jsxs(r,{size:"sm",variant:"outline",onClick:()=>m(`/terminal/${s.proposalId}`),children:[e.jsx(M,{className:"h-4 w-4 sm:mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"Open"})]}),e.jsx(r,{size:"icon",variant:"destructive",onClick:()=>O(s.id),title:"Close session","aria-label":"Close session",children:e.jsx(G,{className:"h-4 w-4"})})]})]}),d[s.id]&&e.jsx("div",{className:"mt-2 w-full p-2 cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>m(`/terminal/${s.proposalId}`),title:"Click to open full terminal session",children:e.jsx(q,{sessionId:s.id,heightPx:160,maxScrollback:200})})]},s.id))})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h2",{className:"text-lg font-semibold",children:"Run Custom Command"}),e.jsx(f,{children:e.jsxs(X,{className:"py-6",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{value:x,onChange:s=>u(s.target.value),onKeyDown:s=>{s.key==="Enter"?(s.preventDefault(),s.shiftKey?A():E()):s.key==="ArrowUp"?(s.preventDefault(),w(t=>{const a=t===null?0:Math.min((t??0)+1,N.length-1),n=N[a];return n&&u(n),a})):s.key==="ArrowDown"&&(s.preventDefault(),w(t=>{if(t===null)return null;const a=t-1;if(a<0)return u(""),null;const n=N[a];return n&&u(n),a}))},placeholder:"npm run dev",className:"flex-1 h-9 rounded-md border px-3 text-sm bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-gray-900 dark:text-gray-100 placeholder-gray-500 dark:placeholder-gray-400"}),e.jsxs(r,{onClick:A,variant:"secondary",disabled:o||!x.trim()||v||g,children:[v?e.jsx(H,{className:"h-4 w-4 animate-spin sm:mr-1"}):e.jsx(Z,{className:"h-4 w-4 sm:mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"Background"})]}),e.jsxs(r,{onClick:E,disabled:o||!x.trim()||g||v,children:[g?e.jsx(H,{className:"h-4 w-4 animate-spin sm:mr-2"}):e.jsx(M,{className:"h-4 w-4 sm:mr-2"}),e.jsx("span",{className:"hidden sm:inline",children:"Run"})]})]}),e.jsx("div",{className:"text-xs text-muted-foreground mt-2",children:"Enter to Run • Shift+Enter to Run in background"})]})})]})]})}export{me as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as qe,j as e,B as S,aa as Ee,ab as Pe,ac as Le,ad as Me,ae as We,af as Ze,x as ce,r as n,ag as Ye,Q as Ke,z as Xe,u as Qe,a as et,q as ue,T as je,ah as $e,h as ve,i as ye,k as we,l as Ne,m as H,X as Oe,s as tt,p as Ie,ai as _e,v as ke,D as rt,b as st,d as nt,f as at,aj as ze,A as oe}from"./index-
|
|
1
|
+
import{c as qe,j as e,B as S,aa as Ee,ab as Pe,ac as Le,ad as Me,ae as We,af as Ze,x as ce,r as n,ag as Ye,Q as Ke,z as Xe,u as Qe,a as et,q as ue,T as je,ah as $e,h as ve,i as ye,k as we,l as Ne,m as H,X as Oe,s as tt,p as Ie,ai as _e,v as ke,D as rt,b as st,d as nt,f as at,aj as ze,A as oe}from"./index-CCs6x1Au.js";import{C as it,a as ct}from"./card-By4vbQ_f.js";import{B as De}from"./badge-2ZOe5ynf.js";import{R as ot,a as Se}from"./radio-group-CSBH8ca-.js";import{C as lt}from"./CollapsibleSection-BKY-lfsm.js";import{L as he}from"./label-BUv8Ltyw.js";import{u as dt}from"./use-terminal-BW9XYY8N.js";import{x as mt,a as ut}from"./xterm-DTxiCjtJ.js";import{A as ht}from"./arrow-down-DNa4SyO2.js";/* empty css */import{b as Fe,a as xt,c as gt,d as ft}from"./droid-BvMEm3eg.js";import{R as pt}from"./refresh-cw-C-yGwsHL.js";import{P as Ce}from"./play-BHUpJCX1.js";import{P as Ae}from"./plus-D0SUNNMH.js";import{Z as bt}from"./zap-BYFYWzmj.js";/**
|
|
2
2
|
* @license lucide-react v0.542.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as n,a as k,b4 as N,A as g,j as e,a7 as P,h,i as u,k as m,l as f,m as a,I as b,B as C}from"./index-
|
|
1
|
+
import{r as n,a as k,b4 as N,A as g,j as e,a7 as P,h,i as u,k as m,l as f,m as a,I as b,B as C}from"./index-CCs6x1Au.js";import{C as F,b as w,c as T,d as L,a as D}from"./card-By4vbQ_f.js";import{L as o}from"./label-BUv8Ltyw.js";const r={theme:"coconut",defaultEditor:"cursor",terminalShell:"bash",autoSaveInterval:60,notifications:{email:!1,desktop:!1,slack:!1}};function V(s){return{theme:s?.theme??r.theme,defaultEditor:s?.defaultEditor??r.defaultEditor,terminalShell:s?.terminalShell??r.terminalShell,autoSaveInterval:s?.autoSaveInterval??r.autoSaveInterval,notifications:{email:s?.notifications?.email??r.notifications.email,desktop:s?.notifications?.desktop??r.notifications.desktop,slack:s?.notifications?.slack??r.notifications.slack}}}function B(){const[s,v]=n.useState(r),[y,E]=n.useState(!0),[c,x]=n.useState(!1),{toast:d}=k(),{theme:j,setTheme:p}=N();n.useEffect(()=>{S()},[]),n.useEffect(()=>{s.theme!==j&&p(s.theme)},[s.theme,j,p]);const S=async()=>{try{const l=await(await fetch(`${g}/api/v1/user/settings`)).json();l.success&&v(V(l.data.preferences))}catch(t){console.error("Failed to load preferences:",t),d({title:"Error",description:"Failed to load user preferences",variant:"destructive"})}finally{E(!1)}},I=async()=>{x(!0);try{const l=await(await fetch(`${g}/api/v1/user/settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({preferences:s})})).json();if(l.success)d({title:"Preferences saved",description:"Your personal preferences have been updated."});else throw new Error(l.error)}catch(t){console.error("Failed to save preferences:",t),d({title:"Error",description:"Failed to save preferences",variant:"destructive"})}finally{x(!1)}},i=t=>{v(l=>({...l,...t,notifications:{...l.notifications,...t.notifications}}))};return y?e.jsx("div",{children:"Loading..."}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-medium",children:"User Preferences"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Configure defaults for editors, shells, themes, and notifications."})]}),e.jsx(P,{}),e.jsxs(F,{children:[e.jsxs(w,{children:[e.jsx(T,{children:"Workspace Defaults"}),e.jsx(L,{children:"Set the defaults Coconut uses when creating sessions and surfaces."})]}),e.jsxs(D,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{htmlFor:"theme",children:"Theme"}),e.jsxs(h,{value:s.theme,onValueChange:t=>i({theme:t}),children:[e.jsx(u,{id:"theme",children:e.jsx(m,{placeholder:"Select theme"})}),e.jsxs(f,{children:[e.jsx(a,{value:"coconut",children:"Coconut"}),e.jsx(a,{value:"system",children:"System"}),e.jsx(a,{value:"light",children:"Light"}),e.jsx(a,{value:"dark",children:"Dark"})]})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"System follows your OS preference. Coconut is the default branded theme."})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{htmlFor:"defaultEditor",children:"Default Editor"}),e.jsxs(h,{value:s.defaultEditor,onValueChange:t=>i({defaultEditor:t}),children:[e.jsx(u,{id:"defaultEditor",children:e.jsx(m,{placeholder:"Select editor"})}),e.jsxs(f,{children:[e.jsx(a,{value:"cursor",children:"Cursor"}),e.jsx(a,{value:"vscode",children:"VS Code"}),e.jsx(a,{value:"vim",children:"Vim"}),e.jsx(a,{value:"emacs",children:"Emacs"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{htmlFor:"terminalShell",children:"Preferred Shell"}),e.jsxs(h,{value:s.terminalShell,onValueChange:t=>i({terminalShell:t}),children:[e.jsx(u,{id:"terminalShell",children:e.jsx(m,{placeholder:"Select shell"})}),e.jsxs(f,{children:[e.jsx(a,{value:"bash",children:"Bash"}),e.jsx(a,{value:"zsh",children:"Zsh"}),e.jsx(a,{value:"fish",children:"Fish"}),e.jsx(a,{value:"sh",children:"sh"}),e.jsx(a,{value:"system",children:"System Default"})]})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{htmlFor:"autoSaveInterval",children:"Auto-save Interval (seconds)"}),e.jsx(b,{id:"autoSaveInterval",type:"number",min:10,max:600,value:s.autoSaveInterval,onChange:t=>i({autoSaveInterval:Number.parseInt(t.target.value,10)||r.autoSaveInterval})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Controls how often Coconut persists draft work to disk."})]})]})]}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx(C,{variant:"outline",onClick:S,disabled:c,children:"Reset"}),e.jsx(C,{onClick:I,disabled:c,children:c?"Saving...":"Save Preferences"})]})]})}export{B as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as a,a as I,A as S,j as e,a7 as D,B as g,I as p,h as F,i as P,k as L,l as z,m as A,L as R}from"./index-
|
|
1
|
+
import{r as a,a as I,A as S,j as e,a7 as D,B as g,I as p,h as F,i as P,k as L,l as z,m as A,L as R}from"./index-CCs6x1Au.js";import{C as q,b as T,c as M,d as O,a as U}from"./card-By4vbQ_f.js";import{L as c}from"./label-BUv8Ltyw.js";import{C as B,a as Q}from"./clipboard-CuF9OlXN.js";const m=[{id:"software-engineer",title:"Software Engineer",description:"Builds, refactors, and reviews high-quality code across stacks. Excellent at translating specs into implementation and optimizing system performance. Strong at debugging, architecture patterns, and accelerating development velocity."},{id:"product-strategist",title:"Product Strategist",description:"Defines product direction, clarifies requirements, and aligns work with user and business goals. Skilled in roadmap planning, prioritization, and transforming ambiguous ideas into actionable plans."},{id:"researcher",title:"Researcher",description:"Investigates topics deeply, synthesizes information, and produces evidence-based insights. Strong at literature review, competitive analysis, and generating clear summaries to inform decisions."},{id:"designer",title:"Designer",description:"Creates intuitive interfaces, user flows, and visual assets. Focused on usability, accessibility, and crafting polished experiences. Strong at wireframing and turning requirements into elegant solutions."},{id:"qa-engineer",title:"QA Engineer",description:"Identifies bugs, edge cases, and reliability gaps. Produces test plans, automated tests, and reproducible reports. Strong at ensuring product quality and preventing regressions."},{id:"devops-engineer",title:"DevOps Engineer",description:"Manages infrastructure, deployments, and operational reliability. Skilled with CI/CD, observability, automation, and environment provisioning. Ensures systems are scalable and fault-tolerant."},{id:"data-analyst",title:"Data Analyst",description:"Analyzes data, defines metrics, and generates actionable insights. Strong in SQL, visualization, experimentation, and turning raw data into strategic recommendations."},{id:"marketer",title:"Marketer",description:"Creates campaigns, messaging, and positioning to reach target audiences. Skilled in content, funnels, and brand strategy. Strong at synthesizing market needs and shaping demand."},{id:"sales-partnerships-agent",title:"Sales & Partnerships Agent",description:"Identifies prospects, crafts outreach, and develops strategic relationships. Strong at value articulation, objection handling, and mapping product capabilities to customer needs."},{id:"growth-operator",title:"Growth Operator",description:"Optimizes acquisition, activation, and retention through experimentation. Skilled in funnel analysis, rapid testing, and leveraging data for compounding growth."},{id:"customer-success-specialist",title:"Customer Success Specialist",description:"Ensures users succeed by providing onboarding, guidance, and proactive support. Strong at diagnosing user challenges and improving long-term satisfaction and retention."},{id:"orchestration-engineer",title:"Orchestration Engineer",description:"Coordinates multi-agent workflows, dependencies, and handoffs. Strong at breaking large tasks into sequenced steps and ensuring agents operate cohesively and efficiently."},{id:"context-curator",title:"Context Curator",description:"Maintains clean, accurate project context by organizing files, logs, and knowledge. Strong at eliminating ambiguity, ensuring agents have the right information at the right time."},{id:"documentation-writer",title:"Documentation Writer",description:"Produces clear technical docs, guides, READMEs, and CP summaries. Strong at structuring complex information and keeping knowledge bases up to date and accessible."}];function H(){const[n,h]=a.useState({}),[r,d]=a.useState(null),[f,x]=a.useState(!1),[b,N]=a.useState(!0),[u,v]=a.useState(!1),{toast:o}=I();a.useEffect(()=>{j()},[]);const j=async()=>{try{try{const t=await fetch(`${S}/api/v1/config`),s=await t.json();if(t.ok&&s?.success){const i=s.data?.coconut||{};d(i.id??null),(i.firstName||i.lastName||i.email||i.role||i.roleDescription)&&h({firstName:i.firstName,lastName:i.lastName,email:i.email,role:i.role,roleDescription:i.roleDescription})}else d(null)}catch(t){console.error("Failed to load coconut config:",t),d(null)}}catch(t){console.error("Failed to load settings:",t),o({title:"Error",description:"Failed to load user settings",variant:"destructive"})}finally{N(!1)}},w=async()=>{v(!0);try{const s=await(await fetch(`${S}/api/v1/config`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({coconut:{...n,id:r||void 0}})})).json();if(s.success)window.dispatchEvent(new CustomEvent("config-updated")),o({title:"Success",description:"Settings saved successfully"});else throw new Error(s.error||"Failed to save settings")}catch(t){console.error("Failed to save settings:",t),o({title:"Error",description:"Failed to save settings",variant:"destructive"})}finally{v(!1)}},l=t=>{h(s=>{const i={...s,...t};if(t.role!==void 0){const C=m.find(k=>k.id===t.role);C?.description&&(i.roleDescription=C.description)}return i})},y=a.useMemo(()=>n.role&&m.find(s=>s.id===n.role)?.description||null,[n.role]),E=async()=>{if(r)try{await navigator.clipboard.writeText(r),x(!0),o({title:"Copied",description:"Coconut ID copied to clipboard."}),setTimeout(()=>x(!1),1500)}catch(t){console.error("Failed to copy coconut ID:",t),o({title:"Copy failed",description:"Unable to copy the Coconut ID to the clipboard.",variant:"destructive"})}};return b?e.jsx("div",{children:"Loading..."}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-medium",children:"Coconut Settings"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Manage the Coconut's profile information."})]}),e.jsx(D,{}),e.jsx("div",{className:"rounded-lg border border-dashed bg-muted/40 p-4",children:r?e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsx("h4",{className:"text-sm font-medium text-muted-foreground",children:"Coconut ID"}),e.jsx("p",{className:"mt-1 font-mono text-sm",children:r})]}),e.jsxs(g,{variant:"outline",size:"sm",onClick:E,children:[f?e.jsx(B,{className:"h-4 w-4"}):e.jsx(Q,{className:"h-4 w-4"}),e.jsx("span",{className:"ml-2",children:f?"Copied":"Copy"})]})]}):e.jsxs("div",{className:"space-y-1",children:[e.jsx("h4",{className:"text-sm font-medium text-muted-foreground",children:"Coconut ID not configured"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Add an `id` under the `coconut` section in `.nut/config.json` to register this Coconut instance."})]})}),e.jsxs(q,{children:[e.jsxs(T,{children:[e.jsx(M,{children:"Coconut Profile"}),e.jsx(O,{children:"Update the Coconut's identifying details and role."})]}),e.jsxs(U,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx(c,{htmlFor:"firstName",children:"First Name"}),e.jsx(p,{id:"firstName",value:n.firstName||"",onChange:t=>l({firstName:t.target.value}),placeholder:"Enter first name"})]}),e.jsxs("div",{children:[e.jsx(c,{htmlFor:"lastName",children:"Last Name"}),e.jsx(p,{id:"lastName",value:n.lastName||"",onChange:t=>l({lastName:t.target.value}),placeholder:"Enter last name"})]})]}),e.jsxs("div",{children:[e.jsx(c,{htmlFor:"email",children:"Email"}),e.jsx(p,{id:"email",type:"email",value:n.email||"",onChange:t=>l({email:t.target.value}),placeholder:"Enter email address"})]}),e.jsxs("div",{children:[e.jsx(c,{htmlFor:"role",children:"Role"}),e.jsxs(F,{value:n.role,onValueChange:t=>l({role:t}),children:[e.jsx(P,{children:e.jsx(L,{placeholder:"Select role"})}),e.jsx(z,{children:m.map(t=>e.jsx(A,{value:t.id,children:t.title},t.id))})]}),y&&e.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:y})]})]})]}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["You can also manage the Coconut's identity to other agents on the"," ",e.jsx(R,{to:"/identity",className:"underline underline-offset-4 hover:text-primary",children:"Identity page"}),"."]}),e.jsxs("div",{className:"flex justify-end space-x-2",children:[e.jsx(g,{variant:"outline",onClick:j,disabled:u,children:"Cancel"}),e.jsx(g,{onClick:w,disabled:u,children:u?"Saving...":"Save Changes"})]})]})}export{H as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as v,a as w,r as n,j as e,B as g,ak as b,L as C,A as S,a9 as I}from"./index-
|
|
1
|
+
import{u as v,a as w,r as n,j as e,B as g,ak as b,L as C,A as S,a9 as I}from"./index-CCs6x1Au.js";import{C as R,a as B}from"./card-By4vbQ_f.js";import{u as Q}from"./use-terminal-BW9XYY8N.js";import{C as $}from"./circle-play-D9VS6Vdc.js";import{P as O}from"./play-BHUpJCX1.js";function L(){const o=v(),{loading:l,createSession:d,refreshSessions:j}=Q(),{toast:i}=w(),[m,u]=n.useState(!1),[x,h]=n.useState(!1),[,f]=n.useState([]),[c,y]=n.useState({});n.useEffect(()=>{try{const t=localStorage.getItem("terminal.commandHistory");t&&f(JSON.parse(t))}catch{}},[]),n.useEffect(()=>{(async()=>{try{const s=await fetch(`${S}/api/v1/context/architecture`);if(!s.ok)return;const a=await s.json();a?.success&&a?.document?.metadata?.commands&&y(a.document.metadata.commands)}catch{}})()},[]);const p=t=>{t&&f(s=>{const a=[t,...s.filter(r=>r!==t)].slice(0,5);try{localStorage.setItem("terminal.commandHistory",JSON.stringify(a))}catch{}return a})},N=async t=>{const s=(t||"").trim();if(!s)return;const a=`session-${Date.now()}`;u(!0);try{await d(a,!1,s)?(p(s),i({title:"Session started",description:`${a}`}),o(`/terminal/${a}`)):i({title:"Failed to start",description:"See error above",variant:"destructive"})}finally{u(!1)}},k=async t=>{const s=(t||"").trim();if(!s)return;const a=`session-${Date.now()}`;h(!0);try{await d(a,!1,s)?(p(s),setTimeout(()=>j(),150),i({title:"Started in background",description:`${a}`,action:e.jsx(I,{altText:"Open session",onClick:()=>o(`/terminal/${a}`),children:"Open"})})):i({title:"Failed to start",description:"See error above",variant:"destructive"})}finally{h(!1)}};return e.jsxs("div",{className:"space-y-6",children:[e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:"Utilities"}),e.jsx("p",{className:"text-muted-foreground",children:"Quick commands and shortcuts"})]})}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h2",{className:"text-lg font-semibold",children:"Quick Commands"}),e.jsx(R,{children:e.jsx(B,{className:"pt-6",children:c&&Object.keys(c).length>0?e.jsx("div",{className:"space-y-2",children:e.jsx("div",{className:"rounded-md border divide-y",children:Object.entries(c).map(([t,s])=>e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3 p-2",children:[e.jsxs("div",{className:"flex-1 min-w-0 flex flex-col sm:flex-row sm:items-center gap-1 sm:gap-2",children:[e.jsx("span",{className:"text-sm font-medium truncate",children:t}),e.jsx("span",{className:"text-muted-foreground hidden sm:inline",children:":"}),e.jsx("span",{className:"truncate max-w-full",children:e.jsx("code",{className:"bg-muted px-2 py-0.5 rounded text-xs",children:s})})]}),e.jsxs("div",{className:"flex items-center gap-1 sm:gap-2 flex-shrink-0",children:[e.jsxs(g,{onClick:()=>k(s),variant:"secondary",size:"sm",disabled:l||x||m,title:"Run in background",children:[e.jsx($,{className:"h-4 w-4 sm:mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"Background"})]}),e.jsxs(g,{onClick:()=>N(s),size:"sm",disabled:l||m||x,title:"Run",children:[e.jsx(O,{className:"h-4 w-4 sm:mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"Run"})]})]})]},t))})}):e.jsxs("div",{className:"flex flex-col items-center justify-center text-center space-y-3 py-8",children:[e.jsx(b,{className:"h-12 w-12 text-muted-foreground"}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-lg mb-2",children:"No quick commands configured"}),e.jsx("p",{className:"text-sm text-muted-foreground max-w-md leading-relaxed",children:"Quick commands let you run common tasks with one click, like starting your development server or running build scripts."}),e.jsxs("p",{className:"text-sm text-muted-foreground max-w-md mt-2",children:["Set them up in the"," ",e.jsx(C,{to:"/context/architecture/edit",className:"text-primary hover:underline font-medium",children:"Quick Commands section"}),"."]})]})]})})})]})]})}export{L as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,j as a,e as o}from"./index-
|
|
1
|
+
import{r,j as a,e as o}from"./index-CCs6x1Au.js";const v=r.forwardRef(({className:e,variant:t="default",...s},d)=>{const l="relative w-full rounded-lg border px-4 py-3 text-sm [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",i=t==="destructive"?"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive":"bg-background text-foreground";return a.jsx("div",{ref:d,role:"alert",className:o(l,i,e),...s})});v.displayName="Alert";const c=r.forwardRef(({className:e,...t},s)=>a.jsx("div",{ref:s,className:o("text-sm [&_p]:leading-relaxed",e),...t}));c.displayName="AlertDescription";export{v as A,c as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as o,e as n,b8 as a}from"./index-
|
|
1
|
+
import{j as o,e as n,b8 as a}from"./index-CCs6x1Au.js";const s=a("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function i({className:r,variant:e,...t}){return o.jsx("div",{className:n(s({variant:e}),r),...t})}export{i as B};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as $,r,j as e,D as z,b as G,d as K,f as Q,I as V,J as M,S as W,e as X,a6 as Y,B}from"./index-
|
|
1
|
+
import{c as $,r,j as e,D as z,b as G,d as K,f as Q,I as V,J as M,S as W,e as X,a6 as Y,B}from"./index-CCs6x1Au.js";import{B as v}from"./badge-2ZOe5ynf.js";import{a as Z}from"./registry-ANRa5WBi.js";import{S as O}from"./search-DFtqbVgP.js";/**
|
|
2
2
|
* @license lucide-react v0.542.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,j as d,e as t}from"./index-
|
|
1
|
+
import{r,j as d,e as t}from"./index-CCs6x1Au.js";const o=r.forwardRef(({className:a,...e},s)=>d.jsx("div",{ref:s,className:t("rounded-xl border bg-card text-card-foreground shadow",a),...e}));o.displayName="Card";const c=r.forwardRef(({className:a,...e},s)=>d.jsx("div",{ref:s,className:t("flex flex-col space-y-1.5 p-6",a),...e}));c.displayName="CardHeader";const i=r.forwardRef(({className:a,...e},s)=>d.jsx("h3",{ref:s,className:t("font-semibold leading-none tracking-tight",a),...e}));i.displayName="CardTitle";const n=r.forwardRef(({className:a,...e},s)=>d.jsx("p",{ref:s,className:t("text-sm text-muted-foreground",a),...e}));n.displayName="CardDescription";const l=r.forwardRef(({className:a,...e},s)=>d.jsx("div",{ref:s,className:t("p-6 pt-0",a),...e}));l.displayName="CardContent";const f=r.forwardRef(({className:a,...e},s)=>d.jsx("div",{ref:s,className:t("flex items-center p-6 pt-0",a),...e}));f.displayName="CardFooter";export{o as C,l as a,c as b,i as c,n as d,f as e};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const l="Use .nut/context/project.md and .nut/context/architecture.md for reference.";function p(e,t,n,o=!0){const s=[];return o&&(s.push(["## Task","","- Review and begin working on the following task proposal:",` .nut/proposals/${e}.md`,"- Retrieve your firstName, lastName, and email address from: .nut/config.json and use this identity to address yourself in any task updates, comments, git commits, etc."].join(`
|
|
2
|
+
`)),s.push(["## Task Lifecycle","",`- Before beginning any work: nut task update ${e} --status active`,`- Add appropriate steps with: nut task step ${e} "Step description" --author "firstName lastName"`,"",`- If you need human clarification or input: nut task update ${e} --status blocked. The clarification can be communicated as follows: nut task comment ${e} "Comments here" --author "firstName lastName". At this point please stop work.`,"",`- When implementation is complete and ready for approval: nut task update ${e} --status review`,`- Only mark the task complete once approval criteria are satisfied: nut task update ${e} --status done`].join(`
|
|
3
|
+
`)),s.push(["## Operational Rules","","- DO use the nut CLI to update task status as progress changes"," (nut --help or nut task --help for details)","- DO NOT edit files outside the scope of the approved proposal (unless instructed by the Additional Instructions below)"].join(`
|
|
4
|
+
`))),t.length>0&&s.push(["## Agents","","These agents are available to you if needed:",...t.map(i=>`- ${i}`)].join(`
|
|
5
|
+
`)),n&&n.trim()&&s.push(["## Additional Instructions","","DO strictly adhere to these additional instructions:",n.trim()].join(`
|
|
6
|
+
`)),[s.join(`
|
|
7
|
+
|
|
8
|
+
`)]}function u(e,t){const n=[];return n.push(l),e.length>0&&n.push(`Please use these agents: ${e.join(", ")}`),t&&t.trim()&&n.push(`Additional instruction: ${t.trim()}`),n}const m=e=>{const t=e.selectedAgentIds.map(d=>`.nut/agents/${d}`),o=(e.contextType==="change-proposal"?p(e.proposalId,t,e.customInstruction,e.includeDefaultInstructions??!0):u(t,e.customInstruction)).join(" "),s=[e.automationEnabled?"--dangerously-skip-permissions":""].filter(Boolean).join(" "),i=e.selectedMcpServers.map(d=>`'${d.replace(/'/g,"'\\''")}'`).join(","),a=[JSON.stringify(o)].concat(s?[JSON.stringify("--dangerously-skip-permissions")]:[]);return`node -e "${`const fs=require('fs'),{spawn}=require('child_process');const s=new Set([${i}]);const c=require('./.nut/mcp/config.json');const filtered=Object.entries(c.mcpServers||{}).filter(([k])=>s.has(k)).map(([k,v])=>[k,{...v,type:v.type||(v.url?'http':'stdio')}]);const o={mcpServers:Object.fromEntries(filtered)};fs.writeFileSync('.mcp.json',JSON.stringify(o,null,2));const p=spawn('claude',[${a.join(",")}],{stdio:'inherit'});p.on('exit',code=>process.exit(code));`.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`},h=e=>{const t=e.selectedAgentIds.map(c=>`.nut/agents/${c}`),o=(e.contextType==="change-proposal"?p(e.proposalId,t,e.customInstruction,e.includeDefaultInstructions??!0):u(t,e.customInstruction)).join(" ");return`node -e "${`const fs=require('fs'),path=require('path'),{spawn}=require('child_process');const s=new Set([${e.selectedMcpServers.map(c=>`'${c.replace(/'/g,"'\\''")}'`).join(",")}]);const c=require('./.nut/mcp/config.json');const geminiPath=path.join(require('os').homedir(),'.gemini','settings.json');let settings={};try{settings=JSON.parse(fs.readFileSync(geminiPath,'utf8'))}catch(e){}settings.mcpServers=Object.fromEntries(Object.entries(c.mcpServers||{}).filter(([k])=>s.has(k)));fs.writeFileSync(geminiPath,JSON.stringify(settings,null,2));const p=spawn('gemini',['-i',${JSON.stringify(o)}],{stdio:'inherit'});p.on('exit',code=>process.exit(code));`.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`},f=e=>{const t=e.selectedAgentIds.map(r=>`.nut/agents/${r}`),o=(e.contextType==="change-proposal"?p(e.proposalId,t,e.customInstruction,e.includeDefaultInstructions??!0):u(t,e.customInstruction)).join(" "),s=e.selectedMcpServers.map(r=>`'${r.replace(/'/g,"'\\''")}'`).join(","),i=[JSON.stringify(o)].concat(e.automationEnabled?[JSON.stringify("--dangerously-bypass-approvals-and-sandbox")]:[]);return`node -e "${`const fs=require('fs'),{spawn}=require('child_process');const s=new Set([${s}]);const c=require('./.nut/mcp/config.json');const filtered=Object.entries(c.mcpServers||{}).filter(([k])=>s.has(k)).map(([k,v])=>[k,{...v,type:v.type||(v.url?'http':'stdio')}]);const o={mcpServers:Object.fromEntries(filtered)};fs.writeFileSync('.mcp.json',JSON.stringify(o,null,2));const p=spawn('codex',[${i.join(",")}],{stdio:'inherit'});p.on('exit',code=>process.exit(code));`.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`},g=e=>{const t=e.selectedAgentIds.map(r=>`.nut/agents/${r}`),o=(e.contextType==="change-proposal"?p(e.proposalId,t,e.customInstruction,e.includeDefaultInstructions??!0):u(t,e.customInstruction)).join(" "),s=e.selectedMcpServers.map(r=>`'${r.replace(/'/g,"'\\''")}'`).join(","),i=[JSON.stringify(o)];return`node -e "${`const fs=require('fs'),{spawn}=require('child_process');const s=new Set([${s}]);const c=require('./.nut/mcp/config.json');const filtered=Object.entries(c.mcpServers||{}).filter(([k])=>s.has(k)).map(([k,v])=>[k,{...v,type:v.type||(v.url?'http':'stdio')}]);const o={mcpServers:Object.fromEntries(filtered)};fs.writeFileSync('.mcp.json',JSON.stringify(o,null,2));const p=spawn('droid',[${i.join(",")}],{stdio:'inherit'});p.on('exit',code=>process.exit(code));`.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`};export{g as a,m as b,f as c,h as d};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-Cv2-duAx.js","assets/card-By4vbQ_f.js","assets/badge-2ZOe5ynf.js","assets/label-BUv8Ltyw.js","assets/use-terminal-BW9XYY8N.js","assets/terminal-preview-sns5QTN_.js","assets/xterm-DTxiCjtJ.js","assets/xterm-qxJ8_QYu.css","assets/circle-check-DC5Ek4MP.js","assets/chevron-left-CJfNRqcH.js","assets/search-DFtqbVgP.js","assets/zap-BYFYWzmj.js","assets/calendar-tNgwmWmG.js","assets/folder-git-2-BYI_osdA.js","assets/play-BHUpJCX1.js","assets/clock-CDTi2Cen.js","assets/circle-check-big-Dw4YJZos.js","assets/plus-D0SUNNMH.js","assets/LoginPage-DqbNxfY6.js","assets/tabs-D93ZjKR7.js","assets/CallbackPage-Ck0dddEW.js","assets/circle-x-BReHgv4g.js","assets/ProposalsPage-CUB_aLXW.js","assets/ProposalDetailPage-CHR1MmwC.js","assets/clipboard-B9ndUJKl.js","assets/arrow-left-DkoECaEJ.js","assets/clipboard-CuF9OlXN.js","assets/download-DHIAgGlY.js","assets/ProposalEditPage-CkcZqgax.js","assets/markdown-editor-BP8Xkecg.js","assets/markdown-editor-DUEthZ0y.css","assets/CollapsibleSection-BKY-lfsm.js","assets/ImplementationStepsEditor-iqrCqyOb.js","assets/TagInput-BWLBdW8h.js","assets/NewProposalPage-DrU0ihJX.js","assets/TerminalPage-DtVDWX7G.js","assets/refresh-cw-C-yGwsHL.js","assets/chevrons-up-DoBrp0tt.js","assets/circle-play-D9VS6Vdc.js","assets/terminal-xj47PT8r.css","assets/TerminalSessionPage-BUHzje8A.js","assets/radio-group-CSBH8ca-.js","assets/arrow-down-DNa4SyO2.js","assets/droid-BvMEm3eg.js","assets/UtilitiesPage-CRqQYVsb.js","assets/CodePage-b3JR4eWW.js","assets/AgentsPage-NdB5OB1C.js","assets/browser-modal-DUCXGaha.js","assets/registry-ANRa5WBi.js","assets/tag-EEDDoCc_.js","assets/AgentDetailPage-D6yg4CtT.js","assets/NewAgentPage-UEVIYkt3.js","assets/AgentEditPage-CTnjxjX7.js","assets/ResourcesPage-DzjwPoyS.js","assets/KnowledgePage-C_UDfD9X.js","assets/arrow-up-DQlu6uQE.js","assets/KnowledgeDetailPage-Dzy2V7yT.js","assets/KnowledgeEditPage-av1ALt0h.js","assets/SourceInput-BFxoOvqS.js","assets/NewKnowledgePage-CzYXdoDb.js","assets/ProjectPage-BQNa0qA-.js","assets/ProjectEditPage-j4KporiC.js","assets/ArchitecturePage-36wO0UD7.js","assets/ArchitectureEditPage-Bw2d_hmk.js","assets/RolePage-BOI2T8QG.js","assets/RoleEditPage-DhVneoNR.js","assets/IdentityPage-BsZnszF-.js","assets/alert-C7sSXJf0.js","assets/eye-Ch7ecV9Z.js","assets/UserSettingsPage-Dz-R1ijS.js","assets/AuthSettingsPage-CKifiWsx.js","assets/switch-WtOd8h5Z.js","assets/circle-alert-B4JJ0jKl.js","assets/ApiKeysSettingsPage-Jl6vvVmW.js","assets/AgentsSettingsPage-CYXp908g.js","assets/pause-B0clczfE.js","assets/IntegrationsSettingsPage-C1dC_vVy.js","assets/GitSettingsPage-CKIWkAnw.js","assets/McpSettingsPage-BqbErEWS.js","assets/PromptsSettingsPage-sYphs8Dn.js","assets/RulesSettingsPage-VsteFA-j.js","assets/GitPage-BgCxzm-C.js","assets/SchedulePage-_v4YfdHo.js","assets/JobDetailPage-BgGQJkND.js","assets/UserPreferencesPage-CkXJuogz.js","assets/ActivityPage-BYrDJlH6.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
function MT(e,n){for(var r=0;r<n.length;r++){const i=n[r];if(typeof i!="string"&&!Array.isArray(i)){for(const l in i)if(l!=="default"&&!(l in e)){const s=Object.getOwnPropertyDescriptor(i,l);s&&Object.defineProperty(e,l,s.get?s:{enumerable:!0,get:()=>i[l]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))i(l);new MutationObserver(l=>{for(const s of l)if(s.type==="childList")for(const c of s.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&i(c)}).observe(document,{childList:!0,subtree:!0});function r(l){const s={};return l.integrity&&(s.integrity=l.integrity),l.referrerPolicy&&(s.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?s.credentials="include":l.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(l){if(l.ep)return;l.ep=!0;const s=r(l);fetch(l.href,s)}})();function Cc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ph={exports:{}},Al={};/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react-jsx-runtime.production.js
|
|
@@ -465,4 +465,4 @@ ${G.content||""}`;i(ae)}else i(null)}catch(J){console.error("Error fetching prop
|
|
|
465
465
|
${l}`,r&&`=== PROPOSAL CONTENT ===
|
|
466
466
|
${r}`].filter(Boolean),G=ne.length>0?ne.join(`
|
|
467
467
|
|
|
468
|
-
`):null;return{type:R.includes("/edit")?"proposals-edit":"proposals-view",content:G,displayId:D,contextFiles:J}}return{type:"proposals",content:l,contextFiles:"project.md"}}return R.includes("/context")?R.includes("/architecture")?{type:"context-architecture",content:c,contextFiles:"architecture.md"}:R.includes("/project")?{type:"context-project",content:l,contextFiles:"project.md"}:R.includes("/knowledge")?{type:"context-knowledge",content:null}:{type:"context",content:null}:R.includes("/settings")?R.includes("/agents")?{type:"settings-agents",content:null}:R.includes("/integrations")?{type:"settings-integrations",content:null}:R.includes("/prompts")?{type:"settings-prompts",content:null}:R.includes("/rules")?{type:"settings-rules",content:null}:R.includes("/user")?{type:"settings-user",content:null}:{type:"settings",content:null}:R.includes("/terminal")?{type:"terminal",content:null}:{type:"dashboard",content:null}};return g.jsx(CS,{children:g.jsxs("div",{className:"flex min-h-screen w-full overflow-hidden",children:[g.jsx(RP,{}),g.jsxs(TS,{className:ue("flex-1 min-w-0 transition-all duration-300 ease-in-out",e&&"mr-96"),children:[g.jsxs("header",{className:"flex h-16 shrink-0 items-center gap-2 border-b border-content-border px-4 bg-background",children:[g.jsx(AS,{className:"-ml-1"}),g.jsxs("div",{className:"flex items-center justify-between flex-1",children:[g.jsx("h1",{className:"text-lg font-semibold",children:d||"Coconut"}),g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx(vt,{onClick:j,size:"icon",className:"h-8 w-8 rounded-full",children:g.jsx(dp,{className:"h-4 w-4"})}),L&&N&&g.jsxs(JB,{children:[g.jsx(eU,{asChild:!0,children:g.jsx(vt,{size:"icon",variant:"outline",className:"h-8 w-8 rounded-full",children:g.jsx(xj,{className:"h-4 w-4"})})}),g.jsxs(w2,{align:"end",children:[g.jsx(E2,{children:g.jsxs("div",{className:"flex flex-col space-y-1",children:[g.jsx("p",{className:"text-sm font-medium leading-none",children:N.name}),g.jsx("p",{className:"text-xs leading-none text-muted-foreground",children:N.email})]})}),g.jsx(C2,{}),g.jsxs(S2,{onClick:H,children:[g.jsx(OM,{className:"mr-2 h-4 w-4"}),"Logout"]})]})]})]})]})]}),g.jsx("main",{className:"flex flex-1 flex-col gap-4 p-4 overflow-auto bg-content-background",children:g.jsx(nw,{})})]}),g.jsx(M8,{isOpen:e,onToggle:j,contextInfo:$(),discussDocument:m,onDiscussDocumentHandled:()=>y(null),pendingPrompt:w,onPendingPromptHandled:()=>b(null),openInFullScreen:S,onFullScreenHandled:()=>E(!1)})]})})}const oU=[{title:"Coconut Profile",href:"/settings/user",icon:mj,description:"Manage the Coconut's profile information."},{title:"User Preferences",href:"/settings/preferences",icon:aj,description:"Configure individual workspace preferences"},{title:"Authentication",href:"/settings/authentication",icon:nj,description:"Configure authentication and user access"},{title:"API Keys",href:"/settings/api-keys",icon:MM,description:"Manage API keys for programmatic access"},{title:"Symlinks",href:"/settings/rules",icon:uc,description:"Manage symlinks for easy access to project rules and configurations"},{title:"AI & LLM",href:"/settings/integrations",icon:GM,description:"Connect Coconut to LLM providers and automation hooks"},{title:"Git",href:"/settings/git",icon:Xw,description:"Configure repository defaults like worktree paths"},{title:"MCP",href:"/settings/mcp",icon:UM,description:"Model Context Protocol configuration and settings"}];function lU(){const e=Wn();return g.jsxs("div",{className:"flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0",children:[g.jsx("aside",{className:"lg:w-1/5",children:g.jsx("nav",{className:"flex overflow-x-auto pb-2 gap-1 lg:flex-col lg:gap-0 lg:space-y-1 lg:overflow-visible lg:pb-0",children:oU.map(n=>g.jsxs(Sr,{to:n.href,className:ue("inline-flex items-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 hover:text-accent-foreground h-9 px-2 sm:px-3 lg:px-4 py-2 hover:bg-accent justify-start flex-shrink-0",e.pathname===n.href?"bg-accent text-accent-foreground":"text-muted-foreground"),children:[g.jsx(n.icon,{className:"h-4 w-4 lg:mr-2"}),g.jsx("span",{className:"hidden lg:inline",children:n.title})]},n.href))})}),g.jsx("div",{className:"flex-1 lg:max-w-2xl",children:g.jsx("div",{className:"space-y-6",children:g.jsx(nw,{})})})]})}const sU=v.lazy(()=>Ie(()=>import("./DashboardPage-DQFlhP54.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]))),uU=v.lazy(()=>Ie(()=>import("./LoginPage-Dp6lQSZW.js"),__vite__mapDeps([18,3,1,19]))),cU=v.lazy(()=>Ie(()=>import("./CallbackPage-xYgfYT1Z.js"),__vite__mapDeps([20,8,21]))),fU=v.lazy(()=>Ie(()=>import("./ProposalsPage-D2gMbCBV.js"),__vite__mapDeps([22,1,2,17,10]))),dU=v.lazy(()=>Ie(()=>import("./ProposalDetailPage-BI5HDp5I.js"),__vite__mapDeps([23,24,1,2,3,25,26,27,12,15]))),hU=v.lazy(()=>Ie(()=>import("./ProposalEditPage-D4412azZ.js"),__vite__mapDeps([28,3,1,29,30,31,32,17,33,2,25])).then(e=>({default:e.ProposalEditPage}))),pU=v.lazy(()=>Ie(()=>import("./NewProposalPage-B152OXnT.js"),__vite__mapDeps([34,1,3,29,30,31,32,17,33,2,25])).then(e=>({default:e.NewProposalPage}))),mU=v.lazy(()=>Ie(()=>import("./TerminalPage-BGZJDqvR.js"),__vite__mapDeps([35,1,4,5,6,7,36,37,14,38,39]))),gU=v.lazy(()=>Ie(()=>import("./TerminalSessionPage-DILvcnLG.js"),__vite__mapDeps([40,1,2,41,31,3,4,6,7,42,43,36,14,17,11,39]))),yU=v.lazy(()=>Ie(()=>import("./UtilitiesPage-ChLTn_u9.js"),__vite__mapDeps([44,1,4,38,14]))),vU=v.lazy(()=>Ie(()=>import("./CodePage-xpXX0hlR.js"),__vite__mapDeps([45,1,2,4,5,6,7,43,36,37,14]))),xU=v.lazy(()=>Ie(()=>import("./AgentsPage-CUuxxQ2o.js"),__vite__mapDeps([46,1,2,24,47,48,10,17,49]))),bU=v.lazy(()=>Ie(()=>import("./AgentDetailPage-BJD22FSv.js"),__vite__mapDeps([50,1,2,25]))),wU=v.lazy(()=>Ie(()=>import("./NewAgentPage-D9hL7NY6.js"),__vite__mapDeps([51,1,3,2,24,25,26]))),SU=v.lazy(()=>Ie(()=>import("./AgentEditPage-ZYd0Rode.js"),__vite__mapDeps([52,1,3,2,24,25,26]))),EU=v.lazy(()=>Ie(()=>import("./ResourcesPage-7tbvXxDb.js"),__vite__mapDeps([53,1,3,2,24,48,27,9,12,49,17,10]))),CU=v.lazy(()=>Ie(()=>import("./KnowledgePage-BBUKBhzS.js"),__vite__mapDeps([54,1,2,24,47,48,10,17,55,42]))),kU=v.lazy(()=>Ie(()=>import("./KnowledgeDetailPage-C8evStGp.js"),__vite__mapDeps([56,1,2,24,25,12,49]))),AU=v.lazy(()=>Ie(()=>import("./KnowledgeEditPage-DquJprU_.js"),__vite__mapDeps([57,1,3,29,30,33,2,58,17,25]))),TU=v.lazy(()=>Ie(()=>import("./NewKnowledgePage-CEdd8Yns.js"),__vite__mapDeps([59,1,3,29,30,33,2,58,17,25]))),RU=v.lazy(()=>Ie(()=>import("./ProjectPage-DzWJky4Y.js"),__vite__mapDeps([60,1,2,24]))),NU=v.lazy(()=>Ie(()=>import("./ProjectEditPage-D0uSaGy0.js"),__vite__mapDeps([61,1,3,29,30,25,16]))),_U=v.lazy(()=>Ie(()=>import("./ArchitecturePage-GchbFR8L.js"),__vite__mapDeps([62,1,24]))),MU=v.lazy(()=>Ie(()=>import("./ArchitectureEditPage-CVxBD88N.js"),__vite__mapDeps([63,1,3,29,30,25,16]))),jU=v.lazy(()=>Ie(()=>import("./RolePage-3sb7lhw8.js"),__vite__mapDeps([64,1,24]))),DU=v.lazy(()=>Ie(()=>import("./RoleEditPage-Ne8Dh8Tt.js"),__vite__mapDeps([65,1,29,30,25,16]))),OU=v.lazy(()=>Ie(()=>import("./IdentityPage-ZAp_iARt.js"),__vite__mapDeps([66,1,3,2,67,19,11,68,17,26]))),q0=v.lazy(()=>Ie(()=>import("./UserSettingsPage-Cv60YInV.js"),__vite__mapDeps([69,1,3,26]))),PU=v.lazy(()=>Ie(()=>import("./AuthSettingsPage-B7a-i1_T.js"),__vite__mapDeps([70,1,3,71,2,72]))),LU=v.lazy(()=>Ie(()=>import("./ApiKeysSettingsPage-DTZStkII.js"),__vite__mapDeps([73,1,3,2,67,17,72]))),zU=v.lazy(()=>Ie(()=>import("./AgentsSettingsPage-Dd8MrsKx.js"),__vite__mapDeps([74,1,3,2,17,75,14,11]))),IU=v.lazy(()=>Ie(()=>import("./IntegrationsSettingsPage-CqWZ8GUI.js"),__vite__mapDeps([76,1,3]))),BU=v.lazy(()=>Ie(()=>import("./GitSettingsPage-vLNJs4r3.js"),__vite__mapDeps([77,1,3,41,36,8,21]))),UU=v.lazy(()=>Ie(()=>import("./McpSettingsPage-BGIEripM.js"),__vite__mapDeps([78,1,3,2,71,67,47,48,10,72,17,16]))),HU=v.lazy(()=>Ie(()=>import("./PromptsSettingsPage-DH-4vcbF.js"),__vite__mapDeps([79,1,3,2,17,68,27]))),FU=v.lazy(()=>Ie(()=>import("./RulesSettingsPage-CEWEvNFC.js"),__vite__mapDeps([80,1,3,2,17]))),VU=v.lazy(()=>Ie(()=>import("./GitPage-B-aSKe9Z.js"),__vite__mapDeps([81,1,3,19,8,21,42,55,36,72,13]))),qU=v.lazy(()=>Ie(()=>import("./SchedulePage-Crd-VMiL.js"),__vite__mapDeps([82,1,2,3,71,19,36,17,14,75,15]))),$U=v.lazy(()=>Ie(()=>import("./JobDetailPage-BWq4XLO2.js"),__vite__mapDeps([83,24,1,2,25,14,26,36,75,15,12]))),GU=v.lazy(()=>Ie(()=>import("./UserPreferencesPage-ChHrBs8H.js"),__vite__mapDeps([84,1,3]))),YU=v.lazy(()=>Ie(()=>import("./ActivityPage-Dl3u61DF.js"),__vite__mapDeps([85,1,2,36])));function KU(){return g.jsxs(GN,{children:[g.jsx(iN,{children:g.jsx(v.Suspense,{fallback:g.jsx(sD,{}),children:g.jsxs(PR,{children:[g.jsx(Oe,{path:"/login",element:g.jsx(uU,{})}),g.jsx(Oe,{path:"/auth/github/callback",element:g.jsx(cU,{})}),g.jsxs(Oe,{path:"/",element:g.jsx(lD,{children:g.jsx(iU,{})}),children:[g.jsx(Oe,{index:!0,element:g.jsx(sU,{})}),g.jsx(Oe,{path:"proposals",element:g.jsx(fU,{})}),g.jsx(Oe,{path:"proposals/new",element:g.jsx(pU,{})}),g.jsx(Oe,{path:"proposals/:id",element:g.jsx(dU,{})}),g.jsx(Oe,{path:"proposals/:id/edit",element:g.jsx(hU,{})}),g.jsx(Oe,{path:"code",element:g.jsx(vU,{})}),g.jsx(Oe,{path:"utilities",element:g.jsx(yU,{})}),g.jsx(Oe,{path:"terminal",element:g.jsx(mU,{})}),g.jsx(Oe,{path:"terminal/:proposalId",element:g.jsx(gU,{})}),g.jsx(Oe,{path:"git",element:g.jsx(VU,{})}),g.jsx(Oe,{path:"schedule",element:g.jsx(qU,{})}),g.jsx(Oe,{path:"schedule/:id",element:g.jsx($U,{})}),g.jsx(Oe,{path:"identity",element:g.jsx(OU,{})}),g.jsx(Oe,{path:"agents",element:g.jsx(xU,{})}),g.jsx(Oe,{path:"agents/new",element:g.jsx(wU,{})}),g.jsx(Oe,{path:"agents/:id",element:g.jsx(bU,{})}),g.jsx(Oe,{path:"agents/:id/edit",element:g.jsx(SU,{})}),g.jsx(Oe,{path:"activity",element:g.jsx(YU,{})}),g.jsx(Oe,{path:"resources",element:g.jsx(EU,{})}),g.jsx(Oe,{path:"context/project",element:g.jsx(RU,{})}),g.jsx(Oe,{path:"context/project/edit",element:g.jsx(NU,{})}),g.jsx(Oe,{path:"context/architecture",element:g.jsx(_U,{})}),g.jsx(Oe,{path:"context/architecture/edit",element:g.jsx(MU,{})}),g.jsx(Oe,{path:"context/role",element:g.jsx(jU,{})}),g.jsx(Oe,{path:"context/role/edit",element:g.jsx(DU,{})}),g.jsx(Oe,{path:"context/knowledge",element:g.jsx(CU,{})}),g.jsx(Oe,{path:"context/knowledge/new",element:g.jsx(TU,{})}),g.jsx(Oe,{path:"context/knowledge/:filename",element:g.jsx(kU,{})}),g.jsx(Oe,{path:"context/knowledge/:filename/edit",element:g.jsx(AU,{})}),g.jsxs(Oe,{path:"settings",element:g.jsx(lU,{}),children:[g.jsx(Oe,{index:!0,element:g.jsx(q0,{})}),g.jsx(Oe,{path:"user",element:g.jsx(q0,{})}),g.jsx(Oe,{path:"preferences",element:g.jsx(GU,{})}),g.jsx(Oe,{path:"authentication",element:g.jsx(PU,{})}),g.jsx(Oe,{path:"api-keys",element:g.jsx(LU,{})}),g.jsx(Oe,{path:"agents",element:g.jsx(zU,{})}),g.jsx(Oe,{path:"integrations",element:g.jsx(IU,{})}),g.jsx(Oe,{path:"git",element:g.jsx(BU,{})}),g.jsx(Oe,{path:"mcp",element:g.jsx(UU,{})}),g.jsx(Oe,{path:"prompts",element:g.jsx(HU,{})}),g.jsx(Oe,{path:"rules",element:g.jsx(FU,{})})]})]})]})})}),g.jsx(oD,{})]})}UT.createRoot(document.getElementById("root")).render(g.jsx(v.StrictMode,{children:g.jsx(KU,{})}));export{XC as $,Et as A,vt as B,nM as C,Zc as D,pM as E,uc as F,Xw as G,yw as H,d1 as I,cc as J,iH as K,Sr as L,IM as M,lp as N,QU as O,aM as P,XU as Q,lj as R,Jl as S,fj as T,W9 as U,J9 as V,hj as W,so as X,$C as Y,GC as Z,KC as _,ZN as a,OL as a$,YC as a0,ZC as a1,QC as a2,xs as a3,xj as a4,aH as a5,gE as a6,m1 as a7,KM as a8,iD as a9,B9 as aA,N9 as aB,wM as aC,tf as aD,Cc as aE,uH as aF,sH as aG,Hm as aH,Ym as aI,Pm as aJ,zp as aK,z5 as aL,xL as aM,oH as aN,lL as aO,EL as aP,dL as aQ,SL as aR,Mp as aS,Lm as aT,CE as aU,Zl as aV,u6 as aW,Z3 as aX,$5 as aY,WE as aZ,lH as a_,JB as aa,eU as ab,w2 as ac,E2 as ad,C2 as ae,S2 as af,JU as ag,oc as ah,WM as ai,rU as aj,wj as ak,qN as al,Oc as am,cM as an,_a as ao,Jn as ap,_c as aq,me as ar,_e as as,ze as at,Yc as au,Ep as av,aS as aw,MS as ax,xb as ay,g6 as az,ds as b,Uh as b0,Aa as b1,rn as b2,_0 as b3,ZU as b4,UM as b5,eo as b6,MM as b7,Dc as b8,kr as b9,Ek as ba,F8 as bb,V8 as bc,un as bd,oM as be,b8 as bf,WU as bg,W_ as bh,kM as bi,Y_ as bj,je as c,hs as d,ue as e,ps as f,zl as g,Gb as h,Np as i,g as j,Yb as k,_p as l,li as m,dp as n,nj as o,Ul as p,sM as q,v as r,ej as s,Kw as t,rs as u,Yw as v,wk as w,zh as x,Q_ as y,Wn as z};
|
|
468
|
+
`):null;return{type:R.includes("/edit")?"proposals-edit":"proposals-view",content:G,displayId:D,contextFiles:J}}return{type:"proposals",content:l,contextFiles:"project.md"}}return R.includes("/context")?R.includes("/architecture")?{type:"context-architecture",content:c,contextFiles:"architecture.md"}:R.includes("/project")?{type:"context-project",content:l,contextFiles:"project.md"}:R.includes("/knowledge")?{type:"context-knowledge",content:null}:{type:"context",content:null}:R.includes("/settings")?R.includes("/agents")?{type:"settings-agents",content:null}:R.includes("/integrations")?{type:"settings-integrations",content:null}:R.includes("/prompts")?{type:"settings-prompts",content:null}:R.includes("/rules")?{type:"settings-rules",content:null}:R.includes("/user")?{type:"settings-user",content:null}:{type:"settings",content:null}:R.includes("/terminal")?{type:"terminal",content:null}:{type:"dashboard",content:null}};return g.jsx(CS,{children:g.jsxs("div",{className:"flex min-h-screen w-full overflow-hidden",children:[g.jsx(RP,{}),g.jsxs(TS,{className:ue("flex-1 min-w-0 transition-all duration-300 ease-in-out",e&&"mr-96"),children:[g.jsxs("header",{className:"flex h-16 shrink-0 items-center gap-2 border-b border-content-border px-4 bg-background",children:[g.jsx(AS,{className:"-ml-1"}),g.jsxs("div",{className:"flex items-center justify-between flex-1",children:[g.jsx("h1",{className:"text-lg font-semibold",children:d||"Coconut"}),g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx(vt,{onClick:j,size:"icon",className:"h-8 w-8 rounded-full",children:g.jsx(dp,{className:"h-4 w-4"})}),L&&N&&g.jsxs(JB,{children:[g.jsx(eU,{asChild:!0,children:g.jsx(vt,{size:"icon",variant:"outline",className:"h-8 w-8 rounded-full",children:g.jsx(xj,{className:"h-4 w-4"})})}),g.jsxs(w2,{align:"end",children:[g.jsx(E2,{children:g.jsxs("div",{className:"flex flex-col space-y-1",children:[g.jsx("p",{className:"text-sm font-medium leading-none",children:N.name}),g.jsx("p",{className:"text-xs leading-none text-muted-foreground",children:N.email})]})}),g.jsx(C2,{}),g.jsxs(S2,{onClick:H,children:[g.jsx(OM,{className:"mr-2 h-4 w-4"}),"Logout"]})]})]})]})]})]}),g.jsx("main",{className:"flex flex-1 flex-col gap-4 p-4 overflow-auto bg-content-background",children:g.jsx(nw,{})})]}),g.jsx(M8,{isOpen:e,onToggle:j,contextInfo:$(),discussDocument:m,onDiscussDocumentHandled:()=>y(null),pendingPrompt:w,onPendingPromptHandled:()=>b(null),openInFullScreen:S,onFullScreenHandled:()=>E(!1)})]})})}const oU=[{title:"Coconut Profile",href:"/settings/user",icon:mj,description:"Manage the Coconut's profile information."},{title:"User Preferences",href:"/settings/preferences",icon:aj,description:"Configure individual workspace preferences"},{title:"Authentication",href:"/settings/authentication",icon:nj,description:"Configure authentication and user access"},{title:"API Keys",href:"/settings/api-keys",icon:MM,description:"Manage API keys for programmatic access"},{title:"Symlinks",href:"/settings/rules",icon:uc,description:"Manage symlinks for easy access to project rules and configurations"},{title:"AI & LLM",href:"/settings/integrations",icon:GM,description:"Connect Coconut to LLM providers and automation hooks"},{title:"Git",href:"/settings/git",icon:Xw,description:"Configure repository defaults like worktree paths"},{title:"MCP",href:"/settings/mcp",icon:UM,description:"Model Context Protocol configuration and settings"}];function lU(){const e=Wn();return g.jsxs("div",{className:"flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0",children:[g.jsx("aside",{className:"lg:w-1/5",children:g.jsx("nav",{className:"flex overflow-x-auto pb-2 gap-1 lg:flex-col lg:gap-0 lg:space-y-1 lg:overflow-visible lg:pb-0",children:oU.map(n=>g.jsxs(Sr,{to:n.href,className:ue("inline-flex items-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 hover:text-accent-foreground h-9 px-2 sm:px-3 lg:px-4 py-2 hover:bg-accent justify-start flex-shrink-0",e.pathname===n.href?"bg-accent text-accent-foreground":"text-muted-foreground"),children:[g.jsx(n.icon,{className:"h-4 w-4 lg:mr-2"}),g.jsx("span",{className:"hidden lg:inline",children:n.title})]},n.href))})}),g.jsx("div",{className:"flex-1 lg:max-w-2xl",children:g.jsx("div",{className:"space-y-6",children:g.jsx(nw,{})})})]})}const sU=v.lazy(()=>Ie(()=>import("./DashboardPage-Cv2-duAx.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]))),uU=v.lazy(()=>Ie(()=>import("./LoginPage-DqbNxfY6.js"),__vite__mapDeps([18,3,1,19]))),cU=v.lazy(()=>Ie(()=>import("./CallbackPage-Ck0dddEW.js"),__vite__mapDeps([20,8,21]))),fU=v.lazy(()=>Ie(()=>import("./ProposalsPage-CUB_aLXW.js"),__vite__mapDeps([22,1,2,17,10]))),dU=v.lazy(()=>Ie(()=>import("./ProposalDetailPage-CHR1MmwC.js"),__vite__mapDeps([23,24,1,2,3,25,26,27,12,15]))),hU=v.lazy(()=>Ie(()=>import("./ProposalEditPage-CkcZqgax.js"),__vite__mapDeps([28,3,1,29,30,31,32,17,33,2,25])).then(e=>({default:e.ProposalEditPage}))),pU=v.lazy(()=>Ie(()=>import("./NewProposalPage-DrU0ihJX.js"),__vite__mapDeps([34,1,3,29,30,31,32,17,33,2,25])).then(e=>({default:e.NewProposalPage}))),mU=v.lazy(()=>Ie(()=>import("./TerminalPage-DtVDWX7G.js"),__vite__mapDeps([35,1,4,5,6,7,36,37,14,38,39]))),gU=v.lazy(()=>Ie(()=>import("./TerminalSessionPage-BUHzje8A.js"),__vite__mapDeps([40,1,2,41,31,3,4,6,7,42,43,36,14,17,11,39]))),yU=v.lazy(()=>Ie(()=>import("./UtilitiesPage-CRqQYVsb.js"),__vite__mapDeps([44,1,4,38,14]))),vU=v.lazy(()=>Ie(()=>import("./CodePage-b3JR4eWW.js"),__vite__mapDeps([45,1,2,4,5,6,7,43,36,37,14]))),xU=v.lazy(()=>Ie(()=>import("./AgentsPage-NdB5OB1C.js"),__vite__mapDeps([46,1,2,24,47,48,10,17,49]))),bU=v.lazy(()=>Ie(()=>import("./AgentDetailPage-D6yg4CtT.js"),__vite__mapDeps([50,1,2,25]))),wU=v.lazy(()=>Ie(()=>import("./NewAgentPage-UEVIYkt3.js"),__vite__mapDeps([51,1,3,2,24,25,26]))),SU=v.lazy(()=>Ie(()=>import("./AgentEditPage-CTnjxjX7.js"),__vite__mapDeps([52,1,3,2,24,25,26]))),EU=v.lazy(()=>Ie(()=>import("./ResourcesPage-DzjwPoyS.js"),__vite__mapDeps([53,1,3,2,24,48,27,9,12,49,17,10]))),CU=v.lazy(()=>Ie(()=>import("./KnowledgePage-C_UDfD9X.js"),__vite__mapDeps([54,1,2,24,47,48,10,17,55,42]))),kU=v.lazy(()=>Ie(()=>import("./KnowledgeDetailPage-Dzy2V7yT.js"),__vite__mapDeps([56,1,2,24,25,12,49]))),AU=v.lazy(()=>Ie(()=>import("./KnowledgeEditPage-av1ALt0h.js"),__vite__mapDeps([57,1,3,29,30,33,2,58,17,25]))),TU=v.lazy(()=>Ie(()=>import("./NewKnowledgePage-CzYXdoDb.js"),__vite__mapDeps([59,1,3,29,30,33,2,58,17,25]))),RU=v.lazy(()=>Ie(()=>import("./ProjectPage-BQNa0qA-.js"),__vite__mapDeps([60,1,2,24]))),NU=v.lazy(()=>Ie(()=>import("./ProjectEditPage-j4KporiC.js"),__vite__mapDeps([61,1,3,29,30,25,16]))),_U=v.lazy(()=>Ie(()=>import("./ArchitecturePage-36wO0UD7.js"),__vite__mapDeps([62,1,24]))),MU=v.lazy(()=>Ie(()=>import("./ArchitectureEditPage-Bw2d_hmk.js"),__vite__mapDeps([63,1,3,29,30,25,16]))),jU=v.lazy(()=>Ie(()=>import("./RolePage-BOI2T8QG.js"),__vite__mapDeps([64,1,24]))),DU=v.lazy(()=>Ie(()=>import("./RoleEditPage-DhVneoNR.js"),__vite__mapDeps([65,1,29,30,25,16]))),OU=v.lazy(()=>Ie(()=>import("./IdentityPage-BsZnszF-.js"),__vite__mapDeps([66,1,3,2,67,19,11,68,17,26]))),q0=v.lazy(()=>Ie(()=>import("./UserSettingsPage-Dz-R1ijS.js"),__vite__mapDeps([69,1,3,26]))),PU=v.lazy(()=>Ie(()=>import("./AuthSettingsPage-CKifiWsx.js"),__vite__mapDeps([70,1,3,71,2,72]))),LU=v.lazy(()=>Ie(()=>import("./ApiKeysSettingsPage-Jl6vvVmW.js"),__vite__mapDeps([73,1,3,2,67,17,72]))),zU=v.lazy(()=>Ie(()=>import("./AgentsSettingsPage-CYXp908g.js"),__vite__mapDeps([74,1,3,2,17,75,14,11]))),IU=v.lazy(()=>Ie(()=>import("./IntegrationsSettingsPage-C1dC_vVy.js"),__vite__mapDeps([76,1,3]))),BU=v.lazy(()=>Ie(()=>import("./GitSettingsPage-CKIWkAnw.js"),__vite__mapDeps([77,1,3,41,36,8,21]))),UU=v.lazy(()=>Ie(()=>import("./McpSettingsPage-BqbErEWS.js"),__vite__mapDeps([78,1,3,2,71,67,47,48,10,72,17,16]))),HU=v.lazy(()=>Ie(()=>import("./PromptsSettingsPage-sYphs8Dn.js"),__vite__mapDeps([79,1,3,2,17,68,27]))),FU=v.lazy(()=>Ie(()=>import("./RulesSettingsPage-VsteFA-j.js"),__vite__mapDeps([80,1,3,2,17]))),VU=v.lazy(()=>Ie(()=>import("./GitPage-BgCxzm-C.js"),__vite__mapDeps([81,1,3,19,8,21,42,55,36,72,13]))),qU=v.lazy(()=>Ie(()=>import("./SchedulePage-_v4YfdHo.js"),__vite__mapDeps([82,1,2,3,71,19,36,17,14,75,15]))),$U=v.lazy(()=>Ie(()=>import("./JobDetailPage-BgGQJkND.js"),__vite__mapDeps([83,24,1,2,25,14,26,36,75,15,12]))),GU=v.lazy(()=>Ie(()=>import("./UserPreferencesPage-CkXJuogz.js"),__vite__mapDeps([84,1,3]))),YU=v.lazy(()=>Ie(()=>import("./ActivityPage-BYrDJlH6.js"),__vite__mapDeps([85,1,2,36])));function KU(){return g.jsxs(GN,{children:[g.jsx(iN,{children:g.jsx(v.Suspense,{fallback:g.jsx(sD,{}),children:g.jsxs(PR,{children:[g.jsx(Oe,{path:"/login",element:g.jsx(uU,{})}),g.jsx(Oe,{path:"/auth/github/callback",element:g.jsx(cU,{})}),g.jsxs(Oe,{path:"/",element:g.jsx(lD,{children:g.jsx(iU,{})}),children:[g.jsx(Oe,{index:!0,element:g.jsx(sU,{})}),g.jsx(Oe,{path:"proposals",element:g.jsx(fU,{})}),g.jsx(Oe,{path:"proposals/new",element:g.jsx(pU,{})}),g.jsx(Oe,{path:"proposals/:id",element:g.jsx(dU,{})}),g.jsx(Oe,{path:"proposals/:id/edit",element:g.jsx(hU,{})}),g.jsx(Oe,{path:"code",element:g.jsx(vU,{})}),g.jsx(Oe,{path:"utilities",element:g.jsx(yU,{})}),g.jsx(Oe,{path:"terminal",element:g.jsx(mU,{})}),g.jsx(Oe,{path:"terminal/:proposalId",element:g.jsx(gU,{})}),g.jsx(Oe,{path:"git",element:g.jsx(VU,{})}),g.jsx(Oe,{path:"schedule",element:g.jsx(qU,{})}),g.jsx(Oe,{path:"schedule/:id",element:g.jsx($U,{})}),g.jsx(Oe,{path:"identity",element:g.jsx(OU,{})}),g.jsx(Oe,{path:"agents",element:g.jsx(xU,{})}),g.jsx(Oe,{path:"agents/new",element:g.jsx(wU,{})}),g.jsx(Oe,{path:"agents/:id",element:g.jsx(bU,{})}),g.jsx(Oe,{path:"agents/:id/edit",element:g.jsx(SU,{})}),g.jsx(Oe,{path:"activity",element:g.jsx(YU,{})}),g.jsx(Oe,{path:"resources",element:g.jsx(EU,{})}),g.jsx(Oe,{path:"context/project",element:g.jsx(RU,{})}),g.jsx(Oe,{path:"context/project/edit",element:g.jsx(NU,{})}),g.jsx(Oe,{path:"context/architecture",element:g.jsx(_U,{})}),g.jsx(Oe,{path:"context/architecture/edit",element:g.jsx(MU,{})}),g.jsx(Oe,{path:"context/role",element:g.jsx(jU,{})}),g.jsx(Oe,{path:"context/role/edit",element:g.jsx(DU,{})}),g.jsx(Oe,{path:"context/knowledge",element:g.jsx(CU,{})}),g.jsx(Oe,{path:"context/knowledge/new",element:g.jsx(TU,{})}),g.jsx(Oe,{path:"context/knowledge/:filename",element:g.jsx(kU,{})}),g.jsx(Oe,{path:"context/knowledge/:filename/edit",element:g.jsx(AU,{})}),g.jsxs(Oe,{path:"settings",element:g.jsx(lU,{}),children:[g.jsx(Oe,{index:!0,element:g.jsx(q0,{})}),g.jsx(Oe,{path:"user",element:g.jsx(q0,{})}),g.jsx(Oe,{path:"preferences",element:g.jsx(GU,{})}),g.jsx(Oe,{path:"authentication",element:g.jsx(PU,{})}),g.jsx(Oe,{path:"api-keys",element:g.jsx(LU,{})}),g.jsx(Oe,{path:"agents",element:g.jsx(zU,{})}),g.jsx(Oe,{path:"integrations",element:g.jsx(IU,{})}),g.jsx(Oe,{path:"git",element:g.jsx(BU,{})}),g.jsx(Oe,{path:"mcp",element:g.jsx(UU,{})}),g.jsx(Oe,{path:"prompts",element:g.jsx(HU,{})}),g.jsx(Oe,{path:"rules",element:g.jsx(FU,{})})]})]})]})})}),g.jsx(oD,{})]})}UT.createRoot(document.getElementById("root")).render(g.jsx(v.StrictMode,{children:g.jsx(KU,{})}));export{XC as $,Et as A,vt as B,nM as C,Zc as D,pM as E,uc as F,Xw as G,yw as H,d1 as I,cc as J,iH as K,Sr as L,IM as M,lp as N,QU as O,aM as P,XU as Q,lj as R,Jl as S,fj as T,W9 as U,J9 as V,hj as W,so as X,$C as Y,GC as Z,KC as _,ZN as a,OL as a$,YC as a0,ZC as a1,QC as a2,xs as a3,xj as a4,aH as a5,gE as a6,m1 as a7,KM as a8,iD as a9,B9 as aA,N9 as aB,wM as aC,tf as aD,Cc as aE,uH as aF,sH as aG,Hm as aH,Ym as aI,Pm as aJ,zp as aK,z5 as aL,xL as aM,oH as aN,lL as aO,EL as aP,dL as aQ,SL as aR,Mp as aS,Lm as aT,CE as aU,Zl as aV,u6 as aW,Z3 as aX,$5 as aY,WE as aZ,lH as a_,JB as aa,eU as ab,w2 as ac,E2 as ad,C2 as ae,S2 as af,JU as ag,oc as ah,WM as ai,rU as aj,wj as ak,qN as al,Oc as am,cM as an,_a as ao,Jn as ap,_c as aq,me as ar,_e as as,ze as at,Yc as au,Ep as av,aS as aw,MS as ax,xb as ay,g6 as az,ds as b,Uh as b0,Aa as b1,rn as b2,_0 as b3,ZU as b4,UM as b5,eo as b6,MM as b7,Dc as b8,kr as b9,Ek as ba,F8 as bb,V8 as bc,un as bd,oM as be,b8 as bf,WU as bg,W_ as bh,kM as bi,Y_ as bj,je as c,hs as d,ue as e,ps as f,zl as g,Gb as h,Np as i,g as j,Yb as k,_p as l,li as m,dp as n,nj as o,Ul as p,sM as q,v as r,ej as s,Kw as t,rs as u,Yw as v,wk as w,zh as x,Q_ as y,Wn as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,j as s,as as i,e as n,b8 as d}from"./index-
|
|
1
|
+
import{r,j as s,as as i,e as n,b8 as d}from"./index-CCs6x1Au.js";var c="Label",o=r.forwardRef((e,t)=>s.jsx(i.label,{...e,ref:t,onMouseDown:a=>{a.target.closest("button, input, select, textarea")||(e.onMouseDown?.(a),!a.defaultPrevented&&a.detail>1&&a.preventDefault())}}));o.displayName=c;var l=o;const f=d("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),m=r.forwardRef(({className:e,...t},a)=>s.jsx(l,{ref:a,className:n(f(),e),...t}));m.displayName=l.displayName;export{m as L};
|