nodal-agents 0.6.8 → 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 (169) hide show
  1. package/cli.js +359 -35
  2. package/migrations/0051_memory_search_fts.sql +2 -0
  3. package/migrations/0052_entities_memory_curation.sql +1 -0
  4. package/migrations/0053_memory_importance_locked.sql +1 -0
  5. package/migrations/0054_audit2_db_integrity.sql +52 -0
  6. package/migrations/0055_entity_settings.sql +22 -0
  7. package/migrations/0056_agents_skills_entity_scoped_unique.sql +23 -0
  8. package/migrations/0057_telegram_allowed_chats.sql +34 -0
  9. package/migrations/meta/_journal.json +49 -0
  10. package/package.json +1 -1
  11. package/runner.js +47144 -35235
  12. package/web/.next/BUILD_ID +1 -1
  13. package/web/.next/app-path-routes-manifest.json +3 -3
  14. package/web/.next/build-manifest.json +2 -2
  15. package/web/.next/prerender-manifest.json +3 -3
  16. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page.js +3 -3
  17. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page.js.nft.json +1 -1
  18. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page_client-reference-manifest.js +1 -1
  19. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page.js +2 -2
  20. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page.js.nft.json +1 -1
  21. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page_client-reference-manifest.js +1 -1
  22. package/web/.next/server/app/(dashboard)/agents/page.js +2 -2
  23. package/web/.next/server/app/(dashboard)/agents/page.js.nft.json +1 -1
  24. package/web/.next/server/app/(dashboard)/agents/page_client-reference-manifest.js +1 -1
  25. package/web/.next/server/app/(dashboard)/approvals/page.js +2 -2
  26. package/web/.next/server/app/(dashboard)/approvals/page.js.nft.json +1 -1
  27. package/web/.next/server/app/(dashboard)/approvals/page_client-reference-manifest.js +1 -1
  28. package/web/.next/server/app/(dashboard)/automations/page.js +2 -2
  29. package/web/.next/server/app/(dashboard)/automations/page.js.nft.json +1 -1
  30. package/web/.next/server/app/(dashboard)/automations/page_client-reference-manifest.js +1 -1
  31. package/web/.next/server/app/(dashboard)/chat/page.js +2 -2
  32. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  33. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  34. package/web/.next/server/app/(dashboard)/connectors/page.js +2 -2
  35. package/web/.next/server/app/(dashboard)/connectors/page.js.nft.json +1 -1
  36. package/web/.next/server/app/(dashboard)/connectors/page_client-reference-manifest.js +1 -1
  37. package/web/.next/server/app/(dashboard)/credentials/page.js +1 -1
  38. package/web/.next/server/app/(dashboard)/credentials/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(dashboard)/credentials/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/(dashboard)/jobs/[id]/page.js +2 -2
  41. package/web/.next/server/app/(dashboard)/jobs/[id]/page.js.nft.json +1 -1
  42. package/web/.next/server/app/(dashboard)/jobs/[id]/page_client-reference-manifest.js +1 -1
  43. package/web/.next/server/app/(dashboard)/jobs/page.js +2 -2
  44. package/web/.next/server/app/(dashboard)/jobs/page.js.nft.json +1 -1
  45. package/web/.next/server/app/(dashboard)/jobs/page_client-reference-manifest.js +1 -1
  46. package/web/.next/server/app/(dashboard)/learned-skills/page.js +2 -2
  47. package/web/.next/server/app/(dashboard)/learned-skills/page.js.nft.json +1 -1
  48. package/web/.next/server/app/(dashboard)/learned-skills/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/(dashboard)/llm-providers/page.js +2 -2
  50. package/web/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
  51. package/web/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/(dashboard)/logs/page.js +2 -2
  53. package/web/.next/server/app/(dashboard)/logs/page.js.nft.json +1 -1
  54. package/web/.next/server/app/(dashboard)/logs/page_client-reference-manifest.js +1 -1
  55. package/web/.next/server/app/(dashboard)/mcp/page.js +2 -2
  56. package/web/.next/server/app/(dashboard)/mcp/page.js.nft.json +1 -1
  57. package/web/.next/server/app/(dashboard)/mcp/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/app/(dashboard)/memories/page.js +2 -2
  59. package/web/.next/server/app/(dashboard)/memories/page.js.nft.json +1 -1
  60. package/web/.next/server/app/(dashboard)/memories/page_client-reference-manifest.js +1 -1
  61. package/web/.next/server/app/(dashboard)/page.js +3 -3
  62. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  63. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/(dashboard)/settings/page.js +2 -2
  65. package/web/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  66. package/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  67. package/web/.next/server/app/(dashboard)/settings/root-context/page.js +2 -2
  68. package/web/.next/server/app/(dashboard)/settings/root-context/page.js.nft.json +1 -1
  69. package/web/.next/server/app/(dashboard)/settings/root-context/page_client-reference-manifest.js +1 -1
  70. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page.js +2 -2
  71. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page.js.nft.json +1 -1
  72. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/app/(dashboard)/skills/new/page.js +2 -2
  74. package/web/.next/server/app/(dashboard)/skills/new/page.js.nft.json +1 -1
  75. package/web/.next/server/app/(dashboard)/skills/new/page_client-reference-manifest.js +1 -1
  76. package/web/.next/server/app/(dashboard)/skills/page.js +2 -2
  77. package/web/.next/server/app/(dashboard)/skills/page.js.nft.json +1 -1
  78. package/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
  79. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  80. package/web/.next/server/app/_global-error.html +1 -1
  81. package/web/.next/server/app/_global-error.rsc +2 -2
  82. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  83. package/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  84. package/web/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  85. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  86. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +2 -2
  87. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  88. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  89. package/web/.next/server/app/_not-found.html +1 -1
  90. package/web/.next/server/app/_not-found.rsc +3 -3
  91. package/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  92. package/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  93. package/web/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  94. package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  95. package/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  96. package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  97. package/web/.next/server/app/api/auth/[...all]/route.js +1 -1
  98. package/web/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -1
  99. package/web/.next/server/app/api/oauth/[provider]/callback/route.js +1 -1
  100. package/web/.next/server/app/api/oauth/[provider]/callback/route.js.nft.json +1 -1
  101. package/web/.next/server/app/api/oauth/[provider]/start/route.js +1 -1
  102. package/web/.next/server/app/api/oauth/[provider]/start/route.js.nft.json +1 -1
  103. package/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
  104. package/web/.next/server/app/onboarding/page.js +214 -190
  105. package/web/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  106. package/web/.next/server/app-paths-manifest.json +3 -3
  107. package/web/.next/server/chunks/2713.js +47 -23
  108. package/web/.next/server/chunks/3223.js +1 -1
  109. package/web/.next/server/chunks/4574.js +1 -1
  110. package/web/.next/server/chunks/5515.js +1 -0
  111. package/web/.next/server/chunks/6468.js +1 -0
  112. package/web/.next/server/chunks/8410.js +1 -0
  113. package/web/.next/server/chunks/{4488.js → 8810.js} +2 -2
  114. package/web/.next/server/chunks/{3154.js → 960.js} +10 -10
  115. package/web/.next/server/middleware-build-manifest.js +1 -1
  116. package/web/.next/server/pages/404.html +1 -1
  117. package/web/.next/server/pages/500.html +1 -1
  118. package/web/.next/server/server-reference-manifest.js +1 -1
  119. package/web/.next/server/server-reference-manifest.json +1 -1
  120. package/web/.next/static/chunks/4964-c6711d3d479b6085.js +1 -0
  121. package/web/.next/static/chunks/{9836-6a7e70d2572d9671.js → 9836-177f6ca2f15ff703.js} +1 -1
  122. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-cfce874f4acede5e.js +6 -0
  123. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/telegram/page-9249c2839f551ba1.js +1 -0
  124. package/web/.next/static/chunks/app/(dashboard)/agents/page-7d784d737acedccf.js +1 -0
  125. package/web/.next/static/chunks/app/(dashboard)/approvals/{page-6435e07096efe1ef.js → page-b3a838ecbc94a030.js} +1 -1
  126. package/web/.next/static/chunks/app/(dashboard)/automations/page-b1b548de4f52696c.js +1 -0
  127. package/web/.next/static/chunks/app/(dashboard)/chat/page-bcf6dcc73b370eb0.js +1 -0
  128. package/web/.next/static/chunks/app/(dashboard)/connectors/page-2c6f913cc6aea4b7.js +1 -0
  129. package/web/.next/static/chunks/app/(dashboard)/jobs/[id]/page-43f033251eddcc4b.js +1 -0
  130. package/web/.next/static/chunks/app/(dashboard)/jobs/page-1f892f950bb30403.js +1 -0
  131. package/web/.next/static/chunks/app/(dashboard)/layout-e184673151ff8a05.js +1 -0
  132. package/web/.next/static/chunks/app/(dashboard)/learned-skills/page-f873bb6f8539e47e.js +1 -0
  133. package/web/.next/static/chunks/app/(dashboard)/llm-providers/page-64adda30176f4ccb.js +1 -0
  134. package/web/.next/static/chunks/app/(dashboard)/logs/{page-f9efb4dd80bf104a.js → page-79cfd9141c39d8ef.js} +1 -1
  135. package/web/.next/static/chunks/app/(dashboard)/mcp/page-d276d7bab25286a1.js +1 -0
  136. package/web/.next/static/chunks/app/(dashboard)/memories/page-c66720494a340503.js +1 -0
  137. package/web/.next/static/chunks/app/(dashboard)/page-3649204dd27a0ad0.js +1 -0
  138. package/web/.next/static/chunks/app/(dashboard)/settings/page-1cab404d2eccfd80.js +1 -0
  139. package/web/.next/static/chunks/app/(dashboard)/settings/root-context/page-b5898c5444f88c9a.js +1 -0
  140. package/web/.next/static/chunks/app/(dashboard)/skills/[id]/edit/{page-d20237d23a440118.js → page-82d91fc6b6acc161.js} +1 -1
  141. package/web/.next/static/chunks/app/(dashboard)/skills/new/{page-8454b37bed789c4e.js → page-58b5ed04583ca7d4.js} +1 -1
  142. package/web/.next/static/chunks/app/(dashboard)/skills/page-312bd4ae8ddc8114.js +1 -0
  143. package/web/.next/static/chunks/app/onboarding/page-f2f04878e81fdf23.js +26 -0
  144. package/web/.next/static/css/4d808b91d7b58fce.css +3 -0
  145. package/web/.next/server/chunks/2053.js +0 -1
  146. package/web/.next/server/chunks/5290.js +0 -1
  147. package/web/.next/server/chunks/9282.js +0 -1
  148. package/web/.next/static/chunks/4964-09a4dc14acc324f3.js +0 -1
  149. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-1172f97f44c6b953.js +0 -6
  150. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/telegram/page-a858be2a0b9d5d42.js +0 -1
  151. package/web/.next/static/chunks/app/(dashboard)/agents/page-637555c8b299e4d7.js +0 -1
  152. package/web/.next/static/chunks/app/(dashboard)/automations/page-416f63bbd11d1a93.js +0 -1
  153. package/web/.next/static/chunks/app/(dashboard)/chat/page-53507d81c2ceee4c.js +0 -1
  154. package/web/.next/static/chunks/app/(dashboard)/connectors/page-f6a4d52ef7ea8c7f.js +0 -1
  155. package/web/.next/static/chunks/app/(dashboard)/jobs/[id]/page-acb7d1383384f27b.js +0 -1
  156. package/web/.next/static/chunks/app/(dashboard)/jobs/page-b82e456c240416ad.js +0 -1
  157. package/web/.next/static/chunks/app/(dashboard)/layout-d0662737b23eaebb.js +0 -1
  158. package/web/.next/static/chunks/app/(dashboard)/learned-skills/page-3c67b5a3869a9224.js +0 -1
  159. package/web/.next/static/chunks/app/(dashboard)/llm-providers/page-294135b03955dd45.js +0 -1
  160. package/web/.next/static/chunks/app/(dashboard)/mcp/page-482dc02cf953c197.js +0 -1
  161. package/web/.next/static/chunks/app/(dashboard)/memories/page-ce432008a8a4c118.js +0 -1
  162. package/web/.next/static/chunks/app/(dashboard)/page-d76a7350bf5bea10.js +0 -1
  163. package/web/.next/static/chunks/app/(dashboard)/settings/page-80cb948b3c0cef7d.js +0 -1
  164. package/web/.next/static/chunks/app/(dashboard)/settings/root-context/page-8e7dabbb399e369d.js +0 -1
  165. package/web/.next/static/chunks/app/(dashboard)/skills/page-af8d329facf31c8f.js +0 -1
  166. package/web/.next/static/chunks/app/onboarding/page-3543225eab5f4029.js +0 -26
  167. package/web/.next/static/css/b06a60c5d9b30bc8.css +0 -3
  168. /package/web/.next/static/{RORb5LJdSgtd7i6KVr0zl → SgnP_MouhUmw0bBf-lUmD}/_buildManifest.js +0 -0
  169. /package/web/.next/static/{RORb5LJdSgtd7i6KVr0zl → SgnP_MouhUmw0bBf-lUmD}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7665],{40102:(e,t,n)=>{Promise.resolve().then(n.bind(n,53523)),Promise.resolve().then(n.bind(n,88563)),Promise.resolve().then(n.bind(n,64676)),Promise.resolve().then(n.bind(n,11248))},53523:(e,t,n)=>{"use strict";n.d(t,{default:()=>C});var r=n(3680),s=n(78604),a=n(73868),i=n(65668),l=n(77045),o=n(39504),d=n(64678);let c=(0,d.createServerReference)("40dafedcea4cd0ff41c2249fe35a33e569de082bdf",d.callServer,void 0,d.findSourceMapURL,"updateScheduleAction"),u=(0,d.createServerReference)("407703881b3cf4b39e3edb49fca9ee78486a4bfcb0",d.callServer,void 0,d.findSourceMapURL,"createScheduleAction");var m=n(74178);let x=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function h(e){let t=e.trim().split(/\s+/);if(5!==t.length)return e;let[n,r,s,a,i]=t;if("*"===n&&"*"===r&&"*"===s&&"*"===a&&"*"===i)return"Every minute";let l=n?.match(/^\*\/(\d+)$/);if(l&&"*"===r&&"*"===s&&"*"===a&&"*"===i)return`Every ${l[1]} minutes`;if("*"===r&&"*"===s&&"*"===a&&"*"===i&&/^\d+$/.test(n??""))return"0"===n?"Every hour (top of hour)":`Every hour at :${(n??"").padStart(2,"0")}`;if("*"===s&&"*"===a&&"*"===i&&/^\d+$/.test(n??"")&&/^\d+$/.test(r??""))return`Every day at ${p(r)}:${p(n)}`;if("*"===s&&"*"===a&&/^\d+$/.test(n??"")&&/^\d+$/.test(r??"")){let e=function(e){if("*"===e)return"day";if("1-5"===e)return"weekday";if("0,6"===e||"6,0"===e)return"weekend";if(/^\d$/.test(e)){let t=parseInt(e,10);if(t>=0&&t<=6)return x[t]??null}return/^[0-6](,[0-6])+$/.test(e)?e.split(",").map(e=>x[parseInt(e,10)]).filter(Boolean).join(", "):null}(i??"");if(e)return`Every ${e} at ${p(r)}:${p(n)}`}return"*"===a&&"*"===i&&/^\d+$/.test(n??"")&&/^\d+$/.test(r??"")&&/^\d+$/.test(s??"")?`Day ${s} of every month at ${p(r)}:${p(n)}`:e}function p(e){return(e??"").padStart(2,"0")}let b=[{n:1,label:"Mon"},{n:2,label:"Tue"},{n:3,label:"Wed"},{n:4,label:"Thu"},{n:5,label:"Fri"},{n:6,label:"Sat"},{n:0,label:"Sun"}],f=[1,5,10,15,30];function v({name:e="cronExpr",initial:t}){let n=(0,s.useMemo)(()=>t?function(e){let t=e.trim().split(/\s+/);if(5!==t.length)return{mode:"custom",values:{mode:"custom",custom:e}};let[n,r,s,a,i]=t,l=n?.match(/^\*\/(\d+)$/);if(l&&"*"===r&&"*"===s&&"*"===a&&"*"===i)return{mode:"minutes",values:{mode:"minutes",everyMinutes:parseInt(l[1]??"5",10)}};if("*"===r&&"*"===s&&"*"===a&&"*"===i&&/^\d+$/.test(n??""))return{mode:"hourly",values:{mode:"hourly",time:`00:${p(n)}`}};if("*"===s&&"*"===a&&"*"===i&&/^\d+$/.test(n??"")&&/^\d+$/.test(r??""))return{mode:"daily",values:{mode:"daily",time:`${p(r)}:${p(n)}`}};if("*"===s&&"*"===a&&/^\d+$/.test(n??"")&&/^\d+$/.test(r??"")){let e=function(e){if("*"===e)return[0,1,2,3,4,5,6];if("1-5"===e)return[1,2,3,4,5];if("0,6"===e||"6,0"===e)return[0,6];if(/^\d$/.test(e)){let t=parseInt(e,10);if(t>=0&&t<=6)return[t]}return/^[0-6](,[0-6])+$/.test(e)?e.split(",").map(e=>parseInt(e,10)):null}(i??"");if(e)return{mode:"weekly",values:{mode:"weekly",time:`${p(r)}:${p(n)}`,weekdays:e}}}return"*"===a&&"*"===i&&/^\d+$/.test(n??"")&&/^\d+$/.test(r??"")&&/^\d+$/.test(s??"")?{mode:"monthly",values:{mode:"monthly",time:`${p(r)}:${p(n)}`,dayOfMonth:parseInt(s??"1",10)}}:{mode:"custom",values:{mode:"custom",custom:e}}}(t):{mode:"daily",values:{mode:"daily",time:"09:00"}},[t]),[a,i]=(0,s.useState)(n.mode),[l,o]=(0,s.useState)(n.values.everyMinutes??5),[d,c]=(0,s.useState)(n.values.time??"09:00"),[u,x]=(0,s.useState)(n.values.weekdays??[1,2,3,4,5]),[k,y]=(0,s.useState)(n.values.dayOfMonth??1),[j,N]=(0,s.useState)(n.values.custom??t??"0 9 * * *"),w=(0,s.useMemo)(()=>(function(e){let t=function(e){if(!e)return{hour:9,minute:0};let t=e.match(/^(\d{1,2}):(\d{2})$/);return t?{hour:Math.max(0,Math.min(23,parseInt(t[1]??"0",10))),minute:Math.max(0,Math.min(59,parseInt(t[2]??"0",10)))}:{hour:9,minute:0}}(e.time);switch(e.mode){case"minutes":{let t=e.everyMinutes&&e.everyMinutes>0?e.everyMinutes:5;return`*/${t} * * * *`}case"hourly":return`${t.minute} * * * *`;case"daily":return`${t.minute} ${t.hour} * * *`;case"weekly":{let n=e.weekdays&&e.weekdays.length>0?e.weekdays.slice().sort().join(","):"1";return`${t.minute} ${t.hour} * * ${n}`}case"monthly":{let n=e.dayOfMonth&&e.dayOfMonth>0?e.dayOfMonth:1;return`${t.minute} ${t.hour} ${n} * *`}case"custom":return(e.custom??"").trim()}})({mode:a,everyMinutes:l,time:d,weekdays:u,dayOfMonth:k,custom:j}),[a,l,d,u,k,j]),$=(0,s.useMemo)(()=>(function(e,t=new Date){if(!e||"string"!=typeof e)return{ok:!1,error:"Empty expression"};try{let n=m.CronExpressionParser.parse(e.trim(),{currentDate:t}),r=[];for(let e=0;e<3;e++)r.push(n.next().toDate());return{ok:!0,nextRuns:r,humanLabel:h(e)}}catch(e){return{ok:!1,error:e instanceof Error?e.message:"Invalid cron expression"}}})(w),[w]);return(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)("input",{type:"hidden",name:e,value:w}),(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"cron-mode",className:"block text-xs text-ink-3 mb-1",children:"Frequency"}),(0,r.jsxs)("select",{id:"cron-mode",value:a,onChange:e=>i(e.target.value),className:"w-full bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink focus:border-ink-3 focus:outline-none",children:[(0,r.jsx)("option",{value:"minutes",children:"Every N minutes"}),(0,r.jsx)("option",{value:"hourly",children:"Hourly"}),(0,r.jsx)("option",{value:"daily",children:"Daily"}),(0,r.jsx)("option",{value:"weekly",children:"Weekly"}),(0,r.jsx)("option",{value:"monthly",children:"Monthly"}),(0,r.jsx)("option",{value:"custom",children:"Custom (cron)"})]})]}),"minutes"===a&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"cron-every",className:"block text-xs text-ink-3 mb-1",children:"Every"}),(0,r.jsx)("select",{id:"cron-every",value:l,onChange:e=>o(parseInt(e.target.value,10)),className:"w-full bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink focus:border-ink-3 focus:outline-none",children:f.map(e=>(0,r.jsxs)("option",{value:e,children:[e," ",1===e?"minute":"minutes"]},e))})]}),"hourly"===a&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"cron-min-of-hour",className:"block text-xs text-ink-3 mb-1",children:"At minute"}),(0,r.jsx)("input",{id:"cron-min-of-hour",type:"number",min:0,max:59,value:parseInt(d.split(":")[1]??"0",10),onChange:e=>{let t=Math.max(0,Math.min(59,parseInt(e.target.value||"0",10)));c(`00:${String(t).padStart(2,"0")}`)},className:"w-full bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink focus:border-ink-3 focus:outline-none"})]}),("daily"===a||"weekly"===a||"monthly"===a)&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"cron-time",className:"block text-xs text-ink-3 mb-1",children:"Time"}),(0,r.jsx)("input",{id:"cron-time",type:"time",value:d,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 focus:border-ink-3 focus:outline-none"})]})]}),"weekly"===a&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-xs text-ink-3 mb-1",children:"Days"}),(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:b.map(e=>{let t=u.includes(e.n);return(0,r.jsx)("button",{type:"button",onClick:()=>{var t;return t=e.n,void x(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t].sort())},className:`px-2.5 py-1 text-xs font-medium rounded border ${t?"bg-run-bg border-run/30 text-run":"border-rule-2 text-ink-3 hover:border-rule hover:text-ink"}`,children:e.label},e.n)})})]}),"monthly"===a&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"cron-dom",className:"block text-xs text-ink-3 mb-1",children:"Day of month"}),(0,r.jsx)("input",{id:"cron-dom",type:"number",min:1,max:31,value:k,onChange:e=>y(Math.max(1,Math.min(31,parseInt(e.target.value||"1",10)))),className:"w-32 bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink focus:border-ink-3 focus:outline-none"})]}),"custom"===a&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"cron-custom",className:"block text-xs text-ink-3 mb-1",children:"Cron expression"}),(0,r.jsx)("input",{id:"cron-custom",type:"text",value:j,onChange:e=>N(e.target.value),placeholder:"0 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.jsx)("p",{className:"text-[11px] text-ink-4 mt-1",children:"Format: minute hour day-of-month month day-of-week"})]}),(0,r.jsx)(g,{expr:w,preview:$})]})}function g({expr:e,preview:t}){return t.ok?(0,r.jsxs)("div",{className:"bg-canvas border border-rule-2 rounded-md px-3 py-2 space-y-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,r.jsx)("span",{className:"text-ink-3",children:"Schedule:"}),(0,r.jsx)("span",{className:"text-ink",children:t.humanLabel}),(0,r.jsx)("code",{className:"ml-auto font-mono text-[11px] text-run",children:e})]}),(0,r.jsxs)("div",{className:"text-[11px] text-ink-4",suppressHydrationWarning:!0,children:["Next runs: ",t.nextRuns.map(e=>e.toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})).join(" \xb7 ")]})]}):(0,r.jsxs)("div",{className:"bg-warn-bg border border-err/30 rounded-md px-3 py-2 text-xs text-err",children:[(0,r.jsx)("span",{className:"font-semibold",children:"Invalid:"})," ",t.error]})}function k(e){let t="edit"===e.mode,n=!t&&void 0!==e.open,[a,i]=(0,s.useState)(t),l=n?e.open??!1:a,d=t=>{n?e.onOpenChange?.(t):i(t)},[m,x]=(0,s.useTransition)(),[h,p]=(0,s.useState)(t?e.initial.agentId:""),[b,f]=(0,s.useState)(!!t&&!0===e.initial.notifyOnSuccess);if(!t&&!l)return n?null:(0,r.jsx)("button",{type:"button",onClick:()=>d(!0),disabled:0===e.agents.length,className:"inline-flex h-[34px] items-center gap-1.5 rounded-md border-0 bg-ink px-3.5 text-[14px] font-medium leading-none text-canvas transition-[filter] hover:brightness-[0.92] disabled:cursor-not-allowed disabled:opacity-40",title:0===e.agents.length?"Create an agent first":"",children:"+ New schedule"});let g=t?e.initial.name:"",k=t?e.initial.task??"":"",y=t?e.initial.cronExpr:"0 9 * * *",j=e.agents.find(e=>e.id===h),N=b&&null!=j&&!j.telegramBotToken;return(0,r.jsxs)("form",{onSubmit:function(n){n.preventDefault();let r=n.currentTarget,s=new FormData(r);x(async()=>{if(t){let t=await c({id:e.initial.id,agentId:h,name:s.get("name"),cronExpr:s.get("cronExpr"),task:s.get("task"),notifyOnSuccess:b});t.ok?(o.oR.success("Schedule updated"),e.onDone?.()):o.oR.error(t.message)}else{let t=await u({agentId:h,name:s.get("name"),cronExpr:s.get("cronExpr"),task:s.get("task"),notifyOnSuccess:b});t.ok?(o.oR.success("Schedule created"),r.reset(),p(""),f(!1),d(!1),e.onDone?.()):o.oR.error(t.message)}})},className:"space-y-3 rounded-xl border border-rule-2 bg-paper p-5",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-ink",children:t?"Edit schedule":"New schedule"}),(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"mb-1 block text-xs text-ink-3",htmlFor:"schedule-agent",children:"Agent"}),(0,r.jsxs)("select",{id:"schedule-agent",name:"agentId",required:!0,value:h,onChange:e=>p(e.target.value),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:"Select…"}),e.agents.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"mb-1 block text-xs text-ink-3",htmlFor:"schedule-name",children:"Name"}),(0,r.jsx)("input",{id:"schedule-name",name:"name",required:!0,defaultValue:g,placeholder:"Daily standup",className:"w-full rounded-md border border-rule bg-canvas px-2 py-1.5 text-sm text-ink placeholder-ink-4 focus:border-ink-3 focus:outline-none"})]})]}),(0,r.jsx)(v,{name:"cronExpr",initial:y}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"mb-1 block text-xs text-ink-3",htmlFor:"schedule-task",children:"Task instructions"}),(0,r.jsx)("textarea",{id:"schedule-task",name:"task",required:!0,rows:4,defaultValue:k,placeholder:"What should the agent do each time this fires?",className:"w-full resize-y rounded-md border border-rule bg-canvas px-2 py-1.5 text-sm text-ink placeholder-ink-4 focus:border-ink-3 focus:outline-none"})]}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("label",{className:"flex items-start gap-2.5 rounded-md border border-rule bg-canvas px-3 py-2.5 text-sm",children:[(0,r.jsx)("input",{type:"checkbox",name:"notifyOnSuccess",checked:b,onChange:e=>f(e.target.checked),className:"mt-0.5 h-4 w-4 shrink-0 accent-ink"}),(0,r.jsxs)("span",{children:[(0,r.jsx)("span",{className:"font-medium text-ink",children:"Notify me on Telegram when it succeeds"}),(0,r.jsx)("span",{className:"mt-0.5 block text-xs text-ink-3",children:"The agent sends you a short confirmation each time this automation finishes. Requires a Telegram bot on the agent (DM it once so it knows where to reach you)."})]})]}),N&&(0,r.jsxs)("p",{className:"rounded-md border border-warn/30 bg-warn-bg px-3 py-2 text-xs text-warn",children:["⚠️ ",(0,r.jsx)("span",{className:"font-medium",children:j?.name})," has no Telegram bot, so it can't send you this confirmation. Schedule this automation on a Telegram-connected agent, or connect a bot to this one."]})]}),(0,r.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,r.jsx)("button",{type:"submit",disabled:m,className:"inline-flex h-[34px] items-center gap-1.5 rounded-md border-0 bg-ink px-3.5 text-[14px] font-medium leading-none text-canvas transition-[filter] hover:brightness-[0.92] disabled:opacity-50",children:m?t?"Saving…":"Creating…":t?"Save changes":"Create schedule"}),(0,r.jsx)("button",{type:"button",onClick:()=>{t?e.onDone?.():d(!1)},className:"inline-flex h-[34px] items-center rounded-md border border-rule-2 px-3.5 text-[14px] font-medium text-ink-3 transition-colors hover:border-rule hover:text-ink",children:"Cancel"})]})]})}let y=(0,d.createServerReference)("4003c74e787eefda9053935e5d1f775934854ae3d5",d.callServer,void 0,d.findSourceMapURL,"toggleScheduleAction"),j=(0,d.createServerReference)("40efec73e82f9575e8c7b168dfd02783dc30fe5542",d.callServer,void 0,d.findSourceMapURL,"deleteScheduleAction"),N=(0,d.createServerReference)("4041595d19f3f1f860fb51f915107b308f211e7516",d.callServer,void 0,d.findSourceMapURL,"runScheduleNowAction"),w=(0,d.createServerReference)("409319a7daeda40da84e77b6cc2ee79b1fa59a9efe",d.callServer,void 0,d.findSourceMapURL,"duplicateScheduleAction");var $=n(14308),S=n(93606);function R({schedule:e,agents:t}){let[n,a]=(0,s.useTransition)(),[i,l]=(0,s.useState)(!1),[d,c]=(0,s.useState)(!1);return d?(0,r.jsx)("div",{className:"space-y-2",children:(0,r.jsx)(k,{mode:"edit",agents:t,initial:e,onDone:()=>c(!1)})}):(0,r.jsxs)("div",{className:"space-y-3 rounded-xl border border-rule-2 bg-paper p-5",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)("h3",{className:"text-base font-semibold text-ink",children:e.name}),(0,r.jsx)(S.A,{variant:e.active?"done":"idle",label:e.active?"Active":"Paused"})]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-3 text-xs text-ink-3",children:[(0,r.jsx)("span",{children:h(e.cronExpr)}),e.agentName&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-rule",children:"\xb7"}),(0,r.jsxs)("span",{children:[e.agentName," ",(0,r.jsx)("span",{className:"font-mono text-ink-4",children:e.agentSlug})]})]}),e.notifyOnSuccess&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-rule",children:"\xb7"}),(0,r.jsx)("span",{title:"Sends you a Telegram confirmation when it succeeds",children:"\uD83D\uDD14 Notifies"})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 text-[11px] text-ink-4",children:[e.nextRun&&e.active&&(0,r.jsxs)("span",{children:["Next run ",new Date(e.nextRun).toLocaleString()]}),e.lastRun&&(0,r.jsxs)("span",{children:["Last run ",new Date(e.lastRun).toLocaleString(),e.lastStatus&&(0,r.jsxs)("span",{className:`ml-1 ${"success"===e.lastStatus?"text-ok":"failed"===e.lastStatus?"text-err":"text-ink-4"}`,children:["(",e.lastStatus,")"]})]})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("button",{type:"button",onClick:function(){a(async()=>{let t=await N(e.id);t.ok?o.oR.success(`Running "${e.name}" now`):o.oR.error(t.message)})},disabled:n||!e.task,title:e.task?"Run this automation now, outside its schedule":"No task to run",className:"rounded-md border border-rule-2 px-2.5 py-1 text-xs font-medium text-ink-3 transition-colors hover:border-rule hover:text-ink disabled:opacity-40",children:"▶ Run now"}),(0,r.jsx)("button",{type:"button",onClick:()=>c(!0),disabled:n,className:"rounded-md border border-rule-2 px-2.5 py-1 text-xs font-medium text-ink-3 transition-colors hover:border-rule hover:text-ink disabled:opacity-40",children:"Edit"}),(0,r.jsx)("button",{type:"button",onClick:function(){a(async()=>{let t=await w(e.id);t.ok?o.oR.success(`Duplicated "${e.name}" — paused; enable it when ready`):o.oR.error(t.message)})},disabled:n,title:"Create a paused copy of this automation",className:"rounded-md border border-rule-2 px-2.5 py-1 text-xs font-medium text-ink-3 transition-colors hover:border-rule hover:text-ink disabled:opacity-40",children:"Duplicate"}),(0,r.jsx)("button",{type:"button",onClick:function(){a(async()=>{let t=await y(e.id);t.ok?o.oR.success(t.data.active?"Schedule enabled":"Schedule disabled"):o.oR.error(t.message)})},disabled:n,className:"rounded-md border border-rule-2 px-2.5 py-1 text-xs font-medium text-ink-3 transition-colors hover:border-rule hover:text-ink disabled:opacity-40",children:e.active?"Pause":"Enable"}),(0,r.jsx)("button",{type:"button",onClick:()=>l(!0),disabled:n,className:"rounded-md border border-err/30 px-2.5 py-1 text-xs font-medium text-err transition-colors hover:border-err/60 disabled:opacity-40",children:"Delete"})]})]}),e.task&&(0,r.jsxs)("details",{className:"rounded-md border border-rule bg-canvas",children:[(0,r.jsx)("summary",{className:"cursor-pointer px-3 py-2 text-xs text-ink-3 hover:text-ink-2",children:"Task instructions"}),(0,r.jsx)("pre",{className:"whitespace-pre-wrap px-3 pb-3 text-xs text-ink-2",children:e.task})]}),(0,r.jsx)($.A,{open:i,title:"Delete schedule?",message:"This cron schedule will be removed. Past runs are kept for audit.",confirmLabel:"Delete",onConfirm:function(){l(!1),a(async()=>{let t=await j(e.id);t.ok?o.oR.success("Schedule deleted"):o.oR.error(t.message)})},onCancel:()=>l(!1)})]})}function C({agents:e,schedules:t}){let[n,o]=(0,s.useState)(!1),d=t.filter(e=>e.active).length;return(0,r.jsx)(a.A,{title:"Automations",subtitle:`${d} active \xb7 ${t.length} total`,toolbar:(0,r.jsx)(i.A,{cta:(0,r.jsx)(l.A,{variant:"neutral",onClick:()=>o(!0),disabled:0===e.length,title:0===e.length?"Create an agent first":void 0,children:"+ New schedule"})}),children:(0,r.jsxs)("div",{className:"space-y-6",children:[n&&(0,r.jsx)(k,{agents:e,open:n,onOpenChange:o}),0===t.length?(0,r.jsx)("div",{className:"rounded-xl border border-rule-2 bg-paper px-6 py-12 text-center text-sm text-ink-4",children:0===e.length?"Create an agent first, then schedule a recurring task.":"No schedules yet. Add one with the “New schedule” button above."}):(0,r.jsx)("div",{className:"space-y-3",children:t.map(t=>(0,r.jsx)(R,{schedule:t,agents:e},t.id))})]})})}},65668:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(3680);function s({tabs:e,search:t,cta:n,extra:a,className:i=""}){return(0,r.jsxs)("div",{className:`flex flex-wrap items-center gap-2.5 pt-4 ${i}`,children:[e,(0,r.jsx)("div",{className:"flex-1"}),t,a,n]})}},73868:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(3680),s=n(64676),a=n(11248),i=n(88563);function l({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)(s.default,{className:"hidden md:flex"}),(0,r.jsx)(i.default,{}),(0,r.jsx)(a.default,{})]})]})}function o({title:e,subtitle:t,toolbar:n,children:s,fluid:a=!1,bodyClassName:i=""}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l,{title:e,subtitle:t}),(0,r.jsxs)("div",{className:`px-5 pt-6 pb-10 sm:px-8 lg:px-9 ${a?"":"max-w-6xl"} ${i}`,children:[n&&(0,r.jsx)("div",{className:"mb-5",children:n}),s]})]})}},77045:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(3680),s=n(63363),a=n.n(s);let i={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 l(e){let{children:t,variant:n="ink",size:s="md",className:l=""}=e,o=`inline-flex cursor-pointer items-center justify-center gap-1.5 rounded-md font-medium leading-none transition-[filter,background-color] ${"md"===s?"h-[34px] px-3.5 text-[14px]":"h-[30px] px-3 text-[13px]"} ${i[n]} ${l}`;if("href"in e&&e.href){let{href:n,variant:s,size:i,className:l,children:d,...c}=e;return(0,r.jsx)(a(),{href:n,className:o,...c,children:t})}let{variant:d,size:c,className:u,children:m,...x}=e;return(0,r.jsx)("button",{type:"button",className:o,...x,children:t})}},81444:()=>{},82592:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(3680);let s={ok:"bg-ok",lime:"bg-agent-vivid",coral:"bg-skill-vivid",blue:"bg-conn-vivid"},a={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 i({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?a[e]:""} ${l}`})}},93606:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(3680),s=n(86127),a=n(50131),i=n(82592);let l={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:n,className:c=""}){let u=t??l[e],m=null;return void 0!==n?m=n:"done"===e?m=(0,r.jsx)(s.r,{size:11,weight:"regular"}):"warn"===e?m=(0,r.jsx)(a.N,{size:11,weight:"regular"}):"run"===e&&(m=(0,r.jsx)(i.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:[m,u]})}},96333:()=>{}},e=>{e.O(0,[4641,3363,8161,1361,9836,1065,8724,7358],()=>e(e.s=40102)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3705],{21853:(e,t,a)=>{"use strict";a.d(t,{default:()=>b});var n=a(3680),r=a(78604),l=a(39504),s=a(54805),i=a(37223),c=a(14308),o=a(64678);let d=(0,o.createServerReference)("00d7178e544dccd4c780f71d3f8c6afa8a6aac8b86",o.callServer,void 0,o.findSourceMapURL,"listConversationsAction"),m=(0,o.createServerReference)("40d1e415eaf83dc3c586859635bfd0b4270a5004dd",o.callServer,void 0,o.findSourceMapURL,"listChatAction");var u=a(81480);let x=(0,o.createServerReference)("408767e7dac33bd3ed8d4ab7a476d8cf70f18647f1",o.callServer,void 0,o.findSourceMapURL,"deleteConversationAction");var p=a(32588);let h=(0,o.createServerReference)("40615f213887f9542e1d99817aa9e634dee85d1517",o.callServer,void 0,o.findSourceMapURL,"getChatJobStatusAction"),f=r.useLayoutEffect,g=new Set(["completed","failed","cancelled"]);function b({initialConversations:e,rootName:t}){let[a,o]=(0,r.useState)(e),[h,g]=(0,r.useState)(e[0]?.id??null),[y,w]=(0,r.useState)([]),[N,E]=(0,r.useState)(""),[M,A]=(0,r.useState)(!1),[H,L]=(0,r.useState)(""),[S,Z]=(0,r.useState)(null),[R,C]=(0,r.useState)(!1),[T,D]=(0,r.useState)(!1),F=(0,r.useRef)(null),I=(0,r.useRef)(!0),Y=y.length>0&&"user"===y[y.length-1].role,O=(0,r.useCallback)(()=>{let e=F.current;e&&(e.scrollTop=e.scrollHeight)},[]),$=(0,r.useCallback)(()=>{let e=F.current;e&&(I.current=e.scrollHeight-e.scrollTop-e.clientHeight<80)},[]);f(()=>{I.current=!0,O();let e=setTimeout(O,80);return()=>clearTimeout(e)},[y,Y,R,O]),(0,r.useEffect)(()=>{let e=F.current;if(!e)return;let t=new MutationObserver(()=>{I.current&&(e.scrollTop=e.scrollHeight)});return t.observe(e,{childList:!0,subtree:!0,characterData:!0}),()=>t.disconnect()},[]);let V=(0,r.useCallback)(async()=>{let e=await d();e.ok&&o(e.data.conversations)},[]),U=(0,r.useCallback)(async e=>{C(!0);let t=await m(e);C(!1),t.ok&&w(t.data.messages)},[]);async function z(e){D(!1),e!==h&&(g(e),w([]),await U(e))}async function P(){let e=await (0,u.Q)();e.ok?(await V(),w([]),g(e.data.id),D(!1)):l.oR.error(e.message)}async function _(e){let t=await x(e);if(!t.ok)return void l.oR.error(t.message);let n=a.filter(t=>t.id!==e);if(o(n),h===e){let e=n[0]?.id??null;g(e),e?await U(e):w([])}l.oR.success("Conversation deleted")}async function B(e){e.preventDefault();let t=N.trim();if(!t||M)return;E(""),A(!0);let a=h;if(!a){let e=await (0,u.Q)();if(!e.ok){l.oR.error(e.message),A(!1);return}g(a=e.data.id)}w(e=>[...e,{id:`local-${Date.now()}`,role:"user",content:t,jobId:null}]);let n=await (0,p.W)({conversationId:a,message:t});n.ok||l.oR.error(n.message);let r=await m(a);r.ok&&w(r.data.messages),await V(),A(!1)}(0,r.useEffect)(()=>{h&&U(h)},[]),(0,r.useEffect)(()=>{let e;if(!Y||!h)return;let t=!1,a=0,n=async()=>{if(t||a>=30)return;a+=1;let r=await m(h);t||!r.ok||(w(r.data.messages),r.data.messages[r.data.messages.length-1]?.role==="user"?e=setTimeout(()=>void n(),2e3):V())};return e=setTimeout(()=>void n(),2e3),()=>{t=!0,e&&clearTimeout(e)}},[Y,h,V]);let K=H.trim()?a.filter(e=>e.title.toLowerCase().includes(H.toLowerCase())):a,Q=function(e){let t={TODAY:[],YESTERDAY:[],EARLIER:[]};for(let a of e)t[function(e){if(!e)return"EARLIER";let t=new Date,a=new Date(t.getFullYear(),t.getMonth(),t.getDate()),n=new Date(a.getTime()-864e5),r=new Date(e.getFullYear(),e.getMonth(),e.getDate());return r.getTime()===a.getTime()?"TODAY":r.getTime()===n.getTime()?"YESTERDAY":"EARLIER"}(a.updatedAt)].push(a);return["TODAY","YESTERDAY","EARLIER"].filter(e=>t[e].length>0).map(e=>({group:e,items:t[e]}))}(K);return(0,n.jsxs)("div",{className:"relative flex h-full min-h-0 overflow-hidden rounded-xl border border-rule-2 bg-paper",children:[(0,n.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2 border-b border-rule-2 px-3 py-2 lg:hidden",children:[(0,n.jsx)("span",{className:"truncate text-sm font-semibold text-ink",children:t??"Chat"}),(0,n.jsxs)("button",{type:"button",onClick:()=>D(!0),className:"inline-flex shrink-0 items-center gap-1.5 rounded-md border border-rule px-2.5 py-1 text-xs font-medium text-ink-2 transition-colors hover:bg-hover","aria-label":"Show conversations",children:[(0,n.jsx)(s.B,{size:14})," History"]})]}),(0,n.jsx)("div",{ref:F,onScroll:$,className:"min-h-0 flex-1 space-y-3 overflow-y-auto p-5",children:R?(0,n.jsx)("p",{className:"py-8 text-center text-sm text-ink-4",children:"Loading…"}):0!==y.length||Y?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"relative flex items-center justify-center py-1",children:[(0,n.jsx)("span",{className:"absolute inset-x-0 top-1/2 h-px bg-rule-2"}),(0,n.jsx)("span",{className:"relative bg-paper px-3 text-[11px] font-semibold uppercase tracking-widest text-ink-4",children:"Today"})]}),y.map(e=>(0,n.jsx)(k,{message:e,rootName:t},e.id)),Y&&(0,n.jsxs)("div",{className:"flex justify-start gap-2.5",children:[(0,n.jsx)(j,{rootName:t}),(0,n.jsxs)("div",{className:"flex max-w-[80%] flex-col items-start",children:[(0,n.jsxs)("div",{className:"mb-1 flex items-center gap-1.5",children:[(0,n.jsx)("span",{className:"text-xs font-medium text-ink-2",children:t??"Agent"}),(0,n.jsx)("span",{className:"rounded bg-ink/10 px-1 py-px text-[11px] font-semibold uppercase tracking-widest text-ink-3",children:"Orchestrator"})]}),(0,n.jsx)("div",{className:"rounded-2xl rounded-bl-sm border border-rule bg-canvas px-3.5 py-2 text-sm text-ink-4",children:(0,n.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,n.jsx)("span",{className:"animate-pulse",children:"●"})," thinking…"]})})]})]})]}):(0,n.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,n.jsxs)("p",{className:"text-center text-sm text-ink-4",children:["Say hello to ",t??"your ROOT agent"," \uD83D\uDC4B"]})})}),(0,n.jsxs)("form",{onSubmit:e=>void B(e),className:"flex items-end gap-2 border-t border-rule-2 p-3",children:[(0,n.jsx)("textarea",{value:N,onChange:e=>E(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),B(e))},rows:1,placeholder:`Message ${t??"your ROOT agent"}…`,className:"max-h-40 min-h-[40px] flex-1 resize-y rounded-md border border-rule bg-canvas px-3 py-2 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none"}),(0,n.jsx)("button",{type:"submit",disabled:M||0===N.trim().length,className:"inline-flex h-[40px] shrink-0 items-center rounded-md bg-ink px-4 text-sm font-medium text-canvas transition-[filter] hover:brightness-[0.92] disabled:opacity-40",children:M?"Sending…":"Send"})]})]}),T&&(0,n.jsx)("div",{className:"absolute inset-0 z-10 bg-black/40 lg:hidden",onClick:()=>D(!1),"aria-hidden":!0}),(0,n.jsxs)("aside",{className:`flex-col border-l border-rule-2 bg-paper lg:flex lg:static lg:z-auto lg:w-[300px] lg:max-w-none lg:shrink-0 lg:shadow-none ${T?"absolute inset-y-0 right-0 z-20 flex w-[85%] max-w-[320px] shadow-xl":"hidden"}`,children:[(0,n.jsxs)("div",{className:"flex items-center justify-between border-b border-rule-2 px-4 py-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("button",{type:"button",onClick:()=>D(!1),className:"text-ink-3 transition-colors hover:text-ink lg:hidden","aria-label":"Close conversations",children:(0,n.jsx)(i.X,{size:16})}),(0,n.jsx)("span",{className:"text-sm font-semibold text-ink",children:"Chat"})]}),(0,n.jsx)("button",{type:"button",onClick:()=>void P(),className:"inline-flex items-center gap-1 rounded-md bg-ink px-2.5 py-1 text-xs font-medium text-canvas transition-[filter] hover:brightness-[0.92]",children:"+ New"})]}),(0,n.jsx)("div",{className:"border-b border-rule-2 px-3 py-2.5",children:(0,n.jsx)("input",{type:"text",value:H,onChange:e=>L(e.target.value),placeholder:"Search conversations…",className:"w-full rounded-md border border-rule bg-canvas px-3 py-1.5 text-xs text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none"})}),(0,n.jsx)("div",{className:"flex-1 overflow-y-auto",children:0===K.length?(0,n.jsx)("p",{className:"px-4 py-6 text-center text-xs text-ink-4",children:H.trim()?"No conversations match.":"No conversations yet — say hello."}):Q.map(({group:e,items:t})=>(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"sticky top-0 bg-paper px-4 py-1.5 text-[11px] font-semibold uppercase tracking-wider text-ink-4",children:e}),t.map(e=>(0,n.jsx)(v,{conversation:e,active:e.id===h,onSelect:()=>void z(e.id),onDelete:()=>Z(e.id)},e.id))]},e))})]}),(0,n.jsx)(c.A,{open:null!==S,title:"Delete conversation",message:"This will permanently remove this conversation and all its messages.",confirmLabel:"Delete",cancelLabel:"Cancel",destructive:!0,onConfirm:()=>{Z(null),S&&_(S)},onCancel:()=>Z(null)})]})}function v({conversation:e,active:t,onSelect:a,onDelete:r}){let l=e.title.trim()||"New conversation",s=e.preview.trim(),i=function(e){if(!e)return"";let t=Math.floor((Date.now()-e.getTime())/1e3);if(t<60)return"just now";let a=Math.floor(t/60);if(a<60)return`${a}m ago`;let n=Math.floor(a/60);if(n<24)return`${n}h ago`;let r=Math.floor(n/24);return 1===r?"yesterday":r<7?`${r}d ago`:e.toLocaleDateString(void 0,{month:"short",day:"numeric"})}(e.updatedAt);return(0,n.jsxs)("div",{role:"button",tabIndex:0,onClick:a,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&a()},className:`group relative flex cursor-pointer flex-col gap-0.5 px-4 py-2.5 transition-colors ${t?"bg-ink/8 text-ink":"hover:bg-ink/4 text-ink-2"}`,children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,n.jsx)("span",{className:`truncate text-xs font-medium ${t?"text-ink":"text-ink-2"}`,children:l}),(0,n.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,n.jsx)("span",{className:"text-[11px] text-ink-4",children:i}),(0,n.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),r()},"aria-label":"Delete conversation",className:"ml-0.5 hidden rounded p-0.5 text-ink-4 transition-colors hover:text-err group-hover:inline-flex",children:(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,n.jsx)("polyline",{points:"1 3 11 3"}),(0,n.jsx)("path",{d:"M4 3V2h4v1"}),(0,n.jsx)("path",{d:"M2 3l.8 7.2A1 1 0 003.8 11h4.4a1 1 0 001-.8L10 3"})]})})]})]}),s&&(0,n.jsx)("p",{className:"truncate text-[12px] text-ink-4",children:s})]})}function j({rootName:e}){let t=(e??"A").charAt(0).toUpperCase();return(0,n.jsx)("div",{className:"mt-5 flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-run text-xs font-semibold text-ink",children:t})}function k({message:e,rootName:t}){return"user"===e.role?(0,n.jsxs)("div",{className:"flex justify-end gap-2.5",children:[(0,n.jsxs)("div",{className:"flex max-w-[80%] flex-col items-end",children:[(0,n.jsx)("span",{className:"mb-1 text-xs font-medium text-ink-3",children:"You"}),(0,n.jsx)("div",{className:"whitespace-pre-wrap rounded-2xl rounded-br-sm bg-ink px-3.5 py-2 text-sm text-canvas",children:e.content})]}),(0,n.jsx)("div",{className:"mt-5 flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-ink/10 text-xs font-semibold text-ink-3",children:"Y"})]}):(0,n.jsxs)("div",{className:"flex justify-start gap-2.5",children:[(0,n.jsx)(j,{rootName:t}),(0,n.jsxs)("div",{className:"flex max-w-[80%] flex-col items-start",children:[(0,n.jsxs)("div",{className:"mb-1 flex items-center gap-1.5",children:[(0,n.jsx)("span",{className:"text-xs font-medium text-ink-2",children:t??"Agent"}),(0,n.jsx)("span",{className:"rounded bg-ink/10 px-1 py-px text-[11px] font-semibold uppercase tracking-widest text-ink-3",children:"Orchestrator"})]}),""!==e.content.trim()&&(0,n.jsx)("div",{className:"whitespace-pre-wrap rounded-2xl rounded-bl-sm border border-rule bg-canvas px-3.5 py-2 text-sm text-ink-2",children:e.content}),e.jobId&&(0,n.jsx)(w,{jobId:e.jobId})]})]})}function y({status:e}){let t="completed"===e,a="failed"===e||"cancelled"===e;return(0,n.jsxs)("span",{className:`inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-[11px] font-medium ${t?"border-ok/40 text-ok":a?"border-err/40 text-err":"border-run/40 text-run"}`,children:[!t&&!a&&(0,n.jsx)("span",{className:"animate-pulse",children:"●"}),t?"Done":a?"Failed":"Running"]})}function w({jobId:e}){let[t,a]=(0,r.useState)(null);(0,r.useEffect)(()=>{let t,n=!1,r=0,l=async()=>{let s=await h(e);n||(s.ok&&a(s.data),!(s.ok&&g.has(s.data.status))&&r<150&&(r+=1,t=setTimeout(()=>void l(),2e3)))};return l(),()=>{n=!0,t&&clearTimeout(t)}},[e]);let l=t?.status??"pending",s=t?.children??[];return(0,n.jsxs)("div",{className:"mt-2 w-full rounded-lg border border-rule-2 bg-canvas/60 p-2.5",children:[(0,n.jsxs)("div",{className:"mb-1.5 flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-widest text-ink-4",children:s.length>0?`↘ Dispatched to ${s.length} agent${s.length>1?"s":""}`:"↘ Task"}),0===s.length&&(0,n.jsx)(y,{status:l})]}),s.length>0?(0,n.jsx)("div",{className:"space-y-1",children:s.map((e,t)=>(0,n.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-rule bg-paper px-2.5 py-1.5",children:[(0,n.jsx)("span",{className:"truncate text-xs font-medium text-ink-2",children:e.agentName}),(0,n.jsx)(y,{status:e.status})]},t))}):null,t&&g.has(l)&&t.result&&(0,n.jsx)("p",{className:"mt-1.5 whitespace-pre-wrap text-xs text-ink-3",children:t.result})]})}},32588:(e,t,a)=>{"use strict";a.d(t,{W:()=>r});var n=a(64678);let r=(0,n.createServerReference)("40162a1eb76527101e735f9d5484ad419dadd50c09",n.callServer,void 0,n.findSourceMapURL,"sendChatMessageAction")},32928:(e,t,a)=>{"use strict";a.d(t,{e:()=>i});var n=a(78604),r=a(53087);let l=new Map([["bold",n.createElement(n.Fragment,null,n.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",n.createElement(n.Fragment,null,n.createElement("path",{d:"M192,112a80,80,0,1,1-80-80A80,80,0,0,1,192,112Z",opacity:"0.2"}),n.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",n.createElement(n.Fragment,null,n.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",n.createElement(n.Fragment,null,n.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",n.createElement(n.Fragment,null,n.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",n.createElement(n.Fragment,null,n.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=n.forwardRef((e,t)=>n.createElement(r.A,{ref:t,...e,weights:l}));s.displayName="MagnifyingGlassIcon";let i=s},37223:(e,t,a)=>{"use strict";a.d(t,{X:()=>i});var n=a(78604),r=a(53087);let l=new Map([["bold",n.createElement(n.Fragment,null,n.createElement("path",{d:"M208.49,191.51a12,12,0,0,1-17,17L128,145,64.49,208.49a12,12,0,0,1-17-17L111,128,47.51,64.49a12,12,0,0,1,17-17L128,111l63.51-63.52a12,12,0,0,1,17,17L145,128Z"}))],["duotone",n.createElement(n.Fragment,null,n.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"}),n.createElement("path",{d:"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["fill",n.createElement(n.Fragment,null,n.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,32ZM181.66,170.34a8,8,0,0,1-11.32,11.32L128,139.31,85.66,181.66a8,8,0,0,1-11.32-11.32L116.69,128,74.34,85.66A8,8,0,0,1,85.66,74.34L128,116.69l42.34-42.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["light",n.createElement(n.Fragment,null,n.createElement("path",{d:"M204.24,195.76a6,6,0,1,1-8.48,8.48L128,136.49,60.24,204.24a6,6,0,0,1-8.48-8.48L119.51,128,51.76,60.24a6,6,0,0,1,8.48-8.48L128,119.51l67.76-67.75a6,6,0,0,1,8.48,8.48L136.49,128Z"}))],["regular",n.createElement(n.Fragment,null,n.createElement("path",{d:"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["thin",n.createElement(n.Fragment,null,n.createElement("path",{d:"M202.83,197.17a4,4,0,0,1-5.66,5.66L128,133.66,58.83,202.83a4,4,0,0,1-5.66-5.66L122.34,128,53.17,58.83a4,4,0,0,1,5.66-5.66L128,122.34l69.17-69.17a4,4,0,1,1,5.66,5.66L133.66,128Z"}))]]),s=n.forwardRef((e,t)=>n.createElement(r.A,{ref:t,...e,weights:l}));s.displayName="XIcon";let i=s},54805:(e,t,a)=>{"use strict";a.d(t,{B:()=>i});var n=a(78604),r=a(53087);let l=new Map([["bold",n.createElement(n.Fragment,null,n.createElement("path",{d:"M228,128a12,12,0,0,1-12,12H40a12,12,0,0,1,0-24H216A12,12,0,0,1,228,128ZM40,76H216a12,12,0,0,0,0-24H40a12,12,0,0,0,0,24ZM216,180H40a12,12,0,0,0,0,24H216a12,12,0,0,0,0-24Z"}))],["duotone",n.createElement(n.Fragment,null,n.createElement("path",{d:"M216,64V192H40V64Z",opacity:"0.2"}),n.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"}))],["fill",n.createElement(n.Fragment,null,n.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,32ZM192,184H64a8,8,0,0,1,0-16H192a8,8,0,0,1,0,16Zm0-48H64a8,8,0,0,1,0-16H192a8,8,0,0,1,0,16Zm0-48H64a8,8,0,0,1,0-16H192a8,8,0,0,1,0,16Z"}))],["light",n.createElement(n.Fragment,null,n.createElement("path",{d:"M222,128a6,6,0,0,1-6,6H40a6,6,0,0,1,0-12H216A6,6,0,0,1,222,128ZM40,70H216a6,6,0,0,0,0-12H40a6,6,0,0,0,0,12ZM216,186H40a6,6,0,0,0,0,12H216a6,6,0,0,0,0-12Z"}))],["regular",n.createElement(n.Fragment,null,n.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"}))],["thin",n.createElement(n.Fragment,null,n.createElement("path",{d:"M220,128a4,4,0,0,1-4,4H40a4,4,0,0,1,0-8H216A4,4,0,0,1,220,128ZM40,68H216a4,4,0,0,0,0-8H40a4,4,0,0,0,0,8ZM216,188H40a4,4,0,0,0,0,8H216a4,4,0,0,0,0-8Z"}))]]),s=n.forwardRef((e,t)=>n.createElement(r.A,{ref:t,...e,weights:l}));s.displayName="ListIcon";let i=s},81480:(e,t,a)=>{"use strict";a.d(t,{Q:()=>r});var n=a(64678);let r=(0,n.createServerReference)("0027ed0d23cffc13987606629752e123c0419f928c",n.callServer,void 0,n.findSourceMapURL,"createConversationAction")},82440:(e,t,a)=>{Promise.resolve().then(a.bind(a,21853)),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))}},e=>{e.O(0,[3363,8161,9836,1065,8724,7358],()=>e(e.s=82440)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9527],{21021:(e,t,n)=>{"use strict";n.d(t,{CT:()=>l,Zr:()=>i,ah:()=>s,d3:()=>a});let s={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"},r={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 a(e,t){return r[e]??t.slice(0,2).toUpperCase()}let o={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 l(e){return o[e]??null}function i(e){return"mcp-filesystem"===e?"\uD83D\uDCC1":null}},22450:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var s=n(78604),r=n(27540),a=n(39504);function o({successLabel:e,errorMessage:t}){let n=(0,r.useRouter)(),l=(0,s.useRef)(!1);return(0,s.useEffect)(()=>{!l.current&&(l.current=!0,e&&(a.oR.success(`${e} connected`),n.replace("/connectors")),t&&console.error("[OAuth] connection failed:",t))},[e,t,n]),null}},29266:(e,t,n)=>{"use strict";n.d(t,{default:()=>G});var s=n(3680),r=n(78604),a=n(73868),o=n(65668),l=n(28870),i=n(42357),c=n(66736),d=n(77045),x=n(40189),u=n(14964),p=n(81630),m=n(93606),h=n(96459),b=n(39504),g=n(64678);let v=(0,g.createServerReference)("40128f20f2ebad81a526ad80d118b79904c93a3ec1",g.callServer,void 0,g.findSourceMapURL,"deleteConnectorAction"),f=(0,g.createServerReference)("602640429aa4ac0a169cdf4402a1e8acd3d3732ca7",g.callServer,void 0,g.findSourceMapURL,"renameConnectorAction"),y=(0,g.createServerReference)("60a9a3db66df96af1bd3ce53ead612aa36c980fec0",g.callServer,void 0,g.findSourceMapURL,"assignCredentialAction"),j=(0,g.createServerReference)("605016142997a33fe2b55107bc8a0400d3411529db",g.callServer,void 0,g.findSourceMapURL,"updateConnectorApiKeyAction"),k=(0,g.createServerReference)("409ce43bdc500b9e9ab0809e2b6bb4bc2a6301e697",g.callServer,void 0,g.findSourceMapURL,"refreshCredentialAction");var N=n(14308),C=n(38666);let w=new Set(["notion-oauth"]);function S({instance:e,catalogEntry:t,compatibleCredentials:n}){var a;let[o,l]=(0,r.useTransition)(),[i,c]=(0,r.useTransition)(),[d,x]=(0,r.useState)(!1),[u,p]=(0,r.useState)(!1),[m,h]=(0,r.useState)(!1),[g,A]=(0,r.useState)(e.name),[R,T]=(0,r.useState)(!1),[$,D]=(0,r.useState)(e.credentialId??n[0]?.id??""),[M,L]=(0,r.useState)(!1),[I,P]=(0,r.useState)(""),E="api_key"===e.authType,F="oauth2"===e.authType,U=e.active,_=F&&!w.has(t.credentialType??""),O=t.credentialType,K=e.credentialId,q=e.credentialName,B=e.credentialAccountName,G=e.credentialExpiresAt,H=e.credentialScopes,z=!!(a=G??null)&&a.getTime()<Date.now(),W=U?"connected":"inactive";function V(){let t=g.trim();t&&t!==e.name?l(async()=>{let n=await f(e.id,t);n.ok?(b.oR.success("Renamed"),h(!1)):b.oR.error(n.message)}):h(!1)}function X(){let t=I.trim();t?l(async()=>{let n=await j(e.id,t);n.ok?(b.oR.success(`${e.name} key rotated`),L(!1),P("")):b.oR.error(n.message)}):b.oR.error("New API key is required")}return(0,s.jsxs)("div",{className:"bg-paper border border-rule-2 rounded-xl p-5 space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[m?(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("input",{autoFocus:!0,value:g,onChange:e=>A(e.target.value),onKeyDown:t=>{"Enter"===t.key&&V(),"Escape"===t.key&&(A(e.name),h(!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,s.jsx)("button",{type:"button",onClick:V,disabled:o,className:"text-xs text-ok hover:text-ok disabled:opacity-40",children:"Save"}),(0,s.jsx)("button",{type:"button",onClick:()=>{A(e.name),h(!1)},className:"text-xs text-ink-3 hover:text-ink-2",children:"Cancel"})]}):(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("h3",{className:"text-base font-semibold text-ink truncate",children:e.name}),(0,s.jsx)("button",{type:"button",onClick:()=>h(!0),"aria-label":"Rename connector",className:"text-ink-4 hover:text-ink-3 transition-colors text-xs leading-none",title:"Rename",children:"✎"}),(0,s.jsx)("span",{className:`inline-block px-2 py-0.5 rounded text-[11px] font-semibold uppercase tracking-wider ${"connected"===W?"bg-agent-vivid/15 text-ok":"bg-warn-bg text-warn"}`,children:W})]}),(0,s.jsxs)("p",{className:"text-xs text-ink-3 mt-1 font-mono",children:[t.slug," \xb7 ",e.authType]}),B&&(0,s.jsx)("p",{className:"text-xs text-ink-3 mt-1",children:B}),E&&e.hasApiKey&&(0,s.jsxs)("p",{className:"text-xs text-ink-4 mt-0.5 font-mono",children:["key: …",e.credentialId??"????"]})]}),(0,s.jsx)("div",{className:"flex gap-2 shrink-0 flex-wrap justify-end items-start",children:F?(0,s.jsxs)(s.Fragment,{children:[_&&(0,s.jsx)("button",{type:"button",onClick:function(){K&&c(async()=>{let e=await k(K);e.ok?b.oR.success("Token refreshed"):b.oR.error(e.message??"Refresh failed")})},disabled:i||o,className:"px-3 py-1.5 text-xs font-medium border border-rule-2 text-ink-3 rounded-md hover:border-rule hover:text-ink disabled:opacity-40",children:i?"Refreshing…":"Refresh now"}),(0,s.jsx)("button",{type:"button",onClick:()=>p(!0),disabled:o||i,className:"px-3 py-1.5 text-xs font-medium border border-rule-2 text-ink-3 rounded-md hover:border-rule hover:text-ink disabled:opacity-40",children:"Reconnect"}),n.length>0&&(0,s.jsx)("button",{type:"button",onClick:()=>T(e=>!e),disabled:o||i,className:"px-3 py-1.5 text-xs font-medium border border-rule-2 text-ink-3 rounded-md hover:border-rule hover:text-ink disabled:opacity-40",children:R?"Cancel":"Switch credential"}),(0,s.jsx)("button",{type:"button",onClick:()=>x(!0),disabled:o||i,className:"px-3 py-1.5 text-xs font-medium border border-err/30 text-err rounded-md hover:border-err/30 hover:text-err disabled:opacity-40",children:"Disconnect"})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{type:"button",onClick:()=>L(e=>!e),disabled:o,className:"px-3 py-1.5 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":"Rotate key"}),(0,s.jsx)("button",{type:"button",onClick:()=>x(!0),disabled:o,className:"px-3 py-1.5 text-xs font-medium border border-err/30 text-err rounded-md hover:border-err/30 hover:text-err disabled:opacity-40",children:"Delete"})]})})]}),E&&M&&(0,s.jsxs)("div",{className:"space-y-3 pt-2 border-t border-rule-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:`rotate-${e.id}`,className:"block text-xs text-ink-3 mb-1",children:"New API key"}),(0,s.jsx)("input",{id:`rotate-${e.id}`,type:"password",autoComplete:"off",autoFocus:!0,value:I,onChange:e=>P(e.target.value),onKeyDown:e=>{"Enter"===e.key&&X(),"Escape"===e.key&&(P(""),L(!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,s.jsx)("p",{className:"text-[12px] text-ink-4 mt-1",children:"Agent assignments stay intact — only the stored key changes."})]}),(0,s.jsxs)("div",{className:"flex gap-2 items-center",children:[(0,s.jsx)("button",{type:"button",onClick:X,disabled:o||!I.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?"Saving…":"Save new key"}),(0,s.jsx)("button",{type:"button",onClick:()=>{P(""),L(!1)},className:"text-xs text-ink-3 hover:text-ink underline",children:"Cancel"})]})]}),t.docsHint&&(0,s.jsx)("p",{className:"text-xs text-ink-3",children:t.docsHint}),F&&K&&(0,s.jsxs)("div",{className:"pt-2 border-t border-rule-2 space-y-2",children:[q&&(0,s.jsxs)("p",{className:"text-xs text-ink-3",children:["Credential: ",(0,s.jsx)("span",{className:"text-ink font-medium",children:q})]}),H&&(0,s.jsx)("div",{className:"flex flex-wrap gap-1",children:H.split(/\s+/).map(e=>(0,s.jsx)("span",{className:"px-1.5 py-0.5 bg-hover text-ink-3 rounded text-[11px] font-mono",children:e},e))}),_&&(0,s.jsx)("p",{className:"text-xs text-ink-3",children:"Auto-refreshes when used"}),!_&&G&&(0,s.jsx)("p",{className:`text-xs ${z?"text-warn":"text-ink-3"}`,children:function(e){let t;if(!e)return"";let n=Math.round((e.getTime()-Date.now())/1e3),s=Math.abs(n);return t=s<60?`${s}s`:s<3600?`${Math.round(s/60)} min`:s<86400?`${Math.round(s/3600)} h`:`${Math.round(s/86400)} d`,n>=0?`expires in ${t}`:`expired ${t} ago`}(G)})]}),F&&R&&(0,s.jsx)("div",{className:"space-y-3 pt-2 border-t border-rule-2",children:n.length>0?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"block text-xs text-ink-3 mb-1",children:"Use credential"}),(0,s.jsx)("select",{value:$,onChange:e=>D(e.target.value),className:"w-full bg-hover border border-rule rounded-md px-2 py-1.5 text-sm text-ink focus:border-ink-3 focus:outline-none",children:n.map(e=>(0,s.jsxs)("option",{value:e.id,children:[e.name,e.accountName?` (${e.accountName})`:""]},e.id))})]}),(0,s.jsxs)("div",{className:"flex gap-2 items-center pt-1",children:[(0,s.jsx)("button",{type:"button",onClick:()=>$&&void l(async()=>{let t=await y(e.id,$);t.ok?(b.oR.success(`${e.name} credential updated`),T(!1)):b.oR.error(t.message)}),disabled:o||!$,className:"px-4 py-2 text-sm font-semibold bg-ink text-canvas rounded-md hover:brightness-[0.92] disabled:opacity-50",children:o?"Saving…":"Save"}),(0,s.jsx)("button",{type:"button",onClick:()=>{T(!1),p(!0)},className:"px-3 py-1.5 text-xs text-ink-3 hover:text-ink underline",children:"or create new"})]})]}):(0,s.jsxs)("p",{className:"text-xs text-ink-3",children:["No compatible credentials found."," ",(0,s.jsx)("button",{type:"button",onClick:()=>{T(!1),p(!0)},className:"text-indigo-400 hover:text-indigo-300 underline",children:"Create one"})]})}),(0,s.jsx)(N.A,{open:d,title:`${F?"Disconnect":"Delete"} "${e.name}"?`,message:F?"Tools that depend on this connector will fail until you reconnect. Existing job history is preserved.":"This connector instance will be permanently removed. Existing job history is preserved.",confirmLabel:F?"Disconnect":"Delete",onConfirm:function(){x(!1),l(async()=>{let t=await v(e.id);t.ok?b.oR.success(`${e.name} removed`):b.oR.error(t.message)})},onCancel:()=>x(!1)}),u&&O&&(0,s.jsx)(C.A,{initialType:O,returnToConnectorSlug:t.slug,onClose:()=>p(!1)})]})}var A=n(21021);function R({instances:e,credsByType:t}){return(0,s.jsx)("div",{className:"overflow-hidden rounded-2xl border border-rule-2 bg-paper",children:(0,s.jsx)("div",{className:"overflow-x-auto",children:(0,s.jsxs)("table",{className:"w-full border-collapse",children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{children:[(0,s.jsx)(T,{label:"Provider"}),(0,s.jsx)(T,{label:"Account"}),(0,s.jsx)(T,{label:"Scopes"}),(0,s.jsx)(T,{label:"Status"}),(0,s.jsx)(T,{label:"Actions",align:"right"})]})}),(0,s.jsx)("tbody",{children:e.map(e=>{let n=u.YT.find(t=>t.slug===e.slug),r=n?{...n,credentialType:n.credentialType??null}:{slug:e.slug,label:e.name,authType:e.authType,docsHint:"",credentialType:e.credentialType??null},a=r.credentialType?t[r.credentialType]??[]:[];return(0,s.jsx)($,{instance:e,catalogEntry:r,compatibleCredentials:a},e.id)})})]})})})}function T({label:e,align:t="left"}){return(0,s.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 $({instance:e,catalogEntry:t,compatibleCredentials:n}){let[a,o]=(0,r.useState)(!1),l=A.ah[e.slug],i=(0,A.d3)(e.slug,t.label),c=(0,A.CT)(e.slug),d=e.active,x=e.credentialScopes?e.credentialScopes.split(/\s+/).filter(Boolean):[];return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("tr",{className:"border-b border-rule-2 last:border-0 hover:bg-hover",children:[(0,s.jsx)("td",{className:"px-[18px] py-[13px] align-middle",children:(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)(p.A,{variant:"conn",size:"sm",shape:"square",background:c?"#ffffff":l,children:c?(0,s.jsx)("img",{src:c,alt:"",className:"h-4 w-4 object-contain"}):(0,s.jsx)("span",{className:"font-mono text-[10px] font-semibold tracking-[0.04em]",children:i})}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("div",{className:"text-[13.5px] font-medium leading-[1.2] text-ink",children:t.label}),(0,s.jsx)("div",{className:"mt-0.5 font-mono text-[10.5px] uppercase tracking-[0.12em] text-ink-4",children:t.authType})]})]})}),(0,s.jsx)("td",{className:"px-[18px] py-[13px] align-middle",children:(0,s.jsx)("span",{className:"font-sans text-[13px] leading-[1.3] text-ink-2",children:e.credentialAccountName??e.name})}),(0,s.jsx)("td",{className:"px-[18px] py-[13px] align-middle",children:x.length>0?(0,s.jsx)(h.A,{items:x,noun:"scope"}):(0,s.jsx)("span",{className:"font-mono text-[11px] text-ink-4",children:"api_key"===e.authType?"api_key":"—"})}),(0,s.jsx)("td",{className:"px-[18px] py-[13px] align-middle",children:(0,s.jsx)(m.A,{variant:d?"done":"warn",label:d?"Connected":"Needs auth"})}),(0,s.jsx)("td",{className:"px-[18px] py-[13px] align-middle",children:(0,s.jsx)("div",{className:"flex items-center justify-end gap-2",children:(0,s.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:a?"Close":"Configure"})})})]}),a&&(0,s.jsx)("tr",{className:"border-b border-rule-2 last:border-0 bg-hover/40",children:(0,s.jsx)("td",{colSpan:5,className:"px-[18px] py-3",children:(0,s.jsx)(S,{instance:e,catalogEntry:t,compatibleCredentials:n})})})]})}var D=n(27540),M=n(40319),L=n(37820),I=n(16237),P=n(13260);let E=(0,g.createServerReference)("4008c000999cf72aefcb5c8821c0acad202099e26d",g.callServer,void 0,g.findSourceMapURL,"saveApiKeyConnectorAction"),F=(0,g.createServerReference)("70c7a8a1269734b871d26b7d12a6f4049a7202c2ed",g.callServer,void 0,g.findSourceMapURL,"createOrAssignOAuthConnectorAction");var U=n(36762),_=n(10900);function O({catalogItem:e,compatibleCredentials:t,onDone:n,onCreateNew:a}){let[o,l]=(0,r.useTransition)(),[i,c]=(0,r.useState)(t[0]?.id??""),d="api_key"===e.authType,x="oauth2"===e.authType;return d?(0,s.jsxs)("form",{onSubmit:function(t){t.preventDefault();let s=new FormData(t.currentTarget),r=s.get("name")?.trim()??"",a=s.get("apiKey")?.trim()??"";r?a?l(async()=>{let t=await E({slug:e.slug,name:r,apiKey:a});t.ok?(b.oR.success(`${r} connected`),n?.()):b.oR.error(t.message)}):b.oR.error("API key is required"):b.oR.error("Name is required")},className:"space-y-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("label",{htmlFor:`add-name-${e.slug}`,className:"block text-xs text-ink-3 mb-1",children:["Name ",(0,s.jsx)("span",{className:"text-ink-4",children:'(e.g. "Notion — perso")'})]}),(0,s.jsx)("input",{id:`add-name-${e.slug}`,name:"name",required:!0,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"})]}),_.m[e.slug]&&(0,s.jsxs)("details",{className:"group text-xs",children:[(0,s.jsx)("summary",{className:"cursor-pointer text-ink-3 hover:text-ink-2",children:"Where do I get this?"}),(0,s.jsx)("div",{className:"mt-3 pl-1",children:(0,s.jsx)(U.A,{guide:_.m[e.slug]})})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:`add-apikey-${e.slug}`,className:"block text-xs text-ink-3 mb-1",children:"API key"}),(0,s.jsx)("input",{id:`add-apikey-${e.slug}`,name:"apiKey",type:"password",required:!0,autoComplete:"off",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,s.jsx)("div",{className:"pt-1",children:(0,s.jsx)("button",{type:"submit",disabled:o,className:"px-4 py-2 text-sm font-semibold bg-ink text-canvas rounded-md hover:brightness-[0.92] disabled:opacity-50",children:o?"Connecting…":"Connect"})})]}):x&&t.length>0?(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"block text-xs text-ink-3 mb-1",children:"Use existing credential"}),(0,s.jsx)("select",{value:i,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 focus:border-ink-3 focus:outline-none",children:t.map(e=>(0,s.jsxs)("option",{value:e.id,children:[e.name,e.accountName?` (${e.accountName})`:""]},e.id))})]}),(0,s.jsxs)("div",{className:"flex gap-2 items-center pt-1",children:[(0,s.jsx)("button",{type:"button",onClick:()=>i&&void l(async()=>{let t=await F(e.slug,i);t.ok?(b.oR.success(`${e.label} connected`),n?.()):b.oR.error(t.message)}),disabled:o||!i,className:"px-4 py-2 text-sm font-semibold bg-ink text-canvas rounded-md hover:brightness-[0.92] disabled:opacity-50",children:o?"Connecting…":"Connect"}),(0,s.jsx)("button",{type:"button",onClick:()=>a?.(),className:"px-3 py-1.5 text-xs text-ink-3 hover:text-ink underline",children:"or create new"})]})]}):(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("p",{className:"text-xs text-ink-3",children:e.docsHint}),(0,s.jsx)("button",{type:"button",onClick:()=>a?.(),className:"px-4 py-2 text-sm font-semibold bg-ink text-canvas rounded-md hover:brightness-[0.92]",children:"Create credential"})]})}var K=n(56738);function q({catalog:e,instances:t,credsByType:n}){let r=[...e].sort((e,t)=>e.label.localeCompare(t.label));return 0===e.length?(0,s.jsx)("div",{className:"rounded-2xl border border-rule-2 bg-paper px-6 py-12 text-center",children:(0,s.jsx)("p",{className:"text-[14px] text-ink-3",children:"No connectors in this category."})}):(0,s.jsx)("div",{className:"grid auto-rows-fr grid-cols-1 gap-3.5 md:grid-cols-2 lg:grid-cols-4",children:r.map(e=>{let r=t.filter(t=>t.slug===e.slug),a=r.length>0,o=e.credentialType?n[e.credentialType]??[]:[];return(0,s.jsx)(B,{catalogItem:e,isInstalled:a,installedCount:r.length,compatibleCredentials:o},e.slug)})})}function B({catalogItem:e,isInstalled:t,installedCount:n,compatibleCredentials:a}){let[o,l]=(0,r.useState)(!1),[i,c]=(0,r.useState)(!1),d=(0,D.useRouter)(),x=A.ah[e.slug],u=(0,A.d3)(e.slug,e.label),p=(0,A.CT)(e.slug),m=(0,K.e)(e.slug),h="oauth2"===e.authType&&0===a.length;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(L.A,{glyph:p?(0,s.jsx)("img",{src:p,alt:"",className:"h-6 w-6 object-contain"}):(0,s.jsx)("span",{className:"font-mono text-[11px] font-semibold tracking-[0.04em]",children:u}),glyphVariant:"conn",glyphBackground:p?"#ffffff":x,name:e.label,description:e.docsHint,category:m,topRight:t?(0,s.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,s.jsx)(M.r,{size:11,weight:"regular"}),n," installed"]}):void 0,foot:(0,s.jsx)(I.A,{ctaLabel:t?"Add account":"Install",ctaVariant:"blue",onCta:()=>h?c(!0):l(!0)})}),(0,s.jsx)(P.A,{open:o,onClose:()=>l(!1),title:t?`Add account — ${e.label}`:`Install ${e.label}`,children:(0,s.jsx)(O,{catalogItem:e,compatibleCredentials:a,onDone:function(){l(!1),d.refresh()},onCreateNew:()=>{l(!1),c(!0)}})}),i&&e.credentialType&&(0,s.jsx)(C.A,{initialType:e.credentialType,returnToConnectorSlug:e.slug,onClose:()=>c(!1)})]})}function G({instances:e,catalog:t,credsByType:n}){let[u,p]=(0,r.useState)(e.length>0?"installed":"marketplace"),[m,h]=(0,r.useState)(""),[b,g]=(0,r.useState)("All"),v=(0,r.useMemo)(()=>{let t=e;if("All"!==b&&(t=t.filter(e=>(0,K.e)(e.slug)===b)),m.trim()){let e=m.toLowerCase();t=t.filter(t=>t.name.toLowerCase().includes(e)||t.slug.toLowerCase().includes(e)||(t.credentialAccountName??"").toLowerCase().includes(e))}return t},[e,m,b]),f=(0,r.useMemo)(()=>{let e=t;if("All"!==b&&(e=e.filter(e=>(0,K.e)(e.slug)===b)),m.trim()){let t=m.toLowerCase();e=e.filter(e=>e.label.toLowerCase().includes(t)||e.slug.toLowerCase().includes(t))}return e},[t,b,m]);return(0,s.jsx)(a.A,{title:"API Connectors",subtitle:"Wire your agents to external services.",toolbar:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.A,{tabs:(0,s.jsx)(l.A,{value:u,onChange:e=>{p(e),h("")},tabs:[{value:"installed",label:"Installed",count:e.length},{value:"marketplace",label:"Library",count:t.length}]}),search:(0,s.jsx)(c.A,{value:m,onChange:h,placeholder:"installed"===u?"Search connectors…":"Search providers…"}),cta:(0,s.jsxs)(d.A,{variant:"blue",onClick:()=>p("marketplace"),children:[(0,s.jsx)(x.F,{size:13,weight:"bold"}),"New connector"]})}),(0,s.jsx)(i.A,{className:"mt-3",items:K.j,value:b,onChange:g})]}),children:"installed"===u?0===e.length?(0,s.jsx)(H,{onBrowse:()=>p("marketplace")}):0===v.length?(0,s.jsx)(z,{}):(0,s.jsx)(R,{instances:v,credsByType:n}):(0,s.jsx)(q,{catalog:f,instances:e,credsByType:n})})}function H({onBrowse:e}){return(0,s.jsxs)("div",{className:"rounded-2xl border border-rule-2 bg-paper px-6 py-12 text-center",children:[(0,s.jsxs)("p",{className:"text-[14px] leading-[1.5] text-ink-3",children:["No connectors installed yet.",(0,s.jsx)("br",{}),"Browse the Marketplace to add one."]}),(0,s.jsx)("div",{className:"mt-4 inline-flex",children:(0,s.jsx)(d.A,{variant:"blue",onClick:e,children:"Browse Marketplace"})})]})}function z(){return(0,s.jsx)("div",{className:"rounded-2xl border border-rule-2 bg-paper px-6 py-12 text-center",children:(0,s.jsx)("p",{className:"text-[14px] leading-[1.5] text-ink-3",children:"No connectors match your search."})})}},40319:(e,t,n)=>{"use strict";n.d(t,{r:()=>l});var s=n(78604),r=n(53087),a=n(54935);let o=s.forwardRef((e,t)=>s.createElement(r.A,{ref:t,...e,weights:a.A}));o.displayName="CheckCircleIcon";let l=o},43158:(e,t,n)=>{Promise.resolve().then(n.bind(n,29266)),Promise.resolve().then(n.bind(n,93275)),Promise.resolve().then(n.bind(n,22450))},56738:(e,t,n)=>{"use strict";n.d(t,{e:()=>r,j:()=>s});let s=[{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 r(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"}},93275:(e,t,n)=>{"use strict";n.d(t,{default:()=>a});var s=n(3680),r=n(27540);function a({code:e,message:t}){let n=(0,r.useRouter)();return(0,s.jsx)("div",{role:"alert",className:"rounded-xl border border-err/30 bg-warn-bg px-5 py-4 text-sm text-err",children:(0,s.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,s.jsxs)("div",{className:"space-y-1.5 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{"aria-hidden":"true",className:"font-bold text-err",children:"!"}),(0,s.jsx)("p",{className:"font-semibold text-err",children:"OAuth connection failed"}),(0,s.jsx)("code",{className:"font-mono text-[11px] text-err/80 bg-warn-bg px-1.5 py-0.5 rounded",children:e})]}),(0,s.jsx)("p",{className:"text-err leading-relaxed",children:t})]}),(0,s.jsx)("button",{type:"button",onClick:function(){n.replace("/connectors")},"aria-label":"Dismiss",className:"shrink-0 text-err/70 hover:text-err transition-colors text-lg leading-none px-2 -mt-0.5",children:"\xd7"})]})})}}},e=>{e.O(0,[3363,8161,7424,9836,4964,9775,2716,1065,8724,7358],()=>e(e.s=43158)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2771],{27540:(e,t,r)=>{"use strict";var a=r(71268);r.o(a,"usePathname")&&r.d(t,{usePathname:function(){return a.usePathname}}),r.o(a,"useRouter")&&r.d(t,{useRouter:function(){return a.useRouter}}),r.o(a,"useSearchParams")&&r.d(t,{useSearchParams:function(){return a.useSearchParams}})},32928:(e,t,r)=>{"use strict";r.d(t,{e:()=>o});var a=r(78604),n=r(53087);let l=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"}))]]),s=a.forwardRef((e,t)=>a.createElement(n.A,{ref:t,...e,weights:l}));s.displayName="MagnifyingGlassIcon";let o=s},36380:(e,t,r)=>{"use strict";r.d(t,{default:()=>c});var a=r(3680),n=r(78604),l=r(27540),s=r(39504),o=r(14308),i=r(64678);let d=(0,i.createServerReference)("40b949d58bd22598ed8f044c517eff538334a851c4",i.callServer,void 0,i.findSourceMapURL,"cancelJobAction");function c({jobId:e}){let[t,r]=(0,n.useState)(!1),[i,u]=(0,n.useTransition)(),b=(0,l.useRouter)();return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{type:"button",onClick:()=>r(!0),disabled:i,className:"inline-flex h-[30px] items-center gap-1.5 rounded-md border border-rule px-3 text-[13px] font-medium leading-none text-ink-3 transition-colors hover:border-warn/60 hover:bg-warn-bg hover:text-warn disabled:cursor-not-allowed disabled:opacity-50",children:i?"Cancelling…":"Cancel"}),(0,a.jsx)(o.A,{open:t,title:"Cancel this job?",message:"In-flight LLM turns will finish naturally — the loop bails at the next checkpoint. Use this to stop a job that's pending, awaiting, or stuck mid-execution.",confirmLabel:"Cancel job",cancelLabel:"Keep running",destructive:!0,onConfirm:function(){r(!1),u(async()=>{let t=await d(e);t.ok?(s.oR.success("Job cancelled"),b.refresh()):s.oR.error(t.message)})},onCancel:()=>r(!1)})]})}},38609:(e,t,r)=>{Promise.resolve().then(r.bind(r,36380)),Promise.resolve().then(r.bind(r,45259)),Promise.resolve().then(r.bind(r,88563)),Promise.resolve().then(r.bind(r,64676)),Promise.resolve().then(r.bind(r,11248)),Promise.resolve().then(r.t.bind(r,63363,23))},45259:(e,t,r)=>{"use strict";r.d(t,{default:()=>c});var a=r(3680),n=r(78604),l=r(64678);let s=(0,l.createServerReference)("401be6c3dc2139cceef264fd9521c8cfd73ae69b6d",l.callServer,void 0,l.findSourceMapURL,"getJobStatusAction"),o={completed:{bg:"bg-ok-bg border border-ok/30",text:"text-ok",dot:"bg-ok",pulse:!1},failed:{bg:"bg-warn-bg border border-err/30",text:"text-err",dot:"bg-err",pulse:!1},processing:{bg:"bg-warn-bg border border-warn/30",text:"text-warn",dot:"bg-warn",pulse:!0},pending:{bg:"bg-hover border border-rule",text:"text-ink-3",dot:"bg-ink-3",pulse:!1},awaiting_approval:{bg:"bg-run-bg border border-run/30",text:"text-run",dot:"bg-run",pulse:!0},awaiting_delegation:{bg:"bg-run-bg border border-run/30",text:"text-run",dot:"bg-run",pulse:!0},cancelled:{bg:"bg-hover border border-rule",text:"text-ink-3",dot:"bg-ink-4",pulse:!1}};function i({status:e}){let t=o[e]??o.pending;return(0,a.jsxs)("span",{className:`inline-flex items-center gap-1.5 px-2 py-0.5 rounded-md text-xs font-semibold ${t.bg} ${t.text}`,children:[(0,a.jsx)("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${t.dot} ${t.pulse?"animate-pulse":""}`}),e]})}let d=new Set(["completed","failed","cancelled"]);function c({jobId:e,initialStatus:t}){let[r,l]=(0,n.useState)({status:t,result:null,error:null});return(0,n.useEffect)(()=>{if(d.has(r.status))return;let t=async()=>{let t=await s(e);t.ok&&l(t.data)},a=setInterval(()=>{t()},3e3);return()=>clearInterval(a)},[e,r.status]),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)(i,{status:r.status}),!d.has(r.status)&&(0,a.jsx)("span",{className:"text-xs text-ink-4 animate-pulse",children:"Polling…"})]}),r.result&&(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs text-ink-3 font-semibold uppercase tracking-wider mb-1",children:"Result"}),(0,a.jsx)("pre",{className:"text-sm text-ink-2 whitespace-pre-wrap bg-paper rounded-lg p-4 border border-rule-2 max-h-80 overflow-auto",children:r.result})]}),r.error&&(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs text-err font-semibold uppercase tracking-wider mb-1",children:"Error"}),(0,a.jsx)("pre",{className:"text-sm text-err whitespace-pre-wrap bg-warn-bg rounded-lg p-4 border border-err/30",children:r.error})]})]})}}},e=>{e.O(0,[3363,8161,9836,1065,8724,7358],()=>e(e.s=38609)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8731],{11248:(e,t,n)=>{"use strict";n.d(t,{default:()=>i});var r=n(3680),s=n(78604),a=n(32895),l=n(97713);function i(){let[e,t]=(0,s.useState)("light"),[n,i]=(0,s.useState)(!1);(0,s.useEffect)(()=>{t("u"<typeof document?"light":"dark"===document.documentElement.getAttribute("data-theme")?"dark":"light"),i(!0)},[]);let o="dark"===e?a.b:l.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)(l.A,{size:15})})}},13260:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(3680),s=n(78604),a=n(51869);function l({open:e,onClose:t,title:n,children:i,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,a.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:i})]})})]}),document.body):null}},28155:(e,t,n)=>{"use strict";n.d(t,{default:()=>_});var r=n(3680),s=n(78604),a=n(65668),l=n(66736),i=n(27540),o=n(39504),d=n(40189),c=n(64678);let x=(0,c.createServerReference)("40ebfa73d6ce5a7253441b08f876b0b93adee4c088",c.callServer,void 0,c.findSourceMapURL,"sendTaskAction");var u=n(77045),p=n(13260);function m({agents:e}){let[t,n]=(0,s.useState)(!1),[a,l]=(0,s.useTransition)(),[c,h]=(0,s.useState)(""),b=(0,i.useRouter)(),g=e.find(e=>e.id===c);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(u.A,{variant:"neutral",onClick:()=>n(!0),children:[(0,r.jsx)(d.F,{size:13,weight:"bold"}),"New task"]}),(0,r.jsx)(p.A,{open:t,onClose:()=>n(!1),title:"New task",children:(0,r.jsxs)("form",{onSubmit:function(e){e.preventDefault();let t=Object.fromEntries(new FormData(e.currentTarget));l(async()=>{let e=await x(t);e.ok?(o.oR.success("Task sent — job created"),n(!1),b.push(`/jobs/${e.data.jobId}`)):o.oR.error(e.message)})},className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"mb-1 block text-xs text-ink-3",htmlFor:"task-prompt",children:"Task description"}),(0,r.jsx)("textarea",{id:"task-prompt",name:"prompt",required:!0,rows:6,placeholder:"Summarise the last 10 emails from my inbox…",className:"min-h-[80px] w-full resize-y rounded-lg border border-rule bg-hover px-3 py-2 text-sm text-ink placeholder:text-ink-4 focus:border-ink-3 focus:outline-none"})]}),(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"mb-1 block text-xs text-ink-3",htmlFor:"task-agent",children:"Assign to"}),(0,r.jsxs)("select",{id:"task-agent",name:"agentId",required:!0,value:c,onChange:e=>h(e.target.value),className:"w-full rounded-lg border border-rule bg-hover px-3 py-2 text-sm text-ink focus:border-ink-3 focus:outline-none",children:[(0,r.jsx)("option",{value:"",disabled:!0,children:"Select agent"}),e.map(e=>(0,r.jsxs)("option",{value:e.id,children:[e.name," (",e.slug,")"]},e.id))]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"mb-1 block text-xs text-ink-3",htmlFor:"task-priority",children:"Priority"}),(0,r.jsxs)("select",{id:"task-priority",name:"priority",defaultValue:"medium",className:"w-full rounded-lg border border-rule bg-hover px-3 py-2 text-sm text-ink focus:border-ink-3 focus:outline-none",children:[(0,r.jsx)("option",{value:"low",children:"Low"}),(0,r.jsx)("option",{value:"medium",children:"Medium"}),(0,r.jsx)("option",{value:"high",children:"High"})]})]})]}),g?.telegramBotToken&&g?.lastSeenChatIdTelegram&&(0,r.jsxs)("label",{className:"flex items-center gap-2 text-sm text-ink-2",children:[(0,r.jsx)("input",{type:"checkbox",name:"sendViaTelegram",value:"true",className:"rounded border border-rule bg-hover accent-white"}),"Send result via Telegram (chat: ",g.lastSeenChatIdTelegram,")"]}),(0,r.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,r.jsx)(u.A,{variant:"ink",type:"submit",disabled:a,children:a?"Sending…":"New task"}),(0,r.jsx)("button",{type:"button",onClick:()=>n(!1),className:"rounded-lg border border-rule px-4 py-2 text-sm font-medium text-ink-3 hover:border-rule-2",children:"Cancel"})]})]})})]})}var h=n(93606),b=n(99203),g=n(10908),f=n(14739),v=n(42881),k=n(50901);let j={orchestrator:"#d4ff2e",delegated:"#3565ff",standalone:"transparent"},N={label:"Cron",cls:"bg-agent-vivid text-[#1a2200]",Icon:g.z},w={label:"Telegram",cls:"bg-conn-vivid text-white",Icon:f.M},y={label:"Dashboard",cls:"bg-ink-3 text-paper",Icon:v.P},$=[N,w,y],A=e=>"processing"===e||"pending"===e||(e?.startsWith("awaiting")??!1),S=e=>String(e).padStart(2,"0"),C="px-4 py-2.5 font-mono text-[11px] font-normal uppercase tracking-[0.12em] text-ink-3 whitespace-nowrap",E="px-4 py-3 align-middle";function I({rows:e,query:t=""}){let n=(0,i.useRouter)(),a=(0,s.useMemo)(()=>{let n=t.trim().toLowerCase();return n?e.filter(e=>e.agentName.toLowerCase().includes(n)||e.task.toLowerCase().includes(n)||(e.fromAgentName?.toLowerCase().includes(n)??!1)):e},[e,t]);return(0,r.jsx)("div",{children:(0,r.jsxs)("div",{className:"overflow-hidden rounded-2xl border border-rule-2 bg-paper",children:[(0,r.jsx)("div",{className:"flex flex-wrap items-center gap-x-6 gap-y-2.5 border-b border-rule-2 px-5 py-3",children:(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,r.jsx)("span",{className:"font-mono text-[10px] uppercase tracking-[0.12em] text-ink-4",children:"Trigger"}),$.map(e=>(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[11px] text-ink-3",children:[(0,r.jsx)("span",{className:`inline-flex size-[16px] items-center justify-center rounded ${e.cls}`,children:(0,r.jsx)(e.Icon,{size:10,weight:"fill"})}),e.label]},e.label))]})}),0===a.length?(0,r.jsx)("div",{className:"px-6 py-12 text-center text-[14px] text-ink-4",children:0===e.length?"No runs yet.":"No runs match the search."}):(0,r.jsxs)("table",{className:"w-full border-collapse text-sm",children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{className:"border-b border-rule-2",children:[(0,r.jsx)("th",{className:`${C} text-left`,children:"Agent"}),(0,r.jsx)("th",{className:`${C} text-left`,children:"Trigger"}),(0,r.jsx)("th",{className:`${C} hidden text-left md:table-cell`,children:"Started"}),(0,r.jsx)("th",{className:`${C} hidden text-right lg:table-cell`,children:"Duration"}),(0,r.jsx)("th",{className:`${C} text-right`,children:"Tokens"}),(0,r.jsx)("th",{className:`${C} hidden text-right sm:table-cell`,children:"Cost"}),(0,r.jsx)("th",{className:`${C} text-right`,children:"Status"})]})}),(0,r.jsx)("tbody",{children:a.map(e=>{var t;let s="delegated"===e.role,a=e.inputTokens+e.outputTokens,l="delegated"===e.role?null:"cron"===e.channel?N:"telegram"===e.channel?w:"dashboard"===e.channel||"api"===e.channel?y:null;return(0,r.jsxs)("tr",{title:e.task,onClick:()=>n.push(`/jobs/${e.id}`),className:`cursor-pointer border-b border-rule-2 transition-colors last:border-0 hover:bg-hover-2 ${s?"bg-hover":""}`,children:[(0,r.jsx)("td",{className:E,style:{boxShadow:`inset 3px 0 0 ${j[e.role]}`},children:(0,r.jsxs)("div",{className:`flex items-center gap-2.5 ${s?"pl-2":""}`,children:[s&&(0,r.jsx)(k.L,{size:14,className:"shrink-0 text-ink-4"}),(0,r.jsx)(b.A,{name:e.agentName,imageUrl:e.agentAvatarUrl,size:"md"}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("div",{className:"truncate text-[13px] text-ink",children:e.agentName}),s&&e.fromAgentName&&(0,r.jsxs)("div",{className:"truncate text-[11px] leading-tight text-ink-3",children:["from ",e.fromAgentName]})]})]})}),(0,r.jsx)("td",{className:E,children:l?(0,r.jsx)("span",{title:l.label,className:`inline-flex size-[24px] items-center justify-center rounded-md ${l.cls}`,children:(0,r.jsx)(l.Icon,{size:13,weight:"fill"})}):(0,r.jsx)("span",{className:"text-[12.5px] text-ink-4",children:"—"})}),(0,r.jsx)("td",{className:`${E} hidden text-left text-[12.5px] whitespace-nowrap text-ink-2 md:table-cell`,children:function(e,t){if(A(t)&&e){let t=Math.max(0,Math.floor((Date.now()-new Date(e).getTime())/1e3));return`live \xb7 ${S(Math.floor(t/60))}:${S(t%60)}`}return e?new Date(e).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}):"—"}(e.createdAt,e.status)}),(0,r.jsx)("td",{className:`${E} hidden text-right font-mono text-[12.5px] whitespace-nowrap text-ink-2 lg:table-cell`,children:function(e,t,n){if(A(n)||!e||!t)return"—";let r=Math.max(0,Math.floor((new Date(t).getTime()-new Date(e).getTime())/1e3));return r>=60?`${Math.floor(r/60)}m ${S(r%60)}s`:`${r}s`}(e.createdAt,e.completedAt,e.status)}),(0,r.jsx)("td",{className:`${E} text-right font-mono text-[12.5px] whitespace-nowrap text-ink-2`,children:function(e){if(e<=0)return"—";if(e<1e3)return String(e);let t=e=>(Math.round(10*e)/10).toString().replace(/\.0$/,"");return e<1e6?(e/1e3>=100?String(Math.round(e/1e3)):t(e/1e3))+"K":(e/1e6>=100?String(Math.round(e/1e6)):t(e/1e6))+"M"}(a)}),(0,r.jsx)("td",{className:`${E} hidden text-right font-mono text-[12.5px] whitespace-nowrap text-ink-2 sm:table-cell`,children:e.costUsd>0?`$${e.costUsd.toFixed(2)}`:"—"}),(0,r.jsx)("td",{className:`${E} text-right`,children:(0,r.jsx)(h.A,{variant:"completed"===(t=e.status)?"done":"failed"===t||"cancelled"===t?"warn":"processing"===t||"pending"===t||t?.startsWith("awaiting")?"run":"idle",label:{pending:"Queued",processing:"Running",completed:"Done",failed:"Failed",awaiting_approval:"Awaiting",awaiting_delegation:"Awaiting",cancelled:"Cancelled"}[e.status??""]??"Pending"})})]},e.id)})})]})]})})}function _({rows:e,agents:t,error:n}){let[i,o]=(0,s.useState)("");return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"mb-5",children:(0,r.jsx)(a.A,{search:(0,r.jsx)(l.A,{value:i,onChange:o,placeholder:"Search by agent or task…"}),cta:(0,r.jsx)(m,{agents:t})})}),n&&(0,r.jsx)("div",{className:"mb-4 rounded-xl border border-warn/40 bg-warn-bg p-4 text-[14px] text-warn",children:n}),(0,r.jsx)(I,{rows:e,query:i})]})}},39062:(e,t,n)=>{"use strict";n.d(t,{C:()=>s});var r=n(64678);let s=(0,r.createServerReference)("405714e3103acb8a86e8816a240e218d68c7bfe422",r.callServer,void 0,r.findSourceMapURL,"resolveApprovalAction")},64676:(e,t,n)=>{"use strict";n.d(t,{default:()=>l});var r=n(3680),s=n(32928),a=n(78604);function l({placeholder:e="Search agents, skills, runs…",keyboardShortcut:t=!0,onSubmit:n,className:i=""}){let o=(0,a.useRef)(null);return(0,a.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(),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,r.jsx)(s.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:"/"})]})}},65668:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(3680);function s({tabs:e,search:t,cta:n,extra:a,className:l=""}){return(0,r.jsxs)("div",{className:`flex flex-wrap items-center gap-2.5 pt-4 ${l}`,children:[e,(0,r.jsx)("div",{className:"flex-1"}),t,a,n]})}},66736:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(3680),s=n(32928);function a({value:e,onChange:t,placeholder:n="Search…",minWidth:l=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:l},children:[(0,r.jsx)(s.e,{size:13,className:"shrink-0"}),(0,r.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"})]})}},77045:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(3680),s=n(63363),a=n.n(s);let l={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:n="ink",size:s="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"===s?"h-[34px] px-3.5 text-[14px]":"h-[30px] px-3 text-[13px]"} ${l[n]} ${i}`;if("href"in e&&e.href){let{href:n,variant:s,size:l,className:i,children:d,...c}=e;return(0,r.jsx)(a(),{href:n,className:o,...c,children:t})}let{variant:d,size:c,className:x,children:u,...p}=e;return(0,r.jsx)("button",{type:"button",className:o,...p,children:t})}},82592:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(3680);let s={ok:"bg-ok",lime:"bg-agent-vivid",coral:"bg-skill-vivid",blue:"bg-conn-vivid"},a={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,r.jsx)("span",{className:`inline-block shrink-0 rounded-full ${"sm"===t?"h-[7px] w-[7px]":"h-2 w-2"} ${s[e]} ${n?a[e]:""} ${i}`})}},88459:(e,t,n)=>{"use strict";n.d(t,{ApprovalsProvider:()=>o,e:()=>c});var r=n(3680),s=n(78604),a=n(64678);let l=(0,a.createServerReference)("4097f6d231fec2cd16168a9412d1b68b03b108fe6a",a.callServer,void 0,a.findSourceMapURL,"listApprovalsAction"),i=(0,s.createContext)(null);function o({initial:e,children:t}){let[n,a]=(0,s.useState)(e),d=(0,s.useCallback)(async()=>{let e=await l({status:"pending"});e.ok&&a(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)(i.Provider,{value:{pending:n,refresh:c},children:t})}let d={pending:[],refresh:()=>{}};function c(){let e=(0,s.useContext)(i);return e||(console.warn("[useApprovals] called outside <ApprovalsProvider> — returning empty state."),d)}},88563:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(3680),s=n(78604),a=n(63363),l=n.n(a),i=n(7101),o=n(39504),d=n(39062),c=n(88459);function x({item:e,onApproved:t}){let[n,a]=(0,s.useTransition)();return(0,r.jsx)("button",{type:"button",onClick:n=>{n.preventDefault(),n.stopPropagation(),a(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 a=(0,s.useRef)(null);return(0,s.useEffect)(()=>{function e(e){a.current&&!a.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:a,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)(l(),{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)(l(),{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,a]=(0,s.useState)(!1),l=(0,s.useRef)(null),o=e.length,d=(0,s.useCallback)(()=>a(!1),[]),x=(0,s.useCallback)(()=>a(e=>!e),[]),p=(0,s.useCallback)(()=>{t()},[t]);return(0,r.jsxs)("div",{ref:l,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)(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})]}),n&&(0,r.jsx)(u,{items:e,onClose:d,onApproved:p})]})}},93606:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(3680),s=n(86127),a=n(50131),l=n(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:n,className:c=""}){let x=t??i[e],u=null;return void 0!==n?u=n:"done"===e?u=(0,r.jsx)(s.r,{size:11,weight:"regular"}):"warn"===e?u=(0,r.jsx)(a.N,{size:11,weight:"regular"}):"run"===e&&(u=(0,r.jsx)(l.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:[u,x]})}},97423:(e,t,n)=>{Promise.resolve().then(n.bind(n,28155)),Promise.resolve().then(n.bind(n,88563)),Promise.resolve().then(n.bind(n,64676)),Promise.resolve().then(n.bind(n,11248))},99203:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(3680),s=n(22575);let a={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 d=a[n],c=`inline-flex shrink-0 items-center justify-center overflow-hidden bg-hover font-mono font-semibold tracking-[0.04em] text-ink-2 ${d.box} ${d.text} ${"round"===i?"rounded-full":"rounded-[8px]"} ${o}`;return t?(0,r.jsx)("span",{className:c,children:(0,r.jsx)(s.default,{src:t,alt:e,width:d.px,height:d.px,className:"h-full w-full object-cover"})}):(0,r.jsx)("span",{className:c,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,609,1065,8724,7358],()=>e(e.s=97423)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9305],{1317:(e,t,n)=>{"use strict";n.d(t,{O:()=>s});var r=n(64678);let s=(0,r.createServerReference)("407c0c65975bbce8f37884b7f13cbd9fc7d01702a6",r.callServer,void 0,r.findSourceMapURL,"createWorkspaceAction")},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,88459)),Promise.resolve().then(n.bind(n,78533)),Promise.resolve().then(n.bind(n,17345)),Promise.resolve().then(n.bind(n,76556))},39062:(e,t,n)=>{"use strict";n.d(t,{C:()=>s});var r=n(64678);let s=(0,r.createServerReference)("405714e3103acb8a86e8816a240e218d68c7bfe422",r.callServer,void 0,r.findSourceMapURL,"resolveApprovalAction")},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)})})}},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})}},78533:(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)("008359dc21a48b756aebca6da88725f8d096c7486d",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(80494),Z=n(1317);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(88459);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})]})]})}},80494:(e,t,n)=>{"use strict";n.d(t,{W:()=>s});var r=n(64678);let s=(0,r.createServerReference)("40397bed6f0cf2b3ba461e8e47ec7d4b6880ea452c",r.callServer,void 0,r.findSourceMapURL,"switchWorkspaceAction")},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}`})}},88459:(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)("4097f6d231fec2cd16168a9412d1b68b03b108fe6a",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)}},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(39062),c=n(88459);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()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3703],{277:(e,t,n)=>{Promise.resolve().then(n.bind(n,33696))},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}},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},33696:(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)("40aa78ff77c2900def0f8a7193d8ee0900cee41191",u.callServer,void 0,u.findSourceMapURL,"setReflectionEnabledAction"),p=(0,u.createServerReference)("4026f33da62f4a2a07931f6360bded85984e6c728f",u.callServer,void 0,u.findSourceMapURL,"setSkillAssignmentModeAction"),h=(0,u.createServerReference)("406ed62e4baf62e9357009d942d66866b35dce052c",u.callServer,void 0,u.findSourceMapURL,"archiveLearnedSkillAction"),b=(0,u.createServerReference)("400b298cef0ced93eff39c17e57e13791cd16d76d0",u.callServer,void 0,u.findSourceMapURL,"deleteLearnedSkillAction"),g=(0,u.createServerReference)("408fb5279717a035f1bfcffa7ad8253d52bfea33b8",u.callServer,void 0,u.findSourceMapURL,"restoreLearnedSkillAction"),f=(0,u.createServerReference)("602e5fa8edb7615a40e891dfd2900dccb34a73c777",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"})]})]})})]})}},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()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[173],{1990:(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)("40a92bc888d4c445e1f60ac74f0471b491e956600a",u.callServer,void 0,u.findSourceMapURL,"deleteLlmKeyAction"),f=(0,u.createServerReference)("607a4e0fe270514e93af4dfa107b07c6e3fc451d55",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(90808),A=t(95879),j=t(61178);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()}})]})})}},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},49354:(e,a,t)=>{Promise.resolve().then(t.bind(t,1990)),Promise.resolve().then(t.bind(t,88563)),Promise.resolve().then(t.bind(t,64676)),Promise.resolve().then(t.bind(t,11248))},61178:(e,a,t)=>{"use strict";t.d(a,{L:()=>n});var r=t(64678);let n=(0,r.createServerReference)("40b1e80a920ce475113b5fbce89c2494f0599c0318",r.callServer,void 0,r.findSourceMapURL,"createLlmKeyAction")},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})}},90808:(e,a,t)=>{"use strict";t.d(a,{f:()=>n});var r=t(64678);let n=(0,r.createServerReference)("40029d917e83102fc3fe53281772f0f4a67f3c8121",r.callServer,void 0,r.findSourceMapURL,"testLlmKeyAction")},95879:(e,a,t)=>{"use strict";t.d(a,{Q:()=>n});var r=t(64678);let n=(0,r.createServerReference)("40ef217aa9916f074c45a6a7ebe489ade1058eb9ca",r.callServer,void 0,r.findSourceMapURL,"updateLlmKeyAction")}},e=>{e.O(0,[3363,8161,9836,1065,8724,7358],()=>e(e.s=49354)),_N_E=e.O()}]);