reflex-agent 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +97 -90
  3. package/.next/app-path-routes-manifest.json +3 -2
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/react-loadable-manifest.json +1 -1
  7. package/.next/routes-manifest.json +6 -0
  8. package/.next/server/app/_not-found/page.js +1 -1
  9. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  10. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/agents/[agentId]/page.js +2 -2
  12. package/.next/server/app/agents/[agentId]/page.js.nft.json +1 -1
  13. package/.next/server/app/agents/[agentId]/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/agents/[agentId]/respond/route.js +1 -1
  15. package/.next/server/app/api/agents/[agentId]/respond/route.js.nft.json +1 -1
  16. package/.next/server/app/api/agents/[agentId]/respond/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/images/[rootId]/[file]/route.js +1 -1
  18. package/.next/server/app/api/images/[rootId]/[file]/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/oauth/start/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/roots/[id]/attachments/route.js +0 -0
  22. package/.next/server/app/api/roots/[id]/attachments/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route.js +1 -1
  24. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route.js.nft.json +1 -1
  25. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route.js +1 -1
  27. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route.js.nft.json +1 -1
  28. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route.js +2 -2
  30. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route.js.nft.json +1 -1
  31. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/roots/[id]/dashboard/route.js +1 -1
  33. package/.next/server/app/api/roots/[id]/dashboard/route.js.nft.json +1 -1
  34. package/.next/server/app/api/roots/[id]/dashboard/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/roots/[id]/suggestions/route.js +1 -1
  36. package/.next/server/app/api/roots/[id]/suggestions/route.js.nft.json +1 -1
  37. package/.next/server/app/api/roots/[id]/suggestions/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/utilities/[scope]/[id]/bundle.js/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/utilities/[scope]/[id]/host/route.js +1 -1
  40. package/.next/server/app/api/utilities/[scope]/[id]/host/route.js.nft.json +1 -1
  41. package/.next/server/app/api/utilities/[scope]/[id]/host/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/utilities/[scope]/[id]/host-api.mjs/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/utilities/[scope]/[id]/host-ui.mjs/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/utilities/[scope]/[id]/iframe/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/utilities/[scope]/[id]/style.css/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/utilities/install-archive/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/audit/page.js +2 -2
  48. package/.next/server/app/audit/page.js.nft.json +1 -1
  49. package/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/dispatcher/page.js +2 -0
  51. package/.next/server/app/dispatcher/page.js.nft.json +1 -0
  52. package/.next/server/app/dispatcher/page_client-reference-manifest.js +1 -0
  53. package/.next/server/app/onboarding/page.js +3 -3
  54. package/.next/server/app/onboarding/page.js.nft.json +1 -1
  55. package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/page.js +2 -2
  57. package/.next/server/app/page.js.nft.json +1 -1
  58. package/.next/server/app/page_client-reference-manifest.js +1 -1
  59. package/.next/server/app/roots/[id]/chat/[topicId]/page.js +2 -2
  60. package/.next/server/app/roots/[id]/chat/[topicId]/page.js.nft.json +1 -1
  61. package/.next/server/app/roots/[id]/chat/[topicId]/page_client-reference-manifest.js +1 -1
  62. package/.next/server/app/roots/[id]/kb/[...slug]/page.js +2 -2
  63. package/.next/server/app/roots/[id]/kb/[...slug]/page.js.nft.json +1 -1
  64. package/.next/server/app/roots/[id]/kb/[...slug]/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/roots/[id]/memory/page.js +2 -2
  66. package/.next/server/app/roots/[id]/memory/page.js.nft.json +1 -1
  67. package/.next/server/app/roots/[id]/memory/page_client-reference-manifest.js +1 -1
  68. package/.next/server/app/roots/[id]/page.js +4 -4
  69. package/.next/server/app/roots/[id]/page.js.nft.json +1 -1
  70. package/.next/server/app/roots/[id]/page_client-reference-manifest.js +1 -1
  71. package/.next/server/app/roots/[id]/workflows/[wfId]/page.js +2 -2
  72. package/.next/server/app/roots/[id]/workflows/[wfId]/page.js.nft.json +1 -1
  73. package/.next/server/app/roots/[id]/workflows/[wfId]/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/roots/[id]/workflows/page.js +2 -2
  75. package/.next/server/app/roots/[id]/workflows/page.js.nft.json +1 -1
  76. package/.next/server/app/roots/[id]/workflows/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/roots/new/page.js +3 -3
  78. package/.next/server/app/roots/new/page.js.nft.json +1 -1
  79. package/.next/server/app/roots/new/page_client-reference-manifest.js +1 -1
  80. package/.next/server/app/settings/page.js +5 -5
  81. package/.next/server/app/settings/page.js.nft.json +1 -1
  82. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/share/[id]/file/page.js +2 -2
  84. package/.next/server/app/share/[id]/file/page.js.nft.json +1 -1
  85. package/.next/server/app/share/[id]/file/page_client-reference-manifest.js +1 -1
  86. package/.next/server/app/share/[id]/page.js +2 -2
  87. package/.next/server/app/share/[id]/page.js.nft.json +1 -1
  88. package/.next/server/app/share/[id]/page_client-reference-manifest.js +1 -1
  89. package/.next/server/app/utilities/[scope]/[id]/page.js +2 -2
  90. package/.next/server/app/utilities/[scope]/[id]/page.js.nft.json +1 -1
  91. package/.next/server/app/utilities/[scope]/[id]/page_client-reference-manifest.js +1 -1
  92. package/.next/server/app/utilities/page.js +2 -2
  93. package/.next/server/app/utilities/page.js.nft.json +1 -1
  94. package/.next/server/app/utilities/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app-paths-manifest.json +3 -2
  96. package/.next/server/chunks/1105.js +1 -1
  97. package/.next/server/chunks/1116.js +1 -1
  98. package/.next/server/chunks/1307.js +1 -0
  99. package/.next/server/chunks/1358.js +1 -1
  100. package/.next/server/chunks/1638.js +1 -1
  101. package/.next/server/chunks/174.js +1 -0
  102. package/.next/server/chunks/2485.js +3 -3
  103. package/.next/server/chunks/269.js +1 -1
  104. package/.next/server/chunks/285.js +40 -25
  105. package/.next/server/chunks/2884.js +3 -0
  106. package/.next/server/chunks/3240.js +1 -1
  107. package/.next/server/chunks/3332.js +1 -1
  108. package/.next/server/chunks/3377.js +1 -1
  109. package/.next/server/chunks/3834.js +1 -1
  110. package/.next/server/chunks/4031.js +2 -2
  111. package/.next/server/chunks/4066.js +1 -1
  112. package/.next/server/chunks/{7358.js → 4251.js} +36 -21
  113. package/.next/server/chunks/4578.js +1 -1
  114. package/.next/server/chunks/4602.js +4 -0
  115. package/.next/server/chunks/4611.js +1 -0
  116. package/.next/server/chunks/4812.js +1 -1
  117. package/.next/server/chunks/4840.js +1 -1
  118. package/.next/server/chunks/495.js +1 -0
  119. package/.next/server/chunks/5319.js +1 -1
  120. package/.next/server/chunks/569.js +1 -1
  121. package/.next/server/chunks/6142.js +1 -0
  122. package/.next/server/chunks/6720.js +1 -0
  123. package/.next/server/chunks/7220.js +1 -1
  124. package/.next/server/chunks/7430.js +1 -0
  125. package/.next/server/chunks/8511.js +1 -1
  126. package/.next/server/chunks/8576.js +2 -2
  127. package/.next/server/chunks/9098.js +1 -1
  128. package/.next/server/chunks/9179.js +2 -2
  129. package/.next/server/chunks/9809.js +1 -1
  130. package/.next/server/chunks/9835.js +1 -1
  131. package/.next/server/functions-config-manifest.json +3 -3
  132. package/.next/server/middleware-build-manifest.js +1 -1
  133. package/.next/server/middleware-manifest.json +5 -5
  134. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  135. package/.next/server/pages/500.html +1 -1
  136. package/.next/server/server-reference-manifest.js +1 -1
  137. package/.next/server/server-reference-manifest.json +1 -1
  138. package/.next/static/chunks/3845-66f364dff106ba18.js +1 -0
  139. package/.next/static/chunks/4108.738ffa1f849a5485.js +1 -0
  140. package/.next/static/chunks/5494-59e2a85639ebb34b.js +1 -0
  141. package/.next/static/chunks/{6560-d68897c384b289dc.js → 5968-21bac68b48bbccd3.js} +1 -1
  142. package/.next/static/chunks/{7037-7d9a908022d947da.js → 8151-e56a8e4752a0d552.js} +1 -1
  143. package/.next/static/chunks/8283-59e528f04d14b616.js +1 -0
  144. package/.next/static/chunks/{8775-c1985f74619ced58.js → 8775-890699c74c28df61.js} +1 -1
  145. package/.next/static/chunks/app/api/agents/[agentId]/respond/route-78f8e23cdd4112b9.js +1 -0
  146. package/.next/static/chunks/app/api/images/[rootId]/[file]/route-78f8e23cdd4112b9.js +1 -0
  147. package/.next/static/chunks/app/api/oauth/callback/route-78f8e23cdd4112b9.js +1 -0
  148. package/.next/static/chunks/app/api/oauth/start/route-78f8e23cdd4112b9.js +1 -0
  149. package/.next/static/chunks/app/api/roots/[id]/attachments/route-78f8e23cdd4112b9.js +1 -0
  150. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/send/route-78f8e23cdd4112b9.js +1 -0
  151. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/stop/route-78f8e23cdd4112b9.js +1 -0
  152. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/stream/route-78f8e23cdd4112b9.js +1 -0
  153. package/.next/static/chunks/app/api/roots/[id]/dashboard/route-78f8e23cdd4112b9.js +1 -0
  154. package/.next/static/chunks/app/api/roots/[id]/suggestions/route-78f8e23cdd4112b9.js +1 -0
  155. package/.next/static/chunks/app/api/utilities/[scope]/[id]/bundle.js/route-78f8e23cdd4112b9.js +1 -0
  156. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host/route-78f8e23cdd4112b9.js +1 -0
  157. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host-api.mjs/route-78f8e23cdd4112b9.js +1 -0
  158. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host-ui.mjs/route-78f8e23cdd4112b9.js +1 -0
  159. package/.next/static/chunks/app/api/utilities/[scope]/[id]/iframe/route-78f8e23cdd4112b9.js +1 -0
  160. package/.next/static/chunks/app/api/utilities/[scope]/[id]/style.css/route-78f8e23cdd4112b9.js +1 -0
  161. package/.next/static/chunks/app/api/utilities/install-archive/route-78f8e23cdd4112b9.js +1 -0
  162. package/.next/static/chunks/app/dispatcher/page-78f8e23cdd4112b9.js +1 -0
  163. package/.next/static/chunks/app/layout-186c97c612efcc2b.js +1 -0
  164. package/.next/static/chunks/app/onboarding/page-3917771d56a7020e.js +1 -0
  165. package/.next/static/chunks/app/page-298e012b6af8bfaa.js +1 -0
  166. package/.next/static/chunks/app/roots/[id]/chat/[topicId]/{page-ac80b75a50880fef.js → page-1048058013d15529.js} +1 -1
  167. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-cc4904953269d69c.js +1 -0
  168. package/.next/static/chunks/app/roots/[id]/layout-78f8e23cdd4112b9.js +1 -0
  169. package/.next/static/chunks/app/roots/[id]/memory/{page-ae9c453a059a7c48.js → page-ba0c5cfb119f3d9f.js} +1 -1
  170. package/.next/static/chunks/app/roots/[id]/page-dad905d102ac2cdd.js +1 -0
  171. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-5248846e8f56270e.js +1 -0
  172. package/.next/static/chunks/app/roots/[id]/workflows/page-4ca8b986a2441bb6.js +1 -0
  173. package/.next/static/chunks/app/roots/new/{page-530bbb61fefeadc8.js → page-6d42e9ea5d2274c0.js} +1 -1
  174. package/.next/static/chunks/app/settings/page-7478ef9e4699d815.js +1 -0
  175. package/.next/static/chunks/app/share/[id]/page-f6c7d5ecdade71e6.js +1 -0
  176. package/.next/static/chunks/app/utilities/[scope]/[id]/page-4a0895c7ccc143ff.js +1 -0
  177. package/.next/static/chunks/app/utilities/page-35a987453b809462.js +1 -0
  178. package/.next/static/chunks/{webpack-bf73daacb1b20997.js → webpack-9a901eb0ce37db73.js} +1 -1
  179. package/.next/static/lsd-85A_MGaBztIdQYLgO/_buildManifest.js +1 -0
  180. package/.next/trace +90 -90
  181. package/.next/types/app/dispatcher/page.ts +84 -0
  182. package/.next/types/routes.d.ts +2 -1
  183. package/.next/types/validator.ts +9 -0
  184. package/package.json +1 -1
  185. package/.next/server/chunks/2258.js +0 -1
  186. package/.next/server/chunks/3966.js +0 -1
  187. package/.next/server/chunks/4201.js +0 -3
  188. package/.next/server/chunks/8133.js +0 -1
  189. package/.next/server/chunks/8309.js +0 -4
  190. package/.next/static/1JOww-AoS7M9R4-h4i1EK/_buildManifest.js +0 -1
  191. package/.next/static/chunks/1807-29ed83a7f19aa21e.js +0 -1
  192. package/.next/static/chunks/3908-7e7f22cd1d3c47ed.js +0 -1
  193. package/.next/static/chunks/4108.1e51cb6f9a9638b0.js +0 -1
  194. package/.next/static/chunks/6559-329fd074773ef4f2.js +0 -1
  195. package/.next/static/chunks/app/api/agents/[agentId]/respond/route-5d0cd3b754198853.js +0 -1
  196. package/.next/static/chunks/app/api/images/[rootId]/[file]/route-5d0cd3b754198853.js +0 -1
  197. package/.next/static/chunks/app/api/oauth/callback/route-5d0cd3b754198853.js +0 -1
  198. package/.next/static/chunks/app/api/oauth/start/route-5d0cd3b754198853.js +0 -1
  199. package/.next/static/chunks/app/api/roots/[id]/attachments/route-5d0cd3b754198853.js +0 -1
  200. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/send/route-5d0cd3b754198853.js +0 -1
  201. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/stop/route-5d0cd3b754198853.js +0 -1
  202. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/stream/route-5d0cd3b754198853.js +0 -1
  203. package/.next/static/chunks/app/api/roots/[id]/dashboard/route-5d0cd3b754198853.js +0 -1
  204. package/.next/static/chunks/app/api/roots/[id]/suggestions/route-5d0cd3b754198853.js +0 -1
  205. package/.next/static/chunks/app/api/utilities/[scope]/[id]/bundle.js/route-5d0cd3b754198853.js +0 -1
  206. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host/route-5d0cd3b754198853.js +0 -1
  207. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host-api.mjs/route-5d0cd3b754198853.js +0 -1
  208. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host-ui.mjs/route-5d0cd3b754198853.js +0 -1
  209. package/.next/static/chunks/app/api/utilities/[scope]/[id]/iframe/route-5d0cd3b754198853.js +0 -1
  210. package/.next/static/chunks/app/api/utilities/[scope]/[id]/style.css/route-5d0cd3b754198853.js +0 -1
  211. package/.next/static/chunks/app/api/utilities/install-archive/route-5d0cd3b754198853.js +0 -1
  212. package/.next/static/chunks/app/layout-0385fc4c09255a22.js +0 -1
  213. package/.next/static/chunks/app/onboarding/page-e49a9a7a81bdc74e.js +0 -1
  214. package/.next/static/chunks/app/page-d11913f531a6920e.js +0 -1
  215. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-30c5a6767d469a99.js +0 -1
  216. package/.next/static/chunks/app/roots/[id]/layout-5d0cd3b754198853.js +0 -1
  217. package/.next/static/chunks/app/roots/[id]/page-074640697b6db60a.js +0 -1
  218. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-6e23d0a8b8bc570b.js +0 -1
  219. package/.next/static/chunks/app/roots/[id]/workflows/page-2a7d5c4f49b41e14.js +0 -1
  220. package/.next/static/chunks/app/settings/page-3b79c11349d439b5.js +0 -1
  221. package/.next/static/chunks/app/share/[id]/page-b5e74b24b29e3918.js +0 -1
  222. package/.next/static/chunks/app/utilities/[scope]/[id]/page-ec338e725c434ecd.js +0 -1
  223. package/.next/static/chunks/app/utilities/page-fb110c605c6dedb6.js +0 -1
  224. /package/.next/static/{1JOww-AoS7M9R4-h4i1EK → lsd-85A_MGaBztIdQYLgO}/_ssgManifest.js +0 -0
