reflex-agent 0.15.0 → 0.16.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 (223) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +123 -116
  3. package/.next/app-path-routes-manifest.json +11 -10
  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 +1 -1
  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 +6 -6
  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 +4 -4
  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 +11 -10
  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/2485.js +3 -3
  102. package/.next/server/chunks/2510.js +3 -0
  103. package/.next/server/chunks/269.js +1 -1
  104. package/.next/server/chunks/285.js +25 -22
  105. package/.next/server/chunks/3240.js +1 -1
  106. package/.next/server/chunks/3332.js +1 -1
  107. package/.next/server/chunks/3377.js +1 -1
  108. package/.next/server/chunks/3834.js +1 -1
  109. package/.next/server/chunks/4031.js +2 -2
  110. package/.next/server/chunks/4066.js +1 -1
  111. package/.next/server/chunks/{7358.js → 4251.js} +21 -18
  112. package/.next/server/chunks/4337.js +1 -0
  113. package/.next/server/chunks/4578.js +1 -1
  114. package/.next/server/chunks/4812.js +1 -1
  115. package/.next/server/chunks/4840.js +1 -1
  116. package/.next/server/chunks/4854.js +1 -0
  117. package/.next/server/chunks/5319.js +1 -1
  118. package/.next/server/chunks/569.js +1 -1
  119. package/.next/server/chunks/{8309.js → 5813.js} +2 -2
  120. package/.next/server/chunks/6142.js +1 -0
  121. package/.next/server/chunks/6840.js +1 -0
  122. package/.next/server/chunks/7220.js +1 -1
  123. package/.next/server/chunks/8511.js +1 -1
  124. package/.next/server/chunks/8576.js +2 -2
  125. package/.next/server/chunks/9098.js +1 -1
  126. package/.next/server/chunks/9179.js +2 -2
  127. package/.next/server/chunks/9809.js +1 -1
  128. package/.next/server/chunks/9835.js +1 -1
  129. package/.next/server/functions-config-manifest.json +1 -1
  130. package/.next/server/middleware-build-manifest.js +1 -1
  131. package/.next/server/middleware-manifest.json +5 -5
  132. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  133. package/.next/server/pages/500.html +1 -1
  134. package/.next/server/server-reference-manifest.js +1 -1
  135. package/.next/server/server-reference-manifest.json +1 -1
  136. package/.next/static/chunks/2032-2a4123eb930cdaec.js +1 -0
  137. package/.next/static/chunks/2195-5b259de7dc1ecc65.js +1 -0
  138. package/.next/static/chunks/4108.282aed8c9dfa51c8.js +1 -0
  139. package/.next/static/chunks/4552-62988861b1d3487a.js +1 -0
  140. package/.next/static/chunks/{7037-7d9a908022d947da.js → 7480-0f167c09fef1e184.js} +1 -1
  141. package/.next/static/chunks/{8775-c1985f74619ced58.js → 8775-890699c74c28df61.js} +1 -1
  142. package/.next/static/chunks/9775-e1967b6eb70917ab.js +1 -0
  143. package/.next/static/chunks/app/api/agents/[agentId]/respond/route-78f8e23cdd4112b9.js +1 -0
  144. package/.next/static/chunks/app/api/images/[rootId]/[file]/route-78f8e23cdd4112b9.js +1 -0
  145. package/.next/static/chunks/app/api/oauth/callback/route-78f8e23cdd4112b9.js +1 -0
  146. package/.next/static/chunks/app/api/oauth/start/route-78f8e23cdd4112b9.js +1 -0
  147. package/.next/static/chunks/app/api/roots/[id]/attachments/route-78f8e23cdd4112b9.js +1 -0
  148. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/send/route-78f8e23cdd4112b9.js +1 -0
  149. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/stop/route-78f8e23cdd4112b9.js +1 -0
  150. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/stream/route-78f8e23cdd4112b9.js +1 -0
  151. package/.next/static/chunks/app/api/roots/[id]/dashboard/route-78f8e23cdd4112b9.js +1 -0
  152. package/.next/static/chunks/app/api/roots/[id]/suggestions/route-78f8e23cdd4112b9.js +1 -0
  153. package/.next/static/chunks/app/api/utilities/[scope]/[id]/bundle.js/route-78f8e23cdd4112b9.js +1 -0
  154. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host/route-78f8e23cdd4112b9.js +1 -0
  155. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host-api.mjs/route-78f8e23cdd4112b9.js +1 -0
  156. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host-ui.mjs/route-78f8e23cdd4112b9.js +1 -0
  157. package/.next/static/chunks/app/api/utilities/[scope]/[id]/iframe/route-78f8e23cdd4112b9.js +1 -0
  158. package/.next/static/chunks/app/api/utilities/[scope]/[id]/style.css/route-78f8e23cdd4112b9.js +1 -0
  159. package/.next/static/chunks/app/api/utilities/install-archive/route-78f8e23cdd4112b9.js +1 -0
  160. package/.next/static/chunks/app/dispatcher/page-78f8e23cdd4112b9.js +1 -0
  161. package/.next/static/chunks/app/layout-4b952afc754a9eab.js +1 -0
  162. package/.next/static/chunks/app/onboarding/page-4eb39d2da8f5b74b.js +1 -0
  163. package/.next/static/chunks/app/page-e4f20a2af6ee840f.js +1 -0
  164. package/.next/static/chunks/app/roots/[id]/chat/[topicId]/{page-ac80b75a50880fef.js → page-c318e0d7bc378401.js} +1 -1
  165. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-0ac4deefd549778a.js +1 -0
  166. package/.next/static/chunks/app/roots/[id]/layout-78f8e23cdd4112b9.js +1 -0
  167. package/.next/static/chunks/app/roots/[id]/memory/{page-ae9c453a059a7c48.js → page-aac52678a724ac55.js} +1 -1
  168. package/.next/static/chunks/app/roots/[id]/page-959e66eecb5cf5a8.js +1 -0
  169. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-7af415baf1c31a66.js +1 -0
  170. package/.next/static/chunks/app/roots/[id]/workflows/page-6d9a9259c8419689.js +1 -0
  171. package/.next/static/chunks/app/roots/new/page-7b70107d4e1444bf.js +1 -0
  172. package/.next/static/chunks/app/settings/page-5a7bf1544311bc84.js +1 -0
  173. package/.next/static/chunks/app/share/[id]/page-acffd9a36ab71a6c.js +1 -0
  174. package/.next/static/chunks/app/utilities/[scope]/[id]/page-015bce192284cbfd.js +1 -0
  175. package/.next/static/chunks/app/utilities/page-96f769b25ff57602.js +1 -0
  176. package/.next/static/chunks/{webpack-bf73daacb1b20997.js → webpack-455b1fa7690b2149.js} +1 -1
  177. package/.next/static/hPYprisLL4KmGxvyJ-Jan/_buildManifest.js +1 -0
  178. package/.next/trace +90 -90
  179. package/.next/types/app/dispatcher/page.ts +84 -0
  180. package/.next/types/routes.d.ts +2 -1
  181. package/.next/types/validator.ts +9 -0
  182. package/package.json +1 -1
  183. package/.next/server/chunks/2258.js +0 -1
  184. package/.next/server/chunks/3966.js +0 -1
  185. package/.next/server/chunks/4201.js +0 -3
  186. package/.next/server/chunks/8133.js +0 -1
  187. package/.next/static/1JOww-AoS7M9R4-h4i1EK/_buildManifest.js +0 -1
  188. package/.next/static/chunks/1807-29ed83a7f19aa21e.js +0 -1
  189. package/.next/static/chunks/3908-7e7f22cd1d3c47ed.js +0 -1
  190. package/.next/static/chunks/4108.1e51cb6f9a9638b0.js +0 -1
  191. package/.next/static/chunks/6559-329fd074773ef4f2.js +0 -1
  192. package/.next/static/chunks/6560-d68897c384b289dc.js +0 -1
  193. package/.next/static/chunks/app/api/agents/[agentId]/respond/route-5d0cd3b754198853.js +0 -1
  194. package/.next/static/chunks/app/api/images/[rootId]/[file]/route-5d0cd3b754198853.js +0 -1
  195. package/.next/static/chunks/app/api/oauth/callback/route-5d0cd3b754198853.js +0 -1
  196. package/.next/static/chunks/app/api/oauth/start/route-5d0cd3b754198853.js +0 -1
  197. package/.next/static/chunks/app/api/roots/[id]/attachments/route-5d0cd3b754198853.js +0 -1
  198. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/send/route-5d0cd3b754198853.js +0 -1
  199. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/stop/route-5d0cd3b754198853.js +0 -1
  200. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/stream/route-5d0cd3b754198853.js +0 -1
  201. package/.next/static/chunks/app/api/roots/[id]/dashboard/route-5d0cd3b754198853.js +0 -1
  202. package/.next/static/chunks/app/api/roots/[id]/suggestions/route-5d0cd3b754198853.js +0 -1
  203. package/.next/static/chunks/app/api/utilities/[scope]/[id]/bundle.js/route-5d0cd3b754198853.js +0 -1
  204. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host/route-5d0cd3b754198853.js +0 -1
  205. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host-api.mjs/route-5d0cd3b754198853.js +0 -1
  206. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host-ui.mjs/route-5d0cd3b754198853.js +0 -1
  207. package/.next/static/chunks/app/api/utilities/[scope]/[id]/iframe/route-5d0cd3b754198853.js +0 -1
  208. package/.next/static/chunks/app/api/utilities/[scope]/[id]/style.css/route-5d0cd3b754198853.js +0 -1
  209. package/.next/static/chunks/app/api/utilities/install-archive/route-5d0cd3b754198853.js +0 -1
  210. package/.next/static/chunks/app/layout-0385fc4c09255a22.js +0 -1
  211. package/.next/static/chunks/app/onboarding/page-e49a9a7a81bdc74e.js +0 -1
  212. package/.next/static/chunks/app/page-d11913f531a6920e.js +0 -1
  213. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-30c5a6767d469a99.js +0 -1
  214. package/.next/static/chunks/app/roots/[id]/layout-5d0cd3b754198853.js +0 -1
  215. package/.next/static/chunks/app/roots/[id]/page-074640697b6db60a.js +0 -1
  216. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-6e23d0a8b8bc570b.js +0 -1
  217. package/.next/static/chunks/app/roots/[id]/workflows/page-2a7d5c4f49b41e14.js +0 -1
  218. package/.next/static/chunks/app/roots/new/page-530bbb61fefeadc8.js +0 -1
  219. package/.next/static/chunks/app/settings/page-3b79c11349d439b5.js +0 -1
  220. package/.next/static/chunks/app/share/[id]/page-b5e74b24b29e3918.js +0 -1
  221. package/.next/static/chunks/app/utilities/[scope]/[id]/page-ec338e725c434ecd.js +0 -1
  222. package/.next/static/chunks/app/utilities/page-fb110c605c6dedb6.js +0 -1
  223. /package/.next/static/{1JOww-AoS7M9R4-h4i1EK → hPYprisLL4KmGxvyJ-Jan}/_ssgManifest.js +0 -0
