reflex-agent 0.7.1 → 0.9.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 (167) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +97 -97
  3. package/.next/app-path-routes-manifest.json +9 -9
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +7 -7
  6. package/.next/react-loadable-manifest.json +1 -1
  7. package/.next/server/app/_not-found/page.js +2 -2
  8. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  9. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/agents/[agentId]/page.js +3 -3
  11. package/.next/server/app/agents/[agentId]/page.js.nft.json +1 -1
  12. package/.next/server/app/agents/[agentId]/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/agents/[agentId]/respond/route.js +2 -2
  14. package/.next/server/app/api/agents/[agentId]/respond/route.js.nft.json +1 -1
  15. package/.next/server/app/api/agents/[agentId]/respond/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/images/[rootId]/[file]/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/oauth/start/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/roots/[id]/attachments/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route.js +2 -2
  21. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route.js.nft.json +1 -1
  22. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route.js +2 -2
  24. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route.js.nft.json +1 -1
  25. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route.js +3 -3
  27. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route.js.nft.json +1 -1
  28. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/roots/[id]/dashboard/route.js +1 -1
  30. package/.next/server/app/api/roots/[id]/dashboard/route.js.nft.json +1 -1
  31. package/.next/server/app/api/roots/[id]/dashboard/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/roots/[id]/suggestions/route.js +1 -1
  33. package/.next/server/app/api/roots/[id]/suggestions/route.js.nft.json +1 -1
  34. package/.next/server/app/api/roots/[id]/suggestions/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/utilities/[scope]/[id]/bundle.js/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/utilities/[scope]/[id]/host/route.js +2 -2
  37. package/.next/server/app/api/utilities/[scope]/[id]/host/route.js.nft.json +1 -1
  38. package/.next/server/app/api/utilities/[scope]/[id]/host/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/utilities/[scope]/[id]/host-api.mjs/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/utilities/[scope]/[id]/host-ui.mjs/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/utilities/[scope]/[id]/iframe/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/utilities/[scope]/[id]/style.css/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/audit/page.js +1 -1
  44. package/.next/server/app/audit/page.js.nft.json +1 -1
  45. package/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/onboarding/page.js +3 -3
  47. package/.next/server/app/onboarding/page.js.nft.json +1 -1
  48. package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  49. package/.next/server/app/page.js +3 -2
  50. package/.next/server/app/page.js.nft.json +1 -1
  51. package/.next/server/app/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app/roots/[id]/chat/[topicId]/page.js +2 -2
  53. package/.next/server/app/roots/[id]/chat/[topicId]/page.js.nft.json +1 -1
  54. package/.next/server/app/roots/[id]/chat/[topicId]/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/roots/[id]/kb/[...slug]/page.js +2 -2
  56. package/.next/server/app/roots/[id]/kb/[...slug]/page.js.nft.json +1 -1
  57. package/.next/server/app/roots/[id]/kb/[...slug]/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/roots/[id]/page.js +11 -3
  59. package/.next/server/app/roots/[id]/page.js.nft.json +1 -1
  60. package/.next/server/app/roots/[id]/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/roots/[id]/workflows/[wfId]/page.js +2 -2
  62. package/.next/server/app/roots/[id]/workflows/[wfId]/page.js.nft.json +1 -1
  63. package/.next/server/app/roots/[id]/workflows/[wfId]/page_client-reference-manifest.js +1 -1
  64. package/.next/server/app/roots/[id]/workflows/page.js +1 -1
  65. package/.next/server/app/roots/[id]/workflows/page.js.nft.json +1 -1
  66. package/.next/server/app/roots/[id]/workflows/page_client-reference-manifest.js +1 -1
  67. package/.next/server/app/roots/new/page.js +3 -3
  68. package/.next/server/app/roots/new/page.js.nft.json +1 -1
  69. package/.next/server/app/roots/new/page_client-reference-manifest.js +1 -1
  70. package/.next/server/app/settings/page.js +5 -5
  71. package/.next/server/app/settings/page.js.nft.json +1 -1
  72. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  73. package/.next/server/app/share/[id]/file/page.js +2 -2
  74. package/.next/server/app/share/[id]/file/page.js.nft.json +1 -1
  75. package/.next/server/app/share/[id]/file/page_client-reference-manifest.js +1 -1
  76. package/.next/server/app/share/[id]/page.js +2 -2
  77. package/.next/server/app/share/[id]/page.js.nft.json +1 -1
  78. package/.next/server/app/share/[id]/page_client-reference-manifest.js +1 -1
  79. package/.next/server/app/utilities/[scope]/[id]/page.js +2 -2
  80. package/.next/server/app/utilities/[scope]/[id]/page.js.nft.json +1 -1
  81. package/.next/server/app/utilities/[scope]/[id]/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app/utilities/page.js +2 -2
  83. package/.next/server/app/utilities/page.js.nft.json +1 -1
  84. package/.next/server/app/utilities/page_client-reference-manifest.js +1 -1
  85. package/.next/server/app-paths-manifest.json +9 -9
  86. package/.next/server/chunks/1105.js +1 -1
  87. package/.next/server/chunks/126.js +4 -0
  88. package/.next/server/chunks/{3152.js → 1358.js} +1 -1
  89. package/.next/server/chunks/1769.js +4 -0
  90. package/.next/server/chunks/2485.js +2 -2
  91. package/.next/server/chunks/2787.js +1 -0
  92. package/.next/server/chunks/285.js +154 -50
  93. package/.next/server/chunks/3325.js +1 -0
  94. package/.next/server/chunks/3332.js +1 -1
  95. package/.next/server/chunks/{6266.js → 3662.js} +1 -1
  96. package/.next/server/chunks/3834.js +1 -0
  97. package/.next/server/chunks/4031.js +2 -2
  98. package/.next/server/chunks/4315.js +3 -0
  99. package/.next/server/chunks/4334.js +1 -0
  100. package/.next/server/chunks/4812.js +1 -1
  101. package/.next/server/chunks/4863.js +1 -1
  102. package/.next/server/chunks/4925.js +1 -1
  103. package/.next/server/chunks/6038.js +1 -1
  104. package/.next/server/chunks/6060.js +1 -0
  105. package/.next/server/chunks/6796.js +1 -0
  106. package/.next/server/chunks/7220.js +1 -0
  107. package/.next/server/chunks/{6909.js → 7358.js} +154 -50
  108. package/.next/server/chunks/8576.js +7 -0
  109. package/.next/server/chunks/9098.js +1 -1
  110. package/.next/server/chunks/9179.js +7 -0
  111. package/.next/server/chunks/9897.js +4 -0
  112. package/.next/server/functions-config-manifest.json +2 -2
  113. package/.next/server/middleware-build-manifest.js +1 -1
  114. package/.next/server/middleware-manifest.json +5 -5
  115. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  116. package/.next/server/pages/500.html +1 -1
  117. package/.next/server/server-reference-manifest.js +1 -1
  118. package/.next/server/server-reference-manifest.json +1 -1
  119. package/.next/static/chunks/1160-65b58f7f28665195.js +1 -0
  120. package/.next/static/chunks/2658-cc99fd9ba2a00562.js +1 -0
  121. package/.next/static/chunks/4108.9f8cc28a75365b81.js +1 -0
  122. package/.next/static/chunks/5009-9a5e431b79b6d31a.js +1 -0
  123. package/.next/static/chunks/6525-6a879c1bae21d76b.js +1 -0
  124. package/.next/static/chunks/9129-2656848b2540e05d.js +1 -0
  125. package/.next/static/chunks/app/layout-ad875f9d0eb94653.js +1 -0
  126. package/.next/static/chunks/app/onboarding/{page-bbd13228685e577f.js → page-9dd30a7cc94ad562.js} +1 -1
  127. package/.next/static/chunks/app/page-28756fb2874347a0.js +1 -0
  128. package/.next/static/chunks/app/roots/[id]/chat/[topicId]/page-5cbee36c42e841cd.js +1 -0
  129. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-4ef320e1d42925da.js +1 -0
  130. package/.next/static/chunks/app/roots/[id]/page-130496cce12e4d65.js +1 -0
  131. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-a7985128904fb885.js +1 -0
  132. package/.next/static/chunks/app/roots/new/page-ab8f40cf85744a4f.js +1 -0
  133. package/.next/static/chunks/app/settings/page-0e912af785eefc49.js +1 -0
  134. package/.next/static/chunks/app/share/[id]/page-aaabf42daed89c53.js +1 -0
  135. package/.next/static/chunks/app/utilities/[scope]/[id]/page-fc19e1ed2c5b6d91.js +1 -0
  136. package/.next/static/chunks/app/utilities/page-6d361b43b2b8997c.js +1 -0
  137. package/.next/static/chunks/{webpack-18930958151e32fe.js → webpack-0eaa6fc269024b97.js} +1 -1
  138. package/.next/static/css/2bc00775af31f40f.css +1 -0
  139. package/.next/trace +89 -89
  140. package/dist/lib/reflex/agents/prompts.js +105 -0
  141. package/dist/lib/reflex/agents/prompts.js.map +1 -1
  142. package/package.json +1 -1
  143. package/.next/server/chunks/1314.js +0 -1
  144. package/.next/server/chunks/5276.js +0 -3
  145. package/.next/server/chunks/5871.js +0 -1
  146. package/.next/server/chunks/62.js +0 -1
  147. package/.next/server/chunks/9249.js +0 -4
  148. package/.next/static/chunks/1000-49ad093733e70f09.js +0 -1
  149. package/.next/static/chunks/1226-fd290816f32913c2.js +0 -1
  150. package/.next/static/chunks/4108.5dbd5b779fea2993.js +0 -1
  151. package/.next/static/chunks/5771-202f27993722fa17.js +0 -1
  152. package/.next/static/chunks/7124-34b05243f6c43a12.js +0 -1
  153. package/.next/static/chunks/7529-acb1a406a593e6cf.js +0 -1
  154. package/.next/static/chunks/app/layout-f72fb9bc2ee5b6a2.js +0 -1
  155. package/.next/static/chunks/app/page-a617e1a2eaabe4af.js +0 -1
  156. package/.next/static/chunks/app/roots/[id]/chat/[topicId]/page-d6ef0d1004f68749.js +0 -1
  157. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-abb5340574dfb7f1.js +0 -1
  158. package/.next/static/chunks/app/roots/[id]/page-b5d8b67b53874827.js +0 -1
  159. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-7ab7e51fa775b34e.js +0 -1
  160. package/.next/static/chunks/app/roots/new/page-8bd0f9cdda3e8174.js +0 -1
  161. package/.next/static/chunks/app/settings/page-b164636cbad34025.js +0 -1
  162. package/.next/static/chunks/app/share/[id]/page-958eed5784f7cc92.js +0 -1
  163. package/.next/static/chunks/app/utilities/[scope]/[id]/page-4383ad50c38434ad.js +0 -1
  164. package/.next/static/chunks/app/utilities/page-ff028844ad2820cd.js +0 -1
  165. package/.next/static/css/c46d970256fc7904.css +0 -1
  166. /package/.next/static/{mc0TeBBP3_H8uf7oGZRzW → MBVnqa0-K_3N0C89I_I5d}/_buildManifest.js +0 -0
  167. /package/.next/static/{mc0TeBBP3_H8uf7oGZRzW → MBVnqa0-K_3N0C89I_I5d}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
