reflex-agent 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +97 -90
  3. package/.next/app-path-routes-manifest.json +3 -2
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/react-loadable-manifest.json +1 -1
  7. package/.next/routes-manifest.json +6 -0
  8. package/.next/server/app/_not-found/page.js +1 -1
  9. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  10. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/agents/[agentId]/page.js +2 -2
  12. package/.next/server/app/agents/[agentId]/page.js.nft.json +1 -1
  13. package/.next/server/app/agents/[agentId]/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/agents/[agentId]/respond/route.js +1 -1
  15. package/.next/server/app/api/agents/[agentId]/respond/route.js.nft.json +1 -1
  16. package/.next/server/app/api/agents/[agentId]/respond/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/images/[rootId]/[file]/route.js +1 -1
  18. package/.next/server/app/api/images/[rootId]/[file]/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/oauth/start/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/roots/[id]/attachments/route.js +0 -0
  22. package/.next/server/app/api/roots/[id]/attachments/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route.js +1 -1
  24. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route.js.nft.json +1 -1
  25. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route.js +1 -1
  27. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route.js.nft.json +1 -1
  28. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route.js +2 -2
  30. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route.js.nft.json +1 -1
  31. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/roots/[id]/dashboard/route.js +1 -1
  33. package/.next/server/app/api/roots/[id]/dashboard/route.js.nft.json +1 -1
  34. package/.next/server/app/api/roots/[id]/dashboard/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/roots/[id]/suggestions/route.js +1 -1
  36. package/.next/server/app/api/roots/[id]/suggestions/route.js.nft.json +1 -1
  37. package/.next/server/app/api/roots/[id]/suggestions/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/utilities/[scope]/[id]/bundle.js/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/utilities/[scope]/[id]/host/route.js +1 -1
  40. package/.next/server/app/api/utilities/[scope]/[id]/host/route.js.nft.json +1 -1
  41. package/.next/server/app/api/utilities/[scope]/[id]/host/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/utilities/[scope]/[id]/host-api.mjs/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/utilities/[scope]/[id]/host-ui.mjs/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/utilities/[scope]/[id]/iframe/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/utilities/[scope]/[id]/style.css/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/utilities/install-archive/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/audit/page.js +2 -2
  48. package/.next/server/app/audit/page.js.nft.json +1 -1
  49. package/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/dispatcher/page.js +2 -0
  51. package/.next/server/app/dispatcher/page.js.nft.json +1 -0
  52. package/.next/server/app/dispatcher/page_client-reference-manifest.js +1 -0
  53. package/.next/server/app/onboarding/page.js +3 -3
  54. package/.next/server/app/onboarding/page.js.nft.json +1 -1
  55. package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/page.js +2 -2
  57. package/.next/server/app/page.js.nft.json +1 -1
  58. package/.next/server/app/page_client-reference-manifest.js +1 -1
  59. package/.next/server/app/roots/[id]/chat/[topicId]/page.js +2 -2
  60. package/.next/server/app/roots/[id]/chat/[topicId]/page.js.nft.json +1 -1
  61. package/.next/server/app/roots/[id]/chat/[topicId]/page_client-reference-manifest.js +1 -1
  62. package/.next/server/app/roots/[id]/kb/[...slug]/page.js +2 -2
  63. package/.next/server/app/roots/[id]/kb/[...slug]/page.js.nft.json +1 -1
  64. package/.next/server/app/roots/[id]/kb/[...slug]/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/roots/[id]/memory/page.js +2 -2
  66. package/.next/server/app/roots/[id]/memory/page.js.nft.json +1 -1
  67. package/.next/server/app/roots/[id]/memory/page_client-reference-manifest.js +1 -1
  68. package/.next/server/app/roots/[id]/page.js +4 -4
  69. package/.next/server/app/roots/[id]/page.js.nft.json +1 -1
  70. package/.next/server/app/roots/[id]/page_client-reference-manifest.js +1 -1
  71. package/.next/server/app/roots/[id]/workflows/[wfId]/page.js +2 -2
  72. package/.next/server/app/roots/[id]/workflows/[wfId]/page.js.nft.json +1 -1
  73. package/.next/server/app/roots/[id]/workflows/[wfId]/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/roots/[id]/workflows/page.js +2 -2
  75. package/.next/server/app/roots/[id]/workflows/page.js.nft.json +1 -1
  76. package/.next/server/app/roots/[id]/workflows/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/roots/new/page.js +3 -3
  78. package/.next/server/app/roots/new/page.js.nft.json +1 -1
  79. package/.next/server/app/roots/new/page_client-reference-manifest.js +1 -1
  80. package/.next/server/app/settings/page.js +5 -5
  81. package/.next/server/app/settings/page.js.nft.json +1 -1
  82. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/share/[id]/file/page.js +2 -2
  84. package/.next/server/app/share/[id]/file/page.js.nft.json +1 -1
  85. package/.next/server/app/share/[id]/file/page_client-reference-manifest.js +1 -1
  86. package/.next/server/app/share/[id]/page.js +2 -2
  87. package/.next/server/app/share/[id]/page.js.nft.json +1 -1
  88. package/.next/server/app/share/[id]/page_client-reference-manifest.js +1 -1
  89. package/.next/server/app/utilities/[scope]/[id]/page.js +2 -2
  90. package/.next/server/app/utilities/[scope]/[id]/page.js.nft.json +1 -1
  91. package/.next/server/app/utilities/[scope]/[id]/page_client-reference-manifest.js +1 -1
  92. package/.next/server/app/utilities/page.js +2 -2
  93. package/.next/server/app/utilities/page.js.nft.json +1 -1
  94. package/.next/server/app/utilities/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app-paths-manifest.json +3 -2
  96. package/.next/server/chunks/1105.js +1 -1
  97. package/.next/server/chunks/1116.js +1 -1
  98. package/.next/server/chunks/1307.js +1 -0
  99. package/.next/server/chunks/1358.js +1 -1
  100. package/.next/server/chunks/1638.js +1 -1
  101. package/.next/server/chunks/174.js +1 -0
  102. package/.next/server/chunks/2485.js +3 -3
  103. package/.next/server/chunks/269.js +1 -1
  104. package/.next/server/chunks/285.js +40 -25
  105. package/.next/server/chunks/2884.js +3 -0
  106. package/.next/server/chunks/3240.js +1 -1
  107. package/.next/server/chunks/3332.js +1 -1
  108. package/.next/server/chunks/3377.js +1 -1
  109. package/.next/server/chunks/3834.js +1 -1
  110. package/.next/server/chunks/4031.js +2 -2
  111. package/.next/server/chunks/4066.js +1 -1
  112. package/.next/server/chunks/{7358.js → 4251.js} +36 -21
  113. package/.next/server/chunks/4578.js +1 -1
  114. package/.next/server/chunks/4602.js +4 -0
  115. package/.next/server/chunks/4611.js +1 -0
  116. package/.next/server/chunks/4812.js +1 -1
  117. package/.next/server/chunks/4840.js +1 -1
  118. package/.next/server/chunks/495.js +1 -0
  119. package/.next/server/chunks/5319.js +1 -1
  120. package/.next/server/chunks/569.js +1 -1
  121. package/.next/server/chunks/6142.js +1 -0
  122. package/.next/server/chunks/6720.js +1 -0
  123. package/.next/server/chunks/7220.js +1 -1
  124. package/.next/server/chunks/7430.js +1 -0
  125. package/.next/server/chunks/8511.js +1 -1
  126. package/.next/server/chunks/8576.js +2 -2
  127. package/.next/server/chunks/9098.js +1 -1
  128. package/.next/server/chunks/9179.js +2 -2
  129. package/.next/server/chunks/9809.js +1 -1
  130. package/.next/server/chunks/9835.js +1 -1
  131. package/.next/server/functions-config-manifest.json +3 -3
  132. package/.next/server/middleware-build-manifest.js +1 -1
  133. package/.next/server/middleware-manifest.json +5 -5
  134. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  135. package/.next/server/pages/500.html +1 -1
  136. package/.next/server/server-reference-manifest.js +1 -1
  137. package/.next/server/server-reference-manifest.json +1 -1
  138. package/.next/static/chunks/3845-66f364dff106ba18.js +1 -0
  139. package/.next/static/chunks/4108.738ffa1f849a5485.js +1 -0
  140. package/.next/static/chunks/5494-59e2a85639ebb34b.js +1 -0
  141. package/.next/static/chunks/{6560-d68897c384b289dc.js → 5968-21bac68b48bbccd3.js} +1 -1
  142. package/.next/static/chunks/{7037-7d9a908022d947da.js → 8151-e56a8e4752a0d552.js} +1 -1
  143. package/.next/static/chunks/8283-59e528f04d14b616.js +1 -0
  144. package/.next/static/chunks/{8775-c1985f74619ced58.js → 8775-890699c74c28df61.js} +1 -1
  145. package/.next/static/chunks/app/api/agents/[agentId]/respond/route-78f8e23cdd4112b9.js +1 -0
  146. package/.next/static/chunks/app/api/images/[rootId]/[file]/route-78f8e23cdd4112b9.js +1 -0
  147. package/.next/static/chunks/app/api/oauth/callback/route-78f8e23cdd4112b9.js +1 -0
  148. package/.next/static/chunks/app/api/oauth/start/route-78f8e23cdd4112b9.js +1 -0
  149. package/.next/static/chunks/app/api/roots/[id]/attachments/route-78f8e23cdd4112b9.js +1 -0
  150. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/send/route-78f8e23cdd4112b9.js +1 -0
  151. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/stop/route-78f8e23cdd4112b9.js +1 -0
  152. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/stream/route-78f8e23cdd4112b9.js +1 -0
  153. package/.next/static/chunks/app/api/roots/[id]/dashboard/route-78f8e23cdd4112b9.js +1 -0
  154. package/.next/static/chunks/app/api/roots/[id]/suggestions/route-78f8e23cdd4112b9.js +1 -0
  155. package/.next/static/chunks/app/api/utilities/[scope]/[id]/bundle.js/route-78f8e23cdd4112b9.js +1 -0
  156. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host/route-78f8e23cdd4112b9.js +1 -0
  157. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host-api.mjs/route-78f8e23cdd4112b9.js +1 -0
  158. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host-ui.mjs/route-78f8e23cdd4112b9.js +1 -0
  159. package/.next/static/chunks/app/api/utilities/[scope]/[id]/iframe/route-78f8e23cdd4112b9.js +1 -0
  160. package/.next/static/chunks/app/api/utilities/[scope]/[id]/style.css/route-78f8e23cdd4112b9.js +1 -0
  161. package/.next/static/chunks/app/api/utilities/install-archive/route-78f8e23cdd4112b9.js +1 -0
  162. package/.next/static/chunks/app/dispatcher/page-78f8e23cdd4112b9.js +1 -0
  163. package/.next/static/chunks/app/layout-186c97c612efcc2b.js +1 -0
  164. package/.next/static/chunks/app/onboarding/page-3917771d56a7020e.js +1 -0
  165. package/.next/static/chunks/app/page-298e012b6af8bfaa.js +1 -0
  166. package/.next/static/chunks/app/roots/[id]/chat/[topicId]/{page-ac80b75a50880fef.js → page-1048058013d15529.js} +1 -1
  167. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-cc4904953269d69c.js +1 -0
  168. package/.next/static/chunks/app/roots/[id]/layout-78f8e23cdd4112b9.js +1 -0
  169. package/.next/static/chunks/app/roots/[id]/memory/{page-ae9c453a059a7c48.js → page-ba0c5cfb119f3d9f.js} +1 -1
  170. package/.next/static/chunks/app/roots/[id]/page-dad905d102ac2cdd.js +1 -0
  171. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-5248846e8f56270e.js +1 -0
  172. package/.next/static/chunks/app/roots/[id]/workflows/page-4ca8b986a2441bb6.js +1 -0
  173. package/.next/static/chunks/app/roots/new/{page-530bbb61fefeadc8.js → page-6d42e9ea5d2274c0.js} +1 -1
  174. package/.next/static/chunks/app/settings/page-7478ef9e4699d815.js +1 -0
  175. package/.next/static/chunks/app/share/[id]/page-f6c7d5ecdade71e6.js +1 -0
  176. package/.next/static/chunks/app/utilities/[scope]/[id]/page-4a0895c7ccc143ff.js +1 -0
  177. package/.next/static/chunks/app/utilities/page-35a987453b809462.js +1 -0
  178. package/.next/static/chunks/{webpack-bf73daacb1b20997.js → webpack-9a901eb0ce37db73.js} +1 -1
  179. package/.next/static/lsd-85A_MGaBztIdQYLgO/_buildManifest.js +1 -0
  180. package/.next/trace +90 -90
  181. package/.next/types/app/dispatcher/page.ts +84 -0
  182. package/.next/types/routes.d.ts +2 -1
  183. package/.next/types/validator.ts +9 -0
  184. package/package.json +1 -1
  185. package/.next/server/chunks/2258.js +0 -1
  186. package/.next/server/chunks/3966.js +0 -1
  187. package/.next/server/chunks/4201.js +0 -3
  188. package/.next/server/chunks/8133.js +0 -1
  189. package/.next/server/chunks/8309.js +0 -4
  190. package/.next/static/1JOww-AoS7M9R4-h4i1EK/_buildManifest.js +0 -1
  191. package/.next/static/chunks/1807-29ed83a7f19aa21e.js +0 -1
  192. package/.next/static/chunks/3908-7e7f22cd1d3c47ed.js +0 -1
  193. package/.next/static/chunks/4108.1e51cb6f9a9638b0.js +0 -1
  194. package/.next/static/chunks/6559-329fd074773ef4f2.js +0 -1
  195. package/.next/static/chunks/app/api/agents/[agentId]/respond/route-5d0cd3b754198853.js +0 -1
  196. package/.next/static/chunks/app/api/images/[rootId]/[file]/route-5d0cd3b754198853.js +0 -1
  197. package/.next/static/chunks/app/api/oauth/callback/route-5d0cd3b754198853.js +0 -1
  198. package/.next/static/chunks/app/api/oauth/start/route-5d0cd3b754198853.js +0 -1
  199. package/.next/static/chunks/app/api/roots/[id]/attachments/route-5d0cd3b754198853.js +0 -1
  200. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/send/route-5d0cd3b754198853.js +0 -1
  201. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/stop/route-5d0cd3b754198853.js +0 -1
  202. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/stream/route-5d0cd3b754198853.js +0 -1
  203. package/.next/static/chunks/app/api/roots/[id]/dashboard/route-5d0cd3b754198853.js +0 -1
  204. package/.next/static/chunks/app/api/roots/[id]/suggestions/route-5d0cd3b754198853.js +0 -1
  205. package/.next/static/chunks/app/api/utilities/[scope]/[id]/bundle.js/route-5d0cd3b754198853.js +0 -1
  206. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host/route-5d0cd3b754198853.js +0 -1
  207. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host-api.mjs/route-5d0cd3b754198853.js +0 -1
  208. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host-ui.mjs/route-5d0cd3b754198853.js +0 -1
  209. package/.next/static/chunks/app/api/utilities/[scope]/[id]/iframe/route-5d0cd3b754198853.js +0 -1
  210. package/.next/static/chunks/app/api/utilities/[scope]/[id]/style.css/route-5d0cd3b754198853.js +0 -1
  211. package/.next/static/chunks/app/api/utilities/install-archive/route-5d0cd3b754198853.js +0 -1
  212. package/.next/static/chunks/app/layout-0385fc4c09255a22.js +0 -1
  213. package/.next/static/chunks/app/onboarding/page-e49a9a7a81bdc74e.js +0 -1
  214. package/.next/static/chunks/app/page-d11913f531a6920e.js +0 -1
  215. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-30c5a6767d469a99.js +0 -1
  216. package/.next/static/chunks/app/roots/[id]/layout-5d0cd3b754198853.js +0 -1
  217. package/.next/static/chunks/app/roots/[id]/page-074640697b6db60a.js +0 -1
  218. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-6e23d0a8b8bc570b.js +0 -1
  219. package/.next/static/chunks/app/roots/[id]/workflows/page-2a7d5c4f49b41e14.js +0 -1
  220. package/.next/static/chunks/app/settings/page-3b79c11349d439b5.js +0 -1
  221. package/.next/static/chunks/app/share/[id]/page-b5e74b24b29e3918.js +0 -1
  222. package/.next/static/chunks/app/utilities/[scope]/[id]/page-ec338e725c434ecd.js +0 -1
  223. package/.next/static/chunks/app/utilities/page-fb110c605c6dedb6.js +0 -1
  224. /package/.next/static/{1JOww-AoS7M9R4-h4i1EK → lsd-85A_MGaBztIdQYLgO}/_ssgManifest.js +0 -0
@@ -1,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,
@@ -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)}})}};