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
@@ -0,0 +1,3 @@
1
+ "use strict";exports.id=2884,exports.ids=[2884],exports.modules={12650:(a,b,c)=>{c.d(b,{E:()=>f});var d=c(64173),e=c(91344);function f({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"skeleton",className:(0,e.cn)("animate-pulse rounded-md bg-accent",a),...b})}},14425:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(42557).A)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},15620:(a,b,c)=>{c.d(b,{CommandBar:()=>o});var d=c(64173),e=c(17240),f=c(87671),g=c(71813),h=c(73569),i=c(44052),j=c(56911),k=c(59650),l=c(8836),m=c(88724),n=c(65048);function o({rootId:a,focusFile:b}){let c=(0,g.c)("roots"),[,o]=(0,e.useTransition)(),p=(0,f.useRouter)();return(0,d.jsx)(l.E,{label:c("commandBar.label"),children:(0,d.jsx)(n.L,{rootId:a,placeholder:c("commandBar.placeholder"),submitLabel:c("commandBar.submit"),pendingLabel:c("commandBar.submitPending"),SubmitIcon:h.A,onSubmit:async({message:d,attachments:e})=>await new Promise(f=>{o(async()=>{let g=await (0,j.g)(a,d,e,b);if(!g.ok){i.oR.error(g.error??c("commandBar.startFailed")),f(!1);return}(0,m.$d)(m.Zi.topicsChanged(a)),d.trim()&&(0,k.h)(a,g.topicId,d).then(b=>{b.ok&&(0,m.$d)(m.Zi.topicsChanged(a))}),p.push(`/roots/${a}/chat/${g.topicId}`),f(!0)})})})})}},16551:(a,b,c)=>{c.d(b,{Xi:()=>k,av:()=>l,j7:()=>j,tU:()=>h});var d=c(64173);c(17240);var e=c(20483),f=c(61193),g=c(91344);function h({className:a,orientation:b="horizontal",...c}){return(0,d.jsx)(f.Root,{"data-slot":"tabs","data-orientation":b,orientation:b,className:(0,g.cn)("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",a),...c})}let i=(0,e.F)("group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-[orientation=horizontal]/tabs:h-9 group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col data-[variant=line]:rounded-none",{variants:{variant:{default:"bg-muted",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function j({className:a,variant:b="default",...c}){return(0,d.jsx)(f.List,{"data-slot":"tabs-list","data-variant":b,className:(0,g.cn)(i({variant:b}),a),...c})}function k({className:a,...b}){return(0,d.jsx)(f.Trigger,{"data-slot":"tabs-trigger",className:(0,g.cn)("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent","data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground","after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",a),...b})}function l({className:a,...b}){return(0,d.jsx)(f.Content,{"data-slot":"tabs-content",className:(0,g.cn)("flex-1 outline-none",a),...b})}},16805:(a,b,c)=>{c.d(b,{ShareButton:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call ShareButton() from the server but ShareButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/app/_components/share-button.tsx","ShareButton")},27129:(a,b,c)=>{c.d(b,{Cz:()=>k,IK:()=>l,hN:()=>j,uA:()=>i});var d=c(73745);c(66493);var e=c(56942),f=c(53905),g=c(84579),h=c(91388);async function i(a){try{let b,c=await (0,g.generateImage)({rootId:a.rootId,prompt:a.prompt,...a.provider?{provider:a.provider}:{},...a.aspectRatio?{aspectRatio:a.aspectRatio}:{},...a.alt?{alt:a.alt}:{}}),d=n(a.alt||a.prompt),e=`![${d}](${c.urlPath})`;return a.attachToKb&&(b=await m(a.rootId,{title:a.alt||a.prompt.slice(0,80),markdown:e,meta:{provider:c.provider,prompt:a.prompt,sha:c.sha,...a.aspectRatio?{aspectRatio:a.aspectRatio}:{}}})),{ok:!0,url:c.urlPath,sha:c.sha,markdown:e,...b?{kbRelPath:b}:{}}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function j(a){try{let b=await (0,g.searchImages)({query:a.query,...a.provider?{provider:a.provider}:{},...a.count?{count:a.count}:{}});return{ok:!0,results:b}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function k(a){try{let b,c=await (0,g.attachRemote)({rootId:a.rootId,sourceUrl:a.sourceUrl}),d=n(a.alt||"image"),e=a.attribution?`
2
+
3
+ _Photo: [${a.attribution.name}](${a.attribution.link})_`:"",f=`![${d}](${c.urlPath})${e}`;return a.attachToKb&&(b=await m(a.rootId,{title:a.alt||"Found image",markdown:f,meta:{source:"web",sourceUrl:a.sourceUrl,sha:c.sha,...a.attribution?{author:a.attribution.name,authorUrl:a.attribution.link}:{}}})),{ok:!0,url:c.urlPath,sha:c.sha,markdown:f,...b?{kbRelPath:b}:{}}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function l(a){try{let b,c=Buffer.from(a.base64,"base64");if(0===c.byteLength)return{ok:!1,error:"Empty upload"};if(!a.mime.startsWith("image/"))return{ok:!1,error:`Unsupported mime: ${a.mime}`};let d=await (0,h.YN)(a.rootId,c,a.mime),e=n(a.alt||"image"),f=`![${e}](${d.urlPath})`;return a.attachToKb&&(b=await m(a.rootId,{title:a.alt||"Uploaded image",markdown:f,meta:{source:"upload",sha:d.sha,mime:a.mime}})),{ok:!0,url:d.urlPath,sha:d.sha,markdown:f,...b?{kbRelPath:b}:{}}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function m(a,b){let c=await (0,f.getRoot)(a);if(!c)throw Error(`unknown rootId: ${a}`);return(await (0,e.j)({rootPath:c.path,directive:{kind:"image",title:b.title,body:b.markdown,meta:b.meta}})).relPath}function n(a){return a.replace(/[\[\]\n]/g," ").slice(0,200)}(0,c(63781).D)([i,j,k,l]),(0,d.A)(i,"40c4d8d65e1a52598d722305ac46ed1094d7f17c9c",null),(0,d.A)(j,"407f482eddc078d068d4957fa6aef8984386de3b64",null),(0,d.A)(k,"404f06bfd3d509083f7e9a64bf1184962b24dce793",null),(0,d.A)(l,"40e88f0b0d582b4170fd17598cfaa8d3ed26984ebc",null)},29130:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(42557).A)("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]])},56911:(a,b,c)=>{c.d(b,{g:()=>e});var d=c(3265);let e=(0,d.createServerReference)("7851bce53795cb179f10327067c4fd3bbad05858fc",d.callServer,void 0,d.findSourceMapURL,"startTopicAction")},59650:(a,b,c)=>{c.d(b,{h:()=>e});var d=c(3265);let e=(0,d.createServerReference)("700c82bac42f7e6cd514456ecb3e60e1f53e63165b",d.callServer,void 0,d.findSourceMapURL,"generateTopicTitleAction")},71155:(a,b,c)=>{c.d(b,{bq:()=>l,eb:()=>n,gC:()=>m,l6:()=>j,yv:()=>k});var d=c(64173);c(17240);var e=c(58405),f=c(12619),g=c(78724),h=c(13976),i=c(91344);function j({...a}){return(0,d.jsx)(h.Root,{"data-slot":"select",...a})}function k({...a}){return(0,d.jsx)(h.Value,{"data-slot":"select-value",...a})}function l({className:a,size:b="default",children:c,...f}){return(0,d.jsxs)(h.Trigger,{"data-slot":"select-trigger","data-size":b,className:(0,i.cn)("flex w-fit items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",a),...f,children:[c,(0,d.jsx)(h.Icon,{asChild:!0,children:(0,d.jsx)(e.A,{className:"size-4 opacity-50"})})]})}function m({className:a,children:b,position:c="item-aligned",align:e="center",...f}){return(0,d.jsx)(h.Portal,{children:(0,d.jsxs)(h.Content,{"data-slot":"select-content",className:(0,i.cn)("relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95","popper"===c&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:c,align:e,...f,children:[(0,d.jsx)(o,{}),(0,d.jsx)(h.Viewport,{className:(0,i.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:b}),(0,d.jsx)(p,{})]})})}function n({className:a,children:b,...c}){return(0,d.jsxs)(h.Item,{"data-slot":"select-item",className:(0,i.cn)("relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",a),...c,children:[(0,d.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,d.jsx)(h.ItemIndicator,{children:(0,d.jsx)(f.A,{className:"size-4"})})}),(0,d.jsx)(h.ItemText,{children:b})]})}function o({className:a,...b}){return(0,d.jsx)(h.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(g.A,{className:"size-4"})})}function p({className:a,...b}){return(0,d.jsx)(h.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(e.A,{className:"size-4"})})}},77317:(a,b,c)=>{c.d(b,{ShareButton:()=>p});var d=c(64173),e=c(17240);let f=(0,c(42557).A)("Share2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]);var g=c(12619),h=c(28082),i=c(66979),j=c(42324),k=c(44052),l=c(71813),m=c(3265);let n=(0,m.createServerReference)("40b69b6ca3497fcbda91ca4d2c95bbe2cc44be6950",m.callServer,void 0,m.findSourceMapURL,"createShareAction");var o=c(13156);function p(a){let b=(0,l.c)("app"),[c,m]=(0,e.useState)(!1),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useTransition)(),[t,u]=(0,e.useState)(null);return c?t?(0,d.jsxs)("div",{className:"rounded border bg-card p-2 text-xs space-y-1.5 w-full max-w-sm",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-emerald-700",children:[(0,d.jsx)(g.A,{className:"h-3.5 w-3.5"}),(0,d.jsx)("span",{className:"font-medium",children:b("share.button.createdTitle")})]}),(0,d.jsx)("a",{href:t.url,target:"_blank",rel:"noopener noreferrer",className:"block font-mono text-[11px] text-violet-700 hover:underline break-all",children:t.url}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>void navigator.clipboard.writeText(t.url).then(()=>k.oR.success(b("share.button.copied"))),className:"inline-flex items-center gap-1 rounded border px-2 py-0.5 hover:bg-accent",children:[(0,d.jsx)(h.A,{className:"h-3 w-3"}),b("share.button.copy")]}),(0,d.jsx)("button",{type:"button",onClick:()=>{u(null),m(!1),q("")},className:"text-muted-foreground hover:text-foreground",children:b("share.button.done")})]})]}):(0,d.jsxs)("div",{className:"rounded border bg-card p-2 text-xs space-y-1.5 w-full max-w-sm",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)(f,{className:"h-3.5 w-3.5 text-violet-600"}),(0,d.jsx)("span",{className:"font-medium",children:b("share.button.newLink")}),(0,d.jsx)("button",{type:"button",onClick:()=>m(!1),className:"ml-auto text-muted-foreground hover:text-foreground",children:(0,d.jsx)(i.A,{className:"h-3 w-3"})})]}),(0,d.jsx)("label",{className:"block text-[10px] text-muted-foreground",children:b("share.button.passwordLabel")}),(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)(j.A,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground pointer-events-none"}),(0,d.jsx)("input",{type:"password",value:p,onChange:a=>q(a.target.value),autoFocus:!0,placeholder:b("share.button.passwordPlaceholder"),className:"w-full rounded border bg-background pl-6 pr-2 py-1 text-xs focus:outline-none focus:ring-1 focus:ring-violet-400"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>{s(async()=>{let c=await (0,o.N)(),d=await n({kind:a.kind,...a.rootId?{rootId:a.rootId}:{},...a.utilityScope?{utilityScope:a.utilityScope}:{},...a.utilityId?{utilityId:a.utilityId}:{},...a.kbRelPath?{kbRelPath:a.kbRelPath}:{},...a.label?{label:a.label}:{},...p.trim()?{password:p.trim()}:{}});if(!d.ok)return void k.oR.error(d.error);let e=c.status.publicUrl??window.location.origin,f=new URL(`/share/${d.share.id}`,e).toString();u({share:d.share,url:f}),navigator.clipboard.writeText(f).catch(()=>null),k.oR.success(c.status.running?b("share.button.created"):b("share.button.createdNoTunnel"))})},disabled:r,className:"w-full rounded bg-violet-600 text-white px-2 py-1 hover:bg-violet-700 disabled:opacity-50 inline-flex items-center justify-center gap-1",children:r?b("share.button.creating"):b("share.button.create")}),(0,d.jsx)("p",{className:"text-[10px] text-muted-foreground",children:b("share.button.footer")})]}):(0,d.jsxs)("button",{type:"button",onClick:()=>m(!0),className:a.iconOnly?"p-1 rounded hover:bg-accent text-muted-foreground hover:text-violet-700":"inline-flex items-center gap-1 rounded border px-2 py-1 text-xs hover:bg-accent",title:b("share.button.title"),children:[(0,d.jsx)(f,{className:"h-3.5 w-3.5"}),!a.iconOnly&&b("share.button.label")]})}},78724:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(42557).A)("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},86416:(a,b,c)=>{c.d(b,{InsertImageButton:()=>C});var d=c(64173),e=c(17240),f=c(87671),g=c(29130),h=c(71813),i=c(20583),j=c(66979),k=c(69552),l=c(65943);let m=(0,c(42557).A)("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);var n=c(44052),o=c(47071),p=c(45477),q=c(80281),r=c(71155),s=c(16551),t=c(27456),u=c(12650),v=c(3265);let w=(0,v.createServerReference)("40c4d8d65e1a52598d722305ac46ed1094d7f17c9c",v.callServer,void 0,v.findSourceMapURL,"generateAction"),x=(0,v.createServerReference)("407f482eddc078d068d4957fa6aef8984386de3b64",v.callServer,void 0,v.findSourceMapURL,"searchAction"),y=(0,v.createServerReference)("404f06bfd3d509083f7e9a64bf1184962b24dce793",v.callServer,void 0,v.findSourceMapURL,"attachAction"),z=(0,v.createServerReference)("40e88f0b0d582b4170fd17598cfaa8d3ed26984ebc",v.callServer,void 0,v.findSourceMapURL,"uploadAction"),A=["1:1","16:9","9:16","4:3","3:4","21:9"];function B({rootId:a,open:b,onOpenChange:c,onInsert:f}){let v=(0,h.c)("app"),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)("gemini"),[F,G]=(0,e.useState)("1:1"),[H,I]=(0,e.useState)(!0),[J,K]=(0,e.useState)(null),[L,M]=(0,e.useTransition)(),[N,O]=(0,e.useState)(""),[P,Q]=(0,e.useState)("unsplash"),[R,S]=(0,e.useState)([]),[T,U]=(0,e.useTransition)(),[V,W]=(0,e.useState)(null),[X,Y]=(0,e.useState)(!0),[Z,$]=(0,e.useState)(""),[_,aa]=(0,e.useState)(!0),[ab,ac]=(0,e.useTransition)();if(!b)return null;let ad=()=>{N.trim()&&(S([]),U(async()=>{let b=await x({rootId:a,query:N.trim(),provider:P,count:12});if(!b.ok)return void n.oR.error(b.error);S(b.results)}))};return(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",onClick:a=>{a.target===a.currentTarget&&c(!1)},children:[(0,d.jsx)("div",{"aria-hidden":!0,className:"absolute inset-0 bg-background/80 backdrop-blur-sm",onClick:()=>c(!1)}),(0,d.jsxs)("div",{className:"relative bg-card border rounded-lg shadow-xl w-full max-w-3xl max-h-[85vh] flex flex-col",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3 border-b",children:[(0,d.jsx)(g.A,{className:"h-4 w-4 text-violet-600"}),(0,d.jsx)("h2",{className:"text-sm font-medium flex-1",children:v("images.titleHeader")}),(0,d.jsx)(i.$,{type:"button",size:"icon",variant:"ghost",className:"h-7 w-7",onClick:()=>c(!1),children:(0,d.jsx)(j.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)(s.tU,{defaultValue:"generate",className:"flex-1 min-h-0 flex flex-col",children:[(0,d.jsxs)(s.j7,{className:"mx-4 mt-3 self-start",children:[(0,d.jsxs)(s.Xi,{value:"generate",children:[(0,d.jsx)(k.A,{className:"mr-1 h-3.5 w-3.5"})," ",v("images.tabGenerate")]}),(0,d.jsxs)(s.Xi,{value:"search",children:[(0,d.jsx)(l.A,{className:"mr-1 h-3.5 w-3.5"})," ",v("images.tabSearch")]}),(0,d.jsxs)(s.Xi,{value:"upload",children:[(0,d.jsx)(m,{className:"mr-1 h-3.5 w-3.5"})," ",v("images.tabUpload")]})]}),(0,d.jsxs)(t.F,{className:"flex-1 min-h-0",children:[(0,d.jsxs)(s.av,{value:"generate",className:"px-4 py-4 space-y-3",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(q.J,{htmlFor:"img-prompt",children:v("images.promptLabel")}),(0,d.jsx)(p.T,{id:"img-prompt",value:B,onChange:a=>C(a.target.value),placeholder:v("images.promptPlaceholder"),rows:4})]}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(q.J,{children:v("images.providerLabel")}),(0,d.jsxs)(r.l6,{value:D,onValueChange:a=>E(a),children:[(0,d.jsx)(r.bq,{children:(0,d.jsx)(r.yv,{})}),(0,d.jsxs)(r.gC,{children:[(0,d.jsx)(r.eb,{value:"gemini",children:"Gemini Nano Banana"}),(0,d.jsx)(r.eb,{value:"codex",children:"Codex $imagegen"})]})]})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(q.J,{children:v("images.aspectLabel")}),(0,d.jsxs)(r.l6,{value:F,onValueChange:G,children:[(0,d.jsx)(r.bq,{children:(0,d.jsx)(r.yv,{})}),(0,d.jsx)(r.gC,{children:A.map(a=>(0,d.jsx)(r.eb,{value:a,children:a},a))})]})]})]}),(0,d.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:H,onChange:a=>I(a.target.checked)}),v("images.saveToKb")]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(i.$,{type:"button",size:"sm",onClick:()=>{B.trim()&&(K(null),M(async()=>{let b=await w({rootId:a,prompt:B.trim(),provider:D,aspectRatio:F,attachToKb:H});if(!b.ok)return void n.oR.error(b.error);K({url:b.url,markdown:b.markdown,...b.kbRelPath?{kbRelPath:b.kbRelPath}:{}})}))},disabled:L||!B.trim(),children:L?v("images.generating"):v("images.generate")}),L&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:v("images.takesAMinute")})]}),L?(0,d.jsx)(u.E,{className:"h-64 w-full"}):J?(0,d.jsxs)("div",{className:"space-y-2 border rounded p-3",children:[(0,d.jsx)("img",{src:J.url,alt:B,className:"max-h-80 mx-auto rounded"}),(0,d.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,d.jsx)(i.$,{type:"button",size:"sm",variant:"outline",onClick:()=>K(null),children:v("images.again")}),(0,d.jsx)(i.$,{type:"button",size:"sm",onClick:()=>{J&&(f?.(J),n.oR.success(J.kbRelPath?v("images.savedToKb",{path:J.kbRelPath}):v("images.ready")),c(!1))},children:v("images.insert")})]})]}):null]}),(0,d.jsxs)(s.av,{value:"search",className:"px-4 py-4 space-y-3",children:[(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(o.p,{value:N,onChange:a=>O(a.target.value),placeholder:v("images.searchPlaceholder"),onKeyDown:a=>{"Enter"===a.key&&ad()}}),(0,d.jsxs)(r.l6,{value:P,onValueChange:a=>Q(a),children:[(0,d.jsx)(r.bq,{className:"w-36",children:(0,d.jsx)(r.yv,{})}),(0,d.jsxs)(r.gC,{children:[(0,d.jsx)(r.eb,{value:"unsplash",children:"Unsplash"}),(0,d.jsx)(r.eb,{value:"pexels",children:"Pexels"}),(0,d.jsx)(r.eb,{value:"brave",children:v("images.braveWeb")})]})]}),(0,d.jsx)(i.$,{type:"button",size:"sm",onClick:ad,disabled:T||!N.trim(),children:v("images.find")})]}),(0,d.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:X,onChange:a=>Y(a.target.checked)}),v("images.saveToKb")]}),T&&0===R.length?(0,d.jsx)("div",{className:"grid grid-cols-3 gap-2",children:Array.from({length:6}).map((a,b)=>(0,d.jsx)(u.E,{className:"h-32 w-full"},b))}):R.length>0?(0,d.jsx)("div",{className:"grid grid-cols-3 gap-2",children:R.map(b=>(0,d.jsxs)("button",{type:"button",disabled:null!==V,onClick:()=>{W(b.url),U(async()=>{let d=await y({rootId:a,sourceUrl:b.url,alt:N.trim()||"image",attribution:b.attribution,attachToKb:X});if(W(null),!d.ok)return void n.oR.error(d.error);f?.({url:d.url,markdown:d.markdown,...d.kbRelPath?{kbRelPath:d.kbRelPath}:{}}),n.oR.success(d.kbRelPath?v("images.savedToKb",{path:d.kbRelPath}):v("images.savedToProject")),c(!1)})},className:"group relative overflow-hidden rounded border hover:border-violet-500 disabled:opacity-50",title:`${b.attribution.name} \xb7 ${b.provider}`,children:[(0,d.jsx)("img",{src:b.thumb,alt:"",className:"h-32 w-full object-cover"}),(0,d.jsx)("div",{className:"absolute bottom-0 inset-x-0 px-1.5 py-0.5 text-[10px] bg-black/60 text-white truncate",children:b.attribution.name}),V===b.url&&(0,d.jsx)("div",{className:"absolute inset-0 bg-black/40 flex items-center justify-center text-xs text-white",children:v("images.saving")})]},b.url))}):(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:v("images.noKeys")})]}),(0,d.jsxs)(s.av,{value:"upload",className:"px-4 py-4 space-y-3",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(q.J,{htmlFor:"img-alt",children:v("images.altLabel")}),(0,d.jsx)(o.p,{id:"img-alt",value:Z,onChange:a=>$(a.target.value),placeholder:v("images.altPlaceholder")})]}),(0,d.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:_,onChange:a=>aa(a.target.checked)}),v("images.saveToKb")]}),(0,d.jsx)(o.p,{type:"file",accept:"image/*",disabled:ab,onChange:b=>{let d=b.target.files?.[0];d&&ac(async()=>{let b=function(a){let b=new Uint8Array(a),c="";for(let a=0;a<b.length;a+=32768){let d=b.subarray(a,a+32768);c+=String.fromCharCode.apply(null,Array.from(d))}return btoa(c)}(await d.arrayBuffer()),e=await z({rootId:a,base64:b,mime:d.type,alt:Z||d.name.replace(/\.[^.]+$/,""),attachToKb:_});if(!e.ok)return void n.oR.error(e.error);f?.({url:e.url,markdown:e.markdown,...e.kbRelPath?{kbRelPath:e.kbRelPath}:{}}),n.oR.success(e.kbRelPath?v("images.savedToKb",{path:e.kbRelPath}):v("images.uploaded")),c(!1)})}}),ab&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:v("images.uploading")})]})]})]})]})]})}function C({rootId:a,redirectToKb:b=!0}){let[c,j]=(0,e.useState)(!1),k=(0,f.useRouter)(),l=(0,h.c)("app");return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(i.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>j(!0),children:[(0,d.jsx)(g.A,{className:"mr-1 h-4 w-4"})," ",l("images.button")]}),(0,d.jsx)(B,{rootId:a,open:c,onOpenChange:j,onInsert:({kbRelPath:c})=>{if(b&&c){let b=c.split("/").map(encodeURIComponent).join("/");k.push(`/roots/${a}/kb/${b}`)}}})]})}},86673:(a,b,c)=>{c.d(b,{InsertImageButton:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call InsertImageButton() from the server but InsertImageButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/app/_components/kb/insert-image-button.tsx","InsertImageButton")},88842:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(19963).A)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]])}};
@@ -1 +1 @@
1
- "use strict";exports.id=3240,exports.ids=[3240],exports.modules={37576:(a,b,c)=>{c.d(b,{B:()=>e});var d=c(7188);async function e(a,b){let c=b.memoryFile?await (0,d.iq)(a,b.memoryFile):null,e=[];return e.push(`[Reflex auto-refresh] Widget "${b.title}" (id: \`${b.id}\`, kind: \`${b.kind}\`) is due for an update.`),e.push(""),e.push("Current widget data:"),e.push("```json"),e.push(JSON.stringify(b.data,null,2)),e.push("```"),e.push(""),b.memory&&b.memory.trim()&&(e.push("Current inline memory:"),e.push("```"),e.push(b.memory),e.push("```"),e.push("")),b.memoryFile&&(e.push(`Memory file: \`${b.memoryFile}\``),c&&c.trim()?(e.push("```markdown"),e.push(c.slice(0,4e3)),e.push("```")):e.push("_(file is empty or does not exist — create it on the first update)_"),e.push("")),e.push("What to do:"),e.push(`- Emit \`<<reflex:widget-update>>\` with id="${b.id}" and fresh data.`),e.push("- If `memory` exists, update its contents (dedup links, value history, etc.). Do not reset it to empty."),b.memoryFile&&e.push(`- If it makes sense, append to memoryFile (\`${b.memoryFile}\`) via \`<<reflex:kb>>\` (kind="widget-memory", title="<title>"). Do not duplicate the widget's own data there.`),e.push("- Keep the chat reply short (one line) — this is an automatic refresh, no extended commentary needed."),e.push(`- Cadence: \`${b.refresh??"manual"}\`. Do not change it without an explicit request.`),e.join("\n")}},93240:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{isDue:()=>q,startWidgetScheduler:()=>m,stopWidgetScheduler:()=>n});var e=c(24576),f=c(16909),g=c(31900),h=c(7188),i=c(11244),j=c(37576),k=a([f,g]);[f,g]=k.then?(await k)():k;let s="__reflexWidgetScheduler";function l(){return globalThis[s]||(globalThis[s]={intervalId:null,ticking:!1,startedAt:new Date().toISOString()}),globalThis[s]}function m(){let a=l();a.intervalId||(setTimeout(()=>{o().catch(a=>{console.error("[widget-scheduler] initial tick failed:",a)})},3e4),a.intervalId=setInterval(()=>{o().catch(a=>{console.error("[widget-scheduler] tick failed:",a)})},3e5))}function n(){let a=l();a.intervalId&&(clearInterval(a.intervalId),a.intervalId=null)}async function o(){let a=l();if(!a.ticking){a.ticking=!0;try{for(let a of(await (0,e.qV)()))try{await p(a.id,a.path)}catch(b){console.error(`[widget-scheduler] root ${a.id} failed:`,b instanceof Error?b.message:b)}}finally{a.ticking=!1}}}async function p(a,b){for(let d of(await (0,h.listWidgets)(b))){if(q(d)){if("utility-card"===d.kind){let{refreshUtilityCard:b}=await Promise.all([c.e(7300),c.e(2485),c.e(1116)]).then(c.bind(c,71116)),e=await b(a,d.id);e.ok||console.error(`[widget-scheduler] ${d.id} card refresh: ${e.error}`);continue}d.sourceTopicId&&(f.z.isActive(d.sourceTopicId)||await r(a,b,d))}}}function q(a){if(!a.refresh||"manual"===a.refresh)return!1;let b=i.VQ[a.refresh];if(!b)return!1;let c=a.lastRefreshAt??a.updatedAt,d=Date.now()-Date.parse(c);return Number.isFinite(d)&&d>=b}async function r(a,b,c){let d={...c,lastRefreshAt:new Date().toISOString()};await (0,h.writeWidget)(b,d);let e=await (0,j.B)(b,d),f=await (0,g.W)({rootId:a,topicId:c.sourceTopicId,message:e,attachments:[]});"error"in f&&console.error(`[widget-scheduler] couldn't start refresh for ${c.id}: ${f.error}`)}d()}catch(a){d(a)}})}};
1
+ "use strict";exports.id=3240,exports.ids=[3240],exports.modules={37576:(a,b,c)=>{c.d(b,{B:()=>e});var d=c(7188);async function e(a,b){let c=b.memoryFile?await (0,d.iq)(a,b.memoryFile):null,e=[];return e.push(`[Reflex auto-refresh] Widget "${b.title}" (id: \`${b.id}\`, kind: \`${b.kind}\`) is due for an update.`),e.push(""),e.push("Current widget data:"),e.push("```json"),e.push(JSON.stringify(b.data,null,2)),e.push("```"),e.push(""),b.memory&&b.memory.trim()&&(e.push("Current inline memory:"),e.push("```"),e.push(b.memory),e.push("```"),e.push("")),b.memoryFile&&(e.push(`Memory file: \`${b.memoryFile}\``),c&&c.trim()?(e.push("```markdown"),e.push(c.slice(0,4e3)),e.push("```")):e.push("_(file is empty or does not exist — create it on the first update)_"),e.push("")),e.push("What to do:"),e.push(`- Emit \`<<reflex:widget-update>>\` with id="${b.id}" and fresh data.`),e.push("- If `memory` exists, update its contents (dedup links, value history, etc.). Do not reset it to empty."),b.memoryFile&&e.push(`- If it makes sense, append to memoryFile (\`${b.memoryFile}\`) via \`<<reflex:kb>>\` (kind="widget-memory", title="<title>"). Do not duplicate the widget's own data there.`),e.push("- Keep the chat reply short (one line) — this is an automatic refresh, no extended commentary needed."),e.push(`- Cadence: \`${b.refresh??"manual"}\`. Do not change it without an explicit request.`),e.join("\n")}},93240:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{isDue:()=>q,startWidgetScheduler:()=>m,stopWidgetScheduler:()=>n});var e=c(24576),f=c(16909),g=c(31900),h=c(7188),i=c(11244),j=c(37576),k=a([f,g]);[f,g]=k.then?(await k)():k;let s="__reflexWidgetScheduler";function l(){return globalThis[s]||(globalThis[s]={intervalId:null,ticking:!1,startedAt:new Date().toISOString()}),globalThis[s]}function m(){let a=l();a.intervalId||(setTimeout(()=>{o().catch(a=>{console.error("[widget-scheduler] initial tick failed:",a)})},3e4),a.intervalId=setInterval(()=>{o().catch(a=>{console.error("[widget-scheduler] tick failed:",a)})},3e5))}function n(){let a=l();a.intervalId&&(clearInterval(a.intervalId),a.intervalId=null)}async function o(){let a=l();if(!a.ticking){a.ticking=!0;try{for(let a of(await (0,e.listRoots)()))try{await p(a.id,a.path)}catch(b){console.error(`[widget-scheduler] root ${a.id} failed:`,b instanceof Error?b.message:b)}}finally{a.ticking=!1}}}async function p(a,b){for(let d of(await (0,h.listWidgets)(b))){if(q(d)){if("utility-card"===d.kind){let{refreshUtilityCard:b}=await Promise.all([c.e(7300),c.e(2485),c.e(1116)]).then(c.bind(c,71116)),e=await b(a,d.id);e.ok||console.error(`[widget-scheduler] ${d.id} card refresh: ${e.error}`);continue}d.sourceTopicId&&(f.z.isActive(d.sourceTopicId)||await r(a,b,d))}}}function q(a){if(!a.refresh||"manual"===a.refresh)return!1;let b=i.VQ[a.refresh];if(!b)return!1;let c=a.lastRefreshAt??a.updatedAt,d=Date.now()-Date.parse(c);return Number.isFinite(d)&&d>=b}async function r(a,b,c){let d={...c,lastRefreshAt:new Date().toISOString()};await (0,h.writeWidget)(b,d);let e=await (0,j.B)(b,d),f=await (0,g.startOrchestratorTurn)({rootId:a,topicId:c.sourceTopicId,message:e,attachments:[]});"error"in f&&console.error(`[widget-scheduler] couldn't start refresh for ${c.id}: ${f.error}`)}d()}catch(a){d(a)}})}};
@@ -1 +1 @@
1
- "use strict";exports.id=3332,exports.ids=[3332],exports.modules={12195:(a,b,c)=>{c.d(b,{S:()=>e});var d=c(3265);let e=(0,d.createServerReference)("40f20df7897734db36e2cba3b89c39c9f796884a12",d.callServer,void 0,d.findSourceMapURL,"saveOAuthClientAction")},33332:(a,b,c)=>{c.d(b,{beginOAuthAction:()=>g.T,getOAuthClientAction:()=>e.J,listOAuthStatusesAction:()=>d.o,saveOAuthClientAction:()=>f.S});var d=c(97088),e=c(88471),f=c(12195),g=c(61705)},61705:(a,b,c)=>{c.d(b,{T:()=>e});var d=c(3265);let e=(0,d.createServerReference)("60458f03ee6a73dba37df1c8c9b33b02708d55aa9e",d.callServer,void 0,d.findSourceMapURL,"beginOAuthAction")},88471:(a,b,c)=>{c.d(b,{J:()=>e});var d=c(3265);let e=(0,d.createServerReference)("4018d1854ab4c4377f55e3946b94542c8af5fe8f1e",d.callServer,void 0,d.findSourceMapURL,"getOAuthClientAction")},97088:(a,b,c)=>{c.d(b,{o:()=>e});var d=c(3265);let e=(0,d.createServerReference)("006638ca82469d69354878120a24e491edbd87a7a9",d.callServer,void 0,d.findSourceMapURL,"listOAuthStatusesAction")}};
1
+ "use strict";exports.id=3332,exports.ids=[3332],exports.modules={33332:(a,b,c)=>{c.d(b,{beginOAuthAction:()=>g.T,getOAuthClientAction:()=>e.J,listOAuthStatusesAction:()=>d.o,saveOAuthClientAction:()=>f.S});var d=c(87683),e=c(86402),f=c(76565),g=c(89816)},76565:(a,b,c)=>{c.d(b,{S:()=>e});var d=c(3265);let e=(0,d.createServerReference)("40c2dd3ce84b9fb4926b8702d8cf5c5ee0df892e05",d.callServer,void 0,d.findSourceMapURL,"saveOAuthClientAction")},86402:(a,b,c)=>{c.d(b,{J:()=>e});var d=c(3265);let e=(0,d.createServerReference)("40a167b495f96de52a1fa9d5308390c35cf3de077f",d.callServer,void 0,d.findSourceMapURL,"getOAuthClientAction")},87683:(a,b,c)=>{c.d(b,{o:()=>e});var d=c(3265);let e=(0,d.createServerReference)("00fc1729a4ff83c849c2612bcaa8b2ecba1e75dd22",d.callServer,void 0,d.findSourceMapURL,"listOAuthStatusesAction")},89816:(a,b,c)=>{c.d(b,{T:()=>e});var d=c(3265);let e=(0,d.createServerReference)("60f2c1fe4529a405e4dc9c8f0b8789453a594df12e",d.callServer,void 0,d.findSourceMapURL,"beginOAuthAction")}};
@@ -1 +1 @@
1
- "use strict";exports.id=3377,exports.ids=[3377],exports.modules={3377:(a,b,c)=>{c.d(b,{notify:()=>e});var d=c(17640);async function e(a){let b=[],e={};if(!a.body?.trim())return{delivered:b,errors:{_:"empty body"}};let f=await (0,d.M)(),g=f.notify?.telegram;if(g?.enabled&&g.botToken&&g.chatId)try{let{sendTelegram:d}=await c.e(4578).then(c.bind(c,54578));await d(g,a),b.push("telegram")}catch(a){e.telegram=a instanceof Error?a.message:String(a)}return{delivered:b,errors:e}}}};
1
+ "use strict";exports.id=3377,exports.ids=[3377],exports.modules={3377:(a,b,c)=>{c.d(b,{notify:()=>e});var d=c(17640);async function e(a){let b=[],e={};if(!a.body?.trim())return{delivered:b,errors:{_:"empty body"}};let f=await (0,d.loadSettings)(),g=f.notify?.telegram;if(g?.enabled&&g.botToken&&g.chatId)try{let{sendTelegram:d}=await c.e(4578).then(c.bind(c,54578));await d(g,a),b.push("telegram")}catch(a){e.telegram=a instanceof Error?a.message:String(a)}return{delivered:b,errors:e}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=3834,exports.ids=[2787,3834],exports.modules={2787:(a,b,c)=>{c.d(b,{createTask:()=>o,deleteTask:()=>s,getTask:()=>q,listTasks:()=>p,updateTask:()=>r});var d=c(73024),e=c(76760),f=c.n(e),g=c(77598),h=c.n(g),i=c(30192),j=c.n(i),k=c(13474),l=c(11178),m=c(75207);let n="task";async function o(a,b){let c=`t-${h().randomBytes(4).toString("hex")}`,e=b.title.normalize("NFKD").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60)||c,g=new Date().toISOString().slice(0,10),i=`${g}-${e}.md`,j=f().join((0,k.FF)(a),n);await d.promises.mkdir(j,{recursive:!0});let l=await v(j,i),m={id:c,title:b.title.trim(),type:b.type??"feature",status:b.status??"backlog",priority:b.priority??"normal",labels:b.labels??[],assignee:b.assignee??null,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),topicId:null,agentRequested:null,worktree:null,links:b.links??{},parent:b.parent??null,pre:b.pre??[],post:b.post??[],attachments:b.attachments??[],relPath:f().relative((0,k.FF)(a),l).split(f().sep).join("/"),body:(b.body??"").trim()};return await u(l,m),m}async function p(a){let b=await (0,l.dj)(a).catch(()=>[]),c=[];for(let d of b){if(d.meta.kind!==n)continue;let b=await t(d.abs,a).catch(()=>null);b&&c.push(b)}return c.sort((a,b)=>a.updatedAt<b.updatedAt?1:-1),c}async function q(a,b){return(await p(a)).find(a=>a.id===b)??null}async function r(a,b,c){let d=await q(a,b);if(!d)return null;let e=f().join((0,k.FF)(a),d.relPath),g={...d,...c,updatedAt:new Date().toISOString()};return await u(e,g),g}async function s(a,b){let c=await q(a,b);if(!c)return!1;let e=f().join((0,k.FF)(a),c.relPath);return await d.promises.rm(e,{force:!0}),!0}async function t(a,b){var c,e,g;let h=await d.promises.readFile(a,"utf8"),i=j()(h),l=i.data,n="string"==typeof l.id?l.id:null,o="string"==typeof l.title?l.title:null;if(!n||!o)return null;let p=f().relative((0,k.FF)(b),a).split(f().sep).join("/");return{id:n,title:o,type:x(l.type,m.ci,"feature"),status:x(l.status,m.Hi,"backlog"),priority:x(l.priority,m.PN,"normal"),labels:Array.isArray(l.labels)?l.labels.map(String):[],assignee:"string"==typeof l.assignee?l.assignee:null,createdAt:"string"==typeof l.createdAt?l.createdAt:new Date().toISOString(),updatedAt:"string"==typeof l.updatedAt?l.updatedAt:new Date().toISOString(),topicId:"string"==typeof l.topicId?l.topicId:null,agentRequested:"string"==typeof l.agentRequested?l.agentRequested:null,worktree:(c=l.worktree)&&"object"==typeof c&&"string"==typeof c.dir&&"string"==typeof c.branch&&"string"==typeof c.baseRef?{dir:c.dir,branch:c.branch,baseRef:c.baseRef}:null,links:(e=l.links)&&"object"==typeof e?{...Array.isArray(e.blocks)?{blocks:e.blocks.map(String)}:{},...Array.isArray(e.blockedBy)?{blockedBy:e.blockedBy.map(String)}:{},...Array.isArray(e.related)?{related:e.related.map(String)}:{}}:{},parent:"string"==typeof l.parent?l.parent:null,pre:y(l.pre),post:y(l.post),attachments:Array.isArray(g=l.attachments)?g.map(a=>{if(!a||"object"!=typeof a)return null;let b=a.kind;return"image"!==b&&"text"!==b&&"file"!==b||"string"!=typeof a.file?null:{kind:b,file:a.file,..."string"==typeof a.caption?{caption:a.caption}:{}}}).filter(a=>!!a):[],relPath:p,body:i.content.trim()}}async function u(a,b){let c={id:b.id,title:b.title,kind:n,type:b.type,status:b.status,priority:b.priority,labels:b.labels,assignee:b.assignee,createdAt:b.createdAt,updatedAt:b.updatedAt,topicId:b.topicId,agentRequested:b.agentRequested,worktree:b.worktree,links:b.links,parent:b.parent,pre:b.pre,post:b.post,attachments:b.attachments},e=b.body.trim(),g=j().stringify(e?e+"\n":"",c);await d.promises.mkdir(f().dirname(a),{recursive:!0}),await d.promises.writeFile(a,g,"utf8")}async function v(a,b){let c=f().extname(b),d=b.slice(0,b.length-c.length),e=f().join(a,b),g=2;for(;await w(e);)e=f().join(a,`${d}-${g}${c}`),g++;return e}async function w(a){try{return await d.promises.stat(a),!0}catch{return!1}}function x(a,b,c){return"string"==typeof a&&b.includes(a)?a:c}function y(a){return Array.isArray(a)?a.map(a=>a&&"object"==typeof a?"workflow"===a.kind&&"string"==typeof a.id?{kind:"workflow",id:a.id}:"chat"===a.kind&&"string"==typeof a.prompt?{kind:"chat",prompt:a.prompt}:null:null).filter(a=>!!a):[]}},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}},63834:(a,b,c)=>{c.d(b,{observeTask:()=>h});var d=c(24576),e=c(74342),f=c(24139),g=c(2787);async function h(a){let b=await (0,d.Zn)(a.rootId);if(!b)return null;let c=await (0,g.getTask)(b.path,a.taskId);if(!c)return null;if(!c.topicId)return{taskId:c.id,status:c.status,topicId:null,lastAssistantText:null,pending:[],recentEvents:[],topicEnded:!1};let h=await (0,e.wj)(b.path,c.topicId).catch(()=>[]),i=await (0,f._)(b.path,c.topicId).catch(()=>[]),j=function(a){let b="";for(let c=a.length-1;c>=0;c--){let d=a[c];if("assistant-delta"===d.type&&"string"==typeof d.text)b=d.text+b;else if("turn-start"===d.type||"agent-start"===d.type)break}if(!b.trim())return null;let c=b.replace(/<<reflex:[^>]+>>[\s\S]*?<<\/reflex:[^>]+>>/g,"").trim();return c?c.length>240?c.slice(0,240)+"…":c:null}(h),k=h.slice(-20).map(a=>({ts:a.ts,kind:a.type})),l=h.some(a=>"turn-end"===a.type||"agent-end"===a.type);return{taskId:c.id,status:c.status,topicId:c.topicId,lastAssistantText:j,pending:i.map(a=>({kind:a.kind,summary:a.summary,requestId:a.requestId})),recentEvents:k,topicEnded:l}}},74342:(a,b,c)=>{c.d(b,{Rs:()=>h,Zn:()=>i,v:()=>k,wj:()=>j});var d=c(73024),e=c(76760),f=c.n(e),g=c(13474);function h(a,b){return f().join((0,g.FF)(a),"topics",`${b}.events.jsonl`)}async function i(a,b,c){let e=h(a,b);await d.promises.mkdir(f().dirname(e),{recursive:!0}),await d.promises.appendFile(e,JSON.stringify(c)+"\n","utf8")}async function j(a,b){let c,e=h(a,b);try{c=await d.promises.readFile(e,"utf8")}catch(a){var f;if("object"==typeof(f=a)&&null!==f&&"code"in f&&"ENOENT"===f.code)return[];throw a}let g=[];for(let a of c.split(/\r?\n/))if(a.trim())try{g.push(JSON.parse(a))}catch{}return g}async function k(a,b){let c=await j(a,b);return 0===c.length?0:c[c.length-1].seq+1}},75207:(a,b,c)=>{c.d(b,{Hi:()=>e,KT:()=>i,PN:()=>f,Yj:()=>g,ak:()=>j,ci:()=>d,kJ:()=>h});let d=["feature","bug","refactor","docs","chore","research","review","call","idea"],e=["backlog","ready","in-progress","review","done","blocked"],f=["low","normal","high"],g={feature:{isCode:!0},bug:{isCode:!0,defaultSkill:"deep-research"},refactor:{isCode:!0},docs:{isCode:!0},chore:{isCode:!0},research:{isCode:!1,defaultSkill:"deep-research"},review:{isCode:!0},call:{isCode:!1},idea:{isCode:!1}};function h(a){return d.includes(a)}function i(a){return e.includes(a)}function j(a){return f.includes(a)}}};
1
+ "use strict";exports.id=3834,exports.ids=[2787,3834],exports.modules={2787:(a,b,c)=>{c.d(b,{createTask:()=>o,deleteTask:()=>s,getTask:()=>q,listTasks:()=>p,updateTask:()=>r});var d=c(73024),e=c(76760),f=c.n(e),g=c(77598),h=c.n(g),i=c(30192),j=c.n(i),k=c(13474),l=c(11178),m=c(75207);let n="task";async function o(a,b){let c=`t-${h().randomBytes(4).toString("hex")}`,e=b.title.normalize("NFKD").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60)||c,g=new Date().toISOString().slice(0,10),i=`${g}-${e}.md`,j=f().join((0,k.FF)(a),n);await d.promises.mkdir(j,{recursive:!0});let l=await v(j,i),m={id:c,title:b.title.trim(),type:b.type??"feature",status:b.status??"backlog",priority:b.priority??"normal",labels:b.labels??[],assignee:b.assignee??null,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),topicId:null,agentRequested:null,worktree:null,links:b.links??{},parent:b.parent??null,pre:b.pre??[],post:b.post??[],attachments:b.attachments??[],relPath:f().relative((0,k.FF)(a),l).split(f().sep).join("/"),body:(b.body??"").trim()};return await u(l,m),m}async function p(a){let b=await (0,l.dj)(a).catch(()=>[]),c=[];for(let d of b){if(d.meta.kind!==n)continue;let b=await t(d.abs,a).catch(()=>null);b&&c.push(b)}return c.sort((a,b)=>a.updatedAt<b.updatedAt?1:-1),c}async function q(a,b){return(await p(a)).find(a=>a.id===b)??null}async function r(a,b,c){let d=await q(a,b);if(!d)return null;let e=f().join((0,k.FF)(a),d.relPath),g={...d,...c,updatedAt:new Date().toISOString()};return await u(e,g),g}async function s(a,b){let c=await q(a,b);if(!c)return!1;let e=f().join((0,k.FF)(a),c.relPath);return await d.promises.rm(e,{force:!0}),!0}async function t(a,b){var c,e,g;let h=await d.promises.readFile(a,"utf8"),i=j()(h),l=i.data,n="string"==typeof l.id?l.id:null,o="string"==typeof l.title?l.title:null;if(!n||!o)return null;let p=f().relative((0,k.FF)(b),a).split(f().sep).join("/");return{id:n,title:o,type:x(l.type,m.ci,"feature"),status:x(l.status,m.Hi,"backlog"),priority:x(l.priority,m.PN,"normal"),labels:Array.isArray(l.labels)?l.labels.map(String):[],assignee:"string"==typeof l.assignee?l.assignee:null,createdAt:"string"==typeof l.createdAt?l.createdAt:new Date().toISOString(),updatedAt:"string"==typeof l.updatedAt?l.updatedAt:new Date().toISOString(),topicId:"string"==typeof l.topicId?l.topicId:null,agentRequested:"string"==typeof l.agentRequested?l.agentRequested:null,worktree:(c=l.worktree)&&"object"==typeof c&&"string"==typeof c.dir&&"string"==typeof c.branch&&"string"==typeof c.baseRef?{dir:c.dir,branch:c.branch,baseRef:c.baseRef}:null,links:(e=l.links)&&"object"==typeof e?{...Array.isArray(e.blocks)?{blocks:e.blocks.map(String)}:{},...Array.isArray(e.blockedBy)?{blockedBy:e.blockedBy.map(String)}:{},...Array.isArray(e.related)?{related:e.related.map(String)}:{}}:{},parent:"string"==typeof l.parent?l.parent:null,pre:y(l.pre),post:y(l.post),attachments:Array.isArray(g=l.attachments)?g.map(a=>{if(!a||"object"!=typeof a)return null;let b=a.kind;return"image"!==b&&"text"!==b&&"file"!==b||"string"!=typeof a.file?null:{kind:b,file:a.file,..."string"==typeof a.caption?{caption:a.caption}:{}}}).filter(a=>!!a):[],relPath:p,body:i.content.trim()}}async function u(a,b){let c={id:b.id,title:b.title,kind:n,type:b.type,status:b.status,priority:b.priority,labels:b.labels,assignee:b.assignee,createdAt:b.createdAt,updatedAt:b.updatedAt,topicId:b.topicId,agentRequested:b.agentRequested,worktree:b.worktree,links:b.links,parent:b.parent,pre:b.pre,post:b.post,attachments:b.attachments},e=b.body.trim(),g=j().stringify(e?e+"\n":"",c);await d.promises.mkdir(f().dirname(a),{recursive:!0}),await d.promises.writeFile(a,g,"utf8")}async function v(a,b){let c=f().extname(b),d=b.slice(0,b.length-c.length),e=f().join(a,b),g=2;for(;await w(e);)e=f().join(a,`${d}-${g}${c}`),g++;return e}async function w(a){try{return await d.promises.stat(a),!0}catch{return!1}}function x(a,b,c){return"string"==typeof a&&b.includes(a)?a:c}function y(a){return Array.isArray(a)?a.map(a=>a&&"object"==typeof a?"workflow"===a.kind&&"string"==typeof a.id?{kind:"workflow",id:a.id}:"chat"===a.kind&&"string"==typeof a.prompt?{kind:"chat",prompt:a.prompt}:null:null).filter(a=>!!a):[]}},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}},63834:(a,b,c)=>{c.d(b,{observeTask:()=>h});var d=c(24576),e=c(74342),f=c(24139),g=c(2787);async function h(a){let b=await (0,d.getRoot)(a.rootId);if(!b)return null;let c=await (0,g.getTask)(b.path,a.taskId);if(!c)return null;if(!c.topicId)return{taskId:c.id,status:c.status,topicId:null,lastAssistantText:null,pending:[],recentEvents:[],topicEnded:!1};let h=await (0,e.readEvents)(b.path,c.topicId).catch(()=>[]),i=await (0,f._)(b.path,c.topicId).catch(()=>[]),j=function(a){let b="";for(let c=a.length-1;c>=0;c--){let d=a[c];if("assistant-delta"===d.type&&"string"==typeof d.text)b=d.text+b;else if("turn-start"===d.type||"agent-start"===d.type)break}if(!b.trim())return null;let c=b.replace(/<<reflex:[^>]+>>[\s\S]*?<<\/reflex:[^>]+>>/g,"").trim();return c?c.length>240?c.slice(0,240)+"…":c:null}(h),k=h.slice(-20).map(a=>({ts:a.ts,kind:a.type})),l=h.some(a=>"turn-end"===a.type||"agent-end"===a.type);return{taskId:c.id,status:c.status,topicId:c.topicId,lastAssistantText:j,pending:i.map(a=>({kind:a.kind,summary:a.summary,requestId:a.requestId})),recentEvents:k,topicEnded:l}}},74342:(a,b,c)=>{c.d(b,{R:()=>h,appendEvent:()=>i,nextSeq:()=>k,readEvents:()=>j});var d=c(73024),e=c(76760),f=c.n(e),g=c(13474);function h(a,b){return f().join((0,g.FF)(a),"topics",`${b}.events.jsonl`)}async function i(a,b,c){let e=h(a,b);await d.promises.mkdir(f().dirname(e),{recursive:!0}),await d.promises.appendFile(e,JSON.stringify(c)+"\n","utf8")}async function j(a,b){let c,e=h(a,b);try{c=await d.promises.readFile(e,"utf8")}catch(a){var f;if("object"==typeof(f=a)&&null!==f&&"code"in f&&"ENOENT"===f.code)return[];throw a}let g=[];for(let a of c.split(/\r?\n/))if(a.trim())try{g.push(JSON.parse(a))}catch{}return g}async function k(a,b){let c=await j(a,b);return 0===c.length?0:c[c.length-1].seq+1}},75207:(a,b,c)=>{c.d(b,{Hi:()=>e,KT:()=>i,PN:()=>f,Yj:()=>g,ak:()=>j,ci:()=>d,kJ:()=>h});let d=["feature","bug","refactor","docs","chore","research","review","call","idea"],e=["backlog","ready","in-progress","review","done","blocked"],f=["low","normal","high"],g={feature:{isCode:!0},bug:{isCode:!0,defaultSkill:"deep-research"},refactor:{isCode:!0},docs:{isCode:!0},chore:{isCode:!0},research:{isCode:!1,defaultSkill:"deep-research"},review:{isCode:!0},call:{isCode:!1},idea:{isCode:!1}};function h(a){return d.includes(a)}function i(a){return e.includes(a)}function j(a){return f.includes(a)}}};
@@ -42,9 +42,9 @@ exports.id=4031,exports.ids=[4031],exports.modules={12140:(a,b,c)=>{"use strict"
42
42
  WHERE ${h.join(" AND ")}
43
43
  ORDER BY rank ASC
44
44
  LIMIT ?
45
- `;i.push(g);try{c=f.prepare(j).all(...i)}catch(b){let a=d.replace(/[()"^*:]/g," ").trim();if(!a||a===d)throw b;i[0]=a,c=f.prepare(j).all(...i)}return c.map(a=>({id:a.id,source:a.source,rootId:a.root_id,rootPath:a.root_path,ref:a.ref,title:a.title,isoDate:a.iso_date,rank:a.rank,snippet:a.snippet}))}c(87841),c(53905),c(54287)},49556:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{runServerAction:()=>m});var e=c(75919),f=c(76760),g=c.n(f),h=c(73136),i=c(99861),j=c(99066),k=c(12140),l=a([i,j]);async function m(a){let b=(0,i.actionBundlePath)(a.utility.dir,a.action.name),c=(0,h.pathToFileURL)(b).toString(),d=function(){let a="lib/server/utilities/worker-bootstrap.js",b=process.env.REFLEX_PKG_ROOT;if(b)return g().resolve(b,a);let c=null;try{c=61880}catch{}return"string"==typeof c&&g().isAbsolute(c)?c:g().resolve(process.cwd(),a)}();return new Promise((b,f)=>{let g=new e.Worker(d,{workerData:{bundleUrl:c,actionName:a.action.name,utilityId:a.utility.manifest.id,scope:a.utility.scope},env:{},eval:!1,resourceLimits:{maxOldGenerationSizeMb:256,maxYoungGenerationSizeMb:64}}),h=!1,i=(c,d,e)=>{h||(h=!0,clearTimeout(l),g.removeAllListeners(),g.terminate().catch(()=>{}),c?((0,k.u0)({ts:new Date().toISOString(),utilityId:a.utility.manifest.id,scope:a.utility.scope,channel:"worker",method:`action:${a.action.name}`,phase:"end",correlationId:a.parentCorrelationId??"(detached)",error:e??c.message}),f(c)):b(d))},l=setTimeout(()=>{i(Error("server action timed out"),void 0,"timeout")},a.action.timeoutMs);g.on("error",a=>i(a)),g.on("exit",a=>{0!==a&&i(Error(`worker exited with code ${a}`))}),g.on("message",async b=>{if(b&&"object"==typeof b){if("host-rpc"===b.type){let c=b.id,d=b.method,e=b.args;try{let b=await (0,j.p)({utility:a.utility,channel:"worker",...a.parentCorrelationId?{parentCorrelationId:a.parentCorrelationId}:{}},d,e);g.postMessage({type:"host-rpc-result",id:c,ok:!0,result:b})}catch(a){g.postMessage({type:"host-rpc-result",id:c,ok:!1,error:a instanceof Error?a.message:String(a)})}return}"invoke-result"===b.type&&(b.ok?i(null,b.result):i(Error(b.error||"server action failed")))}}),g.postMessage({type:"invoke",args:a.args})})}[i,j]=l.then?(await l)():l,d()}catch(a){d(a)}})},61880:(a,b,c)=>{"use strict";var d=c(75919);if(!d.parentPort)throw Error("worker-bootstrap.js must be loaded as a worker_threads child");let e=new Map,f=1,g=new Proxy({},{get(a,b){if("string"==typeof b)return function a(b){return new Proxy(function(){},{get(c,d){if("string"==typeof d&&"then"!==d&&"catch"!==d&&"finally"!==d)return a(b?`${b}.${d}`:d)},apply:(a,c,g)=>{var h;return h=g[0],new Promise((a,c)=>{let g=f++;e.set(g,{resolve:a,reject:c}),d.parentPort.postMessage({type:"host-rpc",id:g,method:b,args:h})})}})}(b)}});globalThis.__reflexHost=g,d.parentPort.on("message",async a=>{if(a&&"host-rpc-result"===a.type){let b=e.get(a.id);if(!b)return;e.delete(a.id),a.ok?b.resolve(a.result):b.reject(Error(a.error||"rpc failed"));return}if(a&&"invoke"===a.type)try{let b=await c(74664)(d.workerData.bundleUrl),e=b[d.workerData.actionName]??b.default;if("function"!=typeof e)throw Error(`action "${d.workerData.actionName}" must export a function (named export or default)`);let f=await e(a.args,g);d.parentPort.postMessage({type:"invoke-result",ok:!0,result:f})}catch(a){d.parentPort.postMessage({type:"invoke-result",ok:!1,error:a&&a.message?a.message:String(a)})}})},74664:a=>{function b(a){return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b})}b.keys=()=>[],b.resolve=b,b.id=74664,a.exports=b},99066:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{p:()=>q});var e=c(73024),f=c(76760),g=c.n(f),h=c(56149),i=c(12140),j=c(99353),k=c(56942),l=c(19319),m=c(28200),n=c(53905),o=c(36017),p=a([j]);j=(p.then?(await p)():p)[0];let aj=h.Ik({task:h.k5(["chat","quick","rag","embed"]).default("quick"),prompt:h.Yj().min(1),model:h.Yj().optional()}),ak=h.Ik({kind:h.Yj().min(1).max(64),title:h.Yj().min(1).max(200),body:h.Yj().default(""),meta:h.g1(h.Yj(),h.L5()).optional(),slug:h.Yj().optional(),date:h.Yj().optional(),rootId:h.Yj().optional()}),al=h.Ik({kind:h.Yj().optional(),query:h.Yj().optional(),rootId:h.Yj().optional()}),am=h.Ik({relPath:h.Yj().min(1),rootId:h.Yj().optional()}),an=h.Ik({path:h.Yj().min(1),content:h.Yj().optional()}),ao=h.Ik({url:h.Yj().url(),method:h.k5(["GET","POST","PUT","DELETE","PATCH"]).default("GET"),headers:h.g1(h.Yj(),h.Yj()).optional(),body:h.KC([h.Yj(),h.g1(h.Yj(),h.L5())]).optional()}),ap=h.Ik({query:h.Yj().min(1).max(512)}),aq=h.Ik({type:h.Yj().min(1).max(64),payload:h.L5().optional()}),ar=h.Ik({server:h.Yj().min(1).optional(),tool:h.Yj().min(1),args:h.g1(h.Yj(),h.L5()).default({})}),as=h.Ik({server:h.Yj().min(1).optional()}),at=h.Ik({key:h.Yj().min(1)}),au=h.Ik({name:h.Yj().min(1),args:h.L5().optional()}),av=h.Ik({prompt:h.Yj().min(1).max(4e4),rootId:h.Yj().optional(),harness:h.Yj().optional(),model:h.Yj().optional(),language:h.Yj().optional(),label:h.Yj().optional(),timeoutMs:h.ai().int().min(1e3).max(9e5).optional()}),aw=h.Ik({rootId:h.Yj().optional()}),ax=h.Ik({workflowId:h.Yj().min(1),rootId:h.Yj().optional()}),ay=h.Ik({workflowId:h.Yj().min(1),rootId:h.Yj().optional(),input:h.L5().optional()}),az=h.Ik({prompt:h.Yj().min(1).max(8e3),provider:h.k5(["gemini","codex"]).optional(),size:h.Yj().max(40).optional(),aspectRatio:h.Yj().max(40).optional(),referenceImageUrls:h.YO(h.Yj().url()).max(6).optional(),alt:h.Yj().max(280).optional(),rootId:h.Yj().optional()}),aA=h.Ik({query:h.Yj().min(1).max(200),provider:h.k5(["unsplash","pexels","brave"]).optional(),count:h.ai().int().min(1).max(24).optional()}),aB=h.Ik({sourceUrl:h.Yj().url(),rootId:h.Yj().optional()}),aC=h.Ik({source:h.Yj().min(1).max(2e4)}),aD=h.Ik({kind:h.k5(["workflow","chat"]),id:h.Yj().optional(),prompt:h.Yj().optional()}).strict(),aE=h.Ik({kind:h.k5(["image","text","file"]),file:h.Yj().min(1).max(500),caption:h.Yj().max(500).optional()}).strict(),aF=h.Ik({title:h.Yj().min(1).max(280),body:h.Yj().max(5e4).default(""),type:h.k5(["feature","bug","refactor","docs","chore","research","review","call","idea"]).default("feature"),status:h.k5(["backlog","ready","in-progress","review","done","blocked"]).default("backlog"),priority:h.k5(["low","normal","high"]).default("normal"),labels:h.YO(h.Yj()).default([]),assignee:h.Yj().nullable().default(null),parent:h.Yj().nullable().default(null),links:h.Ik({blocks:h.YO(h.Yj()).optional(),blockedBy:h.YO(h.Yj()).optional(),related:h.YO(h.Yj()).optional()}).default({}),pre:h.YO(aD).default([]),post:h.YO(aD).default([]),attachments:h.YO(aE).default([])}),aG=h.Ik({id:h.Yj().min(1),patch:h.Ik({title:h.Yj().min(1).max(280).optional(),body:h.Yj().max(5e4).optional(),type:h.k5(["feature","bug","refactor","docs","chore","research","review","call","idea"]).optional(),status:h.k5(["backlog","ready","in-progress","review","done","blocked"]).optional(),priority:h.k5(["low","normal","high"]).optional(),labels:h.YO(h.Yj()).optional(),assignee:h.Yj().nullable().optional(),parent:h.Yj().nullable().optional(),links:h.Ik({blocks:h.YO(h.Yj()).optional(),blockedBy:h.YO(h.Yj()).optional(),related:h.YO(h.Yj()).optional()}).optional(),pre:h.YO(aD).optional(),post:h.YO(aD).optional(),attachments:h.YO(aE).optional()}).default({})}),aH=h.Ik({id:h.Yj().min(1)}),aI=h.Ik({id:h.Yj().min(1),harness:h.Yj().optional(),model:h.Yj().optional()}),aJ=h.Ik({id:h.Yj().min(1),outcome:h.k5(["done","review","blocked"])}),aK=h.Ik({branch:h.Yj().min(1),intoRef:h.Yj().optional()}),aL=h.Ik({slug:h.Yj().min(1),branch:h.Yj().min(1),force:h.zM().default(!1),deleteBranch:h.zM().default(!0)}),aM=h.Ik({slug:h.Yj().min(1),branch:h.Yj().min(1),baseRef:h.Yj().optional()}),aN=h.Ik({query:h.Yj().min(1).max(512),rootId:h.Yj().optional(),source:h.k5(["journal","topic"]).optional(),since:h.Yj().optional(),until:h.Yj().optional(),limit:h.ai().int().min(1).max(50).default(10)}),aO=h.Ik({query:h.Yj().min(1).max(200),alt:h.Yj().max(280).default(""),context:h.Yj().max(2e3).default(""),candidates:h.YO(h.Ik({url:h.Yj().url(),thumb:h.Yj().url(),attribution:h.Ik({name:h.Yj().default(""),link:h.Yj().default("")})})).min(1).max(12),rootId:h.Yj().optional()}),aP=h.Ik({widgetId:h.Yj().optional(),snapshot:h.Ik({kind:h.k5(["markdown","news-list","link-list","kpi","checklist","quote","kb-pinned","progress","image","stat-table","map","action-list"]),title:h.Yj().optional(),description:h.Yj().optional(),data:h.g1(h.Yj(),h.L5()).default({})}),rootId:h.Yj().optional()});async function q(a,b,c){let d={utilityId:a.utility.manifest.id,scope:a.utility.scope,channel:a.channel,method:b,args:c,...a.parentCorrelationId?{parentCorrelationId:a.parentCorrelationId}:{}};return(0,i.Md)(d,async d=>{switch(b){case"llm.complete":return x(a,aj.parse(c));case"kb.add":return y(a,ak.parse(c));case"kb.list":return z(a,al.parse(c));case"kb.read":return A(a,am.parse(c));case"fs.read":return C(a,an.parse(c));case"fs.write":return D(a,an.parse(c));case"fs.list":return E(a,an.parse(c));case"web.fetch":return F(a,ao.parse(c));case"web.search":return G(a,ap.parse(c));case"audit.log":return H(a,aq.parse(c),d);case"actions.invoke":return I(a,au.parse(c),d);case"mcp.call":return u(a,ar.parse(c));case"mcp.listServers":return v(a);case"mcp.listTools":return w(a,as.parse(c));case"secrets.get":return r(a,at.parse(c));case"secrets.list":return s(a);case"agent.invoke":return J(a,av.parse(c));case"workflow.list":return K(a,aw.parse(c));case"workflow.read":return L(a,ax.parse(c));case"workflow.run":return M(a,ay.parse(c));case"cards.update":return N(a,aP.parse(c));case"images.generate":return O(a,az.parse(c));case"images.search":return P(a,aA.parse(c));case"images.attach":return Q(a,aB.parse(c));case"images.pickBest":return R(a,aO.parse(c));case"mermaid.validate":return U(a,aC.parse(c));case"tasks.create":return V(a,aF.parse(c));case"tasks.update":return W(a,aG.parse(c));case"tasks.delete":return X(a,aH.parse(c));case"tasks.get":return Y(a,aH.parse(c));case"tasks.list":return Z(a);case"tasks.dispatch":return $(a,aI.parse(c));case"tasks.observe":return _(a,aH.parse(c));case"tasks.complete":return aa(a,aJ.parse(c));case"git.isRepo":return ab(a);case"git.hasRemote":return ac(a);case"git.hasGhCli":return ad();case"git.worktree.create":return ae(a,aM.parse(c));case"git.worktree.merge":return af(a,aK.parse(c));case"git.worktree.remove":return ag(a,aL.parse(c));case"git.worktree.list":return ah(a);case"sessions.search":return ai(a,aN.parse(c));default:throw Error(`Unknown host method: ${b}`)}})}async function r(a,b){if(!(a.utility.manifest.secrets??[]).find(a=>a.key===b.key))throw Error(`secret "${b.key}" is not declared in manifest.secrets`);let{getSecret:d}=await c.e(8514).then(c.bind(c,28514)),e=await d(a.utility.scope,a.utility.manifest.id,b.key,a.utility.rootId);if(null==e)throw Error(`secret "${b.key}" is not set — fill it in the utility's panel`);return{value:e}}async function s(a){let b=a.utility.manifest.secrets??[],{listSecretKeys:d}=await c.e(8514).then(c.bind(c,28514)),e=new Set(await d(a.utility.scope,a.utility.manifest.id,a.utility.rootId));return{secrets:b.map(a=>({key:a.key,set:e.has(a.key),required:a.required,label:a.label,description:a.description}))}}async function t(a,b){let d=a.utility.manifest.mcpServers??[],f=b;if(!f)if(1===d.length)f=d[0];else if(a.utility.manifest.source?.type==="mcp"){let b=g().join(a.utility.dir,"mcp.json"),d=await e.promises.readFile(b,"utf8").catch(()=>null);if(!d)throw Error(`mcp config missing at ${b}`);let{McpConfigSchema:f}=await Promise.resolve().then(c.bind(c,97453));return{config:f.parse(JSON.parse(d)),serverId:"(bundled)"}}else throw Error(0===d.length?"manifest.mcpServers is empty — declare which server you want to use":"multiple mcpServers declared — pass `server` explicitly");if(!d.includes(f))throw Error(`mcp server "${f}" is not in manifest.mcpServers — declare it to gain access`);let{getMcpServer:h}=await Promise.resolve().then(c.bind(c,580)),i=await h(f);if(!i)throw Error(`mcp server "${f}" is not registered — add it in Settings → MCP`);return{config:i.config,serverId:f}}async function u(a,b){let{config:d,serverId:e}=await t(a,b.server),{callTool:f}=await Promise.resolve().then(c.bind(c,97453)),g=await f(d,b.tool,b.args);return{server:e,...void 0!==g.isError?{isError:g.isError}:{},content:g.content}}async function v(a){let b=a.utility.manifest.mcpServers??[],{listMcpServers:d}=await Promise.resolve().then(c.bind(c,580)),e=await d(),f=new Map(e.map(a=>[a.id,a]));return{servers:b.map(a=>{let b=f.get(a);return{id:a,label:b?.label??a,description:b?.description??"",registered:!!b}})}}async function w(a,b){let{config:d,serverId:e}=await t(a,b.server),{connectAndListTools:f}=await Promise.resolve().then(c.bind(c,97453)),g=await f(d);return{server:e,tools:g.tools}}async function x(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.llm?.tasks?.includes(b.task),`llm.${b.task} not granted in manifest`);let c={...(await (0,o.M)()).assignments[b.task],...b.model?{model:b.model}:{}};return{text:await (0,j.T)(c,b.prompt,{timeoutMs:6e4})}}async function y(a,b){if(S(a.utility.manifest,!!a.utility.manifest.permissions.kb?.write,"kb.write not granted"),a.utility.manifest.permissions.kb?.kinds&&!a.utility.manifest.permissions.kb.kinds.includes(b.kind))throw Error(`kb kind "${b.kind}" not in manifest allowlist`);let c=await T(a,b.rootId),d=await (0,k.j)({rootPath:c.path,directive:{kind:b.kind,title:b.title,...b.body?{body:b.body}:{},...b.meta?{meta:b.meta}:{},...b.slug?{slug:b.slug}:{},...b.date?{date:b.date}:{}},provenance:{kind:"utility",id:a.utility.manifest.id,version:a.utility.manifest.version}});return{relPath:d.relPath,absPath:d.absPath}}async function z(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.kb?.read,"kb.read not granted");let c=await T(a,b.rootId),d=await (0,l.dj)(c.path),e=b.query?.toLowerCase();return d.filter(a=>(!b.kind||a.rel.split("/")[0]===b.kind||a.meta.kind===b.kind)&&(!e||!!`${a.rel} ${a.meta.title??""}`.toLowerCase().includes(e))&&!0).map(a=>({relPath:a.rel,title:a.meta.title,kind:a.meta.kind,modifiedAt:a.modifiedAt}))}async function A(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.kb?.read,"kb.read not granted");let c=await T(a,b.rootId);return{content:await (0,l.IK)(c.path,b.relPath)}}function B(a,b){if(b.startsWith("/")||b.includes(".."))throw Error(`unsafe fs path: ${b}`);let c=g().join(a.utility.dir,"data"),d=g().resolve(c,b),e=g().relative(c,d);if(e.startsWith("..")||g().isAbsolute(e))throw Error(`fs path escapes data dir: ${b}`);return d}async function C(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.fs?.sandbox,"fs not granted");let c=B(a,b.path);return{content:await e.promises.readFile(c,"utf8")}}async function D(a,b){if(S(a.utility.manifest,!!a.utility.manifest.permissions.fs?.sandbox,"fs not granted"),"string"!=typeof b.content)throw Error("fs.write requires content (string)");let c=B(a,b.path);return await e.promises.mkdir(g().dirname(c),{recursive:!0}),await e.promises.writeFile(c,b.content,"utf8"),{ok:!0,bytes:Buffer.byteLength(b.content,"utf8")}}async function E(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.fs?.sandbox,"fs not granted");let c=B(a,b.path||".");try{return{entries:(await e.promises.readdir(c,{withFileTypes:!0})).map(a=>({name:a.name,isDir:a.isDirectory()}))}}catch{return{entries:[]}}}async function F(a,b){let c,d=a.utility.manifest.permissions.web?.fetch?.domains??[];try{c=new URL(b.url).hostname}catch{throw Error(`invalid url: ${b.url}`)}if(!d.some(a=>c===a||c.endsWith(`.${a}`)))throw Error(`web.fetch denied: domain "${c}" not in whitelist (${d.join(", ")})`);let e={method:b.method,...b.headers?{headers:b.headers}:{},signal:AbortSignal.timeout(2e4)};void 0!==b.body&&"GET"!==b.method&&(e.body="string"==typeof b.body?b.body:JSON.stringify(b.body));let f=await fetch(b.url,e),g=await f.text(),h={};return f.headers.forEach((a,b)=>{h[b]=a}),{status:f.status,headers:h,body:g}}async function G(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.web?.search,"web.search not granted");let c=await (0,o.M)(),d={...c.assignments.quick,allowedTools:Array.from(new Set([...c.assignments.quick.allowedTools??[],"WebSearch"]))},e=`Use the WebSearch tool to find recent results for the query below.
45
+ `;i.push(g);try{c=f.prepare(j).all(...i)}catch(b){let a=d.replace(/[()"^*:]/g," ").trim();if(!a||a===d)throw b;i[0]=a,c=f.prepare(j).all(...i)}return c.map(a=>({id:a.id,source:a.source,rootId:a.root_id,rootPath:a.root_path,ref:a.ref,title:a.title,isoDate:a.iso_date,rank:a.rank,snippet:a.snippet}))}c(87841),c(53905),c(54287)},49556:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{runServerAction:()=>m});var e=c(75919),f=c(76760),g=c.n(f),h=c(73136),i=c(99861),j=c(99066),k=c(12140),l=a([i,j]);async function m(a){let b=(0,i.actionBundlePath)(a.utility.dir,a.action.name),c=(0,h.pathToFileURL)(b).toString(),d=function(){let a="lib/server/utilities/worker-bootstrap.js",b=process.env.REFLEX_PKG_ROOT;if(b)return g().resolve(b,a);let c=null;try{c=61880}catch{}return"string"==typeof c&&g().isAbsolute(c)?c:g().resolve(process.cwd(),a)}();return new Promise((b,f)=>{let g=new e.Worker(d,{workerData:{bundleUrl:c,actionName:a.action.name,utilityId:a.utility.manifest.id,scope:a.utility.scope},env:{},eval:!1,resourceLimits:{maxOldGenerationSizeMb:256,maxYoungGenerationSizeMb:64}}),h=!1,i=(c,d,e)=>{h||(h=!0,clearTimeout(l),g.removeAllListeners(),g.terminate().catch(()=>{}),c?((0,k.u0)({ts:new Date().toISOString(),utilityId:a.utility.manifest.id,scope:a.utility.scope,channel:"worker",method:`action:${a.action.name}`,phase:"end",correlationId:a.parentCorrelationId??"(detached)",error:e??c.message}),f(c)):b(d))},l=setTimeout(()=>{i(Error("server action timed out"),void 0,"timeout")},a.action.timeoutMs);g.on("error",a=>i(a)),g.on("exit",a=>{0!==a&&i(Error(`worker exited with code ${a}`))}),g.on("message",async b=>{if(b&&"object"==typeof b){if("host-rpc"===b.type){let c=b.id,d=b.method,e=b.args;try{let b=await (0,j.p)({utility:a.utility,channel:"worker",...a.parentCorrelationId?{parentCorrelationId:a.parentCorrelationId}:{}},d,e);g.postMessage({type:"host-rpc-result",id:c,ok:!0,result:b})}catch(a){g.postMessage({type:"host-rpc-result",id:c,ok:!1,error:a instanceof Error?a.message:String(a)})}return}"invoke-result"===b.type&&(b.ok?i(null,b.result):i(Error(b.error||"server action failed")))}}),g.postMessage({type:"invoke",args:a.args})})}[i,j]=l.then?(await l)():l,d()}catch(a){d(a)}})},61880:(a,b,c)=>{"use strict";var d=c(75919);if(!d.parentPort)throw Error("worker-bootstrap.js must be loaded as a worker_threads child");let e=new Map,f=1,g=new Proxy({},{get(a,b){if("string"==typeof b)return function a(b){return new Proxy(function(){},{get(c,d){if("string"==typeof d&&"then"!==d&&"catch"!==d&&"finally"!==d)return a(b?`${b}.${d}`:d)},apply:(a,c,g)=>{var h;return h=g[0],new Promise((a,c)=>{let g=f++;e.set(g,{resolve:a,reject:c}),d.parentPort.postMessage({type:"host-rpc",id:g,method:b,args:h})})}})}(b)}});globalThis.__reflexHost=g,d.parentPort.on("message",async a=>{if(a&&"host-rpc-result"===a.type){let b=e.get(a.id);if(!b)return;e.delete(a.id),a.ok?b.resolve(a.result):b.reject(Error(a.error||"rpc failed"));return}if(a&&"invoke"===a.type)try{let b=await c(74664)(d.workerData.bundleUrl),e=b[d.workerData.actionName]??b.default;if("function"!=typeof e)throw Error(`action "${d.workerData.actionName}" must export a function (named export or default)`);let f=await e(a.args,g);d.parentPort.postMessage({type:"invoke-result",ok:!0,result:f})}catch(a){d.parentPort.postMessage({type:"invoke-result",ok:!1,error:a&&a.message?a.message:String(a)})}})},74664:a=>{function b(a){return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b})}b.keys=()=>[],b.resolve=b,b.id=74664,a.exports=b},99066:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{p:()=>q});var e=c(73024),f=c(76760),g=c.n(f),h=c(56149),i=c(12140),j=c(99353),k=c(56942),l=c(19319),m=c(28200),n=c(53905),o=c(36017),p=a([j]);j=(p.then?(await p)():p)[0];let aj=h.Ik({task:h.k5(["chat","quick","rag","embed"]).default("quick"),prompt:h.Yj().min(1),model:h.Yj().optional()}),ak=h.Ik({kind:h.Yj().min(1).max(64),title:h.Yj().min(1).max(200),body:h.Yj().default(""),meta:h.g1(h.Yj(),h.L5()).optional(),slug:h.Yj().optional(),date:h.Yj().optional(),rootId:h.Yj().optional()}),al=h.Ik({kind:h.Yj().optional(),query:h.Yj().optional(),rootId:h.Yj().optional()}),am=h.Ik({relPath:h.Yj().min(1),rootId:h.Yj().optional()}),an=h.Ik({path:h.Yj().min(1),content:h.Yj().optional()}),ao=h.Ik({url:h.Yj().url(),method:h.k5(["GET","POST","PUT","DELETE","PATCH"]).default("GET"),headers:h.g1(h.Yj(),h.Yj()).optional(),body:h.KC([h.Yj(),h.g1(h.Yj(),h.L5())]).optional()}),ap=h.Ik({query:h.Yj().min(1).max(512)}),aq=h.Ik({type:h.Yj().min(1).max(64),payload:h.L5().optional()}),ar=h.Ik({server:h.Yj().min(1).optional(),tool:h.Yj().min(1),args:h.g1(h.Yj(),h.L5()).default({})}),as=h.Ik({server:h.Yj().min(1).optional()}),at=h.Ik({key:h.Yj().min(1)}),au=h.Ik({name:h.Yj().min(1),args:h.L5().optional()}),av=h.Ik({prompt:h.Yj().min(1).max(4e4),rootId:h.Yj().optional(),harness:h.Yj().optional(),model:h.Yj().optional(),language:h.Yj().optional(),label:h.Yj().optional(),timeoutMs:h.ai().int().min(1e3).max(9e5).optional()}),aw=h.Ik({rootId:h.Yj().optional()}),ax=h.Ik({workflowId:h.Yj().min(1),rootId:h.Yj().optional()}),ay=h.Ik({workflowId:h.Yj().min(1),rootId:h.Yj().optional(),input:h.L5().optional()}),az=h.Ik({prompt:h.Yj().min(1).max(8e3),provider:h.k5(["gemini","codex"]).optional(),size:h.Yj().max(40).optional(),aspectRatio:h.Yj().max(40).optional(),referenceImageUrls:h.YO(h.Yj().url()).max(6).optional(),alt:h.Yj().max(280).optional(),rootId:h.Yj().optional()}),aA=h.Ik({query:h.Yj().min(1).max(200),provider:h.k5(["unsplash","pexels","brave"]).optional(),count:h.ai().int().min(1).max(24).optional()}),aB=h.Ik({sourceUrl:h.Yj().url(),rootId:h.Yj().optional()}),aC=h.Ik({source:h.Yj().min(1).max(2e4)}),aD=h.Ik({kind:h.k5(["workflow","chat"]),id:h.Yj().optional(),prompt:h.Yj().optional()}).strict(),aE=h.Ik({kind:h.k5(["image","text","file"]),file:h.Yj().min(1).max(500),caption:h.Yj().max(500).optional()}).strict(),aF=h.Ik({title:h.Yj().min(1).max(280),body:h.Yj().max(5e4).default(""),type:h.k5(["feature","bug","refactor","docs","chore","research","review","call","idea"]).default("feature"),status:h.k5(["backlog","ready","in-progress","review","done","blocked"]).default("backlog"),priority:h.k5(["low","normal","high"]).default("normal"),labels:h.YO(h.Yj()).default([]),assignee:h.Yj().nullable().default(null),parent:h.Yj().nullable().default(null),links:h.Ik({blocks:h.YO(h.Yj()).optional(),blockedBy:h.YO(h.Yj()).optional(),related:h.YO(h.Yj()).optional()}).default({}),pre:h.YO(aD).default([]),post:h.YO(aD).default([]),attachments:h.YO(aE).default([])}),aG=h.Ik({id:h.Yj().min(1),patch:h.Ik({title:h.Yj().min(1).max(280).optional(),body:h.Yj().max(5e4).optional(),type:h.k5(["feature","bug","refactor","docs","chore","research","review","call","idea"]).optional(),status:h.k5(["backlog","ready","in-progress","review","done","blocked"]).optional(),priority:h.k5(["low","normal","high"]).optional(),labels:h.YO(h.Yj()).optional(),assignee:h.Yj().nullable().optional(),parent:h.Yj().nullable().optional(),links:h.Ik({blocks:h.YO(h.Yj()).optional(),blockedBy:h.YO(h.Yj()).optional(),related:h.YO(h.Yj()).optional()}).optional(),pre:h.YO(aD).optional(),post:h.YO(aD).optional(),attachments:h.YO(aE).optional()}).default({})}),aH=h.Ik({id:h.Yj().min(1)}),aI=h.Ik({id:h.Yj().min(1),harness:h.Yj().optional(),model:h.Yj().optional()}),aJ=h.Ik({id:h.Yj().min(1),outcome:h.k5(["done","review","blocked"])}),aK=h.Ik({branch:h.Yj().min(1),intoRef:h.Yj().optional()}),aL=h.Ik({slug:h.Yj().min(1),branch:h.Yj().min(1),force:h.zM().default(!1),deleteBranch:h.zM().default(!0)}),aM=h.Ik({slug:h.Yj().min(1),branch:h.Yj().min(1),baseRef:h.Yj().optional()}),aN=h.Ik({query:h.Yj().min(1).max(512),rootId:h.Yj().optional(),source:h.k5(["journal","topic"]).optional(),since:h.Yj().optional(),until:h.Yj().optional(),limit:h.ai().int().min(1).max(50).default(10)}),aO=h.Ik({query:h.Yj().min(1).max(200),alt:h.Yj().max(280).default(""),context:h.Yj().max(2e3).default(""),candidates:h.YO(h.Ik({url:h.Yj().url(),thumb:h.Yj().url(),attribution:h.Ik({name:h.Yj().default(""),link:h.Yj().default("")})})).min(1).max(12),rootId:h.Yj().optional()}),aP=h.Ik({widgetId:h.Yj().optional(),snapshot:h.Ik({kind:h.k5(["markdown","news-list","link-list","kpi","checklist","quote","kb-pinned","progress","image","stat-table","map","action-list"]),title:h.Yj().optional(),description:h.Yj().optional(),data:h.g1(h.Yj(),h.L5()).default({})}),rootId:h.Yj().optional()});async function q(a,b,c){let d={utilityId:a.utility.manifest.id,scope:a.utility.scope,channel:a.channel,method:b,args:c,...a.parentCorrelationId?{parentCorrelationId:a.parentCorrelationId}:{}};return(0,i.Md)(d,async d=>{switch(b){case"llm.complete":return x(a,aj.parse(c));case"kb.add":return y(a,ak.parse(c));case"kb.list":return z(a,al.parse(c));case"kb.read":return A(a,am.parse(c));case"fs.read":return C(a,an.parse(c));case"fs.write":return D(a,an.parse(c));case"fs.list":return E(a,an.parse(c));case"web.fetch":return F(a,ao.parse(c));case"web.search":return G(a,ap.parse(c));case"audit.log":return H(a,aq.parse(c),d);case"actions.invoke":return I(a,au.parse(c),d);case"mcp.call":return u(a,ar.parse(c));case"mcp.listServers":return v(a);case"mcp.listTools":return w(a,as.parse(c));case"secrets.get":return r(a,at.parse(c));case"secrets.list":return s(a);case"agent.invoke":return J(a,av.parse(c));case"workflow.list":return K(a,aw.parse(c));case"workflow.read":return L(a,ax.parse(c));case"workflow.run":return M(a,ay.parse(c));case"cards.update":return N(a,aP.parse(c));case"images.generate":return O(a,az.parse(c));case"images.search":return P(a,aA.parse(c));case"images.attach":return Q(a,aB.parse(c));case"images.pickBest":return R(a,aO.parse(c));case"mermaid.validate":return U(a,aC.parse(c));case"tasks.create":return V(a,aF.parse(c));case"tasks.update":return W(a,aG.parse(c));case"tasks.delete":return X(a,aH.parse(c));case"tasks.get":return Y(a,aH.parse(c));case"tasks.list":return Z(a);case"tasks.dispatch":return $(a,aI.parse(c));case"tasks.observe":return _(a,aH.parse(c));case"tasks.complete":return aa(a,aJ.parse(c));case"git.isRepo":return ab(a);case"git.hasRemote":return ac(a);case"git.hasGhCli":return ad();case"git.worktree.create":return ae(a,aM.parse(c));case"git.worktree.merge":return af(a,aK.parse(c));case"git.worktree.remove":return ag(a,aL.parse(c));case"git.worktree.list":return ah(a);case"sessions.search":return ai(a,aN.parse(c));default:throw Error(`Unknown host method: ${b}`)}})}async function r(a,b){if(!(a.utility.manifest.secrets??[]).find(a=>a.key===b.key))throw Error(`secret "${b.key}" is not declared in manifest.secrets`);let{getSecret:d}=await c.e(8514).then(c.bind(c,28514)),e=await d(a.utility.scope,a.utility.manifest.id,b.key,a.utility.rootId);if(null==e)throw Error(`secret "${b.key}" is not set — fill it in the utility's panel`);return{value:e}}async function s(a){let b=a.utility.manifest.secrets??[],{listSecretKeys:d}=await c.e(8514).then(c.bind(c,28514)),e=new Set(await d(a.utility.scope,a.utility.manifest.id,a.utility.rootId));return{secrets:b.map(a=>({key:a.key,set:e.has(a.key),required:a.required,label:a.label,description:a.description}))}}async function t(a,b){let d=a.utility.manifest.mcpServers??[],f=b;if(!f)if(1===d.length)f=d[0];else if(a.utility.manifest.source?.type==="mcp"){let b=g().join(a.utility.dir,"mcp.json"),d=await e.promises.readFile(b,"utf8").catch(()=>null);if(!d)throw Error(`mcp config missing at ${b}`);let{McpConfigSchema:f}=await Promise.resolve().then(c.bind(c,97453));return{config:f.parse(JSON.parse(d)),serverId:"(bundled)"}}else throw Error(0===d.length?"manifest.mcpServers is empty — declare which server you want to use":"multiple mcpServers declared — pass `server` explicitly");if(!d.includes(f))throw Error(`mcp server "${f}" is not in manifest.mcpServers — declare it to gain access`);let{getMcpServer:h}=await Promise.resolve().then(c.bind(c,580)),i=await h(f);if(!i)throw Error(`mcp server "${f}" is not registered — add it in Settings → MCP`);return{config:i.config,serverId:f}}async function u(a,b){let{config:d,serverId:e}=await t(a,b.server),{callTool:f}=await Promise.resolve().then(c.bind(c,97453)),g=await f(d,b.tool,b.args);return{server:e,...void 0!==g.isError?{isError:g.isError}:{},content:g.content}}async function v(a){let b=a.utility.manifest.mcpServers??[],{listMcpServers:d}=await Promise.resolve().then(c.bind(c,580)),e=await d(),f=new Map(e.map(a=>[a.id,a]));return{servers:b.map(a=>{let b=f.get(a);return{id:a,label:b?.label??a,description:b?.description??"",registered:!!b}})}}async function w(a,b){let{config:d,serverId:e}=await t(a,b.server),{connectAndListTools:f}=await Promise.resolve().then(c.bind(c,97453)),g=await f(d);return{server:e,tools:g.tools}}async function x(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.llm?.tasks?.includes(b.task),`llm.${b.task} not granted in manifest`);let c={...(await (0,o.loadSettings)()).assignments[b.task],...b.model?{model:b.model}:{}};return{text:await (0,j.quickComplete)(c,b.prompt,{timeoutMs:6e4})}}async function y(a,b){if(S(a.utility.manifest,!!a.utility.manifest.permissions.kb?.write,"kb.write not granted"),a.utility.manifest.permissions.kb?.kinds&&!a.utility.manifest.permissions.kb.kinds.includes(b.kind))throw Error(`kb kind "${b.kind}" not in manifest allowlist`);let c=await T(a,b.rootId),d=await (0,k.j)({rootPath:c.path,directive:{kind:b.kind,title:b.title,...b.body?{body:b.body}:{},...b.meta?{meta:b.meta}:{},...b.slug?{slug:b.slug}:{},...b.date?{date:b.date}:{}},provenance:{kind:"utility",id:a.utility.manifest.id,version:a.utility.manifest.version}});return{relPath:d.relPath,absPath:d.absPath}}async function z(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.kb?.read,"kb.read not granted");let c=await T(a,b.rootId),d=await (0,l.dj)(c.path),e=b.query?.toLowerCase();return d.filter(a=>(!b.kind||a.rel.split("/")[0]===b.kind||a.meta.kind===b.kind)&&(!e||!!`${a.rel} ${a.meta.title??""}`.toLowerCase().includes(e))&&!0).map(a=>({relPath:a.rel,title:a.meta.title,kind:a.meta.kind,modifiedAt:a.modifiedAt}))}async function A(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.kb?.read,"kb.read not granted");let c=await T(a,b.rootId);return{content:await (0,l.IK)(c.path,b.relPath)}}function B(a,b){if(b.startsWith("/")||b.includes(".."))throw Error(`unsafe fs path: ${b}`);let c=g().join(a.utility.dir,"data"),d=g().resolve(c,b),e=g().relative(c,d);if(e.startsWith("..")||g().isAbsolute(e))throw Error(`fs path escapes data dir: ${b}`);return d}async function C(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.fs?.sandbox,"fs not granted");let c=B(a,b.path);return{content:await e.promises.readFile(c,"utf8")}}async function D(a,b){if(S(a.utility.manifest,!!a.utility.manifest.permissions.fs?.sandbox,"fs not granted"),"string"!=typeof b.content)throw Error("fs.write requires content (string)");let c=B(a,b.path);return await e.promises.mkdir(g().dirname(c),{recursive:!0}),await e.promises.writeFile(c,b.content,"utf8"),{ok:!0,bytes:Buffer.byteLength(b.content,"utf8")}}async function E(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.fs?.sandbox,"fs not granted");let c=B(a,b.path||".");try{return{entries:(await e.promises.readdir(c,{withFileTypes:!0})).map(a=>({name:a.name,isDir:a.isDirectory()}))}}catch{return{entries:[]}}}async function F(a,b){let c,d=a.utility.manifest.permissions.web?.fetch?.domains??[];try{c=new URL(b.url).hostname}catch{throw Error(`invalid url: ${b.url}`)}if(!d.some(a=>c===a||c.endsWith(`.${a}`)))throw Error(`web.fetch denied: domain "${c}" not in whitelist (${d.join(", ")})`);let e={method:b.method,...b.headers?{headers:b.headers}:{},signal:AbortSignal.timeout(2e4)};void 0!==b.body&&"GET"!==b.method&&(e.body="string"==typeof b.body?b.body:JSON.stringify(b.body));let f=await fetch(b.url,e),g=await f.text(),h={};return f.headers.forEach((a,b)=>{h[b]=a}),{status:f.status,headers:h,body:g}}async function G(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.web?.search,"web.search not granted");let c=await (0,o.loadSettings)(),d={...c.assignments.quick,allowedTools:Array.from(new Set([...c.assignments.quick.allowedTools??[],"WebSearch"]))},e=`Use the WebSearch tool to find recent results for the query below.
46
46
  Return ONLY a JSON object on a single line with shape:
47
47
  {"results":[{"title":"…","url":"…","snippet":"…"}]}
48
48
  No prose, no markdown fences. Max 8 results.
49
49
 
50
- Query: ${b.query}`,f=await (0,j.T)(d,e,{timeoutMs:6e4}),g=/\{[\s\S]*\}/.exec(f);if(!g)return{results:[]};try{return{results:(JSON.parse(g[0]).results??[]).filter(a=>"string"==typeof a.url&&"string"==typeof a.title).map(a=>({title:a.title,url:a.url,...a.snippet?{snippet:a.snippet}:{}}))}}catch{return{results:[]}}}async function H(a,b,c){return S(a.utility.manifest,!!a.utility.manifest.permissions.audit?.write,"audit.write not granted"),await (0,i.u0)({ts:new Date().toISOString(),utilityId:a.utility.manifest.id,scope:a.utility.scope,channel:a.channel,method:`app:${b.type}`,phase:"end",correlationId:c,args:b.payload}),{ok:!0}}async function I(a,b,d){if("worker"===a.channel)throw Error("actions.invoke can only be called from the UI iframe, not from inside a worker");S(a.utility.manifest,!!a.utility.manifest.permissions.workers?.enabled,"workers.enabled not granted");let e=a.utility.manifest.serverActions.find(a=>a.name===b.name);if(!e)throw Error(`unknown server action: ${b.name}`);let{runServerAction:f}=await Promise.resolve().then(c.bind(c,49556));return f({utility:a.utility,action:e,args:b.args,parentCorrelationId:d})}async function J(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.agent?.invoke,"agent.invoke not granted");let d=await T(a,b.rootId),{runHeadlessAgent:e}=await Promise.resolve().then(c.bind(c,3724));return await e({rootId:d.id,prompt:b.prompt,label:b.label??`[utility ${a.utility.manifest.id}] agent.invoke`,...b.harness?{harness:b.harness}:{},...b.model?{model:b.model}:{},...b.language?{language:b.language}:{},...void 0!==b.timeoutMs?{timeoutMs:b.timeoutMs}:{}})}async function K(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.workflow?.read,"workflow.read not granted");let d=await T(a,b.rootId),{listWorkflows:e}=await Promise.resolve().then(c.bind(c,73928));return(await e(d.path)).map(a=>({id:a.id,label:a.label,...a.description?{description:a.description}:{},trigger:a.trigger,stepCount:a.steps.length,updatedAt:a.updatedAt}))}async function L(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.workflow?.read,"workflow.read not granted");let d=await T(a,b.rootId),{readWorkflow:e}=await Promise.resolve().then(c.bind(c,73928)),f=await e(d.path,b.workflowId);if(!f)throw Error(`workflow "${b.workflowId}" not found`);return f}async function M(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.workflow?.run,"workflow.run not granted");let d=await T(a,b.rootId),{runWorkflow:e}=await Promise.resolve().then(c.bind(c,55143)),f=await e(d.id,b.workflowId,b.input);if(!f.ok)throw Error(f.error);return f.run}async function N(a,b){let d=await T(a,b.rootId),e=b.widgetId??`utility:${a.utility.manifest.id}`,{readWidget:f,writeWidget:g}=await Promise.resolve().then(c.bind(c,69509)),h=await f(d.path,e),i={kind:b.snapshot.kind,data:b.snapshot.data,...b.snapshot.title?{title:b.snapshot.title}:{},...b.snapshot.description?{description:b.snapshot.description}:{}};if(h&&"utility-card"===h.kind){let a=h.data,b={...h,data:{...a,inner:i},updatedAt:new Date().toISOString()};await g(d.path,b)}else throw Error(`cards.update: no utility-card widget for ${a.utility.manifest.id}`);return{ok:!0,widgetId:e}}async function O(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.images?.generate,"images.generate not granted");let d=await T(a,b.rootId),{generateImage:e}=await Promise.resolve().then(c.bind(c,84579)),f=await e({rootId:d.id,prompt:b.prompt,...b.provider?{provider:b.provider}:{},...b.size?{size:b.size}:{},...b.aspectRatio?{aspectRatio:b.aspectRatio}:{},...b.referenceImageUrls?{referenceImageUrls:b.referenceImageUrls}:{},...b.alt?{alt:b.alt}:{}});return{url:f.urlPath,sha:f.sha,size:f.size,mime:f.mime,provider:f.provider}}async function P(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.images?.search,"images.search not granted");let{searchImages:d}=await Promise.resolve().then(c.bind(c,84579));return{results:await d({query:b.query,...b.provider?{provider:b.provider}:{},...b.count?{count:b.count}:{}})}}async function Q(a,b){if(S(a.utility.manifest,!!a.utility.manifest.permissions.images?.attach,"images.attach not granted"),a.utility.manifest.permissions.images?.search)try{new URL(b.sourceUrl)}catch{throw Error(`invalid sourceUrl: ${b.sourceUrl}`)}else{let c,d=a.utility.manifest.permissions.web?.fetch?.domains??[];try{c=new URL(b.sourceUrl).hostname}catch{throw Error(`invalid sourceUrl: ${b.sourceUrl}`)}if(!d.some(a=>c===a||c.endsWith(`.${a}`)))throw Error(`images.attach denied: domain "${c}" not in web.fetch whitelist (${d.join(", ")||"(empty)"}). Grant images.search to allow arbitrary search-result URLs.`)}let d=await T(a,b.rootId),{attachRemote:e}=await Promise.resolve().then(c.bind(c,84579)),f=await e({rootId:d.id,sourceUrl:b.sourceUrl});return{url:f.urlPath,sha:f.sha,size:f.size,mime:f.mime}}async function R(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.images?.search,"images.pickBest requires images.search permission");let d=await T(a,b.rootId),{pickBestImage:e}=await c.e(4066).then(c.bind(c,64066)),f=await e({rootId:d.id,query:b.query,alt:b.alt,context:b.context,candidates:b.candidates});return{pickIndex:f.pickIndex,reason:f.reason,via:f.via}}function S(a,b,c){if(!b)throw Error(`permission denied: ${c}`)}async function T(a,b){let c=b??a.utility.rootId;if(!c)throw Error("no rootId available: project-scoped operation requires a project root");let d=await (0,n.Zn)(c);if(!d)throw Error(`unknown rootId: ${c}`);return{id:d.id,path:d.path}}let aQ=null;async function U(a,b){let d=b.source.trim();if(!d)return{ok:!1,error:"empty diagram"};let e=function(a){let b=a.split("\n").map(a=>a.trim()).filter(Boolean),c=b[0]??"";if(!["graph","flowchart","sequenceDiagram","classDiagram","stateDiagram","stateDiagram-v2","erDiagram","journey","gantt","pie","gitGraph","mindmap","timeline","quadrantChart","requirementDiagram","C4Context","sankey-beta","xychart-beta","block-beta"].some(a=>c===a||c.startsWith(`${a} `)))return`unrecognised diagram type at line 1: "${c.slice(0,80)}"`;for(let a=1;a<b.length;a++){let c=b[a],d=/\b[A-Za-z0-9_]+\[([^\]]+)\]/.exec(c);if(!d)continue;let e=d[1];if(!(e.startsWith('"')&&e.endsWith('"'))){if(/^[\\/(>{]/.test(e))return`line ${a+1}: node label starts with a shape-modifier character ("${e.slice(0,30)}") — wrap the label in double quotes`;if(/[()\\/{}|]/.test(e))return`line ${a+1}: node label contains special characters ("${e.slice(0,30)}") — wrap the label in double quotes`}}return null}(d);if(e)return{ok:!1,error:e};try{if(!aQ){let a=await c.e(6483).then(c.bind(c,86483)),b=a.default?.parse??a.parse;if("function"!=typeof b)return{ok:!0};aQ=b.bind(a.default??a)}return await aQ(d),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function V(a,b){let{path:d}=await T(a),{createTask:e}=await Promise.resolve().then(c.bind(c,26380));return{id:(await e(d,b)).id}}async function W(a,b){let{path:d}=await T(a),{updateTask:e}=await Promise.resolve().then(c.bind(c,26380));return{ok:!!await e(d,b.id,b.patch)}}async function X(a,b){let{path:d}=await T(a),{deleteTask:e}=await Promise.resolve().then(c.bind(c,26380));return{ok:await e(d,b.id)}}async function Y(a,b){let{path:d}=await T(a),{getTask:e}=await Promise.resolve().then(c.bind(c,26380));return e(d,b.id)}async function Z(a){let{path:b}=await T(a),{listTasks:d}=await Promise.resolve().then(c.bind(c,26380));return{tasks:await d(b)}}async function $(a,b){let{id:d}=await T(a),{dispatchTask:e}=await c.e(9179).then(c.bind(c,99179));return e({rootId:d,taskId:b.id,...b.harness?{harness:b.harness}:{},...b.model?{model:b.model}:{}})}async function _(a,b){let{id:d}=await T(a),{observeTask:e}=await c.e(7220).then(c.bind(c,37220));return e({rootId:d,taskId:b.id})}async function aa(a,b){let{path:d}=await T(a),{updateTask:e}=await Promise.resolve().then(c.bind(c,26380));return{ok:!!await e(d,b.id,{status:b.outcome})}}async function ab(a){let{path:b}=await T(a),{isGitRepo:d}=await c.e(126).then(c.bind(c,60126));return{ok:await d(b)}}async function ac(a){let{path:b}=await T(a),{hasRemote:d}=await c.e(126).then(c.bind(c,60126));return{ok:await d(b)}}async function ad(){let{hasGhCli:a}=await c.e(126).then(c.bind(c,60126));return{ok:await a()}}async function ae(a,b){let{path:d}=await T(a),{createWorktree:e}=await c.e(126).then(c.bind(c,60126));return e({rootPath:d,slug:b.slug,branch:b.branch,...b.baseRef?{baseRef:b.baseRef}:{}})}async function af(a,b){let{path:d}=await T(a),{mergeWorktree:e}=await c.e(126).then(c.bind(c,60126));return e({rootPath:d,branch:b.branch,...b.intoRef?{intoRef:b.intoRef}:{}})}async function ag(a,b){let{path:d}=await T(a),{removeWorktree:e}=await c.e(126).then(c.bind(c,60126));return e({rootPath:d,slug:b.slug,branch:b.branch,force:b.force,deleteBranch:b.deleteBranch})}async function ah(a){let{path:b}=await T(a),{listWorktrees:d}=await c.e(126).then(c.bind(c,60126));return{worktrees:await d(b)}}async function ai(a,b){if(!a.utility.manifest.permissions.sessions?.search)throw Error(`utility "${a.utility.manifest.id}" lacks permissions.sessions.search`);let c={limit:b.limit};return void 0!==b.rootId&&(c.rootId=b.rootId),void 0!==b.source&&(c.source=b.source),void 0!==b.since&&(c.since=b.since),void 0!==b.until&&(c.until=b.until),{hits:await (0,m.iG)(b.query,c)}}d()}catch(a){d(a)}})}};
50
+ Query: ${b.query}`,f=await (0,j.quickComplete)(d,e,{timeoutMs:6e4}),g=/\{[\s\S]*\}/.exec(f);if(!g)return{results:[]};try{return{results:(JSON.parse(g[0]).results??[]).filter(a=>"string"==typeof a.url&&"string"==typeof a.title).map(a=>({title:a.title,url:a.url,...a.snippet?{snippet:a.snippet}:{}}))}}catch{return{results:[]}}}async function H(a,b,c){return S(a.utility.manifest,!!a.utility.manifest.permissions.audit?.write,"audit.write not granted"),await (0,i.u0)({ts:new Date().toISOString(),utilityId:a.utility.manifest.id,scope:a.utility.scope,channel:a.channel,method:`app:${b.type}`,phase:"end",correlationId:c,args:b.payload}),{ok:!0}}async function I(a,b,d){if("worker"===a.channel)throw Error("actions.invoke can only be called from the UI iframe, not from inside a worker");S(a.utility.manifest,!!a.utility.manifest.permissions.workers?.enabled,"workers.enabled not granted");let e=a.utility.manifest.serverActions.find(a=>a.name===b.name);if(!e)throw Error(`unknown server action: ${b.name}`);let{runServerAction:f}=await Promise.resolve().then(c.bind(c,49556));return f({utility:a.utility,action:e,args:b.args,parentCorrelationId:d})}async function J(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.agent?.invoke,"agent.invoke not granted");let d=await T(a,b.rootId),{runHeadlessAgent:e}=await Promise.resolve().then(c.bind(c,3724));return await e({rootId:d.id,prompt:b.prompt,label:b.label??`[utility ${a.utility.manifest.id}] agent.invoke`,...b.harness?{harness:b.harness}:{},...b.model?{model:b.model}:{},...b.language?{language:b.language}:{},...void 0!==b.timeoutMs?{timeoutMs:b.timeoutMs}:{}})}async function K(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.workflow?.read,"workflow.read not granted");let d=await T(a,b.rootId),{listWorkflows:e}=await Promise.resolve().then(c.bind(c,73928));return(await e(d.path)).map(a=>({id:a.id,label:a.label,...a.description?{description:a.description}:{},trigger:a.trigger,stepCount:a.steps.length,updatedAt:a.updatedAt}))}async function L(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.workflow?.read,"workflow.read not granted");let d=await T(a,b.rootId),{readWorkflow:e}=await Promise.resolve().then(c.bind(c,73928)),f=await e(d.path,b.workflowId);if(!f)throw Error(`workflow "${b.workflowId}" not found`);return f}async function M(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.workflow?.run,"workflow.run not granted");let d=await T(a,b.rootId),{runWorkflow:e}=await Promise.resolve().then(c.bind(c,55143)),f=await e(d.id,b.workflowId,b.input);if(!f.ok)throw Error(f.error);return f.run}async function N(a,b){let d=await T(a,b.rootId),e=b.widgetId??`utility:${a.utility.manifest.id}`,{readWidget:f,writeWidget:g}=await Promise.resolve().then(c.bind(c,69509)),h=await f(d.path,e),i={kind:b.snapshot.kind,data:b.snapshot.data,...b.snapshot.title?{title:b.snapshot.title}:{},...b.snapshot.description?{description:b.snapshot.description}:{}};if(h&&"utility-card"===h.kind){let a=h.data,b={...h,data:{...a,inner:i},updatedAt:new Date().toISOString()};await g(d.path,b)}else throw Error(`cards.update: no utility-card widget for ${a.utility.manifest.id}`);return{ok:!0,widgetId:e}}async function O(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.images?.generate,"images.generate not granted");let d=await T(a,b.rootId),{generateImage:e}=await Promise.resolve().then(c.bind(c,84579)),f=await e({rootId:d.id,prompt:b.prompt,...b.provider?{provider:b.provider}:{},...b.size?{size:b.size}:{},...b.aspectRatio?{aspectRatio:b.aspectRatio}:{},...b.referenceImageUrls?{referenceImageUrls:b.referenceImageUrls}:{},...b.alt?{alt:b.alt}:{}});return{url:f.urlPath,sha:f.sha,size:f.size,mime:f.mime,provider:f.provider}}async function P(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.images?.search,"images.search not granted");let{searchImages:d}=await Promise.resolve().then(c.bind(c,84579));return{results:await d({query:b.query,...b.provider?{provider:b.provider}:{},...b.count?{count:b.count}:{}})}}async function Q(a,b){if(S(a.utility.manifest,!!a.utility.manifest.permissions.images?.attach,"images.attach not granted"),a.utility.manifest.permissions.images?.search)try{new URL(b.sourceUrl)}catch{throw Error(`invalid sourceUrl: ${b.sourceUrl}`)}else{let c,d=a.utility.manifest.permissions.web?.fetch?.domains??[];try{c=new URL(b.sourceUrl).hostname}catch{throw Error(`invalid sourceUrl: ${b.sourceUrl}`)}if(!d.some(a=>c===a||c.endsWith(`.${a}`)))throw Error(`images.attach denied: domain "${c}" not in web.fetch whitelist (${d.join(", ")||"(empty)"}). Grant images.search to allow arbitrary search-result URLs.`)}let d=await T(a,b.rootId),{attachRemote:e}=await Promise.resolve().then(c.bind(c,84579)),f=await e({rootId:d.id,sourceUrl:b.sourceUrl});return{url:f.urlPath,sha:f.sha,size:f.size,mime:f.mime}}async function R(a,b){S(a.utility.manifest,!!a.utility.manifest.permissions.images?.search,"images.pickBest requires images.search permission");let d=await T(a,b.rootId),{pickBestImage:e}=await c.e(4066).then(c.bind(c,64066)),f=await e({rootId:d.id,query:b.query,alt:b.alt,context:b.context,candidates:b.candidates});return{pickIndex:f.pickIndex,reason:f.reason,via:f.via}}function S(a,b,c){if(!b)throw Error(`permission denied: ${c}`)}async function T(a,b){let c=b??a.utility.rootId;if(!c)throw Error("no rootId available: project-scoped operation requires a project root");let d=await (0,n.getRoot)(c);if(!d)throw Error(`unknown rootId: ${c}`);return{id:d.id,path:d.path}}let aQ=null;async function U(a,b){let d=b.source.trim();if(!d)return{ok:!1,error:"empty diagram"};let e=function(a){let b=a.split("\n").map(a=>a.trim()).filter(Boolean),c=b[0]??"";if(!["graph","flowchart","sequenceDiagram","classDiagram","stateDiagram","stateDiagram-v2","erDiagram","journey","gantt","pie","gitGraph","mindmap","timeline","quadrantChart","requirementDiagram","C4Context","sankey-beta","xychart-beta","block-beta"].some(a=>c===a||c.startsWith(`${a} `)))return`unrecognised diagram type at line 1: "${c.slice(0,80)}"`;for(let a=1;a<b.length;a++){let c=b[a],d=/\b[A-Za-z0-9_]+\[([^\]]+)\]/.exec(c);if(!d)continue;let e=d[1];if(!(e.startsWith('"')&&e.endsWith('"'))){if(/^[\\/(>{]/.test(e))return`line ${a+1}: node label starts with a shape-modifier character ("${e.slice(0,30)}") — wrap the label in double quotes`;if(/[()\\/{}|]/.test(e))return`line ${a+1}: node label contains special characters ("${e.slice(0,30)}") — wrap the label in double quotes`}}return null}(d);if(e)return{ok:!1,error:e};try{if(!aQ){let a=await c.e(6483).then(c.bind(c,86483)),b=a.default?.parse??a.parse;if("function"!=typeof b)return{ok:!0};aQ=b.bind(a.default??a)}return await aQ(d),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function V(a,b){let{path:d}=await T(a),{createTask:e}=await Promise.resolve().then(c.bind(c,26380));return{id:(await e(d,b)).id}}async function W(a,b){let{path:d}=await T(a),{updateTask:e}=await Promise.resolve().then(c.bind(c,26380));return{ok:!!await e(d,b.id,b.patch)}}async function X(a,b){let{path:d}=await T(a),{deleteTask:e}=await Promise.resolve().then(c.bind(c,26380));return{ok:await e(d,b.id)}}async function Y(a,b){let{path:d}=await T(a),{getTask:e}=await Promise.resolve().then(c.bind(c,26380));return e(d,b.id)}async function Z(a){let{path:b}=await T(a),{listTasks:d}=await Promise.resolve().then(c.bind(c,26380));return{tasks:await d(b)}}async function $(a,b){let{id:d}=await T(a),{dispatchTask:e}=await c.e(9179).then(c.bind(c,99179));return e({rootId:d,taskId:b.id,...b.harness?{harness:b.harness}:{},...b.model?{model:b.model}:{}})}async function _(a,b){let{id:d}=await T(a),{observeTask:e}=await c.e(7220).then(c.bind(c,37220));return e({rootId:d,taskId:b.id})}async function aa(a,b){let{path:d}=await T(a),{updateTask:e}=await Promise.resolve().then(c.bind(c,26380));return{ok:!!await e(d,b.id,{status:b.outcome})}}async function ab(a){let{path:b}=await T(a),{isGitRepo:d}=await c.e(126).then(c.bind(c,60126));return{ok:await d(b)}}async function ac(a){let{path:b}=await T(a),{hasRemote:d}=await c.e(126).then(c.bind(c,60126));return{ok:await d(b)}}async function ad(){let{hasGhCli:a}=await c.e(126).then(c.bind(c,60126));return{ok:await a()}}async function ae(a,b){let{path:d}=await T(a),{createWorktree:e}=await c.e(126).then(c.bind(c,60126));return e({rootPath:d,slug:b.slug,branch:b.branch,...b.baseRef?{baseRef:b.baseRef}:{}})}async function af(a,b){let{path:d}=await T(a),{mergeWorktree:e}=await c.e(126).then(c.bind(c,60126));return e({rootPath:d,branch:b.branch,...b.intoRef?{intoRef:b.intoRef}:{}})}async function ag(a,b){let{path:d}=await T(a),{removeWorktree:e}=await c.e(126).then(c.bind(c,60126));return e({rootPath:d,slug:b.slug,branch:b.branch,force:b.force,deleteBranch:b.deleteBranch})}async function ah(a){let{path:b}=await T(a),{listWorktrees:d}=await c.e(126).then(c.bind(c,60126));return{worktrees:await d(b)}}async function ai(a,b){if(!a.utility.manifest.permissions.sessions?.search)throw Error(`utility "${a.utility.manifest.id}" lacks permissions.sessions.search`);let c={limit:b.limit};return void 0!==b.rootId&&(c.rootId=b.rootId),void 0!==b.source&&(c.source=b.source),void 0!==b.since&&(c.since=b.since),void 0!==b.until&&(c.until=b.until),{hits:await (0,m.iG)(b.query,c)}}d()}catch(a){d(a)}})}};
@@ -1 +1 @@
1
- "use strict";exports.id=4066,exports.ids=[4066],exports.modules={64066:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{pickBestImage:()=>m});var e=c(73024),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(3724),k=c(53905),l=a([j]);async function m(a){if(0===a.candidates.length)return{pickIndex:-1,reason:"no candidates",via:"fallback"};if(1===a.candidates.length)return{pickIndex:0,reason:"only one candidate",via:"fallback"};try{return await n(a)}catch(d){let b=d instanceof Error?d.message:String(d),c=o(a);return{...c,reason:`agent judge failed (${b}); ${c.reason}`}}}async function n(a){let b=await (0,k.Zn)(a.rootId);if(!b)throw Error(`unknown rootId: ${a.rootId}`);let c=g().join(b.path,".reflex",".tmp",`judge-${i().randomBytes(6).toString("hex")}`);await e.promises.mkdir(c,{recursive:!0});let d=(await Promise.all(a.candidates.map(async(a,b)=>{try{let d=await fetch(a.thumb,{signal:AbortSignal.timeout(1e4)});if(!d.ok)return null;let f=d.headers.get("content-type")?.split(";")[0]?.trim()||"image/jpeg";if(!f.startsWith("image/"))return null;let h=await d.arrayBuffer();if(h.byteLength>5242880)return null;let i=function(a){switch(a.toLowerCase()){case"image/png":return"png";case"image/jpeg":case"image/jpg":return"jpg";case"image/webp":return"webp";case"image/gif":return"gif";case"image/avif":return"avif";case"image/svg+xml":return"svg";default:return"img"}}(f),j=g().join(c,`cand-${b}.${i}`);return await e.promises.writeFile(j,Buffer.from(h)),{index:b,path:j,mime:f,size:h.byteLength}}catch{return null}}))).filter(a=>null!==a);if(0===d.length)return await p(c),o(a);let f=[`Course/topic: ${a.context}`,`Search query: "${a.query}"`,`What the image should depict: ${a.alt}`,"",`On disk you have ${d.length} search-result candidates. OPEN EACH ONE through the Read tool — it returns the image as vision content so you can see it:`,""];for(let b=0;b<d.length;b++){let c=a.candidates[d[b].index],e="(unknown)";try{e=new URL(c.url).hostname}catch{}f.push(` [${b}] ${d[b].path} (source: ${e}, author: ${c.attribution.name})`)}f.push("","Read each one (Read tool, one at a time), look at what is REALLY in the image, and pick the ONE that BEST works as an educational illustration.","","Criteria (in order of importance):",' 1. The image ACTUALLY depicts what the query asks for. For example, if the query is "plaster sphere" and the image shows a hand — reject it.'," 2. Quality is textbook-grade: not clipart, not a meme, not a logo, not blurry."," 3. The context matches the course topic."," 4. If ALL candidates are unsuitable — return pick: -1, and the system will generate an AI illustration instead.","",`At the VERY END of your response, output ONE line of JSON: {"pick": number from 0 to ${d.length-1} OR -1, "reason": "short rationale"}`,"Before that line you may think out loud / describe what you see — only the final JSON line matters.");let h=d.map(a=>({name:g().basename(a.path),absPath:a.path,size:a.size,mime:a.mime})),l=-1,m="";try{let b=await (0,j.runHeadlessAgent)({rootId:a.rootId,prompt:f.join("\n"),label:`[images.pickBest] ${a.query}`,timeoutMs:3e5,attachments:h}),c=function(a,b){let c=a.trim().split(/\r?\n/);for(let a=c.length-1;a>=0;a--){let d=c[a].trim();if(d.startsWith("{"))try{let a=JSON.parse(d),c="number"==typeof a.pick&&Number.isInteger(a.pick)?a.pick:NaN;if(Number.isFinite(c)&&(-1===c||c>=0&&c<b))return{pickIndex:c,reason:"string"==typeof a.reason?a.reason:""}}catch{}}let d=/\{[^{}]*"pick"[^{}]*\}/.exec(a);if(d)try{let a=JSON.parse(d[0]),c="number"==typeof a.pick&&Number.isInteger(a.pick)?a.pick:NaN;if(Number.isFinite(c))return{pickIndex:-1===c||c>=0&&c<b?c:0,reason:"string"==typeof a.reason?a.reason:""}}catch{}return{pickIndex:0,reason:"could not parse pick from agent reply"}}(b.text,d.length);l=c.pickIndex,m=c.reason}finally{await p(c)}return -1===l?{pickIndex:-1,reason:m||"agent rejected all",via:"agent"}:l<0||l>=d.length?{pickIndex:d[0].index,reason:`agent returned invalid pick (${l}); falling back to first usable`,via:"agent"}:{pickIndex:d[l].index,reason:m,via:"agent"}}function o(a){let b=/(wikipedia|wikimedia|britannica|mdn|github|stanford|mit\.edu|nature\.com|nasa\.gov|noaa\.gov|smithsonian)/i;for(let c=0;c<a.candidates.length;c++){let d=a.candidates[c];try{let a=new URL(d.url).hostname;if(b.test(a))return{pickIndex:c,reason:`trusted domain ${a}`,via:"heuristic"}}catch{}}return{pickIndex:0,reason:"no trusted domain; first result",via:"heuristic"}}async function p(a){try{await e.promises.rm(a,{recursive:!0,force:!0})}catch{}}j=(l.then?(await l)():l)[0],d()}catch(a){d(a)}})}};
1
+ "use strict";exports.id=4066,exports.ids=[4066],exports.modules={64066:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{pickBestImage:()=>m});var e=c(73024),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(3724),k=c(53905),l=a([j]);async function m(a){if(0===a.candidates.length)return{pickIndex:-1,reason:"no candidates",via:"fallback"};if(1===a.candidates.length)return{pickIndex:0,reason:"only one candidate",via:"fallback"};try{return await n(a)}catch(d){let b=d instanceof Error?d.message:String(d),c=o(a);return{...c,reason:`agent judge failed (${b}); ${c.reason}`}}}async function n(a){let b=await (0,k.getRoot)(a.rootId);if(!b)throw Error(`unknown rootId: ${a.rootId}`);let c=g().join(b.path,".reflex",".tmp",`judge-${i().randomBytes(6).toString("hex")}`);await e.promises.mkdir(c,{recursive:!0});let d=(await Promise.all(a.candidates.map(async(a,b)=>{try{let d=await fetch(a.thumb,{signal:AbortSignal.timeout(1e4)});if(!d.ok)return null;let f=d.headers.get("content-type")?.split(";")[0]?.trim()||"image/jpeg";if(!f.startsWith("image/"))return null;let h=await d.arrayBuffer();if(h.byteLength>5242880)return null;let i=function(a){switch(a.toLowerCase()){case"image/png":return"png";case"image/jpeg":case"image/jpg":return"jpg";case"image/webp":return"webp";case"image/gif":return"gif";case"image/avif":return"avif";case"image/svg+xml":return"svg";default:return"img"}}(f),j=g().join(c,`cand-${b}.${i}`);return await e.promises.writeFile(j,Buffer.from(h)),{index:b,path:j,mime:f,size:h.byteLength}}catch{return null}}))).filter(a=>null!==a);if(0===d.length)return await p(c),o(a);let f=[`Course/topic: ${a.context}`,`Search query: "${a.query}"`,`What the image should depict: ${a.alt}`,"",`On disk you have ${d.length} search-result candidates. OPEN EACH ONE through the Read tool — it returns the image as vision content so you can see it:`,""];for(let b=0;b<d.length;b++){let c=a.candidates[d[b].index],e="(unknown)";try{e=new URL(c.url).hostname}catch{}f.push(` [${b}] ${d[b].path} (source: ${e}, author: ${c.attribution.name})`)}f.push("","Read each one (Read tool, one at a time), look at what is REALLY in the image, and pick the ONE that BEST works as an educational illustration.","","Criteria (in order of importance):",' 1. The image ACTUALLY depicts what the query asks for. For example, if the query is "plaster sphere" and the image shows a hand — reject it.'," 2. Quality is textbook-grade: not clipart, not a meme, not a logo, not blurry."," 3. The context matches the course topic."," 4. If ALL candidates are unsuitable — return pick: -1, and the system will generate an AI illustration instead.","",`At the VERY END of your response, output ONE line of JSON: {"pick": number from 0 to ${d.length-1} OR -1, "reason": "short rationale"}`,"Before that line you may think out loud / describe what you see — only the final JSON line matters.");let h=d.map(a=>({name:g().basename(a.path),absPath:a.path,size:a.size,mime:a.mime})),l=-1,m="";try{let b=await (0,j.runHeadlessAgent)({rootId:a.rootId,prompt:f.join("\n"),label:`[images.pickBest] ${a.query}`,timeoutMs:3e5,attachments:h}),c=function(a,b){let c=a.trim().split(/\r?\n/);for(let a=c.length-1;a>=0;a--){let d=c[a].trim();if(d.startsWith("{"))try{let a=JSON.parse(d),c="number"==typeof a.pick&&Number.isInteger(a.pick)?a.pick:NaN;if(Number.isFinite(c)&&(-1===c||c>=0&&c<b))return{pickIndex:c,reason:"string"==typeof a.reason?a.reason:""}}catch{}}let d=/\{[^{}]*"pick"[^{}]*\}/.exec(a);if(d)try{let a=JSON.parse(d[0]),c="number"==typeof a.pick&&Number.isInteger(a.pick)?a.pick:NaN;if(Number.isFinite(c))return{pickIndex:-1===c||c>=0&&c<b?c:0,reason:"string"==typeof a.reason?a.reason:""}}catch{}return{pickIndex:0,reason:"could not parse pick from agent reply"}}(b.text,d.length);l=c.pickIndex,m=c.reason}finally{await p(c)}return -1===l?{pickIndex:-1,reason:m||"agent rejected all",via:"agent"}:l<0||l>=d.length?{pickIndex:d[0].index,reason:`agent returned invalid pick (${l}); falling back to first usable`,via:"agent"}:{pickIndex:d[l].index,reason:m,via:"agent"}}function o(a){let b=/(wikipedia|wikimedia|britannica|mdn|github|stanford|mit\.edu|nature\.com|nasa\.gov|noaa\.gov|smithsonian)/i;for(let c=0;c<a.candidates.length;c++){let d=a.candidates[c];try{let a=new URL(d.url).hostname;if(b.test(a))return{pickIndex:c,reason:`trusted domain ${a}`,via:"heuristic"}}catch{}}return{pickIndex:0,reason:"no trusted domain; first result",via:"heuristic"}}async function p(a){try{await e.promises.rm(a,{recursive:!0,force:!0})}catch{}}j=(l.then?(await l)():l)[0],d()}catch(a){d(a)}})}};