@@ -1,7 +1,7 @@
1
1
  "use strict";exports.id=8576,exports.ids=[1769,6435,8576],exports.modules={11769:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{O:()=>l,createWorktree:()=>o,hasGhCli:()=>n,hasRemote:()=>m,isGitRepo:()=>k,listWorktrees:()=>s,mergeWorktree:()=>p,removeWorktree:()=>r});var e=c(7206),f=c(73024),g=c(76760),h=c.n(g),i=a([e]);e=(i.then?(await i)():i)[0];let w=h().join(".reflex","worktrees"),x=".reflex/worktrees/";async function j(a,b){let c=await (0,e.execa)("git",b,{cwd:a,timeout:3e4,reject:!1});return{stdout:"string"==typeof c.stdout?c.stdout:"",stderr:"string"==typeof c.stderr?c.stderr:"",code:"number"==typeof c.exitCode?c.exitCode:1}}async function k(a){let b=await j(a,["rev-parse","--is-inside-work-tree"]);return 0===b.code&&"true"===b.stdout.trim()}async function l(a){let b=await j(a,["symbolic-ref","--short","refs/remotes/origin/HEAD"]);return 0===b.code&&b.stdout.trim()?b.stdout.trim().replace(/^origin\//,""):(await j(a,["rev-parse","--abbrev-ref","HEAD"])).stdout.trim()||"main"}async function m(a){let b=await j(a,["remote"]);return 0===b.code&&b.stdout.trim().length>0}async function n(){let a=await (0,e.execa)("gh",["--version"],{timeout:5e3,reject:!1});return"number"==typeof a.exitCode&&0===a.exitCode}async function o(a){if(!await k(a.rootPath))throw Error("createWorktree: project root is not a git repo");let b=h().join(a.rootPath,w,a.slug),c=a.baseRef??await l(a.rootPath);try{throw await f.promises.stat(b),Error(`createWorktree: ${b} already exists`)}catch(a){if("ENOENT"!==a.code)throw a}let d=await j(a.rootPath,["rev-parse","--verify",`refs/heads/${a.branch}`]);if(0===d.code)throw Error(`createWorktree: branch ${a.branch} already exists; remove it first`);await f.promises.mkdir(h().dirname(b),{recursive:!0});let e=await j(a.rootPath,["worktree","add","-b",a.branch,b,c]);if(0!==e.code)throw Error(`git worktree add failed (${e.code}): ${e.stderr.trim()||e.stdout.trim()}`);return await u(a.rootPath,b),await v(a.rootPath),{dir:b,branch:a.branch,baseRef:c}}async function p(a){let b=a.intoRef??await l(a.rootPath),c=(await j(a.rootPath,["rev-parse","--abbrev-ref","HEAD"])).stdout.trim(),d=await j(a.rootPath,["checkout",b]);if(0!==d.code)return{ok:!1,conflicts:[],error:`checkout ${b} failed: ${d.stderr.trim()}`};let e=!1===a.noFf?[]:["--no-ff"],f=await j(a.rootPath,["merge",...e,a.branch]);if(0!==f.code){let b=await q(a.rootPath);return{ok:!1,conflicts:b,error:f.stderr.trim()||f.stdout.trim()||"merge failed"}}return c&&c!==b&&await j(a.rootPath,["checkout",c]),{ok:!0,mergedInto:b}}async function q(a){let b=await j(a,["diff","--name-only","--diff-filter=U"]);return 0!==b.code?[]:b.stdout.split("\n").map(a=>a.trim()).filter(Boolean)}async function r(a){let b=h().join(a.rootPath,w,a.slug),c=a.force?["--force"]:[],d=await j(a.rootPath,["worktree","remove",...c,b]);if(0!==d.code)try{return await f.promises.stat(b),{ok:!1,error:d.stderr.trim()||d.stdout.trim()||"worktree remove failed"}}catch{}if(a.deleteBranch??!0){let b=a.force?"-D":"-d";await j(a.rootPath,["branch",b,a.branch])}return await j(a.rootPath,["worktree","prune"]),{ok:!0}}async function s(a){let b=await j(a,["worktree","list","--porcelain"]);if(0!==b.code)return[];let c=[],d=null;for(let e of b.stdout.split("\n")){let b=e.trimEnd();if(!b){d?.dir&&c.push(t(d,a)),d=null;continue}b.startsWith("worktree ")?(d?.dir&&c.push(t(d,a)),d={dir:b.slice(9)}):d&&(b.startsWith("HEAD ")?d.head=b.slice(5):b.startsWith("branch refs/heads/")?d.branch=b.slice(18):"detached"===b?d.detached=!0:"bare"===b&&(d.bare=!0))}return d?.dir&&c.push(t(d,a)),c}function t(a,b){return{dir:a.dir,...a.branch?{branch:a.branch}:{},head:a.head??"",detached:!!a.detached,bare:!!a.bare,isMain:h().resolve(a.dir)===h().resolve(b)}}async function u(a,b){let c=h().join(a,".reflex","memory");await f.promises.mkdir(h().dirname(c),{recursive:!0}),await f.promises.mkdir(h().join(b,".reflex"),{recursive:!0});let d=h().join(b,".reflex","memory");try{if((await f.promises.lstat(d)).isSymbolicLink()&&await f.promises.readlink(d)===c)return;await f.promises.rm(d,{recursive:!0,force:!0})}catch(a){if("ENOENT"!==a.code)throw a}await f.promises.symlink(c,d,"dir")}async function v(a){let b=h().join(a,".reflexignore"),c="";try{c=await f.promises.readFile(b,"utf8")}catch{}if(c.split("\n").map(a=>a.trim()).filter(Boolean).includes(x))return;let d=c?`${c.replace(/\n*$/,"")}
2
2
  ${x}
3
3
  `:`${x}
4
- `;await f.promises.writeFile(b,d,"utf8")}d()}catch(a){d(a)}})},16435:(a,b,c)=>{c.d(b,{U:()=>w});var d=c(29021),e=c(21820),f=c(33873),g=c(79646),h=c(4984),i=c(8086);async function j(a){var b;if(void 0===a)return{cleanup:async()=>{}};if(!("object"==typeof(b=a)&&null!==b&&!Array.isArray(b)))throw Error("outputSchema must be a plain JSON object");let c=await d.promises.mkdtemp(f.join(e.tmpdir(),"codex-output-schema-")),g=f.join(c,"schema.json"),h=async()=>{try{await d.promises.rm(c,{recursive:!0,force:!0})}catch{}};try{return await d.promises.writeFile(g,JSON.stringify(a),"utf8"),{schemaPath:g,cleanup:h}}catch(a){throw await h(),a}}var k=class{_exec;_options;_id;_threadOptions;get id(){return this._id}constructor(a,b,c,d=null){this._exec=a,this._options=b,this._id=d,this._threadOptions=c}async runStreamed(a,b={}){return{events:this.runStreamedInternal(a,b)}}async *runStreamedInternal(a,b={}){let{schemaPath:c,cleanup:d}=await j(b.outputSchema),e=this._threadOptions,{prompt:f,images:g}=function(a){if("string"==typeof a)return{prompt:a,images:[]};let b=[],c=[];for(let d of a)"text"===d.type?b.push(d.text):"local_image"===d.type&&c.push(d.path);return{prompt:b.join("\n\n"),images:c}}(a),h=this._exec.run({input:f,baseUrl:this._options.baseUrl,apiKey:this._options.apiKey,threadId:this._id,images:g,model:e?.model,sandboxMode:e?.sandboxMode,workingDirectory:e?.workingDirectory,skipGitRepoCheck:e?.skipGitRepoCheck,outputSchemaFile:c,modelReasoningEffort:e?.modelReasoningEffort,signal:b.signal,networkAccessEnabled:e?.networkAccessEnabled,webSearchMode:e?.webSearchMode,webSearchEnabled:e?.webSearchEnabled,approvalPolicy:e?.approvalPolicy,additionalDirectories:e?.additionalDirectories});try{for await(let a of h){let b;try{b=JSON.parse(a)}catch(b){throw Error(`Failed to parse item: ${a}`,{cause:b})}"thread.started"===b.type&&(this._id=b.thread_id),yield b}}finally{await d()}}async run(a,b={}){let c=this.runStreamedInternal(a,b),d=[],e="",f=null,g=null;for await(let a of c)if("item.completed"===a.type)"agent_message"===a.item.type&&(e=a.item.text),d.push(a.item);else if("turn.completed"===a.type)f=a.usage;else if("turn.failed"===a.type){g=a.error;break}if(g)throw Error(g.message);return{items:d,finalResponse:e,usage:f}}},l="CODEX_INTERNAL_ORIGINATOR_OVERRIDE",m="@openai/codex",n={"x86_64-unknown-linux-musl":"@openai/codex-linux-x64","aarch64-unknown-linux-musl":"@openai/codex-linux-arm64","x86_64-apple-darwin":"@openai/codex-darwin-x64","aarch64-apple-darwin":"@openai/codex-darwin-arm64","x86_64-pc-windows-msvc":"@openai/codex-win32-x64","aarch64-pc-windows-msvc":"@openai/codex-win32-arm64"},o=(0,i.createRequire)("file:///home/runner/work/reflex-agent/reflex-agent/node_modules/.pnpm/@openai+codex-sdk@0.133.0/node_modules/@openai/codex-sdk/dist/index.js"),p=class{executablePath;pathDirs;envOverride;configOverrides;constructor(a=null,b,c){if(a)this.executablePath=a,this.pathDirs=[];else{let a=function(){let a,{platform:b,arch:c}=process,d=null;switch(b){case"linux":case"android":switch(c){case"x64":d="x86_64-unknown-linux-musl";break;case"arm64":d="aarch64-unknown-linux-musl"}break;case"darwin":switch(c){case"x64":d="x86_64-apple-darwin";break;case"arm64":d="aarch64-apple-darwin"}break;case"win32":switch(c){case"x64":d="x86_64-pc-windows-msvc";break;case"arm64":d="aarch64-pc-windows-msvc"}}if(!d)throw Error(`Unsupported platform: ${b} (${c})`);let e=n[d];if(!e)throw Error(`Unsupported target triple: ${d}`);try{let b=o.resolve(`${m}/package.json`),c=(0,i.createRequire)(b).resolve(`${e}/package.json`);a=f.join(f.dirname(c),"vendor")}catch{throw Error(`Unable to locate Codex CLI binaries. Ensure ${m} is installed with optional dependencies.`)}let g=function(a,b,c){let d=f.join(a,b),e=f.join(d,"bin",c);if(u(e)&&u(f.join(d,"codex-package.json")))return{executablePath:e,pathDirs:t(f.join(d,"codex-path"))};let g=f.join(d,"codex",c);return u(g)?{executablePath:g,pathDirs:t(f.join(d,"path"))}:null}(a,d,"win32"===process.platform?"codex.exe":"codex");if(!g)throw Error(`Unable to locate Codex CLI binaries for ${d}. Ensure ${m} is installed with optional dependencies.`);return g}();this.executablePath=a.executablePath,this.pathDirs=a.pathDirs}this.envOverride=b,this.configOverrides=c}async *run(a){let b=["exec","--experimental-json"];if(this.configOverrides)for(let a of function(a){let b=[];return function a(b,c,d){if(!s(b))if(c)return void d.push(`${c}=${q(b,c)}`);else throw Error("Codex config overrides must be a plain object");let e=Object.entries(b);if(c||0!==e.length){if(c&&0===e.length)return void d.push(`${c}={}`);for(let[b,f]of e){if(!b)throw Error("Codex config override keys must be non-empty strings");if(void 0===f)continue;let e=c?`${c}.${b}`:b;s(f)?a(f,e,d):d.push(`${e}=${q(f,e)}`)}}}(a,"",b),b}(this.configOverrides))b.push("--config",a);if(a.baseUrl&&b.push("--config",`openai_base_url=${q(a.baseUrl,"openai_base_url")}`),a.model&&b.push("--model",a.model),a.sandboxMode&&b.push("--sandbox",a.sandboxMode),a.workingDirectory&&b.push("--cd",a.workingDirectory),a.additionalDirectories?.length)for(let c of a.additionalDirectories)b.push("--add-dir",c);if(a.skipGitRepoCheck&&b.push("--skip-git-repo-check"),a.outputSchemaFile&&b.push("--output-schema",a.outputSchemaFile),a.modelReasoningEffort&&b.push("--config",`model_reasoning_effort="${a.modelReasoningEffort}"`),void 0!==a.networkAccessEnabled&&b.push("--config",`sandbox_workspace_write.network_access=${a.networkAccessEnabled}`),a.webSearchMode?b.push("--config",`web_search="${a.webSearchMode}"`):!0===a.webSearchEnabled?b.push("--config",'web_search="live"'):!1===a.webSearchEnabled&&b.push("--config",'web_search="disabled"'),a.approvalPolicy&&b.push("--config",`approval_policy="${a.approvalPolicy}"`),a.threadId&&b.push("resume",a.threadId),a.images?.length)for(let c of a.images)b.push("--image",c);let c={};if(this.envOverride)Object.assign(c,this.envOverride);else for(let[a,b]of Object.entries(process.env))void 0!==b&&(c[a]=b);c[l]||(c[l]="codex_sdk_ts"),a.apiKey&&(c.CODEX_API_KEY=a.apiKey),this.pathDirs.length>0&&function(a,b,c=process.platform){let d=function(a,b){if("win32"!==b)return"PATH";let c=Object.keys(a).filter(a=>"path"===a.toLowerCase());return c.includes("Path")?"Path":c.at(-1)??"PATH"}(a,c);if("win32"===c)for(let b of Object.keys(a))"path"===b.toLowerCase()&&b!==d&&delete a[b];let e=(a[d]??"").split(f.delimiter).filter(a=>a.length>0&&!b.includes(a));a[d]=[...b,...e].join(f.delimiter)}(c,this.pathDirs);let d=(0,g.spawn)(this.executablePath,b,{env:c,signal:a.signal}),e=null;if(d.once("error",a=>e=a),!d.stdin)throw d.kill(),Error("Child process has no stdin");if(d.stdin.write(a.input),d.stdin.end(),!d.stdout)throw d.kill(),Error("Child process has no stdout");let i=[];d.stderr&&d.stderr.on("data",a=>{i.push(a)});let j=new Promise(a=>{d.once("exit",(b,c)=>{a({code:b,signal:c})})}),k=h.createInterface({input:d.stdout,crlfDelay:1/0});try{for await(let a of k)yield a;if(e)throw e;let{code:a,signal:b}=await j;if(0!==a||b){let c=Buffer.concat(i),d=b?`signal ${b}`:`code ${a??1}`;throw Error(`Codex Exec exited with ${d}: ${c.toString("utf8")}`)}}finally{k.close(),d.removeAllListeners();try{d.killed||d.kill()}catch{}}}};function q(a,b){if("string"==typeof a)return JSON.stringify(a);if("number"==typeof a){if(!Number.isFinite(a))throw Error(`Codex config override at ${b} must be a finite number`);return`${a}`}if("boolean"==typeof a)return a?"true":"false";if(Array.isArray(a)){let c=a.map((a,c)=>q(a,`${b}[${c}]`));return`[${c.join(", ")}]`}if(s(a)){let d=[];for(let[e,f]of Object.entries(a)){var c;if(!e)throw Error("Codex config override keys must be non-empty strings");void 0!==f&&d.push(`${r.test(c=e)?c:JSON.stringify(c)} = ${q(f,`${b}.${e}`)}`)}return`{${d.join(", ")}}`}else if(null===a)throw Error(`Codex config override at ${b} cannot be null`);else{let c=typeof a;throw Error(`Unsupported Codex config override value at ${b}: ${c}`)}}var r=/^[A-Za-z0-9_-]+$/;function s(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function t(...a){return a.filter(v)}function u(a){try{return(0,d.statSync)(a).isFile()}catch{return!1}}function v(a){try{return(0,d.statSync)(a).isDirectory()}catch{return!1}}var w=class{exec;options;constructor(a={}){let{codexPathOverride:b,env:c,config:d}=a;this.exec=new p(b,c,d),this.options=a}startThread(a={}){return new k(this.exec,this.options,a)}resumeThread(a,b={}){return new k(this.exec,this.options,b,a)}}},47742:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{dispatchTask:()=>n});var e=c(24576),f=c(17640),g=c(56843),h=c(31900),i=c(24058),j=c(2787),k=c(11769),l=c(75207),m=a([h,i,k]);async function n(a){let b=await (0,e.Zn)(a.rootId);if(!b)return{ok:!1,error:"root not found"};let c=await (0,j.getTask)(b.path,a.taskId);if(!c)return{ok:!1,error:"task not found"};if("in-progress"===c.status)return{ok:!1,error:"task already dispatched (topic "+c.topicId+")"};let d=l.Yj[c.type],i=await (0,f.M)(),m=i.assignments.chat,n=a.harness??c.agentRequested??m.harness,p=a.model??m.model,q=c.worktree;if(d.isCode&&!q&&await (0,k.isGitRepo)(b.path))try{let a=`task/${c.title.normalize("NFKD").toLowerCase().replace(/[^a-z0-9-/]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60)||c.id}`,d=await (0,k.O)(b.path);q=await (0,k.createWorktree)({rootPath:b.path,slug:c.id,branch:a,baseRef:d})}catch(a){return{ok:!1,error:"worktree create failed: "+(a instanceof Error?a.message:String(a))}}let r=[];for(let b of c.pre){let c=await o(a.rootId,b);c&&r.push(c)}let s=d.defaultSkill?`/skill ${d.defaultSkill}
4
+ `;await f.promises.writeFile(b,d,"utf8")}d()}catch(a){d(a)}})},16435:(a,b,c)=>{c.d(b,{U:()=>w});var d=c(29021),e=c(21820),f=c(33873),g=c(79646),h=c(4984),i=c(8086);async function j(a){var b;if(void 0===a)return{cleanup:async()=>{}};if(!("object"==typeof(b=a)&&null!==b&&!Array.isArray(b)))throw Error("outputSchema must be a plain JSON object");let c=await d.promises.mkdtemp(f.join(e.tmpdir(),"codex-output-schema-")),g=f.join(c,"schema.json"),h=async()=>{try{await d.promises.rm(c,{recursive:!0,force:!0})}catch{}};try{return await d.promises.writeFile(g,JSON.stringify(a),"utf8"),{schemaPath:g,cleanup:h}}catch(a){throw await h(),a}}var k=class{_exec;_options;_id;_threadOptions;get id(){return this._id}constructor(a,b,c,d=null){this._exec=a,this._options=b,this._id=d,this._threadOptions=c}async runStreamed(a,b={}){return{events:this.runStreamedInternal(a,b)}}async *runStreamedInternal(a,b={}){let{schemaPath:c,cleanup:d}=await j(b.outputSchema),e=this._threadOptions,{prompt:f,images:g}=function(a){if("string"==typeof a)return{prompt:a,images:[]};let b=[],c=[];for(let d of a)"text"===d.type?b.push(d.text):"local_image"===d.type&&c.push(d.path);return{prompt:b.join("\n\n"),images:c}}(a),h=this._exec.run({input:f,baseUrl:this._options.baseUrl,apiKey:this._options.apiKey,threadId:this._id,images:g,model:e?.model,sandboxMode:e?.sandboxMode,workingDirectory:e?.workingDirectory,skipGitRepoCheck:e?.skipGitRepoCheck,outputSchemaFile:c,modelReasoningEffort:e?.modelReasoningEffort,signal:b.signal,networkAccessEnabled:e?.networkAccessEnabled,webSearchMode:e?.webSearchMode,webSearchEnabled:e?.webSearchEnabled,approvalPolicy:e?.approvalPolicy,additionalDirectories:e?.additionalDirectories});try{for await(let a of h){let b;try{b=JSON.parse(a)}catch(b){throw Error(`Failed to parse item: ${a}`,{cause:b})}"thread.started"===b.type&&(this._id=b.thread_id),yield b}}finally{await d()}}async run(a,b={}){let c=this.runStreamedInternal(a,b),d=[],e="",f=null,g=null;for await(let a of c)if("item.completed"===a.type)"agent_message"===a.item.type&&(e=a.item.text),d.push(a.item);else if("turn.completed"===a.type)f=a.usage;else if("turn.failed"===a.type){g=a.error;break}if(g)throw Error(g.message);return{items:d,finalResponse:e,usage:f}}},l="CODEX_INTERNAL_ORIGINATOR_OVERRIDE",m="@openai/codex",n={"x86_64-unknown-linux-musl":"@openai/codex-linux-x64","aarch64-unknown-linux-musl":"@openai/codex-linux-arm64","x86_64-apple-darwin":"@openai/codex-darwin-x64","aarch64-apple-darwin":"@openai/codex-darwin-arm64","x86_64-pc-windows-msvc":"@openai/codex-win32-x64","aarch64-pc-windows-msvc":"@openai/codex-win32-arm64"},o=(0,i.createRequire)("file:///home/runner/work/reflex-agent/reflex-agent/node_modules/.pnpm/@openai+codex-sdk@0.133.0/node_modules/@openai/codex-sdk/dist/index.js"),p=class{executablePath;pathDirs;envOverride;configOverrides;constructor(a=null,b,c){if(a)this.executablePath=a,this.pathDirs=[];else{let a=function(){let a,{platform:b,arch:c}=process,d=null;switch(b){case"linux":case"android":switch(c){case"x64":d="x86_64-unknown-linux-musl";break;case"arm64":d="aarch64-unknown-linux-musl"}break;case"darwin":switch(c){case"x64":d="x86_64-apple-darwin";break;case"arm64":d="aarch64-apple-darwin"}break;case"win32":switch(c){case"x64":d="x86_64-pc-windows-msvc";break;case"arm64":d="aarch64-pc-windows-msvc"}}if(!d)throw Error(`Unsupported platform: ${b} (${c})`);let e=n[d];if(!e)throw Error(`Unsupported target triple: ${d}`);try{let b=o.resolve(`${m}/package.json`),c=(0,i.createRequire)(b).resolve(`${e}/package.json`);a=f.join(f.dirname(c),"vendor")}catch{throw Error(`Unable to locate Codex CLI binaries. Ensure ${m} is installed with optional dependencies.`)}let g=function(a,b,c){let d=f.join(a,b),e=f.join(d,"bin",c);if(u(e)&&u(f.join(d,"codex-package.json")))return{executablePath:e,pathDirs:t(f.join(d,"codex-path"))};let g=f.join(d,"codex",c);return u(g)?{executablePath:g,pathDirs:t(f.join(d,"path"))}:null}(a,d,"win32"===process.platform?"codex.exe":"codex");if(!g)throw Error(`Unable to locate Codex CLI binaries for ${d}. Ensure ${m} is installed with optional dependencies.`);return g}();this.executablePath=a.executablePath,this.pathDirs=a.pathDirs}this.envOverride=b,this.configOverrides=c}async *run(a){let b=["exec","--experimental-json"];if(this.configOverrides)for(let a of function(a){let b=[];return function a(b,c,d){if(!s(b))if(c)return void d.push(`${c}=${q(b,c)}`);else throw Error("Codex config overrides must be a plain object");let e=Object.entries(b);if(c||0!==e.length){if(c&&0===e.length)return void d.push(`${c}={}`);for(let[b,f]of e){if(!b)throw Error("Codex config override keys must be non-empty strings");if(void 0===f)continue;let e=c?`${c}.${b}`:b;s(f)?a(f,e,d):d.push(`${e}=${q(f,e)}`)}}}(a,"",b),b}(this.configOverrides))b.push("--config",a);if(a.baseUrl&&b.push("--config",`openai_base_url=${q(a.baseUrl,"openai_base_url")}`),a.model&&b.push("--model",a.model),a.sandboxMode&&b.push("--sandbox",a.sandboxMode),a.workingDirectory&&b.push("--cd",a.workingDirectory),a.additionalDirectories?.length)for(let c of a.additionalDirectories)b.push("--add-dir",c);if(a.skipGitRepoCheck&&b.push("--skip-git-repo-check"),a.outputSchemaFile&&b.push("--output-schema",a.outputSchemaFile),a.modelReasoningEffort&&b.push("--config",`model_reasoning_effort="${a.modelReasoningEffort}"`),void 0!==a.networkAccessEnabled&&b.push("--config",`sandbox_workspace_write.network_access=${a.networkAccessEnabled}`),a.webSearchMode?b.push("--config",`web_search="${a.webSearchMode}"`):!0===a.webSearchEnabled?b.push("--config",'web_search="live"'):!1===a.webSearchEnabled&&b.push("--config",'web_search="disabled"'),a.approvalPolicy&&b.push("--config",`approval_policy="${a.approvalPolicy}"`),a.threadId&&b.push("resume",a.threadId),a.images?.length)for(let c of a.images)b.push("--image",c);let c={};if(this.envOverride)Object.assign(c,this.envOverride);else for(let[a,b]of Object.entries(process.env))void 0!==b&&(c[a]=b);c[l]||(c[l]="codex_sdk_ts"),a.apiKey&&(c.CODEX_API_KEY=a.apiKey),this.pathDirs.length>0&&function(a,b,c=process.platform){let d=function(a,b){if("win32"!==b)return"PATH";let c=Object.keys(a).filter(a=>"path"===a.toLowerCase());return c.includes("Path")?"Path":c.at(-1)??"PATH"}(a,c);if("win32"===c)for(let b of Object.keys(a))"path"===b.toLowerCase()&&b!==d&&delete a[b];let e=(a[d]??"").split(f.delimiter).filter(a=>a.length>0&&!b.includes(a));a[d]=[...b,...e].join(f.delimiter)}(c,this.pathDirs);let d=(0,g.spawn)(this.executablePath,b,{env:c,signal:a.signal}),e=null;if(d.once("error",a=>e=a),!d.stdin)throw d.kill(),Error("Child process has no stdin");if(d.stdin.write(a.input),d.stdin.end(),!d.stdout)throw d.kill(),Error("Child process has no stdout");let i=[];d.stderr&&d.stderr.on("data",a=>{i.push(a)});let j=new Promise(a=>{d.once("exit",(b,c)=>{a({code:b,signal:c})})}),k=h.createInterface({input:d.stdout,crlfDelay:1/0});try{for await(let a of k)yield a;if(e)throw e;let{code:a,signal:b}=await j;if(0!==a||b){let c=Buffer.concat(i),d=b?`signal ${b}`:`code ${a??1}`;throw Error(`Codex Exec exited with ${d}: ${c.toString("utf8")}`)}}finally{k.close(),d.removeAllListeners();try{d.killed||d.kill()}catch{}}}};function q(a,b){if("string"==typeof a)return JSON.stringify(a);if("number"==typeof a){if(!Number.isFinite(a))throw Error(`Codex config override at ${b} must be a finite number`);return`${a}`}if("boolean"==typeof a)return a?"true":"false";if(Array.isArray(a)){let c=a.map((a,c)=>q(a,`${b}[${c}]`));return`[${c.join(", ")}]`}if(s(a)){let d=[];for(let[e,f]of Object.entries(a)){var c;if(!e)throw Error("Codex config override keys must be non-empty strings");void 0!==f&&d.push(`${r.test(c=e)?c:JSON.stringify(c)} = ${q(f,`${b}.${e}`)}`)}return`{${d.join(", ")}}`}else if(null===a)throw Error(`Codex config override at ${b} cannot be null`);else{let c=typeof a;throw Error(`Unsupported Codex config override value at ${b}: ${c}`)}}var r=/^[A-Za-z0-9_-]+$/;function s(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function t(...a){return a.filter(v)}function u(a){try{return(0,d.statSync)(a).isFile()}catch{return!1}}function v(a){try{return(0,d.statSync)(a).isDirectory()}catch{return!1}}var w=class{exec;options;constructor(a={}){let{codexPathOverride:b,env:c,config:d}=a;this.exec=new p(b,c,d),this.options=a}startThread(a={}){return new k(this.exec,this.options,a)}resumeThread(a,b={}){return new k(this.exec,this.options,b,a)}}},47742:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{dispatchTask:()=>n});var e=c(24576),f=c(17640),g=c(56843),h=c(31900),i=c(24058),j=c(2787),k=c(11769),l=c(75207),m=a([h,i,k]);async function n(a){let b=await (0,e.getRoot)(a.rootId);if(!b)return{ok:!1,error:"root not found"};let c=await (0,j.getTask)(b.path,a.taskId);if(!c)return{ok:!1,error:"task not found"};if("in-progress"===c.status)return{ok:!1,error:"task already dispatched (topic "+c.topicId+")"};let d=l.Yj[c.type],i=await (0,f.loadSettings)(),m=i.assignments.chat,n=a.harness??c.agentRequested??m.harness,p=a.model??m.model,q=c.worktree;if(d.isCode&&!q&&await (0,k.isGitRepo)(b.path))try{let a=`task/${c.title.normalize("NFKD").toLowerCase().replace(/[^a-z0-9-/]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60)||c.id}`,d=await (0,k.O)(b.path);q=await (0,k.createWorktree)({rootPath:b.path,slug:c.id,branch:a,baseRef:d})}catch(a){return{ok:!1,error:"worktree create failed: "+(a instanceof Error?a.message:String(a))}}let r=[];for(let b of c.pre){let c=await o(a.rootId,b);c&&r.push(c)}let s=d.defaultSkill?`/skill ${d.defaultSkill}
5
5
 
6
- `:"",t=[`${s}You are now working on task ${c.id}: "${c.title}".`,"","## Task description",c.body||"(no description)"];r.length>0&&t.push("","## Pre-task context (from hooks)",...r),q&&t.push("","## Working directory",`You are inside a git worktree at \`${q.dir}\` on branch \`${q.branch}\`. Commit changes here; main branch is untouched until the user clicks Merge.`),t.push("",'When done, mark the task as `done` via `<<reflex:task-update>>{"id":"'+c.id+'","status":"done"}<</reflex:task-update>>`.');let u=t.join("\n"),v=q?.dir??b.path,w=await (0,g.OY)({root:v,firstMessage:c.title,harness:n,model:p,language:i.language,taskId:c.id}),x=await (0,h.W)({rootId:a.rootId,topicId:w.meta.id,message:u,attachments:[]});return"error"in x?{ok:!1,error:x.error}:(await (0,j.updateTask)(b.path,c.id,{topicId:w.meta.id,agentRequested:n,worktree:q,status:"in-progress"}),{ok:!0,taskId:c.id,topicId:w.meta.id,...q?{worktree:{dir:q.dir,branch:q.branch}}:{}})}async function o(a,b){if("chat"===b.kind)return b.prompt??null;if("workflow"===b.kind&&b.id)try{let c=await (0,i.runWorkflow)(a,b.id);if(!c.ok)return null;let d=[];for(let a of c.run.steps){let b=a.output;null!=b&&d.push("string"==typeof b?b:JSON.stringify(b,null,2))}let e=d.join("\n\n").trim();return e?`### workflow:${b.id}
6
+ `:"",t=[`${s}You are now working on task ${c.id}: "${c.title}".`,"","## Task description",c.body||"(no description)"];r.length>0&&t.push("","## Pre-task context (from hooks)",...r),q&&t.push("","## Working directory",`You are inside a git worktree at \`${q.dir}\` on branch \`${q.branch}\`. Commit changes here; main branch is untouched until the user clicks Merge.`),t.push("",'When done, mark the task as `done` via `<<reflex:task-update>>{"id":"'+c.id+'","status":"done"}<</reflex:task-update>>`.');let u=t.join("\n"),v=q?.dir??b.path,w=await (0,g.createTopic)({root:v,firstMessage:c.title,harness:n,model:p,language:i.language,taskId:c.id}),x=await (0,h.startOrchestratorTurn)({rootId:a.rootId,topicId:w.meta.id,message:u,attachments:[]});return"error"in x?{ok:!1,error:x.error}:(await (0,j.updateTask)(b.path,c.id,{topicId:w.meta.id,agentRequested:n,worktree:q,status:"in-progress"}),{ok:!0,taskId:c.id,topicId:w.meta.id,...q?{worktree:{dir:q.dir,branch:q.branch}}:{}})}async function o(a,b){if("chat"===b.kind)return b.prompt??null;if("workflow"===b.kind&&b.id)try{let c=await (0,i.runWorkflow)(a,b.id);if(!c.ok)return null;let d=[];for(let a of c.run.steps){let b=a.output;null!=b&&d.push("string"==typeof b?b:JSON.stringify(b,null,2))}let e=d.join("\n\n").trim();return e?`### workflow:${b.id}
7
7
  ${e}`:null}catch{}return null}[h,i,k]=m.then?(await m)():m,d()}catch(a){d(a)}})}};
