reflex-agent 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +97 -97
- package/.next/app-path-routes-manifest.json +10 -10
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +3 -51
- package/.next/react-loadable-manifest.json +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +3 -3
- package/.next/server/app/agents/[agentId]/page.js +2 -2
- package/.next/server/app/agents/[agentId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/[agentId]/respond/route.js +1 -1
- package/.next/server/app/api/agents/[agentId]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/images/[rootId]/[file]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/start/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/roots/[id]/attachments/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route.js +1 -1
- package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route.js +1 -1
- package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route.js +1 -1
- package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/roots/[id]/dashboard/route.js +1 -1
- package/.next/server/app/api/roots/[id]/dashboard/route.js.nft.json +1 -1
- package/.next/server/app/api/roots/[id]/dashboard/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/roots/[id]/suggestions/route.js +1 -1
- package/.next/server/app/api/roots/[id]/suggestions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/utilities/[scope]/[id]/bundle.js/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/utilities/[scope]/[id]/host/route.js +1 -1
- package/.next/server/app/api/utilities/[scope]/[id]/host/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/utilities/[scope]/[id]/host-api.mjs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/utilities/[scope]/[id]/host-ui.mjs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/utilities/[scope]/[id]/iframe/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/utilities/[scope]/[id]/style.css/route_client-reference-manifest.js +1 -1
- package/.next/server/app/audit/page.js +1 -1
- package/.next/server/app/audit/page.js.nft.json +1 -1
- package/.next/server/app/audit/page_client-reference-manifest.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/onboarding/page.js +2 -2
- package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/roots/[id]/chat/[topicId]/page.js +2 -2
- package/.next/server/app/roots/[id]/chat/[topicId]/page.js.nft.json +1 -1
- package/.next/server/app/roots/[id]/chat/[topicId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/roots/[id]/kb/[...slug]/page.js +3 -3
- package/.next/server/app/roots/[id]/kb/[...slug]/page.js.nft.json +1 -1
- package/.next/server/app/roots/[id]/kb/[...slug]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/roots/[id]/page.js +3 -3
- package/.next/server/app/roots/[id]/page.js.nft.json +1 -1
- package/.next/server/app/roots/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/roots/[id]/workflows/[wfId]/page.js +2 -2
- package/.next/server/app/roots/[id]/workflows/[wfId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/roots/[id]/workflows/page.js +1 -1
- package/.next/server/app/roots/[id]/workflows/page.js.nft.json +1 -1
- package/.next/server/app/roots/[id]/workflows/page_client-reference-manifest.js +1 -1
- package/.next/server/app/roots/new/page.js +2 -2
- package/.next/server/app/roots/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js +5 -5
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/share/[id]/file/page.js +1 -1
- package/.next/server/app/share/[id]/file/page_client-reference-manifest.js +1 -1
- package/.next/server/app/share/[id]/page.js +2 -2
- package/.next/server/app/share/[id]/page.js.nft.json +1 -1
- package/.next/server/app/share/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/utilities/[scope]/[id]/page.js +2 -2
- package/.next/server/app/utilities/[scope]/[id]/page.js.nft.json +1 -1
- package/.next/server/app/utilities/[scope]/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/utilities/page.js +4 -4
- package/.next/server/app/utilities/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +10 -10
- package/.next/server/chunks/133.js +5 -5
- package/.next/server/chunks/{3610.js → 1410.js} +1 -1
- package/.next/server/chunks/1960.js +1 -1
- package/.next/server/chunks/1986.js +1 -1
- package/.next/server/chunks/2448.js +3 -0
- package/.next/server/chunks/3332.js +1 -1
- package/.next/server/chunks/3953.js +4 -0
- package/.next/server/chunks/4031.js +1 -1
- package/.next/server/chunks/5754.js +3 -0
- package/.next/server/chunks/{1455.js → 7097.js} +1 -1
- package/.next/server/chunks/7782.js +1 -0
- package/.next/server/chunks/7987.js +1 -0
- package/.next/server/chunks/810.js +1 -0
- package/.next/server/chunks/9098.js +1 -1
- package/.next/server/chunks/9328.js +1 -1
- package/.next/server/chunks/9579.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/2488-c9590facb4b9f184.js +1 -0
- package/.next/static/chunks/2684-257d38989ef53935.js +1 -0
- package/.next/static/chunks/4108.fb9f99a9c899ef54.js +1 -0
- package/.next/static/chunks/6231-d83c1544bbea8424.js +1 -0
- package/.next/static/chunks/9496-75ccd3fadb294fba.js +1 -0
- package/.next/static/chunks/992-4e7b7f722c629e21.js +1 -0
- package/.next/static/chunks/app/layout-9a59ed07c18cb786.js +1 -0
- package/.next/static/chunks/app/onboarding/{page-21cb4c231aa388b2.js → page-79f07a813ea2abfe.js} +1 -1
- package/.next/static/chunks/app/page-27f4b98b02ac4f79.js +1 -0
- package/.next/static/chunks/app/roots/[id]/chat/[topicId]/{page-495551937b420b76.js → page-8db2d0b75cd333c8.js} +1 -1
- package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-873b131eec3a2f30.js +1 -0
- package/.next/static/chunks/app/roots/[id]/page-270d0d49eb668784.js +1 -0
- package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-7c1f10dbe0bcb9ad.js +1 -0
- package/.next/static/chunks/app/roots/new/page-ac1a9f6379710ca2.js +1 -0
- package/.next/static/chunks/app/settings/page-81cb1393e817dfc3.js +1 -0
- package/.next/static/chunks/app/share/[id]/page-2d123f0a99e1606f.js +1 -0
- package/.next/static/chunks/app/utilities/[scope]/[id]/page-0bbb8d17af80c1da.js +1 -0
- package/.next/static/chunks/app/utilities/page-e6ce673b9357bf1f.js +1 -0
- package/.next/static/chunks/{webpack-5a9c11af9261dd8a.js → webpack-5fca180586957874.js} +1 -1
- package/.next/trace +46 -46
- package/README.md +4 -1
- package/dist/bin/preload.js +12 -4
- package/dist/bin/preload.js.map +1 -1
- package/dist/lib/reflex/commands/start.js +33 -0
- package/dist/lib/reflex/commands/start.js.map +1 -1
- package/lib/server/utilities/worker-bootstrap.js +87 -0
- package/package.json +4 -3
- package/.next/server/app/roots/new.html +0 -1
- package/.next/server/app/roots/new.meta +0 -7
- package/.next/server/app/roots/new.rsc +0 -21
- package/.next/server/app/settings.html +0 -1
- package/.next/server/app/settings.meta +0 -7
- package/.next/server/app/settings.rsc +0 -22
- package/.next/server/chunks/2977.js +0 -1
- package/.next/server/chunks/3076.js +0 -1
- package/.next/server/chunks/4567.js +0 -3
- package/.next/server/chunks/6809.js +0 -3
- package/.next/server/chunks/9731.js +0 -4
- package/.next/server/chunks/9905.js +0 -1
- package/.next/static/chunks/1521-747af538ca131a44.js +0 -1
- package/.next/static/chunks/2641-a7e626d59cd967e8.js +0 -1
- package/.next/static/chunks/2994-8b82d24eeb6d4a3d.js +0 -1
- package/.next/static/chunks/4108.610ef39d7984f25f.js +0 -1
- package/.next/static/chunks/6330-d46c4ceb6e522567.js +0 -1
- package/.next/static/chunks/9837-49687140bc7ce084.js +0 -1
- package/.next/static/chunks/app/layout-e51afdc17d552d1a.js +0 -1
- package/.next/static/chunks/app/page-1fa224b4a5160227.js +0 -1
- package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-1b67558878e2cc43.js +0 -1
- package/.next/static/chunks/app/roots/[id]/page-0431ab3465b742f1.js +0 -1
- package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-62fa8cfbf3c85457.js +0 -1
- package/.next/static/chunks/app/roots/new/page-918f809668694de6.js +0 -1
- package/.next/static/chunks/app/settings/page-9cf2f101424ec84c.js +0 -1
- package/.next/static/chunks/app/share/[id]/page-325593b9c70ca17c.js +0 -1
- package/.next/static/chunks/app/utilities/[scope]/[id]/page-fe0e445961d83cc2.js +0 -1
- package/.next/static/chunks/app/utilities/page-a1359423e5a9e7de.js +0 -1
- /package/.next/static/{6-mOMrzbiPmI97utKVIuW → og_wC7UPkGtJDiapaTgBr}/_buildManifest.js +0 -0
- /package/.next/static/{6-mOMrzbiPmI97utKVIuW → og_wC7UPkGtJDiapaTgBr}/_ssgManifest.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
(()=>{var a={};a.id=8138,a.ids=[8138],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},574:(a,b,c)=>{"use strict";c.d(b,{AddUtilityButton:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call AddUtilityButton() from the server but AddUtilityButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/app/roots/[id]/_components/add-utility-button.tsx","AddUtilityButton")},770:(a,b,c)=>{"use strict";c.d(b,{RunInitButton:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call RunInitButton() from the server but RunInitButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/app/roots/[id]/_components/run-init-button.tsx","RunInitButton")},1708:a=>{"use strict";a.exports=require("node:process")},1800:(a,b,c)=>{Promise.resolve().then(c.bind(c,26327)),Promise.resolve().then(c.bind(c,20670)),Promise.resolve().then(c.bind(c,81846)),Promise.resolve().then(c.bind(c,15620)),Promise.resolve().then(c.bind(c,16119)),Promise.resolve().then(c.bind(c,16008)),Promise.resolve().then(c.bind(c,68394)),Promise.resolve().then(c.bind(c,51189)),Promise.resolve().then(c.bind(c,66180)),Promise.resolve().then(c.bind(c,75266)),Promise.resolve().then(c.bind(c,14360)),Promise.resolve().then(c.bind(c,6786)),Promise.resolve().then(c.bind(c,44896)),Promise.resolve().then(c.bind(c,14848)),Promise.resolve().then(c.bind(c,53710)),Promise.resolve().then(c.bind(c,30544)),Promise.resolve().then(c.bind(c,13829)),Promise.resolve().then(c.bind(c,90044)),Promise.resolve().then(c.bind(c,57673)),Promise.resolve().then(c.bind(c,97053)),Promise.resolve().then(c.bind(c,43151)),Promise.resolve().then(c.bind(c,12156)),Promise.resolve().then(c.bind(c,71615)),Promise.resolve().then(c.bind(c,4080)),Promise.resolve().then(c.bind(c,87177)),Promise.resolve().then(c.bind(c,87634)),Promise.resolve().then(c.bind(c,6912)),Promise.resolve().then(c.bind(c,13976)),Promise.resolve().then(c.bind(c,18282)),Promise.resolve().then(c.bind(c,20633)),Promise.resolve().then(c.bind(c,61193)),Promise.resolve().then(c.bind(c,66188)),Promise.resolve().then(c.bind(c,66643)),Promise.resolve().then(c.bind(c,81669)),Promise.resolve().then(c.bind(c,39991)),Promise.resolve().then(c.bind(c,54972)),Promise.resolve().then(c.t.bind(c,1056,23))},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},3442:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]])},4984:a=>{"use strict";a.exports=require("readline")},7206:a=>{"use strict";a.exports=import("execa")},8086:a=>{"use strict";a.exports=require("module")},8162:(a,b,c)=>{"use strict";c.d(b,{B:()=>e});var d=c(3265);let e=(0,d.createServerReference)("005f5989e7e1c8cc8a429c5aede416f5fee99b9632",d.callServer,void 0,d.findSourceMapURL,"listCuratedAction")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14952:(a,b,c)=>{Promise.resolve().then(c.bind(c,86673)),Promise.resolve().then(c.bind(c,16805)),Promise.resolve().then(c.bind(c,574)),Promise.resolve().then(c.bind(c,90558)),Promise.resolve().then(c.bind(c,64845)),Promise.resolve().then(c.bind(c,770)),Promise.resolve().then(c.bind(c,60524)),Promise.resolve().then(c.bind(c,50155)),Promise.resolve().then(c.bind(c,26922)),Promise.resolve().then(c.bind(c,79008)),Promise.resolve().then(c.bind(c,68146)),Promise.resolve().then(c.bind(c,60936)),Promise.resolve().then(c.bind(c,65138)),Promise.resolve().then(c.bind(c,68902)),Promise.resolve().then(c.bind(c,69644)),Promise.resolve().then(c.bind(c,49186)),Promise.resolve().then(c.bind(c,93099)),Promise.resolve().then(c.bind(c,83594)),Promise.resolve().then(c.bind(c,24375)),Promise.resolve().then(c.bind(c,67135)),Promise.resolve().then(c.bind(c,85105)),Promise.resolve().then(c.bind(c,41886)),Promise.resolve().then(c.bind(c,33309)),Promise.resolve().then(c.bind(c,37550)),Promise.resolve().then(c.bind(c,96623)),Promise.resolve().then(c.bind(c,77372)),Promise.resolve().then(c.bind(c,65478)),Promise.resolve().then(c.bind(c,97230)),Promise.resolve().then(c.bind(c,73552)),Promise.resolve().then(c.bind(c,391)),Promise.resolve().then(c.bind(c,4235)),Promise.resolve().then(c.bind(c,41138)),Promise.resolve().then(c.bind(c,60877)),Promise.resolve().then(c.bind(c,7671)),Promise.resolve().then(c.bind(c,5637)),Promise.resolve().then(c.bind(c,36786)),Promise.resolve().then(c.t.bind(c,20594,23))},16008:(a,b,c)=>{"use strict";c.d(b,{RunInitButton:()=>m});var d=c(64173),e=c(17240),f=c(62261),g=c(52869),h=c(44052),i=c(20583),j=c(3265);let k=(0,j.createServerReference)("70639b10ba6b7c0d4037eb3595c05cffc83a77adb4",j.callServer,void 0,j.findSourceMapURL,"runInitAction");var l=c(88724);function m({rootPath:a,rootId:b}){let[c,j]=(0,e.useTransition)();return(0,d.jsx)(i.$,{onClick:()=>j(async()=>{let c=h.oR.loading("Running agent — this can take a minute or two…"),d=await k(a,b,!1);h.oR.dismiss(c),d.ok?(h.oR.success("Init complete"),(0,l.$d)(l.Zi.kbChanged(b)),(0,l.$d)(l.Zi.rootsChanged)):h.oR.error(d.error??"Init failed")}),disabled:c,children:c?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.A,{className:"mr-2 h-4 w-4 animate-spin"})," Running…"]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.A,{className:"mr-2 h-4 w-4"})," Run init"]})})}},16119:(a,b,c)=>{"use strict";c.d(b,{Dashboard:()=>ao});var d=c(64173),e=c(17240),f=c(63351),g=c(44052),h=c(20583),i=c(88724),j=c(1056),k=c.n(j),l=c(75430),m=c(62261),n=c(19356),o=c(42382),p=c(31041);function q({rootId:a,activeGoals:b,runningAgents:c}){let e=b.length+c.length;return(0,d.jsxs)(p.Zp,{children:[(0,d.jsxs)(p.aR,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[(0,d.jsxs)(p.ZB,{className:"text-sm flex items-center gap-2",children:[(0,d.jsx)(l.A,{className:"h-4 w-4 text-violet-600"}),"Active goals & running agents"]}),e>0&&(0,d.jsx)(o.E,{variant:"secondary",className:"text-[10px]",children:e})]}),(0,d.jsxs)(p.Wu,{className:"space-y-2",children:[0===e&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Нет активных целей и работающих агентов."}),b.map(b=>(0,d.jsx)(k(),{href:`/roots/${a}/chat/${b.topicId}`,className:"block rounded-md border bg-card hover:bg-accent/40 transition px-3 py-2",children:(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)(l.A,{className:"h-3.5 w-3.5 text-violet-600 mt-0.5 shrink-0"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-medium truncate flex-1 min-w-0",children:b.topicTitle}),b.running&&(0,d.jsx)(m.A,{className:"h-3 w-3 animate-spin text-violet-600 shrink-0"})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 line-clamp-2",children:b.goal}),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-1 text-[10px] text-muted-foreground",children:[(0,d.jsxs)("span",{children:["итерация ",b.goalIterations]}),(0,d.jsx)("span",{children:"\xb7"}),(0,d.jsxs)("span",{children:["обновлено ",function(a){let b=Date.now()-Date.parse(a);if(!Number.isFinite(b)||b<0)return"только что";let c=Math.floor(b/6e4);if(c<1)return"только что";if(c<60)return`${c} мин назад`;let d=Math.floor(c/60);if(d<24)return`${d} ч назад`;let e=Math.floor(d/24);return`${e} дн назад`}(b.updatedAt)]})]})]})]})},b.topicId)),c.map(b=>(0,d.jsx)(k(),{href:`/roots/${a}/chat/${b.topicId}`,className:"block rounded-md border bg-card hover:bg-accent/40 transition px-3 py-2",children:(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)(n.A,{className:"h-3.5 w-3.5 text-amber-600 mt-0.5 shrink-0"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1 flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-medium truncate flex-1 min-w-0",children:b.topicTitle}),(0,d.jsx)(m.A,{className:"h-3 w-3 animate-spin text-amber-600 shrink-0"}),(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground",children:"агент работает"})]})]})},b.topicId))]})]})}var r=c(74868),s=c(42324),t=c(63387),u=c(33120);function v({rootId:a,items:b}){return(0,d.jsxs)(p.Zp,{children:[(0,d.jsxs)(p.aR,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[(0,d.jsxs)(p.ZB,{className:"text-sm flex items-center gap-2",children:[(0,d.jsx)(r.A,{className:"h-4 w-4 text-amber-600"}),"Ждут реакции"]}),b.length>0&&(0,d.jsx)(o.E,{variant:"secondary",className:"text-[10px]",children:b.length})]}),(0,d.jsxs)(p.Wu,{className:"space-y-2",children:[0===b.length&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Ничего не висит — все вопросы и одобрения отвечены."}),b.map(b=>{var c;return(0,d.jsx)(k(),{href:`/roots/${a}/chat/${b.topicId}`,className:"block rounded-md border bg-card hover:bg-accent/40 transition px-3 py-2",children:(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)(w,{kind:b.kind}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-medium truncate flex-1 min-w-0",children:b.summary}),(0,d.jsx)(o.E,{variant:"outline",className:"text-[10px] shrink-0",children:"permission"===(c=b.kind)?"permission":"question"===c?"question":"mcp-add"})]}),b.details&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 line-clamp-2",children:b.details}),(0,d.jsxs)("div",{className:"text-[10px] text-muted-foreground mt-1",children:["topic ",b.topicId.slice(0,12)," \xb7 ",function(a){let b=Date.now()-Date.parse(a);if(!Number.isFinite(b)||b<0)return"только что";let c=Math.floor(b/6e4);if(c<1)return"только что";if(c<60)return`${c} мин назад`;let d=Math.floor(c/60);if(d<24)return`${d} ч назад`;let e=Math.floor(d/24);return`${e} дн назад`}(b.ts)]})]})]})},`${b.kind}:${b.requestId}`)})]})]})}function w({kind:a}){let b="h-3.5 w-3.5 mt-0.5 shrink-0";return"permission"===a?(0,d.jsx)(s.A,{className:`${b} text-rose-600`}):"question"===a?(0,d.jsx)(t.A,{className:`${b} text-sky-600`}):(0,d.jsx)(u.A,{className:`${b} text-emerald-600`})}var x=c(68669),y=c(3265);function z({rootId:a,items:b}){let[c,f]=(0,e.useState)({});return(0,d.jsxs)(p.Zp,{children:[(0,d.jsxs)(p.aR,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[(0,d.jsxs)(p.ZB,{className:"text-sm flex items-center gap-2",children:[(0,d.jsx)(x.A,{className:"h-4 w-4 text-emerald-700"}),"Свежее в KB"]}),b.length>0&&(0,d.jsx)(o.E,{variant:"secondary",className:"text-[10px]",children:b.length})]}),(0,d.jsxs)(p.Wu,{className:"space-y-2",children:[0===b.length&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"За последние 72 часа никто не писал в KB."}),b.map(b=>(0,d.jsx)(k(),{href:`/roots/${a}/kb/${b.rel.split("/").map(encodeURIComponent).join("/")}`,className:"block rounded-md border bg-card hover:bg-accent/40 transition px-3 py-2",children:(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)(x.A,{className:"h-3.5 w-3.5 mt-0.5 shrink-0 text-emerald-700"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-medium truncate flex-1 min-w-0",children:b.title}),b.kind&&(0,d.jsx)(o.E,{variant:"outline",className:"text-[10px] shrink-0",children:b.kind})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 line-clamp-2",children:c[b.rel]??b.rel}),(0,d.jsxs)("div",{className:"text-[10px] text-muted-foreground mt-1",children:[function(a){let b=Date.now()-Date.parse(a);if(!Number.isFinite(b)||b<0)return"только что";let c=Math.floor(b/6e4);if(c<1)return"только что";if(c<60)return`${c} мин назад`;let d=Math.floor(c/60);if(d<24)return`${d} ч назад`;let e=Math.floor(d/24);return`${e} дн назад`}(b.modifiedAt)," \xb7 ",(0,d.jsx)("span",{className:"font-mono",children:b.rel})]})]})]})},b.rel))]})]})}y.callServer,y.findSourceMapURL;var A=c(87671),B=c(42557);let C=(0,B.A)("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);var D=c(69552),E=c(62481),F=c(73569),G=c(58030);function H({rootId:a,cache:b}){let[c,i]=(0,e.useState)(b),[j,k]=(0,e.useTransition)(),l=(0,A.useRouter)(),n=c&&Date.now()-Date.parse(c.generatedAt)>864e5;return(0,d.jsxs)(p.Zp,{className:"lg:col-span-2",children:[(0,d.jsxs)(p.aR,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[(0,d.jsxs)(p.ZB,{className:"text-sm flex items-center gap-2",children:[(0,d.jsx)(C,{className:"h-4 w-4 text-amber-500"}),"Что дальше — предложения Reflex",n&&(0,d.jsx)(o.E,{variant:"outline",className:"text-[10px]",children:"устарело"})]}),(0,d.jsxs)(h.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>{k(async()=>{try{let b=await fetch(`/api/roots/${a}/suggestions`,{method:"POST",cache:"no-store"}),c=await b.json();if(!c.ok)return void g.oR.error(c.error??"Не удалось перегенерировать");c.cache&&i(c.cache)}catch(a){g.oR.error(a instanceof Error?a.message:String(a))}})},disabled:j,className:"gap-1 h-7 text-xs",children:[j?(0,d.jsx)(m.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(f.A,{className:"h-3 w-3"}),"Пересчитать"]})]}),(0,d.jsxs)(p.Wu,{className:"space-y-2",children:[!c&&!j&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Нажми \xabПересчитать\xbb, чтобы получить 2-4 идеи о том, что стоит сделать в проекте дальше. Использует quick-модель из Settings."}),c&&0===c.items.length&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Модель не нашла ничего срочного — попробуй позже."}),(0,d.jsx)("div",{className:"grid gap-2 md:grid-cols-2",children:c?.items.map((b,c)=>(0,d.jsxs)("div",{className:"rounded-md border bg-card p-3 space-y-1.5",children:[(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)(D.A,{className:"h-3.5 w-3.5 text-amber-500 mt-0.5 shrink-0"}),(0,d.jsx)("p",{className:"text-sm font-medium leading-snug flex-1",children:b.title})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed",children:b.why}),(0,d.jsx)(I,{rootId:a,item:b,router:l})]},c))}),c&&(0,d.jsxs)("p",{className:"text-[10px] text-muted-foreground pt-1",children:["Сгенерировано ",function(a){let b=Date.now()-Date.parse(a);if(!Number.isFinite(b)||b<0)return"только что";let c=Math.floor(b/6e4);if(c<1)return"только что";if(c<60)return`${c} мин назад`;let d=Math.floor(c/60);if(d<24)return`${d} ч назад`;let e=Math.floor(d/24);return`${e} дн назад`}(c.generatedAt)," \xb7 модель"," ",(0,d.jsx)("code",{className:"font-mono",children:c.model})]})]})]})}function I({rootId:a,item:b,router:c}){let[f,j]=(0,e.useTransition)(),{action:l}=b;if("none"===l.kind)return null;if("open-topic"===l.kind&&l.target)return(0,d.jsx)(h.$,{asChild:!0,size:"sm",variant:"outline",className:"h-7 text-xs gap-1",children:(0,d.jsxs)(k(),{href:`/roots/${a}/chat/${l.target}`,children:[(0,d.jsx)(E.A,{className:"h-3 w-3"}),l.label]})});if("open-kb"===l.kind&&l.target){let b=l.target.split("/").map(encodeURIComponent).join("/");return(0,d.jsx)(h.$,{asChild:!0,size:"sm",variant:"outline",className:"h-7 text-xs gap-1",children:(0,d.jsxs)(k(),{href:`/roots/${a}/kb/${b}`,children:[(0,d.jsx)(E.A,{className:"h-3 w-3"}),l.label]})})}return"send-message"===l.kind&&l.target?(0,d.jsxs)(h.$,{type:"button",size:"sm",variant:"outline",className:"h-7 text-xs gap-1",onClick:()=>{j(async()=>{try{let b=await (0,G.g)(a,l.target,[],void 0);if(!b.ok)return void g.oR.error(b.error??"Не удалось отправить");(0,i.$d)(i.Zi.topicsChanged(a)),c.push(`/roots/${a}/chat/${b.topicId}`)}catch(a){g.oR.error(a instanceof Error?a.message:String(a))}})},disabled:f,children:[f?(0,d.jsx)(m.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(F.A,{className:"h-3 w-3"}),l.label]}):null}let J=(0,B.A)("LibraryBig",[["rect",{width:"8",height:"18",x:"3",y:"3",rx:"1",key:"oynpb5"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z",key:"1qboyk"}]]);var K=c(30515);let L=(0,y.createServerReference)("6004082faeb76ce3822d9eea5068f65a46405ccc90",y.callServer,void 0,y.findSourceMapURL,"saveWidgetOrderAction"),M=(0,y.createServerReference)("60abbcd71409aa91744adafb8f10127427c0f9cf13",y.callServer,void 0,y.findSourceMapURL,"hideWidgetAction"),N={sm:2,md:3,wide:6},O=["sys:active-goals","sys:pending","sys:recent-kb","sys:ai-suggestions"],P=[{id:"sys:active-goals",title:"Active goals & running agents",description:"Темы с активным /goal и работающим оркестратором."},{id:"sys:pending",title:"Ждут реакции",description:"Карточки permission / question / mcp-add без ответа."},{id:"sys:recent-kb",title:"Свежее в KB",description:"KB-файлы, изменённые за последние 72 часа."},{id:"sys:ai-suggestions",title:"Что дальше — предложения Reflex",description:"Gemini-анализ состояния проекта с действиями."}],Q=(0,y.createServerReference)("70af3cd35863ae458b9637d4da2a18471bac17249a",y.callServer,void 0,y.findSourceMapURL,"setWidgetSizeAction"),R=[{mode:"sm",label:"S",title:"Маленький — 3 в ряд"},{mode:"md",label:"M",title:"Средний — 2 в ряд"},{mode:"wide",label:"W",title:"Широкий — на всю строку"}];function S({rootId:a,widgetId:b,mode:c,onChanged:f}){let[h,i]=(0,e.useTransition)();return(0,d.jsx)("div",{role:"radiogroup","aria-label":"Размер виджета",className:"inline-flex items-center rounded border bg-background/80 backdrop-blur overflow-hidden text-[10px] leading-none",children:R.map(e=>{let j=e.mode===c;return(0,d.jsx)("button",{type:"button",role:"radio","aria-checked":j,"aria-label":e.title,title:e.title,onClick:()=>{var d;(d=e.mode)!==c&&i(async()=>{let c=await Q(a,b,d);if(!c.ok)return void g.oR.error(c.error??"Не удалось");f()})},disabled:h,className:["px-1.5 py-0.5 font-mono transition-colors disabled:opacity-50",j?"bg-violet-600 text-white":"text-muted-foreground hover:bg-accent hover:text-foreground"].join(" "),children:e.label},e.mode)})})}function T(a){let b=N[a];return 2===b?"lg:col-span-2":3===b?"lg:col-span-3":"lg:col-span-6"}let U=(0,B.A)("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);var V=c(54874),W=c(66979),X=c(14425),Y=c(71155),Z=c(57908);let $=(0,y.createServerReference)("787010580697fb93e7de797e95f9d2e312eaf6a361",y.callServer,void 0,y.findSourceMapURL,"patchWidgetDataAction"),_=(0,y.createServerReference)("70c7e01b665aba6b04170acb2586fc53f444000139",y.callServer,void 0,y.findSourceMapURL,"setWidgetRefreshAction"),aa=(0,y.createServerReference)("608bfadaa1155b0b69d0fe8b8ce619449576f0a42e",y.callServer,void 0,y.findSourceMapURL,"refreshWidgetNowAction");function ab({rootId:a,widget:b,mode:c,onHide:f,hiding:h,onLayoutChanged:i,dnd:j}){let[l,m]=(0,e.useTransition)(),n=j.dragging===b.id,q=j.dropTarget===b.id&&!n,r=T(c);return(0,d.jsxs)(p.Zp,{draggable:!0,onDragStart:a=>{a.dataTransfer.effectAllowed="move",a.dataTransfer.setData("text/plain",b.id),j.onDragStart(b.id)},onDragOver:a=>{a.preventDefault(),a.dataTransfer.dropEffect="move",j.dropTarget!==b.id&&j.onDragOver(b.id)},onDrop:a=>{a.preventDefault(),j.onDrop(b.id)},onDragEnd:()=>j.onDragEnd(),className:[r,"transition-all",n?"opacity-50":"",q?"ring-2 ring-violet-400 ring-offset-2 ring-offset-background":""].join(" "),children:[(0,d.jsxs)(p.aR,{className:"pb-2 flex flex-row items-start gap-2 space-y-0",children:[(0,d.jsx)(U,{className:"h-3.5 w-3.5 text-muted-foreground/60 cursor-grab active:cursor-grabbing mt-1 shrink-0","aria-label":"Перетащить"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)(p.ZB,{className:"text-sm flex items-center gap-2 flex-wrap",children:[(0,d.jsx)("span",{className:"truncate",children:b.title}),(0,d.jsx)(o.E,{variant:"outline",className:"text-[10px] font-mono shrink-0",children:b.kind})]}),b.description&&(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground mt-0.5 line-clamp-2",children:b.description})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 -mt-0.5 shrink-0",children:[(0,d.jsx)(S,{rootId:a,widgetId:b.id,mode:c,onChanged:i}),b.sourceTopicId&&(0,d.jsx)(k(),{href:`/roots/${a}/chat/${b.sourceTopicId}`,className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground","aria-label":"Редактировать через топик",title:"Открыть исходный топик для редактирования",children:(0,d.jsx)(V.A,{className:"h-3.5 w-3.5"})}),(0,d.jsx)("button",{type:"button",onClick:()=>m(async()=>{await Promise.resolve(),f(b.id)}),disabled:l||h,"aria-label":"Скрыть",title:"Скрыть (восстановишь из меню \xabбиблиотека виджетов\xbb)",className:"p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive",children:(0,d.jsx)(W.A,{className:"h-3.5 w-3.5"})})]})]}),(0,d.jsxs)(p.Wu,{className:"space-y-3",children:[(0,Z.v)(a,b.kind,b.data,{onPatch:async c=>{let d=await $(a,b.id,c);if(!d.ok)throw g.oR.error(d.error??"Не удалось сохранить"),Error(d.error??"patch failed")}}),(0,d.jsx)(ac,{rootId:a,widget:b})]})]})}function ac({rootId:a,widget:b}){let[c,h]=(0,e.useTransition)(),[i,j]=(0,e.useTransition)(),k=b.refresh??"manual",l=b.lastRefreshAt??b.updatedAt;return b.sourceTopicId?(0,d.jsxs)("div",{className:"flex items-center gap-2 pt-2 border-t text-[11px] text-muted-foreground",children:[(0,d.jsx)(X.A,{className:"h-3 w-3 shrink-0"}),(0,d.jsxs)("span",{className:"shrink-0",children:["обновлено ",function(a){let b=Date.now()-Date.parse(a);if(!Number.isFinite(b)||b<0)return"только что";let c=Math.floor(b/6e4);if(c<1)return"только что";if(c<60)return`${c} мин назад`;let d=Math.floor(c/60);if(d<24)return`${d} ч назад`;let e=Math.floor(d/24);return`${e} дн назад`}(l)]}),(0,d.jsxs)("div",{className:"ml-auto flex items-center gap-1.5 shrink-0",children:[(0,d.jsxs)(Y.l6,{value:k,onValueChange:c=>{j(async()=>{var d;let e=await _(a,b.id,c);e.ok?g.oR.success("manual"===c?"Авто-обновление выключено":`Обновление: ${"hourly"===(d=c)?"раз в час":"daily"===d?"раз в день":"weekly"===d?"раз в неделю":"вручную"}`):g.oR.error(e.error??"Не удалось")})},disabled:i,children:[(0,d.jsx)(Y.bq,{className:"h-6 text-[10px] gap-1 px-1.5 w-auto min-w-[110px]",children:(0,d.jsx)(Y.yv,{})}),(0,d.jsxs)(Y.gC,{children:[(0,d.jsx)(Y.eb,{value:"manual",children:"Вручную"}),(0,d.jsx)(Y.eb,{value:"hourly",children:"Раз в час"}),(0,d.jsx)(Y.eb,{value:"daily",children:"Раз в день"}),(0,d.jsx)(Y.eb,{value:"weekly",children:"Раз в неделю"})]})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>{h(async()=>{let c=await aa(a,b.id);c.ok?g.oR.success("Запустил обновление — следи за исходным топиком"):g.oR.error(c.error??"Не удалось")})},disabled:c,className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 hover:bg-accent text-foreground/80 hover:text-foreground",title:"Обновить сейчас (запустит исходный топик)",children:[(0,d.jsx)(f.A,{className:`h-3 w-3 ${c?"animate-spin":""}`}),"Обновить"]})]})]}):null}var ad=c(75482),ae=c(3442),af=c(97338),ag=c(27456),ah=c(32400);let ai=(0,y.createServerReference)("60971d3709f25a4eb5dccd9fa4e18c431231ac9382",y.callServer,void 0,y.findSourceMapURL,"deleteWidgetAction");function aj({rootId:a,open:b,onOpenChange:c,widgets:e,layout:f,onChanged:g}){if(!b)return null;let i=new Set(f.hidden);return(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",onClick:a=>{a.target===a.currentTarget&&c(!1)},children:[(0,d.jsx)("div",{"aria-hidden":!0,className:"absolute inset-0 bg-background/80 backdrop-blur-sm",onClick:()=>c(!1)}),(0,d.jsxs)("div",{className:"relative bg-card border rounded-lg shadow-xl w-full max-w-2xl max-h-[80vh] flex flex-col",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3 border-b",children:[(0,d.jsx)(J,{className:"h-4 w-4 text-violet-600"}),(0,d.jsx)("h2",{className:"text-sm font-medium flex-1",children:"Библиотека виджетов"}),(0,d.jsx)(h.$,{type:"button",size:"icon",variant:"ghost",className:"h-7 w-7",onClick:()=>c(!1),children:(0,d.jsx)(W.A,{className:"h-4 w-4"})})]}),(0,d.jsx)(ag.F,{className:"flex-1 min-h-0",children:(0,d.jsxs)("div",{className:"p-4 space-y-4",children:[(0,d.jsxs)("section",{className:"space-y-2",children:[(0,d.jsx)("h3",{className:"text-[11px] uppercase tracking-wider text-muted-foreground",children:"Системные виджеты"}),P.map(b=>(0,d.jsx)(ak,{rootId:a,id:b.id,title:b.title,description:b.description,badge:"system",badgeVariant:"default",hidden:i.has(b.id),canDelete:!1,onChanged:g},b.id))]}),(0,d.jsxs)("section",{className:"space-y-2",children:[(0,d.jsxs)("h3",{className:"text-[11px] uppercase tracking-wider text-muted-foreground",children:["Виджеты пользователя (",e.length,")"]}),0===e.length&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Пока нет ни одного — попроси агента в чате что-то создать."}),e.map(b=>(0,d.jsx)(ak,{rootId:a,id:b.id,title:b.title,description:b.description??`kind: ${b.kind}`,badge:b.kind,badgeVariant:"outline",hidden:i.has(b.id),canDelete:!0,onChanged:g},b.id))]})]})})]})]})}function ak({rootId:a,id:b,title:c,description:f,badge:i,badgeVariant:j,hidden:k,canDelete:l,onChanged:m}){let[n,p]=(0,e.useTransition)();return(0,d.jsxs)("div",{className:"flex items-start gap-3 rounded-md border bg-card px-3 py-2",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,d.jsx)("span",{className:"text-sm font-medium truncate",children:c}),(0,d.jsx)(o.E,{variant:j,className:"text-[10px] font-mono",children:i}),k&&(0,d.jsx)(o.E,{variant:"secondary",className:"text-[10px]",children:"скрыт"})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 line-clamp-2",children:f})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,d.jsx)(h.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>{p(async()=>{let c=k?await (0,ah.t)(a,b):await M(a,b);if(!c.ok)return void g.oR.error(c.error);m()})},disabled:n,className:"gap-1 h-7 text-xs",children:k?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(ad.A,{className:"h-3 w-3"}),"Показать"]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(ae.A,{className:"h-3 w-3"}),"Скрыть"]})}),l&&(0,d.jsx)(h.$,{type:"button",size:"icon",variant:"ghost",onClick:()=>{confirm(`Удалить виджет \xab${c}\xbb? Восстановить будет нельзя.`)&&p(async()=>{let c=await ai(a,b);if(!c.ok)return void g.oR.error(c.error);m()})},disabled:n,className:"h-7 w-7 text-muted-foreground hover:text-destructive",title:"Удалить навсегда",children:(0,d.jsx)(af.A,{className:"h-3.5 w-3.5"})})]})]})}function al({rootId:a,widgets:b,layout:c,systemRenderers:f,snapshot:i,onLayoutChanged:j}){let k=(0,e.useMemo)(()=>{let a=new Map;for(let c of b)a.set(c.id,c);return a},[b]),[l,m]=(0,e.useState)(c.order),[n,o]=(0,e.useState)(c.hidden),[,p]=(0,e.useTransition)(),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)(!1);an(c.order,m),an(c.hidden,o);let w=(0,e.useCallback)(b=>{m(b),p(async()=>{let c=await L(a,b);c.ok?(m(c.layout.order),o(c.layout.hidden),j()):g.oR.error(c.error)})},[a,j]),x=(0,e.useCallback)(b=>{m(l.filter(a=>a!==b)),o(a=>[...new Set([b,...a])]),p(async()=>{let c=await M(a,b);if(!c.ok)return void g.oR.error(c.error);m(c.layout.order),o(c.layout.hidden),j()})},[a,l,j]),y={onDragStart:a=>r(a),onDragOver:a=>t(a),onDrop:a=>{if(r(null),t(null),!q||q===a)return;let b=[...l],c=b.indexOf(q),d=b.indexOf(a);c<0||d<0||(b.splice(c,1),b.splice(d,0,q),w(b))},onDragEnd:()=>{r(null),t(null)},dragging:q,dropTarget:s};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-sm font-medium text-muted-foreground uppercase tracking-wider",children:"Виджеты проекта"}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Перетаскивай для сортировки. Скрытые можно вернуть из библиотеки."})]}),(0,d.jsxs)(h.$,{type:"button",size:"sm",variant:"outline",onClick:()=>v(!0),className:"gap-1 h-8",children:[(0,d.jsx)(J,{className:"h-3.5 w-3.5"}),"Библиотека (",n.length," скрытых)"]})]}),0===l.length&&(0,d.jsxs)("div",{className:"rounded-md border border-dashed bg-muted/20 p-6 text-center space-y-2",children:[(0,d.jsxs)("p",{className:"text-sm text-muted-foreground",children:["На дашборде ничего не закреплено. Попроси агента в чате создать виджет — например"," ",(0,d.jsx)("em",{children:"\xabсделай сводку новостей по теме X\xbb"}),"."]}),(0,d.jsxs)(h.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>v(!0),className:"gap-1",children:[(0,d.jsx)(K.A,{className:"h-3 w-3"}),"Восстановить системные"]})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 lg:grid-cols-6 gap-4",children:l.map(b=>{var e;let g=k.get(b),h=c.sizes?.[b]??(e=g?.size,e?.mode?e.mode:e?.cols===1?"sm":e?.cols===2?"md":e?.cols===3?"wide":"md");return O.includes(b)?(0,d.jsx)(am,{rootId:a,id:b,node:f[b],onHide:x,dnd:y,mode:h,onLayoutChanged:j},b):g?(0,d.jsx)(ab,{rootId:a,widget:g,mode:h,onHide:x,hiding:!1,dnd:y,onLayoutChanged:j},b):null})}),(0,d.jsx)(aj,{open:u,onOpenChange:v,rootId:a,widgets:b,layout:{order:l,hidden:n},onChanged:()=>{j()}})]})}function am({rootId:a,id:b,node:c,onHide:e,dnd:f,mode:g,onLayoutChanged:h}){let i=f.dragging===b,j=f.dropTarget===b&&!i,k=T(g);return(0,d.jsxs)("div",{draggable:!0,onDragStart:a=>{a.dataTransfer.effectAllowed="move",a.dataTransfer.setData("text/plain",b),f.onDragStart(b)},onDragOver:a=>{a.preventDefault(),a.dataTransfer.dropEffect="move",f.dropTarget!==b&&f.onDragOver(b)},onDrop:a=>{a.preventDefault(),f.onDrop(b)},onDragEnd:()=>f.onDragEnd(),className:[k,"relative group/sys transition-all",i?"opacity-50":"",j?"ring-2 ring-violet-400 ring-offset-2 ring-offset-background rounded-lg":""].join(" "),children:[c,(0,d.jsxs)("div",{className:"absolute top-2 right-2 opacity-0 group-hover/sys:opacity-100 transition-opacity flex items-center gap-1 bg-background/85 backdrop-blur rounded p-0.5",children:[(0,d.jsx)(S,{rootId:a,widgetId:b,mode:g,onChanged:h}),(0,d.jsx)("button",{type:"button",onClick:()=>e(b),"aria-label":"Скрыть",title:"Скрыть (восстановишь из библиотеки)",className:"p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive",children:"\xd7"})]})]})}function an(a,b){(0,e.useMemo)(()=>{b(a)},[JSON.stringify(a)])}function ao({rootId:a,initialSnapshot:b}){let[c,j]=(0,e.useState)(b),[k,l]=(0,e.useTransition)(),m=(0,e.useCallback)(()=>{l(async()=>{try{let b=await fetch(`/api/roots/${a}/dashboard`,{cache:"no-store"}),c=await b.json();if(!c.ok||!c.snapshot)return void g.oR.error(c.error??"Не удалось обновить дашборд");j(c.snapshot)}catch(a){g.oR.error(a instanceof Error?a.message:String(a))}})},[a]);(0,i.S9)(i.Zi.topicsChanged(a),m),(0,i.S9)(i.Zi.kbChanged(a),m);let n={"sys:active-goals":(0,d.jsx)(q,{rootId:a,activeGoals:c.activeGoals,runningAgents:c.runningAgents}),"sys:pending":(0,d.jsx)(v,{rootId:a,items:c.pendingApprovals}),"sys:recent-kb":(0,d.jsx)(z,{rootId:a,items:c.recentKb}),"sys:ai-suggestions":(0,d.jsx)(H,{rootId:a,cache:c.suggestions})};return(0,d.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:(0,d.jsxs)("div",{className:"p-6 space-y-5 max-w-6xl mx-auto",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-sm font-medium text-muted-foreground uppercase tracking-wider",children:"Обзор проекта"}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Перетаскивай блоки. Скрытые возвращаются из библиотеки. Виджеты создаются и обновляются через чат с агентом."})]}),(0,d.jsxs)(h.$,{type:"button",size:"sm",variant:"ghost",onClick:m,disabled:k,className:"gap-1 h-8",children:[(0,d.jsx)(f.A,{className:`h-3.5 w-3.5 ${k?"animate-spin":""}`}),"Обновить"]})]}),(0,d.jsx)(al,{rootId:a,widgets:c.widgets,layout:c.layout,systemRenderers:n,snapshot:c,onLayoutChanged:m})]})})}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19356:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]])},20567:(a,b,c)=>{"use strict";c.d(b,{AU:()=>j,Z9:()=>i});var d=c(73024);c(76760);var e=c(56149),f=c(54287);let g=e.Ik({watchDebounceMs:e.ai().int().min(f.a,{message:`watchDebounceMs must be ≥ ${f.a} ms`}).default(f.VU),agentBackend:e.k5(["codex","claude-code"]).default("claude-code"),ignoreFile:e.Yj().default(".reflexignore")}),h=g.parse({});async function i(a){let b=(0,f.eQ)(a);try{let a=await d.promises.readFile(b,"utf8");return g.parse(JSON.parse(a))}catch(a){var c;if("object"==typeof(c=a)&&null!==c&&"code"in c&&"ENOENT"===c.code)return h;throw a}}async function j(a,b){await d.promises.mkdir((0,f.FF)(a),{recursive:!0}),await d.promises.writeFile((0,f.eQ)(a),JSON.stringify(b,null,2)+"\n","utf8")}},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27767:(a,b,c)=>{"use strict";c.d(b,{j:()=>e});var d=c(3265);let e=(0,d.createServerReference)("700de833a00b15c9039ff1615816c4afb8c0a4b592",d.callServer,void 0,d.findSourceMapURL,"removeUtilityAction")},28074:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{y:()=>l});var e=c(7206),f=c(73024),g=c(46726),h=c(78744),i=a([e]);e=(i.then?(await i)():i)[0];let k="claude",l={id:"claude-code",async analyzeScope(a){await j(),await f.promises.mkdir(a.reflexScope,{recursive:!0});let b=await (0,h.p)(a),c=["-p",b,"--permission-mode","acceptEdits","--allowedTools","Read,Write,Edit,LS,Glob,Grep","--add-dir",a.reflexScope];a.model&&c.push("--model",a.model),await (0,e.execa)(k,c,{cwd:a.root,stdio:"inherit"})},async chat(a){await j();let b=await (0,h.M)(a);await (0,e.execa)(k,["--append-system-prompt",b,"--add-dir",a.reflexScope],{cwd:a.scope,stdio:"inherit"})}};async function j(){try{await (0,e.execa)(k,["--version"],{stdio:"ignore"})}catch(a){throw new g.g("claude-code",a)}}d()}catch(a){d(a)}})},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31041:(a,b,c)=>{"use strict";c.d(b,{BT:()=>i,Wu:()=>j,ZB:()=>h,Zp:()=>f,aR:()=>g,wL:()=>k});var d=c(64173);c(17240);var e=c(91344);function f({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card",className:(0,e.cn)("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",a),...b})}function g({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-header",className:(0,e.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",a),...b})}function h({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-title",className:(0,e.cn)("leading-none font-semibold",a),...b})}function i({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-description",className:(0,e.cn)("text-sm text-muted-foreground",a),...b})}function j({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-content",className:(0,e.cn)("px-6",a),...b})}function k({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-footer",className:(0,e.cn)("flex items-center px-6 [.border-t]:pt-6",a),...b})}},31421:a=>{"use strict";a.exports=require("node:child_process")},33873:a=>{"use strict";a.exports=require("path")},35314:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{j:()=>h});var e=c(28074),f=c(48519),g=a([e,f]);[e,f]=g.then?(await g)():g;let i={"claude-code":e.y,codex:f.C};function h(a){let b=i[a.agentBackend];if(!b)throw Error(`Unknown agent backend: ${a.agentBackend}`);return b}d()}catch(a){d(a)}})},36306:a=>{"use strict";a.exports=import("@tailwindcss/node")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},44171:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]])},46726:(a,b,c)=>{"use strict";c.d(b,{g:()=>d});class d extends Error{constructor(a,b){super(`Agent backend "${a}" is unavailable: ${b instanceof Error?b.message:String(b)}`),this.name="AgentUnavailableError"}}},47452:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(19963).A)("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]])},48161:a=>{"use strict";a.exports=require("node:os")},48519:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{C:()=>l});var e=c(7206),f=c(73024),g=c(46726),h=c(78744),i=a([e]);e=(i.then?(await i)():i)[0];let k="codex",l={id:"codex",async analyzeScope(a){await j(),await f.promises.mkdir(a.reflexScope,{recursive:!0});let b=await (0,h.p)(a),c=["exec","--cd",a.root,"--sandbox","workspace-write","--add-dir",a.reflexScope];a.model&&c.push("--model",a.model),c.push(b),await (0,e.execa)(k,c,{stdio:"inherit"})},async chat(a){await j();let b=await (0,h.M)(a);await (0,e.execa)(k,["--system",b],{cwd:a.scope,stdio:"inherit"})}};async function j(){try{await (0,e.execa)(k,["--version"],{stdio:"ignore"})}catch(a){throw new g.g("codex",a)}}d()}catch(a){d(a)}})},50108:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{E:()=>m});var e=c(73024),f=c(76760),g=c.n(f),h=c(20567),i=c(35314),j=c(79734),k=c(54287),l=a([i]);async function m(a,b={}){let c=g().resolve(a);await n(c),await e.promises.mkdir((0,k.FF)(c),{recursive:!0});let d=await (0,h.Z9)(c);if(await (0,h.AU)(c,d),await (0,j.D)(c),b.scaffoldOnly)return void process.stdout.write(`Reflex scaffolded at ${(0,k.FF)(c)} (scaffold-only).
|
|
1
|
+
(()=>{var a={};a.id=8138,a.ids=[8138],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},574:(a,b,c)=>{"use strict";c.d(b,{AddUtilityButton:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call AddUtilityButton() from the server but AddUtilityButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/app/roots/[id]/_components/add-utility-button.tsx","AddUtilityButton")},770:(a,b,c)=>{"use strict";c.d(b,{RunInitButton:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call RunInitButton() from the server but RunInitButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/app/roots/[id]/_components/run-init-button.tsx","RunInitButton")},1708:a=>{"use strict";a.exports=require("node:process")},1800:(a,b,c)=>{Promise.resolve().then(c.bind(c,73182)),Promise.resolve().then(c.bind(c,83866)),Promise.resolve().then(c.bind(c,5906)),Promise.resolve().then(c.bind(c,15620)),Promise.resolve().then(c.bind(c,44516)),Promise.resolve().then(c.bind(c,35481)),Promise.resolve().then(c.bind(c,68394)),Promise.resolve().then(c.bind(c,51189)),Promise.resolve().then(c.bind(c,66180)),Promise.resolve().then(c.bind(c,75266)),Promise.resolve().then(c.bind(c,14360)),Promise.resolve().then(c.bind(c,6786)),Promise.resolve().then(c.bind(c,44896)),Promise.resolve().then(c.bind(c,14848)),Promise.resolve().then(c.bind(c,53710)),Promise.resolve().then(c.bind(c,30544)),Promise.resolve().then(c.bind(c,13829)),Promise.resolve().then(c.bind(c,90044)),Promise.resolve().then(c.bind(c,57673)),Promise.resolve().then(c.bind(c,97053)),Promise.resolve().then(c.bind(c,43151)),Promise.resolve().then(c.bind(c,12156)),Promise.resolve().then(c.bind(c,71615)),Promise.resolve().then(c.bind(c,4080)),Promise.resolve().then(c.bind(c,87177)),Promise.resolve().then(c.bind(c,87634)),Promise.resolve().then(c.bind(c,6912)),Promise.resolve().then(c.bind(c,13976)),Promise.resolve().then(c.bind(c,18282)),Promise.resolve().then(c.bind(c,20633)),Promise.resolve().then(c.bind(c,61193)),Promise.resolve().then(c.bind(c,66188)),Promise.resolve().then(c.bind(c,66643)),Promise.resolve().then(c.bind(c,81669)),Promise.resolve().then(c.bind(c,39991)),Promise.resolve().then(c.bind(c,54972)),Promise.resolve().then(c.t.bind(c,1056,23))},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},3442:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]])},4984:a=>{"use strict";a.exports=require("readline")},5906:(a,b,c)=>{"use strict";c.d(b,{AddUtilityButton:()=>x});var d=c(64173),e=c(17240),f=c(1056),g=c.n(f),h=c(87671),i=c(97162);let j=(0,c(42557).A)("CircleArrowUp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]);var k=c(66979),l=c(62261),m=c(65177),n=c(97338),o=c(12619),p=c(44171),q=c(44052),r=c(20583);c(95518);var s=c(3265);s.callServer,s.findSourceMapURL;let t=(0,s.createServerReference)("40d543f91f3e2e8944f6d5e3ad444553ae91c634e5",s.callServer,void 0,s.findSourceMapURL,"applyUtilityUpdateAction");var u=c(91899),v=c(60595),w=c(88724);function x({rootId:a,installed:b}){let[c,f]=(0,e.useState)(!1),[s,x]=(0,e.useState)([]),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useTransition)(),[E,F]=(0,e.useState)([]),G=(0,e.useRef)(null),H=(0,h.useRouter)(),I=new Set(b.map(a=>a.id)),J=b.filter(a=>"project"===a.scope),K=new Map(E.map(a=>[a.id,a]));return(0,d.jsxs)("div",{className:"relative",ref:G,children:[(0,d.jsxs)(r.$,{type:"button",variant:"ghost",size:"sm",className:"gap-1",onClick:()=>f(a=>!a),title:"Установленные + каталог",children:[(0,d.jsx)(i.A,{className:"h-4 w-4"}),"Утилиты",J.length>0&&(0,d.jsx)("span",{className:"ml-1 text-[10px] rounded-full bg-violet-100 text-violet-700 px-1.5",children:J.length}),E.length>0&&(0,d.jsxs)("span",{className:"ml-0.5 text-[10px] rounded-full bg-amber-100 text-amber-800 px-1.5 inline-flex items-center gap-0.5",title:`Обновлений: ${E.length}`,children:[(0,d.jsx)(j,{className:"h-2.5 w-2.5"}),E.length]})]}),c&&(0,d.jsxs)("div",{className:"absolute right-0 top-full mt-1 z-30 w-[440px] max-h-[75vh] overflow-y-auto rounded-lg border bg-popover shadow-lg",children:[(0,d.jsxs)("div",{className:"sticky top-0 bg-popover flex items-center gap-2 px-3 py-2 border-b",children:[(0,d.jsx)(i.A,{className:"h-3.5 w-3.5 text-violet-600"}),(0,d.jsx)("span",{className:"text-xs font-medium",children:"Мини-приложения"}),(0,d.jsx)("button",{type:"button",onClick:()=>f(!1),className:"ml-auto p-0.5 rounded hover:bg-accent",children:(0,d.jsx)(k.A,{className:"h-3 w-3"})})]}),J.length>0&&(0,d.jsxs)("section",{className:"p-2 border-b",children:[(0,d.jsx)("div",{className:"px-1 text-[10px] uppercase tracking-wider text-muted-foreground mb-1.5",children:"Установлены в этом проекте"}),(0,d.jsx)("ul",{className:"space-y-1",children:J.map(b=>{let c=K.get(b.id);return(0,d.jsxs)("li",{className:"flex items-center gap-1.5 rounded-md border bg-card px-2 py-1.5 text-xs",children:[(0,d.jsxs)("span",{className:"flex-1 min-w-0",children:[(0,d.jsx)("div",{className:"truncate font-medium",children:b.name}),c&&(0,d.jsxs)("div",{className:"text-[10px] text-amber-700 inline-flex items-center gap-0.5",children:[(0,d.jsx)(j,{className:"h-2.5 w-2.5"}),c.currentVersion," → ",c.latestVersion]})]}),c&&(0,d.jsxs)("button",{type:"button",onClick:()=>{B(c.id),D(async()=>{let b=await t({...c,rootId:a});if(B(null),!b.ok)return void q.oR.error(b.error);q.oR.success(`\xab${c.name}\xbb обновлено: ${c.currentVersion} → ${b.newVersion}`),F(a=>a.filter(a=>a.id!==c.id)),(0,w.$d)(w.Zi.kbChanged(a)),H.refresh()})},disabled:C&&A===b.id,className:"text-[11px] rounded bg-amber-600 px-2 py-1 text-white hover:bg-amber-700 disabled:opacity-50 inline-flex items-center gap-0.5",title:"Применить обновление",children:[C&&A===b.id?(0,d.jsx)(l.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(j,{className:"h-3 w-3"}),"Обновить"]}),(0,d.jsx)(g(),{href:`/utilities/${b.scope}/${b.id}?rootId=${encodeURIComponent(a)}`,className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground",title:"Открыть",children:(0,d.jsx)(m.A,{className:"h-3 w-3"})}),(0,d.jsx)("button",{type:"button",onClick:()=>{confirm(`Удалить \xab${b.name}\xbb? Виджет-карточка пропадёт, данные в KB останутся.`)&&(B(b.id),D(async()=>{let c=await (0,v.j)(b.scope,b.id,"project"===b.scope?a:void 0);if(B(null),!c.ok)return void q.oR.error(c.error??"Не удалось удалить");q.oR.success(`\xab${b.name}\xbb удалено`),(0,w.$d)(w.Zi.kbChanged(a)),H.refresh()}))},disabled:C&&A===b.id,className:"p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive disabled:opacity-50",title:"Удалить из проекта",children:C&&A===b.id?(0,d.jsx)(l.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(n.A,{className:"h-3 w-3"})})]},b.id)})})]}),(0,d.jsxs)("section",{className:"p-2",children:[(0,d.jsx)("div",{className:"px-1 text-[10px] uppercase tracking-wider text-muted-foreground mb-1.5",children:"Каталог"}),y?(0,d.jsxs)("div",{className:"px-2 py-4 text-xs text-muted-foreground flex items-center gap-1.5",children:[(0,d.jsx)(l.A,{className:"h-3 w-3 animate-spin"}),"Загружаю…"]}):0===s.length?(0,d.jsx)("p",{className:"px-2 py-4 text-xs text-muted-foreground",children:"Каталог пуст."}):(0,d.jsx)("ul",{className:"space-y-1",children:s.map(b=>{let c=I.has(b.id),e=A===b.id&&C;return(0,d.jsx)("li",{className:"rounded-md border bg-card px-2 py-2",children:(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)("span",{className:"text-xl leading-none",children:b.emoji}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"font-medium text-sm",children:b.name}),(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground leading-snug",children:b.description})]}),c?(0,d.jsxs)("span",{className:"text-[10px] text-emerald-700 inline-flex items-center gap-0.5",children:[(0,d.jsx)(o.A,{className:"h-3 w-3"})," уже"]}):(0,d.jsxs)("button",{type:"button",onClick:()=>{B(b.id),D(async()=>{let c=b.suggestedScope??"global",d=await (0,u.g)({github:b.github,scope:c,..."project"===c?{rootId:a}:{}});if(B(null),!d.ok)return void q.oR.error(d.error);q.oR.success(`\xab${b.name}\xbb установлено в проект`),(0,w.$d)(w.Zi.kbChanged(a)),H.refresh()})},disabled:e||C,className:"text-[11px] rounded bg-violet-600 px-2 py-1 text-white hover:bg-violet-700 disabled:opacity-50 inline-flex items-center gap-0.5",children:[e?(0,d.jsx)(l.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(p.A,{className:"h-3 w-3"}),"Добавить"]})]})},b.id)})})]})]})]})}},6921:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"001d6bd22e44b40fae8b2ed6dfcf1b7c662abe32b9":()=>k.Zl,"00205dd3a78b877eccb1c06dbaf6deed41ca1c9b5f":()=>j.L8,"005ba16605351ef37bf943e347d6c34d4cb9e4f6f2":()=>k.Nt,"0063e3fe3db49022c4ce35640dada850406cc92dac":()=>k.Ng,"008e4879b6f27ca2c4e107002e41f7eb0f1ed7c90a":()=>l.Bp,"00c4dd5ad3f6a6d3acc9fc62525e6208af5cec768d":()=>k.Fm,"00d7ad916a5eee3d1c0bacec7ea65c9bc6903053a8":()=>p.w,"00f3369b4cf55940a301292a6c9f77f00b837d7dc3":()=>g.i,"00f43319a47776a4a3c2e55e86fc99720faceeb954":()=>n.wd,"4007abcd80a105f87ec8d56c6bdaf7b2fb77a062ea":()=>j.Is,"401f487f7fef5749035080e30c823f50f1d8a1a59d":()=>h.MU,"4039fb0524db14f34e5ebafa2546a475a077d600d8":()=>l.QR,"403e02c0908168bbaab9e23448c60b610c74150b60":()=>i.hN,"404e15707f543461e42683043e35be3213160191b4":()=>j.ns,"40542a694458a4348c3281c06090a935360ab32c3e":()=>i.IK,"405799ec9d53b8cf23bdf36ceba44245da6e051e45":()=>i.Cz,"40592e91ff6e45bcd5a1659a170d69ea7f0bbb3bae":()=>i.uA,"405c3936f712954bcba498885697fd919a76a2de87":()=>q.rg,"405f0143d37a718a80ca822d2f14b2c1e4b0fd205e":()=>f.z,"405f5fc018f977c92bc52c2c94ffb3e14b535d81f2":()=>n.LL,"40640b5c376f4e58a91f76b3864c5477669c380374":()=>l.Yt,"406f7a98b1cdd03b0ab07b96ae7577222256361bf9":()=>l.vv,"40729fee0b648778245f7a6709f7c4ccc259488c27":()=>q.K9,"4075232db6aad928e0355986924b823b206832fe45":()=>l.JR,"40851e8b21d58902401ed652c8663f82de37e311cc":()=>l.nO,"409b4771850f013b0e95b713f58102dcdd65882bb2":()=>l.L_,"409ccdac19b10aed97024dc752228dd6e45a7801e7":()=>h.$z,"409f4b5447b4175cc96d5a403d470e05b0b0241e3e":()=>f.u,"40ad82cda51b6986682b8790170d0d1158ae318a95":()=>e.nC,"40b3a6f621f4dd0fbeff9986b0838ffb0661f93915":()=>e.nY,"40b6381aa08307dd0260cb19bb14f3cf6bcf974fd3":()=>l.RK,"40b8b2ef963c1adccd0cfff4db49344a7b936b2c81":()=>l.b7,"40bb1909b905c51b2ab17d4dee4580d20541a22893":()=>l.k_,"40c0c739a96e9af251ea65dd4dd424c7b3d04dc59d":()=>l.Kt,"40d543f91f3e2e8944f6d5e3ad444553ae91c634e5":()=>l.mR,"40e2f1b135a7da2a8b5e7044fbf5562244ea06ff26":()=>k.bt,"40f2c64e393291732bf646c0b148da22d27e964d0e":()=>l.Zh,"40fedabc5057fbaea698aaf66b3375e51c17850be6":()=>l.gn,"602464c9053e872e7146aa579075ab44484769b611":()=>n.b2,"602745b2acf3c79e0d43bb207a5e3e29a4beaa0975":()=>o.cl,"603b3e77316c66236e2c5db8d0eec00211b85d8a06":()=>n.ZC,"604b56de13ab03bf76f6600d45c308c3ae97c0a237":()=>o.hL,"60681eadfe3a4aa0423c1ab3767d719fa648f63751":()=>o.tT,"606e7cf2122db462d430d65fafa8b5d27f7da3a365":()=>m.S,"6088dc80fc2c31530032d0b8e6b595168eea8f4426":()=>o.Aq,"60a041d99708051ecf6bcc418197569ba8bf117c4e":()=>n.qO,"60b4f72bcb952e914e8802506eecd520bde5b45f71":()=>e.OQ,"60c3bccb449185eaecf50bf553a1712933a9c705bf":()=>e.L4,"60e06c293b9ecc3a0f532d291db1d7eee23b6f58fa":()=>h.Tc,"60ebeba2342ab3a0d3368fc7e7ed32a366a33ed3e5":()=>o.KV,"60ff3df4e3ad497a54503ca5fe7b383589e370223c":()=>e.T$,"7015f37d0d452574f6982795ff3a4225c5be485096":()=>l.i8,"705b366fdeeccf4cc3ca8ecd77c55c6120ede801cf":()=>l.q_,"705cae1bd860b36a91e605550dde7411c85bf1cadf":()=>l.QI,"708dcc45d46350264144b1174a5c785ce551df32be":()=>e.h$,"70d9b7413000bd4ea89bd848248c11d0ea1be5524f":()=>l.jf,"70e8979c52bd5b212b3aafe7c4e2a7d581b98310c1":()=>o.mm,"70f83c0d6770af4b5ba243be9936a673972a2c391d":()=>q.Ik,"70fe9909df9cd5cfd2c9c80004e18af9097024da04":()=>o.Mh,"785d105fe4cdea0b27e02ecbec12f88d28a6ef1ecf":()=>e.g3,"787b42963dd89e5a903cc3f5972c7fac1554c1d0b5":()=>o.ru});var e=c(13415),f=c(3890),g=c(50995),h=c(15754),i=c(27129),j=c(16856),k=c(92814),l=c(9328),m=c(4168),n=c(72901),o=c(34639),p=c(48272),q=c(78645),r=a([e,h,l,n,o,q]);[e,h,l,n,o,q]=r.then?(await r)():r,d()}catch(a){d(a)}})},7206:a=>{"use strict";a.exports=import("execa")},8086:a=>{"use strict";a.exports=require("module")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14952:(a,b,c)=>{Promise.resolve().then(c.bind(c,86673)),Promise.resolve().then(c.bind(c,16805)),Promise.resolve().then(c.bind(c,574)),Promise.resolve().then(c.bind(c,90558)),Promise.resolve().then(c.bind(c,64845)),Promise.resolve().then(c.bind(c,770)),Promise.resolve().then(c.bind(c,60524)),Promise.resolve().then(c.bind(c,50155)),Promise.resolve().then(c.bind(c,26922)),Promise.resolve().then(c.bind(c,79008)),Promise.resolve().then(c.bind(c,68146)),Promise.resolve().then(c.bind(c,60936)),Promise.resolve().then(c.bind(c,65138)),Promise.resolve().then(c.bind(c,68902)),Promise.resolve().then(c.bind(c,69644)),Promise.resolve().then(c.bind(c,49186)),Promise.resolve().then(c.bind(c,93099)),Promise.resolve().then(c.bind(c,83594)),Promise.resolve().then(c.bind(c,24375)),Promise.resolve().then(c.bind(c,67135)),Promise.resolve().then(c.bind(c,85105)),Promise.resolve().then(c.bind(c,41886)),Promise.resolve().then(c.bind(c,33309)),Promise.resolve().then(c.bind(c,37550)),Promise.resolve().then(c.bind(c,96623)),Promise.resolve().then(c.bind(c,77372)),Promise.resolve().then(c.bind(c,65478)),Promise.resolve().then(c.bind(c,97230)),Promise.resolve().then(c.bind(c,73552)),Promise.resolve().then(c.bind(c,391)),Promise.resolve().then(c.bind(c,4235)),Promise.resolve().then(c.bind(c,41138)),Promise.resolve().then(c.bind(c,60877)),Promise.resolve().then(c.bind(c,7671)),Promise.resolve().then(c.bind(c,5637)),Promise.resolve().then(c.bind(c,36786)),Promise.resolve().then(c.t.bind(c,20594,23))},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19356:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]])},20567:(a,b,c)=>{"use strict";c.d(b,{AU:()=>j,Z9:()=>i});var d=c(73024);c(76760);var e=c(56149),f=c(54287);let g=e.Ik({watchDebounceMs:e.ai().int().min(f.a,{message:`watchDebounceMs must be ≥ ${f.a} ms`}).default(f.VU),agentBackend:e.k5(["codex","claude-code"]).default("claude-code"),ignoreFile:e.Yj().default(".reflexignore")}),h=g.parse({});async function i(a){let b=(0,f.eQ)(a);try{let a=await d.promises.readFile(b,"utf8");return g.parse(JSON.parse(a))}catch(a){var c;if("object"==typeof(c=a)&&null!==c&&"code"in c&&"ENOENT"===c.code)return h;throw a}}async function j(a,b){await d.promises.mkdir((0,f.FF)(a),{recursive:!0}),await d.promises.writeFile((0,f.eQ)(a),JSON.stringify(b,null,2)+"\n","utf8")}},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28074:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{y:()=>l});var e=c(7206),f=c(73024),g=c(46726),h=c(78744),i=a([e]);e=(i.then?(await i)():i)[0];let k="claude",l={id:"claude-code",async analyzeScope(a){await j(),await f.promises.mkdir(a.reflexScope,{recursive:!0});let b=await (0,h.p)(a),c=["-p",b,"--permission-mode","acceptEdits","--allowedTools","Read,Write,Edit,LS,Glob,Grep","--add-dir",a.reflexScope];a.model&&c.push("--model",a.model),await (0,e.execa)(k,c,{cwd:a.root,stdio:"inherit"})},async chat(a){await j();let b=await (0,h.M)(a);await (0,e.execa)(k,["--append-system-prompt",b,"--add-dir",a.reflexScope],{cwd:a.scope,stdio:"inherit"})}};async function j(){try{await (0,e.execa)(k,["--version"],{stdio:"ignore"})}catch(a){throw new g.g("claude-code",a)}}d()}catch(a){d(a)}})},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31041:(a,b,c)=>{"use strict";c.d(b,{BT:()=>i,Wu:()=>j,ZB:()=>h,Zp:()=>f,aR:()=>g,wL:()=>k});var d=c(64173);c(17240);var e=c(91344);function f({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card",className:(0,e.cn)("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",a),...b})}function g({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-header",className:(0,e.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",a),...b})}function h({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-title",className:(0,e.cn)("leading-none font-semibold",a),...b})}function i({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-description",className:(0,e.cn)("text-sm text-muted-foreground",a),...b})}function j({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-content",className:(0,e.cn)("px-6",a),...b})}function k({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-footer",className:(0,e.cn)("flex items-center px-6 [.border-t]:pt-6",a),...b})}},31421:a=>{"use strict";a.exports=require("node:child_process")},33873:a=>{"use strict";a.exports=require("path")},35314:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{j:()=>h});var e=c(28074),f=c(48519),g=a([e,f]);[e,f]=g.then?(await g)():g;let i={"claude-code":e.y,codex:f.C};function h(a){let b=i[a.agentBackend];if(!b)throw Error(`Unknown agent backend: ${a.agentBackend}`);return b}d()}catch(a){d(a)}})},35481:(a,b,c)=>{"use strict";c.d(b,{RunInitButton:()=>m});var d=c(64173),e=c(17240),f=c(62261),g=c(52869),h=c(44052),i=c(20583),j=c(3265);let k=(0,j.createServerReference)("70f83c0d6770af4b5ba243be9936a673972a2c391d",j.callServer,void 0,j.findSourceMapURL,"runInitAction");var l=c(88724);function m({rootPath:a,rootId:b}){let[c,j]=(0,e.useTransition)();return(0,d.jsx)(i.$,{onClick:()=>j(async()=>{let c=h.oR.loading("Running agent — this can take a minute or two…"),d=await k(a,b,!1);h.oR.dismiss(c),d.ok?(h.oR.success("Init complete"),(0,l.$d)(l.Zi.kbChanged(b)),(0,l.$d)(l.Zi.rootsChanged)):h.oR.error(d.error??"Init failed")}),disabled:c,children:c?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.A,{className:"mr-2 h-4 w-4 animate-spin"})," Running…"]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.A,{className:"mr-2 h-4 w-4"})," Run init"]})})}},36306:a=>{"use strict";a.exports=import("@tailwindcss/node")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},44171:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]])},44516:(a,b,c)=>{"use strict";c.d(b,{Dashboard:()=>ao});var d=c(64173),e=c(17240),f=c(63351),g=c(44052),h=c(20583),i=c(88724),j=c(1056),k=c.n(j),l=c(75430),m=c(62261),n=c(19356),o=c(42382),p=c(31041);function q({rootId:a,activeGoals:b,runningAgents:c}){let e=b.length+c.length;return(0,d.jsxs)(p.Zp,{children:[(0,d.jsxs)(p.aR,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[(0,d.jsxs)(p.ZB,{className:"text-sm flex items-center gap-2",children:[(0,d.jsx)(l.A,{className:"h-4 w-4 text-violet-600"}),"Active goals & running agents"]}),e>0&&(0,d.jsx)(o.E,{variant:"secondary",className:"text-[10px]",children:e})]}),(0,d.jsxs)(p.Wu,{className:"space-y-2",children:[0===e&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Нет активных целей и работающих агентов."}),b.map(b=>(0,d.jsx)(k(),{href:`/roots/${a}/chat/${b.topicId}`,className:"block rounded-md border bg-card hover:bg-accent/40 transition px-3 py-2",children:(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)(l.A,{className:"h-3.5 w-3.5 text-violet-600 mt-0.5 shrink-0"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-medium truncate flex-1 min-w-0",children:b.topicTitle}),b.running&&(0,d.jsx)(m.A,{className:"h-3 w-3 animate-spin text-violet-600 shrink-0"})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 line-clamp-2",children:b.goal}),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-1 text-[10px] text-muted-foreground",children:[(0,d.jsxs)("span",{children:["итерация ",b.goalIterations]}),(0,d.jsx)("span",{children:"\xb7"}),(0,d.jsxs)("span",{children:["обновлено ",function(a){let b=Date.now()-Date.parse(a);if(!Number.isFinite(b)||b<0)return"только что";let c=Math.floor(b/6e4);if(c<1)return"только что";if(c<60)return`${c} мин назад`;let d=Math.floor(c/60);if(d<24)return`${d} ч назад`;let e=Math.floor(d/24);return`${e} дн назад`}(b.updatedAt)]})]})]})]})},b.topicId)),c.map(b=>(0,d.jsx)(k(),{href:`/roots/${a}/chat/${b.topicId}`,className:"block rounded-md border bg-card hover:bg-accent/40 transition px-3 py-2",children:(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)(n.A,{className:"h-3.5 w-3.5 text-amber-600 mt-0.5 shrink-0"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1 flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-medium truncate flex-1 min-w-0",children:b.topicTitle}),(0,d.jsx)(m.A,{className:"h-3 w-3 animate-spin text-amber-600 shrink-0"}),(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground",children:"агент работает"})]})]})},b.topicId))]})]})}var r=c(74868),s=c(42324),t=c(63387),u=c(33120);function v({rootId:a,items:b}){return(0,d.jsxs)(p.Zp,{children:[(0,d.jsxs)(p.aR,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[(0,d.jsxs)(p.ZB,{className:"text-sm flex items-center gap-2",children:[(0,d.jsx)(r.A,{className:"h-4 w-4 text-amber-600"}),"Ждут реакции"]}),b.length>0&&(0,d.jsx)(o.E,{variant:"secondary",className:"text-[10px]",children:b.length})]}),(0,d.jsxs)(p.Wu,{className:"space-y-2",children:[0===b.length&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Ничего не висит — все вопросы и одобрения отвечены."}),b.map(b=>{var c;return(0,d.jsx)(k(),{href:`/roots/${a}/chat/${b.topicId}`,className:"block rounded-md border bg-card hover:bg-accent/40 transition px-3 py-2",children:(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)(w,{kind:b.kind}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-medium truncate flex-1 min-w-0",children:b.summary}),(0,d.jsx)(o.E,{variant:"outline",className:"text-[10px] shrink-0",children:"permission"===(c=b.kind)?"permission":"question"===c?"question":"mcp-add"})]}),b.details&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 line-clamp-2",children:b.details}),(0,d.jsxs)("div",{className:"text-[10px] text-muted-foreground mt-1",children:["topic ",b.topicId.slice(0,12)," \xb7 ",function(a){let b=Date.now()-Date.parse(a);if(!Number.isFinite(b)||b<0)return"только что";let c=Math.floor(b/6e4);if(c<1)return"только что";if(c<60)return`${c} мин назад`;let d=Math.floor(c/60);if(d<24)return`${d} ч назад`;let e=Math.floor(d/24);return`${e} дн назад`}(b.ts)]})]})]})},`${b.kind}:${b.requestId}`)})]})]})}function w({kind:a}){let b="h-3.5 w-3.5 mt-0.5 shrink-0";return"permission"===a?(0,d.jsx)(s.A,{className:`${b} text-rose-600`}):"question"===a?(0,d.jsx)(t.A,{className:`${b} text-sky-600`}):(0,d.jsx)(u.A,{className:`${b} text-emerald-600`})}var x=c(68669),y=c(3265);function z({rootId:a,items:b}){let[c,f]=(0,e.useState)({});return(0,d.jsxs)(p.Zp,{children:[(0,d.jsxs)(p.aR,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[(0,d.jsxs)(p.ZB,{className:"text-sm flex items-center gap-2",children:[(0,d.jsx)(x.A,{className:"h-4 w-4 text-emerald-700"}),"Свежее в KB"]}),b.length>0&&(0,d.jsx)(o.E,{variant:"secondary",className:"text-[10px]",children:b.length})]}),(0,d.jsxs)(p.Wu,{className:"space-y-2",children:[0===b.length&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"За последние 72 часа никто не писал в KB."}),b.map(b=>(0,d.jsx)(k(),{href:`/roots/${a}/kb/${b.rel.split("/").map(encodeURIComponent).join("/")}`,className:"block rounded-md border bg-card hover:bg-accent/40 transition px-3 py-2",children:(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)(x.A,{className:"h-3.5 w-3.5 mt-0.5 shrink-0 text-emerald-700"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-medium truncate flex-1 min-w-0",children:b.title}),b.kind&&(0,d.jsx)(o.E,{variant:"outline",className:"text-[10px] shrink-0",children:b.kind})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 line-clamp-2",children:c[b.rel]??b.rel}),(0,d.jsxs)("div",{className:"text-[10px] text-muted-foreground mt-1",children:[function(a){let b=Date.now()-Date.parse(a);if(!Number.isFinite(b)||b<0)return"только что";let c=Math.floor(b/6e4);if(c<1)return"только что";if(c<60)return`${c} мин назад`;let d=Math.floor(c/60);if(d<24)return`${d} ч назад`;let e=Math.floor(d/24);return`${e} дн назад`}(b.modifiedAt)," \xb7 ",(0,d.jsx)("span",{className:"font-mono",children:b.rel})]})]})]})},b.rel))]})]})}y.callServer,y.findSourceMapURL;var A=c(87671),B=c(42557);let C=(0,B.A)("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);var D=c(69552),E=c(62481),F=c(73569),G=c(5367);function H({rootId:a,cache:b}){let[c,i]=(0,e.useState)(b),[j,k]=(0,e.useTransition)(),l=(0,A.useRouter)(),n=c&&Date.now()-Date.parse(c.generatedAt)>864e5;return(0,d.jsxs)(p.Zp,{className:"lg:col-span-2",children:[(0,d.jsxs)(p.aR,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[(0,d.jsxs)(p.ZB,{className:"text-sm flex items-center gap-2",children:[(0,d.jsx)(C,{className:"h-4 w-4 text-amber-500"}),"Что дальше — предложения Reflex",n&&(0,d.jsx)(o.E,{variant:"outline",className:"text-[10px]",children:"устарело"})]}),(0,d.jsxs)(h.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>{k(async()=>{try{let b=await fetch(`/api/roots/${a}/suggestions`,{method:"POST",cache:"no-store"}),c=await b.json();if(!c.ok)return void g.oR.error(c.error??"Не удалось перегенерировать");c.cache&&i(c.cache)}catch(a){g.oR.error(a instanceof Error?a.message:String(a))}})},disabled:j,className:"gap-1 h-7 text-xs",children:[j?(0,d.jsx)(m.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(f.A,{className:"h-3 w-3"}),"Пересчитать"]})]}),(0,d.jsxs)(p.Wu,{className:"space-y-2",children:[!c&&!j&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Нажми \xabПересчитать\xbb, чтобы получить 2-4 идеи о том, что стоит сделать в проекте дальше. Использует quick-модель из Settings."}),c&&0===c.items.length&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Модель не нашла ничего срочного — попробуй позже."}),(0,d.jsx)("div",{className:"grid gap-2 md:grid-cols-2",children:c?.items.map((b,c)=>(0,d.jsxs)("div",{className:"rounded-md border bg-card p-3 space-y-1.5",children:[(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)(D.A,{className:"h-3.5 w-3.5 text-amber-500 mt-0.5 shrink-0"}),(0,d.jsx)("p",{className:"text-sm font-medium leading-snug flex-1",children:b.title})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed",children:b.why}),(0,d.jsx)(I,{rootId:a,item:b,router:l})]},c))}),c&&(0,d.jsxs)("p",{className:"text-[10px] text-muted-foreground pt-1",children:["Сгенерировано ",function(a){let b=Date.now()-Date.parse(a);if(!Number.isFinite(b)||b<0)return"только что";let c=Math.floor(b/6e4);if(c<1)return"только что";if(c<60)return`${c} мин назад`;let d=Math.floor(c/60);if(d<24)return`${d} ч назад`;let e=Math.floor(d/24);return`${e} дн назад`}(c.generatedAt)," \xb7 модель"," ",(0,d.jsx)("code",{className:"font-mono",children:c.model})]})]})]})}function I({rootId:a,item:b,router:c}){let[f,j]=(0,e.useTransition)(),{action:l}=b;if("none"===l.kind)return null;if("open-topic"===l.kind&&l.target)return(0,d.jsx)(h.$,{asChild:!0,size:"sm",variant:"outline",className:"h-7 text-xs gap-1",children:(0,d.jsxs)(k(),{href:`/roots/${a}/chat/${l.target}`,children:[(0,d.jsx)(E.A,{className:"h-3 w-3"}),l.label]})});if("open-kb"===l.kind&&l.target){let b=l.target.split("/").map(encodeURIComponent).join("/");return(0,d.jsx)(h.$,{asChild:!0,size:"sm",variant:"outline",className:"h-7 text-xs gap-1",children:(0,d.jsxs)(k(),{href:`/roots/${a}/kb/${b}`,children:[(0,d.jsx)(E.A,{className:"h-3 w-3"}),l.label]})})}return"send-message"===l.kind&&l.target?(0,d.jsxs)(h.$,{type:"button",size:"sm",variant:"outline",className:"h-7 text-xs gap-1",onClick:()=>{j(async()=>{try{let b=await (0,G.g)(a,l.target,[],void 0);if(!b.ok)return void g.oR.error(b.error??"Не удалось отправить");(0,i.$d)(i.Zi.topicsChanged(a)),c.push(`/roots/${a}/chat/${b.topicId}`)}catch(a){g.oR.error(a instanceof Error?a.message:String(a))}})},disabled:f,children:[f?(0,d.jsx)(m.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(F.A,{className:"h-3 w-3"}),l.label]}):null}let J=(0,B.A)("LibraryBig",[["rect",{width:"8",height:"18",x:"3",y:"3",rx:"1",key:"oynpb5"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z",key:"1qboyk"}]]);var K=c(30515);let L=(0,y.createServerReference)("6088dc80fc2c31530032d0b8e6b595168eea8f4426",y.callServer,void 0,y.findSourceMapURL,"saveWidgetOrderAction"),M=(0,y.createServerReference)("604b56de13ab03bf76f6600d45c308c3ae97c0a237",y.callServer,void 0,y.findSourceMapURL,"hideWidgetAction"),N={sm:2,md:3,wide:6},O=["sys:active-goals","sys:pending","sys:recent-kb","sys:ai-suggestions"],P=[{id:"sys:active-goals",title:"Active goals & running agents",description:"Темы с активным /goal и работающим оркестратором."},{id:"sys:pending",title:"Ждут реакции",description:"Карточки permission / question / mcp-add без ответа."},{id:"sys:recent-kb",title:"Свежее в KB",description:"KB-файлы, изменённые за последние 72 часа."},{id:"sys:ai-suggestions",title:"Что дальше — предложения Reflex",description:"Gemini-анализ состояния проекта с действиями."}],Q=(0,y.createServerReference)("70fe9909df9cd5cfd2c9c80004e18af9097024da04",y.callServer,void 0,y.findSourceMapURL,"setWidgetSizeAction"),R=[{mode:"sm",label:"S",title:"Маленький — 3 в ряд"},{mode:"md",label:"M",title:"Средний — 2 в ряд"},{mode:"wide",label:"W",title:"Широкий — на всю строку"}];function S({rootId:a,widgetId:b,mode:c,onChanged:f}){let[h,i]=(0,e.useTransition)();return(0,d.jsx)("div",{role:"radiogroup","aria-label":"Размер виджета",className:"inline-flex items-center rounded border bg-background/80 backdrop-blur overflow-hidden text-[10px] leading-none",children:R.map(e=>{let j=e.mode===c;return(0,d.jsx)("button",{type:"button",role:"radio","aria-checked":j,"aria-label":e.title,title:e.title,onClick:()=>{var d;(d=e.mode)!==c&&i(async()=>{let c=await Q(a,b,d);if(!c.ok)return void g.oR.error(c.error??"Не удалось");f()})},disabled:h,className:["px-1.5 py-0.5 font-mono transition-colors disabled:opacity-50",j?"bg-violet-600 text-white":"text-muted-foreground hover:bg-accent hover:text-foreground"].join(" "),children:e.label},e.mode)})})}function T(a){let b=N[a];return 2===b?"lg:col-span-2":3===b?"lg:col-span-3":"lg:col-span-6"}let U=(0,B.A)("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);var V=c(54874),W=c(66979),X=c(14425),Y=c(71155),Z=c(11344);let $=(0,y.createServerReference)("787b42963dd89e5a903cc3f5972c7fac1554c1d0b5",y.callServer,void 0,y.findSourceMapURL,"patchWidgetDataAction"),_=(0,y.createServerReference)("70e8979c52bd5b212b3aafe7c4e2a7d581b98310c1",y.callServer,void 0,y.findSourceMapURL,"setWidgetRefreshAction"),aa=(0,y.createServerReference)("60ebeba2342ab3a0d3368fc7e7ed32a366a33ed3e5",y.callServer,void 0,y.findSourceMapURL,"refreshWidgetNowAction");function ab({rootId:a,widget:b,mode:c,onHide:f,hiding:h,onLayoutChanged:i,dnd:j}){let[l,m]=(0,e.useTransition)(),n=j.dragging===b.id,q=j.dropTarget===b.id&&!n,r=T(c);return(0,d.jsxs)(p.Zp,{draggable:!0,onDragStart:a=>{a.dataTransfer.effectAllowed="move",a.dataTransfer.setData("text/plain",b.id),j.onDragStart(b.id)},onDragOver:a=>{a.preventDefault(),a.dataTransfer.dropEffect="move",j.dropTarget!==b.id&&j.onDragOver(b.id)},onDrop:a=>{a.preventDefault(),j.onDrop(b.id)},onDragEnd:()=>j.onDragEnd(),className:[r,"transition-all",n?"opacity-50":"",q?"ring-2 ring-violet-400 ring-offset-2 ring-offset-background":""].join(" "),children:[(0,d.jsxs)(p.aR,{className:"pb-2 flex flex-row items-start gap-2 space-y-0",children:[(0,d.jsx)(U,{className:"h-3.5 w-3.5 text-muted-foreground/60 cursor-grab active:cursor-grabbing mt-1 shrink-0","aria-label":"Перетащить"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)(p.ZB,{className:"text-sm flex items-center gap-2 flex-wrap",children:[(0,d.jsx)("span",{className:"truncate",children:b.title}),(0,d.jsx)(o.E,{variant:"outline",className:"text-[10px] font-mono shrink-0",children:b.kind})]}),b.description&&(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground mt-0.5 line-clamp-2",children:b.description})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 -mt-0.5 shrink-0",children:[(0,d.jsx)(S,{rootId:a,widgetId:b.id,mode:c,onChanged:i}),b.sourceTopicId&&(0,d.jsx)(k(),{href:`/roots/${a}/chat/${b.sourceTopicId}`,className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground","aria-label":"Редактировать через топик",title:"Открыть исходный топик для редактирования",children:(0,d.jsx)(V.A,{className:"h-3.5 w-3.5"})}),(0,d.jsx)("button",{type:"button",onClick:()=>m(async()=>{await Promise.resolve(),f(b.id)}),disabled:l||h,"aria-label":"Скрыть",title:"Скрыть (восстановишь из меню \xabбиблиотека виджетов\xbb)",className:"p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive",children:(0,d.jsx)(W.A,{className:"h-3.5 w-3.5"})})]})]}),(0,d.jsxs)(p.Wu,{className:"space-y-3",children:[(0,Z.v)(a,b.kind,b.data,{onPatch:async c=>{let d=await $(a,b.id,c);if(!d.ok)throw g.oR.error(d.error??"Не удалось сохранить"),Error(d.error??"patch failed")}}),(0,d.jsx)(ac,{rootId:a,widget:b})]})]})}function ac({rootId:a,widget:b}){let[c,h]=(0,e.useTransition)(),[i,j]=(0,e.useTransition)(),k=b.refresh??"manual",l=b.lastRefreshAt??b.updatedAt;return b.sourceTopicId?(0,d.jsxs)("div",{className:"flex items-center gap-2 pt-2 border-t text-[11px] text-muted-foreground",children:[(0,d.jsx)(X.A,{className:"h-3 w-3 shrink-0"}),(0,d.jsxs)("span",{className:"shrink-0",children:["обновлено ",function(a){let b=Date.now()-Date.parse(a);if(!Number.isFinite(b)||b<0)return"только что";let c=Math.floor(b/6e4);if(c<1)return"только что";if(c<60)return`${c} мин назад`;let d=Math.floor(c/60);if(d<24)return`${d} ч назад`;let e=Math.floor(d/24);return`${e} дн назад`}(l)]}),(0,d.jsxs)("div",{className:"ml-auto flex items-center gap-1.5 shrink-0",children:[(0,d.jsxs)(Y.l6,{value:k,onValueChange:c=>{j(async()=>{var d;let e=await _(a,b.id,c);e.ok?g.oR.success("manual"===c?"Авто-обновление выключено":`Обновление: ${"hourly"===(d=c)?"раз в час":"daily"===d?"раз в день":"weekly"===d?"раз в неделю":"вручную"}`):g.oR.error(e.error??"Не удалось")})},disabled:i,children:[(0,d.jsx)(Y.bq,{className:"h-6 text-[10px] gap-1 px-1.5 w-auto min-w-[110px]",children:(0,d.jsx)(Y.yv,{})}),(0,d.jsxs)(Y.gC,{children:[(0,d.jsx)(Y.eb,{value:"manual",children:"Вручную"}),(0,d.jsx)(Y.eb,{value:"hourly",children:"Раз в час"}),(0,d.jsx)(Y.eb,{value:"daily",children:"Раз в день"}),(0,d.jsx)(Y.eb,{value:"weekly",children:"Раз в неделю"})]})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>{h(async()=>{let c=await aa(a,b.id);c.ok?g.oR.success("Запустил обновление — следи за исходным топиком"):g.oR.error(c.error??"Не удалось")})},disabled:c,className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 hover:bg-accent text-foreground/80 hover:text-foreground",title:"Обновить сейчас (запустит исходный топик)",children:[(0,d.jsx)(f.A,{className:`h-3 w-3 ${c?"animate-spin":""}`}),"Обновить"]})]})]}):null}var ad=c(75482),ae=c(3442),af=c(97338),ag=c(27456),ah=c(46129);let ai=(0,y.createServerReference)("602745b2acf3c79e0d43bb207a5e3e29a4beaa0975",y.callServer,void 0,y.findSourceMapURL,"deleteWidgetAction");function aj({rootId:a,open:b,onOpenChange:c,widgets:e,layout:f,onChanged:g}){if(!b)return null;let i=new Set(f.hidden);return(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",onClick:a=>{a.target===a.currentTarget&&c(!1)},children:[(0,d.jsx)("div",{"aria-hidden":!0,className:"absolute inset-0 bg-background/80 backdrop-blur-sm",onClick:()=>c(!1)}),(0,d.jsxs)("div",{className:"relative bg-card border rounded-lg shadow-xl w-full max-w-2xl max-h-[80vh] flex flex-col",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3 border-b",children:[(0,d.jsx)(J,{className:"h-4 w-4 text-violet-600"}),(0,d.jsx)("h2",{className:"text-sm font-medium flex-1",children:"Библиотека виджетов"}),(0,d.jsx)(h.$,{type:"button",size:"icon",variant:"ghost",className:"h-7 w-7",onClick:()=>c(!1),children:(0,d.jsx)(W.A,{className:"h-4 w-4"})})]}),(0,d.jsx)(ag.F,{className:"flex-1 min-h-0",children:(0,d.jsxs)("div",{className:"p-4 space-y-4",children:[(0,d.jsxs)("section",{className:"space-y-2",children:[(0,d.jsx)("h3",{className:"text-[11px] uppercase tracking-wider text-muted-foreground",children:"Системные виджеты"}),P.map(b=>(0,d.jsx)(ak,{rootId:a,id:b.id,title:b.title,description:b.description,badge:"system",badgeVariant:"default",hidden:i.has(b.id),canDelete:!1,onChanged:g},b.id))]}),(0,d.jsxs)("section",{className:"space-y-2",children:[(0,d.jsxs)("h3",{className:"text-[11px] uppercase tracking-wider text-muted-foreground",children:["Виджеты пользователя (",e.length,")"]}),0===e.length&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Пока нет ни одного — попроси агента в чате что-то создать."}),e.map(b=>(0,d.jsx)(ak,{rootId:a,id:b.id,title:b.title,description:b.description??`kind: ${b.kind}`,badge:b.kind,badgeVariant:"outline",hidden:i.has(b.id),canDelete:!0,onChanged:g},b.id))]})]})})]})]})}function ak({rootId:a,id:b,title:c,description:f,badge:i,badgeVariant:j,hidden:k,canDelete:l,onChanged:m}){let[n,p]=(0,e.useTransition)();return(0,d.jsxs)("div",{className:"flex items-start gap-3 rounded-md border bg-card px-3 py-2",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,d.jsx)("span",{className:"text-sm font-medium truncate",children:c}),(0,d.jsx)(o.E,{variant:j,className:"text-[10px] font-mono",children:i}),k&&(0,d.jsx)(o.E,{variant:"secondary",className:"text-[10px]",children:"скрыт"})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 line-clamp-2",children:f})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,d.jsx)(h.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>{p(async()=>{let c=k?await (0,ah.t)(a,b):await M(a,b);if(!c.ok)return void g.oR.error(c.error);m()})},disabled:n,className:"gap-1 h-7 text-xs",children:k?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(ad.A,{className:"h-3 w-3"}),"Показать"]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(ae.A,{className:"h-3 w-3"}),"Скрыть"]})}),l&&(0,d.jsx)(h.$,{type:"button",size:"icon",variant:"ghost",onClick:()=>{confirm(`Удалить виджет \xab${c}\xbb? Восстановить будет нельзя.`)&&p(async()=>{let c=await ai(a,b);if(!c.ok)return void g.oR.error(c.error);m()})},disabled:n,className:"h-7 w-7 text-muted-foreground hover:text-destructive",title:"Удалить навсегда",children:(0,d.jsx)(af.A,{className:"h-3.5 w-3.5"})})]})]})}function al({rootId:a,widgets:b,layout:c,systemRenderers:f,snapshot:i,onLayoutChanged:j}){let k=(0,e.useMemo)(()=>{let a=new Map;for(let c of b)a.set(c.id,c);return a},[b]),[l,m]=(0,e.useState)(c.order),[n,o]=(0,e.useState)(c.hidden),[,p]=(0,e.useTransition)(),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)(!1);an(c.order,m),an(c.hidden,o);let w=(0,e.useCallback)(b=>{m(b),p(async()=>{let c=await L(a,b);c.ok?(m(c.layout.order),o(c.layout.hidden),j()):g.oR.error(c.error)})},[a,j]),x=(0,e.useCallback)(b=>{m(l.filter(a=>a!==b)),o(a=>[...new Set([b,...a])]),p(async()=>{let c=await M(a,b);if(!c.ok)return void g.oR.error(c.error);m(c.layout.order),o(c.layout.hidden),j()})},[a,l,j]),y={onDragStart:a=>r(a),onDragOver:a=>t(a),onDrop:a=>{if(r(null),t(null),!q||q===a)return;let b=[...l],c=b.indexOf(q),d=b.indexOf(a);c<0||d<0||(b.splice(c,1),b.splice(d,0,q),w(b))},onDragEnd:()=>{r(null),t(null)},dragging:q,dropTarget:s};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-sm font-medium text-muted-foreground uppercase tracking-wider",children:"Виджеты проекта"}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Перетаскивай для сортировки. Скрытые можно вернуть из библиотеки."})]}),(0,d.jsxs)(h.$,{type:"button",size:"sm",variant:"outline",onClick:()=>v(!0),className:"gap-1 h-8",children:[(0,d.jsx)(J,{className:"h-3.5 w-3.5"}),"Библиотека (",n.length," скрытых)"]})]}),0===l.length&&(0,d.jsxs)("div",{className:"rounded-md border border-dashed bg-muted/20 p-6 text-center space-y-2",children:[(0,d.jsxs)("p",{className:"text-sm text-muted-foreground",children:["На дашборде ничего не закреплено. Попроси агента в чате создать виджет — например"," ",(0,d.jsx)("em",{children:"\xabсделай сводку новостей по теме X\xbb"}),"."]}),(0,d.jsxs)(h.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>v(!0),className:"gap-1",children:[(0,d.jsx)(K.A,{className:"h-3 w-3"}),"Восстановить системные"]})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 lg:grid-cols-6 gap-4",children:l.map(b=>{var e;let g=k.get(b),h=c.sizes?.[b]??(e=g?.size,e?.mode?e.mode:e?.cols===1?"sm":e?.cols===2?"md":e?.cols===3?"wide":"md");return O.includes(b)?(0,d.jsx)(am,{rootId:a,id:b,node:f[b],onHide:x,dnd:y,mode:h,onLayoutChanged:j},b):g?(0,d.jsx)(ab,{rootId:a,widget:g,mode:h,onHide:x,hiding:!1,dnd:y,onLayoutChanged:j},b):null})}),(0,d.jsx)(aj,{open:u,onOpenChange:v,rootId:a,widgets:b,layout:{order:l,hidden:n},onChanged:()=>{j()}})]})}function am({rootId:a,id:b,node:c,onHide:e,dnd:f,mode:g,onLayoutChanged:h}){let i=f.dragging===b,j=f.dropTarget===b&&!i,k=T(g);return(0,d.jsxs)("div",{draggable:!0,onDragStart:a=>{a.dataTransfer.effectAllowed="move",a.dataTransfer.setData("text/plain",b),f.onDragStart(b)},onDragOver:a=>{a.preventDefault(),a.dataTransfer.dropEffect="move",f.dropTarget!==b&&f.onDragOver(b)},onDrop:a=>{a.preventDefault(),f.onDrop(b)},onDragEnd:()=>f.onDragEnd(),className:[k,"relative group/sys transition-all",i?"opacity-50":"",j?"ring-2 ring-violet-400 ring-offset-2 ring-offset-background rounded-lg":""].join(" "),children:[c,(0,d.jsxs)("div",{className:"absolute top-2 right-2 opacity-0 group-hover/sys:opacity-100 transition-opacity flex items-center gap-1 bg-background/85 backdrop-blur rounded p-0.5",children:[(0,d.jsx)(S,{rootId:a,widgetId:b,mode:g,onChanged:h}),(0,d.jsx)("button",{type:"button",onClick:()=>e(b),"aria-label":"Скрыть",title:"Скрыть (восстановишь из библиотеки)",className:"p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive",children:"\xd7"})]})]})}function an(a,b){(0,e.useMemo)(()=>{b(a)},[JSON.stringify(a)])}function ao({rootId:a,initialSnapshot:b}){let[c,j]=(0,e.useState)(b),[k,l]=(0,e.useTransition)(),m=(0,e.useCallback)(()=>{l(async()=>{try{let b=await fetch(`/api/roots/${a}/dashboard`,{cache:"no-store"}),c=await b.json();if(!c.ok||!c.snapshot)return void g.oR.error(c.error??"Не удалось обновить дашборд");j(c.snapshot)}catch(a){g.oR.error(a instanceof Error?a.message:String(a))}})},[a]);(0,i.S9)(i.Zi.topicsChanged(a),m),(0,i.S9)(i.Zi.kbChanged(a),m);let n={"sys:active-goals":(0,d.jsx)(q,{rootId:a,activeGoals:c.activeGoals,runningAgents:c.runningAgents}),"sys:pending":(0,d.jsx)(v,{rootId:a,items:c.pendingApprovals}),"sys:recent-kb":(0,d.jsx)(z,{rootId:a,items:c.recentKb}),"sys:ai-suggestions":(0,d.jsx)(H,{rootId:a,cache:c.suggestions})};return(0,d.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:(0,d.jsxs)("div",{className:"p-6 space-y-5 max-w-6xl mx-auto",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-sm font-medium text-muted-foreground uppercase tracking-wider",children:"Обзор проекта"}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Перетаскивай блоки. Скрытые возвращаются из библиотеки. Виджеты создаются и обновляются через чат с агентом."})]}),(0,d.jsxs)(h.$,{type:"button",size:"sm",variant:"ghost",onClick:m,disabled:k,className:"gap-1 h-8",children:[(0,d.jsx)(f.A,{className:`h-3.5 w-3.5 ${k?"animate-spin":""}`}),"Обновить"]})]}),(0,d.jsx)(al,{rootId:a,widgets:c.widgets,layout:c.layout,systemRenderers:n,snapshot:c,onLayoutChanged:m})]})})}},46726:(a,b,c)=>{"use strict";c.d(b,{g:()=>d});class d extends Error{constructor(a,b){super(`Agent backend "${a}" is unavailable: ${b instanceof Error?b.message:String(b)}`),this.name="AgentUnavailableError"}}},47452:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(19963).A)("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]])},48161:a=>{"use strict";a.exports=require("node:os")},48519:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{C:()=>l});var e=c(7206),f=c(73024),g=c(46726),h=c(78744),i=a([e]);e=(i.then?(await i)():i)[0];let k="codex",l={id:"codex",async analyzeScope(a){await j(),await f.promises.mkdir(a.reflexScope,{recursive:!0});let b=await (0,h.p)(a),c=["exec","--cd",a.root,"--sandbox","workspace-write","--add-dir",a.reflexScope];a.model&&c.push("--model",a.model),c.push(b),await (0,e.execa)(k,c,{stdio:"inherit"})},async chat(a){await j();let b=await (0,h.M)(a);await (0,e.execa)(k,["--system",b],{cwd:a.scope,stdio:"inherit"})}};async function j(){try{await (0,e.execa)(k,["--version"],{stdio:"ignore"})}catch(a){throw new g.g("codex",a)}}d()}catch(a){d(a)}})},50108:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{E:()=>m});var e=c(73024),f=c(76760),g=c.n(f),h=c(20567),i=c(35314),j=c(79734),k=c(54287),l=a([i]);async function m(a,b={}){let c=g().resolve(a);await n(c),await e.promises.mkdir((0,k.FF)(c),{recursive:!0});let d=await (0,h.Z9)(c);if(await (0,h.AU)(c,d),await (0,j.D)(c),b.scaffoldOnly)return void process.stdout.write(`Reflex scaffolded at ${(0,k.FF)(c)} (scaffold-only).
|
|
2
2
|
`);let f=b.harness?{...d,agentBackend:b.harness}:d,l=await (0,j.z)({root:c,scope:c}),o={...l,...b.model?{model:b.model}:{},...b.language?{language:b.language}:{}};process.stdout.write(`Running ${f.agentBackend}${b.model?` (${b.model})`:""}${b.language?` [lang=${b.language}]`:""} over ${c} (${l.files.length} files visible)…
|
|
3
3
|
`);let p=(0,i.j)(f);await p.analyzeScope(o),process.stdout.write(`Done. KB written under ${(0,k.FF)(c)}
|
|
4
|
-
`)}async function n(a){let b=await e.promises.stat(a).catch(()=>null);if(!b||!b.isDirectory())throw Error(`Not a directory: ${a}`)}i=(l.then?(await l)():l)[0],d()}catch(a){d(a)}})},51333:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(19963).A)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]])},51455:a=>{"use strict";a.exports=require("node:fs/promises")},52869:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]])},57075:a=>{"use strict";a.exports=require("node:stream")},58550:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>A});var e=c(63003),f=c(20594),g=c.n(f),h=c(9310),i=c(17596),j=c(88842),k=c(47452),l=c(51333),m=c(84913),n=c(67248),o=c(60524),p=c(24576),q=c(11178),r=c(49809),s=c(61105),t=c(64845),u=c(770),v=c(90558),w=c(16805),x=c(86673),y=c(574),z=a([r]);async function A({params:a}){let{id:b}=await a,c=await (0,p.Zn)(b);c||(0,h.notFound)();let[d,f,z]=await Promise.all([(0,q.RP)(c.path),(0,r.x)(b),(0,s.dH)({rootId:b})]),A=f.ok?f.snapshot:void 0,B=z.map(a=>({id:a.manifest.id,name:a.manifest.name,scope:a.scope}));return(0,e.jsxs)("main",{className:"flex-1 flex flex-col min-h-0",children:[(0,e.jsxs)("header",{className:"border-b px-6 py-4 flex items-center gap-4",children:[(0,e.jsx)(m.$,{asChild:!0,variant:"ghost",size:"sm",className:"-ml-3",children:(0,e.jsxs)(g(),{href:"/",children:[(0,e.jsx)(i.A,{className:"mr-1 h-4 w-4"})," Roots"]})}),(0,e.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(j.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,e.jsx)("h1",{className:"text-base font-medium truncate",children:c.path})]}),(0,e.jsx)("div",{className:"mt-1 flex items-center gap-2 text-xs text-muted-foreground",children:d.exists?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(n.E,{variant:"secondary",children:[d.fileCount," MD files"]}),c.lastInitAt?(0,e.jsxs)("span",{children:["Last init ",new Date(c.lastInitAt).toLocaleString()]}):(0,e.jsx)("span",{children:"No init recorded"})]}):(0,e.jsx)(n.E,{variant:"outline",children:".reflex/ not yet created"})})]}),(0,e.jsx)(y.AddUtilityButton,{rootId:c.id,installed:B}),(0,e.jsx)(m.$,{asChild:!0,variant:"ghost",size:"sm",className:"gap-1",children:(0,e.jsxs)(g(),{href:`/roots/${c.id}/workflows`,children:[(0,e.jsx)(k.A,{className:"h-4 w-4"}),"Workflows"]})}),(0,e.jsx)(x.InsertImageButton,{rootId:c.id}),(0,e.jsx)(w.ShareButton,{kind:"project",rootId:c.id,label:c.path.split("/").pop()||"Проект"}),(0,e.jsx)(u.RunInitButton,{rootPath:c.path,rootId:c.id})]}),(0,e.jsx)(o.Separator,{}),A?(0,e.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[(0,e.jsx)(t.Dashboard,{rootId:c.id,initialSnapshot:A}),(0,e.jsx)(v.CommandBar,{rootId:c.id})]}):(0,e.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[(0,e.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center text-muted-foreground gap-3 p-10 text-center",children:[(0,e.jsx)(l.A,{className:"h-6 w-6"}),(0,e.jsxs)("p",{children:["Не удалось загрузить состояние проекта",f.ok?"":`: ${f.error??""}`,"."]}),(0,e.jsxs)("p",{className:"text-xs",children:["Попробуй ",(0,e.jsx)("strong",{children:"Run init"})," сверху, если это новый проект."]})]}),(0,e.jsx)(v.CommandBar,{rootId:c.id})]})]})}r=(z.then?(await z)():z)[0],d()}catch(a){d(a)}})},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63351:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]])},64845:(a,b,c)=>{"use strict";c.d(b,{Dashboard:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call Dashboard() from the server but Dashboard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/app/roots/[id]/_components/dashboard.tsx","Dashboard")},65686:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(61597),e=c(99210),f=c(1082),g=c(15003),h=c(36265),i=c(11817),j=c(45136),k=c(41809),l=c(55745),m=c(88963),n=c(69153),o=c(48343),p=c(15808),q=c(21238),r=c(2555),s=c(261),t=c(34370),u=c(89583),v=c(26713),w=c(53875),x=c(7952),y=c(54532),z=c(80269),A=c(17851),B=c(57865),C=c(86439),D=c(47319),E=c.n(D),F=c(1859),G=c(20498),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["roots",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,58550)),"/home/runner/work/reflex-agent/reflex-agent/app/roots/[id]/page.tsx"]}]},{layout:[()=>Promise.resolve().then(c.bind(c,6993)),"/home/runner/work/reflex-agent/reflex-agent/app/roots/[id]/layout.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,79459)),"/home/runner/work/reflex-agent/reflex-agent/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,47319,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,82295,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,91570,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,72845,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,J=["/home/runner/work/reflex-agent/reflex-agent/app/roots/[id]/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/roots/[id]/page",pathname:"/roots/[id]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/roots/[id]/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
5
|
-
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},71152:a=>{"use strict";a.exports=require("esbuild")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},75482:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},78645:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Ik:()=>n,K9:()=>m,rg:()=>o});var e=c(73745);c(66493);var f=c(73024),g=c(65326),h=c(53905),i=c(50108),j=c(36017),k=c(63781),l=a([i]);async function m(a){try{let b=await f.promises.stat(a).catch(()=>null);if(!b||!b.isDirectory())return{ok:!1,error:`Not a directory: ${a}`};let c=await (0,h._S)(a);return(0,g.revalidatePath)("/"),{ok:!0,id:c.id}}catch(a){return{ok:!1,error:p(a)}}}async function n(a,b,c=!1){try{let d=await (0,j.M)(),e=d.assignments.analyze,f="claude-code"===e.harness||"codex"===e.harness?e.harness:void 0;return await (0,i.E)(a,{scaffoldOnly:c,language:d.language,...f?{harness:f}:{},...f?{model:e.model}:{}}),c||await (0,h.Qu)(b),(0,g.revalidatePath)("/"),(0,g.revalidatePath)(`/roots/${b}`),{ok:!0}}catch(a){return{ok:!1,error:p(a)}}}async function o(a){try{return await (0,h.L7)(a),(0,g.revalidatePath)("/"),{ok:!0}}catch(a){return{ok:!1,error:p(a)}}}function p(a){if(a instanceof Error){try{let b=JSON.parse(a.message);if(Array.isArray(b))return b.map(a=>"object"==typeof a&&null!==a&&"message"in a?String(a.message):String(a)).join("; ")}catch{}return a.message}return String(a)}i=(l.then?(await l)():l)[0],(0,k.D)([m,n,o]),(0,e.A)(m,"40321a4d97aa1563b14b2915608d19fa89eebe4cfe",null),(0,e.A)(n,"70639b10ba6b7c0d4037eb3595c05cffc83a77adb4",null),(0,e.A)(o,"407d782d677af10f25045c9c359b67056dc489f78b",null),d()}catch(a){d(a)}})},79428:a=>{"use strict";a.exports=require("buffer")},79646:a=>{"use strict";a.exports=require("child_process")},79734:(a,b,c)=>{"use strict";c.d(b,{D:()=>j,z:()=>i});var d=c(73024),e=c(76760),f=c.n(e),g=c(879),h=c(54287);async function i(a){let b=f().resolve(a.root),c=f().resolve(a.scope),d=f().relative(b,c);if(d.startsWith(".."))throw Error(`Scope ${c} is outside root ${b}`);let e=d?(0,h.x9)(b,d):f().join(b,h.fW),i=[];for await(let a of(0,g.G)(c))"."!==a.rel&&(a.isDir||i.push(a.rel));return{root:b,scope:c,reflexScope:e,files:i}}async function j(a){let b=f().join(a,h.KZ);try{await d.promises.access(b);return}catch{}await d.promises.writeFile(b,"# .reflexignore — gitignore syntax\n# Patterns listed here are excluded from Reflex's analysis and watchers.\n\nnode_modules/\ndist/\nbuild/\n.venv/\n__pycache__/\n*.log\n","utf8")}},80449:(a,b,c)=>{"use strict";c.d(b,{g:()=>e});var d=c(3265);let e=(0,d.createServerReference)("404c0a0f9643f48b41147754c837c645f337c66d22",d.callServer,void 0,d.findSourceMapURL,"installCuratedAction")},81846:(a,b,c)=>{"use strict";c.d(b,{AddUtilityButton:()=>x});var d=c(64173),e=c(17240),f=c(1056),g=c.n(f),h=c(87671),i=c(97162);let j=(0,c(42557).A)("CircleArrowUp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]);var k=c(66979),l=c(62261),m=c(65177),n=c(97338),o=c(12619),p=c(44171),q=c(44052),r=c(20583);c(8162);var s=c(3265);s.callServer,s.findSourceMapURL;let t=(0,s.createServerReference)("401485f625172414c14244b6a01fc44c516acc8b32",s.callServer,void 0,s.findSourceMapURL,"applyUtilityUpdateAction");var u=c(80449),v=c(27767),w=c(88724);function x({rootId:a,installed:b}){let[c,f]=(0,e.useState)(!1),[s,x]=(0,e.useState)([]),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useTransition)(),[E,F]=(0,e.useState)([]),G=(0,e.useRef)(null),H=(0,h.useRouter)(),I=new Set(b.map(a=>a.id)),J=b.filter(a=>"project"===a.scope),K=new Map(E.map(a=>[a.id,a]));return(0,d.jsxs)("div",{className:"relative",ref:G,children:[(0,d.jsxs)(r.$,{type:"button",variant:"ghost",size:"sm",className:"gap-1",onClick:()=>f(a=>!a),title:"Установленные + каталог",children:[(0,d.jsx)(i.A,{className:"h-4 w-4"}),"Утилиты",J.length>0&&(0,d.jsx)("span",{className:"ml-1 text-[10px] rounded-full bg-violet-100 text-violet-700 px-1.5",children:J.length}),E.length>0&&(0,d.jsxs)("span",{className:"ml-0.5 text-[10px] rounded-full bg-amber-100 text-amber-800 px-1.5 inline-flex items-center gap-0.5",title:`Обновлений: ${E.length}`,children:[(0,d.jsx)(j,{className:"h-2.5 w-2.5"}),E.length]})]}),c&&(0,d.jsxs)("div",{className:"absolute right-0 top-full mt-1 z-30 w-[440px] max-h-[75vh] overflow-y-auto rounded-lg border bg-popover shadow-lg",children:[(0,d.jsxs)("div",{className:"sticky top-0 bg-popover flex items-center gap-2 px-3 py-2 border-b",children:[(0,d.jsx)(i.A,{className:"h-3.5 w-3.5 text-violet-600"}),(0,d.jsx)("span",{className:"text-xs font-medium",children:"Мини-приложения"}),(0,d.jsx)("button",{type:"button",onClick:()=>f(!1),className:"ml-auto p-0.5 rounded hover:bg-accent",children:(0,d.jsx)(k.A,{className:"h-3 w-3"})})]}),J.length>0&&(0,d.jsxs)("section",{className:"p-2 border-b",children:[(0,d.jsx)("div",{className:"px-1 text-[10px] uppercase tracking-wider text-muted-foreground mb-1.5",children:"Установлены в этом проекте"}),(0,d.jsx)("ul",{className:"space-y-1",children:J.map(b=>{let c=K.get(b.id);return(0,d.jsxs)("li",{className:"flex items-center gap-1.5 rounded-md border bg-card px-2 py-1.5 text-xs",children:[(0,d.jsxs)("span",{className:"flex-1 min-w-0",children:[(0,d.jsx)("div",{className:"truncate font-medium",children:b.name}),c&&(0,d.jsxs)("div",{className:"text-[10px] text-amber-700 inline-flex items-center gap-0.5",children:[(0,d.jsx)(j,{className:"h-2.5 w-2.5"}),c.currentVersion," → ",c.latestVersion]})]}),c&&(0,d.jsxs)("button",{type:"button",onClick:()=>{B(c.id),D(async()=>{let b=await t({...c,rootId:a});if(B(null),!b.ok)return void q.oR.error(b.error);q.oR.success(`\xab${c.name}\xbb обновлено: ${c.currentVersion} → ${b.newVersion}`),F(a=>a.filter(a=>a.id!==c.id)),(0,w.$d)(w.Zi.kbChanged(a)),H.refresh()})},disabled:C&&A===b.id,className:"text-[11px] rounded bg-amber-600 px-2 py-1 text-white hover:bg-amber-700 disabled:opacity-50 inline-flex items-center gap-0.5",title:"Применить обновление",children:[C&&A===b.id?(0,d.jsx)(l.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(j,{className:"h-3 w-3"}),"Обновить"]}),(0,d.jsx)(g(),{href:`/utilities/${b.scope}/${b.id}?rootId=${encodeURIComponent(a)}`,className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground",title:"Открыть",children:(0,d.jsx)(m.A,{className:"h-3 w-3"})}),(0,d.jsx)("button",{type:"button",onClick:()=>{confirm(`Удалить \xab${b.name}\xbb? Виджет-карточка пропадёт, данные в KB останутся.`)&&(B(b.id),D(async()=>{let c=await (0,v.j)(b.scope,b.id,"project"===b.scope?a:void 0);if(B(null),!c.ok)return void q.oR.error(c.error??"Не удалось удалить");q.oR.success(`\xab${b.name}\xbb удалено`),(0,w.$d)(w.Zi.kbChanged(a)),H.refresh()}))},disabled:C&&A===b.id,className:"p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive disabled:opacity-50",title:"Удалить из проекта",children:C&&A===b.id?(0,d.jsx)(l.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(n.A,{className:"h-3 w-3"})})]},b.id)})})]}),(0,d.jsxs)("section",{className:"p-2",children:[(0,d.jsx)("div",{className:"px-1 text-[10px] uppercase tracking-wider text-muted-foreground mb-1.5",children:"Каталог"}),y?(0,d.jsxs)("div",{className:"px-2 py-4 text-xs text-muted-foreground flex items-center gap-1.5",children:[(0,d.jsx)(l.A,{className:"h-3 w-3 animate-spin"}),"Загружаю…"]}):0===s.length?(0,d.jsx)("p",{className:"px-2 py-4 text-xs text-muted-foreground",children:"Каталог пуст."}):(0,d.jsx)("ul",{className:"space-y-1",children:s.map(b=>{let c=I.has(b.id),e=A===b.id&&C;return(0,d.jsx)("li",{className:"rounded-md border bg-card px-2 py-2",children:(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)("span",{className:"text-xl leading-none",children:b.emoji}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"font-medium text-sm",children:b.name}),(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground leading-snug",children:b.description})]}),c?(0,d.jsxs)("span",{className:"text-[10px] text-emerald-700 inline-flex items-center gap-0.5",children:[(0,d.jsx)(o.A,{className:"h-3 w-3"})," уже"]}):(0,d.jsxs)("button",{type:"button",onClick:()=>{B(b.id),D(async()=>{let c=b.suggestedScope??"global",d=await (0,u.g)({github:b.github,scope:c,..."project"===c?{rootId:a}:{}});if(B(null),!d.ok)return void q.oR.error(d.error);q.oR.success(`\xab${b.name}\xbb установлено в проект`),(0,w.$d)(w.Zi.kbChanged(a)),H.refresh()})},disabled:e||C,className:"text-[11px] rounded bg-violet-600 px-2 py-1 text-white hover:bg-violet-700 disabled:opacity-50 inline-flex items-center gap-0.5",children:[e?(0,d.jsx)(l.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(p.A,{className:"h-3 w-3"}),"Добавить"]})]})},b.id)})})]})]})]})}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},90558:(a,b,c)=>{"use strict";c.d(b,{CommandBar:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call CommandBar() from the server but CommandBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/app/roots/[id]/_components/command-bar.tsx","CommandBar")},99288:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"00204beee3b7b5057a859bf6e533f1774e1a866ab2":()=>j.L8,"003a2fb60e9b242124f4ab6977c12d4e76f89bd900":()=>k.Fm,"005f5989e7e1c8cc8a429c5aede416f5fee99b9632":()=>l.Bp,"009a7e0043c585bed4ced39e313372fa5993500ff3":()=>k.Nt,"00d62026270fdd3a07faa17bbbdaab0a19d6cf56c0":()=>p.w,"00e3f501249a86b3370da049924b8187e7daacb109":()=>k.Ng,"00f80678accd3b2e31f8659dc0fdd525957f95fe0f":()=>k.Zl,"00fc47c192abede86bd006f4d026279ffb0cc67613":()=>n.wd,"00fe9a3719ce8c991ffe3927fedc993761e6a9b2d0":()=>g.i,"4001e8b147000b89bbf5b314539f6c9ec224406802":()=>k.bt,"400ad73604dc430e89836c242471c62f07492a6ec1":()=>e.nC,"400e6721a0e22b6fc170d7dc6c41b9c64977cbb032":()=>n.LL,"40112cacd6f2c3ea54f6e5c5d0b94307cca73fedb6":()=>j.Is,"401485f625172414c14244b6a01fc44c516acc8b32":()=>l.mR,"40321a4d97aa1563b14b2915608d19fa89eebe4cfe":()=>q.K9,"403c136896e26e11f388e7dbb62849b029789d561e":()=>l.vv,"403fb5862cd4fd2c8bc41c5c4a21082be138d08dae":()=>l.Kt,"4044b62cef5b69b6b791c67c4bbfa4a1f210f32463":()=>l.QR,"404c0a0f9643f48b41147754c837c645f337c66d22":()=>l.gn,"4063cff966c1d4de8215c7616a43f14ad3aa10966f":()=>l.L_,"406504bacae8f8ed0688899ddd5c6c2a9b289278fe":()=>j.ns,"40696e5795e44ba3c265922c97a0776496bbb4361f":()=>e.nY,"406b86352045ddc1c3ef19ae24ad90c0db907f57f8":()=>l.JR,"406bda1bac5663f40ca2976ff401de1c31aee122c2":()=>l.RK,"4073e704760f80ac8f1984ceb14f442a1ce6423b6d":()=>i.Cz,"407d782d677af10f25045c9c359b67056dc489f78b":()=>q.rg,"408e29ec5a2ac06e76d0fd994672ca7302f6e425b8":()=>f.z,"408e9208a68ee0e6229b67314ed320b70c72c3b12d":()=>i.hN,"40bbec94f0b3208041877e106f81b1a4334dfb6194":()=>i.IK,"40bc33a6e7f75723efb05301a85b7d8e9c9e8ff4be":()=>i.uA,"40bebc2e11b5ad22c68344a412797b66b5efeb8434":()=>h.$z,"40cbc3cc07bd597bcbd6732baaf950aa6fd9b1803d":()=>l.k_,"40d1ddca47c1dab07352c37869ea356f6869f3251a":()=>l.Zh,"40e06ead1b92428fba684896f67ff4700c28be4e5c":()=>l.b7,"40ef54a1b9fd1d1bbf692330c39050cac6c520e2b3":()=>l.Yt,"40f13c6810c336832a5abe5af39b9a1d905ba990f8":()=>f.u,"40fc252c8ca3031d9e89166587bf6b6441a8e472cd":()=>h.MU,"40fec5e169ee2dfe82cc027ca0a6a589c440ba3ef2":()=>l.nO,"6004082faeb76ce3822d9eea5068f65a46405ccc90":()=>o.Aq,"600b551ff0a65226940fd243f19af92ae3f64691b9":()=>e.OQ,"6021debc3cbf2b06c248810a659e911ef958fe1504":()=>e.T$,"604ca7de85772eb88d7ba71e6cbd573e49904e07ff":()=>n.b2,"6083f05fb2bd69b17e5bb113fda4f6c6d910bc6731":()=>h.Tc,"608bfadaa1155b0b69d0fe8b8ce619449576f0a42e":()=>o.KV,"608fc4ce02acd0ac6ee3ba48a005cc8c26a7a750fd":()=>n.ZC,"60971d3709f25a4eb5dccd9fa4e18c431231ac9382":()=>o.cl,"60a2a3ae0b64cb55755a3f21ebfe4bf6a4663bab70":()=>n.qO,"60a5bb03fb8b839e913b05e36d237f0b6c85be6aae":()=>e.L4,"60a94590ba30544b9fa9a2046841d4b746ea5505cc":()=>o.tT,"60abbcd71409aa91744adafb8f10127427c0f9cf13":()=>o.hL,"60bed3ce7c2ca2e9fc67af0a578f3eb0c2f10be2c8":()=>m.S,"700de833a00b15c9039ff1615816c4afb8c0a4b592":()=>l.jf,"7032946ede9d833dbb2b4df932f7d708ec0eb92b70":()=>l.QI,"70639b10ba6b7c0d4037eb3595c05cffc83a77adb4":()=>q.Ik,"70978bd27516caca844a607725d48a2b90e3d27efa":()=>e.h$,"70a2e418eed9627f298884bf7956ab19c88b0e46fe":()=>l.q_,"70af3cd35863ae458b9637d4da2a18471bac17249a":()=>o.Mh,"70b489b7f7230ce614d93d11f5edc51f94adfcb4c2":()=>l.i8,"70c7e01b665aba6b04170acb2586fc53f444000139":()=>o.mm,"787010580697fb93e7de797e95f9d2e312eaf6a361":()=>o.ru,"78a3c90ed14e751ce1afe7920705919dbac5f7156d":()=>e.g3});var e=c(13415),f=c(3890),g=c(50995),h=c(15754),i=c(27129),j=c(16856),k=c(92814),l=c(9328),m=c(4168),n=c(72901),o=c(34639),p=c(48272),q=c(78645),r=a([e,h,l,n,o,q]);[e,h,l,n,o,q]=r.then?(await r)():r,d()}catch(a){d(a)}})}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[9803,2356,8404,9739,9631,192,5895,8056,7572,4842,5543,1105,133,6909,1986,9861,4567,9731,9328,1455,9905,6809,2977],()=>b(b.s=65686));module.exports=c})();
|
|
4
|
+
`)}async function n(a){let b=await e.promises.stat(a).catch(()=>null);if(!b||!b.isDirectory())throw Error(`Not a directory: ${a}`)}i=(l.then?(await l)():l)[0],d()}catch(a){d(a)}})},51333:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(19963).A)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]])},51455:a=>{"use strict";a.exports=require("node:fs/promises")},52869:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]])},57075:a=>{"use strict";a.exports=require("node:stream")},58550:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>A});var e=c(63003),f=c(20594),g=c.n(f),h=c(9310),i=c(17596),j=c(88842),k=c(47452),l=c(51333),m=c(84913),n=c(67248),o=c(60524),p=c(24576),q=c(11178),r=c(49809),s=c(61105),t=c(64845),u=c(770),v=c(90558),w=c(16805),x=c(86673),y=c(574),z=a([r]);async function A({params:a}){let{id:b}=await a,c=await (0,p.Zn)(b);c||(0,h.notFound)();let[d,f,z]=await Promise.all([(0,q.RP)(c.path),(0,r.x)(b),(0,s.dH)({rootId:b})]),A=f.ok?f.snapshot:void 0,B=z.map(a=>({id:a.manifest.id,name:a.manifest.name,scope:a.scope}));return(0,e.jsxs)("main",{className:"flex-1 flex flex-col min-h-0",children:[(0,e.jsxs)("header",{className:"border-b px-6 py-4 flex items-center gap-4",children:[(0,e.jsx)(m.$,{asChild:!0,variant:"ghost",size:"sm",className:"-ml-3",children:(0,e.jsxs)(g(),{href:"/",children:[(0,e.jsx)(i.A,{className:"mr-1 h-4 w-4"})," Roots"]})}),(0,e.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(j.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,e.jsx)("h1",{className:"text-base font-medium truncate",children:c.path})]}),(0,e.jsx)("div",{className:"mt-1 flex items-center gap-2 text-xs text-muted-foreground",children:d.exists?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(n.E,{variant:"secondary",children:[d.fileCount," MD files"]}),c.lastInitAt?(0,e.jsxs)("span",{children:["Last init ",new Date(c.lastInitAt).toLocaleString()]}):(0,e.jsx)("span",{children:"No init recorded"})]}):(0,e.jsx)(n.E,{variant:"outline",children:".reflex/ not yet created"})})]}),(0,e.jsx)(y.AddUtilityButton,{rootId:c.id,installed:B}),(0,e.jsx)(m.$,{asChild:!0,variant:"ghost",size:"sm",className:"gap-1",children:(0,e.jsxs)(g(),{href:`/roots/${c.id}/workflows`,children:[(0,e.jsx)(k.A,{className:"h-4 w-4"}),"Workflows"]})}),(0,e.jsx)(x.InsertImageButton,{rootId:c.id}),(0,e.jsx)(w.ShareButton,{kind:"project",rootId:c.id,label:c.path.split("/").pop()||"Проект"}),(0,e.jsx)(u.RunInitButton,{rootPath:c.path,rootId:c.id})]}),(0,e.jsx)(o.Separator,{}),A?(0,e.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[(0,e.jsx)(t.Dashboard,{rootId:c.id,initialSnapshot:A}),(0,e.jsx)(v.CommandBar,{rootId:c.id})]}):(0,e.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[(0,e.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center text-muted-foreground gap-3 p-10 text-center",children:[(0,e.jsx)(l.A,{className:"h-6 w-6"}),(0,e.jsxs)("p",{children:["Не удалось загрузить состояние проекта",f.ok?"":`: ${f.error??""}`,"."]}),(0,e.jsxs)("p",{className:"text-xs",children:["Попробуй ",(0,e.jsx)("strong",{children:"Run init"})," сверху, если это новый проект."]})]}),(0,e.jsx)(v.CommandBar,{rootId:c.id})]})]})}r=(z.then?(await z)():z)[0],d()}catch(a){d(a)}})},60595:(a,b,c)=>{"use strict";c.d(b,{j:()=>e});var d=c(3265);let e=(0,d.createServerReference)("70d9b7413000bd4ea89bd848248c11d0ea1be5524f",d.callServer,void 0,d.findSourceMapURL,"removeUtilityAction")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63351:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]])},64845:(a,b,c)=>{"use strict";c.d(b,{Dashboard:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call Dashboard() from the server but Dashboard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/app/roots/[id]/_components/dashboard.tsx","Dashboard")},65686:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(61597),e=c(99210),f=c(1082),g=c(15003),h=c(36265),i=c(11817),j=c(45136),k=c(41809),l=c(55745),m=c(88963),n=c(69153),o=c(48343),p=c(15808),q=c(21238),r=c(2555),s=c(261),t=c(34370),u=c(89583),v=c(26713),w=c(53875),x=c(7952),y=c(54532),z=c(80269),A=c(17851),B=c(57865),C=c(86439),D=c(47319),E=c.n(D),F=c(1859),G=c(20498),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["roots",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,58550)),"/home/runner/work/reflex-agent/reflex-agent/app/roots/[id]/page.tsx"]}]},{layout:[()=>Promise.resolve().then(c.bind(c,6993)),"/home/runner/work/reflex-agent/reflex-agent/app/roots/[id]/layout.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,79459)),"/home/runner/work/reflex-agent/reflex-agent/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,47319,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,82295,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,91570,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,72845,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,J=["/home/runner/work/reflex-agent/reflex-agent/app/roots/[id]/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/roots/[id]/page",pathname:"/roots/[id]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/roots/[id]/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
5
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},71152:a=>{"use strict";a.exports=require("esbuild")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},75482:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},78645:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Ik:()=>n,K9:()=>m,rg:()=>o});var e=c(73745);c(66493);var f=c(73024),g=c(65326),h=c(53905),i=c(50108),j=c(36017),k=c(63781),l=a([i]);async function m(a){try{let b=await f.promises.stat(a).catch(()=>null);if(!b||!b.isDirectory())return{ok:!1,error:`Not a directory: ${a}`};let c=await (0,h._S)(a);return(0,g.revalidatePath)("/"),{ok:!0,id:c.id}}catch(a){return{ok:!1,error:p(a)}}}async function n(a,b,c=!1){try{let d=await (0,j.M)(),e=d.assignments.analyze,f="claude-code"===e.harness||"codex"===e.harness?e.harness:void 0;return await (0,i.E)(a,{scaffoldOnly:c,language:d.language,...f?{harness:f}:{},...f?{model:e.model}:{}}),c||await (0,h.Qu)(b),(0,g.revalidatePath)("/"),(0,g.revalidatePath)(`/roots/${b}`),{ok:!0}}catch(a){return{ok:!1,error:p(a)}}}async function o(a){try{return await (0,h.L7)(a),(0,g.revalidatePath)("/"),{ok:!0}}catch(a){return{ok:!1,error:p(a)}}}function p(a){if(a instanceof Error){try{let b=JSON.parse(a.message);if(Array.isArray(b))return b.map(a=>"object"==typeof a&&null!==a&&"message"in a?String(a.message):String(a)).join("; ")}catch{}return a.message}return String(a)}i=(l.then?(await l)():l)[0],(0,k.D)([m,n,o]),(0,e.A)(m,"40729fee0b648778245f7a6709f7c4ccc259488c27",null),(0,e.A)(n,"70f83c0d6770af4b5ba243be9936a673972a2c391d",null),(0,e.A)(o,"405c3936f712954bcba498885697fd919a76a2de87",null),d()}catch(a){d(a)}})},79428:a=>{"use strict";a.exports=require("buffer")},79646:a=>{"use strict";a.exports=require("child_process")},79734:(a,b,c)=>{"use strict";c.d(b,{D:()=>j,z:()=>i});var d=c(73024),e=c(76760),f=c.n(e),g=c(879),h=c(54287);async function i(a){let b=f().resolve(a.root),c=f().resolve(a.scope),d=f().relative(b,c);if(d.startsWith(".."))throw Error(`Scope ${c} is outside root ${b}`);let e=d?(0,h.x9)(b,d):f().join(b,h.fW),i=[];for await(let a of(0,g.G)(c))"."!==a.rel&&(a.isDir||i.push(a.rel));return{root:b,scope:c,reflexScope:e,files:i}}async function j(a){let b=f().join(a,h.KZ);try{await d.promises.access(b);return}catch{}await d.promises.writeFile(b,"# .reflexignore — gitignore syntax\n# Patterns listed here are excluded from Reflex's analysis and watchers.\n\nnode_modules/\ndist/\nbuild/\n.venv/\n__pycache__/\n*.log\n","utf8")}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},90558:(a,b,c)=>{"use strict";c.d(b,{CommandBar:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call CommandBar() from the server but CommandBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/app/roots/[id]/_components/command-bar.tsx","CommandBar")},91899:(a,b,c)=>{"use strict";c.d(b,{g:()=>e});var d=c(3265);let e=(0,d.createServerReference)("40fedabc5057fbaea698aaf66b3375e51c17850be6",d.callServer,void 0,d.findSourceMapURL,"installCuratedAction")},95518:(a,b,c)=>{"use strict";c.d(b,{B:()=>e});var d=c(3265);let e=(0,d.createServerReference)("008e4879b6f27ca2c4e107002e41f7eb0f1ed7c90a",d.callServer,void 0,d.findSourceMapURL,"listCuratedAction")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[9803,2356,8404,9739,9631,192,5895,8056,7572,4842,5543,1105,133,6909,1986,9861,5754,3953,9328,7097,7987,2448,7782],()=>b(b.s=65686));module.exports=c})();
|