- "use strict";exports.id=2485,exports.ids=[2485],exports.modules={11178:(a,b,c)=>{c.d(b,{CA:()=>j,IK:()=>n,RP:()=>k,dj:()=>l,xO:()=>m});var d=c(73024),e=c(76760),f=c.n(e),g=c(30192),h=c.n(g),i=c(13474);async function j(a){let b=(0,i.FF)(a);return o(b,b)}async function k(a){let b=(0,i.FF)(a);try{let a=await o(b,b),c=a.reduce((a,b)=>a+b.size,0);return{exists:!0,fileCount:a.length,totalBytes:c}}catch{return{exists:!1,fileCount:0,totalBytes:0}}}async function l(a){let b=await j(a);return await Promise.all(b.map(async a=>({...a,meta:await p(a.abs)})))}async function m(a){return p(a)}async function n(a,b){let c=(0,i.FF)(a),e=f().resolve(c,b),g=f().relative(c,e);if(g.startsWith("..")||f().isAbsolute(g))throw Error(`Refused to read outside ${i.fW}: ${b}`);return d.promises.readFile(e,"utf8")}async function o(a,b){let c;try{c=await d.promises.readdir(b,{withFileTypes:!0})}catch{return[]}let e=[],g=[];for(let d of c){let c=f().join(b,d.name);if(d.isDirectory()){if(b===a&&"topics"===d.name)continue;e.push(o(a,c));continue}d.isFile()&&d.name.toLowerCase().endsWith(".md")&&g.push({rel:f().relative(a,c).split(f().sep).join("/"),abs:c,size:0,modifiedAt:""})}let h=await Promise.all(g.map(async a=>{try{let b=await d.promises.stat(a.abs);return{...a,size:b.size,modifiedAt:b.mtime.toISOString()}}catch{return a}}));for(let a of(await Promise.all(e)))h.push(...a);return h.sort((a,b)=>a.rel.localeCompare(b.rel)),h}async function p(a){try{let b=await d.promises.readFile(a,"utf8"),c=h()(b).data;return{...void 0!==q(c.title)?{title:q(c.title)}:{},...void 0!==r(c.version)?{version:r(c.version)}:{},...void 0!==q(c.date)?{date:q(c.date)}:{},...void 0!==q(c.kind)?{kind:q(c.kind)}:{},data:c}}catch{return{data:{}}}}function q(a){return"string"==typeof a?a:a instanceof Date?a.toISOString().slice(0,10):void 0}function r(a){if("string"==typeof a||"number"==typeof a)return a}},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:()=>p});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(24576),n=c(17640),o=a([j]);j=(o.then?(await o)():o)[0];let U=h.Ik({task:h.k5(["chat","quick","rag","embed"]).default("quick"),prompt:h.Yj().min(1),model:h.Yj().optional()}),V=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()}),W=h.Ik({kind:h.Yj().optional(),query:h.Yj().optional(),rootId:h.Yj().optional()}),X=h.Ik({relPath:h.Yj().min(1),rootId:h.Yj().optional()}),Y=h.Ik({path:h.Yj().min(1),content:h.Yj().optional()}),Z=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()}),$=h.Ik({query:h.Yj().min(1).max(512)}),_=h.Ik({type:h.Yj().min(1).max(64),payload:h.L5().optional()}),aa=h.Ik({server:h.Yj().min(1).optional(),tool:h.Yj().min(1),args:h.g1(h.Yj(),h.L5()).default({})}),ab=h.Ik({server:h.Yj().min(1).optional()}),ac=h.Ik({key:h.Yj().min(1)}),ad=h.Ik({name:h.Yj().min(1),args:h.L5().optional()}),ae=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()}),af=h.Ik({rootId:h.Yj().optional()}),ag=h.Ik({workflowId:h.Yj().min(1),rootId:h.Yj().optional()}),ah=h.Ik({workflowId:h.Yj().min(1),rootId:h.Yj().optional(),input:h.L5().optional()}),ai=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()}),aj=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()}),ak=h.Ik({sourceUrl:h.Yj().url(),rootId:h.Yj().optional()}),al=h.Ik({source:h.Yj().min(1).max(2e4)}),am=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()}),an=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"]),title:h.Yj().optional(),description:h.Yj().optional(),data:h.g1(h.Yj(),h.L5()).default({})}),rootId:h.Yj().optional()});async function p(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 w(a,U.parse(c));case"kb.add":return x(a,V.parse(c));case"kb.list":return y(a,W.parse(c));case"kb.read":return z(a,X.parse(c));case"fs.read":return B(a,Y.parse(c));case"fs.write":return C(a,Y.parse(c));case"fs.list":return D(a,Y.parse(c));case"web.fetch":return E(a,Z.parse(c));case"web.search":return F(a,$.parse(c));case"audit.log":return G(a,_.parse(c),d);case"actions.invoke":return H(a,ad.parse(c),d);case"mcp.call":return t(a,aa.parse(c));case"mcp.listServers":return u(a);case"mcp.listTools":return v(a,ab.parse(c));case"secrets.get":return q(a,ac.parse(c));case"secrets.list":return r(a);case"agent.invoke":return I(a,ae.parse(c));case"workflow.list":return J(a,af.parse(c));case"workflow.read":return K(a,ag.parse(c));case"workflow.run":return L(a,ah.parse(c));case"cards.update":return M(a,an.parse(c));case"images.generate":return N(a,ai.parse(c));case"images.search":return O(a,aj.parse(c));case"images.attach":return P(a,ak.parse(c));case"images.pickBest":return Q(a,am.parse(c));case"mermaid.validate":return T(a,al.parse(c));default:throw Error(`Unknown host method: ${b}`)}})}async function q(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 r(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 s(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 t(a,b){let{config:d,serverId:e}=await s(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 u(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 v(a,b){let{config:d,serverId:e}=await s(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 w(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.llm?.tasks?.includes(b.task),`llm.${b.task} not granted in manifest`);let c={...(await (0,n.M)()).assignments[b.task],...b.model?{model:b.model}:{}};return{text:await (0,j.T)(c,b.prompt,{timeoutMs:6e4})}}async function x(a,b){if(R(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 S(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 y(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.kb?.read,"kb.read not granted");let c=await S(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 z(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.kb?.read,"kb.read not granted");let c=await S(a,b.rootId);return{content:await (0,l.IK)(c.path,b.relPath)}}function A(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 B(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.fs?.sandbox,"fs not granted");let c=A(a,b.path);return{content:await e.promises.readFile(c,"utf8")}}async function C(a,b){if(R(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=A(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 D(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.fs?.sandbox,"fs not granted");let c=A(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 E(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 F(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.web?.search,"web.search not granted");let c=await (0,n.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:()=>p});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(24576),n=c(17640),o=a([j]);j=(o.then?(await o)():o)[0];let ah=h.Ik({task:h.k5(["chat","quick","rag","embed"]).default("quick"),prompt:h.Yj().min(1),model:h.Yj().optional()}),ai=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()}),aj=h.Ik({kind:h.Yj().optional(),query:h.Yj().optional(),rootId:h.Yj().optional()}),ak=h.Ik({relPath:h.Yj().min(1),rootId:h.Yj().optional()}),al=h.Ik({path:h.Yj().min(1),content:h.Yj().optional()}),am=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()}),an=h.Ik({query:h.Yj().min(1).max(512)}),ao=h.Ik({type:h.Yj().min(1).max(64),payload:h.L5().optional()}),ap=h.Ik({server:h.Yj().min(1).optional(),tool:h.Yj().min(1),args:h.g1(h.Yj(),h.L5()).default({})}),aq=h.Ik({server:h.Yj().min(1).optional()}),ar=h.Ik({key:h.Yj().min(1)}),as=h.Ik({name:h.Yj().min(1),args:h.L5().optional()}),at=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()}),au=h.Ik({rootId:h.Yj().optional()}),av=h.Ik({workflowId:h.Yj().min(1),rootId:h.Yj().optional()}),aw=h.Ik({workflowId:h.Yj().min(1),rootId:h.Yj().optional(),input:h.L5().optional()}),ax=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()}),ay=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()}),az=h.Ik({sourceUrl:h.Yj().url(),rootId:h.Yj().optional()}),aA=h.Ik({source:h.Yj().min(1).max(2e4)}),aB=h.Ik({kind:h.k5(["workflow","chat"]),id:h.Yj().optional(),prompt:h.Yj().optional()}).strict(),aC=h.Ik({kind:h.k5(["image","text","file"]),file:h.Yj().min(1).max(500),caption:h.Yj().max(500).optional()}).strict(),aD=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(aB).default([]),post:h.YO(aB).default([]),attachments:h.YO(aC).default([])}),aE=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(aB).optional(),post:h.YO(aB).optional(),attachments:h.YO(aC).optional()}).default({})}),aF=h.Ik({id:h.Yj().min(1)}),aG=h.Ik({id:h.Yj().min(1),harness:h.Yj().optional(),model:h.Yj().optional()}),aH=h.Ik({id:h.Yj().min(1),outcome:h.k5(["done","review","blocked"])}),aI=h.Ik({branch:h.Yj().min(1),intoRef:h.Yj().optional()}),aJ=h.Ik({slug:h.Yj().min(1),branch:h.Yj().min(1),force:h.zM().default(!1),deleteBranch:h.zM().default(!0)}),aK=h.Ik({slug:h.Yj().min(1),branch:h.Yj().min(1),baseRef:h.Yj().optional()}),aL=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()}),aM=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"]),title:h.Yj().optional(),description:h.Yj().optional(),data:h.g1(h.Yj(),h.L5()).default({})}),rootId:h.Yj().optional()});async function p(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 w(a,ah.parse(c));case"kb.add":return x(a,ai.parse(c));case"kb.list":return y(a,aj.parse(c));case"kb.read":return z(a,ak.parse(c));case"fs.read":return B(a,al.parse(c));case"fs.write":return C(a,al.parse(c));case"fs.list":return D(a,al.parse(c));case"web.fetch":return E(a,am.parse(c));case"web.search":return F(a,an.parse(c));case"audit.log":return G(a,ao.parse(c),d);case"actions.invoke":return H(a,as.parse(c),d);case"mcp.call":return t(a,ap.parse(c));case"mcp.listServers":return u(a);case"mcp.listTools":return v(a,aq.parse(c));case"secrets.get":return q(a,ar.parse(c));case"secrets.list":return r(a);case"agent.invoke":return I(a,at.parse(c));case"workflow.list":return J(a,au.parse(c));case"workflow.read":return K(a,av.parse(c));case"workflow.run":return L(a,aw.parse(c));case"cards.update":return M(a,aM.parse(c));case"images.generate":return N(a,ax.parse(c));case"images.search":return O(a,ay.parse(c));case"images.attach":return P(a,az.parse(c));case"images.pickBest":return Q(a,aL.parse(c));case"mermaid.validate":return T(a,aA.parse(c));case"tasks.create":return U(a,aD.parse(c));case"tasks.update":return V(a,aE.parse(c));case"tasks.delete":return W(a,aF.parse(c));case"tasks.get":return X(a,aF.parse(c));case"tasks.list":return Y(a);case"tasks.dispatch":return Z(a,aG.parse(c));case"tasks.observe":return $(a,aF.parse(c));case"tasks.complete":return _(a,aH.parse(c));case"git.isRepo":return aa(a);case"git.hasRemote":return ab(a);case"git.hasGhCli":return ac();case"git.worktree.create":return ad(a,aK.parse(c));case"git.worktree.merge":return ae(a,aI.parse(c));case"git.worktree.remove":return af(a,aJ.parse(c));case"git.worktree.list":return ag(a);default:throw Error(`Unknown host method: ${b}`)}})}async function q(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 r(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 s(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 t(a,b){let{config:d,serverId:e}=await s(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 u(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 v(a,b){let{config:d,serverId:e}=await s(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 w(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.llm?.tasks?.includes(b.task),`llm.${b.task} not granted in manifest`);let c={...(await (0,n.M)()).assignments[b.task],...b.model?{model:b.model}:{}};return{text:await (0,j.T)(c,b.prompt,{timeoutMs:6e4})}}async function x(a,b){if(R(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 S(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 y(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.kb?.read,"kb.read not granted");let c=await S(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 z(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.kb?.read,"kb.read not granted");let c=await S(a,b.rootId);return{content:await (0,l.IK)(c.path,b.relPath)}}function A(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 B(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.fs?.sandbox,"fs not granted");let c=A(a,b.path);return{content:await e.promises.readFile(c,"utf8")}}async function C(a,b){if(R(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=A(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 D(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.fs?.sandbox,"fs not granted");let c=A(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 E(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 F(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.web?.search,"web.search not granted");let c=await (0,n.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.
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 G(a,b,c){return R(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 H(a,b,d){if("worker"===a.channel)throw Error("actions.invoke can only be called from the UI iframe, not from inside a worker");R(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 I(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.agent?.invoke,"agent.invoke not granted");let d=await S(a,b.rootId),{runHeadlessAgent:e}=await Promise.all([c.e(9631),c.e(6909),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 J(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.workflow?.read,"workflow.read not granted");let d=await S(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 K(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.workflow?.read,"workflow.read not granted");let d=await S(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 L(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.workflow?.run,"workflow.run not granted");let d=await S(a,b.rootId),{runWorkflow:e}=await Promise.all([c.e(9631),c.e(6909),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 M(a,b){let d=await S(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 N(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.images?.generate,"images.generate not granted");let d=await S(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 O(a,b){R(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 P(a,b){if(R(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 S(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 Q(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.images?.search,"images.pickBest requires images.search permission");let d=await S(a,b.rootId),{pickBestImage:e}=await Promise.all([c.e(9631),c.e(6909),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 R(a,b,c){if(!b)throw Error(`permission denied: ${c}`)}async function S(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,m.Zn)(c);if(!d)throw Error(`unknown rootId: ${c}`);return{id:d.id,path:d.path}}let ao=null;async function T(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(!ao){let a=await c.e(6038).then(c.bind(c,26038)),b=a.default?.parse??a.parse;if("function"!=typeof b)return{ok:!0};ao=b.bind(a.default??a)}return await ao(d),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}d()}catch(a){d(a)}})}};
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 G(a,b,c){return R(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 H(a,b,d){if("worker"===a.channel)throw Error("actions.invoke can only be called from the UI iframe, not from inside a worker");R(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 I(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.agent?.invoke,"agent.invoke not granted");let d=await S(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 J(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.workflow?.read,"workflow.read not granted");let d=await S(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 K(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.workflow?.read,"workflow.read not granted");let d=await S(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 L(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.workflow?.run,"workflow.run not granted");let d=await S(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 M(a,b){let d=await S(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 N(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.images?.generate,"images.generate not granted");let d=await S(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 O(a,b){R(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 P(a,b){if(R(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 S(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 Q(a,b){R(a.utility.manifest,!!a.utility.manifest.permissions.images?.search,"images.pickBest requires images.search permission");let d=await S(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 R(a,b,c){if(!b)throw Error(`permission denied: ${c}`)}async function S(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,m.Zn)(c);if(!d)throw Error(`unknown rootId: ${c}`);return{id:d.id,path:d.path}}let aN=null;async function T(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(!aN){let a=await c.e(6038).then(c.bind(c,26038)),b=a.default?.parse??a.parse;if("function"!=typeof b)return{ok:!0};aN=b.bind(a.default??a)}return await aN(d),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function U(a,b){let{path:d}=await S(a),{createTask:e}=await c.e(2787).then(c.bind(c,2787));return{id:(await e(d,b)).id}}async function V(a,b){let{path:d}=await S(a),{updateTask:e}=await c.e(2787).then(c.bind(c,2787));return{ok:!!await e(d,b.id,b.patch)}}async function W(a,b){let{path:d}=await S(a),{deleteTask:e}=await c.e(2787).then(c.bind(c,2787));return{ok:await e(d,b.id)}}async function X(a,b){let{path:d}=await S(a),{getTask:e}=await c.e(2787).then(c.bind(c,2787));return e(d,b.id)}async function Y(a){let{path:b}=await S(a),{listTasks:d}=await c.e(2787).then(c.bind(c,2787));return{tasks:await d(b)}}async function Z(a,b){let{id:d}=await S(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 S(a),{observeTask:e}=await c.e(3834).then(c.bind(c,63834));return e({rootId:d,taskId:b.id})}async function _(a,b){let{path:d}=await S(a),{updateTask:e}=await c.e(2787).then(c.bind(c,2787));return{ok:!!await e(d,b.id,{status:b.outcome})}}async function aa(a){let{path:b}=await S(a),{isGitRepo:d}=await c.e(1769).then(c.bind(c,11769));return{ok:await d(b)}}async function ab(a){let{path:b}=await S(a),{hasRemote:d}=await c.e(1769).then(c.bind(c,11769));return{ok:await d(b)}}async function ac(){let{hasGhCli:a}=await c.e(1769).then(c.bind(c,11769));return{ok:await a()}}async function ad(a,b){let{path:d}=await S(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 ae(a,b){let{path:d}=await S(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 af(a,b){let{path:d}=await S(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 ag(a){let{path:b}=await S(a),{listWorktrees:d}=await c.e(1769).then(c.bind(c,11769));return{worktrees:await d(b)}}d()}catch(a){d(a)}})}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=2787,exports.ids=[2787],exports.modules={2787:(a,b,c)=>{c.d(b,{createTask:()=>o,deleteTask:()=>s,getTask:()=>q,listTasks:()=>p,updateTask:()=>r});var d=c(73024),e=c(76760),f=c.n(e),g=c(77598),h=c.n(g),i=c(30192),j=c.n(i),k=c(13474),l=c(11178),m=c(75207);let n="task";async function o(a,b){let c=`t-${h().randomBytes(4).toString("hex")}`,e=b.title.normalize("NFKD").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60)||c,g=new Date().toISOString().slice(0,10),i=`${g}-${e}.md`,j=f().join((0,k.FF)(a),n);await d.promises.mkdir(j,{recursive:!0});let l=await v(j,i),m={id:c,title:b.title.trim(),type:b.type??"feature",status:b.status??"backlog",priority:b.priority??"normal",labels:b.labels??[],assignee:b.assignee??null,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),topicId:null,agentRequested:null,worktree:null,links:b.links??{},parent:b.parent??null,pre:b.pre??[],post:b.post??[],attachments:b.attachments??[],relPath:f().relative((0,k.FF)(a),l).split(f().sep).join("/"),body:(b.body??"").trim()};return await u(l,m),m}async function p(a){let b=await (0,l.dj)(a).catch(()=>[]),c=[];for(let d of b){if(d.meta.kind!==n)continue;let b=await t(d.abs,a).catch(()=>null);b&&c.push(b)}return c.sort((a,b)=>a.updatedAt<b.updatedAt?1:-1),c}async function q(a,b){return(await p(a)).find(a=>a.id===b)??null}async function r(a,b,c){let d=await q(a,b);if(!d)return null;let e=f().join((0,k.FF)(a),d.relPath),g={...d,...c,updatedAt:new Date().toISOString()};return await u(e,g),g}async function s(a,b){let c=await q(a,b);if(!c)return!1;let e=f().join((0,k.FF)(a),c.relPath);return await d.promises.rm(e,{force:!0}),!0}async function t(a,b){var c,e,g;let h=await d.promises.readFile(a,"utf8"),i=j()(h),l=i.data,n="string"==typeof l.id?l.id:null,o="string"==typeof l.title?l.title:null;if(!n||!o)return null;let p=f().relative((0,k.FF)(b),a).split(f().sep).join("/");return{id:n,title:o,type:x(l.type,m.ci,"feature"),status:x(l.status,m.Hi,"backlog"),priority:x(l.priority,m.PN,"normal"),labels:Array.isArray(l.labels)?l.labels.map(String):[],assignee:"string"==typeof l.assignee?l.assignee:null,createdAt:"string"==typeof l.createdAt?l.createdAt:new Date().toISOString(),updatedAt:"string"==typeof l.updatedAt?l.updatedAt:new Date().toISOString(),topicId:"string"==typeof l.topicId?l.topicId:null,agentRequested:"string"==typeof l.agentRequested?l.agentRequested:null,worktree:(c=l.worktree)&&"object"==typeof c&&"string"==typeof c.dir&&"string"==typeof c.branch&&"string"==typeof c.baseRef?{dir:c.dir,branch:c.branch,baseRef:c.baseRef}:null,links:(e=l.links)&&"object"==typeof e?{...Array.isArray(e.blocks)?{blocks:e.blocks.map(String)}:{},...Array.isArray(e.blockedBy)?{blockedBy:e.blockedBy.map(String)}:{},...Array.isArray(e.related)?{related:e.related.map(String)}:{}}:{},parent:"string"==typeof l.parent?l.parent:null,pre:y(l.pre),post:y(l.post),attachments:Array.isArray(g=l.attachments)?g.map(a=>{if(!a||"object"!=typeof a)return null;let b=a.kind;return"image"!==b&&"text"!==b&&"file"!==b||"string"!=typeof a.file?null:{kind:b,file:a.file,..."string"==typeof a.caption?{caption:a.caption}:{}}}).filter(a=>!!a):[],relPath:p,body:i.content.trim()}}async function u(a,b){let c={id:b.id,title:b.title,kind:n,type:b.type,status:b.status,priority:b.priority,labels:b.labels,assignee:b.assignee,createdAt:b.createdAt,updatedAt:b.updatedAt,topicId:b.topicId,agentRequested:b.agentRequested,worktree:b.worktree,links:b.links,parent:b.parent,pre:b.pre,post:b.post,attachments:b.attachments},e=b.body.trim(),g=j().stringify(e?e+"\n":"",c);await d.promises.mkdir(f().dirname(a),{recursive:!0}),await d.promises.writeFile(a,g,"utf8")}async function v(a,b){let c=f().extname(b),d=b.slice(0,b.length-c.length),e=f().join(a,b),g=2;for(;await w(e);)e=f().join(a,`${d}-${g}${c}`),g++;return e}async function w(a){try{return await d.promises.stat(a),!0}catch{return!1}}function x(a,b,c){return"string"==typeof a&&b.includes(a)?a:c}function y(a){return Array.isArray(a)?a.map(a=>a&&"object"==typeof a?"workflow"===a.kind&&"string"==typeof a.id?{kind:"workflow",id:a.id}:"chat"===a.kind&&"string"==typeof a.prompt?{kind:"chat",prompt:a.prompt}:null:null).filter(a=>!!a):[]}},75207:(a,b,c)=>{c.d(b,{Hi:()=>e,KT:()=>i,PN:()=>f,Yj:()=>g,ak:()=>j,ci:()=>d,kJ:()=>h});let d=["feature","bug","refactor","docs","chore","research","review","call","idea"],e=["backlog","ready","in-progress","review","done","blocked"],f=["low","normal","high"],g={feature:{isCode:!0},bug:{isCode:!0,defaultSkill:"deep-research"},refactor:{isCode:!0},docs:{isCode:!0},chore:{isCode:!0},research:{isCode:!1,defaultSkill:"deep-research"},review:{isCode:!0},call:{isCode:!1},idea:{isCode:!1}};function h(a){return d.includes(a)}function i(a){return e.includes(a)}function j(a){return f.includes(a)}}};