@qelos/aidev 1.2.0 → 1.3.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 (215) hide show
  1. package/.env.aidev.example +12 -1
  2. package/README.md +23 -6
  3. package/dist/ai/devin.d.ts +7 -0
  4. package/dist/ai/devin.d.ts.map +1 -0
  5. package/dist/ai/devin.js +91 -0
  6. package/dist/ai/devin.js.map +1 -0
  7. package/dist/ai/index.js +2 -2
  8. package/dist/ai/index.js.map +1 -1
  9. package/dist/cli.js +31 -0
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commands/help.js +1 -1
  12. package/dist/commands/help.js.map +1 -1
  13. package/dist/commands/hooks.d.ts +5 -0
  14. package/dist/commands/hooks.d.ts.map +1 -0
  15. package/dist/commands/hooks.js +86 -0
  16. package/dist/commands/hooks.js.map +1 -0
  17. package/dist/commands/init.d.ts +1 -0
  18. package/dist/commands/init.d.ts.map +1 -1
  19. package/dist/commands/init.js +18 -109
  20. package/dist/commands/init.js.map +1 -1
  21. package/dist/commands/run.d.ts +1 -1
  22. package/dist/commands/run.d.ts.map +1 -1
  23. package/dist/commands/run.js +78 -63
  24. package/dist/commands/run.js.map +1 -1
  25. package/dist/commands/schedule.js +2 -2
  26. package/dist/commands/schedule.js.map +1 -1
  27. package/dist/config.d.ts.map +1 -1
  28. package/dist/config.js +8 -1
  29. package/dist/config.js.map +1 -1
  30. package/dist/diagnostics.d.ts.map +1 -1
  31. package/dist/diagnostics.js +1 -2
  32. package/dist/diagnostics.js.map +1 -1
  33. package/dist/hooks.d.ts +18 -0
  34. package/dist/hooks.d.ts.map +1 -1
  35. package/dist/hooks.js +16 -0
  36. package/dist/hooks.js.map +1 -1
  37. package/dist/hooksTemplate.d.ts +14 -0
  38. package/dist/hooksTemplate.d.ts.map +1 -0
  39. package/dist/hooksTemplate.js +274 -0
  40. package/dist/hooksTemplate.js.map +1 -0
  41. package/dist/logger.d.ts +1 -0
  42. package/dist/logger.d.ts.map +1 -1
  43. package/dist/logger.js +32 -0
  44. package/dist/logger.js.map +1 -1
  45. package/dist/platform.d.ts +2 -2
  46. package/dist/platform.js +2 -2
  47. package/dist/safeMode.d.ts +32 -0
  48. package/dist/safeMode.d.ts.map +1 -0
  49. package/dist/safeMode.js +192 -0
  50. package/dist/safeMode.js.map +1 -0
  51. package/dist/types.d.ts +3 -1
  52. package/dist/types.d.ts.map +1 -1
  53. package/package.json +2 -2
  54. package/ui/.output/nitro.json +1 -1
  55. package/ui/.output/public/_nuxt/6wLLp9Nc.js +1 -0
  56. package/ui/.output/public/_nuxt/BGkU0f28.js +1 -0
  57. package/ui/.output/public/_nuxt/BOIhDy_l.js +4 -0
  58. package/ui/.output/public/_nuxt/BWJzzHTi.js +1 -0
  59. package/ui/.output/public/_nuxt/{3LZdFtk_.js → By4xSvKt.js} +3 -3
  60. package/ui/.output/public/_nuxt/ByAMJ0xS.js +1 -0
  61. package/ui/.output/public/_nuxt/C1xk3ymy.js +1 -0
  62. package/ui/.output/public/_nuxt/CBV5GuL6.js +11 -0
  63. package/ui/.output/public/_nuxt/CTtW-0zG.js +1 -0
  64. package/ui/.output/public/_nuxt/CX0vIr0s.js +131 -0
  65. package/ui/.output/public/_nuxt/{LzHPbXPK.js → CYm8nRCj.js} +1 -1
  66. package/ui/.output/public/_nuxt/CdHqKVo4.js +1 -0
  67. package/ui/.output/public/_nuxt/CnXdKLRd.js +16 -0
  68. package/ui/.output/public/_nuxt/Cz9dogwK.js +1 -0
  69. package/ui/.output/public/_nuxt/DGHfexQZ.js +1 -0
  70. package/ui/.output/public/_nuxt/{CWjftssB.js → DOoocm0F.js} +1 -1
  71. package/ui/.output/public/_nuxt/{DZd8Jv5H.js → D_gcbXK2.js} +1 -1
  72. package/ui/.output/public/_nuxt/{CO4XMBYO.js → Dfhp6TEA.js} +11 -11
  73. package/ui/.output/public/_nuxt/{BtD1YBwM.js → G5BjvTWO.js} +1 -1
  74. package/ui/.output/public/_nuxt/H73b_QUy.js +1 -0
  75. package/ui/.output/public/_nuxt/{BMTHyzVP.js → LCoCV2KL.js} +1 -1
  76. package/ui/.output/public/_nuxt/Zrl3Utak.js +1 -0
  77. package/ui/.output/public/_nuxt/config.CaB_F_OT.css +1 -0
  78. package/ui/.output/public/_nuxt/default.D13_FS9T.css +1 -0
  79. package/ui/.output/public/_nuxt/hooks.B03-GWTh.css +1 -0
  80. package/ui/.output/public/_nuxt/kPPYUzXr.js +2 -0
  81. package/ui/.output/public/_nuxt/logs.DLMkvOEl.css +1 -0
  82. package/ui/.output/public/_nuxt/mHp9eItY.js +1 -0
  83. package/ui/.output/public/_nuxt/{BTfAgCfF.js → tyaD1vVi.js} +1 -1
  84. package/ui/.output/public/_nuxt/{BGlShnpS.js → ynXKxjpn.js} +1 -1
  85. package/ui/.output/public/_nuxt/{B8sr5ZW-.js → yqBy-NAR.js} +2 -2
  86. package/ui/.output/server/chunks/_/hooksTemplate.mjs +365 -0
  87. package/ui/.output/server/chunks/_/hooksTemplate.mjs.map +1 -0
  88. package/ui/.output/server/chunks/build/{Badge-YPOjmkfv.mjs → Badge-nNgbDd8N.mjs} +2 -2
  89. package/ui/.output/server/chunks/build/{Badge-YPOjmkfv.mjs.map → Badge-nNgbDd8N.mjs.map} +1 -1
  90. package/ui/.output/server/chunks/build/{Button-CZHl6fpI.mjs → Button-CQZG7w2L.mjs} +117 -3
  91. package/ui/.output/server/chunks/build/Button-CQZG7w2L.mjs.map +1 -0
  92. package/ui/.output/server/chunks/build/{Card--ibiHV_r.mjs → Card-DdEnDTQW.mjs} +2 -2
  93. package/ui/.output/server/chunks/build/{Card--ibiHV_r.mjs.map → Card-DdEnDTQW.mjs.map} +1 -1
  94. package/ui/.output/server/chunks/build/{FormGroup-CX5VmH8y.mjs → FormGroup-BfYiVGgN.mjs} +2 -2
  95. package/ui/.output/server/chunks/build/{FormGroup-CX5VmH8y.mjs.map → FormGroup-BfYiVGgN.mjs.map} +1 -1
  96. package/ui/.output/server/chunks/build/{Input-kmqS1oY_.mjs → Input-Cnk3P_aB.mjs} +5 -60
  97. package/ui/.output/server/chunks/build/Input-Cnk3P_aB.mjs.map +1 -0
  98. package/ui/.output/server/chunks/build/{Modal-DmZs0Ekg.mjs → Modal-DfVO6DJD.mjs} +10 -5
  99. package/ui/.output/server/chunks/build/Modal-DfVO6DJD.mjs.map +1 -0
  100. package/ui/.output/server/chunks/build/{Select-n4_YfXfk.mjs → Select-Dc9_TJIR.mjs} +3 -3
  101. package/ui/.output/server/chunks/build/{Select-n4_YfXfk.mjs.map → Select-Dc9_TJIR.mjs.map} +1 -1
  102. package/ui/.output/server/chunks/build/client.precomputed.mjs +1 -1
  103. package/ui/.output/server/chunks/build/client.precomputed.mjs.map +1 -1
  104. package/ui/.output/server/chunks/build/{config-Bkb2wy7R.mjs → config-BUokZPak.mjs} +78 -58
  105. package/ui/.output/server/chunks/build/config-BUokZPak.mjs.map +1 -0
  106. package/ui/.output/server/chunks/build/config-styles.irltMnuD.mjs +8 -0
  107. package/ui/.output/server/chunks/build/config-styles.irltMnuD.mjs.map +1 -0
  108. package/ui/.output/server/chunks/build/{default-DmD3qBXZ.mjs → default-6TcwTt3p.mjs} +10 -9
  109. package/ui/.output/server/chunks/build/default-6TcwTt3p.mjs.map +1 -0
  110. package/ui/.output/server/chunks/build/default-styles.BqL9zxh4.mjs +8 -0
  111. package/ui/.output/server/chunks/build/default-styles.BqL9zxh4.mjs.map +1 -0
  112. package/ui/.output/server/chunks/build/entry-styles.q-b4rEBh.mjs +11 -0
  113. package/ui/.output/server/chunks/build/entry-styles.q-b4rEBh.mjs.map +1 -0
  114. package/ui/.output/server/chunks/build/hooks-k2ZmlVpA.mjs +4181 -0
  115. package/ui/.output/server/chunks/build/hooks-k2ZmlVpA.mjs.map +1 -0
  116. package/ui/.output/server/chunks/build/hooks-styles.Ddk4F_Gj.mjs +8 -0
  117. package/ui/.output/server/chunks/build/hooks-styles.Ddk4F_Gj.mjs.map +1 -0
  118. package/ui/.output/server/chunks/build/{index-Dy4Tu7MB.mjs → index-DwMIJp2e.mjs} +7 -3
  119. package/ui/.output/server/chunks/build/index-DwMIJp2e.mjs.map +1 -0
  120. package/ui/.output/server/chunks/build/{index-BvfXQQ2n.mjs → index-JLPhao-C.mjs} +5 -5
  121. package/ui/.output/server/chunks/build/{index-BvfXQQ2n.mjs.map → index-JLPhao-C.mjs.map} +1 -1
  122. package/ui/.output/server/chunks/build/{interval-DHZqEf-n.mjs → interval-DPa3fpS0.mjs} +3 -3
  123. package/ui/.output/server/chunks/build/{interval-DHZqEf-n.mjs.map → interval-DPa3fpS0.mjs.map} +1 -1
  124. package/ui/.output/server/chunks/build/{login-B5YkLJCV.mjs → login-D9DpNq3o.mjs} +6 -5
  125. package/ui/.output/server/chunks/build/login-D9DpNq3o.mjs.map +1 -0
  126. package/ui/.output/server/chunks/build/{logs-BvD1Y3HI.mjs → logs-BVuWOSb6.mjs} +49 -31
  127. package/ui/.output/server/chunks/build/logs-BVuWOSb6.mjs.map +1 -0
  128. package/ui/.output/server/chunks/build/logs-styles.C2Mi0JvX.mjs +8 -0
  129. package/ui/.output/server/chunks/build/logs-styles.C2Mi0JvX.mjs.map +1 -0
  130. package/ui/.output/server/chunks/build/{run-BStPkbGg.mjs → run-BVQZSGcX.mjs} +5 -5
  131. package/ui/.output/server/chunks/build/{run-BStPkbGg.mjs.map → run-BVQZSGcX.mjs.map} +1 -1
  132. package/ui/.output/server/chunks/build/{schedule-B2UKsnRW.mjs → schedule-rRz2CwWh.mjs} +10 -9
  133. package/ui/.output/server/chunks/build/schedule-rRz2CwWh.mjs.map +1 -0
  134. package/ui/.output/server/chunks/build/server.mjs +14 -9
  135. package/ui/.output/server/chunks/build/server.mjs.map +1 -1
  136. package/ui/.output/server/chunks/build/styles.mjs +7 -6
  137. package/ui/.output/server/chunks/build/styles.mjs.map +1 -1
  138. package/ui/.output/server/chunks/build/{tasks-DBH3Z6lg.mjs → tasks-DJjZQWcq.mjs} +10 -9
  139. package/ui/.output/server/chunks/build/tasks-DJjZQWcq.mjs.map +1 -0
  140. package/ui/.output/server/chunks/build/{useApi-Bqajqsuz.mjs → useApi-Brbyp7hV.mjs} +3 -3
  141. package/ui/.output/server/chunks/build/useApi-Brbyp7hV.mjs.map +1 -0
  142. package/ui/.output/server/chunks/build/useFormGroup-DqE91r20.mjs +61 -0
  143. package/ui/.output/server/chunks/build/useFormGroup-DqE91r20.mjs.map +1 -0
  144. package/ui/.output/server/chunks/nitro/nitro.mjs +195 -157
  145. package/ui/.output/server/chunks/routes/api/config/test.post.mjs +1 -1
  146. package/ui/.output/server/chunks/routes/api/config/test.post.mjs.map +1 -1
  147. package/ui/.output/server/chunks/routes/api/hooks-execute.post.mjs +83 -0
  148. package/ui/.output/server/chunks/routes/api/hooks-execute.post.mjs.map +1 -0
  149. package/ui/.output/server/chunks/routes/api/hooks-regenerate.post.mjs +30 -0
  150. package/ui/.output/server/chunks/routes/api/hooks-regenerate.post.mjs.map +1 -0
  151. package/ui/.output/server/chunks/routes/api/hooks-update.post.mjs +31 -0
  152. package/ui/.output/server/chunks/routes/api/hooks-update.post.mjs.map +1 -0
  153. package/ui/.output/server/chunks/routes/api/hooks.get.mjs +28 -0
  154. package/ui/.output/server/chunks/routes/api/hooks.get.mjs.map +1 -0
  155. package/ui/.output/server/chunks/routes/api/hooks.put.mjs +32 -0
  156. package/ui/.output/server/chunks/routes/api/hooks.put.mjs.map +1 -0
  157. package/ui/.output/server/chunks/routes/api/logs.get.mjs +7 -2
  158. package/ui/.output/server/chunks/routes/api/logs.get.mjs.map +1 -1
  159. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/_virtual/_rollupPluginBabelHelpers.js +123 -0
  160. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/config/index.js +11 -0
  161. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/index.js +9 -0
  162. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/loader/index.js +175 -0
  163. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/compose.js +16 -0
  164. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/curry.js +20 -0
  165. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/deepMerge.js +18 -0
  166. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/isObject.js +9 -0
  167. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/makeCancelable.js +25 -0
  168. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/validators/index.js +49 -0
  169. package/ui/.output/server/node_modules/@monaco-editor/loader/package.json +51 -0
  170. package/ui/.output/server/node_modules/@tanstack/virtual-core/dist/esm/index.js +1197 -0
  171. package/ui/.output/server/node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js +34 -0
  172. package/ui/.output/server/node_modules/@tanstack/virtual-core/dist/esm/utils.js +74 -0
  173. package/ui/.output/server/node_modules/@tanstack/virtual-core/package.json +56 -0
  174. package/ui/.output/server/node_modules/@tanstack/vue-virtual/dist/esm/index.js +66 -0
  175. package/ui/.output/server/node_modules/@tanstack/vue-virtual/package.json +68 -0
  176. package/ui/.output/server/node_modules/state-local/lib/cjs/state-local.js +195 -0
  177. package/ui/.output/server/node_modules/state-local/package.json +59 -0
  178. package/ui/.output/server/package.json +4 -0
  179. package/ui/package.json +1 -0
  180. package/ui/.output/public/_nuxt/B93YYUZf.js +0 -1
  181. package/ui/.output/public/_nuxt/BAs1isOw.js +0 -1
  182. package/ui/.output/public/_nuxt/BrZL2iQr.js +0 -1
  183. package/ui/.output/public/_nuxt/Bv6Ws9vz.js +0 -1
  184. package/ui/.output/public/_nuxt/C2WdrjFS.js +0 -1
  185. package/ui/.output/public/_nuxt/CVTgFccA.js +0 -2
  186. package/ui/.output/public/_nuxt/Ceb2855t.js +0 -1
  187. package/ui/.output/public/_nuxt/Cg55PjEy.js +0 -4
  188. package/ui/.output/public/_nuxt/D0ZgktSu.js +0 -1
  189. package/ui/.output/public/_nuxt/DZIUG6ZX.js +0 -1
  190. package/ui/.output/public/_nuxt/DihqGT4A.js +0 -1
  191. package/ui/.output/public/_nuxt/MzK2TZ-I.js +0 -16
  192. package/ui/.output/public/_nuxt/TJXLPQOj.js +0 -1
  193. package/ui/.output/public/_nuxt/VuiIFQtE.js +0 -1
  194. package/ui/.output/public/_nuxt/config.C19X1GwO.css +0 -1
  195. package/ui/.output/public/_nuxt/default.Dw-0Xw5D.css +0 -1
  196. package/ui/.output/public/_nuxt/logs.PK6CTQHM.css +0 -1
  197. package/ui/.output/server/chunks/build/Button-CZHl6fpI.mjs.map +0 -1
  198. package/ui/.output/server/chunks/build/Input-kmqS1oY_.mjs.map +0 -1
  199. package/ui/.output/server/chunks/build/Modal-DmZs0Ekg.mjs.map +0 -1
  200. package/ui/.output/server/chunks/build/config-Bkb2wy7R.mjs.map +0 -1
  201. package/ui/.output/server/chunks/build/config-styles.B4mTchgT.mjs +0 -8
  202. package/ui/.output/server/chunks/build/config-styles.B4mTchgT.mjs.map +0 -1
  203. package/ui/.output/server/chunks/build/default-DmD3qBXZ.mjs.map +0 -1
  204. package/ui/.output/server/chunks/build/default-styles.DmprFUrQ.mjs +0 -8
  205. package/ui/.output/server/chunks/build/default-styles.DmprFUrQ.mjs.map +0 -1
  206. package/ui/.output/server/chunks/build/entry-styles.Cg1Sndbr.mjs +0 -11
  207. package/ui/.output/server/chunks/build/entry-styles.Cg1Sndbr.mjs.map +0 -1
  208. package/ui/.output/server/chunks/build/index-Dy4Tu7MB.mjs.map +0 -1
  209. package/ui/.output/server/chunks/build/login-B5YkLJCV.mjs.map +0 -1
  210. package/ui/.output/server/chunks/build/logs-BvD1Y3HI.mjs.map +0 -1
  211. package/ui/.output/server/chunks/build/logs-styles.CU5b1wKf.mjs +0 -8
  212. package/ui/.output/server/chunks/build/logs-styles.CU5b1wKf.mjs.map +0 -1
  213. package/ui/.output/server/chunks/build/schedule-B2UKsnRW.mjs.map +0 -1
  214. package/ui/.output/server/chunks/build/tasks-DBH3Z6lg.mjs.map +0 -1
  215. package/ui/.output/server/chunks/build/useApi-Bqajqsuz.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ import{_ as F,d as K,u as Q,s as X}from"./6wLLp9Nc.js";import{R as o,j as d,g as _,F as A,Y as k,a4 as p,B as x,E as g,Z as O,l as j,i as N,m as ee,c as m,f as i,A as ae,a6 as W,aa as le,a9 as v,p as w}from"./CnXdKLRd.js";import{a as ne}from"./mHp9eItY.js";import{_ as te}from"./DlAUqK2U.js";const u=ae(m.ui.strategy,m.ui.select,X),ie=ee({components:{UIcon:F},inheritAttrs:!1,props:{modelValue:{type:[String,Number,Object],default:""},id:{type:String,default:null},name:{type:String,default:null},placeholder:{type:String,default:null},required:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},icon:{type:String,default:null},loadingIcon:{type:String,default:()=>u.default.loadingIcon},leadingIcon:{type:String,default:null},trailingIcon:{type:String,default:()=>u.default.trailingIcon},trailing:{type:Boolean,default:!1},leading:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},padded:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},size:{type:String,default:null,validator(e){return Object.keys(u.size).includes(e)}},color:{type:String,default:()=>u.default.color,validator(e){return[...m.ui.colors,...Object.keys(u.color)].includes(e)}},variant:{type:String,default:()=>u.default.variant,validator(e){return[...Object.keys(u.variant),...Object.values(u.color).flatMap(r=>Object.keys(r))].includes(e)}},optionAttribute:{type:String,default:"label"},valueAttribute:{type:String,default:"value"},selectClass:{type:String,default:null},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})}},emits:["update:modelValue","change"],setup(e,{emit:r,slots:y}){const{ui:a,attrs:C}=K("select",W(e,"ui"),u,W(e,"class")),{size:z,rounded:f}=Q({ui:a,props:e}),{emitFormChange:n,inputId:c,color:t,size:I,name:q}=ne(e,u),s=i(()=>z.value??I.value),G=l=>{r("update:modelValue",l.target.value)},L=l=>{r("change",l.target.value),n()},M=l=>w(l,e.valueAttribute,""),P=l=>w(l,e.optionAttribute,""),h=l=>["string","number","boolean"].includes(typeof l)?{[e.valueAttribute]:l,[e.optionAttribute]:l}:{...l,[e.valueAttribute]:M(l),[e.optionAttribute]:P(l)},S=i(()=>e.options.map(l=>h(l))),$=i(()=>e.placeholder?[{[e.valueAttribute]:"",[e.optionAttribute]:e.placeholder,disabled:!0},...S.value]:S.value),T=i(()=>{const l=h(e.modelValue),B=$.value.find(H=>H[e.valueAttribute]===l[e.valueAttribute]);return B?B[e.valueAttribute]:""}),U=i(()=>{const l=a.value.color?.[t.value]?.[e.variant]||a.value.variant[e.variant];return le(v(a.value.base,a.value.form,f.value,a.value.size[s.value],e.padded?a.value.padding[s.value]:"p-0",l?.replaceAll("{color}",t.value),(b.value||y.leading)&&a.value.leading.padding[s.value],(V.value||y.trailing)&&a.value.trailing.padding[s.value]),e.placeholder&&!e.modelValue&&a.value.placeholder,e.selectClass)}),b=i(()=>e.icon&&e.leading||e.icon&&!e.trailing||e.loading&&!e.trailing||e.leadingIcon),V=i(()=>e.icon&&e.trailing||e.loading&&e.trailing||e.trailingIcon),E=i(()=>e.loading?e.loadingIcon:e.leadingIcon||e.icon),R=i(()=>e.loading&&!b.value?e.loadingIcon:e.trailingIcon||e.icon),D=i(()=>v(a.value.icon.leading.wrapper,a.value.icon.leading.pointer,a.value.icon.leading.padding[s.value])),J=i(()=>v(a.value.icon.base,t.value&&m.ui.colors.includes(t.value)&&a.value.icon.color.replaceAll("{color}",t.value),a.value.icon.size[s.value],e.loading&&a.value.icon.loading)),Y=i(()=>v(a.value.icon.trailing.wrapper,a.value.icon.trailing.pointer,a.value.icon.trailing.padding[s.value])),Z=i(()=>v(a.value.icon.base,t.value&&m.ui.colors.includes(t.value)&&a.value.icon.color.replaceAll("{color}",t.value),a.value.icon.size[s.value],e.loading&&!b.value&&a.value.icon.loading));return{ui:a,attrs:C,name:q,inputId:c,normalizedOptionsWithPlaceholder:$,normalizedValue:T,isLeading:b,isTrailing:V,selectClass:U,leadingIconName:E,leadingIconClass:J,leadingWrapperIconClass:D,trailingIconName:R,trailingIconClass:Z,trailingWrapperIconClass:Y,onInput:G,onChange:L}}}),ue=["id","name","value","required","disabled"],re=["value","label"],oe=["value","selected","disabled","textContent"],de=["value","selected","disabled","textContent"];function se(e,r,y,a,C,z){const f=F;return o(),d("div",{class:g(e.ui.wrapper)},[_("select",x({id:e.inputId,name:e.name,value:e.modelValue,required:e.required,disabled:e.disabled,class:e.selectClass},e.attrs,{onInput:r[0]||(r[0]=(...n)=>e.onInput&&e.onInput(...n)),onChange:r[1]||(r[1]=(...n)=>e.onChange&&e.onChange(...n))}),[(o(!0),d(A,null,k(e.normalizedOptionsWithPlaceholder,(n,c)=>(o(),d(A,null,[n.children?(o(),d("optgroup",{key:`${n[e.valueAttribute]}-optgroup-${c}`,value:n[e.valueAttribute],label:n[e.optionAttribute]},[(o(!0),d(A,null,k(n.children,(t,I)=>(o(),d("option",{key:`${t[e.valueAttribute]}-${c}-${I}`,value:t[e.valueAttribute],selected:t[e.valueAttribute]===e.normalizedValue,disabled:t.disabled,textContent:p(t[e.optionAttribute])},null,8,oe))),128))],8,re)):(o(),d("option",{key:`${n[e.valueAttribute]}-${c}`,value:n[e.valueAttribute],selected:n[e.valueAttribute]===e.normalizedValue,disabled:n.disabled,textContent:p(n[e.optionAttribute])},null,8,de))],64))),256))],16,ue),e.isLeading&&e.leadingIconName||e.$slots.leading?(o(),d("span",{key:0,class:g(e.leadingWrapperIconClass)},[O(e.$slots,"leading",{disabled:e.disabled,loading:e.loading},()=>[j(f,{name:e.leadingIconName,class:g(e.leadingIconClass)},null,8,["name","class"])],!0)],2)):N("",!0),e.isTrailing&&e.trailingIconName||e.$slots.trailing?(o(),d("span",{key:1,class:g(e.trailingWrapperIconClass)},[O(e.$slots,"trailing",{disabled:e.disabled,loading:e.loading},()=>[j(f,{name:e.trailingIconName,class:g(e.trailingIconClass),"aria-hidden":"true"},null,8,["name","class"])],!0)],2)):N("",!0)],2)}const fe=te(ie,[["render",se],["__scopeId","data-v-cbc9516f"]]);export{fe as _};
