nodal-agents 0.7.0 → 0.7.2

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.
Files changed (165) hide show
  1. package/cli.js +335 -35
  2. package/migrations/0054_audit2_db_integrity.sql +52 -0
  3. package/migrations/0055_entity_settings.sql +22 -0
  4. package/migrations/0056_agents_skills_entity_scoped_unique.sql +23 -0
  5. package/migrations/0057_telegram_allowed_chats.sql +34 -0
  6. package/migrations/meta/_journal.json +28 -0
  7. package/package.json +1 -1
  8. package/runner.js +47123 -35332
  9. package/web/.next/BUILD_ID +1 -1
  10. package/web/.next/app-path-routes-manifest.json +4 -4
  11. package/web/.next/build-manifest.json +2 -2
  12. package/web/.next/prerender-manifest.json +3 -3
  13. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page.js +3 -3
  14. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page.js.nft.json +1 -1
  15. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page_client-reference-manifest.js +1 -1
  16. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page.js +2 -2
  17. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page.js.nft.json +1 -1
  18. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page_client-reference-manifest.js +1 -1
  19. package/web/.next/server/app/(dashboard)/agents/page.js +2 -2
  20. package/web/.next/server/app/(dashboard)/agents/page.js.nft.json +1 -1
  21. package/web/.next/server/app/(dashboard)/agents/page_client-reference-manifest.js +1 -1
  22. package/web/.next/server/app/(dashboard)/approvals/page.js +2 -2
  23. package/web/.next/server/app/(dashboard)/approvals/page.js.nft.json +1 -1
  24. package/web/.next/server/app/(dashboard)/approvals/page_client-reference-manifest.js +1 -1
  25. package/web/.next/server/app/(dashboard)/automations/page.js +2 -2
  26. package/web/.next/server/app/(dashboard)/automations/page.js.nft.json +1 -1
  27. package/web/.next/server/app/(dashboard)/automations/page_client-reference-manifest.js +1 -1
  28. package/web/.next/server/app/(dashboard)/chat/page.js +2 -2
  29. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  30. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  31. package/web/.next/server/app/(dashboard)/connectors/page.js +1 -1
  32. package/web/.next/server/app/(dashboard)/connectors/page.js.nft.json +1 -1
  33. package/web/.next/server/app/(dashboard)/connectors/page_client-reference-manifest.js +1 -1
  34. package/web/.next/server/app/(dashboard)/credentials/page.js +1 -1
  35. package/web/.next/server/app/(dashboard)/credentials/page.js.nft.json +1 -1
  36. package/web/.next/server/app/(dashboard)/credentials/page_client-reference-manifest.js +1 -1
  37. package/web/.next/server/app/(dashboard)/jobs/[id]/page.js +2 -2
  38. package/web/.next/server/app/(dashboard)/jobs/[id]/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(dashboard)/jobs/[id]/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/(dashboard)/jobs/page.js +2 -2
  41. package/web/.next/server/app/(dashboard)/jobs/page.js.nft.json +1 -1
  42. package/web/.next/server/app/(dashboard)/jobs/page_client-reference-manifest.js +1 -1
  43. package/web/.next/server/app/(dashboard)/learned-skills/page.js +2 -2
  44. package/web/.next/server/app/(dashboard)/learned-skills/page.js.nft.json +1 -1
  45. package/web/.next/server/app/(dashboard)/learned-skills/page_client-reference-manifest.js +1 -1
  46. package/web/.next/server/app/(dashboard)/llm-providers/page.js +1 -1
  47. package/web/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
  48. package/web/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/(dashboard)/logs/page.js +2 -2
  50. package/web/.next/server/app/(dashboard)/logs/page.js.nft.json +1 -1
  51. package/web/.next/server/app/(dashboard)/logs/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/(dashboard)/mcp/page.js +2 -2
  53. package/web/.next/server/app/(dashboard)/mcp/page.js.nft.json +1 -1
  54. package/web/.next/server/app/(dashboard)/mcp/page_client-reference-manifest.js +1 -1
  55. package/web/.next/server/app/(dashboard)/memories/page.js +2 -2
  56. package/web/.next/server/app/(dashboard)/memories/page.js.nft.json +1 -1
  57. package/web/.next/server/app/(dashboard)/memories/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/app/(dashboard)/page.js +2 -2
  59. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  60. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  61. package/web/.next/server/app/(dashboard)/settings/page.js +2 -2
  62. package/web/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  63. package/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/(dashboard)/settings/root-context/page.js +2 -2
  65. package/web/.next/server/app/(dashboard)/settings/root-context/page.js.nft.json +1 -1
  66. package/web/.next/server/app/(dashboard)/settings/root-context/page_client-reference-manifest.js +1 -1
  67. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page.js +2 -2
  68. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page.js.nft.json +1 -1
  69. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page_client-reference-manifest.js +1 -1
  70. package/web/.next/server/app/(dashboard)/skills/new/page.js +2 -2
  71. package/web/.next/server/app/(dashboard)/skills/new/page.js.nft.json +1 -1
  72. package/web/.next/server/app/(dashboard)/skills/new/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/app/(dashboard)/skills/page.js +2 -2
  74. package/web/.next/server/app/(dashboard)/skills/page.js.nft.json +1 -1
  75. package/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
  76. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  77. package/web/.next/server/app/_global-error.html +1 -1
  78. package/web/.next/server/app/_global-error.rsc +2 -2
  79. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  80. package/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  81. package/web/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  82. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  83. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +2 -2
  84. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  85. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  86. package/web/.next/server/app/_not-found.html +1 -1
  87. package/web/.next/server/app/_not-found.rsc +3 -3
  88. package/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  89. package/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  90. package/web/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  91. package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  92. package/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  93. package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  94. package/web/.next/server/app/api/auth/[...all]/route.js +1 -1
  95. package/web/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -1
  96. package/web/.next/server/app/api/oauth/[provider]/callback/route.js +1 -1
  97. package/web/.next/server/app/api/oauth/[provider]/callback/route.js.nft.json +1 -1
  98. package/web/.next/server/app/api/oauth/[provider]/start/route.js +1 -1
  99. package/web/.next/server/app/api/oauth/[provider]/start/route.js.nft.json +1 -1
  100. package/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
  101. package/web/.next/server/app/onboarding/page.js +205 -185
  102. package/web/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  103. package/web/.next/server/app-paths-manifest.json +4 -4
  104. package/web/.next/server/chunks/2713.js +47 -27
  105. package/web/.next/server/chunks/3223.js +1 -1
  106. package/web/.next/server/chunks/4574.js +1 -1
  107. package/web/.next/server/chunks/5515.js +1 -0
  108. package/web/.next/server/chunks/6468.js +1 -0
  109. package/web/.next/server/chunks/8410.js +1 -0
  110. package/web/.next/server/chunks/{4488.js → 8810.js} +2 -2
  111. package/web/.next/server/chunks/{3154.js → 960.js} +10 -10
  112. package/web/.next/server/middleware-build-manifest.js +1 -1
  113. package/web/.next/server/pages/404.html +1 -1
  114. package/web/.next/server/pages/500.html +1 -1
  115. package/web/.next/server/server-reference-manifest.js +1 -1
  116. package/web/.next/server/server-reference-manifest.json +1 -1
  117. package/web/.next/static/chunks/4964-c6711d3d479b6085.js +1 -0
  118. package/web/.next/static/chunks/{9836-6830cb9d49ad261f.js → 9836-177f6ca2f15ff703.js} +1 -1
  119. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-cfce874f4acede5e.js +6 -0
  120. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/telegram/page-9249c2839f551ba1.js +1 -0
  121. package/web/.next/static/chunks/app/(dashboard)/agents/page-7d784d737acedccf.js +1 -0
  122. package/web/.next/static/chunks/app/(dashboard)/approvals/{page-9a01cb723a6ccff0.js → page-b3a838ecbc94a030.js} +1 -1
  123. package/web/.next/static/chunks/app/(dashboard)/automations/page-b1b548de4f52696c.js +1 -0
  124. package/web/.next/static/chunks/app/(dashboard)/chat/{page-a6cc7a58986c0340.js → page-bcf6dcc73b370eb0.js} +1 -1
  125. package/web/.next/static/chunks/app/(dashboard)/connectors/{page-21d6c042800c8cd3.js → page-2c6f913cc6aea4b7.js} +1 -1
  126. package/web/.next/static/chunks/app/(dashboard)/jobs/[id]/page-43f033251eddcc4b.js +1 -0
  127. package/web/.next/static/chunks/app/(dashboard)/jobs/page-1f892f950bb30403.js +1 -0
  128. package/web/.next/static/chunks/app/(dashboard)/layout-e184673151ff8a05.js +1 -0
  129. package/web/.next/static/chunks/app/(dashboard)/learned-skills/page-f873bb6f8539e47e.js +1 -0
  130. package/web/.next/static/chunks/app/(dashboard)/llm-providers/page-64adda30176f4ccb.js +1 -0
  131. package/web/.next/static/chunks/app/(dashboard)/logs/page-79cfd9141c39d8ef.js +1 -0
  132. package/web/.next/static/chunks/app/(dashboard)/mcp/page-d276d7bab25286a1.js +1 -0
  133. package/web/.next/static/chunks/app/(dashboard)/memories/page-c66720494a340503.js +1 -0
  134. package/web/.next/static/chunks/app/(dashboard)/page-3649204dd27a0ad0.js +1 -0
  135. package/web/.next/static/chunks/app/(dashboard)/settings/page-1cab404d2eccfd80.js +1 -0
  136. package/web/.next/static/chunks/app/(dashboard)/settings/root-context/page-b5898c5444f88c9a.js +1 -0
  137. package/web/.next/static/chunks/app/(dashboard)/skills/[id]/edit/page-82d91fc6b6acc161.js +1 -0
  138. package/web/.next/static/chunks/app/(dashboard)/skills/new/page-58b5ed04583ca7d4.js +1 -0
  139. package/web/.next/static/chunks/app/(dashboard)/skills/page-312bd4ae8ddc8114.js +1 -0
  140. package/web/.next/static/chunks/app/onboarding/{page-a4116e2f430eaff8.js → page-f2f04878e81fdf23.js} +2 -2
  141. package/web/.next/static/css/{eff119dd24f92093.css → 4d808b91d7b58fce.css} +1 -1
  142. package/web/.next/server/chunks/4626.js +0 -1
  143. package/web/.next/server/chunks/8971.js +0 -1
  144. package/web/.next/server/chunks/9043.js +0 -1
  145. package/web/.next/static/chunks/4964-08171c654e41b0a4.js +0 -1
  146. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-fa5717f0d0450659.js +0 -6
  147. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/telegram/page-73012222871598aa.js +0 -1
  148. package/web/.next/static/chunks/app/(dashboard)/agents/page-7e9616b28c098e9e.js +0 -1
  149. package/web/.next/static/chunks/app/(dashboard)/automations/page-85c985cd687406ed.js +0 -1
  150. package/web/.next/static/chunks/app/(dashboard)/jobs/[id]/page-f6b993a88c70a2fe.js +0 -1
  151. package/web/.next/static/chunks/app/(dashboard)/jobs/page-d0d6b9db1b68451f.js +0 -1
  152. package/web/.next/static/chunks/app/(dashboard)/layout-d2ac2646967496bb.js +0 -1
  153. package/web/.next/static/chunks/app/(dashboard)/learned-skills/page-ec6312f6dfd7ee23.js +0 -1
  154. package/web/.next/static/chunks/app/(dashboard)/llm-providers/page-1fb26463eddf509c.js +0 -1
  155. package/web/.next/static/chunks/app/(dashboard)/logs/page-0bca733315e8a208.js +0 -1
  156. package/web/.next/static/chunks/app/(dashboard)/mcp/page-ff56ecf2f65f5466.js +0 -1
  157. package/web/.next/static/chunks/app/(dashboard)/memories/page-fe4d9438c93750d6.js +0 -1
  158. package/web/.next/static/chunks/app/(dashboard)/page-9402fe2931216f4b.js +0 -1
  159. package/web/.next/static/chunks/app/(dashboard)/settings/page-995662f10ebff365.js +0 -1
  160. package/web/.next/static/chunks/app/(dashboard)/settings/root-context/page-785b6ce3e4c5890b.js +0 -1
  161. package/web/.next/static/chunks/app/(dashboard)/skills/[id]/edit/page-2106201c4df8b5a4.js +0 -1
  162. package/web/.next/static/chunks/app/(dashboard)/skills/new/page-0135bcb86ab60dc2.js +0 -1
  163. package/web/.next/static/chunks/app/(dashboard)/skills/page-54e939d40c8b5b6d.js +0 -1
  164. /package/web/.next/static/{KFac7DQ7gdp9XPQ2bnb-2 → SgnP_MouhUmw0bBf-lUmD}/_buildManifest.js +0 -0
  165. /package/web/.next/static/{KFac7DQ7gdp9XPQ2bnb-2 → SgnP_MouhUmw0bBf-lUmD}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9305],{11248:(e,t,n)=>{"use strict";n.d(t,{default:()=>l});var r=n(3680),s=n(78604),i=n(32895),a=n(97713);function l(){let[e,t]=(0,s.useState)("light"),[n,l]=(0,s.useState)(!1);(0,s.useEffect)(()=>{t("u"<typeof document?"light":"dark"===document.documentElement.getAttribute("data-theme")?"dark":"light"),l(!0)},[]);let o="dark"===e?i.b:a.A,d="dark"===e?"Switch to light theme":"Switch to dark theme";return(0,r.jsx)("button",{type:"button",onClick:()=>{let n="dark"===e?"light":"dark";document.documentElement.setAttribute("data-theme",n);try{localStorage.setItem("nodal.theme",n)}catch{}t(n)},"aria-label":d,title:d,className:"flex h-[34px] w-[34px] items-center justify-center rounded-md border border-rule-2 bg-paper text-ink-2 transition-colors hover:text-ink",suppressHydrationWarning:!0,children:n?(0,r.jsx)(o,{size:15}):(0,r.jsx)(a.A,{size:15})})}},13260:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(3680),s=n(78604),i=n(51869);function a({open:e,onClose:t,title:n,children:l,className:o=""}){let[d,c]=(0,s.useState)(!1);return((0,s.useEffect)(()=>{c(!0)},[]),(0,s.useEffect)(()=>{if(!e)return;function n(e){"Escape"===e.key&&t()}window.addEventListener("keydown",n);let r=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",n),document.body.style.overflow=r}},[e,t]),e&&d)?(0,i.createPortal)((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"fixed inset-0 z-40 bg-black/60 animate-[fadeIn_150ms_ease]",onClick:t,"aria-hidden":"true"}),(0,r.jsx)("div",{role:"dialog","aria-modal":"true",className:"fixed inset-0 z-50 flex items-center justify-center p-4 pointer-events-none",children:(0,r.jsxs)("div",{className:`pointer-events-auto w-full max-w-lg max-h-[90vh] overflow-y-auto bg-paper border border-rule-2 rounded-xl shadow-2xl animate-[scaleIn_150ms_ease] ${o}`,children:[void 0!==n&&(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2 px-6 pt-5 pb-4 border-b border-rule-2",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-ink",children:n}),(0,r.jsx)("button",{type:"button",onClick:t,"aria-label":"Close",className:"text-ink-3 hover:text-ink transition-colors",children:"✕"})]}),(0,r.jsx)("div",{className:"p-6 pt-5",children:l})]})})]}),document.body):null}},17345:(e,t,n)=>{"use strict";n.d(t,{default:()=>a});var r=n(3680),s=n(78604),i=n(50472);function a(){let[e,t]=(0,s.useState)(!1);async function n(){t(!0);try{let e=await fetch("/api/auth/sign-out",{method:"POST",headers:{"Content-Type":"application/json"},body:"{}",credentials:"same-origin"});e.ok||console.error("sign-out failed",e.status,await e.text().catch(()=>""))}catch(e){console.error("sign-out network error",e)}window.location.replace("/login")}return(0,r.jsx)("button",{type:"button",onClick:n,disabled:e,"data-testid":"user-menu-sign-out","aria-label":"Sign out",title:"Sign out",className:"inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-lg text-ink-3 transition-colors hover:bg-hover hover:text-ink disabled:cursor-not-allowed disabled:opacity-40 lg:h-8 lg:w-8 lg:rounded-md",children:(0,r.jsx)(i.M,{size:15,className:"h-[18px] w-[18px] lg:h-[15px] lg:w-[15px]"})})}},21485:(e,t,n)=>{Promise.resolve().then(n.bind(n,39186)),Promise.resolve().then(n.bind(n,49040)),Promise.resolve().then(n.bind(n,17345)),Promise.resolve().then(n.bind(n,76556))},39186:(e,t,n)=>{"use strict";n.d(t,{ApprovalsProvider:()=>o,e:()=>c});var r=n(3680),s=n(78604),i=n(64678);let a=(0,i.createServerReference)("4091a56ae49f9692f037a27b1733ac3e62709ec8ea",i.callServer,void 0,i.findSourceMapURL,"listApprovalsAction"),l=(0,s.createContext)(null);function o({initial:e,children:t}){let[n,i]=(0,s.useState)(e),d=(0,s.useCallback)(async()=>{let e=await a({status:"pending"});e.ok&&i(e.data.map(e=>({id:e.id,jobId:e.jobId,toolName:e.toolName,agentName:e.agentName,toolInput:e.toolInput,requestedAt:e.requestedAt})))},[]);(0,s.useEffect)(()=>{let e=setInterval(()=>{document.hidden||d()},15e3);function t(){document.hidden||d()}return document.addEventListener("visibilitychange",t),()=>{clearInterval(e),document.removeEventListener("visibilitychange",t)}},[d]);let c=(0,s.useCallback)(()=>{d()},[d]);return(0,r.jsx)(l.Provider,{value:{pending:n,refresh:c},children:t})}let d={pending:[],refresh:()=>{}};function c(){let e=(0,s.useContext)(l);return e||(console.warn("[useApprovals] called outside <ApprovalsProvider> — returning empty state."),d)}},44496:(e,t,n)=>{"use strict";n.d(t,{W:()=>s});var r=n(64678);let s=(0,r.createServerReference)("40a4aa24576354b17648a91aa1f592381a155e25d3",r.callServer,void 0,r.findSourceMapURL,"switchWorkspaceAction")},47663:(e,t,n)=>{"use strict";n.d(t,{C:()=>s});var r=n(64678);let s=(0,r.createServerReference)("406589af82ec340355335d69e976a33b4a5205acdc",r.callServer,void 0,r.findSourceMapURL,"resolveApprovalAction")},49040:(e,t,n)=>{"use strict";n.d(t,{default:()=>ee});var r=n(3680),s=n(78604),i=n(27540),a=n(71877),l=n(60352),o=n(38492),d=n(27245),c=n(30342),x=n(62089),u=n(99378),p=n(37696),m=n(53054),h=n(58518),f=n(34484),g=n(34453),b=n(24792),v=n(37036),k=n(76613),j=n(54805),N=n(37223),w=n(84976);function y(){return(0,r.jsx)("div",{className:"px-4 pb-3.5",children:(0,r.jsxs)("div",{className:"flex items-center gap-2 text-[16px] font-medium leading-none tracking-[-0.005em] text-ink",children:[(0,r.jsx)("span",{className:"flex h-[22px] w-[22px] items-center justify-center rounded-md bg-ink text-[12px] font-semibold leading-none tracking-[0.04em] text-canvas font-mono",children:"N"}),(0,r.jsx)("span",{children:"Nodal-Agents"})]})})}function C({children:e}){return(0,r.jsx)("div",{className:"px-[22px] pt-4 pb-1.5 font-mono text-[11px] uppercase tracking-[0.14em] text-ink-4 lg:pt-3.5 lg:pb-1 lg:text-[11px]",children:e})}var S=n(63363),A=n.n(S);let E={agent:"bg-agent-vivid",skill:"bg-skill-vivid",conn:"bg-conn-vivid"};function _({href:e,label:t,icon:n,dot:s,count:a,pill:l,isActive:o}){let d=(0,i.usePathname)(),c=o??(d===e||d.startsWith(e+"/"));return(0,r.jsxs)(A(),{href:e,className:`group mx-3 flex h-12 items-center gap-3 rounded-xl px-3 text-[16px] transition-colors lg:h-[30px] lg:gap-2.5 lg:rounded-lg lg:px-3 lg:text-[13px] lg:leading-none ${c?"bg-paper text-ink font-medium shadow-[0_1px_2px_rgba(0,0,0,0.04)]":"text-ink-2 hover:bg-hover"}`,children:[s?(0,r.jsxs)("span",{className:"relative flex h-5 w-5 shrink-0 items-center justify-center lg:h-3.5 lg:w-3.5",children:[(0,r.jsx)("span",{className:`lg:hidden ${c?"text-ink":"text-ink-3 group-hover:text-ink-2"}`,children:n}),(0,r.jsx)("span",{className:`absolute -top-0.5 -right-0.5 h-2.5 w-2.5 rounded-full ring-2 ring-sidebar lg:static lg:h-2 lg:w-2 lg:ring-0 ${E[s]}`})]}):(0,r.jsx)("span",{className:`flex h-5 w-5 shrink-0 items-center justify-center lg:h-3.5 lg:w-3.5 ${c?"text-ink":"text-ink-3 group-hover:text-ink-2"}`,children:n}),(0,r.jsx)("span",{className:"flex-1 truncate",children:t}),void 0!==l?(0,r.jsx)("span",{className:"rounded-full bg-err/12 px-2 py-0.5 text-[13px] font-medium text-err lg:px-1.5 lg:py-0 lg:text-[11px]",children:l>99?"99+":l}):void 0!==a&&(0,r.jsx)("span",{className:"font-mono text-[13px] tracking-[0.02em] text-ink-4 lg:text-[11px]",children:a})]})}var R=n(82592);function L({runningAgents:e,throughput:t,fill:n=.36}){if(void 0===e)return null;let s=100*Math.max(0,Math.min(1,n));return(0,r.jsxs)("div",{className:"mx-3 mt-2.5 rounded-[10px] border border-rule-2 bg-paper px-3 pt-2.5 pb-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 font-mono text-[11px] uppercase leading-none tracking-[0.14em] text-ink-3",children:[(0,r.jsx)(R.A,{variant:"lime"}),"Live"]}),(0,r.jsxs)("div",{className:"mt-1.5 text-[13px] leading-[1.35] text-ink-2",children:[(0,r.jsxs)("b",{className:"font-semibold text-ink",children:[e," agents"]}),t?` running \xb7 ${t}`:" running"]}),(0,r.jsx)("div",{className:"mt-2.5 h-[3px] overflow-hidden rounded-[2px] bg-black/[0.06] dark:bg-white/[0.06]",children:(0,r.jsx)("i",{className:"block h-full bg-agent-vivid",style:{width:`${s}%`}})})]})}var $=n(39504),z=n(24437),M=n(40319),P=n(16690),I=n(13260),O=n(64678);let W=(0,O.createServerReference)("007e85d7da0aa058f0ae7672c8048e61b11ede1526",O.callServer,void 0,O.findSourceMapURL,"getVersionInfoAction"),U="nodal-agents update";function T(){let[e,t]=(0,s.useState)(null),[n,i]=(0,s.useState)(!1);if((0,s.useEffect)(()=>{let e=!0;return W().then(n=>{e&&n.ok&&t(n.data)}).catch(()=>{}),()=>{e=!1}},[]),!e?.current)return null;let{current:a,latest:l,updateAvailable:o}=e;async function d(){try{await navigator.clipboard.writeText(U),$.oR.success("Command copied")}catch{$.oR.error("Could not copy")}}return(0,r.jsxs)("div",{className:"mx-2 mt-1",children:[o?(0,r.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex w-full items-center gap-2 rounded-lg border border-agent-vivid/40 bg-agent-vivid/10 px-2.5 py-1.5 text-left transition-colors hover:bg-agent-vivid/20",children:[(0,r.jsx)(z.S,{size:14,weight:"bold",className:"shrink-0 text-ink-2"}),(0,r.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,r.jsx)("span",{className:"block text-[11.5px] font-medium leading-tight text-ink",children:"Update available"}),(0,r.jsxs)("span",{className:"block font-mono text-[10px] leading-tight text-ink-3",children:["v",a," → v",l]})]})]}):(0,r.jsxs)("div",{className:"flex items-center gap-1.5 px-2.5 py-1 text-ink-4",children:[(0,r.jsx)(M.r,{size:12,className:"shrink-0"}),(0,r.jsxs)("span",{className:"font-mono text-[10.5px]",children:["Nodal v",a]})]}),(0,r.jsx)(I.A,{open:n,onClose:()=>i(!1),title:"Update Nodal-Agents",children:(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("p",{className:"text-[13px] leading-relaxed text-ink-2",children:["A new version is available — ",(0,r.jsxs)("span",{className:"font-mono text-ink-3",children:["v",a]})," →"," ",(0,r.jsxs)("span",{className:"font-mono font-medium text-ink",children:["v",l]}),". Run this in your terminal, then restart Nodal-Agents:"]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-rule-2 bg-hover px-3 py-2.5",children:[(0,r.jsx)("code",{className:"flex-1 font-mono text-[13px] text-ink",children:U}),(0,r.jsxs)("button",{type:"button",onClick:d,className:"inline-flex h-[28px] shrink-0 items-center gap-1.5 rounded-md border border-rule-2 bg-paper px-2.5 text-[12px] font-medium text-ink-3 transition-colors hover:text-ink",children:[(0,r.jsx)(P.Q,{size:13})," Copy"]})]}),(0,r.jsxs)("p",{className:"text-[12px] leading-relaxed text-ink-4",children:["On macOS/Linux, prefix with ",(0,r.jsx)("span",{className:"font-mono",children:"sudo"})," if the global install needs elevated permissions."]})]})})]})}var q=n(49455),F=n(65816);function D({fleets:e,activeId:t,disabled:n,onChange:i,onNewWorkspace:a}){let[l,o]=(0,s.useState)(!1),d=(0,s.useRef)(null),c=e.find(e=>e.id===t)??e[0];return((0,s.useEffect)(()=>{if(!l)return;let e=e=>{d.current&&!d.current.contains(e.target)&&o(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[l]),c)?(0,r.jsxs)("div",{ref:d,className:"relative mx-3.5 mt-3.5 mb-1",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>!n&&o(e=>!e),"aria-haspopup":"listbox","aria-expanded":l,"aria-disabled":n||void 0,className:`flex h-12 w-full items-center gap-3 rounded-xl border border-rule-2 bg-paper px-3 text-[15px] leading-none text-ink lg:h-[38px] lg:gap-2.5 lg:rounded-[9px] lg:px-2.5 lg:text-[13px] ${n?"cursor-default":"cursor-pointer hover:bg-hover-2/40"}`,children:[(0,r.jsx)("span",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md font-mono text-[12px] font-semibold leading-none tracking-[0.04em] text-[#0a0a0a] lg:h-[22px] lg:w-[22px] lg:rounded-[5px] lg:text-[10.5px]",style:{background:c.color},children:c.icon??c.tag.slice(0,2)}),(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate text-left text-[15px] font-medium text-ink lg:text-[12.5px]",children:c.name}),!n&&(0,r.jsx)(q.a,{size:12,className:"h-4 w-4 shrink-0 text-ink-3 lg:h-3 lg:w-3"})]}),l&&!n&&(0,r.jsxs)("div",{role:"listbox",className:"absolute inset-x-0 top-[calc(100%+6px)] z-30 rounded-[9px] border border-rule-2 bg-paper p-1.5 shadow-[0_12px_32px_rgba(0,0,0,0.10)]",children:[e.map(e=>{let n=e.id===t;return(0,r.jsxs)("div",{role:"option","aria-selected":n,onClick:()=>{i?.(e.id),o(!1)},className:`flex cursor-pointer items-center gap-3 rounded-lg px-2.5 py-2.5 text-[15px] leading-[1.2] text-ink-2 hover:bg-hover lg:gap-2.5 lg:rounded-md lg:px-2 lg:py-1.5 lg:text-[12.5px] ${n?"bg-hover-2":""}`,children:[(0,r.jsx)("span",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md font-mono text-[12px] font-semibold leading-none tracking-[0.04em] text-[#0a0a0a] lg:h-5 lg:w-5 lg:rounded-[5px] lg:text-[10px]",style:{background:e.color},children:e.icon??e.tag.slice(0,2)}),(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate font-medium text-ink",children:e.name}),(0,r.jsx)(F.J,{size:12,weight:"bold",className:`h-4 w-4 text-ink lg:h-3 lg:w-3 ${n?"opacity-100":"opacity-0"}`})]},e.id)}),a&&(0,r.jsxs)("button",{type:"button",onClick:()=>{o(!1),a()},className:"mt-1 flex w-full items-center gap-3 rounded-lg border-t border-rule px-2.5 py-2.5 text-[15px] font-medium text-ink-3 transition-colors hover:bg-hover hover:text-ink-2 lg:gap-2 lg:rounded-md lg:px-2 lg:py-1.5 lg:text-[12px]",children:[(0,r.jsx)("span",{className:"flex h-5 w-5 items-center justify-center rounded text-[16px] leading-none lg:h-4 lg:w-4 lg:text-[12px]",children:"+"}),"New workspace"]})]})]}):null}var B=n(69811),J=n(44496),Z=n(73340);let H=["#d4ff2e","#74b9ff","#a29bfe","#fd79a8","#55efc4","#fdcb6e","#e17055","#6c5ce7"];function X(e){return{id:e.id,name:e.name,tag:e.name.replace(/[^a-zA-Z0-9]/g,"").slice(0,3).toUpperCase()||"WS",color:function(e){let t=0;for(let n=0;n<e.length;n+=1)t=31*t+e.charCodeAt(n)>>>0;return H[t%H.length]??H[0]}(e.slug),icon:e.icon??void 0}}function Q({workspaces:e}){let t=(0,i.useRouter)(),[n,a]=(0,s.useTransition)(),[l,o]=(0,s.useTransition)(),[d,c]=(0,s.useState)(!1),[x,u]=(0,s.useState)(""),[p,m]=(0,s.useState)(B.S[0]),h=(0,s.useRef)(null),f=e.map(X),g=e.find(e=>e.active),b=g?.id??f[0]?.id??"";return(0,r.jsxs)("div",{children:[(0,r.jsx)(D,{fleets:f,activeId:b,onChange:function(e){e===b||n||a(async()=>{let n=await (0,J.W)({id:e});n.ok?t.refresh():$.oR.error(n.message)})},disabled:n||0===f.length,onNewWorkspace:function(){c(!0),u(""),m(B.S[0]),requestAnimationFrame(()=>h.current?.focus())}}),d&&(0,r.jsxs)("form",{onSubmit:function(e){e.preventDefault();let n=x.trim();n&&o(async()=>{let e=await (0,Z.O)({name:n,icon:p});if(!e.ok)return void $.oR.error(e.message);let r=await (0,J.W)({id:e.data.id});r.ok?(c(!1),u(""),$.oR.success(`Workspace "${n}" created`),t.refresh()):$.oR.error(r.message)})},className:"mx-3.5 mt-1 rounded-[9px] border border-rule-2 bg-paper p-2.5",children:[(0,r.jsx)("p",{className:"mb-1.5 font-mono text-[11px] uppercase tracking-[0.1em] text-ink-4",children:"New workspace"}),(0,r.jsx)("div",{className:"mb-2",children:(0,r.jsx)(B.A,{value:p,onChange:m,disabled:l})}),(0,r.jsxs)("div",{className:"flex gap-1.5",children:[(0,r.jsx)("input",{ref:h,type:"text",value:x,onChange:e=>u(e.target.value),placeholder:"Name…",maxLength:60,disabled:l,className:"min-w-0 flex-1 rounded-md border border-rule bg-canvas px-2.5 py-1.5 text-[13px] text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none disabled:opacity-50"}),(0,r.jsx)("button",{type:"submit",disabled:l||!x.trim(),className:"shrink-0 rounded-md bg-ink px-3 py-1.5 text-[13px] font-medium text-canvas hover:brightness-90 disabled:cursor-not-allowed disabled:opacity-50",children:l?"…":"Create"}),(0,r.jsx)("button",{type:"button",onClick:()=>c(!1),disabled:l,className:"shrink-0 rounded-md border border-rule px-2.5 py-1.5 text-[13px] text-ink-3 hover:border-rule-2 hover:text-ink-2 disabled:opacity-50",children:"✕"})]})]})]})}var V=n(11248),G=n(88563),K=n(39186);let Y=[{section:"Overview",items:[{href:"/",label:"Home",icon:a.t},{href:"/chat",label:"Chat",icon:l.x},{href:"/jobs",label:"Runs",icon:o.T},{href:"/llm-providers",label:"LLM Providers",icon:d.R}]},{section:"Build",items:[{href:"/agents",label:"Agents",icon:c.n,dot:"agent"},{href:"/skills",label:"Skills",icon:x.f,dot:"skill"},{href:"/learned-skills",label:"Learned Skills",icon:u.g},{href:"/connectors",label:"API Connectors",icon:p.F,dot:"conn"},{href:"/mcp",label:"MCP Connectors",icon:m.X,dot:"conn"},{href:"/credentials",label:"Credentials",icon:h.U},{href:"/memories",label:"Memory",icon:f.j}]},{section:"Operate",items:[{href:"/automations",label:"Automation",icon:g.E},{href:"/approvals",label:"Approvals",icon:b.o},{href:"/logs",label:"Logs",icon:v.m}]},{section:"Workspace",items:[{href:"https://discord.gg/7UZsvZPgU",label:"Join Discord",external:!0},{href:"/settings",label:"Settings",icon:k._}]}];function ee({workspaces:e,userMenu:t}){let n=(0,i.usePathname)(),[a,l]=(0,s.useState)(!1),{pending:o}=(0,K.e)(),d=o.length;return(0,s.useEffect)(()=>{queueMicrotask(()=>l(!1))},[n]),(0,s.useEffect)(()=>{if(!a)return;let e=document.body.style.overflow;document.body.style.overflow="hidden";let t=e=>{"Escape"===e.key&&l(!1)};return window.addEventListener("keydown",t),()=>{document.body.style.overflow=e,window.removeEventListener("keydown",t)}},[a]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("header",{className:"fixed top-0 right-0 left-0 z-40 flex h-16 items-center gap-1 border-b border-rule-2 bg-sidebar px-2 lg:hidden",children:[(0,r.jsx)("button",{type:"button",onClick:()=>l(!0),className:"flex h-12 w-12 shrink-0 items-center justify-center rounded-xl text-ink-2 transition-colors hover:bg-hover hover:text-ink active:bg-hover","aria-label":"Open menu","aria-controls":"primary-nav","aria-expanded":a,children:(0,r.jsx)(j.B,{size:26})}),(0,r.jsxs)("div",{className:"flex min-w-0 items-center gap-2 pl-1 text-[15px] font-medium tracking-[-0.005em] text-ink",children:[(0,r.jsx)("span",{className:"flex h-[22px] w-[22px] shrink-0 items-center justify-center rounded-md bg-ink font-mono text-[11px] font-semibold text-canvas",children:"N"}),(0,r.jsx)("span",{className:"truncate",children:"Nodal-Agents"})]}),(0,r.jsx)("div",{className:"flex-1"}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(G.default,{}),(0,r.jsx)(V.default,{})]})]}),(0,r.jsxs)("aside",{id:"primary-nav","aria-label":"Main navigation",className:`fixed top-0 left-0 z-50 flex h-full w-full flex-col border-r border-rule-2 bg-sidebar pt-4 pb-3 transition-transform duration-200 ease-out lg:z-40 lg:w-[244px] lg:translate-x-0 ${a?"translate-x-0":"-translate-x-full"}`,children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 pb-1 lg:hidden",children:[(0,r.jsxs)("div",{className:"flex min-w-0 items-center gap-2 text-[16px] font-medium tracking-[-0.005em] text-ink",children:[(0,r.jsx)("span",{className:"flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-ink font-mono text-[12px] font-semibold text-canvas",children:"N"}),(0,r.jsx)("span",{className:"truncate",children:"Nodal-Agents"})]}),(0,r.jsx)("button",{type:"button",onClick:()=>l(!1),className:"-mr-2 flex h-10 w-10 shrink-0 items-center justify-center rounded-xl text-ink-2 transition-colors hover:bg-hover hover:text-ink active:bg-hover","aria-label":"Close menu",children:(0,r.jsx)(N.X,{size:24})})]}),(0,r.jsx)("div",{className:"hidden lg:block",children:(0,r.jsx)(y,{})}),(0,r.jsx)(Q,{workspaces:e??[]}),(0,r.jsx)("nav",{className:"flex flex-1 flex-col overflow-y-auto py-1.5",children:Y.map((e,t)=>(0,r.jsxs)("div",{children:[e.section&&(0,r.jsx)(C,{children:e.section}),e.items.map(e=>{var t;return e.external?(0,r.jsxs)("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"group mx-3 flex h-12 items-center gap-3 rounded-xl bg-[#5865F2] px-3 text-[15px] font-medium text-white transition-[filter] hover:brightness-110 lg:h-[30px] lg:gap-2.5 lg:rounded-lg lg:px-3 lg:text-[12.5px] lg:leading-none",children:[(0,r.jsx)("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center lg:h-3.5 lg:w-3.5",children:(0,r.jsx)(w.B,{size:20,weight:"bold",className:"h-5 w-5 lg:h-3.5 lg:w-3.5"})}),(0,r.jsx)("span",{className:"flex-1 truncate",children:e.label})]},e.href):(0,r.jsx)(_,{href:e.href,label:e.label,icon:e.icon?(0,r.jsx)(e.icon,{size:20,className:"h-5 w-5 lg:h-3.5 lg:w-3.5"}):void 0,dot:e.dot,count:"/approvals"===e.href?void 0:e.count,pill:"/approvals"===e.href&&d>0?d:void 0,isActive:(t=e.href,"/"===t?"/"===n:n===t||n.startsWith(t+"/"))},e.href)})]},t))}),(0,r.jsx)(T,{}),(0,r.jsx)(L,{runningAgents:void 0}),t&&(0,r.jsx)("div",{className:"mt-2 border-t border-rule-2 px-3 pt-3","data-testid":"user-menu",children:t})]})]})}},69811:(e,t,n)=>{"use strict";n.d(t,{A:()=>i,S:()=>s});var r=n(3680);let s=["\uD83D\uDDC2️","\uD83C\uDFE0","\uD83D\uDCBC","\uD83D\uDE80","\uD83E\uDDEA","\uD83C\uDFA8","\uD83D\uDCCA","\uD83D\uDEE0️","\uD83C\uDF10","⚡","\uD83E\uDD16","\uD83D\uDCE6"];function i({value:e,onChange:t,disabled:n}){return(0,r.jsx)("div",{className:"flex flex-wrap gap-1",children:s.map(s=>{let i=e===s;return(0,r.jsx)("button",{type:"button",disabled:n,"aria-pressed":i,onClick:()=>t(s),className:`flex h-8 w-8 items-center justify-center rounded-md border text-[16px] leading-none transition-colors disabled:opacity-50 ${i?"border-ink bg-hover-2":"border-rule-2 hover:bg-hover"}`,children:s},s)})})}},73340:(e,t,n)=>{"use strict";n.d(t,{O:()=>s});var r=n(64678);let s=(0,r.createServerReference)("4058ff9b5b556469d2162bd3727e7ac8d2c70a501a",r.callServer,void 0,r.findSourceMapURL,"createWorkspaceAction")},76556:(e,t,n)=>{"use strict";n.d(t,{default:()=>l});var r=n(3680),s=n(78604),i=n(39504);function a(){return"u"<typeof document?"light":"dark"===document.documentElement.getAttribute("data-theme")?"dark":"light"}function l(){let[e,t]=(0,s.useState)("light");return(0,s.useEffect)(()=>{t(a());let e=new MutationObserver(()=>t(a()));return e.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>e.disconnect()},[]),(0,r.jsx)(i.l$,{theme:e,position:"bottom-right",richColors:!0,closeButton:!0})}},82592:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(3680);let s={ok:"bg-ok",lime:"bg-agent-vivid",coral:"bg-skill-vivid",blue:"bg-conn-vivid"},i={ok:"animate-[blip_1.4s_ease-out_infinite]",lime:"animate-[blip-lime_1.5s_ease-out_infinite]",coral:"animate-[blip-coral_1.4s_ease-out_infinite]",blue:"animate-[blip-blue_1.4s_ease-out_infinite]"};function a({variant:e="ok",size:t="sm",animate:n=!0,className:l=""}){return(0,r.jsx)("span",{className:`inline-block shrink-0 rounded-full ${"sm"===t?"h-[7px] w-[7px]":"h-2 w-2"} ${s[e]} ${n?i[e]:""} ${l}`})}},88563:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(3680),s=n(78604),i=n(63363),a=n.n(i),l=n(7101),o=n(39504),d=n(47663),c=n(39186);function x({item:e,onApproved:t}){let[n,i]=(0,s.useTransition)();return(0,r.jsx)("button",{type:"button",onClick:n=>{n.preventDefault(),n.stopPropagation(),i(async()=>{let n=await (0,d.C)({approvalRequestId:e.id,decision:"approve"});n.ok?(o.oR.success("Approved"),t()):o.oR.error(n.message)})},disabled:n,className:"shrink-0 rounded-md bg-ok px-2.5 py-1 text-[12px] font-semibold text-canvas transition-[filter] hover:brightness-[0.92] disabled:opacity-40",children:n?"…":"Approve"})}function u({items:e,onClose:t,onApproved:n}){let i=(0,s.useRef)(null);return(0,s.useEffect)(()=>{function e(e){i.current&&!i.current.contains(e.target)&&t()}return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[t]),(0,s.useEffect)(()=>{function e(e){"Escape"===e.key&&t()}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t]),(0,r.jsxs)("div",{ref:i,className:"absolute right-0 top-full z-50 mt-1.5 w-[340px] rounded-xl border border-rule-2 bg-paper shadow-lg",role:"dialog","aria-label":"Pending approvals",children:[(0,r.jsx)("div",{className:"border-b border-rule-2 px-4 py-3",children:(0,r.jsxs)("p",{className:"text-[14px] font-semibold text-ink",children:["Pending approvals (",e.length,")"]})}),0===e.length?(0,r.jsx)("p",{className:"px-4 py-5 text-center text-[13px] text-ink-3",children:"No pending approvals."}):(0,r.jsx)("ul",{className:"max-h-[340px] divide-y divide-rule-2 overflow-y-auto",children:e.map(e=>(0,r.jsx)("li",{children:(0,r.jsxs)(a(),{href:`/jobs/${e.jobId}`,onClick:t,className:"flex items-start gap-3 px-4 py-3 transition-colors hover:bg-hover",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("p",{className:"truncate text-[13px] font-medium text-ink",children:[e.agentName??"Agent",(0,r.jsx)("span",{className:"mx-1 text-ink-4",children:"\xb7"}),(0,r.jsx)("code",{className:"rounded bg-canvas px-1 py-0.5 font-mono text-[12px] text-ink-2",children:e.toolName})]}),(0,r.jsx)("p",{className:"mt-0.5 truncate text-[12px] text-ink-3",children:function(e){if(!e)return"—";if("string"==typeof e.purpose&&e.purpose.trim()){let t=e.purpose.trim();return t.length>80?t.slice(0,77)+"…":t}if("string"==typeof e.command){let t=e.command;return t.length>60?t.slice(0,57)+"…":t}let t=JSON.stringify(e);return t.length>60?t.slice(0,57)+"…":t}(e.toolInput)}),(0,r.jsx)("p",{className:"mt-0.5 text-[11px] text-ink-4",children:function(e){if(!e)return"—";let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(t<60)return`${t}s ago`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}(e.requestedAt)})]}),(0,r.jsx)(x,{item:e,onApproved:n})]})},e.id))}),(0,r.jsx)("div",{className:"border-t border-rule-2 px-4 py-2.5",children:(0,r.jsx)(a(),{href:"/approvals",onClick:t,className:"text-[13px] font-medium text-ink-2 transition-colors hover:text-ink",children:"See all approvals →"})})]})}function p(){let{pending:e,refresh:t}=(0,c.e)(),[n,i]=(0,s.useState)(!1),a=(0,s.useRef)(null),o=e.length,d=(0,s.useCallback)(()=>i(!1),[]),x=(0,s.useCallback)(()=>i(e=>!e),[]),p=(0,s.useCallback)(()=>{t()},[t]);return(0,r.jsxs)("div",{ref:a,className:"relative",children:[(0,r.jsxs)("button",{type:"button","aria-label":"Notifications",title:"Notifications",onClick:x,className:"relative flex h-[34px] w-[34px] shrink-0 items-center justify-center rounded-md border border-rule-2 bg-paper text-ink-2 transition-colors hover:text-ink",children:[(0,r.jsx)(l.I,{size:15}),o>0&&(0,r.jsx)("span",{className:"absolute -top-1 -right-1 flex h-4 min-w-[16px] items-center justify-center rounded-full bg-err px-1 text-[11px] font-bold leading-none text-canvas",children:o>99?"99+":o})]}),n&&(0,r.jsx)(u,{items:e,onClose:d,onApproved:p})]})}}},e=>{e.O(0,[3363,8161,7704,1065,8724,7358],()=>e(e.s=21485)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3703],{277:(e,t,n)=>{Promise.resolve().then(n.bind(n,13542))},13260:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var a=n(3680),s=n(78604),r=n(51869);function l({open:e,onClose:t,title:n,children:i,className:d=""}){let[o,c]=(0,s.useState)(!1);return((0,s.useEffect)(()=>{c(!0)},[]),(0,s.useEffect)(()=>{if(!e)return;function n(e){"Escape"===e.key&&t()}window.addEventListener("keydown",n);let a=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",n),document.body.style.overflow=a}},[e,t]),e&&o)?(0,r.createPortal)((0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"fixed inset-0 z-40 bg-black/60 animate-[fadeIn_150ms_ease]",onClick:t,"aria-hidden":"true"}),(0,a.jsx)("div",{role:"dialog","aria-modal":"true",className:"fixed inset-0 z-50 flex items-center justify-center p-4 pointer-events-none",children:(0,a.jsxs)("div",{className:`pointer-events-auto w-full max-w-lg max-h-[90vh] overflow-y-auto bg-paper border border-rule-2 rounded-xl shadow-2xl animate-[scaleIn_150ms_ease] ${d}`,children:[void 0!==n&&(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 px-6 pt-5 pb-4 border-b border-rule-2",children:[(0,a.jsx)("h3",{className:"text-sm font-semibold text-ink",children:n}),(0,a.jsx)("button",{type:"button",onClick:t,"aria-label":"Close",className:"text-ink-3 hover:text-ink transition-colors",children:"✕"})]}),(0,a.jsx)("div",{className:"p-6 pt-5",children:i})]})})]}),document.body):null}},13542:(e,t,n)=>{"use strict";n.d(t,{default:()=>k});var a=n(3680),s=n(78604),r=n(39504),l=n(14308),i=n(13260),d=n(73868),o=n(65668),c=n(66736),x=n(21115),u=n(64678);let m=(0,u.createServerReference)("408814814f8e8a054fa5898a017601c29d724977cf",u.callServer,void 0,u.findSourceMapURL,"setReflectionEnabledAction"),p=(0,u.createServerReference)("40323e886a748d8eeff093ec6bc26e6078ad63e059",u.callServer,void 0,u.findSourceMapURL,"setSkillAssignmentModeAction"),h=(0,u.createServerReference)("40108c6989ca7bd6aaba634e49beac56fb954c3d92",u.callServer,void 0,u.findSourceMapURL,"archiveLearnedSkillAction"),b=(0,u.createServerReference)("40b060fc609c236316c732b346e73d3548f8ee7c51",u.callServer,void 0,u.findSourceMapURL,"deleteLearnedSkillAction"),g=(0,u.createServerReference)("40e1357ac39826fc921614623375d286e24b4187e7",u.callServer,void 0,u.findSourceMapURL,"restoreLearnedSkillAction"),f=(0,u.createServerReference)("60e8464cf312e20a8a749327fe5e0c21acab20584c",u.callServer,void 0,u.findSourceMapURL,"assignLearnedSkillAction");function v({state:e}){return"active"===e?(0,a.jsx)("span",{className:"inline-flex items-center rounded-full bg-ok/15 px-2 py-0.5 text-[12px] font-medium text-ok",children:"active"}):"stale"===e?(0,a.jsx)("span",{className:"inline-flex items-center rounded-full bg-warn/15 px-2 py-0.5 text-[12px] font-medium text-warn",children:"stale"}):(0,a.jsx)("span",{className:"inline-flex items-center rounded-full bg-ink-5/40 px-2 py-0.5 text-[12px] font-medium text-ink-3",children:"archived"})}function k({skills:e,reflectionEnabled:t,assignmentMode:n,assignableAgents:u}){let[j,y]=(0,s.useState)(t),[N,w]=(0,s.useState)(n),[A,S]=(0,s.useTransition)(),[C,R]=(0,s.useState)(null),[E,M]=(0,s.useState)(null),[L,$]=(0,s.useState)(e),[Z,_]=(0,s.useState)(null),[F,I]=(0,s.useState)(""),[D,U]=(0,s.useState)(""),T=(0,s.useMemo)(()=>{let e=D.trim().toLowerCase();return e?L.filter(t=>t.name.toLowerCase().includes(e)||(t.description??"").toLowerCase().includes(e)):L},[L,D]);function q(e){e===N||(w(e),S(async()=>{let t=await p(e);t.ok?r.oR.success("auto"===e?"Skills auto-assigned to authoring agent":"Skills require your approval before assignment"):(w(N),r.oR.error(t.message))}))}let z=(0,s.useCallback)(e=>{let t=e.createdByAgentId??null;I(t??u[0]?.id??""),_({skillId:e.id,skillName:e.name,defaultAgentId:t})},[u]);return(0,a.jsxs)(d.A,{title:"Learned Skills",subtitle:"Skills your agents discovered automatically.",toolbar:(0,a.jsx)(o.A,{search:(0,a.jsx)(c.A,{value:D,onChange:U,placeholder:"Search skill…"})}),children:[(0,a.jsx)("div",{className:"mb-4 rounded-2xl border border-rule-2 bg-paper p-5",children:(0,a.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{id:"agent-learning-label",className:"text-[14px] font-medium text-ink",children:"Agent learning"}),(0,a.jsx)("p",{id:"agent-learning-desc",className:"mt-0.5 text-[13px] leading-[1.5] text-ink-3",children:"When on, your agents save reusable techniques as skills after substantial tasks. You can review and undo everything here."})]}),(0,a.jsx)("button",{type:"button",role:"switch","aria-labelledby":"agent-learning-label","aria-describedby":"agent-learning-desc","aria-checked":j,onClick:function(){let e=!j;y(e),S(async()=>{let t=await m(e);t.ok?r.oR.success(e?"Agent learning enabled":"Agent learning disabled"):(y(!e),r.oR.error(t.message))})},disabled:A,className:`relative inline-flex h-5 w-9 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-50 ${j?"bg-ok":"bg-ink-4"}`,children:(0,a.jsx)("span",{className:`pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform duration-200 ${j?"translate-x-4":"translate-x-0"}`})})]})}),(0,a.jsxs)("div",{className:"mb-6 rounded-2xl border border-rule-2 bg-paper p-5",children:[(0,a.jsx)("p",{id:"assign-mode-label",className:"mb-1 text-[14px] font-medium text-ink",children:"When an agent learns a new skill"}),(0,a.jsx)("p",{id:"assign-mode-desc",className:"mb-4 text-[13px] leading-[1.5] text-ink-3",children:"Control whether new agent-authored skills are instantly assigned back to the agent, or held for your review first."}),(0,a.jsxs)("div",{role:"radiogroup","aria-labelledby":"assign-mode-label","aria-describedby":"assign-mode-desc",children:[(0,a.jsx)(x.t,{active:"auto"===N,onClick:()=>q("auto"),name:"Auto-assign to the agent",description:"The skill is immediately available to the agent that authored it."}),(0,a.jsx)(x.t,{active:"approval"===N,onClick:()=>q("approval"),name:"Require my approval",description:"New skills are created unassigned — you assign them manually from this page."})]})]}),0===L.length?(0,a.jsx)("div",{className:"rounded-2xl border border-rule-2 bg-paper px-6 py-12 text-center",children:(0,a.jsx)("p",{className:"text-[14px] leading-[1.5] text-ink-3",children:"Your agents haven't learned anything yet. Enable agent learning above to get started."})}):0===T.length?(0,a.jsx)("div",{className:"rounded-2xl border border-rule-2 bg-paper px-6 py-12 text-center",children:(0,a.jsxs)("p",{className:"text-[14px] leading-[1.5] text-ink-3",children:["No learned skills match “",D,"”."]})}):(0,a.jsx)("div",{className:"space-y-2",children:T.map(e=>(0,a.jsxs)("div",{className:"rounded-2xl border border-rule-2 bg-paper overflow-hidden",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 px-5 py-3.5",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>M(E===e.id?null:e.id),className:"flex-1 min-w-0 text-left",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-[14px] font-medium text-ink truncate",children:e.name}),(0,a.jsx)(v,{state:e.state}),e.patchCount>0&&(0,a.jsxs)("span",{className:"text-[12px] text-ink-3",children:[e.patchCount," patch",1!==e.patchCount?"es":""]})]}),e.description&&(0,a.jsx)("p",{className:"mt-0.5 text-[13px] text-ink-3 truncate",children:e.description}),(0,a.jsx)("p",{className:"mt-0.5 text-[12px] text-ink-3",children:e.assignedAgentNames.length>0?`Assigned to ${e.assignedAgentNames.join(", ")}`:"Not assigned"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[0===e.assignedAgentNames.length&&u.length>0&&(0,a.jsx)("button",{type:"button",onClick:()=>z(e),disabled:A,className:"px-2.5 py-1 text-[13px] font-medium text-ink-2 border border-rule rounded-lg hover:border-rule-2 hover:text-ink transition-colors disabled:opacity-50",children:"Assign"}),"archived"===e.state?(0,a.jsx)("button",{type:"button",onClick:()=>{var t,n;return t=e.id,n=e.name,void S(async()=>{let e=await g(t);e.ok?(r.oR.success(`"${n}" restored`),$(e=>e.map(e=>e.id===t?{...e,state:"active",archivedAt:null}:e))):r.oR.error(e.message)})},disabled:A,className:"px-2.5 py-1 text-[13px] font-medium text-ink-2 border border-rule rounded-lg hover:border-rule-2 hover:text-ink transition-colors disabled:opacity-50",children:"Restore"}):(0,a.jsx)("button",{type:"button",onClick:()=>R({type:"archive",skillId:e.id,skillName:e.name}),disabled:A,className:"px-2.5 py-1 text-[13px] font-medium text-ink-2 border border-rule rounded-lg hover:border-rule-2 hover:text-ink transition-colors disabled:opacity-50",children:"Archive"}),(0,a.jsx)("button",{type:"button",onClick:()=>R({type:"delete",skillId:e.id,skillName:e.name}),disabled:A,className:"px-2.5 py-1 text-[13px] font-medium text-err border border-err/30 rounded-lg hover:bg-err/5 transition-colors disabled:opacity-50",children:"Delete"})]})]}),E===e.id&&(0,a.jsx)("div",{className:"border-t border-rule-2 bg-canvas/50 px-5 py-4",children:(0,a.jsx)("pre",{className:"whitespace-pre-wrap text-[13px] text-ink-2 font-mono leading-relaxed",children:e.content})})]},e.id))}),(0,a.jsx)(l.A,{open:null!==C,title:C?.type==="archive"?`Archive "${C.skillName}"?`:`Delete "${C?.skillName}"?`,message:C?.type==="archive"?"The skill will be archived and hidden from agents. You can restore it later.":"This will permanently delete the skill. This action cannot be undone.",confirmLabel:C?.type==="archive"?"Archive":"Delete",destructive:!0,onConfirm:function(){if(!C)return;let{type:e,skillId:t,skillName:n}=C;R(null),S(async()=>{if("archive"===e){let e=await h(t);e.ok?(r.oR.success(`"${n}" archived`),$(e=>e.map(e=>e.id===t?{...e,state:"archived",archivedAt:new Date}:e))):r.oR.error(e.message)}else if("delete"===e){let e=await b(t);e.ok?(r.oR.success(`"${n}" deleted`),$(e=>e.filter(e=>e.id!==t))):r.oR.error(e.message)}})},onCancel:()=>R(null)}),(0,a.jsx)(i.A,{open:null!==Z,onClose:()=>_(null),title:Z?`Assign "${Z.skillName}"`:void 0,children:Z&&(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("p",{className:"text-[13px] text-ink-3",children:"Select an agent to assign this skill to."}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"assign-agent-select",className:"mb-1.5 block text-[13px] font-medium text-ink",children:"Agent"}),(0,a.jsx)("select",{id:"assign-agent-select",value:F,onChange:e=>I(e.target.value),className:"w-full rounded-lg border border-rule-2 bg-canvas px-3 py-2 text-[14px] text-ink focus:border-conn-vivid focus:outline-none",children:u.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,a.jsx)("button",{type:"button",onClick:()=>_(null),className:"px-3 py-1.5 text-[14px] font-medium text-ink-2 border border-rule rounded-lg hover:border-rule-2 hover:text-ink transition-colors",children:"Cancel"}),(0,a.jsx)("button",{type:"button",onClick:function(){if(!Z||!F)return;let{skillId:e,skillName:t}=Z;_(null),S(async()=>{let n=await f(e,F);if(!n.ok)return void r.oR.error(n.message);let a=u.find(e=>e.id===F),s=a?.name??"agent";r.oR.success(`"${t}" assigned to ${s}`),$(t=>t.map(t=>t.id===e?{...t,assignedAgentNames:t.assignedAgentNames.includes(s)?t.assignedAgentNames:[...t.assignedAgentNames,s]}:t))})},disabled:!F||A,className:"px-3 py-1.5 text-[14px] font-medium text-white bg-conn-vivid rounded-lg hover:opacity-90 transition-opacity disabled:opacity-50",children:"Assign"})]})]})})]})}},21115:(e,t,n)=>{"use strict";n.d(t,{t:()=>s});var a=n(3680);function s({active:e,onClick:t,name:n,description:r}){return(0,a.jsxs)("div",{role:"radio","aria-checked":e,tabIndex:0,onClick:t,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),t())},className:["flex items-start gap-3.5 px-4 py-3.5 rounded-[10px] border cursor-pointer mb-2 transition-[border-color,background-color] duration-[120ms]",e?"border-conn-vivid bg-conn-vivid/[0.06]":"border-rule-2 bg-paper hover:border-rule"].join(" "),children:[(0,a.jsx)("span",{className:["mt-0.5 flex-shrink-0 w-[18px] h-[18px] rounded-full border-[1.6px] flex items-center justify-center",e?"border-conn-vivid":"border-rule"].join(" "),children:e&&(0,a.jsx)("span",{className:"w-2 h-2 rounded-full bg-conn-vivid"})}),(0,a.jsxs)("span",{className:"flex-1 min-w-0",children:[(0,a.jsx)("span",{className:"block text-[14px] font-medium leading-[1.3] text-ink",children:n}),(0,a.jsx)("span",{className:"block text-[13px] leading-[1.4] text-ink-3 mt-0.5",children:r})]})]})}},32928:(e,t,n)=>{"use strict";n.d(t,{e:()=>i});var a=n(78604),s=n(53087);let r=new Map([["bold",a.createElement(a.Fragment,null,a.createElement("path",{d:"M232.49,215.51,185,168a92.12,92.12,0,1,0-17,17l47.53,47.54a12,12,0,0,0,17-17ZM44,112a68,68,0,1,1,68,68A68.07,68.07,0,0,1,44,112Z"}))],["duotone",a.createElement(a.Fragment,null,a.createElement("path",{d:"M192,112a80,80,0,1,1-80-80A80,80,0,0,1,192,112Z",opacity:"0.2"}),a.createElement("path",{d:"M229.66,218.34,179.6,168.28a88.21,88.21,0,1,0-11.32,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"}))],["fill",a.createElement(a.Fragment,null,a.createElement("path",{d:"M168,112a56,56,0,1,1-56-56A56,56,0,0,1,168,112Zm61.66,117.66a8,8,0,0,1-11.32,0l-50.06-50.07a88,88,0,1,1,11.32-11.31l50.06,50.06A8,8,0,0,1,229.66,229.66ZM112,184a72,72,0,1,0-72-72A72.08,72.08,0,0,0,112,184Z"}))],["light",a.createElement(a.Fragment,null,a.createElement("path",{d:"M228.24,219.76l-51.38-51.38a86.15,86.15,0,1,0-8.48,8.48l51.38,51.38a6,6,0,0,0,8.48-8.48ZM38,112a74,74,0,1,1,74,74A74.09,74.09,0,0,1,38,112Z"}))],["regular",a.createElement(a.Fragment,null,a.createElement("path",{d:"M229.66,218.34l-50.07-50.06a88.11,88.11,0,1,0-11.31,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"}))],["thin",a.createElement(a.Fragment,null,a.createElement("path",{d:"M226.83,221.17l-52.7-52.7a84.1,84.1,0,1,0-5.66,5.66l52.7,52.7a4,4,0,0,0,5.66-5.66ZM36,112a76,76,0,1,1,76,76A76.08,76.08,0,0,1,36,112Z"}))]]),l=a.forwardRef((e,t)=>a.createElement(s.A,{ref:t,...e,weights:r}));l.displayName="MagnifyingGlassIcon";let i=l},65668:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(3680);function s({tabs:e,search:t,cta:n,extra:r,className:l=""}){return(0,a.jsxs)("div",{className:`flex flex-wrap items-center gap-2.5 pt-4 ${l}`,children:[e,(0,a.jsx)("div",{className:"flex-1"}),t,r,n]})}},66736:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});var a=n(3680),s=n(32928);function r({value:e,onChange:t,placeholder:n="Search…",minWidth:l=300,className:i=""}){return(0,a.jsxs)("div",{className:`flex h-[34px] items-center gap-2 rounded-[9px] border border-rule-2 bg-paper px-3 text-[13px] text-ink-4 ${i}`,style:{minWidth:l},children:[(0,a.jsx)(s.e,{size:13,className:"shrink-0"}),(0,a.jsx)("input",{type:"search",value:e,onChange:e=>t(e.target.value),placeholder:n,className:"flex-1 border-0 bg-transparent text-[14px] leading-none text-ink outline-none placeholder:text-ink-4"})]})}},73868:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var a=n(3680),s=n(64676),r=n(11248),l=n(88563);function i({title:e,subtitle:t}){return(0,a.jsxs)("header",{className:"flex items-center justify-between gap-4 border-b border-rule-2 px-5 pt-5 pb-4 sm:px-8 lg:px-9",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("h1",{className:"text-[28px] leading-[1.15] font-semibold tracking-[-0.015em] text-ink",children:e}),t&&(0,a.jsx)("p",{className:"mt-1.5 text-[14px] leading-[1.5] text-ink-3",children:t})]}),(0,a.jsxs)("div",{className:"hidden shrink-0 items-center gap-2 lg:flex",children:[(0,a.jsx)(s.default,{className:"hidden md:flex"}),(0,a.jsx)(l.default,{}),(0,a.jsx)(r.default,{})]})]})}function d({title:e,subtitle:t,toolbar:n,children:s,fluid:r=!1,bodyClassName:l=""}){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i,{title:e,subtitle:t}),(0,a.jsxs)("div",{className:`px-5 pt-6 pb-10 sm:px-8 lg:px-9 ${r?"":"max-w-6xl"} ${l}`,children:[n&&(0,a.jsx)("div",{className:"mb-5",children:n}),s]})]})}}},e=>{e.O(0,[3363,8161,9836,1065,8724,7358],()=>e(e.s=277)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[173],{14527:(e,a,t)=>{"use strict";t.d(a,{default:()=>R});var r=t(3680),n=t(78604),l=t(27540),s=t(73868),i=t(65668),o=t(77045),c=t(63363),d=t.n(c),p=t(39504),m=t(76613),x=t(14308),u=t(64678);let h=(0,u.createServerReference)("408d2202ae3a6412a8b21d7955456abd89c53448c6",u.callServer,void 0,u.findSourceMapURL,"deleteLlmKeyAction"),f=(0,u.createServerReference)("603ab59d54d0b0349b494de119381810e7f4e4c4a4",u.callServer,void 0,u.findSourceMapURL,"setLlmKeyActiveAction");var g=t(63217);function b({row:e,onEdit:a,onDeleted:t}){let s=(0,l.useRouter)(),[i,o]=(0,n.useTransition)(),[c,d]=(0,n.useState)(!1),[u,k]=(0,n.useTransition)(),{bg:A,fg:j,initials:L}=function(e){switch(e){case"anthropic":return{bg:"#c96442",fg:"#fff",initials:"AN"};case"openai":return{bg:"#0fa47c",fg:"#fff",initials:"OA"};case"openai-compatible":return{bg:"#7c5cbf",fg:"#fff",initials:"LC"};case"ollama":return{bg:"#3b5a8a",fg:"#fff",initials:"OL"};case"openrouter":return{bg:"#b5455a",fg:"#fff",initials:"OR"};case"google":return{bg:"#1a73c8",fg:"#fff",initials:"GG"};case"mistral":return{bg:"#c47a1a",fg:"#fff",initials:"MI"};case"groq":return{bg:"#a33b50",fg:"#fff",initials:"GQ"};default:return{bg:"#4a4a50",fg:"#fff",initials:e.slice(0,2).toUpperCase()}}}(e.provider);return(0,r.jsxs)("div",{className:"flex flex-col gap-3 rounded-2xl border border-rule-2 bg-paper p-[18px]",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"flex h-[42px] w-[42px] shrink-0 items-center justify-center rounded-xl font-mono text-[14px] font-semibold tracking-[0.04em]",style:{background:A,color:j},children:L}),(0,r.jsx)("div",{className:"min-w-0 flex-1",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-[16px] font-semibold leading-[1.2] tracking-[-0.005em] text-ink",children:e.nickname??(0,g.R)(e.provider)}),e.nickname&&(0,r.jsx)("span",{className:"font-mono text-[11px] uppercase tracking-[0.06em] text-ink-4",children:(0,g.R)(e.provider)})]})}),(0,r.jsx)("button",{type:"button",role:"switch","aria-checked":e.isActive,"aria-label":e.isActive?"Deactivate provider":"Activate provider",onClick:function(){k(async()=>{let a=await f(e.id,!e.isActive);a.ok?s.refresh():p.oR.error(a.message)})},disabled:u||i,className:["relative inline-flex h-[22px] w-[38px] shrink-0 cursor-pointer items-center rounded-full border transition-colors focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50",e.isActive?"border-ok/40 bg-ok/20":"border-rule-2 bg-canvas"].join(" "),children:(0,r.jsx)("span",{className:["inline-block h-[16px] w-[16px] rounded-full shadow-sm transition-transform",e.isActive?"translate-x-[18px] bg-ok":"translate-x-[2px] bg-ink-4"].join(" ")})})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-1",children:[e.baseUrl&&(0,r.jsx)("div",{className:"flex items-center gap-2 rounded-lg bg-canvas px-[10px] py-[7px]",children:(0,r.jsx)("code",{className:"flex-1 truncate font-mono text-[13px] leading-none text-ink",children:e.baseUrl})}),(0,r.jsx)("div",{className:"flex items-center gap-2 rounded-lg bg-canvas px-[10px] py-[7px]",children:e.hasApiKey?(0,r.jsxs)("code",{className:"font-mono text-[13px] leading-none tracking-widest text-ink-3",children:["••••••••",e.apiKeyLast4??""]}):(0,r.jsx)("span",{className:"text-[13px] leading-none text-warn",children:"No API key"})})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between border-t border-rule-2 pt-[10px]",children:[(0,r.jsx)(v,{count:e.agentCount,keyId:e.id}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsxs)("button",{type:"button",onClick:a,className:"inline-flex h-[28px] items-center gap-1 rounded-md border border-rule px-[10px] text-[12px] font-medium text-ink-3 transition-colors hover:border-rule-2 hover:text-ink",children:[(0,r.jsx)(m._,{size:12,weight:"regular"}),"Configure"]}),(0,r.jsx)("button",{type:"button",onClick:()=>d(!0),disabled:i,className:"inline-flex h-[28px] items-center rounded-md border border-err/30 px-[10px] text-[12px] font-medium text-err transition-colors hover:border-err/60 hover:bg-warn-bg disabled:opacity-40",children:"Delete"})]})]}),(0,r.jsx)(x.A,{open:c,title:"Remove LLM provider?",message:`"${e.nickname??(0,g.R)(e.provider)}" will be removed. Agents using it will fall back to the default env-configured provider until reassigned.`,confirmLabel:"Remove",onConfirm:function(){d(!1),o(async()=>{let a=await h(e.id);a.ok?(p.oR.success("LLM provider removed"),t()):p.oR.error(a.message)})},onCancel:()=>d(!1)})]})}function v({count:e,keyId:a}){return 0===e?(0,r.jsx)("span",{className:"font-sans text-[13px] leading-none text-ink-3",children:"Not in use"}):(0,r.jsxs)(d(),{href:`/agents?llmKeyId=${a}`,className:"font-sans text-[13px] leading-none text-ink-3 transition-colors hover:text-ink",title:`${e} agent${1===e?"":"s"} use this key`,children:[(0,r.jsx)("span",{className:"font-mono tabular-nums",children:e})," agent",1===e?"":"s"," using"]})}var k=t(24267),A=t(35048),j=t(43340);let L={anthropic:"https://api.anthropic.com/v1",openai:"https://api.openai.com/v1","openai-compatible":"http://localhost:1234/v1",ollama:"http://localhost:11434",openrouter:"https://openrouter.ai/api/v1",google:"https://generativelanguage.googleapis.com/v1beta",mistral:"https://api.mistral.ai/v1",groq:"https://api.groq.com/openai/v1",deepseek:"https://api.deepseek.com/v1",minimax:"https://api.minimax.io/anthropic"},N=["anthropic","openai","openai-compatible","ollama","openrouter","google","mistral","groq","deepseek","minimax"],y="block font-mono text-[11px] uppercase tracking-[0.12em] text-ink-4 mb-1.5",w="w-full rounded-lg border border-rule bg-canvas px-3 py-2 text-[14px] text-ink placeholder-ink-4 transition-colors focus:border-ink-3 focus:outline-none",M=`${w} font-mono`;function Z(e){let a="edit"===e.mode,t=a?e.initial:null,l=t?.provider??"anthropic",s="create"===e.mode?N.filter(a=>!e.configuredProviders.includes(a)):N,i="create"===e.mode?s[0]??"anthropic":l,[o,c]=(0,n.useState)(i),[d,m]=(0,n.useState)(t?.baseUrl??""),[x,u]=(0,n.useState)(""),[h,f]=(0,n.useState)(t?.isActive??!0),[b,v]=(0,n.useState)({state:"idle"}),[Z,R]=(0,n.useTransition)(),[E,S]=(0,n.useState)(!1),C=a&&0===x.length,P=a&&t?.apiKeyLast4!=null&&!E&&0===x.length;function F(){"idle"!==b.state&&v({state:"idle"})}async function K(){v({state:"testing"});let e=a&&0===x.length&&t?.id,r=await (0,k.f)({provider:o,baseUrl:d||void 0,apiKey:x||void 0,...e?{keyId:t.id}:{}});r.ok?v({state:"pass",message:r.data.message}):v({state:"fail",message:r.message})}let U=L[o]||"https://...";return(0,r.jsxs)("form",{onSubmit:function(r){(r.preventDefault(),"pass"===b.state||C)?R(async()=>{if(a&&t){let a=await (0,A.Q)({id:t.id,provider:o,baseUrl:d||void 0,apiKey:x||void 0,isActive:h});if(!a.ok)return void p.oR.error(a.message);p.oR.success("LLM provider updated"),e.onDone("saved")}else{let a=await (0,j.L)({provider:o,baseUrl:d||void 0,apiKey:x||void 0,isActive:h});if(!a.ok)return void p.oR.error(a.message);p.oR.success("LLM provider added"),e.onDone("saved")}}):p.oR.error("Test the connection before saving")},className:"space-y-4 rounded-2xl border border-rule-2 bg-paper p-5",children:[(0,r.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:y,htmlFor:"llm-provider",children:"Provider"}),a?(0,r.jsx)("div",{className:`${w} cursor-not-allowed bg-hover text-ink-3`,children:(0,g.R)(o)}):0===s.length?(0,r.jsx)("p",{className:"text-[13px] text-warn",children:"All providers already configured. Edit an existing key instead."}):(0,r.jsx)("select",{id:"llm-provider",value:o,onChange:e=>{var a;c(a=e.target.value),!d&&L[a]&&m(L[a]),F()},className:w,children:s.map(e=>(0,r.jsx)("option",{value:e,children:(0,g.R)(e)},e))})]})}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{className:y,htmlFor:"llm-base-url",children:["Base URL","openai-compatible"===o||"ollama"===o?(0,r.jsx)("span",{className:"ml-2 normal-case font-sans text-[12px] tracking-normal text-warn",children:"required"}):(0,r.jsx)("span",{className:"ml-2 normal-case font-sans text-[12px] tracking-normal text-ink-4",children:"optional"})]}),(0,r.jsx)("input",{id:"llm-base-url",type:"text",required:"openai-compatible"===o||"ollama"===o,value:d,onChange:e=>{m(e.target.value),F()},placeholder:U||"leave blank to use the provider default",className:M})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:y,htmlFor:"llm-api-key",children:"API key"}),P?(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("div",{className:"flex-1 rounded-lg border border-rule bg-canvas px-3 py-2 font-mono text-[14px] tracking-widest text-ink-3 select-none",children:["••••••••",t.apiKeyLast4]}),(0,r.jsx)("button",{type:"button",onClick:()=>{S(!0),F()},className:"shrink-0 rounded-md border border-rule px-3 py-2 text-[13px] font-medium text-ink-3 transition-colors hover:border-ink-3 hover:text-ink",children:"Replace"})]}):(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("input",{id:"llm-api-key",type:"password",autoComplete:"new-password",value:x,onChange:e=>{u(e.target.value),F()},placeholder:a&&!E?"Leave blank to keep current":"",className:"flex-1 rounded-lg border border-rule bg-canvas px-3 py-2 font-mono text-[14px] text-ink placeholder-ink-4 transition-colors focus:border-ink-3 focus:outline-none"}),a&&E&&(0,r.jsx)("button",{type:"button",onClick:()=>{S(!1),u(""),F()},className:"shrink-0 px-3 py-2 text-[13px] font-medium text-ink-4 transition-colors hover:text-ink-2",children:"Cancel"})]})]}),(0,r.jsxs)("label",{className:"flex cursor-pointer items-center gap-2.5 text-[14px] text-ink-2",children:[(0,r.jsx)("input",{type:"checkbox",checked:h,onChange:e=>f(e.target.checked),className:"accent-conn-vivid"}),(0,r.jsx)("span",{children:"Active — agents may select this provider"})]}),"pass"===b.state&&(0,r.jsx)("div",{className:"rounded-md border border-ok/30 bg-ok-bg px-3 py-2 text-[13px] text-ok",children:b.message}),"fail"===b.state&&(0,r.jsx)("div",{className:"rounded-md border border-err/30 bg-warn-bg px-3 py-2 text-[13px] text-err break-all",children:b.message}),(0,r.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[(0,r.jsx)("button",{type:"button",onClick:K,disabled:"testing"===b.state||Z,className:"inline-flex h-[34px] items-center rounded-md border border-rule px-3.5 text-[14px] font-medium text-ink-2 transition-colors hover:border-rule-2 hover:text-ink disabled:opacity-50",children:"testing"===b.state?"Testing…":"Test connection"}),(0,r.jsx)("button",{type:"submit",disabled:Z||"testing"===b.state||"pass"!==b.state&&!C,className:"inline-flex h-[34px] items-center rounded-md bg-ink px-3.5 text-[14px] font-semibold text-canvas transition-[filter] hover:brightness-[0.92] disabled:opacity-50",title:"pass"===b.state||C?void 0:"Test the connection before saving",children:Z?"Saving…":a?"Save changes":"Add provider"}),(0,r.jsx)("button",{type:"button",onClick:()=>e.onDone("cancelled"),className:"inline-flex h-[34px] items-center px-3.5 text-[14px] font-medium text-ink-3 transition-colors hover:text-ink-2",children:"Cancel"})]})]})}function R({initialRows:e}){let a=(0,l.useRouter)(),[,t]=(0,n.useTransition)(),[c,d]=(0,n.useState)({kind:"closed"}),p=e.map(e=>e.provider);function m(){t(()=>{a.refresh()})}return(0,r.jsx)(s.A,{title:"LLM Providers",subtitle:"API keys for your model providers.",toolbar:(0,r.jsx)(i.A,{cta:(0,r.jsx)(o.A,{variant:"neutral",onClick:()=>d({kind:"create"}),disabled:"create"===c.kind,children:"+ New provider"})}),children:(0,r.jsxs)("div",{className:"space-y-3",children:[0===e.length?(0,r.jsx)("div",{className:"rounded-2xl border border-rule-2 bg-paper px-6 py-12 text-center text-[14px] text-ink-3",children:"No LLM providers yet. Add one with the “New provider” button above."}):(0,r.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3",children:e.map(e=>(0,r.jsx)(b,{row:e,onEdit:()=>d({kind:"edit",row:e}),onDeleted:m},e.id))}),"create"===c.kind&&(0,r.jsx)(Z,{mode:"create",configuredProviders:p,onDone:e=>{d({kind:"closed"}),"saved"===e&&m()}}),"edit"===c.kind&&(0,r.jsx)(Z,{mode:"edit",initial:c.row,onDone:e=>{d({kind:"closed"}),"saved"===e&&m()}})]})})}},24267:(e,a,t)=>{"use strict";t.d(a,{f:()=>n});var r=t(64678);let n=(0,r.createServerReference)("401724e8ce4d089762351b208a49acb20b6fa11009",r.callServer,void 0,r.findSourceMapURL,"testLlmKeyAction")},27540:(e,a,t)=>{"use strict";var r=t(71268);t.o(r,"usePathname")&&t.d(a,{usePathname:function(){return r.usePathname}}),t.o(r,"useRouter")&&t.d(a,{useRouter:function(){return r.useRouter}}),t.o(r,"useSearchParams")&&t.d(a,{useSearchParams:function(){return r.useSearchParams}})},32928:(e,a,t)=>{"use strict";t.d(a,{e:()=>i});var r=t(78604),n=t(53087);let l=new Map([["bold",r.createElement(r.Fragment,null,r.createElement("path",{d:"M232.49,215.51,185,168a92.12,92.12,0,1,0-17,17l47.53,47.54a12,12,0,0,0,17-17ZM44,112a68,68,0,1,1,68,68A68.07,68.07,0,0,1,44,112Z"}))],["duotone",r.createElement(r.Fragment,null,r.createElement("path",{d:"M192,112a80,80,0,1,1-80-80A80,80,0,0,1,192,112Z",opacity:"0.2"}),r.createElement("path",{d:"M229.66,218.34,179.6,168.28a88.21,88.21,0,1,0-11.32,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"}))],["fill",r.createElement(r.Fragment,null,r.createElement("path",{d:"M168,112a56,56,0,1,1-56-56A56,56,0,0,1,168,112Zm61.66,117.66a8,8,0,0,1-11.32,0l-50.06-50.07a88,88,0,1,1,11.32-11.31l50.06,50.06A8,8,0,0,1,229.66,229.66ZM112,184a72,72,0,1,0-72-72A72.08,72.08,0,0,0,112,184Z"}))],["light",r.createElement(r.Fragment,null,r.createElement("path",{d:"M228.24,219.76l-51.38-51.38a86.15,86.15,0,1,0-8.48,8.48l51.38,51.38a6,6,0,0,0,8.48-8.48ZM38,112a74,74,0,1,1,74,74A74.09,74.09,0,0,1,38,112Z"}))],["regular",r.createElement(r.Fragment,null,r.createElement("path",{d:"M229.66,218.34l-50.07-50.06a88.11,88.11,0,1,0-11.31,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"}))],["thin",r.createElement(r.Fragment,null,r.createElement("path",{d:"M226.83,221.17l-52.7-52.7a84.1,84.1,0,1,0-5.66,5.66l52.7,52.7a4,4,0,0,0,5.66-5.66ZM36,112a76,76,0,1,1,76,76A76.08,76.08,0,0,1,36,112Z"}))]]),s=r.forwardRef((e,a)=>r.createElement(n.A,{ref:a,...e,weights:l}));s.displayName="MagnifyingGlassIcon";let i=s},35048:(e,a,t)=>{"use strict";t.d(a,{Q:()=>n});var r=t(64678);let n=(0,r.createServerReference)("40dfc67c369bd8b1a734f8674662de042ebb99d026",r.callServer,void 0,r.findSourceMapURL,"updateLlmKeyAction")},43340:(e,a,t)=>{"use strict";t.d(a,{L:()=>n});var r=t(64678);let n=(0,r.createServerReference)("40ec96380c1bf25ac67eafffb475457d9e6e2adf4a",r.callServer,void 0,r.findSourceMapURL,"createLlmKeyAction")},49354:(e,a,t)=>{Promise.resolve().then(t.bind(t,14527)),Promise.resolve().then(t.bind(t,88563)),Promise.resolve().then(t.bind(t,64676)),Promise.resolve().then(t.bind(t,11248))},63217:(e,a,t)=>{"use strict";function r(e){switch(e){case"openai-compatible":return"Local LLM";case"anthropic":return"Anthropic";case"openai":return"OpenAI";case"ollama":return"Ollama";case"openrouter":return"OpenRouter";case"google":return"Google";case"mistral":return"Mistral";case"groq":return"Groq";case"deepseek":return"DeepSeek";case"minimax":return"MiniMax";default:return e}}t.d(a,{R:()=>r})},65668:(e,a,t)=>{"use strict";t.d(a,{A:()=>n});var r=t(3680);function n({tabs:e,search:a,cta:t,extra:l,className:s=""}){return(0,r.jsxs)("div",{className:`flex flex-wrap items-center gap-2.5 pt-4 ${s}`,children:[e,(0,r.jsx)("div",{className:"flex-1"}),a,l,t]})}},73868:(e,a,t)=>{"use strict";t.d(a,{A:()=>o});var r=t(3680),n=t(64676),l=t(11248),s=t(88563);function i({title:e,subtitle:a}){return(0,r.jsxs)("header",{className:"flex items-center justify-between gap-4 border-b border-rule-2 px-5 pt-5 pb-4 sm:px-8 lg:px-9",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("h1",{className:"text-[28px] leading-[1.15] font-semibold tracking-[-0.015em] text-ink",children:e}),a&&(0,r.jsx)("p",{className:"mt-1.5 text-[14px] leading-[1.5] text-ink-3",children:a})]}),(0,r.jsxs)("div",{className:"hidden shrink-0 items-center gap-2 lg:flex",children:[(0,r.jsx)(n.default,{className:"hidden md:flex"}),(0,r.jsx)(s.default,{}),(0,r.jsx)(l.default,{})]})]})}function o({title:e,subtitle:a,toolbar:t,children:n,fluid:l=!1,bodyClassName:s=""}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i,{title:e,subtitle:a}),(0,r.jsxs)("div",{className:`px-5 pt-6 pb-10 sm:px-8 lg:px-9 ${l?"":"max-w-6xl"} ${s}`,children:[t&&(0,r.jsx)("div",{className:"mb-5",children:t}),n]})]})}},76613:(e,a,t)=>{"use strict";t.d(a,{_:()=>i});var r=t(78604),n=t(53087);let l=new Map([["bold",r.createElement(r.Fragment,null,r.createElement("path",{d:"M128,76a52,52,0,1,0,52,52A52.06,52.06,0,0,0,128,76Zm0,80a28,28,0,1,1,28-28A28,28,0,0,1,128,156Zm113.86-49.57A12,12,0,0,0,236,98.34L208.21,82.49l-.11-31.31a12,12,0,0,0-4.25-9.12,116,116,0,0,0-38-21.41,12,12,0,0,0-9.68.89L128,37.27,99.83,21.53a12,12,0,0,0-9.7-.9,116.06,116.06,0,0,0-38,21.47,12,12,0,0,0-4.24,9.1l-.14,31.34L20,98.35a12,12,0,0,0-5.85,8.11,110.7,110.7,0,0,0,0,43.11A12,12,0,0,0,20,157.66l27.82,15.85.11,31.31a12,12,0,0,0,4.25,9.12,116,116,0,0,0,38,21.41,12,12,0,0,0,9.68-.89L128,218.73l28.14,15.74a12,12,0,0,0,9.7.9,116.06,116.06,0,0,0,38-21.47,12,12,0,0,0,4.24-9.1l.14-31.34,27.81-15.81a12,12,0,0,0,5.85-8.11A110.7,110.7,0,0,0,241.86,106.43Zm-22.63,33.18-26.88,15.28a11.94,11.94,0,0,0-4.55,4.59c-.54,1-1.11,1.93-1.7,2.88a12,12,0,0,0-1.83,6.31L184.13,199a91.83,91.83,0,0,1-21.07,11.87l-27.15-15.19a12,12,0,0,0-5.86-1.53h-.29c-1.14,0-2.3,0-3.44,0a12.08,12.08,0,0,0-6.14,1.51L93,210.82A92.27,92.27,0,0,1,71.88,199l-.11-30.24a12,12,0,0,0-1.83-6.32c-.58-.94-1.16-1.91-1.7-2.88A11.92,11.92,0,0,0,63.7,155L36.8,139.63a86.53,86.53,0,0,1,0-23.24l26.88-15.28a12,12,0,0,0,4.55-4.58c.54-1,1.11-1.94,1.7-2.89a12,12,0,0,0,1.83-6.31L71.87,57A91.83,91.83,0,0,1,92.94,45.17l27.15,15.19a11.92,11.92,0,0,0,6.15,1.52c1.14,0,2.3,0,3.44,0a12.08,12.08,0,0,0,6.14-1.51L163,45.18A92.27,92.27,0,0,1,184.12,57l.11,30.24a12,12,0,0,0,1.83,6.32c.58.94,1.16,1.91,1.7,2.88A11.92,11.92,0,0,0,192.3,101l26.9,15.33A86.53,86.53,0,0,1,219.23,139.61Z"}))],["duotone",r.createElement(r.Fragment,null,r.createElement("path",{d:"M230.1,108.76,198.25,90.62c-.64-1.16-1.31-2.29-2-3.41l-.12-36A104.61,104.61,0,0,0,162,32L130,49.89c-1.34,0-2.69,0-4,0L94,32A104.58,104.58,0,0,0,59.89,51.25l-.16,36c-.7,1.12-1.37,2.26-2,3.41l-31.84,18.1a99.15,99.15,0,0,0,0,38.46l31.85,18.14c.64,1.16,1.31,2.29,2,3.41l.12,36A104.61,104.61,0,0,0,94,224l32-17.87c1.34,0,2.69,0,4,0L162,224a104.58,104.58,0,0,0,34.08-19.25l.16-36c.7-1.12,1.37-2.26,2-3.41l31.84-18.1A99.15,99.15,0,0,0,230.1,108.76ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z",opacity:"0.2"}),r.createElement("path",{d:"M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm109.94-52.79a8,8,0,0,0-3.89-5.4l-29.83-17-.12-33.62a8,8,0,0,0-2.83-6.08,111.91,111.91,0,0,0-36.72-20.67,8,8,0,0,0-6.46.59L128,41.85,97.88,25a8,8,0,0,0-6.47-.6A111.92,111.92,0,0,0,54.73,45.15a8,8,0,0,0-2.83,6.07l-.15,33.65-29.83,17a8,8,0,0,0-3.89,5.4,106.47,106.47,0,0,0,0,41.56,8,8,0,0,0,3.89,5.4l29.83,17,.12,33.63a8,8,0,0,0,2.83,6.08,111.91,111.91,0,0,0,36.72,20.67,8,8,0,0,0,6.46-.59L128,214.15,158.12,231a7.91,7.91,0,0,0,3.9,1,8.09,8.09,0,0,0,2.57-.42,112.1,112.1,0,0,0,36.68-20.73,8,8,0,0,0,2.83-6.07l.15-33.65,29.83-17a8,8,0,0,0,3.89-5.4A106.47,106.47,0,0,0,237.94,107.21Zm-15,34.91-28.57,16.25a8,8,0,0,0-3,3c-.58,1-1.19,2.06-1.81,3.06a7.94,7.94,0,0,0-1.22,4.21l-.15,32.25a95.89,95.89,0,0,1-25.37,14.3L134,199.13a8,8,0,0,0-3.91-1h-.19c-1.21,0-2.43,0-3.64,0a8.1,8.1,0,0,0-4.1,1l-28.84,16.1A96,96,0,0,1,67.88,201l-.11-32.2a8,8,0,0,0-1.22-4.22c-.62-1-1.23-2-1.8-3.06a8.09,8.09,0,0,0-3-3.06l-28.6-16.29a90.49,90.49,0,0,1,0-28.26L61.67,97.63a8,8,0,0,0,3-3c.58-1,1.19-2.06,1.81-3.06a7.94,7.94,0,0,0,1.22-4.21l.15-32.25a95.89,95.89,0,0,1,25.37-14.3L122,56.87a8,8,0,0,0,4.1,1c1.21,0,2.43,0,3.64,0a8,8,0,0,0,4.1-1l28.84-16.1A96,96,0,0,1,188.12,55l.11,32.2a8,8,0,0,0,1.22,4.22c.62,1,1.23,2,1.8,3.06a8.09,8.09,0,0,0,3,3.06l28.6,16.29A90.49,90.49,0,0,1,222.9,142.12Z"}))],["fill",r.createElement(r.Fragment,null,r.createElement("path",{d:"M237.94,107.21a8,8,0,0,0-3.89-5.4l-29.83-17-.12-33.62a8,8,0,0,0-2.83-6.08,111.91,111.91,0,0,0-36.72-20.67,8,8,0,0,0-6.46.59L128,41.85,97.88,25a8,8,0,0,0-6.47-.6A111.92,111.92,0,0,0,54.73,45.15a8,8,0,0,0-2.83,6.07l-.15,33.65-29.83,17a8,8,0,0,0-3.89,5.4,106.47,106.47,0,0,0,0,41.56,8,8,0,0,0,3.89,5.4l29.83,17,.12,33.63a8,8,0,0,0,2.83,6.08,111.91,111.91,0,0,0,36.72,20.67,8,8,0,0,0,6.46-.59L128,214.15,158.12,231a7.91,7.91,0,0,0,3.9,1,8.09,8.09,0,0,0,2.57-.42,112.1,112.1,0,0,0,36.68-20.73,8,8,0,0,0,2.83-6.07l.15-33.65,29.83-17a8,8,0,0,0,3.89-5.4A106.47,106.47,0,0,0,237.94,107.21ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z"}))],["light",r.createElement(r.Fragment,null,r.createElement("path",{d:"M128,82a46,46,0,1,0,46,46A46.06,46.06,0,0,0,128,82Zm0,80a34,34,0,1,1,34-34A34,34,0,0,1,128,162Zm108-54.4a6,6,0,0,0-2.92-4L202.64,86.22l-.42-.71L202.1,51.2A6,6,0,0,0,200,46.64a110.12,110.12,0,0,0-36.07-20.31,6,6,0,0,0-4.84.45L128.46,43.86h-1L96.91,26.76a6,6,0,0,0-4.86-.44A109.92,109.92,0,0,0,56,46.68a6,6,0,0,0-2.12,4.55l-.16,34.34c-.14.23-.28.47-.41.71L22.91,103.57A6,6,0,0,0,20,107.62a104.81,104.81,0,0,0,0,40.78,6,6,0,0,0,2.92,4l30.42,17.33.42.71.12,34.31A6,6,0,0,0,56,209.36a110.12,110.12,0,0,0,36.07,20.31,6,6,0,0,0,4.84-.45l30.61-17.08h1l30.56,17.1A6.09,6.09,0,0,0,162,230a5.83,5.83,0,0,0,1.93-.32,109.92,109.92,0,0,0,36-20.36,6,6,0,0,0,2.12-4.55l.16-34.34c.14-.23.28-.47.41-.71l30.42-17.29a6,6,0,0,0,2.92-4.05A104.81,104.81,0,0,0,236,107.6Zm-11.25,35.79L195.32,160.1a6.07,6.07,0,0,0-2.28,2.3c-.59,1-1.21,2.11-1.86,3.14a6,6,0,0,0-.91,3.16l-.16,33.21a98.15,98.15,0,0,1-27.52,15.53L133,200.88a6,6,0,0,0-2.93-.77h-.14c-1.24,0-2.5,0-3.74,0a6,6,0,0,0-3.07.76L93.45,217.43a98,98,0,0,1-27.56-15.49l-.12-33.17a6,6,0,0,0-.91-3.16c-.64-1-1.27-2.08-1.86-3.14a6,6,0,0,0-2.27-2.3L31.3,143.4a93,93,0,0,1,0-30.79L60.68,95.9A6.07,6.07,0,0,0,63,93.6c.59-1,1.21-2.11,1.86-3.14a6,6,0,0,0,.91-3.16l.16-33.21A98.15,98.15,0,0,1,93.41,38.56L123,55.12a5.81,5.81,0,0,0,3.07.76c1.24,0,2.5,0,3.74,0a6,6,0,0,0,3.07-.76l29.65-16.56a98,98,0,0,1,27.56,15.49l.12,33.17a6,6,0,0,0,.91,3.16c.64,1,1.27,2.08,1.86,3.14a6,6,0,0,0,2.27,2.3L224.7,112.6A93,93,0,0,1,224.73,143.39Z"}))],["regular",r.createElement(r.Fragment,null,r.createElement("path",{d:"M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm109.94-52.79a8,8,0,0,0-3.89-5.4l-29.83-17-.12-33.62a8,8,0,0,0-2.83-6.08,111.91,111.91,0,0,0-36.72-20.67,8,8,0,0,0-6.46.59L128,41.85,97.88,25a8,8,0,0,0-6.47-.6A112.1,112.1,0,0,0,54.73,45.15a8,8,0,0,0-2.83,6.07l-.15,33.65-29.83,17a8,8,0,0,0-3.89,5.4,106.47,106.47,0,0,0,0,41.56,8,8,0,0,0,3.89,5.4l29.83,17,.12,33.62a8,8,0,0,0,2.83,6.08,111.91,111.91,0,0,0,36.72,20.67,8,8,0,0,0,6.46-.59L128,214.15,158.12,231a7.91,7.91,0,0,0,3.9,1,8.09,8.09,0,0,0,2.57-.42,112.1,112.1,0,0,0,36.68-20.73,8,8,0,0,0,2.83-6.07l.15-33.65,29.83-17a8,8,0,0,0,3.89-5.4A106.47,106.47,0,0,0,237.94,107.21Zm-15,34.91-28.57,16.25a8,8,0,0,0-3,3c-.58,1-1.19,2.06-1.81,3.06a7.94,7.94,0,0,0-1.22,4.21l-.15,32.25a95.89,95.89,0,0,1-25.37,14.3L134,199.13a8,8,0,0,0-3.91-1h-.19c-1.21,0-2.43,0-3.64,0a8.08,8.08,0,0,0-4.1,1l-28.84,16.1A96,96,0,0,1,67.88,201l-.11-32.2a8,8,0,0,0-1.22-4.22c-.62-1-1.23-2-1.8-3.06a8.09,8.09,0,0,0-3-3.06l-28.6-16.29a90.49,90.49,0,0,1,0-28.26L61.67,97.63a8,8,0,0,0,3-3c.58-1,1.19-2.06,1.81-3.06a7.94,7.94,0,0,0,1.22-4.21l.15-32.25a95.89,95.89,0,0,1,25.37-14.3L122,56.87a8,8,0,0,0,4.1,1c1.21,0,2.43,0,3.64,0a8.08,8.08,0,0,0,4.1-1l28.84-16.1A96,96,0,0,1,188.12,55l.11,32.2a8,8,0,0,0,1.22,4.22c.62,1,1.23,2,1.8,3.06a8.09,8.09,0,0,0,3,3.06l28.6,16.29A90.49,90.49,0,0,1,222.9,142.12Z"}))],["thin",r.createElement(r.Fragment,null,r.createElement("path",{d:"M128,84a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,84Zm0,80a36,36,0,1,1,36-36A36,36,0,0,1,128,164Zm106-56a4,4,0,0,0-2-2.7l-30.89-17.6q-.47-.82-1-1.62L200.1,51.2a3.94,3.94,0,0,0-1.42-3,107.8,107.8,0,0,0-35.41-19.94,4,4,0,0,0-3.23.29L129,45.87h-2l-31-17.36a4,4,0,0,0-3.23-.3,108.05,108.05,0,0,0-35.39,20,4,4,0,0,0-1.41,3l-.16,34.9-1,1.62L23.9,105.3A4,4,0,0,0,22,108a102.76,102.76,0,0,0,0,40,4,4,0,0,0,1.95,2.7l30.89,17.6q.47.83,1,1.62l.12,34.87a3.94,3.94,0,0,0,1.42,3,107.8,107.8,0,0,0,35.41,19.94,4,4,0,0,0,3.23-.29L127,210.13h2l31,17.36a4,4,0,0,0,3.23.3,108.05,108.05,0,0,0,35.39-20,4,4,0,0,0,1.41-3l.16-34.9,1-1.62L232.1,150.7a4,4,0,0,0,2-2.71A102.76,102.76,0,0,0,234,108Zm-7.48,36.67L196.3,161.84a4,4,0,0,0-1.51,1.53c-.61,1.09-1.25,2.17-1.91,3.24a3.92,3.92,0,0,0-.61,2.1l-.16,34.15a99.8,99.8,0,0,1-29.7,16.77l-30.4-17a4.06,4.06,0,0,0-2-.51H130c-1.28,0-2.57,0-3.84,0a4.1,4.1,0,0,0-2.05.51l-30.45,17A100.23,100.23,0,0,1,63.89,202.9l-.12-34.12a3.93,3.93,0,0,0-.61-2.11c-.66-1-1.3-2.14-1.91-3.23a4,4,0,0,0-1.51-1.53L29.49,144.68a94.78,94.78,0,0,1,0-33.34L59.7,94.16a4,4,0,0,0,1.51-1.53c.61-1.09,1.25-2.17,1.91-3.23a4,4,0,0,0,.61-2.11l.16-34.15a99.8,99.8,0,0,1,29.7-16.77l30.4,17a4.1,4.1,0,0,0,2.05.51c1.28,0,2.57,0,3.84,0a4,4,0,0,0,2.05-.51l30.45-17A100.23,100.23,0,0,1,192.11,53.1l.12,34.12a3.93,3.93,0,0,0,.61,2.11c.66,1,1.3,2.14,1.91,3.23a4,4,0,0,0,1.51,1.53l30.25,17.23A94.78,94.78,0,0,1,226.54,144.66Z"}))]]),s=r.forwardRef((e,a)=>r.createElement(n.A,{ref:a,...e,weights:l}));s.displayName="GearSixIcon";let i=s},77045:(e,a,t)=>{"use strict";t.d(a,{A:()=>i});var r=t(3680),n=t(63363),l=t.n(n);let s={ink:"bg-ink text-canvas border-0 hover:brightness-[0.92]",agent:"bg-agent-vivid text-[#1a2200] border-0 hover:brightness-[0.96]",coral:"bg-skill-vivid text-white border-0 hover:brightness-[0.94]",blue:"bg-conn-vivid text-white border-0 hover:brightness-[0.94]",neutral:"border border-rule-2 bg-paper text-ink hover:bg-hover"};function i(e){let{children:a,variant:t="ink",size:n="md",className:i=""}=e,o=`inline-flex cursor-pointer items-center justify-center gap-1.5 rounded-md font-medium leading-none transition-[filter,background-color] ${"md"===n?"h-[34px] px-3.5 text-[14px]":"h-[30px] px-3 text-[13px]"} ${s[t]} ${i}`;if("href"in e&&e.href){let{href:t,variant:n,size:s,className:i,children:c,...d}=e;return(0,r.jsx)(l(),{href:t,className:o,...d,children:a})}let{variant:c,size:d,className:p,children:m,...x}=e;return(0,r.jsx)("button",{type:"button",className:o,...x,children:a})}}},e=>{e.O(0,[3363,8161,9836,1065,8724,7358],()=>e(e.s=49354)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6996],{5977:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(78604);let n=r.forwardRef((e,t)=>{let{alt:a,color:n="currentColor",size:l="1em",weight:s="regular",mirrored:i=!1,children:o,weights:d,...c}=e;return r.createElement("svg",{ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,fill:n,viewBox:"0 0 256 256",transform:i?"scale(-1, 1)":void 0,...c},!!a&&r.createElement("title",null,a),o,d.get(s))});n.displayName="SSRBase"},11248:(e,t,a)=>{"use strict";a.d(t,{default:()=>i});var r=a(3680),n=a(78604),l=a(32895),s=a(97713);function i(){let[e,t]=(0,n.useState)("light"),[a,i]=(0,n.useState)(!1);(0,n.useEffect)(()=>{t("u"<typeof document?"light":"dark"===document.documentElement.getAttribute("data-theme")?"dark":"light"),i(!0)},[]);let o="dark"===e?l.b:s.A,d="dark"===e?"Switch to light theme":"Switch to dark theme";return(0,r.jsx)("button",{type:"button",onClick:()=>{let a="dark"===e?"light":"dark";document.documentElement.setAttribute("data-theme",a);try{localStorage.setItem("nodal.theme",a)}catch{}t(a)},"aria-label":d,title:d,className:"flex h-[34px] w-[34px] items-center justify-center rounded-md border border-rule-2 bg-paper text-ink-2 transition-colors hover:text-ink",suppressHydrationWarning:!0,children:a?(0,r.jsx)(o,{size:15}):(0,r.jsx)(s.A,{size:15})})}},27540:(e,t,a)=>{"use strict";var r=a(71268);a.o(r,"usePathname")&&a.d(t,{usePathname:function(){return r.usePathname}}),a.o(r,"useRouter")&&a.d(t,{useRouter:function(){return r.useRouter}}),a.o(r,"useSearchParams")&&a.d(t,{useSearchParams:function(){return r.useSearchParams}})},32928:(e,t,a)=>{"use strict";a.d(t,{e:()=>i});var r=a(78604),n=a(53087);let l=new Map([["bold",r.createElement(r.Fragment,null,r.createElement("path",{d:"M232.49,215.51,185,168a92.12,92.12,0,1,0-17,17l47.53,47.54a12,12,0,0,0,17-17ZM44,112a68,68,0,1,1,68,68A68.07,68.07,0,0,1,44,112Z"}))],["duotone",r.createElement(r.Fragment,null,r.createElement("path",{d:"M192,112a80,80,0,1,1-80-80A80,80,0,0,1,192,112Z",opacity:"0.2"}),r.createElement("path",{d:"M229.66,218.34,179.6,168.28a88.21,88.21,0,1,0-11.32,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"}))],["fill",r.createElement(r.Fragment,null,r.createElement("path",{d:"M168,112a56,56,0,1,1-56-56A56,56,0,0,1,168,112Zm61.66,117.66a8,8,0,0,1-11.32,0l-50.06-50.07a88,88,0,1,1,11.32-11.31l50.06,50.06A8,8,0,0,1,229.66,229.66ZM112,184a72,72,0,1,0-72-72A72.08,72.08,0,0,0,112,184Z"}))],["light",r.createElement(r.Fragment,null,r.createElement("path",{d:"M228.24,219.76l-51.38-51.38a86.15,86.15,0,1,0-8.48,8.48l51.38,51.38a6,6,0,0,0,8.48-8.48ZM38,112a74,74,0,1,1,74,74A74.09,74.09,0,0,1,38,112Z"}))],["regular",r.createElement(r.Fragment,null,r.createElement("path",{d:"M229.66,218.34l-50.07-50.06a88.11,88.11,0,1,0-11.31,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"}))],["thin",r.createElement(r.Fragment,null,r.createElement("path",{d:"M226.83,221.17l-52.7-52.7a84.1,84.1,0,1,0-5.66,5.66l52.7,52.7a4,4,0,0,0,5.66-5.66ZM36,112a76,76,0,1,1,76,76A76.08,76.08,0,0,1,36,112Z"}))]]),s=r.forwardRef((e,t)=>r.createElement(n.A,{ref:t,...e,weights:l}));s.displayName="MagnifyingGlassIcon";let i=s},34504:(e,t,a)=>{"use strict";a.d(t,{default:()=>s});var r=a(3680),n=a(27540),l=a(78604);function s({agents:e,toolNames:t}){let a=(0,n.useRouter)(),i=(0,n.useSearchParams)(),[o,d]=(0,l.useTransition)(),c=i.get("agent")??"",u=i.get("tool")??"";function p(e){let t=new URLSearchParams(i.toString());for(let[a,r]of Object.entries(e))r?t.set(a,r):t.delete(a);t.delete("page"),d(()=>{a.replace(`/logs?${t.toString()}`)})}return(0,r.jsxs)("div",{className:"flex flex-wrap items-end gap-3 rounded-xl border border-rule-2 bg-paper px-4 py-3",children:[(0,r.jsxs)("div",{className:"min-w-[180px] flex-1",children:[(0,r.jsx)("label",{className:"mb-1 block text-[11px] uppercase tracking-wider text-ink-3",children:"Agent"}),(0,r.jsxs)("select",{value:c,onChange:e=>p({agent:e.target.value||null}),disabled:o,className:"w-full rounded-md border border-rule bg-canvas px-2 py-1.5 text-sm text-ink focus:border-ink-3 focus:outline-none",children:[(0,r.jsx)("option",{value:"",children:"All agents"}),e.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),(0,r.jsxs)("div",{className:"min-w-[200px] flex-1",children:[(0,r.jsx)("label",{className:"mb-1 block text-[11px] uppercase tracking-wider text-ink-3",children:"Tool name"}),(0,r.jsxs)("select",{value:u,onChange:e=>p({tool:e.target.value||null}),disabled:o,className:"w-full rounded-md border border-rule bg-canvas px-2 py-1.5 font-mono text-sm text-ink focus:border-ink-3 focus:outline-none",children:[(0,r.jsx)("option",{value:"",children:"All tools"}),t.map(e=>(0,r.jsx)("option",{value:e,children:e},e))]})]})]})}},39186:(e,t,a)=>{"use strict";a.d(t,{ApprovalsProvider:()=>o,e:()=>c});var r=a(3680),n=a(78604),l=a(64678);let s=(0,l.createServerReference)("4091a56ae49f9692f037a27b1733ac3e62709ec8ea",l.callServer,void 0,l.findSourceMapURL,"listApprovalsAction"),i=(0,n.createContext)(null);function o({initial:e,children:t}){let[a,l]=(0,n.useState)(e),d=(0,n.useCallback)(async()=>{let e=await s({status:"pending"});e.ok&&l(e.data.map(e=>({id:e.id,jobId:e.jobId,toolName:e.toolName,agentName:e.agentName,toolInput:e.toolInput,requestedAt:e.requestedAt})))},[]);(0,n.useEffect)(()=>{let e=setInterval(()=>{document.hidden||d()},15e3);function t(){document.hidden||d()}return document.addEventListener("visibilitychange",t),()=>{clearInterval(e),document.removeEventListener("visibilitychange",t)}},[d]);let c=(0,n.useCallback)(()=>{d()},[d]);return(0,r.jsx)(i.Provider,{value:{pending:a,refresh:c},children:t})}let d={pending:[],refresh:()=>{}};function c(){let e=(0,n.useContext)(i);return e||(console.warn("[useApprovals] called outside <ApprovalsProvider> — returning empty state."),d)}},47663:(e,t,a)=>{"use strict";a.d(t,{C:()=>n});var r=a(64678);let n=(0,r.createServerReference)("406589af82ec340355335d69e976a33b4a5205acdc",r.callServer,void 0,r.findSourceMapURL,"resolveApprovalAction")},47883:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(78604);let n=new Map([["bold",r.createElement(r.Fragment,null,r.createElement("path",{d:"M240.26,186.1,152.81,34.23h0a28.74,28.74,0,0,0-49.62,0L15.74,186.1a27.45,27.45,0,0,0,0,27.71A28.31,28.31,0,0,0,40.55,228h174.9a28.31,28.31,0,0,0,24.79-14.19A27.45,27.45,0,0,0,240.26,186.1Zm-20.8,15.7a4.46,4.46,0,0,1-4,2.2H40.55a4.46,4.46,0,0,1-4-2.2,3.56,3.56,0,0,1,0-3.73L124,46.2a4.77,4.77,0,0,1,8,0l87.44,151.87A3.56,3.56,0,0,1,219.46,201.8ZM116,136V104a12,12,0,0,1,24,0v32a12,12,0,0,1-24,0Zm28,40a16,16,0,1,1-16-16A16,16,0,0,1,144,176Z"}))],["duotone",r.createElement(r.Fragment,null,r.createElement("path",{d:"M215.46,216H40.54C27.92,216,20,202.79,26.13,192.09L113.59,40.22c6.3-11,22.52-11,28.82,0l87.46,151.87C236,202.79,228.08,216,215.46,216Z",opacity:"0.2"}),r.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["fill",r.createElement(r.Fragment,null,r.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM120,104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm8,88a12,12,0,1,1,12-12A12,12,0,0,1,128,192Z"}))],["light",r.createElement(r.Fragment,null,r.createElement("path",{d:"M235.07,189.09,147.61,37.22h0a22.75,22.75,0,0,0-39.22,0L20.93,189.09a21.53,21.53,0,0,0,0,21.72A22.35,22.35,0,0,0,40.55,222h174.9a22.35,22.35,0,0,0,19.6-11.19A21.53,21.53,0,0,0,235.07,189.09ZM224.66,204.8a10.46,10.46,0,0,1-9.21,5.2H40.55a10.46,10.46,0,0,1-9.21-5.2,9.51,9.51,0,0,1,0-9.72L118.79,43.21a10.75,10.75,0,0,1,18.42,0l87.46,151.87A9.51,9.51,0,0,1,224.66,204.8ZM122,144V104a6,6,0,0,1,12,0v40a6,6,0,0,1-12,0Zm16,36a10,10,0,1,1-10-10A10,10,0,0,1,138,180Z"}))],["regular",r.createElement(r.Fragment,null,r.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["thin",r.createElement(r.Fragment,null,r.createElement("path",{d:"M233.34,190.09,145.88,38.22h0a20.75,20.75,0,0,0-35.76,0L22.66,190.09a19.52,19.52,0,0,0,0,19.71A20.36,20.36,0,0,0,40.54,220H215.46a20.36,20.36,0,0,0,17.86-10.2A19.52,19.52,0,0,0,233.34,190.09ZM226.4,205.8a12.47,12.47,0,0,1-10.94,6.2H40.54a12.47,12.47,0,0,1-10.94-6.2,11.45,11.45,0,0,1,0-11.72L117.05,42.21a12.76,12.76,0,0,1,21.9,0L226.4,194.08A11.45,11.45,0,0,1,226.4,205.8ZM124,144V104a4,4,0,0,1,8,0v40a4,4,0,0,1-8,0Zm12,36a8,8,0,1,1-8-8A8,8,0,0,1,136,180Z"}))]])},50131:(e,t,a)=>{"use strict";a.d(t,{N:()=>i});var r=a(78604),n=a(5977),l=a(47883);let s=r.forwardRef((e,t)=>r.createElement(n.A,{ref:t,...e,weights:l.A}));s.displayName="WarningIcon";let i=s},54935:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(78604);let n=new Map([["bold",r.createElement(r.Fragment,null,r.createElement("path",{d:"M176.49,95.51a12,12,0,0,1,0,17l-56,56a12,12,0,0,1-17,0l-24-24a12,12,0,1,1,17-17L112,143l47.51-47.52A12,12,0,0,1,176.49,95.51ZM236,128A108,108,0,1,1,128,20,108.12,108.12,0,0,1,236,128Zm-24,0a84,84,0,1,0-84,84A84.09,84.09,0,0,0,212,128Z"}))],["duotone",r.createElement(r.Fragment,null,r.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),r.createElement("path",{d:"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z"}))],["fill",r.createElement(r.Fragment,null,r.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm45.66,85.66-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35a8,8,0,0,1,11.32,11.32Z"}))],["light",r.createElement(r.Fragment,null,r.createElement("path",{d:"M172.24,99.76a6,6,0,0,1,0,8.48l-56,56a6,6,0,0,1-8.48,0l-24-24a6,6,0,0,1,8.48-8.48L112,151.51l51.76-51.75A6,6,0,0,1,172.24,99.76ZM230,128A102,102,0,1,1,128,26,102.12,102.12,0,0,1,230,128Zm-12,0a90,90,0,1,0-90,90A90.1,90.1,0,0,0,218,128Z"}))],["regular",r.createElement(r.Fragment,null,r.createElement("path",{d:"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z"}))],["thin",r.createElement(r.Fragment,null,r.createElement("path",{d:"M170.83,101.17a4,4,0,0,1,0,5.66l-56,56a4,4,0,0,1-5.66,0l-24-24a4,4,0,0,1,5.66-5.66L112,154.34l53.17-53.17A4,4,0,0,1,170.83,101.17ZM228,128A100,100,0,1,1,128,28,100.11,100.11,0,0,1,228,128Zm-8,0a92,92,0,1,0-92,92A92.1,92.1,0,0,0,220,128Z"}))]])},64676:(e,t,a)=>{"use strict";a.d(t,{default:()=>s});var r=a(3680),n=a(32928),l=a(78604);function s({placeholder:e="Search agents, skills, runs…",keyboardShortcut:t=!0,onSubmit:a,className:i=""}){let o=(0,l.useRef)(null);return(0,l.useEffect)(()=>{if(!t)return;let e=e=>{if("/"!==e.key)return;let t=e.target;t&&/^(input|textarea|select)$/i.test(t.tagName)||t?.isContentEditable||(e.preventDefault(),o.current?.focus())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t]),(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault(),a?.(o.current?.value??"")},className:`flex h-[34px] min-w-[280px] items-center gap-2 rounded-md border border-rule-2 bg-paper px-3 text-[13px] text-ink-4 ${i}`,children:[(0,r.jsx)(n.e,{size:13,className:"shrink-0"}),(0,r.jsx)("input",{ref:o,type:"search",placeholder:e,className:"flex-1 border-0 bg-transparent text-[14px] leading-none text-ink outline-none placeholder:text-ink-4"}),(0,r.jsx)("span",{className:"rounded-[5px] border border-rule bg-black/5 px-1.5 py-[1px] font-mono text-[12px] leading-none text-ink-4 dark:bg-white/[0.06]",children:"/"})]})}},73715:(e,t,a)=>{Promise.resolve().then(a.bind(a,34504)),Promise.resolve().then(a.bind(a,82270)),Promise.resolve().then(a.bind(a,88563)),Promise.resolve().then(a.bind(a,64676)),Promise.resolve().then(a.bind(a,11248)),Promise.resolve().then(a.t.bind(a,63363,23))},82270:(e,t,a)=>{"use strict";a.d(t,{default:()=>c});var r=a(3680),n=a(63363),l=a.n(n),s=a(78604),i=a(93606);function o(e){return!!e&&/^(error|\[ERROR|Error:|RuntimeError)/i.test(e.trim())}function d(e){if(null==e)return"—";if("string"==typeof e)try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}try{return JSON.stringify(e,null,2)}catch{return String(e)}}function c({items:e}){let[t,a]=(0,s.useState)(null);return(0,r.jsx)("div",{className:"overflow-hidden rounded-xl border border-rule-2 bg-paper",children:(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full text-sm",children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{className:"border-b border-rule-2",children:[(0,r.jsx)("th",{className:"px-5 py-3 text-left text-[10px] font-semibold uppercase tracking-wider whitespace-nowrap text-ink-3",children:"Time"}),(0,r.jsx)("th",{className:"px-5 py-3 text-left text-[10px] font-semibold uppercase tracking-wider whitespace-nowrap text-ink-3",children:"Lvl"}),(0,r.jsx)("th",{className:"px-5 py-3 text-left text-[10px] font-semibold uppercase tracking-wider whitespace-nowrap text-ink-3",children:"Tool"}),(0,r.jsx)("th",{className:"hidden px-5 py-3 text-left text-[10px] font-semibold uppercase tracking-wider whitespace-nowrap text-ink-3 md:table-cell",children:"Agent"}),(0,r.jsx)("th",{className:"hidden px-5 py-3 text-left text-[10px] font-semibold uppercase tracking-wider whitespace-nowrap text-ink-3 lg:table-cell",children:"Duration"}),(0,r.jsx)("th",{className:"hidden px-5 py-3 text-left text-[10px] font-semibold uppercase tracking-wider whitespace-nowrap text-ink-3 lg:table-cell",children:"Job"})]})}),(0,r.jsx)("tbody",{children:e.map(e=>{var n;let c=t===e.id,u=o(e.toolOutput);return(0,r.jsxs)(s.Fragment,{children:[(0,r.jsxs)("tr",{className:`cursor-pointer border-b border-dashed border-rule align-top transition-colors last:border-0 ${c?"bg-hover":"hover:bg-hover"}`,onClick:()=>a(c?null:e.id),"aria-expanded":c,"data-testid":`log-row-${e.id}`,children:[(0,r.jsxs)("td",{className:"px-5 py-3 font-mono text-xs text-ink-4 whitespace-nowrap",children:[e.createdAt?new Date(e.createdAt).toLocaleTimeString():"—",(0,r.jsx)("div",{className:"text-[10px] text-ink-4 opacity-60",children:e.createdAt?new Date(e.createdAt).toLocaleDateString():""})]}),(0,r.jsx)("td",{className:"px-5 py-3",children:(0,r.jsx)(i.A,{variant:o(e.toolOutput)?"lvl-err":"lvl-info",icon:null})}),(0,r.jsxs)("td",{className:"px-5 py-3",children:[(0,r.jsx)("code",{className:`font-mono text-xs ${u?"text-err":"text-conn-vivid"}`,children:e.toolName}),null!==e.turn&&(0,r.jsxs)("span",{className:"ml-2 text-[10px] text-ink-4",children:["turn ",e.turn]})]}),(0,r.jsx)("td",{className:"hidden px-5 py-3 text-xs md:table-cell",onClick:e=>e.stopPropagation(),children:e.agentName?(0,r.jsx)(l(),{href:`/logs?agent=${e.agentId}`,className:"text-ink-2 hover:text-ink",children:e.agentName}):(0,r.jsx)("span",{className:"text-ink-4",children:"—"})}),(0,r.jsx)("td",{className:"hidden px-5 py-3 font-mono text-xs text-ink-3 lg:table-cell",children:null==(n=e.durationMs)?"—":n<1e3?`${n}ms`:`${(n/1e3).toFixed(1)}s`}),(0,r.jsx)("td",{className:"hidden px-5 py-3 lg:table-cell",onClick:e=>e.stopPropagation(),children:e.jobId?(0,r.jsx)(l(),{href:`/jobs/${e.jobId}`,className:"font-mono text-xs text-ink-3 hover:text-ink",children:e.jobId.slice(0,8)}):(0,r.jsx)("span",{className:"text-ink-4",children:"—"})})]}),c&&(0,r.jsx)("tr",{className:"border-b border-rule-2 bg-canvas","data-testid":`log-detail-${e.id}`,children:(0,r.jsx)("td",{colSpan:6,className:"px-5 py-4",children:(0,r.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"mb-1.5 text-[10px] uppercase tracking-wider text-ink-3",children:"Input"}),(0,r.jsx)("pre",{className:"max-h-96 overflow-y-auto overflow-x-auto whitespace-pre-wrap break-all rounded-md border border-rule bg-paper px-3 py-2 font-mono text-[11px] text-ink-2",children:d(e.toolInput)})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"mb-1.5 text-[10px] uppercase tracking-wider text-ink-3",children:"Output"}),(0,r.jsx)("pre",{className:`max-h-96 overflow-y-auto overflow-x-auto whitespace-pre-wrap break-all rounded-md border px-3 py-2 font-mono text-[11px] ${u?"border-err/25 text-err bg-paper":"border-rule bg-paper text-ink-2"}`,children:d(e.toolOutput)})]})]})})})]},e.id)})})]})})})}},82592:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var r=a(3680);let n={ok:"bg-ok",lime:"bg-agent-vivid",coral:"bg-skill-vivid",blue:"bg-conn-vivid"},l={ok:"animate-[blip_1.4s_ease-out_infinite]",lime:"animate-[blip-lime_1.5s_ease-out_infinite]",coral:"animate-[blip-coral_1.4s_ease-out_infinite]",blue:"animate-[blip-blue_1.4s_ease-out_infinite]"};function s({variant:e="ok",size:t="sm",animate:a=!0,className:i=""}){return(0,r.jsx)("span",{className:`inline-block shrink-0 rounded-full ${"sm"===t?"h-[7px] w-[7px]":"h-2 w-2"} ${n[e]} ${a?l[e]:""} ${i}`})}},86127:(e,t,a)=>{"use strict";a.d(t,{r:()=>i});var r=a(78604),n=a(5977),l=a(54935);let s=r.forwardRef((e,t)=>r.createElement(n.A,{ref:t,...e,weights:l.A}));s.displayName="CheckCircleIcon";let i=s},88563:(e,t,a)=>{"use strict";a.d(t,{default:()=>m});var r=a(3680),n=a(78604),l=a(63363),s=a.n(l),i=a(7101),o=a(39504),d=a(47663),c=a(39186);function u({item:e,onApproved:t}){let[a,l]=(0,n.useTransition)();return(0,r.jsx)("button",{type:"button",onClick:a=>{a.preventDefault(),a.stopPropagation(),l(async()=>{let a=await (0,d.C)({approvalRequestId:e.id,decision:"approve"});a.ok?(o.oR.success("Approved"),t()):o.oR.error(a.message)})},disabled:a,className:"shrink-0 rounded-md bg-ok px-2.5 py-1 text-[12px] font-semibold text-canvas transition-[filter] hover:brightness-[0.92] disabled:opacity-40",children:a?"…":"Approve"})}function p({items:e,onClose:t,onApproved:a}){let l=(0,n.useRef)(null);return(0,n.useEffect)(()=>{function e(e){l.current&&!l.current.contains(e.target)&&t()}return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[t]),(0,n.useEffect)(()=>{function e(e){"Escape"===e.key&&t()}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t]),(0,r.jsxs)("div",{ref:l,className:"absolute right-0 top-full z-50 mt-1.5 w-[340px] rounded-xl border border-rule-2 bg-paper shadow-lg",role:"dialog","aria-label":"Pending approvals",children:[(0,r.jsx)("div",{className:"border-b border-rule-2 px-4 py-3",children:(0,r.jsxs)("p",{className:"text-[14px] font-semibold text-ink",children:["Pending approvals (",e.length,")"]})}),0===e.length?(0,r.jsx)("p",{className:"px-4 py-5 text-center text-[13px] text-ink-3",children:"No pending approvals."}):(0,r.jsx)("ul",{className:"max-h-[340px] divide-y divide-rule-2 overflow-y-auto",children:e.map(e=>(0,r.jsx)("li",{children:(0,r.jsxs)(s(),{href:`/jobs/${e.jobId}`,onClick:t,className:"flex items-start gap-3 px-4 py-3 transition-colors hover:bg-hover",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("p",{className:"truncate text-[13px] font-medium text-ink",children:[e.agentName??"Agent",(0,r.jsx)("span",{className:"mx-1 text-ink-4",children:"\xb7"}),(0,r.jsx)("code",{className:"rounded bg-canvas px-1 py-0.5 font-mono text-[12px] text-ink-2",children:e.toolName})]}),(0,r.jsx)("p",{className:"mt-0.5 truncate text-[12px] text-ink-3",children:function(e){if(!e)return"—";if("string"==typeof e.purpose&&e.purpose.trim()){let t=e.purpose.trim();return t.length>80?t.slice(0,77)+"…":t}if("string"==typeof e.command){let t=e.command;return t.length>60?t.slice(0,57)+"…":t}let t=JSON.stringify(e);return t.length>60?t.slice(0,57)+"…":t}(e.toolInput)}),(0,r.jsx)("p",{className:"mt-0.5 text-[11px] text-ink-4",children:function(e){if(!e)return"—";let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(t<60)return`${t}s ago`;let a=Math.floor(t/60);if(a<60)return`${a}m ago`;let r=Math.floor(a/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}(e.requestedAt)})]}),(0,r.jsx)(u,{item:e,onApproved:a})]})},e.id))}),(0,r.jsx)("div",{className:"border-t border-rule-2 px-4 py-2.5",children:(0,r.jsx)(s(),{href:"/approvals",onClick:t,className:"text-[13px] font-medium text-ink-2 transition-colors hover:text-ink",children:"See all approvals →"})})]})}function m(){let{pending:e,refresh:t}=(0,c.e)(),[a,l]=(0,n.useState)(!1),s=(0,n.useRef)(null),o=e.length,d=(0,n.useCallback)(()=>l(!1),[]),u=(0,n.useCallback)(()=>l(e=>!e),[]),m=(0,n.useCallback)(()=>{t()},[t]);return(0,r.jsxs)("div",{ref:s,className:"relative",children:[(0,r.jsxs)("button",{type:"button","aria-label":"Notifications",title:"Notifications",onClick:u,className:"relative flex h-[34px] w-[34px] shrink-0 items-center justify-center rounded-md border border-rule-2 bg-paper text-ink-2 transition-colors hover:text-ink",children:[(0,r.jsx)(i.I,{size:15}),o>0&&(0,r.jsx)("span",{className:"absolute -top-1 -right-1 flex h-4 min-w-[16px] items-center justify-center rounded-full bg-err px-1 text-[11px] font-bold leading-none text-canvas",children:o>99?"99+":o})]}),a&&(0,r.jsx)(p,{items:e,onClose:d,onApproved:m})]})}},93606:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var r=a(3680),n=a(86127),l=a(50131),s=a(82592);let i={done:"Done",warn:"Attention",run:"Running",idle:"Idle","lvl-info":"INFO","lvl-ok":"OK","lvl-warn":"WARN","lvl-err":"ERR"},o={done:"bg-ok-bg text-ok",warn:"bg-warn-bg text-warn",run:"bg-run-bg text-run",idle:"bg-black/5 text-ink-3 dark:bg-white/5","lvl-info":"bg-black/5 text-ink-3 dark:bg-white/5","lvl-ok":"bg-ok-bg text-ok","lvl-warn":"bg-warn-bg text-warn","lvl-err":"bg-warn-bg text-err"};function d({variant:e,label:t,icon:a,className:c=""}){let u=t??i[e],p=null;return void 0!==a?p=a:"done"===e?p=(0,r.jsx)(n.r,{size:11,weight:"regular"}):"warn"===e?p=(0,r.jsx)(l.N,{size:11,weight:"regular"}):"run"===e&&(p=(0,r.jsx)(s.A,{variant:"blue",size:"sm"})),(0,r.jsxs)("span",{className:`inline-flex h-[22px] items-center gap-1.5 rounded-[5px] px-2.5 text-[12px] font-medium leading-none ${o[e]} ${c}`,children:[p,u]})}}},e=>{e.O(0,[3363,8161,1065,8724,7358],()=>e(e.s=73715)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7513],{1489:(e,t,a)=>{Promise.resolve().then(a.bind(a,47840))},5977:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(78604);let n=r.forwardRef((e,t)=>{let{alt:a,color:n="currentColor",size:l="1em",weight:s="regular",mirrored:o=!1,children:i,weights:c,...d}=e;return r.createElement("svg",{ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,fill:n,viewBox:"0 0 256 256",transform:o?"scale(-1, 1)":void 0,...d},!!a&&r.createElement("title",null,a),i,c.get(s))});n.displayName="SSRBase"},21021:(e,t,a)=>{"use strict";a.d(t,{CT:()=>o,Zr:()=>i,ah:()=>r,d3:()=>l});let r={gmail:"#ea4335","google-drive":"#4285f4","google-sheets":"#0f9d58","google-docs":"#4285f4","google-calendar":"#4285f4",notion:"#000000","notion-oauth":"#000000",airtable:"#f82b60","airtable-oauth":"#f82b60",github:"#24292f",linear:"#5e6ad2",hubspot:"#ff7a59",slack:"#4a154b",intercom:"#1f8ced",stripe:"#635bff",postgres:"#336791",apify:"#00aeff",firecrawl:"#f97316",tavily:"#6366f1",composio:"#000000",poyo:"#7c3aed"},n={gmail:"Gm","google-drive":"GD","google-sheets":"GS","google-docs":"GD","google-calendar":"GC",notion:"No","notion-oauth":"No",airtable:"At","airtable-oauth":"At",github:"Gh",linear:"Li",hubspot:"HS",slack:"Sl",intercom:"IC",stripe:"St",postgres:"PG",apify:"Ap",firecrawl:"FC",tavily:"Tv",composio:"Co","custom-http-mcp":"+","custom-stdio-mcp":"+","cogni-cortex":"CX",keyshot:"KS",photoshop:"Ps",poyo:"Po"};function l(e,t){return n[e]??t.slice(0,2).toUpperCase()}let s={notion:"/connector-icons/notion.svg","notion-oauth":"/connector-icons/notion.svg","google-drive":"/connector-icons/google-drive.svg",gmail:"/connector-icons/gmail.svg","google-sheets":"/connector-icons/google-sheets.svg","google-docs":"/connector-icons/google-docs.svg","google-calendar":"/connector-icons/google-calendar.svg",airtable:"/connector-icons/airtable.svg","airtable-oauth":"/connector-icons/airtable.svg",stripe:"/connector-icons/stripe.svg",sentry:"/connector-icons/sentry.svg","mcp-github":"/connector-icons/github.svg","mcp-postgres":"/connector-icons/postgresql.svg","mcp-git":"/connector-icons/git.svg",blender:"/connector-icons/blender.svg",unity:"/connector-icons/unity.svg","unreal-engine":"/connector-icons/unreal-engine.svg",photoshop:"/connector-icons/photoshop.svg","mcp-playwright":"/connector-icons/playwright.svg",supabase:"/connector-icons/supabase.svg",perplexity:"/connector-icons/perplexity.svg",linear:"/connector-icons/linear.svg",n8n:"/connector-icons/n8n.svg",firecrawl:"/connector-icons/firecrawl.svg",apify:"/connector-icons/apify.svg",tavily:"/connector-icons/tavily.svg","mcp-fetch":"/connector-icons/fetch.svg",keyshot:"/connector-icons/keyshot.svg",composio:"/connector-icons/composio.png"};function o(e){return s[e]??null}function i(e){return"mcp-filesystem"===e?"\uD83D\uDCC1":null}},27540:(e,t,a)=>{"use strict";var r=a(71268);a.o(r,"usePathname")&&a.d(t,{usePathname:function(){return r.usePathname}}),a.o(r,"useRouter")&&a.d(t,{useRouter:function(){return r.useRouter}}),a.o(r,"useSearchParams")&&a.d(t,{useSearchParams:function(){return r.useSearchParams}})},32928:(e,t,a)=>{"use strict";a.d(t,{e:()=>o});var r=a(78604),n=a(53087);let l=new Map([["bold",r.createElement(r.Fragment,null,r.createElement("path",{d:"M232.49,215.51,185,168a92.12,92.12,0,1,0-17,17l47.53,47.54a12,12,0,0,0,17-17ZM44,112a68,68,0,1,1,68,68A68.07,68.07,0,0,1,44,112Z"}))],["duotone",r.createElement(r.Fragment,null,r.createElement("path",{d:"M192,112a80,80,0,1,1-80-80A80,80,0,0,1,192,112Z",opacity:"0.2"}),r.createElement("path",{d:"M229.66,218.34,179.6,168.28a88.21,88.21,0,1,0-11.32,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"}))],["fill",r.createElement(r.Fragment,null,r.createElement("path",{d:"M168,112a56,56,0,1,1-56-56A56,56,0,0,1,168,112Zm61.66,117.66a8,8,0,0,1-11.32,0l-50.06-50.07a88,88,0,1,1,11.32-11.31l50.06,50.06A8,8,0,0,1,229.66,229.66ZM112,184a72,72,0,1,0-72-72A72.08,72.08,0,0,0,112,184Z"}))],["light",r.createElement(r.Fragment,null,r.createElement("path",{d:"M228.24,219.76l-51.38-51.38a86.15,86.15,0,1,0-8.48,8.48l51.38,51.38a6,6,0,0,0,8.48-8.48ZM38,112a74,74,0,1,1,74,74A74.09,74.09,0,0,1,38,112Z"}))],["regular",r.createElement(r.Fragment,null,r.createElement("path",{d:"M229.66,218.34l-50.07-50.06a88.11,88.11,0,1,0-11.31,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"}))],["thin",r.createElement(r.Fragment,null,r.createElement("path",{d:"M226.83,221.17l-52.7-52.7a84.1,84.1,0,1,0-5.66,5.66l52.7,52.7a4,4,0,0,0,5.66-5.66ZM36,112a76,76,0,1,1,76,76A76.08,76.08,0,0,1,36,112Z"}))]]),s=r.forwardRef((e,t)=>r.createElement(n.A,{ref:t,...e,weights:l}));s.displayName="MagnifyingGlassIcon";let o=s},40189:(e,t,a)=>{"use strict";a.d(t,{F:()=>o});var r=a(78604),n=a(53087);let l=new Map([["bold",r.createElement(r.Fragment,null,r.createElement("path",{d:"M228,128a12,12,0,0,1-12,12H140v76a12,12,0,0,1-24,0V140H40a12,12,0,0,1,0-24h76V40a12,12,0,0,1,24,0v76h76A12,12,0,0,1,228,128Z"}))],["duotone",r.createElement(r.Fragment,null,r.createElement("path",{d:"M216,56V200a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V56A16,16,0,0,1,56,40H200A16,16,0,0,1,216,56Z",opacity:"0.2"}),r.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z"}))],["fill",r.createElement(r.Fragment,null,r.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM184,136H136v48a8,8,0,0,1-16,0V136H72a8,8,0,0,1,0-16h48V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z"}))],["light",r.createElement(r.Fragment,null,r.createElement("path",{d:"M222,128a6,6,0,0,1-6,6H134v82a6,6,0,0,1-12,0V134H40a6,6,0,0,1,0-12h82V40a6,6,0,0,1,12,0v82h82A6,6,0,0,1,222,128Z"}))],["regular",r.createElement(r.Fragment,null,r.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z"}))],["thin",r.createElement(r.Fragment,null,r.createElement("path",{d:"M220,128a4,4,0,0,1-4,4H132v84a4,4,0,0,1-8,0V132H40a4,4,0,0,1,0-8h84V40a4,4,0,0,1,8,0v84h84A4,4,0,0,1,220,128Z"}))]]),s=r.forwardRef((e,t)=>r.createElement(n.A,{ref:t,...e,weights:l}));s.displayName="PlusIcon";let o=s},40319:(e,t,a)=>{"use strict";a.d(t,{r:()=>o});var r=a(78604),n=a(53087),l=a(54935);let s=r.forwardRef((e,t)=>r.createElement(n.A,{ref:t,...e,weights:l.A}));s.displayName="CheckCircleIcon";let o=s},47840:(e,t,a)=>{"use strict";a.d(t,{default:()=>T});var r=a(3680),n=a(78604),l=a(27540),s=a(73868),o=a(65668),i=a(28870),c=a(42357),d=a(66736),m=a(77045),u=a(40189),x=a(13260),p=a(81630),h=a(21021);function g({children:e,className:t=""}){return(0,r.jsx)("code",{className:`inline-flex items-center rounded-[5px] bg-hover px-1.5 py-1 font-mono text-[12px] leading-none tracking-[0.02em] text-ink-2 ${t}`,children:e})}var b=a(93606),v=a(39504),f=a(64678);let k=(0,f.createServerReference)("40baaf433f2cec4018ff71235206e003c8a52d1ffd",f.callServer,void 0,f.findSourceMapURL,"deleteMcpServerAction"),y=(0,f.createServerReference)("60cef8bf2b9dc3fc39725abfd3e32ae3e75a49c553",f.callServer,void 0,f.findSourceMapURL,"renameMcpServerAction"),j=(0,f.createServerReference)("60179332529b93530147cfe0ac66a8d2f76d0cec5a",f.callServer,void 0,f.findSourceMapURL,"updateMcpServerApiKeyAction");var N=a(14308);let C=(0,f.createServerReference)("403da9ba2931e17c6cb70c153768dd07a5b5ef3f7b",f.callServer,void 0,f.findSourceMapURL,"getMcpServerConfigAction"),A=(0,f.createServerReference)("60ac2447f4dad2be34c7f4a488f7bc5a243397a32e",f.callServer,void 0,f.findSourceMapURL,"updateMcpServerConfigAction"),w="w-full bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none";function S({mcpServerId:e,onDone:t,onCancel:a}){let[l,s]=(0,n.useState)(null),[o,i]=(0,n.useState)(null),[c,d]=(0,n.useTransition)(),[m,u]=(0,n.useState)(""),[x,p]=(0,n.useState)(""),[h,g]=(0,n.useState)("header"),[b,f]=(0,n.useState)(""),[k,y]=(0,n.useState)(""),[j,N]=(0,n.useState)(""),[M,E]=(0,n.useState)(""),[R,Z]=(0,n.useState)([]);if((0,n.useEffect)(()=>{let t=!1;return(async()=>{let a=await C(e);if(t)return;if(!a.ok)return i(a.message);let r=a.data;s(r),u(r.name),p(r.url??""),g(r.authScheme??"header"),f(r.authParamName??""),N(r.command??""),E(r.args.join("\n")),Z(r.envKeys.length>0?r.envKeys.map(e=>({key:e,value:""})):[{key:"",value:""}])})(),()=>{t=!0}},[e]),o)return(0,r.jsx)("div",{className:"bg-paper border border-rule-2 rounded-xl px-5 py-4",children:(0,r.jsx)("p",{className:"text-xs text-err",children:o})});if(!l)return(0,r.jsx)("div",{className:"bg-paper border border-rule-2 rounded-xl px-5 py-4",children:(0,r.jsx)("p",{className:"text-xs text-ink-4",children:"Loading configuration…"})});let $="stdio"===l.transport;function F(e,t){Z(a=>a.map((a,r)=>r===e?{...a,...t}:a))}return(0,r.jsxs)("form",{onSubmit:function(e){if(e.preventDefault(),!l)return;let a=m.trim();if(!a)return void v.oR.error("Name is required");let r={name:a};if("http"===l.transport){let e=x.trim();if(!e)return void v.oR.error("Server URL is required");if(r.url=e,r.authScheme=h,"bearer"!==h){let e=b.trim();if(!e)return void v.oR.error("Auth param name is required for this scheme");r.authParamName=e}let t=k.trim();t&&(r.apiKey=t)}else{let e=j.trim();if(!e)return void v.oR.error("Command is required");r.command=e,r.args=M.split("\n").map(e=>e.trim()).filter(Boolean);let t={};for(let e of R){let a=e.key.trim();a&&(t[a]=e.value)}r.env=t}d(async()=>{let e=await A(l.id,r);e.ok?(v.oR.success("Configuration updated"),t?.()):v.oR.error(e.message)})},className:"bg-paper border border-rule-2 rounded-xl px-5 py-4 space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-[11px] font-semibold uppercase tracking-wider text-ink-4 font-mono",children:[(0,r.jsx)("span",{children:l.slug}),(0,r.jsx)("span",{children:"\xb7"}),(0,r.jsx)("span",{children:l.transport})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:`edit-name-${l.id}`,className:"block text-xs text-ink-3 mb-1",children:"Name"}),(0,r.jsx)("input",{id:`edit-name-${l.id}`,type:"text",required:!0,value:m,onChange:e=>u(e.target.value),className:w})]}),!$&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:`edit-url-${l.id}`,className:"block text-xs text-ink-3 mb-1",children:"Server URL"}),(0,r.jsx)("input",{id:`edit-url-${l.id}`,type:"url",required:!0,value:x,onChange:e=>p(e.target.value),placeholder:"https://…",className:`${w} font-mono`})]}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("p",{className:"block text-xs text-ink-3",children:"Auth scheme"}),(0,r.jsx)("div",{className:"flex flex-wrap gap-2",children:["header","query","bearer"].map(e=>(0,r.jsxs)("label",{className:`flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs cursor-pointer border ${h===e?"bg-hover border-ink-3 text-ink":"bg-paper border-rule text-ink-3 hover:border-rule"}`,children:[(0,r.jsx)("input",{type:"radio",name:`edit-scheme-${l.id}`,value:e,checked:h===e,onChange:()=>g(e),className:"sr-only"}),"header"===e?"Header":"query"===e?"Query param":"Bearer"]},e))}),"bearer"!==h&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:`edit-auth-param-${l.id}`,className:"block text-xs text-ink-3 mb-1",children:"header"===h?"Header name":"Query param name"}),(0,r.jsx)("input",{id:`edit-auth-param-${l.id}`,type:"text",required:!0,value:b,onChange:e=>f(e.target.value),placeholder:"header"===h?"x-api-key":"api_key",className:`${w} font-mono`})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:`edit-key-${l.id}`,className:"block text-xs text-ink-3 mb-1",children:"API key"}),(0,r.jsx)("input",{id:`edit-key-${l.id}`,type:"password",autoComplete:"off",value:k,onChange:e=>y(e.target.value),placeholder:l.apiKeyLast4?`•••• ${l.apiKeyLast4} — leave blank to keep`:"Paste a key",className:`${w} font-mono`}),(0,r.jsx)("p",{className:"text-[12px] text-ink-4 mt-1",children:"Leave blank to keep the current key. The new config is verified against the live server before saving."})]})]}),$&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:`edit-command-${l.id}`,className:"block text-xs text-ink-3 mb-1",children:"Command"}),(0,r.jsx)("input",{id:`edit-command-${l.id}`,type:"text",required:!0,value:j,onChange:e=>N(e.target.value),placeholder:"npx",className:`${w} font-mono`})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{htmlFor:`edit-args-${l.id}`,className:"block text-xs text-ink-3 mb-1",children:["Arguments ",(0,r.jsx)("span",{className:"text-ink-4",children:"(one per line)"})]}),(0,r.jsx)("textarea",{id:`edit-args-${l.id}`,rows:Math.max(3,M.split("\n").length),value:M,onChange:e=>E(e.target.value),className:`${w} font-mono resize-none`})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("p",{className:"block text-xs text-ink-3 mb-1",children:["Environment variables"," ",(0,r.jsx)("span",{className:"text-ink-4",children:"(encrypted — leave value blank to keep)"})]}),(0,r.jsx)("div",{className:"space-y-2",children:R.map((e,t)=>(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("input",{type:"text",value:e.key,onChange:e=>F(t,{key:e.target.value}),placeholder:"VAR_NAME",className:`${w} flex-1 font-mono`}),(0,r.jsx)("input",{type:"password",autoComplete:"off",value:e.value,onChange:e=>F(t,{value:e.target.value}),placeholder:l.envKeys.includes(e.key)?"leave blank to keep":"value",className:`${w} flex-1 font-mono`}),(0,r.jsx)("button",{type:"button",onClick:()=>{Z(e=>e.filter((e,a)=>a!==t))},"aria-label":"Remove env var",className:"px-2 text-ink-3 hover:text-err",children:"\xd7"})]},t))}),(0,r.jsx)("button",{type:"button",onClick:function(){Z(e=>[...e,{key:"",value:""}])},className:"mt-2 text-[12px] text-ink-3 hover:text-ink",children:"+ Add variable"})]})]}),(0,r.jsxs)("div",{className:"flex gap-2 items-center pt-1",children:[(0,r.jsx)("button",{type:"submit",disabled:c||!m.trim(),className:"px-4 py-2 text-sm font-semibold bg-ink text-canvas rounded-md hover:brightness-[0.92] disabled:opacity-50",children:c?"Verifying…":"Save changes"}),a&&(0,r.jsx)("button",{type:"button",onClick:a,className:"text-xs text-ink-3 hover:text-ink underline",children:"Cancel"})]})]})}function M({instance:e,catalogLabel:t,description:a}){let s=(0,l.useRouter)(),[o,i]=(0,n.useTransition)(),[c,d]=(0,n.useState)(!1),[m,u]=(0,n.useState)(!1),[x,p]=(0,n.useState)(!1),[h,g]=(0,n.useState)(e.name),[b,f]=(0,n.useState)(!1),[C,A]=(0,n.useState)("");function w(){let t=h.trim();t&&t!==e.name?i(async()=>{let a=await y(e.id,t);a.ok?(v.oR.success("Renamed"),p(!1)):v.oR.error(a.message)}):p(!1)}function E(){let t=C.trim();t?i(async()=>{let a=await j(e.id,t);a.ok?(v.oR.success(`${e.name} key rotated`),f(!1),A("")):v.oR.error(a.message)}):v.oR.error("New API key is required")}return(0,r.jsxs)("div",{className:"bg-paper border border-rule-2 rounded-xl px-5 py-4",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[x?(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("input",{autoFocus:!0,value:h,onChange:e=>g(e.target.value),onKeyDown:t=>{"Enter"===t.key&&w(),"Escape"===t.key&&(g(e.name),p(!1))},className:"bg-hover border border-rule rounded-md px-2 py-1 text-sm text-ink focus:border-ink-3 focus:outline-none w-full max-w-xs"}),(0,r.jsx)("button",{type:"button",onClick:w,disabled:o,className:"text-xs text-ok hover:text-ok disabled:opacity-40",children:"Save"}),(0,r.jsx)("button",{type:"button",onClick:()=>{g(e.name),p(!1)},className:"text-xs text-ink-3 hover:text-ink-2",children:"Cancel"})]}):(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,r.jsx)("span",{className:"text-ink font-medium",children:e.name}),(0,r.jsx)("button",{type:"button",onClick:()=>p(!0),"aria-label":"Rename MCP server",className:"text-ink-4 hover:text-ink-3 transition-colors text-xs leading-none",title:"Rename",children:"✎"}),(0,r.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-ink-3 font-mono",children:t}),(0,r.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-ok",children:"connected"})]}),a&&(0,r.jsx)("p",{className:"text-xs text-ink-3 mt-0.5",children:a}),(0,r.jsxs)("p",{className:"text-xs text-ink-4 mt-1",children:[e.toolCount," tool",1===e.toolCount?"":"s"," discovered",e.apiKeyLast4?` \xb7 key …${e.apiKeyLast4}`:""]})]}),(0,r.jsxs)("div",{className:"shrink-0 flex gap-2 flex-wrap justify-end",children:[(0,r.jsx)("button",{type:"button",onClick:()=>{u(e=>!e),f(!1)},disabled:o,className:"px-2.5 py-1 text-xs font-medium border border-rule-2 text-ink-3 rounded-md hover:border-rule hover:text-ink disabled:opacity-40",children:m?"Cancel":"Edit config"}),(0,r.jsx)("button",{type:"button",onClick:()=>f(e=>!e),disabled:o,className:"px-2.5 py-1 text-xs font-medium border border-rule-2 text-ink-3 rounded-md hover:border-rule hover:text-ink disabled:opacity-40",children:b?"Cancel":"Rotate key"}),(0,r.jsx)("button",{type:"button",onClick:()=>d(!0),disabled:o,className:"px-2.5 py-1 text-xs font-medium border border-err/30 text-err rounded-md hover:border-err/30 hover:text-err disabled:opacity-40",children:"Disconnect"})]})]}),b&&(0,r.jsxs)("div",{className:"space-y-3 pt-3 mt-3 border-t border-rule-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:`mcp-rotate-${e.id}`,className:"block text-xs text-ink-3 mb-1",children:"New API key"}),(0,r.jsx)("input",{id:`mcp-rotate-${e.id}`,type:"password",autoComplete:"off",autoFocus:!0,value:C,onChange:e=>A(e.target.value),onKeyDown:e=>{"Enter"===e.key&&E(),"Escape"===e.key&&(A(""),f(!1))},placeholder:"Paste the new key",className:"w-full bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none font-mono"}),(0,r.jsx)("p",{className:"text-[12px] text-ink-4 mt-1",children:"Agent assignments stay intact — the key is verified against the server before being saved."})]}),(0,r.jsxs)("div",{className:"flex gap-2 items-center",children:[(0,r.jsx)("button",{type:"button",onClick:E,disabled:o||!C.trim(),className:"px-4 py-2 text-sm font-semibold bg-ink text-canvas rounded-md hover:brightness-[0.92] disabled:opacity-50",children:o?"Verifying…":"Save new key"}),(0,r.jsx)("button",{type:"button",onClick:()=>{A(""),f(!1)},className:"text-xs text-ink-3 hover:text-ink underline",children:"Cancel"})]})]}),m&&(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)(S,{mcpServerId:e.id,onDone:()=>{u(!1),s.refresh()},onCancel:()=>u(!1)})}),(0,r.jsx)(N.A,{open:c,title:`Disconnect "${e.name}"?`,message:"The MCP connector and all its agent assignments will be removed. Re-connecting later requires the API key again.",confirmLabel:"Disconnect",onConfirm:function(){d(!1),i(async()=>{let t=await k(e.id);t.ok?v.oR.success(`${e.name} disconnected`):v.oR.error(t.message)})},onCancel:()=>d(!1)})]})}function E({instances:e,catalog:t}){return(0,r.jsx)("div",{className:"overflow-hidden rounded-2xl border border-rule-2 bg-paper",children:(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full border-collapse",children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{children:[(0,r.jsx)(R,{label:"Server"}),(0,r.jsx)(R,{label:"Tools"}),(0,r.jsx)(R,{label:"Transport"}),(0,r.jsx)(R,{label:"Status"}),(0,r.jsx)(R,{label:"Actions",align:"right"})]})}),(0,r.jsx)("tbody",{children:e.map(e=>{let a=t.find(t=>t.slug===e.slug);return(0,r.jsx)(Z,{instance:e,catalogLabel:a?.label??e.name,description:a?.description??"",transport:a?.transport??"http"},e.id)})})]})})})}function R({label:e,align:t="left"}){return(0,r.jsx)("th",{className:`border-b border-rule-2 px-[18px] pt-3.5 pb-2.5 font-mono text-[9.5px] font-normal whitespace-nowrap uppercase tracking-[0.16em] text-ink-4 ${"right"===t?"text-right":"text-left"}`,scope:"col",children:e})}function Z({instance:e,catalogLabel:t,description:a,transport:l}){let[s,o]=(0,n.useState)(!1),i=t.slice(0,2).toUpperCase(),c=(0,h.CT)(e.slug),d=(0,h.Zr)(e.slug);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("tr",{className:"border-b border-rule-2 last:border-0 hover:bg-hover",children:[(0,r.jsx)("td",{className:"px-[18px] py-[13px] align-middle",children:(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)(p.A,{variant:"conn",size:"sm",shape:"square",background:c||d?"#ffffff":"#3565ff",children:c?(0,r.jsx)("img",{src:c,alt:"",className:"h-4 w-4 object-contain"}):d?(0,r.jsx)("span",{className:"text-[15px] leading-none",children:d}):(0,r.jsx)("span",{className:"font-mono text-[10px] font-semibold tracking-[0.04em]",children:i})}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("div",{className:"text-[13.5px] font-medium leading-[1.2] text-ink",children:e.name}),(0,r.jsx)("div",{className:"mt-0.5 font-mono text-[10.5px] uppercase tracking-[0.12em] text-ink-4",children:t})]})]})}),(0,r.jsxs)("td",{className:"px-[18px] py-[13px] align-middle",children:[(0,r.jsx)("span",{className:"font-mono text-[12.5px] text-ink-2",children:e.toolCount}),0===e.toolCount&&(0,r.jsx)("span",{className:"ml-1 font-mono text-[11px] text-ink-4",children:"none"})]}),(0,r.jsx)("td",{className:"px-[18px] py-[13px] align-middle",children:(0,r.jsx)(g,{children:l})}),(0,r.jsx)("td",{className:"px-[18px] py-[13px] align-middle",children:(0,r.jsx)(b.A,{variant:e.active?"done":"warn",label:e.active?"Connected":"Inactive"})}),(0,r.jsx)("td",{className:"px-[18px] py-[13px] align-middle",children:(0,r.jsx)("div",{className:"flex items-center justify-end gap-2",children:(0,r.jsx)("button",{type:"button",onClick:()=>o(e=>!e),className:"inline-flex h-[30px] items-center gap-1.5 rounded-[7px] border border-rule bg-paper px-3 text-[12px] font-medium leading-none text-ink-2 transition-colors hover:bg-hover hover:text-ink",children:s?"Close":"Configure"})})})]}),s&&(0,r.jsx)("tr",{className:"border-b border-rule-2 last:border-0 bg-hover/40",children:(0,r.jsx)("td",{colSpan:5,className:"px-[18px] py-3",children:(0,r.jsx)(M,{instance:e,catalogLabel:t,description:a})})})]})}var $=a(40319),F=a(37820),L=a(16237);let P=(0,f.createServerReference)("400ba050d0c503e02c7f46ef81c574adf3d695e03a",f.callServer,void 0,f.findSourceMapURL,"createMcpServerFromCatalogAction");function H({catalogItem:e,onDone:t}){let[a,l]=(0,n.useTransition)(),[s,o]=(0,n.useState)(""),[i,c]=(0,n.useState)(""),[d,m]=(0,n.useState)(""),[u,x]=(0,n.useState)(""),[p,h]=(0,n.useState)("header"),[g,b]=(0,n.useState)(""),[f,k]=(0,n.useState)(""),[y,j]=(0,n.useState)(""),[N,C]=(0,n.useState)(()=>(e.args??[]).join("\n")),[A,w]=(0,n.useState)(()=>{let t=e.envVarNames??[];return t.length>0?t.map(e=>({key:e,value:""})):[{key:"",value:""}]}),S="custom-http-mcp"===e.slug,M="custom-stdio-mcp"===e.slug,E="stdio"===e.transport,R=E&&!M,Z=!E&&null===e.serverUrl;function $(){o(""),c(""),m(""),x(""),h("header"),b(""),k(""),j(""),C((e.args??[]).join("\n"));let t=e.envVarNames??[];w(t.length>0?t.map(e=>({key:e,value:""})):[{key:"",value:""}])}function F(){w(e=>[...e,{key:"",value:""}])}function L(e){w(t=>t.filter((t,a)=>a!==e))}function _(e,t){w(a=>a.map((a,r)=>r===e?{...a,...t}:a))}let q=u.trim()?`${u.trim().replace(/-/g,"_")}__list_things`:"my_slug__list_things";return(0,r.jsxs)("form",{onSubmit:function(a){a.preventDefault();let r=s.trim();if(!r)return void v.oR.error("Name is required");if(R){let a=N.split("\n").map(e=>e.trim()).filter(Boolean),n={};for(let e of A){let t=e.key.trim();t&&(n[t]=e.value)}l(async()=>{let l=await P({slug:e.slug,name:r,customArgs:a,customEnv:Object.keys(n).length>0?n:void 0});l.ok?(v.oR.success(`${r} connected`),$(),t?.()):v.oR.error(l.message)});return}if(M){let a=u.trim(),n=f.trim();if(!a)return v.oR.error("Server slug is required");if(!/^[a-z0-9-]+$/.test(a))return v.oR.error("Slug must be lowercase letters, digits, dashes");if(!n)return v.oR.error("Command is required");let s=y.split("\n").map(e=>e.trim()).filter(Boolean),o={};for(let e of A){let t=e.key.trim();t&&(o[t]=e.value)}return void l(async()=>{let l=await P({slug:e.slug,name:r,customSlug:a,customCommand:n,customArgs:s,customEnv:o});l.ok?(v.oR.success(`${r} connected`),$(),t?.()):v.oR.error(l.message)})}let n=i.trim(),o=d.trim();if(!n)return void v.oR.error("API key is required");if(Z&&!o)return void v.oR.error("Server URL is required");if(S){let e=u.trim();if(!e)return v.oR.error("Server slug is required");if(!/^[a-z0-9-]+$/.test(e))return v.oR.error("Slug must be lowercase letters, digits, dashes");if("bearer"!==p&&!g.trim())return v.oR.error("Auth param name is required for this scheme")}l(async()=>{let a={slug:e.slug,name:r,apiKey:n};Z&&(a.url=o),S&&(a.customSlug=u.trim(),a.customAuthScheme=p,"bearer"!==p&&(a.customAuthParamName=g.trim()));let l=await P(a);l.ok?(v.oR.success(`${r} connected`),$(),t?.()):v.oR.error(l.message)})},className:"space-y-3",children:[e.description&&(0,r.jsx)("p",{className:"text-xs text-ink-4",children:e.description}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{htmlFor:`mcp-name-${e.slug}`,className:"block text-xs text-ink-3 mb-1",children:["Name ",(0,r.jsx)("span",{className:"text-ink-4",children:'(e.g. "Cortex — perso")'})]}),(0,r.jsx)("input",{id:`mcp-name-${e.slug}`,type:"text",required:!0,value:s,onChange:e=>o(e.target.value),placeholder:e.label,className:"w-full bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none"})]}),(S||M)&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{htmlFor:`mcp-slug-${e.slug}`,className:"block text-xs text-ink-3 mb-1",children:["Server slug ",(0,r.jsx)("span",{className:"text-ink-4",children:"(tool name prefix)"})]}),(0,r.jsx)("input",{id:`mcp-slug-${e.slug}`,type:"text",required:!0,value:u,onChange:e=>x(e.target.value),placeholder:"my-server",pattern:"[a-z0-9-]+",className:"w-full bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none font-mono"}),(0,r.jsxs)("p",{className:"text-[12px] text-ink-4 mt-1",children:["Tools will be named like ",(0,r.jsx)("span",{className:"font-mono text-ink-3",children:q}),". Lowercase letters, digits, dashes."]})]}),Z&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:`mcp-url-${e.slug}`,className:"block text-xs text-ink-3 mb-1",children:"Server URL"}),(0,r.jsx)("input",{id:`mcp-url-${e.slug}`,type:"url",required:!0,value:d,onChange:e=>m(e.target.value),placeholder:"https://…",className:"w-full bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none font-mono"})]}),S&&(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("p",{className:"block text-xs text-ink-3",children:"Auth scheme"}),(0,r.jsx)("div",{className:"flex flex-wrap gap-2",children:["header","query","bearer"].map(t=>(0,r.jsxs)("label",{className:`flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs cursor-pointer border ${p===t?"bg-hover border-ink-3 text-ink":"bg-paper border-rule text-ink-3 hover:border-rule"}`,children:[(0,r.jsx)("input",{type:"radio",name:`mcp-scheme-${e.slug}`,value:t,checked:p===t,onChange:()=>h(t),className:"sr-only"}),"header"===t?"Header":"query"===t?"Query param":"Bearer"]},t))}),"bearer"!==p&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:`mcp-auth-param-${e.slug}`,className:"block text-xs text-ink-3 mb-1",children:"header"===p?"Header name":"Query param name"}),(0,r.jsx)("input",{id:`mcp-auth-param-${e.slug}`,type:"text",required:!0,value:g,onChange:e=>b(e.target.value),placeholder:"header"===p?"x-api-key":"api_key",className:"w-full bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none font-mono"})]})]}),!E&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:`mcp-key-${e.slug}`,className:"block text-xs text-ink-3 mb-1",children:"API key"}),(0,r.jsx)("input",{id:`mcp-key-${e.slug}`,type:"password",required:!0,autoComplete:"off",value:i,onChange:e=>c(e.target.value),placeholder:e.keyPrefix[0]?`${e.keyPrefix[0]}…`:"",className:"w-full bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none font-mono"}),e.docsHint&&(0,r.jsx)("p",{className:"text-[12px] text-ink-4 mt-1",children:e.docsHint})]}),R&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{htmlFor:`mcp-prefilled-args-${e.slug}`,className:"block text-xs text-ink-3 mb-1",children:["Arguments"," ",(0,r.jsx)("span",{className:"text-ink-4",children:"(one per line — edit placeholders like <root-directory>)"})]}),(0,r.jsx)("textarea",{id:`mcp-prefilled-args-${e.slug}`,rows:Math.max(3,(e.args??[]).length+1),value:N,onChange:e=>C(e.target.value),className:"w-full bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none font-mono resize-none"}),(0,r.jsxs)("p",{className:"text-[12px] text-ink-4 mt-1",children:["Command: ",(0,r.jsx)("span",{className:"font-mono text-ink-3",children:e.command??"npx"})]})]}),(e.envVarNames??[]).length>0&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("p",{className:"block text-xs text-ink-3 mb-1",children:["Environment variables ",(0,r.jsx)("span",{className:"text-ink-4",children:"(encrypted at rest)"})]}),(0,r.jsx)("div",{className:"space-y-2",children:A.map((e,t)=>(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("input",{type:"text",value:e.key,onChange:e=>_(t,{key:e.target.value}),placeholder:"VAR_NAME",className:"flex-1 bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none font-mono"}),(0,r.jsx)("input",{type:"password",autoComplete:"off",value:e.value,onChange:e=>_(t,{value:e.target.value}),placeholder:"value",className:"flex-1 bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none font-mono"}),(0,r.jsx)("button",{type:"button",onClick:()=>L(t),disabled:1===A.length,"aria-label":"Remove env var",className:"px-2 text-ink-3 hover:text-err disabled:opacity-30",children:"\xd7"})]},t))}),(0,r.jsx)("button",{type:"button",onClick:F,className:"mt-2 text-[12px] text-ink-3 hover:text-ink",children:"+ Add variable"})]}),e.docsHint&&(0,r.jsx)("p",{className:"text-[12px] text-ink-4",children:e.docsHint})]}),M&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:`mcp-command-${e.slug}`,className:"block text-xs text-ink-3 mb-1",children:"Command"}),(0,r.jsx)("input",{id:`mcp-command-${e.slug}`,type:"text",required:!0,value:f,onChange:e=>k(e.target.value),placeholder:"npx",className:"w-full bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none font-mono"}),(0,r.jsx)("p",{className:"text-[12px] text-ink-4 mt-1",children:"Executable name (resolved via PATH) or absolute path."})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{htmlFor:`mcp-args-${e.slug}`,className:"block text-xs text-ink-3 mb-1",children:["Arguments ",(0,r.jsx)("span",{className:"text-ink-4",children:"(one per line)"})]}),(0,r.jsx)("textarea",{id:`mcp-args-${e.slug}`,rows:3,value:y,onChange:e=>j(e.target.value),placeholder:"-y\n@modelcontextprotocol/server-filesystem\n/path/to/folder",className:"w-full bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none font-mono resize-none"})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("p",{className:"block text-xs text-ink-3 mb-1",children:["Environment variables ",(0,r.jsx)("span",{className:"text-ink-4",children:"(encrypted at rest)"})]}),(0,r.jsx)("div",{className:"space-y-2",children:A.map((e,t)=>(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("input",{type:"text",value:e.key,onChange:e=>_(t,{key:e.target.value}),placeholder:"GITHUB_TOKEN",className:"flex-1 bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none font-mono"}),(0,r.jsx)("input",{type:"password",autoComplete:"off",value:e.value,onChange:e=>_(t,{value:e.target.value}),placeholder:"value",className:"flex-1 bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none font-mono"}),(0,r.jsx)("button",{type:"button",onClick:()=>L(t),disabled:1===A.length,"aria-label":"Remove env var",className:"px-2 text-ink-3 hover:text-err disabled:opacity-30",children:"\xd7"})]},t))}),(0,r.jsx)("button",{type:"button",onClick:F,className:"mt-2 text-[12px] text-ink-3 hover:text-ink",children:"+ Add variable"}),e.docsHint&&(0,r.jsx)("p",{className:"text-[12px] text-ink-4 mt-2",children:e.docsHint})]})]}),(0,r.jsx)("button",{type:"submit",disabled:a||!s.trim(),className:"px-4 py-2 text-sm font-semibold bg-ink text-canvas rounded-md hover:brightness-[0.92] disabled:opacity-50",children:a?"Connecting…":"Connect"})]})}function _(e){return"cogni-cortex"===e?"Comms":"stripe"===e||"mcp-postgres"===e||"supabase"===e||"airtable"===e||"mcp-fetch"===e||"mcp-playwright"===e||"apify"===e?"Data":"mcp-filesystem"===e||"mcp-git"===e||"mcp-github"===e||"sentry"===e?"DevTools":"composio"===e||"linear"===e||"n8n"===e||"notion"===e?"Productivity":"blender"===e||"unity"===e||"unreal-engine"===e||"keyshot"===e||"photoshop"===e||"vidiq"===e?"Creative":"Other"}function q({catalog:e,instances:t}){let a=[...e].sort((e,t)=>{let a=e.slug.startsWith("custom-");return a!==t.slug.startsWith("custom-")?a?1:-1:e.label.localeCompare(t.label)});return 0===e.length?(0,r.jsx)("div",{className:"rounded-2xl border border-rule-2 bg-paper px-6 py-12 text-center",children:(0,r.jsx)("p",{className:"text-[14px] text-ink-3",children:"No servers in this category."})}):(0,r.jsx)("div",{className:"grid auto-rows-fr grid-cols-1 gap-3.5 md:grid-cols-2 lg:grid-cols-4",children:a.map(e=>{let a=t.filter(t=>t.slug===e.slug),n=a.length>0;return(0,r.jsx)(V,{catalogItem:e,isInstalled:n,installedCount:a.length},e.slug)})})}function V({catalogItem:e,isInstalled:t,installedCount:a}){let[s,o]=(0,n.useState)(!1),i=(0,l.useRouter)(),c=e.label.slice(0,2).toUpperCase(),d=(0,h.CT)(e.slug),m=(0,h.Zr)(e.slug),u=_(e.slug),p="pending"===e.status;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(F.A,{glyph:d?(0,r.jsx)("img",{src:d,alt:"",className:"h-6 w-6 object-contain"}):m?(0,r.jsx)("span",{className:"text-[20px] leading-none",children:m}):(0,r.jsx)("span",{className:"font-mono text-[11px] font-semibold tracking-[0.04em]",children:c}),glyphVariant:"conn",glyphBackground:d||m?"#ffffff":"#3565ff",name:e.label,description:e.description,category:u,topRight:t||p?(0,r.jsxs)("span",{className:"flex items-center gap-1.5",children:[p&&(0,r.jsx)("span",{className:"inline-flex items-center rounded-[6px] bg-warn-bg px-2 py-1 font-sans text-[12px] font-medium text-warn",title:"Not yet verified end-to-end — connection params may need adjusting.",children:"Test pending"}),t&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-[6px] bg-ok-bg px-2 py-1 font-sans text-[12px] font-medium text-ok",children:[(0,r.jsx)($.r,{size:11,weight:"regular"}),a," installed"]})]}):void 0,foot:(0,r.jsx)(L.A,{ctaLabel:t?"Add account":"Install",ctaVariant:"blue",onCta:()=>o(!0)})}),(0,r.jsx)(x.A,{open:s,onClose:()=>o(!1),title:t?`Add account — ${e.label}`:`Install ${e.label}`,children:(0,r.jsx)(H,{catalogItem:e,onDone:function(){o(!1),i.refresh()}})})]})}var I=a(56738);function T({instances:e,catalog:t}){let a=(0,l.useRouter)(),[p,h]=(0,n.useState)(e.length>0?"installed":"marketplace"),[g,b]=(0,n.useState)(""),[v,f]=(0,n.useState)("All"),[k,y]=(0,n.useState)(!1),[j,N]=(0,n.useState)("stdio"),C=t.find(e=>"custom-http-mcp"===e.slug),A=t.find(e=>"custom-stdio-mcp"===e.slug),w="http"===j?C:A,S=(0,n.useMemo)(()=>{let t=e;if("All"!==v&&(t=t.filter(e=>_(e.slug)===v)),g.trim()){let e=g.toLowerCase();t=t.filter(t=>t.name.toLowerCase().includes(e)||t.slug.toLowerCase().includes(e))}return t},[e,g,v]),M=(0,n.useMemo)(()=>{let e=t;if("All"!==v&&(e=e.filter(e=>_(e.slug)===v)),g.trim()){let t=g.toLowerCase();e=e.filter(e=>e.label.toLowerCase().includes(t)||e.description.toLowerCase().includes(t))}return e},[t,v,g]);return(0,r.jsxs)(s.A,{title:"MCP Connectors",subtitle:"MCP servers your agents can call.",toolbar:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.A,{tabs:(0,r.jsx)(i.A,{value:p,onChange:e=>{h(e),b("")},tabs:[{value:"installed",label:"Installed",count:e.length},{value:"marketplace",label:"Library",count:t.length}]}),search:(0,r.jsx)(d.A,{value:g,onChange:b,placeholder:"installed"===p?"Search MCP servers…":"Search catalog…"}),cta:(0,r.jsxs)(m.A,{variant:"blue",onClick:()=>y(!0),children:[(0,r.jsx)(u.F,{size:13,weight:"bold"}),"New MCP"]})}),(0,r.jsx)(c.A,{className:"mt-3",items:I.j,value:v,onChange:f})]}),children:["installed"===p?0===e.length?(0,r.jsx)(D,{onBrowse:()=>h("marketplace")}):0===S.length?(0,r.jsx)(U,{}):(0,r.jsx)(E,{instances:S,catalog:t}):(0,r.jsx)(q,{catalog:M,instances:e}),(0,r.jsx)(x.A,{open:k,onClose:()=>y(!1),title:"Add a custom MCP server",children:(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)("div",{className:"flex gap-2",children:["stdio","http"].map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>N(e),className:`flex-1 rounded-md border px-3 py-2 text-xs font-medium ${j===e?"border-ink-3 bg-hover text-ink":"border-rule bg-paper text-ink-3 hover:border-rule"}`,children:"stdio"===e?"Local subprocess (stdio)":"Remote server (HTTP)"},e))}),(0,r.jsx)("p",{className:"text-[12px] text-ink-4",children:"stdio"===j?"Run any MCP package locally (npx, python, a binary…). Provide the command, args, and env vars.":"Connect any Streamable-HTTP MCP server. Provide the URL, auth scheme, and API key."}),w?(0,r.jsx)(H,{catalogItem:w,onDone:()=>{y(!1),a.refresh()}},j):(0,r.jsx)("p",{className:"text-xs text-err",children:"Custom MCP option is unavailable."})]})})]})}function D({onBrowse:e}){return(0,r.jsxs)("div",{className:"rounded-2xl border border-rule-2 bg-paper px-6 py-12 text-center",children:[(0,r.jsxs)("p",{className:"text-[14px] leading-[1.5] text-ink-3",children:["No MCP servers installed yet.",(0,r.jsx)("br",{}),"Pick one from the Marketplace — its tools become available to any agent you assign it to."]}),(0,r.jsx)("div",{className:"mt-4 inline-flex",children:(0,r.jsx)("button",{type:"button",onClick:e,className:"inline-flex h-[34px] items-center gap-1.5 rounded-md bg-conn-vivid px-3.5 text-[14px] font-medium leading-none text-white transition-[filter] hover:brightness-[0.94]",children:"Browse Marketplace"})})]})}function U(){return(0,r.jsx)("div",{className:"rounded-2xl border border-rule-2 bg-paper px-6 py-12 text-center",children:(0,r.jsx)("p",{className:"text-[14px] leading-[1.5] text-ink-3",children:"No servers match your search."})})}},47883:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(78604);let n=new Map([["bold",r.createElement(r.Fragment,null,r.createElement("path",{d:"M240.26,186.1,152.81,34.23h0a28.74,28.74,0,0,0-49.62,0L15.74,186.1a27.45,27.45,0,0,0,0,27.71A28.31,28.31,0,0,0,40.55,228h174.9a28.31,28.31,0,0,0,24.79-14.19A27.45,27.45,0,0,0,240.26,186.1Zm-20.8,15.7a4.46,4.46,0,0,1-4,2.2H40.55a4.46,4.46,0,0,1-4-2.2,3.56,3.56,0,0,1,0-3.73L124,46.2a4.77,4.77,0,0,1,8,0l87.44,151.87A3.56,3.56,0,0,1,219.46,201.8ZM116,136V104a12,12,0,0,1,24,0v32a12,12,0,0,1-24,0Zm28,40a16,16,0,1,1-16-16A16,16,0,0,1,144,176Z"}))],["duotone",r.createElement(r.Fragment,null,r.createElement("path",{d:"M215.46,216H40.54C27.92,216,20,202.79,26.13,192.09L113.59,40.22c6.3-11,22.52-11,28.82,0l87.46,151.87C236,202.79,228.08,216,215.46,216Z",opacity:"0.2"}),r.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["fill",r.createElement(r.Fragment,null,r.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM120,104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm8,88a12,12,0,1,1,12-12A12,12,0,0,1,128,192Z"}))],["light",r.createElement(r.Fragment,null,r.createElement("path",{d:"M235.07,189.09,147.61,37.22h0a22.75,22.75,0,0,0-39.22,0L20.93,189.09a21.53,21.53,0,0,0,0,21.72A22.35,22.35,0,0,0,40.55,222h174.9a22.35,22.35,0,0,0,19.6-11.19A21.53,21.53,0,0,0,235.07,189.09ZM224.66,204.8a10.46,10.46,0,0,1-9.21,5.2H40.55a10.46,10.46,0,0,1-9.21-5.2,9.51,9.51,0,0,1,0-9.72L118.79,43.21a10.75,10.75,0,0,1,18.42,0l87.46,151.87A9.51,9.51,0,0,1,224.66,204.8ZM122,144V104a6,6,0,0,1,12,0v40a6,6,0,0,1-12,0Zm16,36a10,10,0,1,1-10-10A10,10,0,0,1,138,180Z"}))],["regular",r.createElement(r.Fragment,null,r.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["thin",r.createElement(r.Fragment,null,r.createElement("path",{d:"M233.34,190.09,145.88,38.22h0a20.75,20.75,0,0,0-35.76,0L22.66,190.09a19.52,19.52,0,0,0,0,19.71A20.36,20.36,0,0,0,40.54,220H215.46a20.36,20.36,0,0,0,17.86-10.2A19.52,19.52,0,0,0,233.34,190.09ZM226.4,205.8a12.47,12.47,0,0,1-10.94,6.2H40.54a12.47,12.47,0,0,1-10.94-6.2,11.45,11.45,0,0,1,0-11.72L117.05,42.21a12.76,12.76,0,0,1,21.9,0L226.4,194.08A11.45,11.45,0,0,1,226.4,205.8ZM124,144V104a4,4,0,0,1,8,0v40a4,4,0,0,1-8,0Zm12,36a8,8,0,1,1-8-8A8,8,0,0,1,136,180Z"}))]])},50131:(e,t,a)=>{"use strict";a.d(t,{N:()=>o});var r=a(78604),n=a(5977),l=a(47883);let s=r.forwardRef((e,t)=>r.createElement(n.A,{ref:t,...e,weights:l.A}));s.displayName="WarningIcon";let o=s},54935:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(78604);let n=new Map([["bold",r.createElement(r.Fragment,null,r.createElement("path",{d:"M176.49,95.51a12,12,0,0,1,0,17l-56,56a12,12,0,0,1-17,0l-24-24a12,12,0,1,1,17-17L112,143l47.51-47.52A12,12,0,0,1,176.49,95.51ZM236,128A108,108,0,1,1,128,20,108.12,108.12,0,0,1,236,128Zm-24,0a84,84,0,1,0-84,84A84.09,84.09,0,0,0,212,128Z"}))],["duotone",r.createElement(r.Fragment,null,r.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),r.createElement("path",{d:"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z"}))],["fill",r.createElement(r.Fragment,null,r.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm45.66,85.66-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35a8,8,0,0,1,11.32,11.32Z"}))],["light",r.createElement(r.Fragment,null,r.createElement("path",{d:"M172.24,99.76a6,6,0,0,1,0,8.48l-56,56a6,6,0,0,1-8.48,0l-24-24a6,6,0,0,1,8.48-8.48L112,151.51l51.76-51.75A6,6,0,0,1,172.24,99.76ZM230,128A102,102,0,1,1,128,26,102.12,102.12,0,0,1,230,128Zm-12,0a90,90,0,1,0-90,90A90.1,90.1,0,0,0,218,128Z"}))],["regular",r.createElement(r.Fragment,null,r.createElement("path",{d:"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z"}))],["thin",r.createElement(r.Fragment,null,r.createElement("path",{d:"M170.83,101.17a4,4,0,0,1,0,5.66l-56,56a4,4,0,0,1-5.66,0l-24-24a4,4,0,0,1,5.66-5.66L112,154.34l53.17-53.17A4,4,0,0,1,170.83,101.17ZM228,128A100,100,0,1,1,128,28,100.11,100.11,0,0,1,228,128Zm-8,0a92,92,0,1,0-92,92A92.1,92.1,0,0,0,220,128Z"}))]])},56738:(e,t,a)=>{"use strict";a.d(t,{e:()=>n,j:()=>r});let r=[{value:"All",label:"All"},{value:"CRM",label:"CRM"},{value:"Productivity",label:"Productivity"},{value:"Data",label:"Data"},{value:"DevTools",label:"DevTools"},{value:"Comms",label:"Comms"},{value:"Creative",label:"Creative"},{value:"Other",label:"Other"}];function n(e){return e.startsWith("google-")||"gmail"===e||"notion"===e||"notion-oauth"===e||"airtable"===e||"airtable-oauth"===e?"Productivity":"github"===e||"linear"===e?"DevTools":"hubspot"===e?"CRM":"slack"===e||"intercom"===e?"Comms":"apify"===e||"firecrawl"===e||"tavily"===e||"stripe"===e||"postgres"===e?"Data":"poyo"===e?"Creative":"Other"}},82592:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var r=a(3680);let n={ok:"bg-ok",lime:"bg-agent-vivid",coral:"bg-skill-vivid",blue:"bg-conn-vivid"},l={ok:"animate-[blip_1.4s_ease-out_infinite]",lime:"animate-[blip-lime_1.5s_ease-out_infinite]",coral:"animate-[blip-coral_1.4s_ease-out_infinite]",blue:"animate-[blip-blue_1.4s_ease-out_infinite]"};function s({variant:e="ok",size:t="sm",animate:a=!0,className:o=""}){return(0,r.jsx)("span",{className:`inline-block shrink-0 rounded-full ${"sm"===t?"h-[7px] w-[7px]":"h-2 w-2"} ${n[e]} ${a?l[e]:""} ${o}`})}},86127:(e,t,a)=>{"use strict";a.d(t,{r:()=>o});var r=a(78604),n=a(5977),l=a(54935);let s=r.forwardRef((e,t)=>r.createElement(n.A,{ref:t,...e,weights:l.A}));s.displayName="CheckCircleIcon";let o=s},93606:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});var r=a(3680),n=a(86127),l=a(50131),s=a(82592);let o={done:"Done",warn:"Attention",run:"Running",idle:"Idle","lvl-info":"INFO","lvl-ok":"OK","lvl-warn":"WARN","lvl-err":"ERR"},i={done:"bg-ok-bg text-ok",warn:"bg-warn-bg text-warn",run:"bg-run-bg text-run",idle:"bg-black/5 text-ink-3 dark:bg-white/5","lvl-info":"bg-black/5 text-ink-3 dark:bg-white/5","lvl-ok":"bg-ok-bg text-ok","lvl-warn":"bg-warn-bg text-warn","lvl-err":"bg-warn-bg text-err"};function c({variant:e,label:t,icon:a,className:d=""}){let m=t??o[e],u=null;return void 0!==a?u=a:"done"===e?u=(0,r.jsx)(n.r,{size:11,weight:"regular"}):"warn"===e?u=(0,r.jsx)(l.N,{size:11,weight:"regular"}):"run"===e&&(u=(0,r.jsx)(s.A,{variant:"blue",size:"sm"})),(0,r.jsxs)("span",{className:`inline-flex h-[22px] items-center gap-1.5 rounded-[5px] px-2.5 text-[12px] font-medium leading-none ${i[e]} ${d}`,children:[u,m]})}}},e=>{e.O(0,[3363,8161,9836,9775,1065,8724,7358],()=>e(e.s=1489)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4244],{5977:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(78604);let n=r.forwardRef((e,t)=>{let{alt:a,color:n="currentColor",size:l="1em",weight:s="regular",mirrored:i=!1,children:o,weights:c,...d}=e;return r.createElement("svg",{ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,fill:n,viewBox:"0 0 256 256",transform:i?"scale(-1, 1)":void 0,...d},!!a&&r.createElement("title",null,a),o,c.get(s))});n.displayName="SSRBase"},6921:(e,t,a)=>{"use strict";a.d(t,{M:()=>n});var r=a(64678);let n=(0,r.createServerReference)("40238625d64eddbb741ea48b543f11919002527755",r.callServer,void 0,r.findSourceMapURL,"createMemoryAction")},13260:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var r=a(3680),n=a(78604),l=a(51869);function s({open:e,onClose:t,title:a,children:i,className:o=""}){let[c,d]=(0,n.useState)(!1);return((0,n.useEffect)(()=>{d(!0)},[]),(0,n.useEffect)(()=>{if(!e)return;function a(e){"Escape"===e.key&&t()}window.addEventListener("keydown",a);let r=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",a),document.body.style.overflow=r}},[e,t]),e&&c)?(0,l.createPortal)((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"fixed inset-0 z-40 bg-black/60 animate-[fadeIn_150ms_ease]",onClick:t,"aria-hidden":"true"}),(0,r.jsx)("div",{role:"dialog","aria-modal":"true",className:"fixed inset-0 z-50 flex items-center justify-center p-4 pointer-events-none",children:(0,r.jsxs)("div",{className:`pointer-events-auto w-full max-w-lg max-h-[90vh] overflow-y-auto bg-paper border border-rule-2 rounded-xl shadow-2xl animate-[scaleIn_150ms_ease] ${o}`,children:[void 0!==a&&(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2 px-6 pt-5 pb-4 border-b border-rule-2",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-ink",children:a}),(0,r.jsx)("button",{type:"button",onClick:t,"aria-label":"Close",className:"text-ink-3 hover:text-ink transition-colors",children:"✕"})]}),(0,r.jsx)("div",{className:"p-6 pt-5",children:i})]})})]}),document.body):null}},27540:(e,t,a)=>{"use strict";var r=a(71268);a.o(r,"usePathname")&&a.d(t,{usePathname:function(){return r.usePathname}}),a.o(r,"useRouter")&&a.d(t,{useRouter:function(){return r.useRouter}}),a.o(r,"useSearchParams")&&a.d(t,{useSearchParams:function(){return r.useSearchParams}})},28870:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var r=a(3680),n=a(78604);function l({tabs:e,value:t,defaultValue:a,onChange:s}){let[i,o]=(0,n.useState)(t??a??e[0].value),c=t??i;return(0,r.jsx)("div",{className:"inline-flex gap-1 rounded-[11px] border border-rule-2 bg-paper p-1",role:"tablist",children:e.map(e=>{let a=e.value===c;return(0,r.jsxs)("button",{type:"button",role:"tab","aria-selected":a,onClick:()=>{void 0===t&&o(e.value),s?.(e.value)},className:`inline-flex h-[30px] items-center gap-2 rounded-lg border-0 px-3.5 text-[13px] font-medium leading-none transition-colors ${a?"bg-ink text-canvas":"bg-transparent text-ink-3 hover:text-ink-2"}`,children:[e.label,void 0!==e.count&&(0,r.jsxs)("span",{className:`font-mono text-[12px] leading-none ${a?"opacity-65":"opacity-60"}`,children:["\xb7 ",e.count]})]},e.value)})})}},42357:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(3680);function n({items:e,value:t,onChange:a,className:l=""}){return(0,r.jsx)("div",{className:`flex flex-wrap items-center gap-2 ${l}`,children:e.map(e=>{let n=e.value===t;return(0,r.jsxs)("button",{type:"button",onClick:()=>a(e.value),className:`inline-flex h-8 items-center gap-1.5 rounded-[9px] border px-3.5 text-[13px] font-medium leading-none transition-colors ${n?"border-ink bg-ink text-canvas":"border-rule-2 bg-paper text-ink-2 hover:bg-hover"}`,children:[e.label,void 0!==e.count&&(0,r.jsx)("span",{className:`font-mono text-[12px] leading-none ${n?"opacity-65":"opacity-55"}`,children:e.count})]},e.value)})})}},65668:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var r=a(3680);function n({tabs:e,search:t,cta:a,extra:l,className:s=""}){return(0,r.jsxs)("div",{className:`flex flex-wrap items-center gap-2.5 pt-4 ${s}`,children:[e,(0,r.jsx)("div",{className:"flex-1"}),t,l,a]})}},66736:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var r=a(3680),n=a(32928);function l({value:e,onChange:t,placeholder:a="Search…",minWidth:s=300,className:i=""}){return(0,r.jsxs)("div",{className:`flex h-[34px] items-center gap-2 rounded-[9px] border border-rule-2 bg-paper px-3 text-[13px] text-ink-4 ${i}`,style:{minWidth:s},children:[(0,r.jsx)(n.e,{size:13,className:"shrink-0"}),(0,r.jsx)("input",{type:"search",value:e,onChange:e=>t(e.target.value),placeholder:a,className:"flex-1 border-0 bg-transparent text-[14px] leading-none text-ink outline-none placeholder:text-ink-4"})]})}},68769:(e,t,a)=>{Promise.resolve().then(a.bind(a,85726))},73868:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var r=a(3680),n=a(64676),l=a(11248),s=a(88563);function i({title:e,subtitle:t}){return(0,r.jsxs)("header",{className:"flex items-center justify-between gap-4 border-b border-rule-2 px-5 pt-5 pb-4 sm:px-8 lg:px-9",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("h1",{className:"text-[28px] leading-[1.15] font-semibold tracking-[-0.015em] text-ink",children:e}),t&&(0,r.jsx)("p",{className:"mt-1.5 text-[14px] leading-[1.5] text-ink-3",children:t})]}),(0,r.jsxs)("div",{className:"hidden shrink-0 items-center gap-2 lg:flex",children:[(0,r.jsx)(n.default,{className:"hidden md:flex"}),(0,r.jsx)(s.default,{}),(0,r.jsx)(l.default,{})]})]})}function o({title:e,subtitle:t,toolbar:a,children:n,fluid:l=!1,bodyClassName:s=""}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i,{title:e,subtitle:t}),(0,r.jsxs)("div",{className:`px-5 pt-6 pb-10 sm:px-8 lg:px-9 ${l?"":"max-w-6xl"} ${s}`,children:[a&&(0,r.jsx)("div",{className:"mb-5",children:a}),n]})]})}},77045:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var r=a(3680),n=a(63363),l=a.n(n);let s={ink:"bg-ink text-canvas border-0 hover:brightness-[0.92]",agent:"bg-agent-vivid text-[#1a2200] border-0 hover:brightness-[0.96]",coral:"bg-skill-vivid text-white border-0 hover:brightness-[0.94]",blue:"bg-conn-vivid text-white border-0 hover:brightness-[0.94]",neutral:"border border-rule-2 bg-paper text-ink hover:bg-hover"};function i(e){let{children:t,variant:a="ink",size:n="md",className:i=""}=e,o=`inline-flex cursor-pointer items-center justify-center gap-1.5 rounded-md font-medium leading-none transition-[filter,background-color] ${"md"===n?"h-[34px] px-3.5 text-[14px]":"h-[30px] px-3 text-[13px]"} ${s[a]} ${i}`;if("href"in e&&e.href){let{href:a,variant:n,size:s,className:i,children:c,...d}=e;return(0,r.jsx)(l(),{href:a,className:o,...d,children:t})}let{variant:c,size:d,className:x,children:m,...u}=e;return(0,r.jsx)("button",{type:"button",className:o,...u,children:t})}},81630:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var r=a(3680);let n={agent:"bg-agent-vivid text-[#0a0a0a]",skill:"bg-skill-vivid text-white",conn:"bg-conn-vivid text-white",ink:"bg-ink text-canvas",neutral:"bg-hover text-ink-3"},l={sm:"h-[30px] w-[30px]",md:"h-[34px] w-[34px]",lg:"h-[38px] w-[38px]",xl:"h-[42px] w-[42px]"},s={sm:"[&_svg]:h-[13px] [&_svg]:w-[13px]",md:"[&_svg]:h-[14px] [&_svg]:w-[14px]",lg:"[&_svg]:h-[16px] [&_svg]:w-[16px]",xl:"[&_svg]:h-[18px] [&_svg]:w-[18px]"};function i({variant:e,size:t="md",shape:a="round",background:o,children:c,className:d=""}){let x=o?"":n[e];return(0,r.jsx)("span",{style:o?{background:o}:void 0,className:`inline-flex shrink-0 items-center justify-center ${l[t]} ${s[t]} ${"round"===a?"rounded-full":"rounded-[9px]"} ${x} ${o?"text-white":""} ${d}`,children:c})}},82592:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var r=a(3680);let n={ok:"bg-ok",lime:"bg-agent-vivid",coral:"bg-skill-vivid",blue:"bg-conn-vivid"},l={ok:"animate-[blip_1.4s_ease-out_infinite]",lime:"animate-[blip-lime_1.5s_ease-out_infinite]",coral:"animate-[blip-coral_1.4s_ease-out_infinite]",blue:"animate-[blip-blue_1.4s_ease-out_infinite]"};function s({variant:e="ok",size:t="sm",animate:a=!0,className:i=""}){return(0,r.jsx)("span",{className:`inline-block shrink-0 rounded-full ${"sm"===t?"h-[7px] w-[7px]":"h-2 w-2"} ${n[e]} ${a?l[e]:""} ${i}`})}},85726:(e,t,a)=>{"use strict";a.d(t,{default:()=>B});var r=a(3680),n=a(78604),l=a(63363),s=a.n(l),i=a(39504),o=a(73868),c=a(65668),d=a(28870),x=a(66736),m=a(77045),u=a(5977);let p=new Map([["bold",n.createElement(n.Fragment,null,n.createElement("path",{d:"M208.49,152.49l-72,72a12,12,0,0,1-17,0l-72-72a12,12,0,0,1,17-17L116,187V40a12,12,0,0,1,24,0V187l51.51-51.52a12,12,0,0,1,17,17Z"}))],["duotone",n.createElement(n.Fragment,null,n.createElement("path",{d:"M200,144l-72,72L56,144Z",opacity:"0.2"}),n.createElement("path",{d:"M207.39,140.94A8,8,0,0,0,200,136H136V40a8,8,0,0,0-16,0v96H56a8,8,0,0,0-5.66,13.66l72,72a8,8,0,0,0,11.32,0l72-72A8,8,0,0,0,207.39,140.94ZM128,204.69,75.31,152H180.69Z"}))],["fill",n.createElement(n.Fragment,null,n.createElement("path",{d:"M205.66,149.66l-72,72a8,8,0,0,1-11.32,0l-72-72A8,8,0,0,1,56,136h64V40a8,8,0,0,1,16,0v96h64a8,8,0,0,1,5.66,13.66Z"}))],["light",n.createElement(n.Fragment,null,n.createElement("path",{d:"M204.24,148.24l-72,72a6,6,0,0,1-8.48,0l-72-72a6,6,0,0,1,8.48-8.48L122,201.51V40a6,6,0,0,1,12,0V201.51l61.76-61.75a6,6,0,0,1,8.48,8.48Z"}))],["regular",n.createElement(n.Fragment,null,n.createElement("path",{d:"M205.66,149.66l-72,72a8,8,0,0,1-11.32,0l-72-72a8,8,0,0,1,11.32-11.32L120,196.69V40a8,8,0,0,1,16,0V196.69l58.34-58.35a8,8,0,0,1,11.32,11.32Z"}))],["thin",n.createElement(n.Fragment,null,n.createElement("path",{d:"M202.83,146.83l-72,72a4,4,0,0,1-5.66,0l-72-72a4,4,0,0,1,5.66-5.66L124,206.34V40a4,4,0,0,1,8,0V206.34l65.17-65.17a4,4,0,0,1,5.66,5.66Z"}))]]),h=n.forwardRef((e,t)=>n.createElement(u.A,{ref:t,...e,weights:p}));h.displayName="ArrowDownIcon";let f=new Map([["bold",n.createElement(n.Fragment,null,n.createElement("path",{d:"M208.49,120.49a12,12,0,0,1-17,0L140,69V216a12,12,0,0,1-24,0V69L64.49,120.49a12,12,0,0,1-17-17l72-72a12,12,0,0,1,17,0l72,72A12,12,0,0,1,208.49,120.49Z"}))],["duotone",n.createElement(n.Fragment,null,n.createElement("path",{d:"M200,112H56l72-72Z",opacity:"0.2"}),n.createElement("path",{d:"M205.66,106.34l-72-72a8,8,0,0,0-11.32,0l-72,72A8,8,0,0,0,56,120h64v96a8,8,0,0,0,16,0V120h64a8,8,0,0,0,5.66-13.66ZM75.31,104,128,51.31,180.69,104Z"}))],["fill",n.createElement(n.Fragment,null,n.createElement("path",{d:"M207.39,115.06A8,8,0,0,1,200,120H136v96a8,8,0,0,1-16,0V120H56a8,8,0,0,1-5.66-13.66l72-72a8,8,0,0,1,11.32,0l72,72A8,8,0,0,1,207.39,115.06Z"}))],["light",n.createElement(n.Fragment,null,n.createElement("path",{d:"M204.24,116.24a6,6,0,0,1-8.48,0L134,54.49V216a6,6,0,0,1-12,0V54.49L60.24,116.24a6,6,0,0,1-8.48-8.48l72-72a6,6,0,0,1,8.48,0l72,72A6,6,0,0,1,204.24,116.24Z"}))],["regular",n.createElement(n.Fragment,null,n.createElement("path",{d:"M205.66,117.66a8,8,0,0,1-11.32,0L136,59.31V216a8,8,0,0,1-16,0V59.31L61.66,117.66a8,8,0,0,1-11.32-11.32l72-72a8,8,0,0,1,11.32,0l72,72A8,8,0,0,1,205.66,117.66Z"}))],["thin",n.createElement(n.Fragment,null,n.createElement("path",{d:"M202.83,114.83a4,4,0,0,1-5.66,0L132,49.66V216a4,4,0,0,1-8,0V49.66L58.83,114.83a4,4,0,0,1-5.66-5.66l72-72a4,4,0,0,1,5.66,0l72,72A4,4,0,0,1,202.83,114.83Z"}))]]),v=n.forwardRef((e,t)=>n.createElement(u.A,{ref:t,...e,weights:f}));function b({label:e,value:t,unit:a,subtle:n,delta:l}){let s=l?.upIsGood??!0,i=l&&"up"===l.direction===s,o=l?i?"text-ok":"text-err":"",c=l?.direction==="down"?h:v;return(0,r.jsxs)("div",{className:"flex min-w-0 flex-col gap-1 rounded-xl border border-rule-2 bg-paper px-3.5 py-3",children:[(0,r.jsx)("div",{className:"truncate font-mono text-[11px] uppercase tracking-[0.14em] text-ink-4",children:e}),(0,r.jsxs)("div",{className:"mt-1 truncate text-[22px] font-medium leading-[1.1] tracking-[-0.02em] text-ink",children:[t,a&&(0,r.jsx)("span",{className:"ml-0.5 text-[12px] font-medium text-ink-4",children:a})]}),n&&(0,r.jsx)("div",{className:"text-[12px] leading-none text-ink-3",children:n}),l&&(0,r.jsxs)("div",{className:`mt-0.5 inline-flex items-center gap-1 font-mono text-[12px] leading-none tracking-[0.02em] ${o}`,children:[(0,r.jsx)(c,{size:9,weight:"bold"}),l.text]})]})}v.displayName="ArrowUpIcon";var g=a(42357),j=a(81630),w=a(99203),k=a(82592);function y({children:e,badge:t,size:a="md",className:n="",type:l="button",...s}){return(0,r.jsxs)("button",{type:l,className:`relative flex shrink-0 items-center justify-center border border-rule-2 bg-paper text-ink-2 transition-colors hover:text-ink ${"md"===a?"h-[34px] w-[34px] rounded-md":"h-[30px] w-[30px] rounded-[7px]"} ${n}`,...s,children:[e,t&&(0,r.jsx)("span",{className:"absolute top-[6px] right-[7px] h-1.5 w-1.5 rounded-full bg-skill-vivid"})]})}var N=a(14308),M=a(27540),A=a(13260),_=a(6921);let C=[{value:"context",label:"Context"},{value:"preference",label:"Preference"},{value:"outcome",label:"Outcome"},{value:"learned_rule",label:"Rule"}];function S({value:e,onChange:t}){return(0,r.jsx)("div",{className:"inline-flex items-center gap-0.5","aria-label":`Importance ${e} of 5`,children:[1,2,3,4,5].map(a=>(0,r.jsx)("button",{type:"button",onClick:()=>t(a),title:`Set importance to ${a}`,className:"p-0.5 text-ink-4 transition-colors hover:text-amber-500",children:(0,r.jsx)("svg",{viewBox:"0 0 16 16",className:"h-[16px] w-[16px]",fill:a<=e?"#f5a623":"none",stroke:a<=e?"#f5a623":"currentColor",strokeWidth:"1.3",children:(0,r.jsx)("path",{d:"M8 1.5l1.9 3.9 4.3.6-3.1 3 .7 4.3L8 11.3l-3.8 2 .7-4.3-3.1-3 4.3-.6z"})})},a))})}function $({open:e,onClose:t}){let a=(0,M.useRouter)(),[l,s]=(0,n.useState)(""),[o,c]=(0,n.useState)("context"),[d,x]=(0,n.useState)(3),[u,p]=(0,n.useTransition)();function h(){s(""),c("context"),x(3),t()}return(0,r.jsx)(A.A,{open:e,onClose:h,title:"New Memory",children:(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsx)("label",{htmlFor:"memory-fact",className:"block text-[13px] font-medium text-ink-2",children:"Fact"}),(0,r.jsx)("textarea",{id:"memory-fact",value:l,onChange:e=>s(e.target.value.slice(0,2e3)),rows:4,maxLength:2e3,placeholder:"e.g. Prefers concise, formal replies.",disabled:u,className:"w-full resize-y rounded-lg border border-rule bg-canvas px-3 py-2 text-[14px] leading-[1.5] text-ink placeholder:text-ink-4 focus:border-rule-2 focus:outline-none disabled:opacity-50"}),(0,r.jsxs)("div",{className:"text-right text-[11px] text-ink-4",children:[l.length," / ",2e3]})]}),(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsx)("label",{htmlFor:"memory-category",className:"block text-[13px] font-medium text-ink-2",children:"Category"}),(0,r.jsx)("select",{id:"memory-category",value:o,onChange:e=>c(e.target.value),disabled:u,className:"w-full rounded-lg border border-rule bg-canvas px-3 py-2 text-[14px] text-ink focus:border-rule-2 focus:outline-none disabled:opacity-50",children:C.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))})]}),(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsx)("span",{className:"block text-[13px] font-medium text-ink-2",children:"Importance"}),(0,r.jsx)(S,{value:d,onChange:x})]}),(0,r.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,r.jsx)(m.A,{variant:"neutral",onClick:h,children:"Cancel"}),(0,r.jsx)(m.A,{variant:"ink",onClick:function(){l.trim()&&!u&&p(async()=>{let e=await (0,_.M)({fact:l.trim(),category:o,importance:d});e.ok?(i.oR.success("Memory saved"),a.refresh(),h()):i.oR.error(e.message)})},disabled:u||!l.trim(),className:"disabled:cursor-not-allowed disabled:opacity-50",children:u?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"h-3.5 w-3.5 animate-spin rounded-full border-2 border-white/30 border-t-white"}),"Saving…"]}):"Save memory"})]})]})})}var E=a(64678);let R=(0,E.createServerReference)("40e14b4dd07e8b84c14150827d5851b4dd5441de03",E.callServer,void 0,E.findSourceMapURL,"unarchiveMemoryAction"),L=(0,E.createServerReference)("4056735c2c5cb3a91ad64fda5eae1037107e6738e5",E.callServer,void 0,E.findSourceMapURL,"archiveMemoryAction");var V=a(93518);let z=(0,E.createServerReference)("60cef35a4f0a16c313290993baf0e13a71bc48140c",E.callServer,void 0,E.findSourceMapURL,"updateMemoryImportanceAction"),F=(0,E.createServerReference)("40ab2487632b8b3fe7d9dd6f6c0d973e5c4ba0a898",E.callServer,void 0,E.findSourceMapURL,"unpinMemoryImportanceAction"),Z=(0,E.createServerReference)("40414ce5e8dc4a402036cd1ed53bc8abba24ba3432",E.callServer,void 0,E.findSourceMapURL,"searchMemoriesAction"),I={preference:{color:"#3565ff",label:"Preference",icon:(0,r.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.6",children:[(0,r.jsx)("circle",{cx:"4",cy:"5",r:"1",fill:"currentColor"}),(0,r.jsx)("circle",{cx:"4",cy:"11",r:"1",fill:"currentColor"}),(0,r.jsx)("circle",{cx:"4",cy:"8",r:"1",fill:"currentColor"}),(0,r.jsx)("path",{d:"M7 5h6M7 8h6M7 11h4"})]})},context:{color:"#22a3aa",label:"Context",icon:(0,r.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.6",children:[(0,r.jsx)("circle",{cx:"8",cy:"8",r:"5.5"}),(0,r.jsx)("path",{d:"M3 8h10M8 2.5c2 1.5 3 3.3 3 5.5s-1 4-3 5.5c-2-1.5-3-3.3-3-5.5s1-4 3-5.5z"})]})},outcome:{color:"#1e7a44",label:"Outcome",icon:(0,r.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.6",children:[(0,r.jsx)("path",{d:"M3.5 2.5h6L12.5 5.5v8h-9z"}),(0,r.jsx)("path",{d:"M9.5 2.5v3h3"})]})},learned_rule:{color:"#ff5631",label:"Rule",icon:(0,r.jsx)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.6",children:(0,r.jsx)("path",{d:"M2.5 3.5h9v6h-5l-3 3v-3h-1zM5.5 7.5h8v4h-1l-2 2v-2h-5z"})})}};function P(e){return I[e??"context"]??I.context}function D({category:e}){let t=P(e);return(0,r.jsxs)("span",{style:{background:t.color+"22",color:t.color},className:"inline-flex h-[24px] items-center gap-1.5 rounded-[6px] px-2.5 text-[11.5px] font-medium leading-none capitalize [&_svg]:h-[12px] [&_svg]:w-[12px]",children:[t.icon,t.label]})}function T({id:e,archived:t}){let[a,l]=(0,n.useTransition)(),[s,o]=(0,n.useState)(!1);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex items-center justify-end gap-1.5",children:[(0,r.jsx)("button",{type:"button",onClick:function(){l(async()=>{let a=await (t?R:L)(e);a.ok?i.oR.success(t?"Memory restored":"Memory archived"):i.oR.error(a.message)})},disabled:a,className:"rounded-md border border-rule-2 px-2.5 py-1 text-[11.5px] font-medium text-ink-3 transition-colors hover:border-rule hover:text-ink disabled:opacity-40",children:t?"Restore":"Archive"}),(0,r.jsx)(y,{size:"sm",disabled:a,onClick:()=>o(!0),title:"Delete memory",children:(0,r.jsxs)("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:"h-[13px] w-[13px]",children:[(0,r.jsx)("circle",{cx:"4",cy:"8",r:"1.2"}),(0,r.jsx)("circle",{cx:"8",cy:"8",r:"1.2"}),(0,r.jsx)("circle",{cx:"12",cy:"8",r:"1.2"})]})})]}),(0,r.jsx)(N.A,{open:s,title:"Delete memory?",message:"This memory will be permanently removed. This action cannot be undone.",confirmLabel:"Delete",onConfirm:function(){o(!1),l(async()=>{let t=await (0,V.t)(e);t.ok?i.oR.success("Memory deleted"):i.oR.error(t.message)})},onCancel:()=>o(!1)})]})}function U({id:e,importance:t,locked:a}){let[l,s]=(0,n.useTransition)();return(0,r.jsxs)("div",{className:"inline-flex items-center gap-1",children:[(0,r.jsx)("div",{className:"inline-flex items-center gap-0.5","aria-label":`Importance ${t} of 5`,children:[1,2,3,4,5].map(a=>(0,r.jsx)("button",{type:"button",disabled:l,onClick:()=>{!l&&a!==t&&s(async()=>{let t=await z(e,a);t.ok?i.oR.success(`Importance pinned to ${a}`):i.oR.error(t.message)})},title:`Set importance to ${a}`,className:"p-0.5 text-ink-4 transition-colors hover:text-amber-500 disabled:opacity-50",children:(0,r.jsx)("svg",{viewBox:"0 0 16 16",className:"h-[12px] w-[12px]",fill:a<=t?"#f5a623":"none",stroke:a<=t?"#f5a623":"currentColor",strokeWidth:"1.3",children:(0,r.jsx)("path",{d:"M8 1.5l1.9 3.9 4.3.6-3.1 3 .7 4.3L8 11.3l-3.8 2 .7-4.3-3.1-3 4.3-.6z"})})},a))}),a&&(0,r.jsxs)("button",{type:"button",disabled:l,onClick:function(){l||s(async()=>{let t=await F(e);t.ok?i.oR.success("Importance unpinned — the curator can adjust it again"):i.oR.error(t.message)})},title:"Pinned by you — click to let the curator manage it again",className:"group inline-flex h-[20px] cursor-pointer items-center gap-1 rounded-full border border-amber-500/30 bg-amber-500/10 px-2 text-[10px] font-medium text-amber-600 transition-colors hover:border-rule hover:bg-hover hover:text-ink disabled:cursor-default disabled:opacity-50",children:[(0,r.jsx)("svg",{viewBox:"0 0 16 16",className:"h-[9px] w-[9px] shrink-0",fill:"currentColor",children:(0,r.jsx)("path",{d:"M8 1a3 3 0 0 0-3 3v2H4a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1h-1V4a3 3 0 0 0-3-3zm-1.5 5V4a1.5 1.5 0 0 1 3 0v2z"})}),(0,r.jsxs)("span",{className:"grid",children:[(0,r.jsx)("span",{className:"col-start-1 row-start-1 group-hover:invisible",children:"Pinned"}),(0,r.jsx)("span",{className:"invisible col-start-1 row-start-1 group-hover:visible",children:"Unpin"})]})]})]})}function B({initialItems:e,agents:t,totalCount:a}){let[l,u]=(0,n.useState)("all"),[p,h]=(0,n.useState)("all"),[f,v]=(0,n.useState)(""),[y,N]=(0,n.useState)(!1),[M,A]=(0,n.useState)(null),[_,C]=(0,n.useState)(null),[S,E]=(0,n.useTransition)();(0,n.useEffect)(()=>{let e=f.trim();if("all"!==l||!e)return;let t=setTimeout(()=>{E(async()=>{let t=await Z(e);t.ok?(A(t.data),C(e)):i.oR.error(t.message)})},300);return()=>clearTimeout(t)},[f,l]);let R=(0,n.useMemo)(()=>e.filter(e=>!e.archived).length,[e]),L=(0,n.useMemo)(()=>e.filter(e=>e.archived).length,[e]),V=(0,n.useMemo)(()=>{let t=f.trim();if("all"===l&&t&&null!==M&&_===t){let e=M;return"all"!==p&&(e=e.filter(e=>e.agent_id===p)),e}let a=e;if(a="all"===l?a.filter(e=>!e.archived):a.filter(e=>e.archived),"all"!==p&&(a=a.filter(e=>e.agent_id===p)),t){let e=t.toLowerCase();a=a.filter(t=>t.fact.toLowerCase().includes(e)||(t.agentName??"").toLowerCase().includes(e)||(t.category??"").toLowerCase().includes(e)||(t.skill_tags??[]).some(t=>t.toLowerCase().includes(e)))}return a},[e,l,p,f,M,_]),z=(0,n.useMemo)(()=>{let n=new Map;for(let t of e)t.agent_id&&t.agentName&&n.set(t.agent_id,(n.get(t.agent_id)??0)+1);let l=[{value:"all",label:"All agents",count:`\xb7 ${a}`}];for(let e of t){let t=n.get(e.id);t&&l.push({value:e.id,label:(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,r.jsx)("span",{className:"h-[7px] w-[7px] rounded-full bg-agent-vivid"}),e.name]}),count:`\xb7 ${t}`})}return l},[e,t,a]);return(0,r.jsxs)(o.A,{title:"Memory",subtitle:"What your agents remember between runs.",toolbar:(0,r.jsx)(c.A,{tabs:(0,r.jsx)(d.A,{tabs:[{value:"all",label:"All",count:R},{value:"archived",label:"Archived",count:L}],value:l,onChange:u}),search:(0,r.jsx)(x.A,{value:f,onChange:v,placeholder:"Search memories…",minWidth:260}),cta:(0,r.jsx)(m.A,{variant:"neutral",onClick:()=>N(!0),children:"+ New Memory"})}),children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-2.5 md:grid-cols-2",children:[(0,r.jsx)(b,{label:"Total memories",value:String(a)}),(0,r.jsx)(b,{label:"Archived",value:String(L),subtle:"excluded from agent context"})]}),(0,r.jsx)(g.A,{items:z,value:p,onChange:h,className:"mt-3"}),S&&(0,r.jsx)("div",{className:"mt-2 text-[11px] text-ink-4",children:"Searching…"}),(0,r.jsx)("div",{className:"mt-4 overflow-hidden rounded-xl border border-rule-2 bg-paper",children:0===V.length?(0,r.jsxs)("div",{className:"px-6 py-12 text-center text-sm text-ink-4",children:["No memories match these filters."," ","all"!==l||f||"all"!==p?"Try a different filter.":"Agents save memories automatically when they call save_memory."]}):(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full text-sm",children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{className:"border-b border-rule-2",children:[(0,r.jsx)("th",{className:"px-5 py-3 text-left text-[10.5px] font-semibold uppercase tracking-wider whitespace-nowrap text-ink-4",children:"Memory"}),(0,r.jsx)("th",{className:"hidden px-5 py-3 text-left text-[10.5px] font-semibold uppercase tracking-wider whitespace-nowrap text-ink-4 md:table-cell",children:"Agent"}),(0,r.jsx)("th",{className:"hidden px-5 py-3 text-left text-[10.5px] font-semibold uppercase tracking-wider whitespace-nowrap text-ink-4 lg:table-cell",children:"Category"}),(0,r.jsx)("th",{className:"px-5 py-3 text-left text-[10.5px] font-semibold uppercase tracking-wider whitespace-nowrap text-ink-4",children:"Importance"}),(0,r.jsx)("th",{className:"hidden px-5 py-3 text-left text-[10.5px] font-semibold uppercase tracking-wider whitespace-nowrap text-ink-4 xl:table-cell",children:"Last accessed"}),(0,r.jsx)("th",{className:"px-5 py-3 text-right text-[10.5px] font-semibold uppercase tracking-wider whitespace-nowrap text-ink-4",children:"Actions"})]})}),(0,r.jsx)("tbody",{children:V.map(e=>{let t=P(e.category),a=function(e){if(!e)return!1;let t=e instanceof Date?e:new Date(e);return Date.now()-t.getTime()<12e4}(e.last_accessed_at);return(0,r.jsxs)("tr",{className:"align-middle border-b border-rule-2/60 transition-colors last:border-0 hover:bg-hover/50",children:[(0,r.jsx)("td",{className:"px-5 py-3.5",children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)(j.A,{variant:"neutral",size:"md",shape:"square",background:t.color,className:"mt-0.5 shrink-0 [&_svg]:h-[14px] [&_svg]:w-[14px]",children:t.icon}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("div",{className:"line-clamp-2 text-[13px] leading-snug text-ink",children:e.fact}),(0,r.jsxs)("div",{className:"mt-0.5 font-mono text-[11px] text-ink-4",children:[e.created_at?new Date(e.created_at).toLocaleString():"—",(e.access_count??0)>0?` \xb7 accessed ${e.access_count}\xd7`:""]})]})]})}),(0,r.jsx)("td",{className:"hidden px-5 py-3.5 md:table-cell",children:e.agentName?(0,r.jsxs)(s(),{href:"/agents",className:"inline-flex items-center gap-2 text-[12px] text-ink-2 transition-colors hover:text-ink",children:[(0,r.jsx)(w.A,{name:e.agentName,size:"sm"}),e.agentName]}):(0,r.jsx)("span",{className:"text-ink-4",children:"—"})}),(0,r.jsx)("td",{className:"hidden px-5 py-3.5 lg:table-cell",children:(0,r.jsx)(D,{category:e.category})}),(0,r.jsx)("td",{className:"px-5 py-3.5",children:(0,r.jsx)(U,{id:e.id,importance:e.importance,locked:e.importance_locked})}),(0,r.jsx)("td",{className:"hidden px-5 py-3.5 xl:table-cell",children:(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5 font-mono text-[12px] text-ink-3",children:[function(e){if(!e)return"—";let t=e instanceof Date?e:new Date(e),a=Date.now()-t.getTime();return a<6e4?"just now":a<36e5?`${Math.floor(a/6e4)}m ago`:a<864e5?`${Math.floor(a/36e5)}h ago`:t.toLocaleDateString()}(e.last_accessed_at),a&&(0,r.jsx)(k.A,{variant:"ok",size:"sm"})]})}),(0,r.jsx)("td",{className:"px-5 py-3.5 text-right",children:(0,r.jsx)(T,{id:e.id,archived:e.archived??!1})})]},e.id)})})]})})}),(0,r.jsx)($,{open:y,onClose:()=>N(!1)})]})}},93518:(e,t,a)=>{"use strict";a.d(t,{t:()=>n});var r=a(64678);let n=(0,r.createServerReference)("40d01399a20d83ff16f6caafa35588cf2a0c558a2a",r.callServer,void 0,r.findSourceMapURL,"deleteMemoryAction")},99203:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var r=a(3680),n=a(22575);let l={sm:{box:"h-6 w-6",text:"text-[11px]",px:24},md:{box:"h-[30px] w-[30px]",text:"text-[11px]",px:30},lg:{box:"h-[42px] w-[42px]",text:"text-[15px]",px:42}};function s({name:e,imageUrl:t,size:a="md",shape:i="round",className:o=""}){let c=l[a],d=`inline-flex shrink-0 items-center justify-center overflow-hidden bg-hover font-mono font-semibold tracking-[0.04em] text-ink-2 ${c.box} ${c.text} ${"round"===i?"rounded-full":"rounded-[8px]"} ${o}`;return t?(0,r.jsx)("span",{className:d,children:(0,r.jsx)(n.default,{src:t,alt:e,width:c.px,height:c.px,className:"h-full w-full object-cover"})}):(0,r.jsx)("span",{className:d,children:function(e){let t=e.trim();if(!t)return"?";let a=t.split(/\s+/);return a.length>=2?((a[0][0]??"")+(a[1][0]??"")).toUpperCase():t.slice(0,2).toUpperCase()}(e)})}}},e=>{e.O(0,[3363,8161,9782,9836,1065,8724,7358],()=>e(e.s=68769)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1966],{11248:(e,t,n)=>{"use strict";n.d(t,{default:()=>i});var a=n(3680),r=n(78604),s=n(32895),l=n(97713);function i(){let[e,t]=(0,r.useState)("light"),[n,i]=(0,r.useState)(!1);(0,r.useEffect)(()=>{t("u"<typeof document?"light":"dark"===document.documentElement.getAttribute("data-theme")?"dark":"light"),i(!0)},[]);let o="dark"===e?s.b:l.A,c="dark"===e?"Switch to light theme":"Switch to dark theme";return(0,a.jsx)("button",{type:"button",onClick:()=>{let n="dark"===e?"light":"dark";document.documentElement.setAttribute("data-theme",n);try{localStorage.setItem("nodal.theme",n)}catch{}t(n)},"aria-label":c,title:c,className:"flex h-[34px] w-[34px] items-center justify-center rounded-md border border-rule-2 bg-paper text-ink-2 transition-colors hover:text-ink",suppressHydrationWarning:!0,children:n?(0,a.jsx)(o,{size:15}):(0,a.jsx)(l.A,{size:15})})}},39186:(e,t,n)=>{"use strict";n.d(t,{ApprovalsProvider:()=>o,e:()=>d});var a=n(3680),r=n(78604),s=n(64678);let l=(0,s.createServerReference)("4091a56ae49f9692f037a27b1733ac3e62709ec8ea",s.callServer,void 0,s.findSourceMapURL,"listApprovalsAction"),i=(0,r.createContext)(null);function o({initial:e,children:t}){let[n,s]=(0,r.useState)(e),c=(0,r.useCallback)(async()=>{let e=await l({status:"pending"});e.ok&&s(e.data.map(e=>({id:e.id,jobId:e.jobId,toolName:e.toolName,agentName:e.agentName,toolInput:e.toolInput,requestedAt:e.requestedAt})))},[]);(0,r.useEffect)(()=>{let e=setInterval(()=>{document.hidden||c()},15e3);function t(){document.hidden||c()}return document.addEventListener("visibilitychange",t),()=>{clearInterval(e),document.removeEventListener("visibilitychange",t)}},[c]);let d=(0,r.useCallback)(()=>{c()},[c]);return(0,a.jsx)(i.Provider,{value:{pending:n,refresh:d},children:t})}let c={pending:[],refresh:()=>{}};function d(){let e=(0,r.useContext)(i);return e||(console.warn("[useApprovals] called outside <ApprovalsProvider> — returning empty state."),c)}},47549:(e,t,n)=>{"use strict";n.d(t,{default:()=>v});var a=n(3680),r=n(78604),s=n(22799),l=n(44229),i=n(61453),o=n(81906),c=n(80957),d=n(14099),x=n(78986),p=n(45932),u=n(96217),m=n(67108);let f={completed:{color:"#d4ff2e",label:"Completed"},awaiting:{color:"#3565ff",label:"Awaiting"},pending:{color:"#8aa8ff",label:"Pending"},cancelled:{color:"#9a9a9a",label:"Cancelled"},failed:{color:"#ff5631",label:"Failed"}},h=["#7c3aed","#0891b2","#db2777","#ca8a04","#16a34a","#e11d48","#475569","#9333ea"];function b(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString("en-US",{month:"short",day:"numeric"})}function g({payload:e}){let t=e??[],n=t.filter(e=>"rect"===e.type),r=t.filter(e=>"rect"!==e.type);return(0,a.jsxs)("div",{className:"flex flex-col gap-2 px-1 pt-3 text-[12px] text-ink-3",children:[n.length>0&&(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1",children:[(0,a.jsx)("span",{className:"font-mono text-[10px] uppercase tracking-[0.14em] text-ink-4",children:"Status"}),n.map(e=>(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"inline-block h-2.5 w-2.5 rounded-[3px]",style:{background:e.color,opacity:.55}}),f[e.value]?.label??e.value]},e.value))]}),r.length>0&&(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1",children:[(0,a.jsx)("span",{className:"font-mono text-[10px] uppercase tracking-[0.14em] text-ink-4",children:"Models"}),r.map(e=>(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"inline-block h-[2px] w-4 rounded-full",style:{background:e.color}}),e.value]},e.value))]})]})}function v({weekly:e,daily:t}){let[n,k]=(0,r.useState)("weekly"),j="weekly"===n?e:t,N=j.rows,y=j.models,w=N.reduce((e,t)=>e+t.completed+t.awaiting+t.pending+t.cancelled+t.failed,0),S="weekly"===n?"Week of ":"";return(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-3",children:[(0,a.jsx)("h2",{className:"font-mono text-[11px] uppercase tracking-[0.16em] text-ink-4",children:"Activity"}),(0,a.jsx)(m.A,{tabs:[{value:"weekly",label:"Weekly"},{value:"daily",label:"Daily \xb7 7d"}],value:n,onChange:k,variant:"inset"})]}),(0,a.jsx)("div",{className:"rounded-2xl border border-rule-2 bg-paper px-3 py-4",children:0===w?(0,a.jsx)("div",{className:"flex h-[220px] items-center justify-center text-sm text-ink-3",children:"weekly"===n?"No jobs in the last 12 weeks.":"No jobs in the last 7 days."}):(0,a.jsx)(s.u,{width:"100%",height:260,children:(0,a.jsxs)(l.X,{data:N,margin:{top:5,right:10,left:-20,bottom:0},children:[(0,a.jsx)(i.d,{stroke:"var(--c-rule-2)",vertical:!1}),(0,a.jsx)(o.W,{dataKey:"week",tickFormatter:b,stroke:"var(--c-ink-4)",tick:{fill:"var(--c-ink-4)",fontSize:12},axisLine:!1,tickLine:!1}),(0,a.jsx)(c.h,{stroke:"var(--c-ink-4)",tick:{fill:"var(--c-ink-4)",fontSize:12},axisLine:!1,tickLine:!1,allowDecimals:!1}),(0,a.jsx)(d.m,{cursor:{fill:"var(--c-hover)"},contentStyle:{background:"var(--c-paper)",border:"1px solid var(--c-rule)",borderRadius:10,fontSize:13,color:"var(--c-ink)",boxShadow:"0 6px 20px rgba(0,0,0,0.08)"},labelStyle:{color:"var(--c-ink-3)"},labelFormatter:e=>`${S}${b(String(e??""))}`}),(0,a.jsx)(x.s,{content:(0,a.jsx)(g,{}),wrapperStyle:{left:0,width:"100%"}}),Object.keys(f).map(e=>(0,a.jsx)(p.yP,{dataKey:e,stackId:"status",fill:f[e].color,fillOpacity:.32},e)),y.map((e,t)=>(0,a.jsx)(u.N1,{type:"monotone",name:e,dataKey:t=>t.models[e]??0,stroke:h[t%h.length],strokeWidth:2,dot:{r:2},activeDot:{r:4},connectNulls:!0},e))]})})})]})}},47663:(e,t,n)=>{"use strict";n.d(t,{C:()=>r});var a=n(64678);let r=(0,a.createServerReference)("406589af82ec340355335d69e976a33b4a5205acdc",a.callServer,void 0,a.findSourceMapURL,"resolveApprovalAction")},52021:(e,t,n)=>{"use strict";n.d(t,{default:()=>d});var a=n(3680),r=n(63363),s=n.n(r),l=n(78604),i=n(96150),o=n(99203),c=n(82592);function d({initial:e}){let[t,n]=(0,l.useState)(e),[r,s]=(0,l.useState)(!1);return(0,l.useEffect)(()=>{let e=!1,t=async()=>{let t=await (0,i.V)();e||(t.ok?(n(t.data),s(!1)):s(!0))},a=setInterval(()=>void t(),5e3);return()=>{e=!0,clearInterval(a)}},[]),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,a.jsx)("h2",{className:"font-mono text-[11px] uppercase tracking-[0.16em] text-ink-4",children:"Agents at work"}),(0,a.jsx)("span",{className:"inline-flex items-center gap-1.5 font-mono text-[11px] text-ink-4",children:r?"reconnect…":(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.A,{variant:"lime",size:"sm"}),"live \xb7 ",5,"s"]})})]}),0===t.length?(0,a.jsx)("div",{className:"rounded-2xl border border-rule-2 bg-paper px-5 py-6 text-center text-sm text-ink-3",children:"All agents idle — no jobs in flight."}):(0,a.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3",children:t.map(e=>(0,a.jsx)(x,{row:e},e.agentId))})]})}function x({row:e}){return(0,a.jsxs)(s(),{href:`/jobs?agentId=${e.agentId}`,className:"block rounded-2xl border border-rule-2 bg-paper px-4 py-3 transition-colors hover:border-ink-4",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5",children:[(0,a.jsx)(o.A,{name:e.agentName,imageUrl:e.avatarUrl,size:"lg",shape:"round"}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:"truncate text-[15px] font-semibold leading-[1.2] text-ink",children:e.agentName}),(0,a.jsx)("p",{className:"truncate font-mono text-[12px] text-ink-4",children:e.agentSlug})]})]}),(0,a.jsx)("span",{className:"shrink-0 font-mono text-[24px] font-semibold leading-none tracking-[-0.02em] text-ink tabular-nums",children:e.total})]}),(0,a.jsxs)("div",{className:"mt-2 flex items-center gap-3 text-[12px]",children:[e.processing>0&&(0,a.jsxs)("span",{className:"text-run",children:[(0,a.jsx)("span",{className:"font-mono tabular-nums",children:e.processing})," running"]}),e.awaiting>0&&(0,a.jsxs)("span",{className:"text-warn",children:[(0,a.jsx)("span",{className:"font-mono tabular-nums",children:e.awaiting})," awaiting"]}),e.pending>0&&(0,a.jsxs)("span",{className:"text-ink-3",children:[(0,a.jsx)("span",{className:"font-mono tabular-nums",children:e.pending})," pending"]})]})]})}},62093:(e,t,n)=>{Promise.resolve().then(n.bind(n,52021)),Promise.resolve().then(n.bind(n,47549)),Promise.resolve().then(n.bind(n,88563)),Promise.resolve().then(n.bind(n,64676)),Promise.resolve().then(n.bind(n,11248)),Promise.resolve().then(n.t.bind(n,63363,23)),Promise.resolve().then(n.t.bind(n,27364,23))},64676:(e,t,n)=>{"use strict";n.d(t,{default:()=>l});var a=n(3680),r=n(32928),s=n(78604);function l({placeholder:e="Search agents, skills, runs…",keyboardShortcut:t=!0,onSubmit:n,className:i=""}){let o=(0,s.useRef)(null);return(0,s.useEffect)(()=>{if(!t)return;let e=e=>{if("/"!==e.key)return;let t=e.target;t&&/^(input|textarea|select)$/i.test(t.tagName)||t?.isContentEditable||(e.preventDefault(),o.current?.focus())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t]),(0,a.jsxs)("form",{onSubmit:e=>{e.preventDefault(),n?.(o.current?.value??"")},className:`flex h-[34px] min-w-[280px] items-center gap-2 rounded-md border border-rule-2 bg-paper px-3 text-[13px] text-ink-4 ${i}`,children:[(0,a.jsx)(r.e,{size:13,className:"shrink-0"}),(0,a.jsx)("input",{ref:o,type:"search",placeholder:e,className:"flex-1 border-0 bg-transparent text-[14px] leading-none text-ink outline-none placeholder:text-ink-4"}),(0,a.jsx)("span",{className:"rounded-[5px] border border-rule bg-black/5 px-1.5 py-[1px] font-mono text-[12px] leading-none text-ink-4 dark:bg-white/[0.06]",children:"/"})]})}},67108:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(3680),r=n(78604);function s({tabs:e,value:t,defaultValue:n,onChange:l,variant:i="inset"}){let[o,c]=(0,r.useState)(t??n??e[0].value),d=t??o,x="inset"===i?"bg-paper text-ink shadow-[0_1px_2px_rgba(0,0,0,0.06)]":"bg-ink text-canvas";return(0,a.jsx)("div",{className:`inline-flex gap-0.5 rounded-md p-[3px] ${"inset"===i?"bg-black/[0.05]":"bg-black/[0.04]"}`,role:"tablist",children:e.map(e=>{let n=e.value===d;return(0,a.jsxs)("button",{type:"button",role:"tab","aria-selected":n,onClick:()=>{void 0===t&&c(e.value),l?.(e.value)},className:`inline-flex h-[26px] items-center gap-1.5 rounded-[6px] border-0 px-3 text-[12px] font-medium leading-none transition-colors ${n?x:"bg-transparent text-ink-3 hover:text-ink-2"}`,children:[e.label,void 0!==e.count&&(0,a.jsx)("span",{className:`font-mono text-[11px] ${n?"opacity-85":"opacity-65"}`,children:e.count})]},e.value)})})}},82592:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var a=n(3680);let r={ok:"bg-ok",lime:"bg-agent-vivid",coral:"bg-skill-vivid",blue:"bg-conn-vivid"},s={ok:"animate-[blip_1.4s_ease-out_infinite]",lime:"animate-[blip-lime_1.5s_ease-out_infinite]",coral:"animate-[blip-coral_1.4s_ease-out_infinite]",blue:"animate-[blip-blue_1.4s_ease-out_infinite]"};function l({variant:e="ok",size:t="sm",animate:n=!0,className:i=""}){return(0,a.jsx)("span",{className:`inline-block shrink-0 rounded-full ${"sm"===t?"h-[7px] w-[7px]":"h-2 w-2"} ${r[e]} ${n?s[e]:""} ${i}`})}},88563:(e,t,n)=>{"use strict";n.d(t,{default:()=>u});var a=n(3680),r=n(78604),s=n(63363),l=n.n(s),i=n(7101),o=n(39504),c=n(47663),d=n(39186);function x({item:e,onApproved:t}){let[n,s]=(0,r.useTransition)();return(0,a.jsx)("button",{type:"button",onClick:n=>{n.preventDefault(),n.stopPropagation(),s(async()=>{let n=await (0,c.C)({approvalRequestId:e.id,decision:"approve"});n.ok?(o.oR.success("Approved"),t()):o.oR.error(n.message)})},disabled:n,className:"shrink-0 rounded-md bg-ok px-2.5 py-1 text-[12px] font-semibold text-canvas transition-[filter] hover:brightness-[0.92] disabled:opacity-40",children:n?"…":"Approve"})}function p({items:e,onClose:t,onApproved:n}){let s=(0,r.useRef)(null);return(0,r.useEffect)(()=>{function e(e){s.current&&!s.current.contains(e.target)&&t()}return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[t]),(0,r.useEffect)(()=>{function e(e){"Escape"===e.key&&t()}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t]),(0,a.jsxs)("div",{ref:s,className:"absolute right-0 top-full z-50 mt-1.5 w-[340px] rounded-xl border border-rule-2 bg-paper shadow-lg",role:"dialog","aria-label":"Pending approvals",children:[(0,a.jsx)("div",{className:"border-b border-rule-2 px-4 py-3",children:(0,a.jsxs)("p",{className:"text-[14px] font-semibold text-ink",children:["Pending approvals (",e.length,")"]})}),0===e.length?(0,a.jsx)("p",{className:"px-4 py-5 text-center text-[13px] text-ink-3",children:"No pending approvals."}):(0,a.jsx)("ul",{className:"max-h-[340px] divide-y divide-rule-2 overflow-y-auto",children:e.map(e=>(0,a.jsx)("li",{children:(0,a.jsxs)(l(),{href:`/jobs/${e.jobId}`,onClick:t,className:"flex items-start gap-3 px-4 py-3 transition-colors hover:bg-hover",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("p",{className:"truncate text-[13px] font-medium text-ink",children:[e.agentName??"Agent",(0,a.jsx)("span",{className:"mx-1 text-ink-4",children:"\xb7"}),(0,a.jsx)("code",{className:"rounded bg-canvas px-1 py-0.5 font-mono text-[12px] text-ink-2",children:e.toolName})]}),(0,a.jsx)("p",{className:"mt-0.5 truncate text-[12px] text-ink-3",children:function(e){if(!e)return"—";if("string"==typeof e.purpose&&e.purpose.trim()){let t=e.purpose.trim();return t.length>80?t.slice(0,77)+"…":t}if("string"==typeof e.command){let t=e.command;return t.length>60?t.slice(0,57)+"…":t}let t=JSON.stringify(e);return t.length>60?t.slice(0,57)+"…":t}(e.toolInput)}),(0,a.jsx)("p",{className:"mt-0.5 text-[11px] text-ink-4",children:function(e){if(!e)return"—";let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(t<60)return`${t}s ago`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let a=Math.floor(n/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}(e.requestedAt)})]}),(0,a.jsx)(x,{item:e,onApproved:n})]})},e.id))}),(0,a.jsx)("div",{className:"border-t border-rule-2 px-4 py-2.5",children:(0,a.jsx)(l(),{href:"/approvals",onClick:t,className:"text-[13px] font-medium text-ink-2 transition-colors hover:text-ink",children:"See all approvals →"})})]})}function u(){let{pending:e,refresh:t}=(0,d.e)(),[n,s]=(0,r.useState)(!1),l=(0,r.useRef)(null),o=e.length,c=(0,r.useCallback)(()=>s(!1),[]),x=(0,r.useCallback)(()=>s(e=>!e),[]),u=(0,r.useCallback)(()=>{t()},[t]);return(0,a.jsxs)("div",{ref:l,className:"relative",children:[(0,a.jsxs)("button",{type:"button","aria-label":"Notifications",title:"Notifications",onClick:x,className:"relative flex h-[34px] w-[34px] shrink-0 items-center justify-center rounded-md border border-rule-2 bg-paper text-ink-2 transition-colors hover:text-ink",children:[(0,a.jsx)(i.I,{size:15}),o>0&&(0,a.jsx)("span",{className:"absolute -top-1 -right-1 flex h-4 min-w-[16px] items-center justify-center rounded-full bg-err px-1 text-[11px] font-bold leading-none text-canvas",children:o>99?"99+":o})]}),n&&(0,a.jsx)(p,{items:e,onClose:c,onApproved:u})]})}},96150:(e,t,n)=>{"use strict";n.d(t,{V:()=>r});var a=n(64678);let r=(0,a.createServerReference)("00703cdccd8f65c061f14ce46020d81d614995b5ec",a.callServer,void 0,a.findSourceMapURL,"getActiveJobsByAgentAction")},99203:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var a=n(3680),r=n(22575);let s={sm:{box:"h-6 w-6",text:"text-[11px]",px:24},md:{box:"h-[30px] w-[30px]",text:"text-[11px]",px:30},lg:{box:"h-[42px] w-[42px]",text:"text-[15px]",px:42}};function l({name:e,imageUrl:t,size:n="md",shape:i="round",className:o=""}){let c=s[n],d=`inline-flex shrink-0 items-center justify-center overflow-hidden bg-hover font-mono font-semibold tracking-[0.04em] text-ink-2 ${c.box} ${c.text} ${"round"===i?"rounded-full":"rounded-[8px]"} ${o}`;return t?(0,a.jsx)("span",{className:d,children:(0,a.jsx)(r.default,{src:t,alt:e,width:c.px,height:c.px,className:"h-full w-full object-cover"})}):(0,a.jsx)("span",{className:d,children:function(e){let t=e.trim();if(!t)return"?";let n=t.split(/\s+/);return n.length>=2?((n[0][0]??"")+(n[1][0]??"")).toUpperCase():t.slice(0,2).toUpperCase()}(e)})}}},e=>{e.O(0,[3363,8161,9782,8502,8983,1065,8724,7358],()=>e(e.s=62093)),_N_E=e.O()}]);