@@ -1 +1 @@
1
- "use strict";exports.id=9098,exports.ids=[9098],exports.modules={39098:(a,b,c)=>{c.d(b,{summarizeYoutubeAction:()=>n});var d=c(73745);c(66493);var e=c(70333);let f=globalThis.__reflexGeminiModelsCache??new Map;async function g(a){let b,c=await (0,e.CG)("gemini");if(!c)throw Error("Gemini API key not configured");let d=c.slice(0,16),g=f.get(d);if(!a?.refresh&&g&&Date.now()-g.fetchedAt<36e5)return g.models;let i=[];do{let a=new URL("https://generativelanguage.googleapis.com/v1beta/models");a.searchParams.set("key",c),a.searchParams.set("pageSize","100"),b&&a.searchParams.set("pageToken",b);let d=await fetch(a.toString(),{headers:{Accept:"application/json"}});if(!d.ok){let a=await d.text();throw Error(`models.list HTTP ${d.status}: ${a.slice(0,500)}`)}let e=await d.json();for(let a of e.models??[]){if(!a.name)continue;let b=a.supportedGenerationMethods??[];if(!b.includes("generateContent"))continue;let c=a.name.toLowerCase();!c.includes("embedding")&&(c.includes("aqa")||i.push({name:a.name,id:a.name.replace(/^models\//,""),...a.displayName?{displayName:a.displayName}:{},...a.description?{description:a.description}:{},...void 0!==a.inputTokenLimit?{inputTokenLimit:a.inputTokenLimit}:{},...void 0!==a.outputTokenLimit?{outputTokenLimit:a.outputTokenLimit}:{},supportedGenerationMethods:b}))}b=e.nextPageToken}while(b);return i.sort(h),f.set(d,{fetchedAt:Date.now(),models:i}),i}function h(a,b){let c=i(a.id),d=i(b.id);if(c!==d)return c-d;let e=j(a.id),f=j(b.id);return e!==f?f-e:a.id.localeCompare(b.id)}function i(a){return a.endsWith("flash-latest")?0:a.includes("flash")&&!a.includes("lite")?1:a.includes("flash-lite")?2:a.endsWith("pro-latest")||a.includes("pro")?3:4}function j(a){let b=/gemini-(\d+)\.(\d+)/.exec(a);return b?100*Number(b[1])+Number(b[2]):0}async function k(a="general"){let b=await (0,e.$L)("gemini");if("video"===a&&b?.videoModel)return b.videoModel;if(b?.model)return b.model;try{let a=await g();if(a.length>0)return a[0].id}catch{}return"gemini-flash-latest"}async function l(a){let b=`https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(a.model)}:generateContent?key=${encodeURIComponent(a.apiKey)}`,c=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:a.contents,...a.generationConfig?{generationConfig:a.generationConfig}:{}})}),d=await c.text();if(!c.ok)throw Error(`Gemini HTTP ${c.status}: ${d.slice(0,800)}`);let e=JSON.parse(d);if(e.promptFeedback?.blockReason)throw Error(`Gemini blocked: ${e.promptFeedback.blockReason}`);return{text:(e.candidates??[]).flatMap(a=>a.content?.parts??[]).map(a=>a.text??"").filter(Boolean).join("\n").trim(),raw:e}}globalThis.__reflexGeminiModelsCache=f;var m=c(36017);async function n(a){var b;let c=await (0,e.CG)("gemini");if(!c)return{ok:!1,needsKey:!0,error:"Gemini API key is not saved — enter it to summarize videos."};let d=(await (0,m.M)()).language??"russian",f=a.prompt?.trim()||(b=d,/russ/i.test(b)||RegExp("рус","i").test(b)?"Produce a structured summary of this YouTube video:\n\n1. One paragraph — what the video is about and who it's for.\n2. Main points as a bulleted list with `[mm:ss]` timestamps.\n3. Notable quotes (any memorable phrases) — with timestamps.\n4. If diagrams / slides / code are shown — briefly describe them.\n5. 1-3 sentence takeaway: the main point worth retaining.\n\nRespond in Russian, concisely. No filler.":"Produce a structured summary of this YouTube video:\n\n1. One paragraph — what the video is about and who it's for.\n2. Main points as a bulleted list with `[mm:ss]` timestamps.\n3. Notable quotes (if any) with timestamps.\n4. If diagrams / slides / code are shown — briefly describe them.\n5. 1-3 sentence takeaway.\n\nBe concise. No filler."),g=a.modelOverride?.trim()||await k("video");try{let{text:b}=await l({model:g,apiKey:c,contents:[{parts:[{file_data:{file_uri:a.url,mime_type:"video/*"}},{text:f}]}]});if(!b)return{ok:!1,error:"Gemini returned an empty response — the video may be unavailable or private."};return{ok:!0,text:b,model:g}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function o(a){try{if(!a.trim())return{ok:!1,error:"API key is empty"};return await (0,e.Pc)("gemini",a),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function p(a){return{ok:!0,present:await (0,e.hasApiKey)(a)}}async function q(a=!1){try{let b=await g({refresh:a});return{ok:!0,models:b.map(a=>({id:a.id,...a.displayName?{displayName:a.displayName}:{},...a.description?{description:a.description}:{},...void 0!==a.inputTokenLimit?{inputTokenLimit:a.inputTokenLimit}:{},...void 0!==a.outputTokenLimit?{outputTokenLimit:a.outputTokenLimit}:{}})),currentModel:await k("general"),currentVideoModel:await k("video")}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function r(a){try{return await (0,e.ND)("gemini",a),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}(0,c(63781).D)([n,o,p,q,r]),(0,d.A)(n,"40d74dc436dbcd366c992c8e38b8c20b537f74312d",null),(0,d.A)(o,"407270149a5f9d10918bb1d5c8a88d073833e984f0",null),(0,d.A)(p,"409693f35a96e7f1275954977fe1d0ab4283038cb4",null),(0,d.A)(q,"402908ce555981aeb573460dea9cacb1928d7fd178",null),(0,d.A)(r,"403eb9ba50804e9edc123d54957a0c65d551d37144",null)}};
1
+ "use strict";exports.id=9098,exports.ids=[9098],exports.modules={39098:(a,b,c)=>{c.d(b,{summarizeYoutubeAction:()=>n});var d=c(73745);c(66493);var e=c(70333);let f=globalThis.__reflexGeminiModelsCache??new Map;async function g(a){let b,c=await (0,e.CG)("gemini");if(!c)throw Error("Gemini API key not configured");let d=c.slice(0,16),g=f.get(d);if(!a?.refresh&&g&&Date.now()-g.fetchedAt<36e5)return g.models;let i=[];do{let a=new URL("https://generativelanguage.googleapis.com/v1beta/models");a.searchParams.set("key",c),a.searchParams.set("pageSize","100"),b&&a.searchParams.set("pageToken",b);let d=await fetch(a.toString(),{headers:{Accept:"application/json"}});if(!d.ok){let a=await d.text();throw Error(`models.list HTTP ${d.status}: ${a.slice(0,500)}`)}let e=await d.json();for(let a of e.models??[]){if(!a.name)continue;let b=a.supportedGenerationMethods??[];if(!b.includes("generateContent"))continue;let c=a.name.toLowerCase();!c.includes("embedding")&&(c.includes("aqa")||i.push({name:a.name,id:a.name.replace(/^models\//,""),...a.displayName?{displayName:a.displayName}:{},...a.description?{description:a.description}:{},...void 0!==a.inputTokenLimit?{inputTokenLimit:a.inputTokenLimit}:{},...void 0!==a.outputTokenLimit?{outputTokenLimit:a.outputTokenLimit}:{},supportedGenerationMethods:b}))}b=e.nextPageToken}while(b);return i.sort(h),f.set(d,{fetchedAt:Date.now(),models:i}),i}function h(a,b){let c=i(a.id),d=i(b.id);if(c!==d)return c-d;let e=j(a.id),f=j(b.id);return e!==f?f-e:a.id.localeCompare(b.id)}function i(a){return a.endsWith("flash-latest")?0:a.includes("flash")&&!a.includes("lite")?1:a.includes("flash-lite")?2:a.endsWith("pro-latest")||a.includes("pro")?3:4}function j(a){let b=/gemini-(\d+)\.(\d+)/.exec(a);return b?100*Number(b[1])+Number(b[2]):0}async function k(a="general"){let b=await (0,e.$L)("gemini");if("video"===a&&b?.videoModel)return b.videoModel;if(b?.model)return b.model;try{let a=await g();if(a.length>0)return a[0].id}catch{}return"gemini-flash-latest"}async function l(a){let b=`https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(a.model)}:generateContent?key=${encodeURIComponent(a.apiKey)}`,c=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:a.contents,...a.generationConfig?{generationConfig:a.generationConfig}:{}})}),d=await c.text();if(!c.ok)throw Error(`Gemini HTTP ${c.status}: ${d.slice(0,800)}`);let e=JSON.parse(d);if(e.promptFeedback?.blockReason)throw Error(`Gemini blocked: ${e.promptFeedback.blockReason}`);return{text:(e.candidates??[]).flatMap(a=>a.content?.parts??[]).map(a=>a.text??"").filter(Boolean).join("\n").trim(),raw:e}}globalThis.__reflexGeminiModelsCache=f;var m=c(36017);async function n(a){var b;let c=await (0,e.CG)("gemini");if(!c)return{ok:!1,needsKey:!0,error:"Gemini API key is not saved — enter it to summarize videos."};let d=(await (0,m.loadSettings)()).language??"russian",f=a.prompt?.trim()||(b=d,/russ/i.test(b)||RegExp("рус","i").test(b)?"Produce a structured summary of this YouTube video:\n\n1. One paragraph — what the video is about and who it's for.\n2. Main points as a bulleted list with `[mm:ss]` timestamps.\n3. Notable quotes (any memorable phrases) — with timestamps.\n4. If diagrams / slides / code are shown — briefly describe them.\n5. 1-3 sentence takeaway: the main point worth retaining.\n\nRespond in Russian, concisely. No filler.":"Produce a structured summary of this YouTube video:\n\n1. One paragraph — what the video is about and who it's for.\n2. Main points as a bulleted list with `[mm:ss]` timestamps.\n3. Notable quotes (if any) with timestamps.\n4. If diagrams / slides / code are shown — briefly describe them.\n5. 1-3 sentence takeaway.\n\nBe concise. No filler."),g=a.modelOverride?.trim()||await k("video");try{let{text:b}=await l({model:g,apiKey:c,contents:[{parts:[{file_data:{file_uri:a.url,mime_type:"video/*"}},{text:f}]}]});if(!b)return{ok:!1,error:"Gemini returned an empty response — the video may be unavailable or private."};return{ok:!0,text:b,model:g}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function o(a){try{if(!a.trim())return{ok:!1,error:"API key is empty"};return await (0,e.Pc)("gemini",a),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function p(a){return{ok:!0,present:await (0,e.hasApiKey)(a)}}async function q(a=!1){try{let b=await g({refresh:a});return{ok:!0,models:b.map(a=>({id:a.id,...a.displayName?{displayName:a.displayName}:{},...a.description?{description:a.description}:{},...void 0!==a.inputTokenLimit?{inputTokenLimit:a.inputTokenLimit}:{},...void 0!==a.outputTokenLimit?{outputTokenLimit:a.outputTokenLimit}:{}})),currentModel:await k("general"),currentVideoModel:await k("video")}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function r(a){try{return await (0,e.ND)("gemini",a),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}(0,c(63781).D)([n,o,p,q,r]),(0,d.A)(n,"409eba05bdd5955bcdc225be3b30f7a20a10d9f4a5",null),(0,d.A)(o,"4033251606c8875658357816f479ba43747421fd79",null),(0,d.A)(p,"40fb61174fdddc91fc3e818bc8029f20f961901be1",null),(0,d.A)(q,"40db33405833cbbc626c5c5b8054aab139cf4ce889",null),(0,d.A)(r,"409c0330a46dee897f4a967cafb72d64a5f2f00686",null)}};
@@ -1,7 +1,7 @@
1
1
  "use strict";exports.id=9179,exports.ids=[126,9179],exports.modules={60126:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{O:()=>l,createWorktree:()=>o,hasGhCli:()=>n,hasRemote:()=>m,isGitRepo:()=>k,listWorktrees:()=>s,mergeWorktree:()=>p,removeWorktree:()=>r});var e=c(7206),f=c(73024),g=c(76760),h=c.n(g),i=a([e]);e=(i.then?(await i)():i)[0];let w=h().join(".reflex","worktrees"),x=".reflex/worktrees/";async function j(a,b){let c=await (0,e.execa)("git",b,{cwd:a,timeout:3e4,reject:!1});return{stdout:"string"==typeof c.stdout?c.stdout:"",stderr:"string"==typeof c.stderr?c.stderr:"",code:"number"==typeof c.exitCode?c.exitCode:1}}async function k(a){let b=await j(a,["rev-parse","--is-inside-work-tree"]);return 0===b.code&&"true"===b.stdout.trim()}async function l(a){let b=await j(a,["symbolic-ref","--short","refs/remotes/origin/HEAD"]);return 0===b.code&&b.stdout.trim()?b.stdout.trim().replace(/^origin\//,""):(await j(a,["rev-parse","--abbrev-ref","HEAD"])).stdout.trim()||"main"}async function m(a){let b=await j(a,["remote"]);return 0===b.code&&b.stdout.trim().length>0}async function n(){let a=await (0,e.execa)("gh",["--version"],{timeout:5e3,reject:!1});return"number"==typeof a.exitCode&&0===a.exitCode}async function o(a){if(!await k(a.rootPath))throw Error("createWorktree: project root is not a git repo");let b=h().join(a.rootPath,w,a.slug),c=a.baseRef??await l(a.rootPath);try{throw await f.promises.stat(b),Error(`createWorktree: ${b} already exists`)}catch(a){if("ENOENT"!==a.code)throw a}let d=await j(a.rootPath,["rev-parse","--verify",`refs/heads/${a.branch}`]);if(0===d.code)throw Error(`createWorktree: branch ${a.branch} already exists; remove it first`);await f.promises.mkdir(h().dirname(b),{recursive:!0});let e=await j(a.rootPath,["worktree","add","-b",a.branch,b,c]);if(0!==e.code)throw Error(`git worktree add failed (${e.code}): ${e.stderr.trim()||e.stdout.trim()}`);return await u(a.rootPath,b),await v(a.rootPath),{dir:b,branch:a.branch,baseRef:c}}async function p(a){let b=a.intoRef??await l(a.rootPath),c=(await j(a.rootPath,["rev-parse","--abbrev-ref","HEAD"])).stdout.trim(),d=await j(a.rootPath,["checkout",b]);if(0!==d.code)return{ok:!1,conflicts:[],error:`checkout ${b} failed: ${d.stderr.trim()}`};let e=!1===a.noFf?[]:["--no-ff"],f=await j(a.rootPath,["merge",...e,a.branch]);if(0!==f.code){let b=await q(a.rootPath);return{ok:!1,conflicts:b,error:f.stderr.trim()||f.stdout.trim()||"merge failed"}}return c&&c!==b&&await j(a.rootPath,["checkout",c]),{ok:!0,mergedInto:b}}async function q(a){let b=await j(a,["diff","--name-only","--diff-filter=U"]);return 0!==b.code?[]:b.stdout.split("\n").map(a=>a.trim()).filter(Boolean)}async function r(a){let b=h().join(a.rootPath,w,a.slug),c=a.force?["--force"]:[],d=await j(a.rootPath,["worktree","remove",...c,b]);if(0!==d.code)try{return await f.promises.stat(b),{ok:!1,error:d.stderr.trim()||d.stdout.trim()||"worktree remove failed"}}catch{}if(a.deleteBranch??!0){let b=a.force?"-D":"-d";await j(a.rootPath,["branch",b,a.branch])}return await j(a.rootPath,["worktree","prune"]),{ok:!0}}async function s(a){let b=await j(a,["worktree","list","--porcelain"]);if(0!==b.code)return[];let c=[],d=null;for(let e of b.stdout.split("\n")){let b=e.trimEnd();if(!b){d?.dir&&c.push(t(d,a)),d=null;continue}b.startsWith("worktree ")?(d?.dir&&c.push(t(d,a)),d={dir:b.slice(9)}):d&&(b.startsWith("HEAD ")?d.head=b.slice(5):b.startsWith("branch refs/heads/")?d.branch=b.slice(18):"detached"===b?d.detached=!0:"bare"===b&&(d.bare=!0))}return d?.dir&&c.push(t(d,a)),c}function t(a,b){return{dir:a.dir,...a.branch?{branch:a.branch}:{},head:a.head??"",detached:!!a.detached,bare:!!a.bare,isMain:h().resolve(a.dir)===h().resolve(b)}}async function u(a,b){let c=h().join(a,".reflex","memory");await f.promises.mkdir(h().dirname(c),{recursive:!0}),await f.promises.mkdir(h().join(b,".reflex"),{recursive:!0});let d=h().join(b,".reflex","memory");try{if((await f.promises.lstat(d)).isSymbolicLink()&&await f.promises.readlink(d)===c)return;await f.promises.rm(d,{recursive:!0,force:!0})}catch(a){if("ENOENT"!==a.code)throw a}await f.promises.symlink(c,d,"dir")}async function v(a){let b=h().join(a,".reflexignore"),c="";try{c=await f.promises.readFile(b,"utf8")}catch{}if(c.split("\n").map(a=>a.trim()).filter(Boolean).includes(x))return;let d=c?`${c.replace(/\n*$/,"")}
2
2
  ${x}
3
3
  `:`${x}
4
- `;await f.promises.writeFile(b,d,"utf8")}d()}catch(a){d(a)}})},99179:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{dispatchTask:()=>n});var e=c(53905),f=c(36017),g=c(5492),h=c(51021),i=c(55143),j=c(26380),k=c(60126),l=c(51872),m=a([h,i,k]);async function n(a){let b=await (0,e.Zn)(a.rootId);if(!b)return{ok:!1,error:"root not found"};let c=await (0,j.getTask)(b.path,a.taskId);if(!c)return{ok:!1,error:"task not found"};if("in-progress"===c.status)return{ok:!1,error:"task already dispatched (topic "+c.topicId+")"};let d=l.Yj[c.type],i=await (0,f.M)(),m=i.assignments.chat,n=a.harness??c.agentRequested??m.harness,p=a.model??m.model,q=c.worktree;if(d.isCode&&!q&&await (0,k.isGitRepo)(b.path))try{let a=`task/${c.title.normalize("NFKD").toLowerCase().replace(/[^a-z0-9-/]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60)||c.id}`,d=await (0,k.O)(b.path);q=await (0,k.createWorktree)({rootPath:b.path,slug:c.id,branch:a,baseRef:d})}catch(a){return{ok:!1,error:"worktree create failed: "+(a instanceof Error?a.message:String(a))}}let r=[];for(let b of c.pre){let c=await o(a.rootId,b);c&&r.push(c)}let s=d.defaultSkill?`/skill ${d.defaultSkill}
4
+ `;await f.promises.writeFile(b,d,"utf8")}d()}catch(a){d(a)}})},99179:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{dispatchTask:()=>n});var e=c(53905),f=c(36017),g=c(5492),h=c(51021),i=c(55143),j=c(26380),k=c(60126),l=c(51872),m=a([h,i,k]);async function n(a){let b=await (0,e.getRoot)(a.rootId);if(!b)return{ok:!1,error:"root not found"};let c=await (0,j.getTask)(b.path,a.taskId);if(!c)return{ok:!1,error:"task not found"};if("in-progress"===c.status)return{ok:!1,error:"task already dispatched (topic "+c.topicId+")"};let d=l.Yj[c.type],i=await (0,f.loadSettings)(),m=i.assignments.chat,n=a.harness??c.agentRequested??m.harness,p=a.model??m.model,q=c.worktree;if(d.isCode&&!q&&await (0,k.isGitRepo)(b.path))try{let a=`task/${c.title.normalize("NFKD").toLowerCase().replace(/[^a-z0-9-/]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60)||c.id}`,d=await (0,k.O)(b.path);q=await (0,k.createWorktree)({rootPath:b.path,slug:c.id,branch:a,baseRef:d})}catch(a){return{ok:!1,error:"worktree create failed: "+(a instanceof Error?a.message:String(a))}}let r=[];for(let b of c.pre){let c=await o(a.rootId,b);c&&r.push(c)}let s=d.defaultSkill?`/skill ${d.defaultSkill}
5
5
 
6
- `:"",t=[`${s}You are now working on task ${c.id}: "${c.title}".`,"","## Task description",c.body||"(no description)"];r.length>0&&t.push("","## Pre-task context (from hooks)",...r),q&&t.push("","## Working directory",`You are inside a git worktree at \`${q.dir}\` on branch \`${q.branch}\`. Commit changes here; main branch is untouched until the user clicks Merge.`),t.push("",'When done, mark the task as `done` via `<<reflex:task-update>>{"id":"'+c.id+'","status":"done"}<</reflex:task-update>>`.');let u=t.join("\n"),v=q?.dir??b.path,w=await (0,g.OY)({root:v,firstMessage:c.title,harness:n,model:p,language:i.language,taskId:c.id}),x=await (0,h.W)({rootId:a.rootId,topicId:w.meta.id,message:u,attachments:[]});return"error"in x?{ok:!1,error:x.error}:(await (0,j.updateTask)(b.path,c.id,{topicId:w.meta.id,agentRequested:n,worktree:q,status:"in-progress"}),{ok:!0,taskId:c.id,topicId:w.meta.id,...q?{worktree:{dir:q.dir,branch:q.branch}}:{}})}async function o(a,b){if("chat"===b.kind)return b.prompt??null;if("workflow"===b.kind&&b.id)try{let c=await (0,i.runWorkflow)(a,b.id);if(!c.ok)return null;let d=[];for(let a of c.run.steps){let b=a.output;null!=b&&d.push("string"==typeof b?b:JSON.stringify(b,null,2))}let e=d.join("\n\n").trim();return e?`### workflow:${b.id}
6
+ `:"",t=[`${s}You are now working on task ${c.id}: "${c.title}".`,"","## Task description",c.body||"(no description)"];r.length>0&&t.push("","## Pre-task context (from hooks)",...r),q&&t.push("","## Working directory",`You are inside a git worktree at \`${q.dir}\` on branch \`${q.branch}\`. Commit changes here; main branch is untouched until the user clicks Merge.`),t.push("",'When done, mark the task as `done` via `<<reflex:task-update>>{"id":"'+c.id+'","status":"done"}<</reflex:task-update>>`.');let u=t.join("\n"),v=q?.dir??b.path,w=await (0,g.createTopic)({root:v,firstMessage:c.title,harness:n,model:p,language:i.language,taskId:c.id}),x=await (0,h.startOrchestratorTurn)({rootId:a.rootId,topicId:w.meta.id,message:u,attachments:[]});return"error"in x?{ok:!1,error:x.error}:(await (0,j.updateTask)(b.path,c.id,{topicId:w.meta.id,agentRequested:n,worktree:q,status:"in-progress"}),{ok:!0,taskId:c.id,topicId:w.meta.id,...q?{worktree:{dir:q.dir,branch:q.branch}}:{}})}async function o(a,b){if("chat"===b.kind)return b.prompt??null;if("workflow"===b.kind&&b.id)try{let c=await (0,i.runWorkflow)(a,b.id);if(!c.ok)return null;let d=[];for(let a of c.run.steps){let b=a.output;null!=b&&d.push("string"==typeof b?b:JSON.stringify(b,null,2))}let e=d.join("\n\n").trim();return e?`### workflow:${b.id}
7
7
  ${e}`:null}catch{}return null}[h,i,k]=m.then?(await m)():m,d()}catch(a){d(a)}})}};
@@ -1 +1 @@
1
- "use strict";exports.id=9809,exports.ids=[9809],exports.modules={24139:(a,b,c)=>{c.d(b,{Z:()=>h,_:()=>g});var d=c(73024),e=c(74342);function f(){return globalThis.__reflexPendingCache||(globalThis.__reflexPendingCache=new Map),globalThis.__reflexPendingCache}async function g(a,b){let c,g=(0,e.Rs)(a,b);try{c=await d.promises.stat(g)}catch{return[]}let h=f().get(g);if(h&&h.mtimeMs===c.mtimeMs&&h.size===c.size)return h.result;let i=function(a,b){let c=new Map;for(let d of a)switch(d.type){case"permission-request":c.set(`p:${d.requestId}`,{kind:"permission",topicId:b,requestId:d.requestId,ts:d.ts,summary:d.tool?`Permission: ${d.tool}`:d.action??"Permission request",...d.description?{details:d.description}:{}});break;case"permission-response":c.delete(`p:${d.requestId}`);break;case"question":c.set(`q:${d.questionId}`,{kind:"question",topicId:b,requestId:d.questionId,ts:d.ts,summary:d.prompt.slice(0,200),...d.choices&&d.choices.length?{details:d.choices.join(" / ")}:{}});break;case"answer":c.delete(`q:${d.questionId}`);break;case"mcp-add-request":c.set(`m:${d.requestId}`,{kind:"mcp-add",topicId:b,requestId:d.requestId,ts:d.ts,summary:`MCP add: ${d.label}`,...d.description?{details:d.description}:{}});break;case"mcp-add-response":c.delete(`m:${d.requestId}`)}return[...c.values()]}(await (0,e.wj)(a,b),b);return f().set(g,{mtimeMs:c.mtimeMs,size:c.size,result:i}),i}async function h(a,b){let c=[];return await Promise.all(b.map(async b=>{let d=await g(a,b);c.push(...d)})),c.sort((a,b)=>a.ts<b.ts?1:-1),c}},49809:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{k:()=>v,x:()=>t});var e=c(31776);c(428);var f=c(73024),g=c(76760),h=c.n(g),i=c(24576),j=c(11178),k=c(56843),l=c(16909),m=c(24139),n=c(1701),o=c(52129),p=c(7188),q=c(11244),r=c(97364),s=a([l,o]);async function t(a){try{let b=await (0,i.Zn)(a);if(!b)return{ok:!1,error:"Root not found"};let[c,d,e,f]=await Promise.all([(0,k.hk)(b.path),(0,j.CA)(b.path),(0,p.listWidgets)(b.path),(0,p.readLayout)(b.path)]),g=(0,p.reconcileLayout)(f,e.map(a=>a.id),q.SYSTEM_WIDGET_IDS);(g.order.join("|")!==f.order.join("|")||g.hidden.join("|")!==f.hidden.join("|")||JSON.stringify(g.sizes??{})!==JSON.stringify(f.sizes??{}))&&await (0,p.writeLayout)(b.path,g);let h=c.map(a=>a.meta.id),r=new Set("function"==typeof l.z.listRunningTopicsForRoot?l.z.listRunningTopicsForRoot(a):[]),[s,t,v]=await Promise.all([(0,m.Z)(b.path,h),(0,n.Mn)(),(0,o.Qv)(a).catch(()=>null)]),w=new Set(s.map(a=>a.requestId));for(let a of t)!w.has(a.requestId)&&h.includes(a.topicId)&&s.push({kind:"mcp-add",topicId:a.topicId,requestId:a.requestId,ts:a.createdAt,summary:`MCP add: ${a.directive.label}`,...a.directive.description?{details:a.directive.description}:{}});s.sort((a,b)=>a.ts<b.ts?1:-1);let x=new Map;for(let a of c)x.set(a.meta.id,a.meta);let y=[],z=[];for(let a of c){let b=a.meta;if(b.goal&&"active"===b.goalStatus){y.push({topicId:b.id,topicTitle:b.title,goal:b.goal,goalIterations:b.goalIterations??0,updatedAt:b.updatedAt,running:r.has(b.id)});continue}r.has(b.id)&&z.push({topicId:b.id,topicTitle:b.title,updatedAt:b.updatedAt})}y.sort((a,b)=>a.updatedAt<b.updatedAt?1:-1),z.sort((a,b)=>a.updatedAt<b.updatedAt?1:-1);let A=await u(d);return{ok:!0,snapshot:{rootId:a,rootPath:b.path,activeGoals:y,runningAgents:z,pendingApprovals:s,recentKb:A,suggestions:v,widgets:e,layout:g}}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function u(a){let b=Date.now()-2592e5,c=a.filter(a=>Date.parse(a.modifiedAt)>=b).sort((a,b)=>a.modifiedAt<b.modifiedAt?1:-1).slice(0,6);return Promise.all(c.map(async a=>{let b=await (0,j.xO)(a.abs);return{rel:a.rel,title:b.title??h().basename(a.rel),...b.kind?{kind:b.kind}:{},modifiedAt:a.modifiedAt,preview:""}}))}async function v(a,b){try{let c=await (0,i.Zn)(a);if(!c)return{ok:!1,error:"Root not found"};let d=h().join(c.path,".reflex",b),e=h().relative(h().join(c.path,".reflex"),d);if(e.startsWith("..")||h().isAbsolute(e))return{ok:!1,error:"Refused (path traversal)"};let g=await f.promises.readFile(d,"utf8");return{ok:!0,preview:function(a){let b=a,c=a.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);return c&&(b=a.slice(c[0].length)),(b=b.replace(/^#+\s+/gm,"").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/\r?\n+/g," ").trim()).length>200&&(b=b.slice(0,197).trimEnd()+"…"),b}(g)}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}[l,o]=s.then?(await s)():s,(0,r.D)([t,v]),(0,e.A)(t,"403851236877dffb4049dc4bdf8f7be51327ad4421",null),(0,e.A)(v,"607c391dbbb1127f100931573e0a3fa5f8f91a9d57",null),d()}catch(a){d(a)}})},52129:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Qt:()=>t,Qv:()=>r});var e=c(73024),f=c(76760),g=c.n(f),h=c(29163),i=c(11178),j=c(56843),k=c(16909),l=c(24139),m=c(99048),n=c(17640),o=c(24576),p=a([k,m]);function q(a){let b=a.replace(/[^A-Za-z0-9_.-]/g,"_");return g().join((0,h._)(),"roots",b,"suggestions.json")}async function r(a){try{let b=await e.promises.readFile(q(a),"utf8"),c=JSON.parse(b);if(c.rootId!==a||!Array.isArray(c.items))return null;return c}catch{return null}}async function s(a){let b=q(a.rootId);await e.promises.mkdir(g().dirname(b),{recursive:!0}),await e.promises.writeFile(b,JSON.stringify(a,null,2)+"\n",{encoding:"utf8",mode:384});try{await e.promises.chmod(b,384)}catch{}}async function t(a){var b;let c=await (0,o.Zn)(a);if(!c)return{ok:!1,error:"Root not found"};let d=(await (0,n.M)()).assignments.quick,e=await u(a,c.path);if(e.empty){let b={rootId:a,generatedAt:new Date().toISOString(),model:"n/a",items:[{title:"Project is empty",why:"No topics, no KB files — nothing to suggest. Start with /chat or create your first entry.",action:{kind:"none",label:"OK"}}]};return await s(b),{ok:!0,cache:b}}let f=(b=e,['You analyse the state of a local Reflex knowledge-base project and propose 2–4 high-leverage actions for the user.\nOutput STRICT JSON: an object with one key `items`, value array of {title, why, action}.\naction.kind ∈ {"open-topic", "open-kb", "send-message", "none"}.\n - open-topic: target = topic id from the snapshot\n - open-kb: target = rel-path from the snapshot (.reflex/-relative)\n - send-message: target = the literal text Reflex should send. topicId = which topic to send into (use an existing id from the snapshot or omit for new chat).\n - none: informational only\nEach action.label is the button text (3-6 words, Russian or English to match the project\'s vibe).\nEach `title` is 4-9 words; each `why` is one sentence explaining the trigger.\nSkip trivialities. Don\'t propose chores that don\'t move the project forward.\nReply in Russian unless titles/paths are obviously English.\n\n## Snapshot',JSON.stringify(b,null,2),"\nReturn only the JSON object — no preamble, no markdown fences, no comments. The reply MUST start with `{` and end with `}`."].join("\n"));try{let b=await (0,m.T)(d,f,{timeoutMs:45e3}),c=function(a){let b=a.trim();b.startsWith("```")&&(b=b.replace(/^```[a-z]*\r?\n/i,"").replace(/```\s*$/i,""));let c=b.indexOf("{"),d=b.lastIndexOf("}");c>=0&&d>c&&(b=b.slice(c,d+1));let e=JSON.parse(b);if(!e||"object"!=typeof e||!Array.isArray(e.items))throw Error("Model returned non-JSON or missing items[]");let f=[];for(let a of e.items){if(!a||"object"!=typeof a)continue;let b="string"==typeof a.title?a.title:null,c="string"==typeof a.why?a.why:null,d=a.action&&"object"==typeof a.action?a.action:null;if(!b||!c||!d)continue;let e=d.kind;if("open-topic"!==e&&"open-kb"!==e&&"send-message"!==e&&"none"!==e)continue;let g="string"==typeof d.label?d.label:"Open";f.push({title:b,why:c,action:{kind:e,label:g,..."string"==typeof d.target?{target:d.target}:{},..."string"==typeof d.topicId?{topicId:d.topicId}:{}}})}return f}(b),e={rootId:a,generatedAt:new Date().toISOString(),model:`${d.harness}:${d.model}`,items:c.slice(0,5)};return await s(e),{ok:!0,cache:e}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function u(a,b){let[c,d]=await Promise.all([(0,j.hk)(b),(0,i.dj)(b)]),e=c.map(a=>a.meta.id),f=new Set("function"==typeof k.z.listRunningTopicsForRoot?k.z.listRunningTopicsForRoot(a):[]),g=await (0,l.Z)(b,e),h=Date.now()-432e6,m=c.filter(a=>Date.parse(a.meta.updatedAt)<h).filter(a=>a.meta.goal&&"active"===a.meta.goalStatus).map(a=>({id:a.meta.id,title:a.meta.title,updatedAt:a.meta.updatedAt}));return{empty:0===c.length&&0===d.length,topicCount:c.length,topicsWithGoal:c.filter(a=>a.meta.goal&&"active"===a.meta.goalStatus).map(a=>({id:a.meta.id,title:a.meta.title,goal:a.meta.goal,iterations:a.meta.goalIterations??0,updatedAt:a.meta.updatedAt,running:f.has(a.meta.id)})),runningTopics:c.filter(a=>f.has(a.meta.id)).map(a=>({id:a.meta.id,title:a.meta.title})),recentKb:d.slice().sort((a,b)=>a.modifiedAt<b.modifiedAt?1:-1).slice(0,8).map(a=>({rel:a.rel,title:a.meta.title??a.rel,modifiedAt:a.modifiedAt})),pendingCount:g.length,totalKbFiles:d.length,staleTopics:m}}[k,m]=p.then?(await p)():p,d()}catch(a){d(a)}})}};
1
+ "use strict";exports.id=9809,exports.ids=[9809],exports.modules={24139:(a,b,c)=>{c.d(b,{Z:()=>h,_:()=>g});var d=c(73024),e=c(74342);function f(){return globalThis.__reflexPendingCache||(globalThis.__reflexPendingCache=new Map),globalThis.__reflexPendingCache}async function g(a,b){let c,g=(0,e.R)(a,b);try{c=await d.promises.stat(g)}catch{return[]}let h=f().get(g);if(h&&h.mtimeMs===c.mtimeMs&&h.size===c.size)return h.result;let i=function(a,b){let c=new Map;for(let d of a)switch(d.type){case"permission-request":c.set(`p:${d.requestId}`,{kind:"permission",topicId:b,requestId:d.requestId,ts:d.ts,summary:d.tool?`Permission: ${d.tool}`:d.action??"Permission request",...d.description?{details:d.description}:{}});break;case"permission-response":c.delete(`p:${d.requestId}`);break;case"question":c.set(`q:${d.questionId}`,{kind:"question",topicId:b,requestId:d.questionId,ts:d.ts,summary:d.prompt.slice(0,200),...d.choices&&d.choices.length?{details:d.choices.join(" / ")}:{}});break;case"answer":c.delete(`q:${d.questionId}`);break;case"mcp-add-request":c.set(`m:${d.requestId}`,{kind:"mcp-add",topicId:b,requestId:d.requestId,ts:d.ts,summary:`MCP add: ${d.label}`,...d.description?{details:d.description}:{}});break;case"mcp-add-response":c.delete(`m:${d.requestId}`)}return[...c.values()]}(await (0,e.readEvents)(a,b),b);return f().set(g,{mtimeMs:c.mtimeMs,size:c.size,result:i}),i}async function h(a,b){let c=[];return await Promise.all(b.map(async b=>{let d=await g(a,b);c.push(...d)})),c.sort((a,b)=>a.ts<b.ts?1:-1),c}},49809:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{k:()=>v,x:()=>t});var e=c(31776);c(428);var f=c(73024),g=c(76760),h=c.n(g),i=c(24576),j=c(11178),k=c(56843),l=c(16909),m=c(24139),n=c(1701),o=c(52129),p=c(7188),q=c(11244),r=c(97364),s=a([l,o]);async function t(a){try{let b=await (0,i.getRoot)(a);if(!b)return{ok:!1,error:"Root not found"};let[c,d,e,f]=await Promise.all([(0,k.hk)(b.path),(0,j.CA)(b.path),(0,p.listWidgets)(b.path),(0,p.readLayout)(b.path)]),g=(0,p.reconcileLayout)(f,e.map(a=>a.id),q.SYSTEM_WIDGET_IDS);(g.order.join("|")!==f.order.join("|")||g.hidden.join("|")!==f.hidden.join("|")||JSON.stringify(g.sizes??{})!==JSON.stringify(f.sizes??{}))&&await (0,p.writeLayout)(b.path,g);let h=c.map(a=>a.meta.id),r=new Set("function"==typeof l.z.listRunningTopicsForRoot?l.z.listRunningTopicsForRoot(a):[]),[s,t,v]=await Promise.all([(0,m.Z)(b.path,h),(0,n.Mn)(),(0,o.Qv)(a).catch(()=>null)]),w=new Set(s.map(a=>a.requestId));for(let a of t)!w.has(a.requestId)&&h.includes(a.topicId)&&s.push({kind:"mcp-add",topicId:a.topicId,requestId:a.requestId,ts:a.createdAt,summary:`MCP add: ${a.directive.label}`,...a.directive.description?{details:a.directive.description}:{}});s.sort((a,b)=>a.ts<b.ts?1:-1);let x=new Map;for(let a of c)x.set(a.meta.id,a.meta);let y=[],z=[];for(let a of c){let b=a.meta;if(b.goal&&"active"===b.goalStatus){y.push({topicId:b.id,topicTitle:b.title,goal:b.goal,goalIterations:b.goalIterations??0,updatedAt:b.updatedAt,running:r.has(b.id)});continue}r.has(b.id)&&z.push({topicId:b.id,topicTitle:b.title,updatedAt:b.updatedAt})}y.sort((a,b)=>a.updatedAt<b.updatedAt?1:-1),z.sort((a,b)=>a.updatedAt<b.updatedAt?1:-1);let A=await u(d);return{ok:!0,snapshot:{rootId:a,rootPath:b.path,activeGoals:y,runningAgents:z,pendingApprovals:s,recentKb:A,suggestions:v,widgets:e,layout:g}}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function u(a){let b=Date.now()-2592e5,c=a.filter(a=>Date.parse(a.modifiedAt)>=b).sort((a,b)=>a.modifiedAt<b.modifiedAt?1:-1).slice(0,6);return Promise.all(c.map(async a=>{let b=await (0,j.xO)(a.abs);return{rel:a.rel,title:b.title??h().basename(a.rel),...b.kind?{kind:b.kind}:{},modifiedAt:a.modifiedAt,preview:""}}))}async function v(a,b){try{let c=await (0,i.getRoot)(a);if(!c)return{ok:!1,error:"Root not found"};let d=h().join(c.path,".reflex",b),e=h().relative(h().join(c.path,".reflex"),d);if(e.startsWith("..")||h().isAbsolute(e))return{ok:!1,error:"Refused (path traversal)"};let g=await f.promises.readFile(d,"utf8");return{ok:!0,preview:function(a){let b=a,c=a.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);return c&&(b=a.slice(c[0].length)),(b=b.replace(/^#+\s+/gm,"").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/\r?\n+/g," ").trim()).length>200&&(b=b.slice(0,197).trimEnd()+"…"),b}(g)}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}[l,o]=s.then?(await s)():s,(0,r.D)([t,v]),(0,e.A)(t,"406841721da0e4f985ed778145049de2f47c7ac17b",null),(0,e.A)(v,"6029bfd2b7bb14204fa042d93184dbbe9cb2623d19",null),d()}catch(a){d(a)}})},52129:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Qt:()=>t,Qv:()=>r});var e=c(73024),f=c(76760),g=c.n(f),h=c(29163),i=c(11178),j=c(56843),k=c(16909),l=c(24139),m=c(99048),n=c(17640),o=c(24576),p=a([k,m]);function q(a){let b=a.replace(/[^A-Za-z0-9_.-]/g,"_");return g().join((0,h._)(),"roots",b,"suggestions.json")}async function r(a){try{let b=await e.promises.readFile(q(a),"utf8"),c=JSON.parse(b);if(c.rootId!==a||!Array.isArray(c.items))return null;return c}catch{return null}}async function s(a){let b=q(a.rootId);await e.promises.mkdir(g().dirname(b),{recursive:!0}),await e.promises.writeFile(b,JSON.stringify(a,null,2)+"\n",{encoding:"utf8",mode:384});try{await e.promises.chmod(b,384)}catch{}}async function t(a){var b;let c=await (0,o.getRoot)(a);if(!c)return{ok:!1,error:"Root not found"};let d=(await (0,n.loadSettings)()).assignments.quick,e=await u(a,c.path);if(e.empty){let b={rootId:a,generatedAt:new Date().toISOString(),model:"n/a",items:[{title:"Project is empty",why:"No topics, no KB files — nothing to suggest. Start with /chat or create your first entry.",action:{kind:"none",label:"OK"}}]};return await s(b),{ok:!0,cache:b}}let f=(b=e,['You analyse the state of a local Reflex knowledge-base project and propose 2–4 high-leverage actions for the user.\nOutput STRICT JSON: an object with one key `items`, value array of {title, why, action}.\naction.kind ∈ {"open-topic", "open-kb", "send-message", "none"}.\n - open-topic: target = topic id from the snapshot\n - open-kb: target = rel-path from the snapshot (.reflex/-relative)\n - send-message: target = the literal text Reflex should send. topicId = which topic to send into (use an existing id from the snapshot or omit for new chat).\n - none: informational only\nEach action.label is the button text (3-6 words, Russian or English to match the project\'s vibe).\nEach `title` is 4-9 words; each `why` is one sentence explaining the trigger.\nSkip trivialities. Don\'t propose chores that don\'t move the project forward.\nReply in Russian unless titles/paths are obviously English.\n\n## Snapshot',JSON.stringify(b,null,2),"\nReturn only the JSON object — no preamble, no markdown fences, no comments. The reply MUST start with `{` and end with `}`."].join("\n"));try{let b=await (0,m.quickComplete)(d,f,{timeoutMs:45e3}),c=function(a){let b=a.trim();b.startsWith("```")&&(b=b.replace(/^```[a-z]*\r?\n/i,"").replace(/```\s*$/i,""));let c=b.indexOf("{"),d=b.lastIndexOf("}");c>=0&&d>c&&(b=b.slice(c,d+1));let e=JSON.parse(b);if(!e||"object"!=typeof e||!Array.isArray(e.items))throw Error("Model returned non-JSON or missing items[]");let f=[];for(let a of e.items){if(!a||"object"!=typeof a)continue;let b="string"==typeof a.title?a.title:null,c="string"==typeof a.why?a.why:null,d=a.action&&"object"==typeof a.action?a.action:null;if(!b||!c||!d)continue;let e=d.kind;if("open-topic"!==e&&"open-kb"!==e&&"send-message"!==e&&"none"!==e)continue;let g="string"==typeof d.label?d.label:"Open";f.push({title:b,why:c,action:{kind:e,label:g,..."string"==typeof d.target?{target:d.target}:{},..."string"==typeof d.topicId?{topicId:d.topicId}:{}}})}return f}(b),e={rootId:a,generatedAt:new Date().toISOString(),model:`${d.harness}:${d.model}`,items:c.slice(0,5)};return await s(e),{ok:!0,cache:e}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function u(a,b){let[c,d]=await Promise.all([(0,j.hk)(b),(0,i.dj)(b)]),e=c.map(a=>a.meta.id),f=new Set("function"==typeof k.z.listRunningTopicsForRoot?k.z.listRunningTopicsForRoot(a):[]),g=await (0,l.Z)(b,e),h=Date.now()-432e6,m=c.filter(a=>Date.parse(a.meta.updatedAt)<h).filter(a=>a.meta.goal&&"active"===a.meta.goalStatus).map(a=>({id:a.meta.id,title:a.meta.title,updatedAt:a.meta.updatedAt}));return{empty:0===c.length&&0===d.length,topicCount:c.length,topicsWithGoal:c.filter(a=>a.meta.goal&&"active"===a.meta.goalStatus).map(a=>({id:a.meta.id,title:a.meta.title,goal:a.meta.goal,iterations:a.meta.goalIterations??0,updatedAt:a.meta.updatedAt,running:f.has(a.meta.id)})),runningTopics:c.filter(a=>f.has(a.meta.id)).map(a=>({id:a.meta.id,title:a.meta.title})),recentKb:d.slice().sort((a,b)=>a.modifiedAt<b.modifiedAt?1:-1).slice(0,8).map(a=>({rel:a.rel,title:a.meta.title??a.rel,modifiedAt:a.modifiedAt})),pendingCount:g.length,totalKbFiles:d.length,staleTopics:m}}[k,m]=p.then?(await p)():p,d()}catch(a){d(a)}})}};
@@ -1 +1 @@
1
- "use strict";exports.id=9835,exports.ids=[9835],exports.modules={19219:(a,b,c)=>{c.d(b,{YN:()=>p,cC:()=>r,fH:()=>q,tf:()=>m});var d=c(73024),e=c(76760),f=c.n(e),g=c(77598),h=c.n(g),i=c(24576);let j=f().join(".reflex","assets","images"),k={"image/png":"png","image/jpeg":"jpg","image/jpg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg","image/avif":"avif"},l={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",webp:"image/webp",gif:"image/gif",svg:"image/svg+xml",avif:"image/avif"};function m(a){return l[a.toLowerCase()]??"application/octet-stream"}async function n(a){let b=await (0,i.Zn)(a);if(!b)throw Error(`unknown root: ${a}`);return b.path}async function o(a){let b=f().join(await n(a),j);return await d.promises.mkdir(b,{recursive:!0}),b}async function p(a,b,c){let e=Buffer.isBuffer(b)?b:Buffer.from(b),g=h().createHash("sha256").update(e).digest("hex"),i=k[c.toLowerCase()]??"bin",l=await o(a),m=f().join(l,`${g}.${i}`);try{await d.promises.access(m)}catch{await d.promises.writeFile(m,e)}return{sha:g,ext:i,mime:c,absPath:m,relPath:f().posix.join(j.split(f().sep).join("/"),`${g}.${i}`),urlPath:`/api/images/${encodeURIComponent(a)}/${g}.${i}`,size:e.byteLength}}async function q(a,b){let c=await fetch(b,{redirect:"follow",signal:AbortSignal.timeout(3e4)});if(!c.ok)throw Error(`fetch ${b} -> ${c.status} ${c.statusText}`);let d=c.headers.get("content-type")?.split(";")[0]?.trim()??"";if(!d.startsWith("image/"))throw Error(`not an image: content-type=${d||"(none)"}`);let e=Number(c.headers.get("content-length")??"0");if(e>0x1400000)throw Error(`image too large: ${e} bytes (cap 20971520)`);let f=await c.arrayBuffer();if(f.byteLength>0x1400000)throw Error(`image too large after download: ${f.byteLength} bytes (cap 20971520)`);return p(a,Buffer.from(f),d)}async function r(a,b){if(!/^[a-f0-9]{8,64}\.[a-z0-9]{2,5}$/i.test(b))return null;let c=await o(a),e=f().resolve(c,b);if(!e.startsWith(c+f().sep)&&e!==c)return null;try{let a=await d.promises.stat(e);if(!a.isFile())return null;let c=f().extname(b).slice(1);return{absPath:e,mime:m(c),size:a.size}}catch{return null}}},59835:(a,b,c)=>{c.d(b,{attachRemote:()=>k,generateImage:()=>h,searchImages:()=>i});var d=c(19219),e=c(43180);async function f(a){let b=await (0,e.CG)("gemini");if(!b)throw Error("Gemini API key is not configured. Open Settings → Gemini.");let c=[{text:a.prompt}];for(let b of a.referenceImageUrls??[]){let a=await g(b);a&&c.push({inlineData:a})}let f={contents:[{role:"user",parts:c}]};a.aspectRatio&&(f.generationConfig={imageConfig:{aspectRatio:a.aspectRatio}});let h=await fetch(`https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image-preview:generateContent?key=${encodeURIComponent(b)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)});if(!h.ok){let a=await h.text().catch(()=>"");throw Error(`Gemini image API ${h.status}: ${a.slice(0,400)}`)}let i=await h.json(),j=function(a){for(let b of a.candidates??[])for(let a of b.content?.parts??[]){let b=a.inlineData;if(b?.data&&b.mimeType?.startsWith("image/"))return{data:b.data,mime:b.mimeType}}return null}(i);if(!j){let a=i?.candidates?.[0]?.finishReason??"no image returned",b=i?.candidates?.[0]?.content?.parts?.map(a=>a.text).filter(Boolean).join(" ")?.slice(0,300);throw Error(`Gemini returned a non-image response (${a})${b?": "+b:""}`)}let k=Buffer.from(j.data,"base64");return(0,d.YN)(a.rootId,k,j.mime)}async function g(a){try{let b=await fetch(a,{redirect:"follow"});if(!b.ok)return null;let c=b.headers.get("content-type")?.split(";")[0]?.trim()??"";if(!c.startsWith("image/"))return null;let d=await b.arrayBuffer();return{data:Buffer.from(d).toString("base64"),mimeType:c}}catch{return null}}async function h(a){let b,d=a.provider??"gemini";if("gemini"===d)b=await f({rootId:a.rootId,prompt:a.prompt,...a.aspectRatio?{aspectRatio:a.aspectRatio}:{},...a.referenceImageUrls?{referenceImageUrls:a.referenceImageUrls}:{}});else if("codex"===d){let d=await c.e(6216).then(c.bind(c,76216));b=await d.generateWithCodex({rootId:a.rootId,prompt:a.prompt,...a.size?{size:a.size}:{}})}else throw Error(`unknown image provider: ${d}`);return{urlPath:b.urlPath,sha:b.sha,mime:b.mime,size:b.size,provider:d}}async function i(a){let b=Math.max(1,Math.min(24,a.count??12)),d=a.provider??await j();if("unsplash"===d)return(await c.e(9995).then(c.bind(c,99995))).searchUnsplash({query:a.query,count:b});if("pexels"===d)return(await c.e(9842).then(c.bind(c,39842))).searchPexels({query:a.query,count:b});if("brave"===d)return(await Promise.all([c.e(9631),c.e(2433)]).then(c.bind(c,42433))).searchBrave({query:a.query,count:b});throw Error(`unknown image search provider: ${d}`)}async function j(){let{hasApiKey:a}=await Promise.resolve().then(c.bind(c,43180)),{resolveBraveKey:b}=await Promise.all([c.e(9631),c.e(2433)]).then(c.bind(c,42433));return await b()?"brave":await a("unsplash")?"unsplash":await a("pexels")?"pexels":"brave"}async function k(a){return(0,d.fH)(a.rootId,a.sourceUrl)}}};
1
+ "use strict";exports.id=9835,exports.ids=[9835],exports.modules={19219:(a,b,c)=>{c.d(b,{YN:()=>p,cC:()=>r,fH:()=>q,tf:()=>m});var d=c(73024),e=c(76760),f=c.n(e),g=c(77598),h=c.n(g),i=c(24576);let j=f().join(".reflex","assets","images"),k={"image/png":"png","image/jpeg":"jpg","image/jpg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg","image/avif":"avif"},l={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",webp:"image/webp",gif:"image/gif",svg:"image/svg+xml",avif:"image/avif"};function m(a){return l[a.toLowerCase()]??"application/octet-stream"}async function n(a){let b=await (0,i.getRoot)(a);if(!b)throw Error(`unknown root: ${a}`);return b.path}async function o(a){let b=f().join(await n(a),j);return await d.promises.mkdir(b,{recursive:!0}),b}async function p(a,b,c){let e=Buffer.isBuffer(b)?b:Buffer.from(b),g=h().createHash("sha256").update(e).digest("hex"),i=k[c.toLowerCase()]??"bin",l=await o(a),m=f().join(l,`${g}.${i}`);try{await d.promises.access(m)}catch{await d.promises.writeFile(m,e)}return{sha:g,ext:i,mime:c,absPath:m,relPath:f().posix.join(j.split(f().sep).join("/"),`${g}.${i}`),urlPath:`/api/images/${encodeURIComponent(a)}/${g}.${i}`,size:e.byteLength}}async function q(a,b){let c=await fetch(b,{redirect:"follow",signal:AbortSignal.timeout(3e4)});if(!c.ok)throw Error(`fetch ${b} -> ${c.status} ${c.statusText}`);let d=c.headers.get("content-type")?.split(";")[0]?.trim()??"";if(!d.startsWith("image/"))throw Error(`not an image: content-type=${d||"(none)"}`);let e=Number(c.headers.get("content-length")??"0");if(e>0x1400000)throw Error(`image too large: ${e} bytes (cap 20971520)`);let f=await c.arrayBuffer();if(f.byteLength>0x1400000)throw Error(`image too large after download: ${f.byteLength} bytes (cap 20971520)`);return p(a,Buffer.from(f),d)}async function r(a,b){if(!/^[a-f0-9]{8,64}\.[a-z0-9]{2,5}$/i.test(b))return null;let c=await o(a),e=f().resolve(c,b);if(!e.startsWith(c+f().sep)&&e!==c)return null;try{let a=await d.promises.stat(e);if(!a.isFile())return null;let c=f().extname(b).slice(1);return{absPath:e,mime:m(c),size:a.size}}catch{return null}}},59835:(a,b,c)=>{c.d(b,{attachRemote:()=>k,generateImage:()=>h,searchImages:()=>i});var d=c(19219),e=c(43180);async function f(a){let b=await (0,e.CG)("gemini");if(!b)throw Error("Gemini API key is not configured. Open Settings → Gemini.");let c=[{text:a.prompt}];for(let b of a.referenceImageUrls??[]){let a=await g(b);a&&c.push({inlineData:a})}let f={contents:[{role:"user",parts:c}]};a.aspectRatio&&(f.generationConfig={imageConfig:{aspectRatio:a.aspectRatio}});let h=await fetch(`https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image-preview:generateContent?key=${encodeURIComponent(b)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)});if(!h.ok){let a=await h.text().catch(()=>"");throw Error(`Gemini image API ${h.status}: ${a.slice(0,400)}`)}let i=await h.json(),j=function(a){for(let b of a.candidates??[])for(let a of b.content?.parts??[]){let b=a.inlineData;if(b?.data&&b.mimeType?.startsWith("image/"))return{data:b.data,mime:b.mimeType}}return null}(i);if(!j){let a=i?.candidates?.[0]?.finishReason??"no image returned",b=i?.candidates?.[0]?.content?.parts?.map(a=>a.text).filter(Boolean).join(" ")?.slice(0,300);throw Error(`Gemini returned a non-image response (${a})${b?": "+b:""}`)}let k=Buffer.from(j.data,"base64");return(0,d.YN)(a.rootId,k,j.mime)}async function g(a){try{let b=await fetch(a,{redirect:"follow"});if(!b.ok)return null;let c=b.headers.get("content-type")?.split(";")[0]?.trim()??"";if(!c.startsWith("image/"))return null;let d=await b.arrayBuffer();return{data:Buffer.from(d).toString("base64"),mimeType:c}}catch{return null}}async function h(a){let b,d=a.provider??"gemini";if("gemini"===d)b=await f({rootId:a.rootId,prompt:a.prompt,...a.aspectRatio?{aspectRatio:a.aspectRatio}:{},...a.referenceImageUrls?{referenceImageUrls:a.referenceImageUrls}:{}});else if("codex"===d){let d=await c.e(6216).then(c.bind(c,76216));b=await d.generateWithCodex({rootId:a.rootId,prompt:a.prompt,...a.size?{size:a.size}:{}})}else throw Error(`unknown image provider: ${d}`);return{urlPath:b.urlPath,sha:b.sha,mime:b.mime,size:b.size,provider:d}}async function i(a){let b=Math.max(1,Math.min(24,a.count??12)),d=a.provider??await j();if("unsplash"===d)return(await c.e(9995).then(c.bind(c,99995))).searchUnsplash({query:a.query,count:b});if("pexels"===d)return(await c.e(9842).then(c.bind(c,39842))).searchPexels({query:a.query,count:b});if("brave"===d)return(await Promise.all([c.e(9631),c.e(2433)]).then(c.bind(c,42433))).searchBrave({query:a.query,count:b});throw Error(`unknown image search provider: ${d}`)}async function j(){let{hasApiKey:a}=await Promise.resolve().then(c.bind(c,43180)),{resolveBraveKey:b}=await Promise.all([c.e(9631),c.e(2433)]).then(c.bind(c,42433));return await b()?"brave":await a("unsplash")?"unsplash":await a("pexels")?"pexels":"brave"}async function k(a){return(0,d.fH)(a.rootId,a.sourceUrl)}}};
@@ -7,16 +7,16 @@
7
7
  "/api/oauth/start": {},
8
8
  "/api/roots/[id]/attachments": {},
9
9
  "/api/roots/[id]/chat/[topicId]/send": {},
10
- "/api/roots/[id]/chat/[topicId]/stop": {},
11
10
  "/api/roots/[id]/chat/[topicId]/stream": {},
11
+ "/api/roots/[id]/chat/[topicId]/stop": {},
12
12
  "/api/roots/[id]/dashboard": {},
13
13
  "/api/roots/[id]/suggestions": {},
14
14
  "/api/utilities/[scope]/[id]/bundle.js": {},
15
15
  "/api/utilities/[scope]/[id]/host-api.mjs": {},
16
16
  "/api/utilities/[scope]/[id]/host-ui.mjs": {},
17
17
  "/api/utilities/[scope]/[id]/host": {},
18
- "/api/utilities/[scope]/[id]/iframe": {},
18
+ "/api/utilities/install-archive": {},
19
19
  "/api/utilities/[scope]/[id]/style.css": {},
20
- "/api/utilities/install-archive": {}
20
+ "/api/utilities/[scope]/[id]/iframe": {}
21
21
  }
22
22
  }
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-bf73daacb1b20997.js","static/chunks/6fe292aa-7126ff9d6732e864.js","static/chunks/146-ccee3b26755b68c8.js","static/chunks/main-app-ebe67847147d19aa.js"],rootMainFilesTree:{},pages:{"/_app":["static/chunks/webpack-bf73daacb1b20997.js","static/chunks/framework-aaa7c1a953276299.js","static/chunks/main-bfb98fc1d6aa1d45.js","static/chunks/pages/_app-bf8bc157ace53d59.js"],"/_error":["static/chunks/webpack-bf73daacb1b20997.js","static/chunks/framework-aaa7c1a953276299.js","static/chunks/main-bfb98fc1d6aa1d45.js","static/chunks/pages/_error-da89ab2956f0cf38.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-9a901eb0ce37db73.js","static/chunks/6fe292aa-7126ff9d6732e864.js","static/chunks/146-ccee3b26755b68c8.js","static/chunks/main-app-ebe67847147d19aa.js"],rootMainFilesTree:{},pages:{"/_app":["static/chunks/webpack-9a901eb0ce37db73.js","static/chunks/framework-aaa7c1a953276299.js","static/chunks/main-bfb98fc1d6aa1d45.js","static/chunks/pages/_app-bf8bc157ace53d59.js"],"/_error":["static/chunks/webpack-9a901eb0ce37db73.js","static/chunks/framework-aaa7c1a953276299.js","static/chunks/main-bfb98fc1d6aa1d45.js","static/chunks/pages/_error-da89ab2956f0cf38.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
@@ -17,11 +17,11 @@
17
17
  "wasm": [],
18
18
  "assets": [],
19
19
  "env": {
20
- "__NEXT_BUILD_ID": "1JOww-AoS7M9R4-h4i1EK",
21
- "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "cJJ7pGbhlt2qfXd/EB3oE+AHdkaRw5LhNppgSnp1AQo=",
22
- "__NEXT_PREVIEW_MODE_ID": "9f4e10c9ee2df8c7c93f9192f3f1c303",
23
- "__NEXT_PREVIEW_MODE_SIGNING_KEY": "aaf636954ea1c8110800a3922499b20b6ed992b18e4719684debc384c5a2f14c",
24
- "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "b2ef7b17844b6e33f924cc1fef94141f09e49628a82ec6c96dd574e1736582af"
20
+ "__NEXT_BUILD_ID": "lsd-85A_MGaBztIdQYLgO",
21
+ "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "p9aTfKjfwlP1ipIqda20LybJlYhG7/IfUdZLZELk4gs=",
22
+ "__NEXT_PREVIEW_MODE_ID": "64b41705b04835549ba1fe6f26ea28b3",
23
+ "__NEXT_PREVIEW_MODE_SIGNING_KEY": "1b37345e4522113c7c081d519c0348fbd5e837db1c9eda653840436096a946be",
24
+ "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "c2ed2f980b7f1d83813916b00d78748782f20f9f20816f04523057d04d128bd0"
25
25
  }
26
26
  }
27
27
  },
@@ -1 +1 @@
1
- self.__REACT_LOADABLE_MANIFEST='{"app/roots/[id]/chat/[topicId]/_components/interaction-cards.tsx -> @/lib/server/oauth-actions":{"id":94108,"files":["static/chunks/4108.1e51cb6f9a9638b0.js"]}}';
1
+ self.__REACT_LOADABLE_MANIFEST='{"app/roots/[id]/chat/[topicId]/_components/interaction-cards.tsx -> @/lib/server/oauth-actions":{"id":94108,"files":["static/chunks/4108.738ffa1f849a5485.js"]}}';
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-bf73daacb1b20997.js" defer=""></script><script src="/_next/static/chunks/framework-aaa7c1a953276299.js" defer=""></script><script src="/_next/static/chunks/main-bfb98fc1d6aa1d45.js" defer=""></script><script src="/_next/static/chunks/pages/_app-bf8bc157ace53d59.js" defer=""></script><script src="/_next/static/chunks/pages/_error-da89ab2956f0cf38.js" defer=""></script><script src="/_next/static/1JOww-AoS7M9R4-h4i1EK/_buildManifest.js" defer=""></script><script src="/_next/static/1JOww-AoS7M9R4-h4i1EK/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"1JOww-AoS7M9R4-h4i1EK","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-9a901eb0ce37db73.js" defer=""></script><script src="/_next/static/chunks/framework-aaa7c1a953276299.js" defer=""></script><script src="/_next/static/chunks/main-bfb98fc1d6aa1d45.js" defer=""></script><script src="/_next/static/chunks/pages/_app-bf8bc157ace53d59.js" defer=""></script><script src="/_next/static/chunks/pages/_error-da89ab2956f0cf38.js" defer=""></script><script src="/_next/static/lsd-85A_MGaBztIdQYLgO/_buildManifest.js" defer=""></script><script src="/_next/static/lsd-85A_MGaBztIdQYLgO/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"lsd-85A_MGaBztIdQYLgO","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>