@@ -0,0 +1 @@
1
+ .config-page[data-v-bc9f5760]{display:flex;flex-direction:column}.agent-block[data-v-bc9f5760]{background:rgb(var(--color-gray-50)/.5)}:root.dark .agent-block[data-v-bc9f5760]{background:rgb(var(--color-gray-900)/.35)}
@@ -0,0 +1 @@
1
+ .app-shell[data-v-7155b15d]{background:var(--ui-bg,#f8f9fb);display:grid;grid-template-columns:220px 1fr;height:100vh;overflow:hidden}.sidebar[data-v-7155b15d]{background:#0f172a;color:#e2e8f0;gap:1.25rem;overflow-y:auto;padding:1.25rem .75rem}.brand[data-v-7155b15d],.sidebar[data-v-7155b15d]{display:flex;flex-direction:column}.brand[data-v-7155b15d]{padding:0 .5rem}.brand-mark[data-v-7155b15d]{font-size:1.25rem;font-weight:700;letter-spacing:.02em}.brand-sub[data-v-7155b15d]{color:#94a3b8;font-size:.75rem}nav[data-v-7155b15d]{display:flex;flex-direction:column;gap:.125rem}.nav-link[data-v-7155b15d]{align-items:center;border-radius:.375rem;color:#cbd5e1;display:flex;font-size:.92rem;gap:.6rem;padding:.55rem .75rem;text-decoration:none}.nav-link[data-v-7155b15d]:hover{background:#ffffff0d;color:#fff}.nav-link--active[data-v-7155b15d]{background:#3b82f62e;color:#fff}.nav-icon[data-v-7155b15d]{font-size:.9rem;opacity:.85;text-align:center;width:1.1rem}.main[data-v-7155b15d]{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}.topbar[data-v-7155b15d]{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;flex-shrink:0;justify-content:space-between;padding:.75rem 1.25rem}.cwd[data-v-7155b15d]{align-items:baseline;display:flex;gap:.5rem;min-width:0}.cwd-label[data-v-7155b15d]{color:#6b7280;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.cwd-value[data-v-7155b15d]{color:#111827;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content[data-v-7155b15d]{flex:1;min-height:0;overflow-y:auto;padding:1.5rem}
@@ -0,0 +1 @@
1
+ .editor-container[data-v-ad1d8ba7]{overflow:hidden}.editor-container[data-v-ad1d8ba7],.editor-placeholder[data-v-ad1d8ba7]{border:1px solid #e5e7eb;border-radius:.375rem;height:520px}.editor-placeholder[data-v-ad1d8ba7]{align-items:center;color:#9ca3af;display:flex;font-size:.875rem;justify-content:center}.sample-select-menu[data-v-ad1d8ba7]{max-width:240px;min-width:200px}.hook-panel[data-v-ad1d8ba7]{border:1px solid #e5e7eb;border-radius:.375rem;overflow:hidden}.hook-panel-summary[data-v-ad1d8ba7]{align-items:center;background:#f9fafb;cursor:pointer;display:flex;font-size:.875rem;list-style:none;padding:.5rem .75rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.hook-panel-summary[data-v-ad1d8ba7]:hover{background:#f3f4f6}.hook-panel-summary[data-v-ad1d8ba7]::-webkit-details-marker,.hook-panel-summary[data-v-ad1d8ba7]::marker{display:none}.hook-panel-summary[data-v-ad1d8ba7]:before{color:#6b7280;content:"▸";font-size:.75rem;margin-right:.5rem}details[open]>.hook-panel-summary[data-v-ad1d8ba7]:before{content:"▾"}.hook-panel-body[data-v-ad1d8ba7]{border-top:1px solid #e5e7eb;padding:.75rem}.mock-json[data-v-ad1d8ba7]{background:#f9fafb;border:1px solid #d1d5db;border-radius:.375rem;color:#111827;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;line-height:1.5;padding:.5rem;resize:vertical;width:100%}.mock-json[data-v-ad1d8ba7]:focus{outline:2px solid #3b82f6;outline-offset:1px}.log-output[data-v-ad1d8ba7]{background:#0f172a;border-radius:.375rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;max-height:320px;overflow-y:auto;padding:.75rem}.log-line[data-v-ad1d8ba7]{color:#e2e8f0;line-height:1.6;white-space:pre-wrap;word-break:break-all}.modal-loading[data-v-ad1d8ba7]{align-items:center;display:flex;flex-direction:column;gap:.75rem;padding:2rem 0}.modal-spinner[data-v-ad1d8ba7]{animation:modal-spin-ad1d8ba7 .7s linear infinite;border:2px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;height:1.75rem;width:1.75rem}@keyframes modal-spin-ad1d8ba7{to{transform:rotate(1turn)}}.hook-panel-highlight[data-v-ad1d8ba7]{animation:hook-highlight-ad1d8ba7 1.2s ease-out}@keyframes hook-highlight-ad1d8ba7{0%{box-shadow:0 0 0 3px #3b82f6}to{box-shadow:0 0 0 3px transparent}}
@@ -0,0 +1,2 @@
1
+ import{a as q}from"./6wLLp9Nc.js";import{_ as G}from"./CdHqKVo4.js";import{_ as X}from"./BGkU0f28.js";import{_ as Y}from"./D_gcbXK2.js";import{_ as J}from"./Zrl3Utak.js";import{s as K,_ as Q}from"./CYm8nRCj.js";import{_ as W}from"./C1xk3ymy.js";import{_ as Z}from"./BOIhDy_l.js";import{u as ee}from"./G5BjvTWO.js";import{u as te}from"./LCoCV2KL.js";import{m as oe,am as U,M as le,L as se,j as a,l as u,ao as d,w as C,ab as t,X as p,D as ne,R as s,h as ae,i as S,g as l,a4 as i,k as m,f as ie}from"./CnXdKLRd.js";import{_ as re}from"./DlAUqK2U.js";import"./yqBy-NAR.js";import"./Cz9dogwK.js";import"./mHp9eItY.js";const ue={class:"logs-page"},de={class:"flex items-center justify-between gap-3 flex-wrap"},me={class:"text-xs text-gray-500 mt-1"},ce={key:0,class:"ml-2 text-amber-600"},pe={key:1,class:"ml-2 text-gray-500"},fe={key:0},_e={class:"text-xs text-gray-400 mt-0.5"},ge={key:0},ve={key:1},ye={class:"flex items-center gap-2"},xe={class:"controls"},be={class:"autopoll"},he={key:1,class:"meta"},ke={key:0},Se={key:1},we={key:2,class:"empty"},Ve={class:"empty-sub"},Ce={key:3,class:"empty"},Le={key:0,class:"empty-sub"},Te={key:1,class:"empty-sub"},Ue={class:"text-sm text-gray-600"},Ee={class:"flex justify-end gap-2"},Ie=oe({__name:"logs",setup(Ae){const E=ee(),o=p(null),L=ie(()=>o.value?.ttlDays??14),_=p(""),{beginFetch:M,endFetch:$}=te(o),w=p(!1),v=p(""),f=p(""),y=p(1e3),j=[{label:"200",value:200},{label:"500",value:500},{label:"1,000",value:1e3},{label:"5,000",value:5e3},{label:"10,000",value:1e4}],x=p(!0),g=p(!1),b=p(!1),I=p(null);let V=null,h=null;async function k(n={}){const e=M(_);n.explicit&&(w.value=!0);try{const r=new URLSearchParams;r.set("limit",String(y.value)),f.value&&r.set("q",f.value);const T=`/api/logs?${r.toString()}`;o.value=await E(T),e||(_.value=""),n.keepScroll||(await ne(),P())}catch(r){_.value=r instanceof Error?r.message:String(r)}finally{$(e),n.explicit&&(w.value=!1)}}function P(){const n=I.value;n&&(n.scrollTop=n.scrollHeight)}async function R(){b.value=!0;try{await E("/api/logs",{method:"DELETE"}),g.value=!1,await k()}catch(n){_.value=n instanceof Error?n.message:String(n)}finally{b.value=!1}}U(v,n=>{h&&clearTimeout(h),h=setTimeout(()=>{f.value=n},300)}),U([f,y],()=>{k()});function A(){B(),x.value&&(V=K(()=>{typeof document<"u"&&document.visibilityState!=="visible"||k({keepScroll:!0})},5e3))}function B(){V&&(clearInterval(V),V=null)}return U(x,A),le(()=>{k(),A()}),se(()=>{B(),h&&clearTimeout(h)}),(n,e)=>{const r=q,T=G,z=X,D=Y,F=J,H=Q,N=W,O=Z;return s(),a("div",ue,[u(N,null,{header:d(()=>[l("div",de,[l("div",null,[e[8]||(e[8]=l("h1",{class:"text-lg font-semibold"},"Logs",-1)),l("p",me,[l("code",null,i(t(o)?.path||"—"),1),t(o)&&!t(o).exists?(s(),a("span",ce,"not found")):t(o)?(s(),a("span",pe,[m(i(t(o).total.toLocaleString())+" line(s) total",1),t(o).truncated?(s(),a("span",fe,", tailing last "+i(t(o).limit.toLocaleString()),1)):S("",!0)])):S("",!0)]),l("p",_e,[t(L)>0?(s(),a("span",ge,"Auto-pruned: lines older than "+i(t(L))+" day"+i(t(L)===1?"":"s")+" are removed on each run.",1)):(s(),a("span",ve,[...e[7]||(e[7]=[m("Auto-pruning disabled (",-1),l("code",null,"AIDEV_LOG_TTL_DAYS=0",-1),m(").",-1)])]))])]),l("div",ye,[u(r,{color:"gray",variant:"ghost",size:"sm",loading:t(w),disabled:t(w),onClick:e[0]||(e[0]=c=>k({explicit:!0}))},{default:d(()=>[...e[9]||(e[9]=[m(" Refresh ",-1)])]),_:1},8,["loading","disabled"]),u(r,{color:"red",variant:"soft",size:"sm",disabled:!t(o)?.exists||t(o)?.total===0||t(b),onClick:e[1]||(e[1]=c=>g.value=!0)},{default:d(()=>[...e[10]||(e[10]=[m(" Clear log ",-1)])]),_:1},8,["disabled"])])])]),default:d(()=>[t(_)?(s(),ae(T,{key:0,color:"red",variant:"soft",title:t(_),class:"mb-3"},null,8,["title"])):S("",!0),l("div",xe,[u(D,{label:"Search",class:"search-group"},{default:d(()=>[u(z,{modelValue:t(v),"onUpdate:modelValue":e[2]||(e[2]=c=>C(v)?v.value=c:null),placeholder:"Case-insensitive substring filter…",icon:"i-heroicons-magnifying-glass",loading:t(v)!==t(f)},null,8,["modelValue","loading"])]),_:1}),u(D,{label:"Tail lines",class:"tail-group"},{default:d(()=>[u(F,{modelValue:t(y),"onUpdate:modelValue":e[3]||(e[3]=c=>C(y)?y.value=c:null),modelModifiers:{number:!0},options:j},null,8,["modelValue"])]),_:1}),l("div",be,[u(H,{modelValue:t(x),"onUpdate:modelValue":e[4]||(e[4]=c=>C(x)?x.value=c:null),label:"Auto-refresh (5s)"},null,8,["modelValue"])])]),t(o)?(s(),a("div",he,[t(f)?(s(),a("span",ke," Showing "+i(t(o).shown.toLocaleString())+" match(es) in last "+i(Math.min(t(o).total,t(o).limit).toLocaleString())+" line(s) ",1)):(s(),a("span",Se," Showing last "+i(t(o).shown.toLocaleString())+" line(s) ",1))])):S("",!0),t(o)&&!t(o).exists?(s(),a("div",we,[e[13]||(e[13]=l("p",{class:"empty-title"},"Log file does not exist yet",-1)),l("p",Ve,[e[11]||(e[11]=m(" aidev creates it on first run. Once ",-1)),l("code",null,i(t(o).path),1),e[12]||(e[12]=m(" exists, lines will appear here. ",-1))])])):t(o)&&t(o).lines.length===0?(s(),a("div",Ce,[e[14]||(e[14]=l("p",{class:"empty-title"},"No matching lines",-1)),t(f)?(s(),a("p",Le," Nothing in the last "+i(t(o).limit.toLocaleString())+" lines matches “"+i(t(f))+"”. ",1)):(s(),a("p",Te," The log file is empty. "))])):t(o)?(s(),a("pre",{key:4,ref_key:"viewer",ref:I,class:"viewer"},[l("code",null,i(t(o).lines.join(`
2
+ `)),1)],512)):S("",!0)]),_:1}),u(O,{modelValue:t(g),"onUpdate:modelValue":e[6]||(e[6]=c=>C(g)?g.value=c:null)},{default:d(()=>[u(N,null,{header:d(()=>[...e[15]||(e[15]=[l("h3",{class:"text-base font-semibold"},"Clear log file?",-1)])]),footer:d(()=>[l("div",Ee,[u(r,{variant:"ghost",color:"gray",disabled:t(b),onClick:e[5]||(e[5]=c=>g.value=!1)},{default:d(()=>[...e[18]||(e[18]=[m(" Cancel ",-1)])]),_:1},8,["disabled"]),u(r,{color:"red",loading:t(b),onClick:R},{default:d(()=>[...e[19]||(e[19]=[m(" Clear log ",-1)])]),_:1},8,["loading"])])]),default:d(()=>[l("p",Ue,[e[16]||(e[16]=m(" This truncates ",-1)),l("code",null,i(t(o)?.path),1),e[17]||(e[17]=m(" to zero bytes. The file itself stays in place. This cannot be undone. ",-1))])]),_:1})]),_:1},8,["modelValue"])])}}}),Ye=re(Ie,[["__scopeId","data-v-982cf375"]]);export{Ye as default};
@@ -0,0 +1 @@
1
+ .logs-page[data-v-982cf375]{display:flex;flex-direction:column}.controls[data-v-982cf375]{align-items:end;display:grid;gap:.75rem;grid-template-columns:1fr 12rem auto;margin-bottom:.75rem}.search-group[data-v-982cf375],.tail-group[data-v-982cf375]{min-width:0}.autopoll[data-v-982cf375]{padding-bottom:.45rem;white-space:nowrap}.meta[data-v-982cf375]{color:#6b7280;font-size:.75rem;margin-bottom:.5rem}.viewer[data-v-982cf375]{background:#0f172a;border-radius:.375rem;color:#e2e8f0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.45;margin:0;max-height:65vh;overflow:auto;padding:.75rem 1rem;white-space:pre}.empty[data-v-982cf375]{border:1px dashed #cbd5e1;border-radius:.375rem;color:#475569;padding:1.5rem;text-align:center}.empty-title[data-v-982cf375]{font-weight:600;margin-bottom:.25rem}.empty-sub[data-v-982cf375]{color:#64748b;font-size:.85rem}
@@ -0,0 +1 @@
1
+ import{a7 as p,v,f,X as F}from"./CnXdKLRd.js";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const h=()=>{};function I(r,i){function o(...t){return new Promise((e,n)=>{Promise.resolve(r(()=>i.apply(this,t),{fn:i,thisArg:this,args:t})).then(e).catch(n)})}return o}function b(r,i={}){let o,t,e=h;const n=u=>{clearTimeout(u),e(),e=h};let m;return u=>{const c=p(r),l=p(i.maxWait);return o&&n(o),c<=0||l!==void 0&&l<=0?(t&&(n(t),t=void 0),Promise.resolve(u())):new Promise((a,d)=>{e=i.rejectOnCancel?d:a,m=u,l&&!t&&(t=setTimeout(()=>{o&&n(o),t=void 0,a(m())},l)),o=setTimeout(()=>{t&&n(t),t=void 0,a(u())},c)})}}function z(r,i=200,o={}){return I(b(i,o),r)}const g=(r,i,o=!0)=>{const t=v("form-events",void 0),e=v("form-group",void 0),n=v("form-inputs",void 0);e&&(!o||r?.legend?e.inputId.value=void 0:r?.id&&(e.inputId.value=r?.id),n&&(n.value[e.name.value]=e.inputId.value));const m=F(!1);function s(a,d){t&&t.emit({type:a,path:d})}function u(){s("blur",e?.name.value),m.value=!0}function c(){s("change",e?.name.value)}const l=z(()=>{(m.value||e?.eagerValidation.value)&&s("input",e?.name.value)},300);return{inputId:f(()=>r?.id??e?.inputId.value),name:f(()=>r?.name??e?.name.value),size:f(()=>{const a=i.size[e?.size.value]?e?.size.value:null;return r?.size??a??i.default?.size}),color:f(()=>e?.error?.value?"red":r?.color),emitFormBlur:u,emitFormInput:l,emitFormChange:c}};export{g as a,h as n,z as u};
@@ -1 +1 @@
1
- import{_ as I}from"./C2WdrjFS.js";import{_ as x}from"./DihqGT4A.js";import{l as k,O as d,g as y,ai as b,f as o,G as P,a1 as h,i as v,F as D,D as A,a6 as a,h as B,W as T,e as C,k as m,j as R,ag as E,L as N,K as S,V as w,B as V}from"./MzK2TZ-I.js";import{_ as $}from"./DlAUqK2U.js";import{a as F}from"./Ceb2855t.js";import{u as j}from"./BtD1YBwM.js";import{u as z}from"./BMTHyzVP.js";import"./B8sr5ZW-.js";import"./BAs1isOw.js";const L={class:"stat-body"},M={class:"stat-label"},O={key:0,class:"stat-skeleton"},q={key:1,class:"stat-value"},W=k({__name:"DashboardStatCard",props:{label:{},value:{},loading:{type:Boolean},color:{}},setup(s){return(u,e)=>{const t=x;return d(),y(t,{class:"stat-card"},{default:b(()=>[o("div",{class:"stat-accent",style:P(s.color?`background: ${s.color}`:void 0)},null,4),o("div",L,[o("p",M,h(s.label),1),s.loading?(d(),v("div",O)):(d(),v("p",q,h(s.value??"—"),1))])]),_:1})}}}),G=$(W,[["__scopeId","data-v-3ec41778"]]),K={class:"flex items-center justify-between gap-3 flex-wrap"},H={class:"period-tabs"},J=["onClick"],Q={class:"executed-body"},X={key:0,class:"executed-skeleton"},Y={class:"executed-value"},Z=k({__name:"DashboardExecutedCard",props:{data:{},period:{},loading:{type:Boolean}},emits:["update:period"],setup(s,{emit:u}){const e=s,t=u,g=C(()=>e.period),p=[{value:"week",label:"Week"},{value:"month",label:"Month"},{value:"3months",label:"3 Months"}],f=C(()=>{if(!e.data)return"";const{changeAmount:n,changePercent:r,previous:_}=e.data;if(_===0&&r===null)return"N/A vs prior";const l=n>=0?"+":"",i=r!==null?` ${l}${r}%`:"";return`${l}${n}${i} vs prior`}),c=C(()=>!e.data||e.data.changePercent===null?"badge--neutral":e.data.changeAmount>=0?"badge--up":"badge--down");return(n,r)=>{const _=x;return d(),y(_,null,{header:b(()=>[o("div",K,[r[0]||(r[0]=o("h2",{class:"text-sm font-semibold uppercase tracking-wide text-gray-500"},"Executed Tasks",-1)),o("div",H,[(d(),v(D,null,T(p,l=>o("button",{key:l.value,class:A(["period-tab",{"period-tab--active":a(g)===l.value}]),onClick:i=>t("update:period",l.value)},h(l.label),11,J)),64))])])]),default:b(()=>[o("div",Q,[s.loading?(d(),v("div",X)):(d(),v(D,{key:1},[o("span",Y,h(s.data?.current??"—"),1),s.data?(d(),v("span",{key:0,class:A(["badge",a(c)])},h(a(f)),3)):B("",!0)],64))]),r[1]||(r[1]=o("p",{class:"executed-sub"},"tasks updated in this period",-1))]),_:1})}}}),ee=$(Z,[["__scopeId","data-v-4309758c"]]),te={class:"actions"},ae=k({__name:"DashboardRunActions",emits:["run"],setup(s,{emit:u}){const e=u,t=[{value:"open",label:"Open",color:"primary"},{value:"pending",label:"Pending",color:"sky"},{value:"review",label:"Review",color:"amber"},{value:"all",label:"All",color:"gray"}];return(g,p)=>{const f=F,c=x;return d(),y(c,null,{header:b(()=>[...p[0]||(p[0]=[o("h2",{class:"text-sm font-semibold uppercase tracking-wide text-gray-500"},"Run Actions",-1)])]),default:b(()=>[o("div",te,[(d(),v(D,null,T(t,n=>m(f,{key:n.value,size:"md",color:n.color,class:"action-btn",onClick:r=>e("run",n.value)},{default:b(()=>[R(h(n.label),1)]),_:2},1032,["color","onClick"])),64))])]),_:1})}}}),oe=$(ae,[["__scopeId","data-v-03add317"]]);function ne(){const s=j(),u=w("week"),e=w(null),t=w(""),{loading:g,beginFetch:p,endFetch:f}=z(e);let c=null;async function n(){const l=p(t);try{const i=await s("/api/dashboard/stats",{query:{period:u.value}});e.value=i,i.errors?.length?t.value=i.errors.join("; "):l||(t.value="")}catch(i){t.value=i instanceof Error?i.message:String(i)}finally{f(l)}}function r(l){u.value=l}function _(){c&&clearTimeout(c),c=setTimeout(()=>{n().then(_)},6e4)}return E(u,()=>n()),N(()=>{n().then(_)}),S(()=>{c&&clearTimeout(c)}),{period:u,stats:e,loading:g,error:t,setPeriod:r}}const se={class:"dashboard-page"},le={class:"stats-grid"},re={class:"mt-4"},ce={class:"mt-4"},ie=k({__name:"index",setup(s){const{period:u,stats:e,loading:t,error:g,setPeriod:p}=ne();function f(c){V({path:"/run",query:{autorun:c}})}return(c,n)=>{const r=I,_=G,l=ee,i=oe,U=x;return d(),v("div",se,[m(U,null,{header:b(()=>[...n[0]||(n[0]=[o("h1",{class:"text-lg font-semibold"},"Dashboard",-1)])]),default:b(()=>[a(g)?(d(),y(r,{key:0,color:"red",variant:"soft",title:a(g),class:"mb-4"},null,8,["title"])):B("",!0),o("div",le,[m(_,{label:"Open",value:a(e)?.open??null,loading:a(t),color:"#3b82f6"},null,8,["value","loading"]),m(_,{label:"Pending",value:a(e)?.pending??null,loading:a(t),color:"#0ea5e9"},null,8,["value","loading"]),m(_,{label:"In Review",value:a(e)?.inReview??null,loading:a(t),color:"#f59e0b"},null,8,["value","loading"]),m(_,{label:"All-Time Done",value:a(e)?.allTimeDone??null,loading:a(t),color:"#10b981"},null,8,["value","loading"])]),o("div",re,[m(l,{data:a(e)?.executed??null,period:a(u),loading:a(t),"onUpdate:period":a(p)},null,8,["data","period","loading","onUpdate:period"])]),o("div",ce,[m(i,{onRun:f})])]),_:1})])}}}),he=$(ie,[["__scopeId","data-v-df921e33"]]);export{he as default};
1
+ import{_ as R}from"./CdHqKVo4.js";import{_ as x}from"./C1xk3ymy.js";import{m as k,R as d,h as y,ao as b,g as o,H as I,a4 as h,j as v,F as D,E as A,ab as a,i as T,Y as U,f as C,l as m,k as P,am as E,M as N,L as S,X as w,C as F}from"./CnXdKLRd.js";import{_ as $}from"./DlAUqK2U.js";import{a as M}from"./6wLLp9Nc.js";import{u as V}from"./G5BjvTWO.js";import{u as j}from"./LCoCV2KL.js";import"./yqBy-NAR.js";import"./Cz9dogwK.js";const z={class:"stat-body"},L={class:"stat-label"},q={key:0,class:"stat-skeleton"},O={key:1,class:"stat-value"},H=k({__name:"DashboardStatCard",props:{label:{},value:{},loading:{type:Boolean},color:{}},setup(s){return(u,e)=>{const t=x;return d(),y(t,{class:"stat-card"},{default:b(()=>[o("div",{class:"stat-accent",style:I(s.color?`background: ${s.color}`:void 0)},null,4),o("div",z,[o("p",L,h(s.label),1),s.loading?(d(),v("div",q)):(d(),v("p",O,h(s.value??"—"),1))])]),_:1})}}}),W=$(H,[["__scopeId","data-v-3ec41778"]]),X={class:"flex items-center justify-between gap-3 flex-wrap"},Y={class:"period-tabs"},G=["onClick"],J={class:"executed-body"},K={key:0,class:"executed-skeleton"},Q={class:"executed-value"},Z=k({__name:"DashboardExecutedCard",props:{data:{},period:{},loading:{type:Boolean}},emits:["update:period"],setup(s,{emit:u}){const e=s,t=u,g=C(()=>e.period),p=[{value:"week",label:"Week"},{value:"month",label:"Month"},{value:"3months",label:"3 Months"}],f=C(()=>{if(!e.data)return"";const{changeAmount:n,changePercent:r,previous:_}=e.data;if(_===0&&r===null)return"N/A vs prior";const l=n>=0?"+":"",i=r!==null?` ${l}${r}%`:"";return`${l}${n}${i} vs prior`}),c=C(()=>!e.data||e.data.changePercent===null?"badge--neutral":e.data.changeAmount>=0?"badge--up":"badge--down");return(n,r)=>{const _=x;return d(),y(_,null,{header:b(()=>[o("div",X,[r[0]||(r[0]=o("h2",{class:"text-sm font-semibold uppercase tracking-wide text-gray-500"},"Executed Tasks",-1)),o("div",Y,[(d(),v(D,null,U(p,l=>o("button",{key:l.value,class:A(["period-tab",{"period-tab--active":a(g)===l.value}]),onClick:i=>t("update:period",l.value)},h(l.label),11,G)),64))])])]),default:b(()=>[o("div",J,[s.loading?(d(),v("div",K)):(d(),v(D,{key:1},[o("span",Q,h(s.data?.current??"—"),1),s.data?(d(),v("span",{key:0,class:A(["badge",a(c)])},h(a(f)),3)):T("",!0)],64))]),r[1]||(r[1]=o("p",{class:"executed-sub"},"tasks updated in this period",-1))]),_:1})}}}),ee=$(Z,[["__scopeId","data-v-4309758c"]]),te={class:"actions"},ae=k({__name:"DashboardRunActions",emits:["run"],setup(s,{emit:u}){const e=u,t=[{value:"open",label:"Open",color:"primary"},{value:"pending",label:"Pending",color:"sky"},{value:"review",label:"Review",color:"amber"},{value:"all",label:"All",color:"gray"}];return(g,p)=>{const f=M,c=x;return d(),y(c,null,{header:b(()=>[...p[0]||(p[0]=[o("h2",{class:"text-sm font-semibold uppercase tracking-wide text-gray-500"},"Run Actions",-1)])]),default:b(()=>[o("div",te,[(d(),v(D,null,U(t,n=>m(f,{key:n.value,size:"md",color:n.color,class:"action-btn",onClick:r=>e("run",n.value)},{default:b(()=>[P(h(n.label),1)]),_:2},1032,["color","onClick"])),64))])]),_:1})}}}),oe=$(ae,[["__scopeId","data-v-03add317"]]);function ne(){const s=V(),u=w("week"),e=w(null),t=w(""),{loading:g,beginFetch:p,endFetch:f}=j(e);let c=null;async function n(){const l=p(t);try{const i=await s("/api/dashboard/stats",{query:{period:u.value}});e.value=i,i.errors?.length?t.value=i.errors.join("; "):l||(t.value="")}catch(i){t.value=i instanceof Error?i.message:String(i)}finally{f(l)}}function r(l){u.value=l}function _(){c&&clearTimeout(c),c=setTimeout(()=>{n().then(_)},6e4)}return E(u,()=>n()),N(()=>{n().then(_)}),S(()=>{c&&clearTimeout(c)}),{period:u,stats:e,loading:g,error:t,setPeriod:r}}const se={class:"dashboard-page"},le={class:"stats-grid"},re={class:"mt-4"},ce={class:"mt-4"},ie=k({__name:"index",setup(s){const{period:u,stats:e,loading:t,error:g,setPeriod:p}=ne();function f(c){F({path:"/run",query:{autorun:c}})}return(c,n)=>{const r=R,_=W,l=ee,i=oe,B=x;return d(),v("div",se,[m(B,null,{header:b(()=>[...n[0]||(n[0]=[o("h1",{class:"text-lg font-semibold"},"Dashboard",-1)])]),default:b(()=>[a(g)?(d(),y(r,{key:0,color:"red",variant:"soft",title:a(g),class:"mb-4"},null,8,["title"])):T("",!0),o("div",le,[m(_,{label:"Open",value:a(e)?.open??null,loading:a(t),color:"#3b82f6"},null,8,["value","loading"]),m(_,{label:"Pending",value:a(e)?.pending??null,loading:a(t),color:"#0ea5e9"},null,8,["value","loading"]),m(_,{label:"In Review",value:a(e)?.inReview??null,loading:a(t),color:"#f59e0b"},null,8,["value","loading"]),m(_,{label:"All-Time Done",value:a(e)?.allTimeDone??null,loading:a(t),color:"#10b981"},null,8,["value","loading"])]),o("div",re,[m(l,{data:a(e)?.executed??null,period:a(u),loading:a(t),"onUpdate:period":a(p)},null,8,["data","period","loading","onUpdate:period"])]),o("div",ce,[m(i,{onRun:f})])]),_:1})])}}}),he=$(ie,[["__scopeId","data-v-df921e33"]]);export{he as default};
@@ -1 +1 @@
1
- import{_ as a}from"./BAs1isOw.js";import{_ as i}from"./DlAUqK2U.js";import{a9 as u,O as c,i as l,f as e,a1 as r,k as d,ai as p,j as f}from"./MzK2TZ-I.js";const m={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},g={class:"max-w-520px text-center z-20"},h=["textContent"],b=["textContent"],x={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:404},statusText:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const n=t;return u({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,o)=>{const s=a;return c(),l("div",m,[o[0]||(o[0]=e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),e("div",g,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:r(t.status)},null,8,h),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:r(t.description)},null,8,b),e("div",x,[d(s,{to:"/",class:"cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md"},{default:p(()=>[f(r(t.backHome),1)]),_:1})])])])}}},z=i(y,[["__scopeId","data-v-1bd9e11a"]]);export{z as default};
1
+ import{_ as a}from"./Cz9dogwK.js";import{_ as i}from"./DlAUqK2U.js";import{ae as u,R as l,j as c,g as e,a4 as r,l as d,ao as p,k as f}from"./CnXdKLRd.js";const m={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},g={class:"max-w-520px text-center z-20"},h=["textContent"],b=["textContent"],x={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:404},statusText:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const n=t;return u({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,o)=>{const s=a;return l(),c("div",m,[o[0]||(o[0]=e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),e("div",g,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:r(t.status)},null,8,h),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:r(t.description)},null,8,b),e("div",x,[d(s,{to:"/",class:"cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md"},{default:p(()=>[f(r(t.backHome),1)]),_:1})])])])}}},z=i(y,[["__scopeId","data-v-1bd9e11a"]]);export{z as default};
@@ -1,6 +1,6 @@
1
- import{a7 as w,e as S,q as k,x as B,l as x,ab as C,ag as T,s as I,a as q,I as P}from"./MzK2TZ-I.js";const E=Object.freeze({left:0,top:0,width:16,height:16}),R=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),N=Object.freeze({...E,...R});Object.freeze({...N,body:"",hidden:!1});function L(e,n){let s=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in n)s+=" "+r+'="'+n[r]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+s+">"+e+"</svg>"}const M=/(-?[0-9.]*[0-9]+[0-9.]*)/g,V=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function v(e,n,s){if(n===1)return e;if(s=s||100,typeof e=="number")return Math.ceil(e*n*s)/s;if(typeof e!="string")return e;const r=e.split(M);if(r===null||!r.length)return e;const t=[];let o=r.shift(),i=V.test(o);for(;;){if(i){const c=parseFloat(o);isNaN(c)?t.push(o):t.push(Math.ceil(c*n*s)/s)}else t.push(o);if(o=r.shift(),o===void 0)return t.join("");i=!i}}function W(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function _(e){return"data:image/svg+xml,"+W(e)}function D(e){return'url("'+_(e)+'")'}function G(e){const[n,s,r,t]=e;if(r!==t){const o=Math.max(r,t);return[n-(o-r)/2,s-(o-t)/2,o,o]}return e}const H=Object.freeze({width:null,height:null}),U=Object.freeze({...H,...R});function K(e,n="defs"){let s="";const r=e.indexOf("<"+n);for(;r>=0;){const t=e.indexOf(">",r),o=e.indexOf("</"+n);if(t===-1||o===-1)break;const i=e.indexOf(">",o);if(i===-1)break;s+=e.slice(t+1,o).trim(),e=e.slice(0,r).trim()+e.slice(i+1)}return{defs:s,content:e}}function J(e,n){return e?"<defs>"+e+"</defs>"+n:n}function Q(e,n,s){const r=K(e);return J(r.defs,n+r.content+s)}const X=e=>e==="unset"||e==="undefined"||e==="none";function Y(e,n){const s={...N,...e},r={...U,...n},t={left:s.left,top:s.top,width:s.width,height:s.height};let o=s.body;[s,r].forEach(g=>{const f=[],A=g.hFlip,O=g.vFlip;let m=g.rotate;A?O?m+=2:(f.push("translate("+(t.width+t.left).toString()+" "+(0-t.top).toString()+")"),f.push("scale(-1 1)"),t.top=t.left=0):O&&(f.push("translate("+(0-t.left).toString()+" "+(t.height+t.top).toString()+")"),f.push("scale(1 -1)"),t.top=t.left=0);let d;switch(m<0&&(m-=Math.floor(m/4)*4),m=m%4,m){case 1:d=t.height/2+t.top,f.unshift("rotate(90 "+d.toString()+" "+d.toString()+")");break;case 2:f.unshift("rotate(180 "+(t.width/2+t.left).toString()+" "+(t.height/2+t.top).toString()+")");break;case 3:d=t.width/2+t.left,f.unshift("rotate(-90 "+d.toString()+" "+d.toString()+")");break}m%2===1&&(t.left!==t.top&&(d=t.left,t.left=t.top,t.top=d),t.width!==t.height&&(d=t.width,t.width=t.height,t.height=d)),f.length&&(o=Q(o,'<g transform="'+f.join(" ")+'">',"</g>"))});const i=r.width,c=r.height,a=t.width,l=t.height;let u,h;i===null?(h=c===null?"1em":c==="auto"?l:c,u=v(h,a/l)):(u=i==="auto"?a:i,h=c===null?v(u,l/a):c==="auto"?l:c);const y={},z=(g,f)=>{X(f)||(y[g]=f.toString())};z("width",u),z("height",h);const $=[t.left,t.top,a,l];return y.viewBox=$.join(" "),{attributes:y,viewBox:$,body:o}}function Z(e){const n={display:"inline-block",width:"1em",height:"1em"},s=e.varName;switch(e.pseudoSelector&&(n.content="''"),e.mode){case"background":s&&(n["background-image"]="var(--"+s+")"),n["background-repeat"]="no-repeat",n["background-size"]="100% 100%";break;case"mask":n["background-color"]="currentColor",s&&(n["mask-image"]=n["-webkit-mask-image"]="var(--"+s+")"),n["mask-repeat"]=n["-webkit-mask-repeat"]="no-repeat",n["mask-size"]=n["-webkit-mask-size"]="100% 100%";break}return n}function ee(e,n){const s={},r=n.varName,t=Y(e);let o=t.viewBox;o[2]!==o[3]&&(n.forceSquare?o=G(o):s.width=v("1em",o[2]/o[3]));const i=L(t.body.replace(/currentColor/g,n.color||"black"),{viewBox:`${o[0]} ${o[1]} ${o[2]} ${o[3]}`,width:`${o[2]}`,height:`${o[3]}`}),c=D(i);if(r)s["--"+r]=c;else switch(n.mode){case"background":s["background-image"]=c;break;case"mask":s["mask-image"]=s["-webkit-mask-image"]=c;break}return s}const b={selectorStart:{compressed:"{",compact:" {",expanded:" {"},selectorEnd:{compressed:"}",compact:`; }
1
+ import{ac as w,f as S,r as k,y as B,m as x,ag as C,am as T,t as I,b as R,I as P}from"./CnXdKLRd.js";const E=Object.freeze({left:0,top:0,width:16,height:16}),j=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),N=Object.freeze({...E,...j});Object.freeze({...N,body:"",hidden:!1});function L(e,n){let s=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in n)s+=" "+r+'="'+n[r]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+s+">"+e+"</svg>"}const M=/(-?[0-9.]*[0-9]+[0-9.]*)/g,V=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function v(e,n,s){if(n===1)return e;if(s=s||100,typeof e=="number")return Math.ceil(e*n*s)/s;if(typeof e!="string")return e;const r=e.split(M);if(r===null||!r.length)return e;const t=[];let o=r.shift(),i=V.test(o);for(;;){if(i){const c=parseFloat(o);isNaN(c)?t.push(o):t.push(Math.ceil(c*n*s)/s)}else t.push(o);if(o=r.shift(),o===void 0)return t.join("");i=!i}}function W(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function _(e){return"data:image/svg+xml,"+W(e)}function D(e){return'url("'+_(e)+'")'}function G(e){const[n,s,r,t]=e;if(r!==t){const o=Math.max(r,t);return[n-(o-r)/2,s-(o-t)/2,o,o]}return e}const H=Object.freeze({width:null,height:null}),U=Object.freeze({...H,...j});function K(e,n="defs"){let s="";const r=e.indexOf("<"+n);for(;r>=0;){const t=e.indexOf(">",r),o=e.indexOf("</"+n);if(t===-1||o===-1)break;const i=e.indexOf(">",o);if(i===-1)break;s+=e.slice(t+1,o).trim(),e=e.slice(0,r).trim()+e.slice(i+1)}return{defs:s,content:e}}function J(e,n){return e?"<defs>"+e+"</defs>"+n:n}function Q(e,n,s){const r=K(e);return J(r.defs,n+r.content+s)}const X=e=>e==="unset"||e==="undefined"||e==="none";function Y(e,n){const s={...N,...e},r={...U,...n},t={left:s.left,top:s.top,width:s.width,height:s.height};let o=s.body;[s,r].forEach(g=>{const f=[],A=g.hFlip,O=g.vFlip;let m=g.rotate;A?O?m+=2:(f.push("translate("+(t.width+t.left).toString()+" "+(0-t.top).toString()+")"),f.push("scale(-1 1)"),t.top=t.left=0):O&&(f.push("translate("+(0-t.left).toString()+" "+(t.height+t.top).toString()+")"),f.push("scale(1 -1)"),t.top=t.left=0);let d;switch(m<0&&(m-=Math.floor(m/4)*4),m=m%4,m){case 1:d=t.height/2+t.top,f.unshift("rotate(90 "+d.toString()+" "+d.toString()+")");break;case 2:f.unshift("rotate(180 "+(t.width/2+t.left).toString()+" "+(t.height/2+t.top).toString()+")");break;case 3:d=t.width/2+t.left,f.unshift("rotate(-90 "+d.toString()+" "+d.toString()+")");break}m%2===1&&(t.left!==t.top&&(d=t.left,t.left=t.top,t.top=d),t.width!==t.height&&(d=t.width,t.width=t.height,t.height=d)),f.length&&(o=Q(o,'<g transform="'+f.join(" ")+'">',"</g>"))});const i=r.width,c=r.height,a=t.width,l=t.height;let u,h;i===null?(h=c===null?"1em":c==="auto"?l:c,u=v(h,a/l)):(u=i==="auto"?a:i,h=c===null?v(u,l/a):c==="auto"?l:c);const y={},z=(g,f)=>{X(f)||(y[g]=f.toString())};z("width",u),z("height",h);const $=[t.left,t.top,a,l];return y.viewBox=$.join(" "),{attributes:y,viewBox:$,body:o}}function Z(e){const n={display:"inline-block",width:"1em",height:"1em"},s=e.varName;switch(e.pseudoSelector&&(n.content="''"),e.mode){case"background":s&&(n["background-image"]="var(--"+s+")"),n["background-repeat"]="no-repeat",n["background-size"]="100% 100%";break;case"mask":n["background-color"]="currentColor",s&&(n["mask-image"]=n["-webkit-mask-image"]="var(--"+s+")"),n["mask-repeat"]=n["-webkit-mask-repeat"]="no-repeat",n["mask-size"]=n["-webkit-mask-size"]="100% 100%";break}return n}function ee(e,n){const s={},r=n.varName,t=Y(e);let o=t.viewBox;o[2]!==o[3]&&(n.forceSquare?o=G(o):s.width=v("1em",o[2]/o[3]));const i=L(t.body.replace(/currentColor/g,n.color||"black"),{viewBox:`${o[0]} ${o[1]} ${o[2]} ${o[3]}`,width:`${o[2]}`,height:`${o[3]}`}),c=D(i);if(r)s["--"+r]=c;else switch(n.mode){case"background":s["background-image"]=c;break;case"mask":s["mask-image"]=s["-webkit-mask-image"]=c;break}return s}const b={selectorStart:{compressed:"{",compact:" {",expanded:" {"},selectorEnd:{compressed:"}",compact:`; }
2
2
  `,expanded:`;
3
3
  }
4
4
  `},rule:{compressed:"{key}:",compact:" {key}: ",expanded:`
5
5
  {key}: `}};function te(e,n="expanded"){const s=[];for(let r=0;r<e.length;r++){const{selector:t,rules:o}=e[r];let c=(t instanceof Array?t.join(n==="compressed"?",":", "):t)+b.selectorStart[n],a=!0;for(const l in o)a||(c+=";"),c+=b.rule[n].replace("{key}",l)+o[l],a=!1;c+=b.selectorEnd[n],s.push(c)}return s.join(n==="compressed"?"":`
6
- `)}function ne(e,n={}){const s=n.customise?n.customise(e.body):e.body,r=n.mode||(n.color||!s.includes("currentColor")?"background":"mask");let t=n.varName;t===void 0&&r==="mask"&&(t="svg");const o={...n,mode:r,varName:t};r==="background"&&delete o.varName;const i={...n.rules,...Z(o),...ee({...N,...e,body:s},o)},c=n.iconSelector||".icon";return te([{selector:c,rules:i}],o.format)}async function se(e,n){if(!e)return null;const s=k(e);return s||(await B(e).catch(()=>(console.warn(`[Icon] failed to load icon \`${e}\``),null)),k(e))}function j(e){const n=w().icon,s=(n.collections||[]).sort((r,t)=>t.length-r.length);return S(()=>{const r=e(),t=r.startsWith(n.cssSelectorPrefix)?r.slice(n.cssSelectorPrefix.length):r,o=n.aliases?.[t]||t;if(!o.includes(":")){const i=s.find(c=>o.startsWith(c+"-"));return i?i+":"+o.slice(i.length+1):o}return o})}function F(e,n){if(e!==!1)return e===!0||e===null?n:e}let p;function oe(e){return e.replace(/([^\w-])/g,"\\$1")}function re(){if(p)return p;p=new Set;const e=s=>{if(s=s.replace(/^:where\((.*)\)$/,"$1").trim(),s.startsWith("."))return s},n=s=>{if(s?.length)for(const r of s){r?.cssRules&&n(r.cssRules);const t=r?.selectorText;if(typeof t=="string"){const o=e(t);o&&p.add(o)}}};if(typeof document<"u")for(const s of document.styleSheets)try{const r=s.cssRules||s.rules;n(r)}catch{}return p}const ce=x({name:"NuxtIconCss",props:{name:{type:String,required:!0},customize:{type:[Function,Boolean,null],default:null,required:!1}},setup(e){const n=C(),s=w().icon,r=S(()=>e.name?s.cssSelectorPrefix+e.name:"");function t(c){if(!c)return;const a=k(c);if(a)return a;const l=n.payload?.data?.[c];if(l)return q(c,l),l}const o=S(()=>"."+oe(r.value));function i(c,a=!0){let l=o.value;s.cssWherePseudo&&(l=`:where(${l})`);const u=ne(c,{iconSelector:l,format:"compressed",customise:F(e.customize,s.customize)});return s.cssLayer&&a?`@layer ${s.cssLayer} { ${u} }`:u}{const c=re();async function a(l){if(c.has(o.value)||typeof document>"u")return;const u=document.createElement("style");u.textContent=i(l);const h=document.head.querySelector('style, link[rel="stylesheet"]');h?document.head.insertBefore(u,h):document.head.appendChild(u),c.add(o.value)}T(()=>e.name,()=>{if(c.has(o.value))return;const l=t(e.name);l?a(l):se(e.name).then(u=>{u&&a(u)}).catch(()=>null)},{immediate:!0})}return()=>I("span",{class:["iconify",r.value]})}}),ie=x({name:"NuxtIconSvg",props:{name:{type:String,required:!0},customize:{type:[Function,Boolean,null],default:null,required:!1}},setup(e,{slots:n}){const s=C(),r=w().icon,t=j(()=>e.name),o="i-"+t.value;if(t.value){const i=s.payload.data[o];i&&q(t.value,i)}return()=>I(P,{icon:t.value,ssr:!0,customise:F(e.customize,r.customize)},n)}}),ae=x({name:"NuxtIcon",props:{name:{type:String,required:!0},mode:{type:String,required:!1,default:null},size:{type:[Number,String],required:!1,default:null},customize:{type:[Function,Boolean,null],default:null,required:!1}},setup(e,{slots:n}){const s=C(),r=w().icon,t=j(()=>e.name),o=S(()=>s.vueApp?.component(t.value)||((e.mode||r.mode)==="svg"?ie:ce)),i=S(()=>{const c=e.size||r.size;return c?{fontSize:Number.isNaN(+c)?c:c+"px"}:null});return()=>I(o.value,{...r.attrs,name:t.value,class:r.class,style:i.value,customize:e.customize},n)}});export{ae as default};
6
+ `)}function ne(e,n={}){const s=n.customise?n.customise(e.body):e.body,r=n.mode||(n.color||!s.includes("currentColor")?"background":"mask");let t=n.varName;t===void 0&&r==="mask"&&(t="svg");const o={...n,mode:r,varName:t};r==="background"&&delete o.varName;const i={...n.rules,...Z(o),...ee({...N,...e,body:s},o)},c=n.iconSelector||".icon";return te([{selector:c,rules:i}],o.format)}async function se(e,n){if(!e)return null;const s=k(e);return s||(await B(e).catch(()=>(console.warn(`[Icon] failed to load icon \`${e}\``),null)),k(e))}function q(e){const n=w().icon,s=(n.collections||[]).sort((r,t)=>t.length-r.length);return S(()=>{const r=e(),t=r.startsWith(n.cssSelectorPrefix)?r.slice(n.cssSelectorPrefix.length):r,o=n.aliases?.[t]||t;if(!o.includes(":")){const i=s.find(c=>o.startsWith(c+"-"));return i?i+":"+o.slice(i.length+1):o}return o})}function F(e,n){if(e!==!1)return e===!0||e===null?n:e}let p;function oe(e){return e.replace(/([^\w-])/g,"\\$1")}function re(){if(p)return p;p=new Set;const e=s=>{if(s=s.replace(/^:where\((.*)\)$/,"$1").trim(),s.startsWith("."))return s},n=s=>{if(s?.length)for(const r of s){r?.cssRules&&n(r.cssRules);const t=r?.selectorText;if(typeof t=="string"){const o=e(t);o&&p.add(o)}}};if(typeof document<"u")for(const s of document.styleSheets)try{const r=s.cssRules||s.rules;n(r)}catch{}return p}const ce=x({name:"NuxtIconCss",props:{name:{type:String,required:!0},customize:{type:[Function,Boolean,null],default:null,required:!1}},setup(e){const n=C(),s=w().icon,r=S(()=>e.name?s.cssSelectorPrefix+e.name:"");function t(c){if(!c)return;const a=k(c);if(a)return a;const l=n.payload?.data?.[c];if(l)return R(c,l),l}const o=S(()=>"."+oe(r.value));function i(c,a=!0){let l=o.value;s.cssWherePseudo&&(l=`:where(${l})`);const u=ne(c,{iconSelector:l,format:"compressed",customise:F(e.customize,s.customize)});return s.cssLayer&&a?`@layer ${s.cssLayer} { ${u} }`:u}{const c=re();async function a(l){if(c.has(o.value)||typeof document>"u")return;const u=document.createElement("style");u.textContent=i(l);const h=document.head.querySelector('style, link[rel="stylesheet"]');h?document.head.insertBefore(u,h):document.head.appendChild(u),c.add(o.value)}T(()=>e.name,()=>{if(c.has(o.value))return;const l=t(e.name);l?a(l):se(e.name).then(u=>{u&&a(u)}).catch(()=>null)},{immediate:!0})}return()=>I("span",{class:["iconify",r.value]})}}),ie=x({name:"NuxtIconSvg",props:{name:{type:String,required:!0},customize:{type:[Function,Boolean,null],default:null,required:!1}},setup(e,{slots:n}){const s=C(),r=w().icon,t=q(()=>e.name),o="i-"+t.value;if(t.value){const i=s.payload.data[o];i&&R(t.value,i)}return()=>I(P,{icon:t.value,ssr:!0,customise:F(e.customize,r.customize)},n)}}),ae=x({name:"NuxtIcon",props:{name:{type:String,required:!0},mode:{type:String,required:!1,default:null},size:{type:[Number,String],required:!1,default:null},customize:{type:[Function,Boolean,null],default:null,required:!1}},setup(e,{slots:n}){const s=C(),r=w().icon,t=q(()=>e.name),o=S(()=>s.vueApp?.component(t.value)||((e.mode||r.mode)==="svg"?ie:ce)),i=S(()=>{const c=e.size||r.size;return c?{fontSize:Number.isNaN(+c)?c:c+"px"}:null});return()=>I(o.value,{...r.attrs,name:t.value,class:r.class,style:i.value,customize:e.customize},n)}});export{ae as default};
@@ -0,0 +1,365 @@
1
+ const HOOK_NAMES = [
2
+ "beforeRun",
3
+ "afterRun",
4
+ "beforeEachTask",
5
+ "afterEachTask",
6
+ "beforeResolveConflicts",
7
+ "afterResolveConflicts",
8
+ "beforeNonCodeTask",
9
+ "afterNonCodeTask",
10
+ "beforeThinkingTask",
11
+ "afterThinkingTask",
12
+ "beforeReviewTask",
13
+ "afterReviewTask",
14
+ "beforeComment",
15
+ "afterComment"
16
+ ];
17
+ function generateFullHooksFile() {
18
+ return `// aidev hooks \u2014 customize the AI task automation pipeline
19
+ //
20
+ // Each export below is an async (context, vm) hook. Return a new/updated context object to
21
+ // change prompts, subtasks, etc.; return nothing to keep the incoming context. Throw to abort
22
+ // the current step (whole run, single task, conflict resolution, etc., depending on the hook).
23
+ //
24
+ // vm: run AI (first available agent), postComment, updateStatus, getComments, log.info/warn/error
25
+ //
26
+ // .ts files are loaded via jiti \u2014 no TypeScript compiler or toolchain needed.
27
+
28
+ // \u2500\u2500\u2500 Context types (mirror aidev's internal shapes \u2014 tweak here for editor hints) \u2500
29
+
30
+ interface RunContext {
31
+ config: Record<string, unknown>;
32
+ filter: string;
33
+ taskCount: number;
34
+ }
35
+
36
+ interface TaskContext {
37
+ task: { id: string; name: string; description: string; status: string; url: string; tags: string[] };
38
+ config: Record<string, unknown>;
39
+ branchName: string;
40
+ prompt: string;
41
+ }
42
+
43
+ interface ResolveConflictsContext {
44
+ task: { id: string; name: string; description: string; status: string; url: string; tags: string[] };
45
+ config: Record<string, unknown>;
46
+ branchName: string;
47
+ conflictFiles: string[];
48
+ prompt: string;
49
+ }
50
+
51
+ interface NonCodeTaskContext {
52
+ task: { id: string; name: string; description: string; status: string; url: string; tags: string[] };
53
+ config: Record<string, unknown>;
54
+ prompt: string;
55
+ }
56
+
57
+ interface ThinkingTaskContext {
58
+ task: { id: string; name: string; description: string; status: string; url: string; tags: string[] };
59
+ config: Record<string, unknown>;
60
+ branchName: string;
61
+ subtasks: Array<{ id: number; title: string; description: string; status: string }>;
62
+ }
63
+
64
+ interface ReviewTaskContext {
65
+ task: { id: string; name: string; description: string; status: string; url: string; tags: string[] };
66
+ config: Record<string, unknown>;
67
+ branchName: string;
68
+ threads: Array<{ id: string; body: string; resolved: boolean }>;
69
+ prompt: string;
70
+ }
71
+
72
+ interface CommentContext {
73
+ task: { id: string; name: string; description: string; status: string; url: string; tags: string[] };
74
+ config: Record<string, unknown>;
75
+ /** The comment text about to be (or already) posted */
76
+ text: string;
77
+ }
78
+
79
+ interface HookVM {
80
+ runAI(prompt: string): Promise<{ success: boolean; output: string; error: string }>;
81
+ postComment(taskId: string, text: string): Promise<void>;
82
+ updateStatus(taskId: string, status: string): Promise<void>;
83
+ getComments(taskId: string): Promise<Array<{ id: string; text: string; author: string }>>;
84
+ log: { info(msg: string): void; warn(msg: string): void; error(msg: string): void };
85
+ }
86
+
87
+ // \u2500\u2500\u2500 Hooks (fill in \u2014 ask an AI: "implement beforeEachTask to append X to the prompt") \u2500
88
+
89
+ /** Once before any task. AI idea: log counts, or throw if CI env var is missing. */
90
+ export async function beforeRun(_context: RunContext, _vm: HookVM): Promise<RunContext | void> {
91
+ return;
92
+ }
93
+
94
+ /** After all tasks in this run. AI idea: post a summary comment or call an external webhook. */
95
+ export async function afterRun(_context: RunContext & { processed: number; skipped: number }, _vm: HookVM): Promise<void> {
96
+ return;
97
+ }
98
+
99
+ /** Before each code task AI run. AI idea: append coding standards or repo-specific rules to context.prompt. */
100
+ export async function beforeEachTask(_context: TaskContext, _vm: HookVM): Promise<TaskContext | void> {
101
+ return;
102
+ }
103
+
104
+ /** After a code task completes the success path (push + review). */
105
+ export async function afterEachTask(_context: TaskContext & { success: boolean }, _vm: HookVM): Promise<void> {
106
+ return;
107
+ }
108
+
109
+ /** Before AI-driven merge conflict resolution. AI idea: tighten context.prompt for your stack. */
110
+ export async function beforeResolveConflicts(_context: ResolveConflictsContext, _vm: HookVM): Promise<ResolveConflictsContext | void> {
111
+ return;
112
+ }
113
+
114
+ /** After conflict resolution; context.resolved is false when all runners failed. */
115
+ export async function afterResolveConflicts(_context: ResolveConflictsContext & { resolved: boolean }, _vm: HookVM): Promise<void> {
116
+ return;
117
+ }
118
+
119
+ /** Before non-code task AI run. AI idea: format context.prompt for ticket-style replies. */
120
+ export async function beforeNonCodeTask(_context: NonCodeTaskContext, _vm: HookVM): Promise<NonCodeTaskContext | void> {
121
+ return;
122
+ }
123
+
124
+ /** After non-code task; context.output is the agent response text posted to the ticket. */
125
+ export async function afterNonCodeTask(_context: NonCodeTaskContext & { success: boolean; output: string }, _vm: HookVM): Promise<void> {
126
+ return;
127
+ }
128
+
129
+ /** After the plan exists, before subtasks run. AI idea: rewrite subtask descriptions for clarity. */
130
+ export async function beforeThinkingTask(_context: ThinkingTaskContext, _vm: HookVM): Promise<ThinkingTaskContext | void> {
131
+ return;
132
+ }
133
+
134
+ /** After all thinking-task subtasks complete. AI idea: notify or archive artifacts. */
135
+ export async function afterThinkingTask(_context: ThinkingTaskContext & { success: boolean }, _vm: HookVM): Promise<void> {
136
+ return;
137
+ }
138
+
139
+ /** Before a review task's unresolved threads are processed. AI idea: filter or prioritise threads. */
140
+ export async function beforeReviewTask(_context: ReviewTaskContext, _vm: HookVM): Promise<ReviewTaskContext | void> {
141
+ return;
142
+ }
143
+
144
+ /** After a review task's threads have been processed. */
145
+ export async function afterReviewTask(_context: ReviewTaskContext & { success: boolean; resolvedCount: number }, _vm: HookVM): Promise<void> {
146
+ return;
147
+ }
148
+
149
+ /** Before a comment is posted. Return modified context to change the text; throw to suppress. */
150
+ export async function beforeComment(_context: CommentContext, _vm: HookVM): Promise<CommentContext | void> {
151
+ return;
152
+ }
153
+
154
+ /** After a comment has been posted. AI idea: append a signature or log the event. */
155
+ export async function afterComment(_context: CommentContext, _vm: HookVM): Promise<void> {
156
+ return;
157
+ }
158
+ `;
159
+ }
160
+ const HOOK_STUBS = {
161
+ beforeRun: {
162
+ namedExport: `/** Once before any task. AI idea: log counts, or throw if CI env var is missing. */
163
+ export async function beforeRun(_context: RunContext, _vm: HookVM): Promise<RunContext | void> {
164
+ return;
165
+ }
166
+ `,
167
+ objectMethod: ` /** Once before any task. AI idea: log counts, or throw if CI env var is missing. */
168
+ async beforeRun(_context: RunContext, _vm: HookVM): Promise<RunContext | void> {
169
+ return;
170
+ },
171
+ `
172
+ },
173
+ afterRun: {
174
+ namedExport: `/** After all tasks in this run. AI idea: post a summary comment or call an external webhook. */
175
+ export async function afterRun(_context: RunContext & { processed: number; skipped: number }, _vm: HookVM): Promise<void> {
176
+ return;
177
+ }
178
+ `,
179
+ objectMethod: ` /** After all tasks in this run. AI idea: post a summary comment or call an external webhook. */
180
+ async afterRun(_context: RunContext & { processed: number; skipped: number }, _vm: HookVM): Promise<void> {
181
+ return;
182
+ },
183
+ `
184
+ },
185
+ beforeEachTask: {
186
+ namedExport: `/** Before each code task AI run. AI idea: append coding standards or repo-specific rules to context.prompt. */
187
+ export async function beforeEachTask(_context: TaskContext, _vm: HookVM): Promise<TaskContext | void> {
188
+ return;
189
+ }
190
+ `,
191
+ objectMethod: ` /** Before each code task AI run. AI idea: append coding standards or repo-specific rules to context.prompt. */
192
+ async beforeEachTask(_context: TaskContext, _vm: HookVM): Promise<TaskContext | void> {
193
+ return;
194
+ },
195
+ `
196
+ },
197
+ afterEachTask: {
198
+ namedExport: `/** After a code task completes the success path (push + review). */
199
+ export async function afterEachTask(_context: TaskContext & { success: boolean }, _vm: HookVM): Promise<void> {
200
+ return;
201
+ }
202
+ `,
203
+ objectMethod: ` /** After a code task completes the success path (push + review). */
204
+ async afterEachTask(_context: TaskContext & { success: boolean }, _vm: HookVM): Promise<void> {
205
+ return;
206
+ },
207
+ `
208
+ },
209
+ beforeResolveConflicts: {
210
+ namedExport: `/** Before AI-driven merge conflict resolution. AI idea: tighten context.prompt for your stack. */
211
+ export async function beforeResolveConflicts(_context: ResolveConflictsContext, _vm: HookVM): Promise<ResolveConflictsContext | void> {
212
+ return;
213
+ }
214
+ `,
215
+ objectMethod: ` /** Before AI-driven merge conflict resolution. AI idea: tighten context.prompt for your stack. */
216
+ async beforeResolveConflicts(_context: ResolveConflictsContext, _vm: HookVM): Promise<ResolveConflictsContext | void> {
217
+ return;
218
+ },
219
+ `
220
+ },
221
+ afterResolveConflicts: {
222
+ namedExport: `/** After conflict resolution; context.resolved is false when all runners failed. */
223
+ export async function afterResolveConflicts(_context: ResolveConflictsContext & { resolved: boolean }, _vm: HookVM): Promise<void> {
224
+ return;
225
+ }
226
+ `,
227
+ objectMethod: ` /** After conflict resolution; context.resolved is false when all runners failed. */
228
+ async afterResolveConflicts(_context: ResolveConflictsContext & { resolved: boolean }, _vm: HookVM): Promise<void> {
229
+ return;
230
+ },
231
+ `
232
+ },
233
+ beforeNonCodeTask: {
234
+ namedExport: `/** Before non-code task AI run. AI idea: format context.prompt for ticket-style replies. */
235
+ export async function beforeNonCodeTask(_context: NonCodeTaskContext, _vm: HookVM): Promise<NonCodeTaskContext | void> {
236
+ return;
237
+ }
238
+ `,
239
+ objectMethod: ` /** Before non-code task AI run. AI idea: format context.prompt for ticket-style replies. */
240
+ async beforeNonCodeTask(_context: NonCodeTaskContext, _vm: HookVM): Promise<NonCodeTaskContext | void> {
241
+ return;
242
+ },
243
+ `
244
+ },
245
+ afterNonCodeTask: {
246
+ namedExport: `/** After non-code task; context.output is the agent response text posted to the ticket. */
247
+ export async function afterNonCodeTask(_context: NonCodeTaskContext & { success: boolean; output: string }, _vm: HookVM): Promise<void> {
248
+ return;
249
+ }
250
+ `,
251
+ objectMethod: ` /** After non-code task; context.output is the agent response text posted to the ticket. */
252
+ async afterNonCodeTask(_context: NonCodeTaskContext & { success: boolean; output: string }, _vm: HookVM): Promise<void> {
253
+ return;
254
+ },
255
+ `
256
+ },
257
+ beforeThinkingTask: {
258
+ namedExport: `/** After the plan exists, before subtasks run. AI idea: rewrite subtask descriptions for clarity. */
259
+ export async function beforeThinkingTask(_context: ThinkingTaskContext, _vm: HookVM): Promise<ThinkingTaskContext | void> {
260
+ return;
261
+ }
262
+ `,
263
+ objectMethod: ` /** After the plan exists, before subtasks run. AI idea: rewrite subtask descriptions for clarity. */
264
+ async beforeThinkingTask(_context: ThinkingTaskContext, _vm: HookVM): Promise<ThinkingTaskContext | void> {
265
+ return;
266
+ },
267
+ `
268
+ },
269
+ afterThinkingTask: {
270
+ namedExport: `/** After all thinking-task subtasks complete. AI idea: notify or archive artifacts. */
271
+ export async function afterThinkingTask(_context: ThinkingTaskContext & { success: boolean }, _vm: HookVM): Promise<void> {
272
+ return;
273
+ }
274
+ `,
275
+ objectMethod: ` /** After all thinking-task subtasks complete. AI idea: notify or archive artifacts. */
276
+ async afterThinkingTask(_context: ThinkingTaskContext & { success: boolean }, _vm: HookVM): Promise<void> {
277
+ return;
278
+ },
279
+ `
280
+ },
281
+ beforeReviewTask: {
282
+ namedExport: `/** Before a review task's unresolved threads are processed. AI idea: filter or prioritise threads. */
283
+ export async function beforeReviewTask(_context: ReviewTaskContext, _vm: HookVM): Promise<ReviewTaskContext | void> {
284
+ return;
285
+ }
286
+ `,
287
+ objectMethod: ` /** Before a review task's unresolved threads are processed. AI idea: filter or prioritise threads. */
288
+ async beforeReviewTask(_context: ReviewTaskContext, _vm: HookVM): Promise<ReviewTaskContext | void> {
289
+ return;
290
+ },
291
+ `
292
+ },
293
+ afterReviewTask: {
294
+ namedExport: `/** After a review task's threads have been processed. */
295
+ export async function afterReviewTask(_context: ReviewTaskContext & { success: boolean; resolvedCount: number }, _vm: HookVM): Promise<void> {
296
+ return;
297
+ }
298
+ `,
299
+ objectMethod: ` /** After a review task's threads have been processed. */
300
+ async afterReviewTask(_context: ReviewTaskContext & { success: boolean; resolvedCount: number }, _vm: HookVM): Promise<void> {
301
+ return;
302
+ },
303
+ `
304
+ },
305
+ beforeComment: {
306
+ namedExport: `/** Before a comment is posted. Return modified context to change the text; throw to suppress. */
307
+ export async function beforeComment(_context: CommentContext, _vm: HookVM): Promise<CommentContext | void> {
308
+ return;
309
+ }
310
+ `,
311
+ objectMethod: ` /** Before a comment is posted. Return modified context to change the text; throw to suppress. */
312
+ async beforeComment(_context: CommentContext, _vm: HookVM): Promise<CommentContext | void> {
313
+ return;
314
+ },
315
+ `
316
+ },
317
+ afterComment: {
318
+ namedExport: `/** After a comment has been posted. AI idea: append a signature or log the event. */
319
+ export async function afterComment(_context: CommentContext, _vm: HookVM): Promise<void> {
320
+ return;
321
+ }
322
+ `,
323
+ objectMethod: ` /** After a comment has been posted. AI idea: append a signature or log the event. */
324
+ async afterComment(_context: CommentContext, _vm: HookVM): Promise<void> {
325
+ return;
326
+ },
327
+ `
328
+ }
329
+ };
330
+ function updateHooksFile(existing) {
331
+ const missing = HOOK_NAMES.filter((name) => !isHookPresent(existing, name));
332
+ if (missing.length === 0) {
333
+ return { content: existing, added: [] };
334
+ }
335
+ const style = detectExportStyle(existing);
336
+ let content = existing;
337
+ if (style === "named") {
338
+ const stubs = missing.map((name) => HOOK_STUBS[name].namedExport).join("\n");
339
+ const separator = content.endsWith("\n") ? "\n" : "\n\n";
340
+ content = content + separator + stubs;
341
+ } else {
342
+ const stubs = missing.map((name) => HOOK_STUBS[name].objectMethod).join("\n");
343
+ const lastBrace = content.lastIndexOf("}");
344
+ if (lastBrace === -1) {
345
+ content = content + "\n" + stubs;
346
+ } else {
347
+ content = content.slice(0, lastBrace) + "\n" + stubs + content.slice(lastBrace);
348
+ }
349
+ }
350
+ return { content, added: missing };
351
+ }
352
+ function isHookPresent(content, name) {
353
+ const namedPattern = new RegExp(`\\bexport\\s+(?:async\\s+)?function\\s+${name}\\b|\\bexport\\s+const\\s+${name}\\b`);
354
+ if (namedPattern.test(content)) return true;
355
+ const objectPattern = new RegExp(`\\b${name}\\s*[:(]`);
356
+ return objectPattern.test(content);
357
+ }
358
+ function detectExportStyle(content) {
359
+ if (/\bexport\s+(?:async\s+)?function\s+\w/.test(content)) return "named";
360
+ if (/\bexport\s+const\s+\w+\s*=\s*async/.test(content)) return "named";
361
+ return "object";
362
+ }
363
+
364
+ export { HOOK_NAMES as H, generateFullHooksFile as g, updateHooksFile as u };
365
+ //# sourceMappingURL=hooksTemplate.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooksTemplate.mjs","sources":["../../../../../src/hooksTemplate.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { _ as __nuxt_component_0, b as useUI, u as useInjectButtonGroup } from './Button-CZHl6fpI.mjs';
1
+ import { _ as __nuxt_component_0, c as useUI, u as useInjectButtonGroup } from './Button-CQZG7w2L.mjs';
2
2
  import { mergeProps, defineComponent, toRef, computed, useSSRContext } from 'vue';
3
3
  import { twJoin } from 'tailwind-merge';
4
4
  import { t as twMerge, a as appConfig, m as mergeConfig } from './server.mjs';
@@ -211,4 +211,4 @@ _sfc_main.setup = (props, ctx) => {
211
211
  const __nuxt_component_6 = /* @__PURE__ */ _export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]);
212
212
 
213
213
  export { __nuxt_component_6 as _ };
214
- //# sourceMappingURL=Badge-YPOjmkfv.mjs.map
214
+ //# sourceMappingURL=Badge-nNgbDd8N.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Badge-YPOjmkfv.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/Badge-YPOjmkfv.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Badge-nNgbDd8N.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/Badge-nNgbDd8N.js"],"names":[],"mappings":"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"}