@@ -1,9 +1,9 @@
1
- "use strict";exports.id=2485,exports.ids=[2485],exports.modules={25475:(a,b,c)=>{c.d(b,{Md:()=>p,u0:()=>m,y4:()=>n});var d=c(73024),e=c(76760),f=c.n(e),g=c(77598),h=c.n(g),i=c(29163);let j=f().join((0,i._)(),"audit");function k(a){return f().join(j,`${a}.jsonl`)}function l(a=new Date){return a.toISOString().slice(0,10)}async function m(a){let b={ts:a.ts??new Date().toISOString(),...a};await d.promises.mkdir(j,{recursive:!0});let c=k(l());await d.promises.appendFile(c,JSON.stringify(b)+"\n","utf8")}async function n(a={}){let b,c=await o(),e=a.date??c[0]??l(),f=a.limit??500,g=k(e);try{b=await d.promises.readFile(g,"utf8")}catch{return{date:e,entries:[],availableDates:c}}let h=[],i=b.split(/\r?\n/);for(let b=i.length-1;b>=0&&h.length<f;b--){let c,d=i[b];if(d){try{c=JSON.parse(d)}catch{continue}(function(a,b){if(!b)return!0;if(b.utilityId&&a.utilityId!==b.utilityId||b.method&&a.method!==b.method||b.phase&&a.phase!==b.phase)return!1;if(b.status){let c=!a.error;if("ok"===b.status&&!c||"error"===b.status&&c)return!1}return!0})(c,a.filter)&&h.push(c)}}return{date:e,entries:h,availableDates:c}}async function o(){let a;try{a=await d.promises.readdir(j)}catch{return[]}return a.filter(a=>/^\d{4}-\d{2}-\d{2}\.jsonl$/.test(a)).map(a=>a.replace(/\.jsonl$/,"")).sort().reverse()}async function p(a,b){let c=h().randomUUID().replace(/-/g,"").slice(0,16),d=Date.now();await m({ts:new Date().toISOString(),utilityId:a.utilityId,scope:a.scope,channel:a.channel,method:a.method,phase:"start",correlationId:c,...a.parentCorrelationId?{parentCorrelationId:a.parentCorrelationId}:{},args:q(a.args)});try{let e=await b(c);return await m({ts:new Date().toISOString(),utilityId:a.utilityId,scope:a.scope,channel:a.channel,method:a.method,phase:"end",correlationId:c,durationMs:Date.now()-d,result:q(e)}),e}catch(e){let b=e instanceof Error?e.message:String(e);throw await m({ts:new Date().toISOString(),utilityId:a.utilityId,scope:a.scope,channel:a.channel,method:a.method,phase:"end",correlationId:c,durationMs:Date.now()-d,error:b}),e}}function q(a,b=0){if(null==a)return a;if("string"==typeof a)return a.length>2e3?a.slice(0,2e3)+"…[truncated]":a;if("object"!=typeof a)return a;if(b>3)return"[…]";if(Array.isArray(a))return a.slice(0,50).map(a=>q(a,b+1));let c={},d=0;for(let[e,f]of Object.entries(a)){if(d++>=50){c["…"]="truncated";break}c[e]=q(f,b+1)}return c}},62485:(a,b,c)=>{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(14126),i=c(25475),j=c(99048),k=c(49353),l=c(11178),m=c(74853),n=c(24576),o=c(17640),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(9293).then(c.bind(c,59293)),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(9293).then(c.bind(c,59293)),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.all([c.e(9631),c.e(8124)]).then(c.bind(c,88124));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.all([c.e(9631),c.e(5243)]).then(c.bind(c,5243)),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.all([c.e(9631),c.e(8124)]).then(c.bind(c,88124)),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.all([c.e(9631),c.e(5243)]).then(c.bind(c,5243)),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.all([c.e(9631),c.e(8124)]).then(c.bind(c,88124)),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.
1
+ "use strict";exports.id=2485,exports.ids=[2485],exports.modules={25475:(a,b,c)=>{c.d(b,{Md:()=>p,u0:()=>m,y4:()=>n});var d=c(73024),e=c(76760),f=c.n(e),g=c(77598),h=c.n(g),i=c(29163);let j=f().join((0,i._)(),"audit");function k(a){return f().join(j,`${a}.jsonl`)}function l(a=new Date){return a.toISOString().slice(0,10)}async function m(a){let b={ts:a.ts??new Date().toISOString(),...a};await d.promises.mkdir(j,{recursive:!0});let c=k(l());await d.promises.appendFile(c,JSON.stringify(b)+"\n","utf8")}async function n(a={}){let b,c=await o(),e=a.date??c[0]??l(),f=a.limit??500,g=k(e);try{b=await d.promises.readFile(g,"utf8")}catch{return{date:e,entries:[],availableDates:c}}let h=[],i=b.split(/\r?\n/);for(let b=i.length-1;b>=0&&h.length<f;b--){let c,d=i[b];if(d){try{c=JSON.parse(d)}catch{continue}(function(a,b){if(!b)return!0;if(b.utilityId&&a.utilityId!==b.utilityId||b.method&&a.method!==b.method||b.phase&&a.phase!==b.phase)return!1;if(b.status){let c=!a.error;if("ok"===b.status&&!c||"error"===b.status&&c)return!1}return!0})(c,a.filter)&&h.push(c)}}return{date:e,entries:h,availableDates:c}}async function o(){let a;try{a=await d.promises.readdir(j)}catch{return[]}return a.filter(a=>/^\d{4}-\d{2}-\d{2}\.jsonl$/.test(a)).map(a=>a.replace(/\.jsonl$/,"")).sort().reverse()}async function p(a,b){let c=h().randomUUID().replace(/-/g,"").slice(0,16),d=Date.now();await m({ts:new Date().toISOString(),utilityId:a.utilityId,scope:a.scope,channel:a.channel,method:a.method,phase:"start",correlationId:c,...a.parentCorrelationId?{parentCorrelationId:a.parentCorrelationId}:{},args:q(a.args)});try{let e=await b(c);return await m({ts:new Date().toISOString(),utilityId:a.utilityId,scope:a.scope,channel:a.channel,method:a.method,phase:"end",correlationId:c,durationMs:Date.now()-d,result:q(e)}),e}catch(e){let b=e instanceof Error?e.message:String(e);throw await m({ts:new Date().toISOString(),utilityId:a.utilityId,scope:a.scope,channel:a.channel,method:a.method,phase:"end",correlationId:c,durationMs:Date.now()-d,error:b}),e}}function q(a,b=0){if(null==a)return a;if("string"==typeof a)return a.length>2e3?a.slice(0,2e3)+"…[truncated]":a;if("object"!=typeof a)return a;if(b>3)return"[…]";if(Array.isArray(a))return a.slice(0,50).map(a=>q(a,b+1));let c={},d=0;for(let[e,f]of Object.entries(a)){if(d++>=50){c["…"]="truncated";break}c[e]=q(f,b+1)}return c}},62485:(a,b,c)=>{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(14126),i=c(25475),j=c(99048),k=c(49353),l=c(11178),m=c(74853),n=c(24576),o=c(17640),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(9293).then(c.bind(c,59293)),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(9293).then(c.bind(c,59293)),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.all([c.e(9631),c.e(8124)]).then(c.bind(c,88124));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.all([c.e(9631),c.e(5243)]).then(c.bind(c,5243)),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.all([c.e(9631),c.e(8124)]).then(c.bind(c,88124)),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.all([c.e(9631),c.e(5243)]).then(c.bind(c,5243)),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.all([c.e(9631),c.e(8124)]).then(c.bind(c,88124)),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.
2
2
  Return ONLY a JSON object on a single line with shape:
3
3
  {"results":[{"title":"…","url":"…","snippet":"…"}]}
4
4
  No prose, no markdown fences. Max 8 results.
5
5
 
6
- 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.all([c.e(7300),c.e(1960)]).then(c.bind(c,29579));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.all([c.e(9631),c.e(7358),c.e(6435)]).then(c.bind(c,64163));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 c.e(3295).then(c.bind(c,13295));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 c.e(3295).then(c.bind(c,13295)),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.all([c.e(9631),c.e(7358),c.e(6435)]).then(c.bind(c,24058)),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 c.e(7188).then(c.bind(c,7188)),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 c.e(9835).then(c.bind(c,59835)),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 c.e(9835).then(c.bind(c,59835));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 c.e(9835).then(c.bind(c,59835)),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 Promise.all([c.e(9631),c.e(7358),c.e(5319)]).then(c.bind(c,73117)),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(6038).then(c.bind(c,26038)),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 c.e(2787).then(c.bind(c,2787));return{id:(await e(d,b)).id}}async function W(a,b){let{path:d}=await T(a),{updateTask:e}=await c.e(2787).then(c.bind(c,2787));return{ok:!!await e(d,b.id,b.patch)}}async function X(a,b){let{path:d}=await T(a),{deleteTask:e}=await c.e(2787).then(c.bind(c,2787));return{ok:await e(d,b.id)}}async function Y(a,b){let{path:d}=await T(a),{getTask:e}=await c.e(2787).then(c.bind(c,2787));return e(d,b.id)}async function Z(a){let{path:b}=await T(a),{listTasks:d}=await c.e(2787).then(c.bind(c,2787));return{tasks:await d(b)}}async function $(a,b){let{id:d}=await T(a),{dispatchTask:e}=await Promise.all([c.e(9631),c.e(7358),c.e(8576)]).then(c.bind(c,47742));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(3834).then(c.bind(c,63834));return e({rootId:d,taskId:b.id})}async function aa(a,b){let{path:d}=await T(a),{updateTask:e}=await c.e(2787).then(c.bind(c,2787));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(1769).then(c.bind(c,11769));return{ok:await d(b)}}async function ac(a){let{path:b}=await T(a),{hasRemote:d}=await c.e(1769).then(c.bind(c,11769));return{ok:await d(b)}}async function ad(){let{hasGhCli:a}=await c.e(1769).then(c.bind(c,11769));return{ok:await a()}}async function ae(a,b){let{path:d}=await T(a),{createWorktree:e}=await c.e(1769).then(c.bind(c,11769));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(1769).then(c.bind(c,11769));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(1769).then(c.bind(c,11769));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(1769).then(c.bind(c,11769));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)}})},74853:(a,b,c)=>{c.d(b,{tH:()=>r,iG:()=>m});var d=c(76760),e=c.n(d),f=c(73024),g=c(29163);let h=null,i=!1,j=!1;async function k(){if(j)return null;try{return await Promise.resolve().then(c.t.bind(c,79868,23))}catch{return j=!0,null}}async function l(){if(h&&i)return{raw:h};let a=await k();if(!a)return null;let b=(0,g._)();await f.promises.mkdir(b,{recursive:!0});let c=e().join(b,"sessions.db"),d=new a.DatabaseSync(c);return d.exec("PRAGMA journal_mode = WAL"),d.exec("PRAGMA synchronous = NORMAL"),d.exec("PRAGMA temp_store = MEMORY"),function(a){a.exec(`
6
+ 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.all([c.e(7300),c.e(1960)]).then(c.bind(c,29579));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.all([c.e(9631),c.e(4251),c.e(6435)]).then(c.bind(c,64163));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 c.e(3295).then(c.bind(c,13295));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 c.e(3295).then(c.bind(c,13295)),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.all([c.e(9631),c.e(4251),c.e(6435)]).then(c.bind(c,24058)),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 c.e(7188).then(c.bind(c,7188)),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 c.e(9835).then(c.bind(c,59835)),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 c.e(9835).then(c.bind(c,59835));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 c.e(9835).then(c.bind(c,59835)),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 Promise.all([c.e(9631),c.e(4251),c.e(5319)]).then(c.bind(c,73117)),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(6038).then(c.bind(c,26038)),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 c.e(2787).then(c.bind(c,2787));return{id:(await e(d,b)).id}}async function W(a,b){let{path:d}=await T(a),{updateTask:e}=await c.e(2787).then(c.bind(c,2787));return{ok:!!await e(d,b.id,b.patch)}}async function X(a,b){let{path:d}=await T(a),{deleteTask:e}=await c.e(2787).then(c.bind(c,2787));return{ok:await e(d,b.id)}}async function Y(a,b){let{path:d}=await T(a),{getTask:e}=await c.e(2787).then(c.bind(c,2787));return e(d,b.id)}async function Z(a){let{path:b}=await T(a),{listTasks:d}=await c.e(2787).then(c.bind(c,2787));return{tasks:await d(b)}}async function $(a,b){let{id:d}=await T(a),{dispatchTask:e}=await Promise.all([c.e(9631),c.e(4251),c.e(8576)]).then(c.bind(c,47742));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(3834).then(c.bind(c,63834));return e({rootId:d,taskId:b.id})}async function aa(a,b){let{path:d}=await T(a),{updateTask:e}=await c.e(2787).then(c.bind(c,2787));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(1769).then(c.bind(c,11769));return{ok:await d(b)}}async function ac(a){let{path:b}=await T(a),{hasRemote:d}=await c.e(1769).then(c.bind(c,11769));return{ok:await d(b)}}async function ad(){let{hasGhCli:a}=await c.e(1769).then(c.bind(c,11769));return{ok:await a()}}async function ae(a,b){let{path:d}=await T(a),{createWorktree:e}=await c.e(1769).then(c.bind(c,11769));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(1769).then(c.bind(c,11769));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(1769).then(c.bind(c,11769));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(1769).then(c.bind(c,11769));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)}})},74853:(a,b,c)=>{c.d(b,{tH:()=>r,iG:()=>m});var d=c(76760),e=c.n(d),f=c(73024),g=c(29163);let h=null,i=!1,j=!1;async function k(){if(j)return null;try{return await Promise.resolve().then(c.t.bind(c,79868,23))}catch{return j=!0,null}}async function l(){if(h&&i)return{raw:h};let a=await k();if(!a)return null;let b=(0,g._)();await f.promises.mkdir(b,{recursive:!0});let c=e().join(b,"sessions.db"),d=new a.DatabaseSync(c);return d.exec("PRAGMA journal_mode = WAL"),d.exec("PRAGMA synchronous = NORMAL"),d.exec("PRAGMA temp_store = MEMORY"),function(a){a.exec(`
7
7
  CREATE TABLE IF NOT EXISTS meta (
8
8
  key TEXT PRIMARY KEY,
9
9
  value TEXT NOT NULL
@@ -47,7 +47,7 @@ Query: ${b.query}`,f=await (0,j.T)(d,e,{timeoutMs:6e4}),g=/\{[\s\S]*\}/.exec(f);
47
47
  WHERE ${h.join(" AND ")}
48
48
  ORDER BY rank ASC
49
49
  LIMIT ?
50
- `;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}))}var n=c(30192),o=c.n(n),p=c(24576),q=c(13474);async function r(){let a=await (0,p.qV)().catch(()=>[]),b=0,c=0,d=new Set;for(let e of a){let a=await s(e,d);b+=a.scanned,c+=a.upserted}return{scanned:b,upserted:c,removed:await v(d)}}async function s(a,b){let c=(0,q.FF)(a.path),d=0,g=0;for(let{dir:h,source:i}of[{dir:"journal",source:"journal"},{dir:"topics",source:"topic"}]){let j,k=e().join(c,h);try{j=await f.promises.readdir(k,{withFileTypes:!0})}catch{continue}for(let c of j){if(!c.isFile()||!c.name.toLowerCase().endsWith(".md"))continue;let f=e().join(k,c.name);b.add(f),d++,await t({absPath:f,rootId:a.id,rootPath:a.path,source:i,ref:c.name.replace(/\.md$/i,"")})&&g++}}return{scanned:d,upserted:g}}async function t(a){let b,c=await f.promises.stat(a.absPath).catch(()=>null);if(!c)return!1;let d=Math.floor(c.mtimeMs),e=await l();if(!e)return!1;let g=e.raw,h=g.prepare("SELECT id, mtime_ms FROM documents WHERE file_path = ? LIMIT 1").get(a.absPath);if(h&&h.mtime_ms===d)return!1;try{b=await f.promises.readFile(a.absPath,"utf8")}catch{return!1}let i=o()(b),j=i.data,k="string"==typeof j.title&&j.title.trim()||function(a){for(let b of a.split(/\r?\n/)){let a=b.trim();if(a&&!/^##\s+(user|assistant)/i.test(a))return a.replace(/^#+\s*/,"").slice(0,80)}return null}(i.content)||a.ref,m="string"==typeof j.date&&j.date.trim()||"string"==typeof j.createdAt&&j.createdAt.trim()||function(a){let b=/^(\d{4}-\d{2}-\d{2})/.exec(a);return b?b[1]:null}(a.ref)||null,n=i.content.replace(/^##\s+(user|assistant)\s*$/gim,"\n").trim();if(!n)return h&&await u(h.id),!1;let p=Date.now();if(h)g.prepare(`UPDATE documents
50
+ `;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}))}var n=c(30192),o=c.n(n),p=c(24576),q=c(13474);async function r(){let a=await (0,p.listRoots)().catch(()=>[]),b=0,c=0,d=new Set;for(let e of a){let a=await s(e,d);b+=a.scanned,c+=a.upserted}return{scanned:b,upserted:c,removed:await v(d)}}async function s(a,b){let c=(0,q.FF)(a.path),d=0,g=0;for(let{dir:h,source:i}of[{dir:"journal",source:"journal"},{dir:"topics",source:"topic"}]){let j,k=e().join(c,h);try{j=await f.promises.readdir(k,{withFileTypes:!0})}catch{continue}for(let c of j){if(!c.isFile()||!c.name.toLowerCase().endsWith(".md"))continue;let f=e().join(k,c.name);b.add(f),d++,await t({absPath:f,rootId:a.id,rootPath:a.path,source:i,ref:c.name.replace(/\.md$/i,"")})&&g++}}return{scanned:d,upserted:g}}async function t(a){let b,c=await f.promises.stat(a.absPath).catch(()=>null);if(!c)return!1;let d=Math.floor(c.mtimeMs),e=await l();if(!e)return!1;let g=e.raw,h=g.prepare("SELECT id, mtime_ms FROM documents WHERE file_path = ? LIMIT 1").get(a.absPath);if(h&&h.mtime_ms===d)return!1;try{b=await f.promises.readFile(a.absPath,"utf8")}catch{return!1}let i=o()(b),j=i.data,k="string"==typeof j.title&&j.title.trim()||function(a){for(let b of a.split(/\r?\n/)){let a=b.trim();if(a&&!/^##\s+(user|assistant)/i.test(a))return a.replace(/^#+\s*/,"").slice(0,80)}return null}(i.content)||a.ref,m="string"==typeof j.date&&j.date.trim()||"string"==typeof j.createdAt&&j.createdAt.trim()||function(a){let b=/^(\d{4}-\d{2}-\d{2})/.exec(a);return b?b[1]:null}(a.ref)||null,n=i.content.replace(/^##\s+(user|assistant)\s*$/gim,"\n").trim();if(!n)return h&&await u(h.id),!1;let p=Date.now();if(h)g.prepare(`UPDATE documents
51
51
  SET source = ?, root_id = ?, root_path = ?, ref = ?, title = ?,
52
52
  iso_date = ?, mtime_ms = ?, indexed_at = ?
53
53
  WHERE id = ?`).run(a.source,a.rootId,a.rootPath,a.ref,k,m,d,p,h.id),g.prepare("DELETE FROM documents_fts WHERE rowid = ?").run(h.id),g.prepare("INSERT INTO documents_fts (rowid, title, body) VALUES (?, ?, ?)").run(h.id,k,n);else{let b=Number(g.prepare(`INSERT INTO documents (source, root_id, root_path, ref, file_path,
@@ -0,0 +1,3 @@
1
+ "use strict";exports.id=2510,exports.ids=[2510],exports.modules={6356:(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)("40a1f6fc3dca3be2ea63542dfc832cd55d6fdf0dce",m.callServer,void 0,m.findSourceMapURL,"createShareAction");var o=c(60503);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")]})}},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(34178),k=c(43054),l=c(8836),m=c(88724),n=c(84731);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,"401cc3918289d13addd25d3a3b3baed225cdc78876",null),(0,d.A)(j,"40944471867807c14471d2beaea34241c18ef416f2",null),(0,d.A)(k,"40c81fbdd0f3c04a601508d164a656acd0c5d9b535",null),(0,d.A)(l,"407f097104aa62a5057f977a7336959bd05c7e2830",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"}]])},34178:(a,b,c)=>{c.d(b,{g:()=>e});var d=c(3265);let e=(0,d.createServerReference)("7833da71368d9571a4c2719fad4fdb7478b6eb6580",d.callServer,void 0,d.findSourceMapURL,"startTopicAction")},43054:(a,b,c)=>{c.d(b,{h:()=>e});var d=c(3265);let e=(0,d.createServerReference)("706809d860f5384a0f3995dae35367b81f497ad612",d.callServer,void 0,d.findSourceMapURL,"generateTopicTitleAction")},45929:(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)("401cc3918289d13addd25d3a3b3baed225cdc78876",v.callServer,void 0,v.findSourceMapURL,"generateAction"),x=(0,v.createServerReference)("40944471867807c14471d2beaea34241c18ef416f2",v.callServer,void 0,v.findSourceMapURL,"searchAction"),y=(0,v.createServerReference)("40c81fbdd0f3c04a601508d164a656acd0c5d9b535",v.callServer,void 0,v.findSourceMapURL,"attachAction"),z=(0,v.createServerReference)("407f097104aa62a5057f977a7336959bd05c7e2830",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}`)}}})]})}},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"})})}},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"}]])},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=269,exports.ids=[269],exports.modules={30269:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{refreshUtilityCard:()=>k});var e=c(56149),f=c(53905),g=c(8118),h=c(49556),i=c(69509),j=a([h]);h=(j.then?(await j)():j)[0];let l=e.Ik({kind:e.k5(["markdown","news-list","link-list","kpi","checklist","quote","kb-pinned","progress","image","stat-table","map","action-list"]),title:e.Yj().optional(),description:e.Yj().optional(),data:e.g1(e.Yj(),e.L5()).default({})});async function k(a,b){try{let c=await (0,f.Zn)(a);if(!c)return{ok:!1,error:"Root not found"};let d=await (0,i.readWidget)(c.path,b);if(!d||"utility-card"!==d.kind)return{ok:!1,error:"Not a utility-card widget"};let e=d.data,j=await (0,g.getUtility)(e.utilityScope,e.utilityId,"project"===e.utilityScope?a:void 0);if(!j)return{ok:!1,error:"Utility not installed"};let k=j.manifest.card,m=k?.action;if(!m)return{ok:!0,noop:!0};if(!j.manifest.permissions.workers?.enabled)return{ok:!1,error:`${e.utilityId}: card.action needs permissions.workers.enabled`};let n=j.manifest.serverActions.find(a=>a.name===m);if(!n)return{ok:!1,error:`card.action "${m}" not in serverActions`};let o=await (0,h.runServerAction)({utility:j,action:n,args:{}}),p=function(a){if(!a||"object"!=typeof a)return null;let b="snapshot"in a?a.snapshot:a,c=l.safeParse(b);return c.success?c.data:null}(o);if(!p){let a=await (0,i.readWidget)(c.path,b),d=a?.data?.inner;return d?{ok:!0,inner:d}:{ok:!0,noop:!0}}let q={kind:p.kind,data:p.data,...p.title?{title:p.title}:{},...p.description?{description:p.description}:{}},r={...d,data:{...e,inner:q},updatedAt:new Date().toISOString(),lastRefreshAt:new Date().toISOString()};return await (0,i.writeWidget)(c.path,r),{ok:!0,inner:q}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}d()}catch(a){d(a)}})}};
1
+ "use strict";exports.id=269,exports.ids=[269],exports.modules={30269:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{refreshUtilityCard:()=>k});var e=c(56149),f=c(53905),g=c(8118),h=c(49556),i=c(69509),j=a([h]);h=(j.then?(await j)():j)[0];let l=e.Ik({kind:e.k5(["markdown","news-list","link-list","kpi","checklist","quote","kb-pinned","progress","image","stat-table","map","action-list"]),title:e.Yj().optional(),description:e.Yj().optional(),data:e.g1(e.Yj(),e.L5()).default({})});async function k(a,b){try{let c=await (0,f.getRoot)(a);if(!c)return{ok:!1,error:"Root not found"};let d=await (0,i.readWidget)(c.path,b);if(!d||"utility-card"!==d.kind)return{ok:!1,error:"Not a utility-card widget"};let e=d.data,j=await (0,g.getUtility)(e.utilityScope,e.utilityId,"project"===e.utilityScope?a:void 0);if(!j)return{ok:!1,error:"Utility not installed"};let k=j.manifest.card,m=k?.action;if(!m)return{ok:!0,noop:!0};if(!j.manifest.permissions.workers?.enabled)return{ok:!1,error:`${e.utilityId}: card.action needs permissions.workers.enabled`};let n=j.manifest.serverActions.find(a=>a.name===m);if(!n)return{ok:!1,error:`card.action "${m}" not in serverActions`};let o=await (0,h.runServerAction)({utility:j,action:n,args:{}}),p=function(a){if(!a||"object"!=typeof a)return null;let b="snapshot"in a?a.snapshot:a,c=l.safeParse(b);return c.success?c.data:null}(o);if(!p){let a=await (0,i.readWidget)(c.path,b),d=a?.data?.inner;return d?{ok:!0,inner:d}:{ok:!0,noop:!0}}let q={kind:p.kind,data:p.data,...p.title?{title:p.title}:{},...p.description?{description:p.description}:{}},r={...d,data:{...e,inner:q},updatedAt:new Date().toISOString(),lastRefreshAt:new Date().toISOString()};return await (0,i.writeWidget)(c.path,r),{ok:!0,inner:q}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}d()}catch(a){d(a)}})}};