@qelos/aidev 1.0.0 → 1.0.2

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 (139) hide show
  1. package/dist/commands/ui.d.ts.map +1 -1
  2. package/dist/commands/ui.js +1 -0
  3. package/dist/commands/ui.js.map +1 -1
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +3 -1
  6. package/dist/config.js.map +1 -1
  7. package/dist/providers/base.d.ts +4 -0
  8. package/dist/providers/base.d.ts.map +1 -1
  9. package/dist/providers/clickup.d.ts +3 -0
  10. package/dist/providers/clickup.d.ts.map +1 -1
  11. package/dist/providers/clickup.js +33 -3
  12. package/dist/providers/clickup.js.map +1 -1
  13. package/dist/providers/jira.d.ts +3 -0
  14. package/dist/providers/jira.d.ts.map +1 -1
  15. package/dist/providers/jira.js +39 -0
  16. package/dist/providers/jira.js.map +1 -1
  17. package/dist/providers/linear.d.ts +2 -0
  18. package/dist/providers/linear.d.ts.map +1 -1
  19. package/dist/providers/linear.js +60 -0
  20. package/dist/providers/linear.js.map +1 -1
  21. package/dist/providers/local.d.ts +1 -0
  22. package/dist/providers/local.d.ts.map +1 -1
  23. package/dist/providers/local.js +17 -0
  24. package/dist/providers/local.js.map +1 -1
  25. package/dist/providers/notion.d.ts +1 -0
  26. package/dist/providers/notion.d.ts.map +1 -1
  27. package/dist/providers/notion.js +22 -0
  28. package/dist/providers/notion.js.map +1 -1
  29. package/dist/providers/trello.d.ts +2 -0
  30. package/dist/providers/trello.d.ts.map +1 -1
  31. package/dist/providers/trello.js +75 -0
  32. package/dist/providers/trello.js.map +1 -1
  33. package/package.json +1 -1
  34. package/ui/.output/nitro.json +1 -1
  35. package/ui/.output/public/_nuxt/{qxvJYqtu.js → 2bKOvQ0d.js} +1 -1
  36. package/ui/.output/public/_nuxt/{DQcp3FR_.js → B2vj_HiW.js} +1 -1
  37. package/ui/.output/public/_nuxt/{LmXiirhS.js → B9AVA2DP.js} +1 -1
  38. package/ui/.output/public/_nuxt/{v9BBpVmo.js → Bwm-qAEx.js} +1 -1
  39. package/ui/.output/public/_nuxt/{rG-0aeB1.js → C2BUFUls.js} +1 -1
  40. package/ui/.output/public/_nuxt/{CbcumZrF.js → C7JnlssT.js} +1 -1
  41. package/ui/.output/public/_nuxt/C9wM2XOU.js +70 -0
  42. package/ui/.output/public/_nuxt/{Cybd4n4b.js → CLsTGSNv.js} +1 -1
  43. package/ui/.output/public/_nuxt/{-JbJIqze.js → CYtbVgsc.js} +1 -1
  44. package/ui/.output/public/_nuxt/{YG9hQIUX.js → CgEeSDUJ.js} +1 -1
  45. package/ui/.output/public/_nuxt/{C0MxF24X.js → CjYvNw4D.js} +1 -1
  46. package/ui/.output/public/_nuxt/{CJImEqMV.js → CnlcD-w9.js} +1 -1
  47. package/ui/.output/public/_nuxt/{DBH-q-5h.js → Czg20gUb.js} +1 -1
  48. package/ui/.output/public/_nuxt/{B6CloFTX.js → D7LY3N47.js} +3 -3
  49. package/ui/.output/public/_nuxt/{Cde_Ulqm.js → DCp3GJQW.js} +1 -1
  50. package/ui/.output/public/_nuxt/{BQrd1umS.js → DKIXA6Zt.js} +1 -1
  51. package/ui/.output/public/_nuxt/{BzY5_7kS.js → DL7l9XXk.js} +1 -1
  52. package/ui/.output/public/_nuxt/{yiI_BGHY.js → DWD1xjy0.js} +1 -1
  53. package/ui/.output/public/_nuxt/{mH-IieKd.js → DWMhLzME.js} +1 -1
  54. package/ui/.output/public/_nuxt/{DYTQ_K9y.js → Daca6CiN.js} +1 -1
  55. package/ui/.output/public/_nuxt/{DoGLy6_9.js → DehGGwZq.js} +1 -1
  56. package/ui/.output/public/_nuxt/{CB-qGQpu.js → DqW9UKXb.js} +1 -1
  57. package/ui/.output/public/_nuxt/{BOrBGVUf.js → bW-720fM.js} +1 -1
  58. package/ui/.output/public/_nuxt/builds/latest.json +1 -1
  59. package/ui/.output/public/_nuxt/builds/meta/c6a56b63-9280-455c-96ed-843f8029ca3a.json +1 -0
  60. package/ui/.output/public/_nuxt/{Dd5WWlUa.js → m0N__S0x.js} +1 -1
  61. package/ui/.output/public/_nuxt/tasks.C3nyxPxf.css +1 -0
  62. package/ui/.output/server/chunks/build/Button-Dgqz5RR8.mjs +1 -1
  63. package/ui/.output/server/chunks/build/MarkdownContent-styles.Cmzswe4U.mjs +8 -0
  64. package/ui/.output/server/chunks/build/MarkdownContent-styles.Cmzswe4U.mjs.map +1 -0
  65. package/ui/.output/server/chunks/build/TagsBar-styles.Dl9oYtA7.mjs +8 -0
  66. package/ui/.output/server/chunks/build/TagsBar-styles.Dl9oYtA7.mjs.map +1 -0
  67. package/ui/.output/server/chunks/build/TaskCreateModal-styles.Ctk3K3aq.mjs +8 -0
  68. package/ui/.output/server/chunks/build/TaskCreateModal-styles.Ctk3K3aq.mjs.map +1 -0
  69. package/ui/.output/server/chunks/build/TaskDetailExecute-styles.BOwrZEBG.mjs +8 -0
  70. package/ui/.output/server/chunks/build/TaskDetailExecute-styles.BOwrZEBG.mjs.map +1 -0
  71. package/ui/.output/server/chunks/build/TaskDetailModal-styles.BpZ60PFP.mjs +8 -0
  72. package/ui/.output/server/chunks/build/TaskDetailModal-styles.BpZ60PFP.mjs.map +1 -0
  73. package/ui/.output/server/chunks/build/client.precomputed.mjs +1 -1
  74. package/ui/.output/server/chunks/build/client.precomputed.mjs.map +1 -1
  75. package/ui/.output/server/chunks/build/{entry-styles.CnHWhc9b.mjs → entry-styles.D33dgEBj.mjs} +4 -4
  76. package/ui/.output/server/chunks/build/entry-styles.D33dgEBj.mjs.map +1 -0
  77. package/ui/.output/server/chunks/build/{interval-CNTT4qkc.mjs → interval-Dye37XM9.mjs} +3 -3
  78. package/ui/.output/server/chunks/build/{interval-CNTT4qkc.mjs.map → interval-Dye37XM9.mjs.map} +1 -1
  79. package/ui/.output/server/chunks/build/{logs-CbKQfEiW.mjs → logs-hZKOhIqF.mjs} +3 -3
  80. package/ui/.output/server/chunks/build/{logs-CbKQfEiW.mjs.map → logs-hZKOhIqF.mjs.map} +1 -1
  81. package/ui/.output/server/chunks/build/nuxt-link-B3UD8izG.mjs +1 -1
  82. package/ui/.output/server/chunks/build/server.mjs +3 -3
  83. package/ui/.output/server/chunks/build/styles.mjs +9 -7
  84. package/ui/.output/server/chunks/build/styles.mjs.map +1 -1
  85. package/ui/.output/server/chunks/build/{tasks-CLdWs8cg.mjs → tasks-Bc5VRFpY.mjs} +1011 -331
  86. package/ui/.output/server/chunks/build/tasks-Bc5VRFpY.mjs.map +1 -0
  87. package/ui/.output/server/chunks/build/tasks-styles-4.mjs-D037ZDm6.mjs +4 -0
  88. package/ui/.output/server/chunks/build/tasks-styles-4.mjs-D037ZDm6.mjs.map +1 -0
  89. package/ui/.output/server/chunks/build/tasks-styles-5.mjs-C-8-0itm.mjs +4 -0
  90. package/ui/.output/server/chunks/build/tasks-styles-5.mjs-C-8-0itm.mjs.map +1 -0
  91. package/ui/.output/server/chunks/build/{tasks-styles-4.mjs-eVZp4A8Q.mjs → tasks-styles-6.mjs-eVZp4A8Q.mjs} +1 -1
  92. package/ui/.output/server/chunks/build/tasks-styles-6.mjs-eVZp4A8Q.mjs.map +1 -0
  93. package/ui/.output/server/chunks/build/{tasks-styles-5.mjs-DPUNG0PO.mjs → tasks-styles-7.mjs-DPUNG0PO.mjs} +1 -1
  94. package/ui/.output/server/chunks/build/tasks-styles-7.mjs-DPUNG0PO.mjs.map +1 -0
  95. package/ui/.output/server/chunks/build/tasks-styles-8.mjs-BWrrF67v.mjs +4 -0
  96. package/ui/.output/server/chunks/build/tasks-styles-8.mjs-BWrrF67v.mjs.map +1 -0
  97. package/ui/.output/server/chunks/build/tasks-styles.C7XECkUG.mjs +25 -0
  98. package/ui/.output/server/chunks/build/tasks-styles.C7XECkUG.mjs.map +1 -0
  99. package/ui/.output/server/chunks/nitro/nitro.mjs +222 -188
  100. package/ui/.output/server/chunks/routes/api/config/test.post.mjs +1 -1
  101. package/ui/.output/server/chunks/routes/api/config.get.mjs +1 -1
  102. package/ui/.output/server/chunks/routes/api/config.put.mjs +1 -1
  103. package/ui/.output/server/chunks/routes/api/logs.delete.mjs +1 -1
  104. package/ui/.output/server/chunks/routes/api/logs.get.mjs +1 -1
  105. package/ui/.output/server/chunks/routes/api/run.post.mjs +4 -3
  106. package/ui/.output/server/chunks/routes/api/run.post.mjs.map +1 -1
  107. package/ui/.output/server/chunks/routes/api/schedule/_id_.delete.mjs +1 -1
  108. package/ui/.output/server/chunks/routes/api/schedule.post.mjs +1 -1
  109. package/ui/.output/server/chunks/routes/api/tasks/_id/comment.post.mjs +1 -1
  110. package/ui/.output/server/chunks/routes/api/tasks/_id/execute.post.mjs +4 -2
  111. package/ui/.output/server/chunks/routes/api/tasks/_id/execute.post.mjs.map +1 -1
  112. package/ui/.output/server/chunks/routes/api/tasks/_id/status.post.mjs +1 -1
  113. package/ui/.output/server/chunks/routes/api/tasks/_id_.patch.mjs +20 -5
  114. package/ui/.output/server/chunks/routes/api/tasks/_id_.patch.mjs.map +1 -1
  115. package/ui/.output/server/chunks/routes/api/tasks/statuses.get.mjs +20 -9
  116. package/ui/.output/server/chunks/routes/api/tasks/statuses.get.mjs.map +1 -1
  117. package/ui/.output/server/chunks/routes/api/tasks.get.mjs +19 -3
  118. package/ui/.output/server/chunks/routes/api/tasks.get.mjs.map +1 -1
  119. package/ui/.output/server/chunks/routes/api/tasks.post.mjs +45 -0
  120. package/ui/.output/server/chunks/routes/api/tasks.post.mjs.map +1 -0
  121. package/ui/.output/server/chunks/routes/renderer.mjs +1 -1
  122. package/ui/.output/server/index.mjs +1 -1
  123. package/ui/.output/public/_nuxt/D3tjOrt_.js +0 -70
  124. package/ui/.output/public/_nuxt/builds/meta/d82a45ff-ab57-436a-9e74-0088adfd2cb8.json +0 -1
  125. package/ui/.output/public/_nuxt/tasks.BoC8zK7P.css +0 -1
  126. package/ui/.output/server/chunks/build/MarkdownContent-styles.Xj6NTbfU.mjs +0 -8
  127. package/ui/.output/server/chunks/build/MarkdownContent-styles.Xj6NTbfU.mjs.map +0 -1
  128. package/ui/.output/server/chunks/build/TaskDetailExecute-styles.T37YBLgC.mjs +0 -8
  129. package/ui/.output/server/chunks/build/TaskDetailExecute-styles.T37YBLgC.mjs.map +0 -1
  130. package/ui/.output/server/chunks/build/TaskDetailModal-styles.FkUO4O6f.mjs +0 -8
  131. package/ui/.output/server/chunks/build/TaskDetailModal-styles.FkUO4O6f.mjs.map +0 -1
  132. package/ui/.output/server/chunks/build/entry-styles.CnHWhc9b.mjs.map +0 -1
  133. package/ui/.output/server/chunks/build/tasks-CLdWs8cg.mjs.map +0 -1
  134. package/ui/.output/server/chunks/build/tasks-styles-4.mjs-eVZp4A8Q.mjs.map +0 -1
  135. package/ui/.output/server/chunks/build/tasks-styles-5.mjs-DPUNG0PO.mjs.map +0 -1
  136. package/ui/.output/server/chunks/build/tasks-styles-6.mjs-BeuYvxiU.mjs +0 -4
  137. package/ui/.output/server/chunks/build/tasks-styles-6.mjs-BeuYvxiU.mjs.map +0 -1
  138. package/ui/.output/server/chunks/build/tasks-styles.CqRo0zZf.mjs +0 -21
  139. package/ui/.output/server/chunks/build/tasks-styles.CqRo0zZf.mjs.map +0 -1
@@ -1 +1 @@
1
- import J from"./BzY5_7kS.js";import{_ as q}from"./DlAUqK2U.js";import{N as c,g as f,E as C,r as z,l as A,ah as O,W as b,A as p,Z as M,f as V,P as F,u as P,e as o,K as T,M as _,p as H,R as Q,b as j,z as K,D as x,h as S,i as W,a0 as Z,a1 as X,a4 as Y,a3 as w}from"./B6CloFTX.js";import{_ as ee}from"./-JbJIqze.js";import{u as re}from"./CB-qGQpu.js";const N={to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1}},te=e=>Object.keys(N).reduce((r,t)=>(e[t]!==void 0&&(r[t]=e[t]),r),{});function I(e){return typeof e=="string"?`'${e}'`:new ie().serialize(e)}const ie=(function(){class e{#e=new Map;compare(r,t){const i=typeof r,n=typeof t;return i==="string"&&n==="string"?r.localeCompare(t):i==="number"&&n==="number"?r-t:String.prototype.localeCompare.call(this.serialize(r,!0),this.serialize(t,!0))}serialize(r,t){if(r===null)return"null";switch(typeof r){case"string":return t?r:`'${r}'`;case"bigint":return`${r}n`;case"object":return this.$object(r);case"function":return this.$function(r)}return String(r)}serializeObject(r){const t=Object.prototype.toString.call(r);if(t!=="[object Object]")return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),r);const i=r.constructor,n=i===Object||i===void 0?"":i.name;if(n!==""&&globalThis[n]===i)return this.serializeBuiltInType(n,r);if(typeof r.toJSON=="function"){const s=r.toJSON();return n+(s!==null&&typeof s=="object"?this.$object(s):`(${this.serialize(s)})`)}return this.serializeObjectEntries(n,Object.entries(r))}serializeBuiltInType(r,t){const i=this["$"+r];if(i)return i.call(this,t);if(typeof t?.entries=="function")return this.serializeObjectEntries(r,t.entries());throw new Error(`Cannot serialize ${r}`)}serializeObjectEntries(r,t){const i=Array.from(t).sort((s,d)=>this.compare(s[0],d[0]));let n=`${r}{`;for(let s=0;s<i.length;s++){const[d,l]=i[s];n+=`${this.serialize(d,!0)}:${this.serialize(l)}`,s<i.length-1&&(n+=",")}return n+"}"}$object(r){let t=this.#e.get(r);return t===void 0&&(this.#e.set(r,`#${this.#e.size}`),t=this.serializeObject(r),this.#e.set(r,t)),t}$function(r){const t=Function.prototype.toString.call(r);return t.slice(-15)==="[native code] }"?`${r.name||""}()[native]`:`${r.name}(${r.length})${t.replace(/\s*\n\s*/g,"")}`}$Array(r){let t="[";for(let i=0;i<r.length;i++)t+=this.serialize(r[i]),i<r.length-1&&(t+=",");return t+"]"}$Date(r){try{return`Date(${r.toISOString()})`}catch{return"Date(null)"}}$ArrayBuffer(r){return`ArrayBuffer[${new Uint8Array(r).join(",")}]`}$Set(r){return`Set${this.$Array(Array.from(r).sort((t,i)=>this.compare(t,i)))}`}$Map(r){return this.serializeObjectEntries("Map",r.entries())}}for(const a of["Error","RegExp","URL"])e.prototype["$"+a]=function(r){return`${a}(${r})`};for(const a of["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"])e.prototype["$"+a]=function(r){return`${a}[${r.join(",")}]`};for(const a of["BigInt64Array","BigUint64Array"])e.prototype["$"+a]=function(r){return`${a}[${r.join("n,")}${r.length>0?"n":""}]`};return e})();function E(e,a){return e===a||I(e)===I(a)}const ae=A({props:{name:{type:String,required:!0},mode:{type:String,required:!1,default:null},size:{type:[Number,String],required:!1,default:null},customize:{type:Function,required:!1,default:null}}});function ne(e,a,r,t,i,n){const s=J;return c(),f(s,C(z(e.$props)),null,16)}const D=q(ae,[["render",ne]]);function se(e,a){const r=B(e),t=B(a);return R(r,t)}function R(e,a){const r=[],t=new Set([...Object.keys(e.props||{}),...Object.keys(a.props||{})]);if(e.props&&a.props)for(const i of t){const n=e.props[i],s=a.props[i];n&&s?r.push(...R(e.props?.[i],a.props?.[i])):(n||s)&&r.push(new U((s||n).key,n?"removed":"added",s,n))}return t.size===0&&e.hash!==a.hash&&r.push(new U((a||e).key,"changed",a,e)),r}function B(e,a=""){if(e&&typeof e!="object")return new L(a,e,I(e));const r={},t=[];for(const i in e)r[i]=B(e[i],a?`${a}.${i}`:i),t.push(r[i].hash);return new L(a,e,`{${t.join(":")}}`,r)}class U{constructor(a,r,t,i){this.key=a,this.type=r,this.newValue=t,this.oldValue=i}toString(){return this.toJSON()}toJSON(){switch(this.type){case"added":return`Added \`${this.key}\``;case"removed":return`Removed \`${this.key}\``;case"changed":return`Changed \`${this.key}\` from \`${this.oldValue?.toString()||"-"}\` to \`${this.newValue.toString()}\``}}}class L{constructor(a,r,t,i){this.key=a,this.value=r,this.hash=t,this.props=i}toString(){return this.props?`{${Object.keys(this.props).join(",")}}`:JSON.stringify(this.value)}toJSON(){const a=this.key||".";return this.props?`${a}({${Object.keys(this.props).join(",")}})`:`${a}(${this.value})`}}const oe=A({inheritAttrs:!1,props:{...N,as:{type:String,default:"button"},type:{type:String,default:"button"},disabled:{type:Boolean,default:null},active:{type:Boolean,default:void 0},exact:{type:Boolean,default:!1},exactQuery:{type:[Boolean,String],default:!1},exactHash:{type:Boolean,default:!1},inactiveClass:{type:String,default:void 0}},setup(e){function a(t,i){const n=se(t,i).reduce((l,g)=>(g.type==="added"&&l.add(g.key),l),new Set),s=Object.fromEntries(Object.entries(t).filter(([l])=>!n.has(l))),d=Object.fromEntries(Object.entries(i).filter(([l])=>!n.has(l)));return E(s,d)}function r(t,i,{isActive:n,isExactActive:s}){if(e.exactQuery==="partial"){if(!a(t.query,i.query))return e.inactiveClass}else if(e.exactQuery===!0&&!E(t.query,i.query))return e.inactiveClass;return e.exactHash&&t.hash!==i.hash?e.inactiveClass:e.exact&&s||!e.exact&&n?e.activeClass:e.inactiveClass}return{resolveLinkClass:r}}}),le=["href","aria-disabled","role","rel","target","tabindex","onClick"];function de(e,a,r,t,i,n){const s=ee;return e.to?(c(),f(s,p({key:1},e.$props,{custom:""}),{default:O(({route:d,href:l,target:g,rel:h,navigate:m,isActive:y,isExactActive:v,isExternal:k})=>[V("a",p(e.$attrs,{href:e.disabled?void 0:l,"aria-disabled":e.disabled?"true":void 0,role:e.disabled?"link":void 0,rel:h,target:g,class:e.active!==void 0?e.active?e.activeClass:e.inactiveClass:e.resolveLinkClass(d,e._.provides[F]||e.$route,{isActive:y,isExactActive:v}),tabindex:e.disabled?-1:void 0,onClick:$=>!k&&!e.disabled&&m($)}),[b(e.$slots,"default",C(z({isActive:e.active!==void 0?e.active:e.exact?v:y})))],16,le)]),_:3},16)):(c(),f(M(e.as),p({key:0,type:e.type,disabled:e.disabled},e.$attrs,{class:e.active?e.activeClass:e.inactiveClass}),{default:O(()=>[b(e.$slots,"default",C(z({isActive:e.active})))]),_:3},16,["type","disabled","class"]))}const G=q(oe,[["render",de]]);function ue({ui:e,props:a}){const r=H();if(Q("ButtonGroupContextConsumer",!0),P("ButtonGroupContextConsumer",!1))return{size:o(()=>a.size),rounded:o(()=>e.value.rounded)};let i=r.parent,n;for(;i&&!n;){if(i.type.name==="ButtonGroup"){n=P(`group-${i.uid}`);break}i=i.parent}const s=o(()=>n?.value.children.indexOf(r));return T(()=>{n?.value.register(r)}),_(()=>{n?.value.unregister(r)}),{size:o(()=>n?.value?n?.value.size??e.value.default.size:a.size),rounded:o(()=>!n||s.value===-1?e.value.rounded:n.value.children.length===1?n.value.ui.rounded:s.value===0?n.value.rounded.start:s.value===n.value.children.length-1?n.value.rounded.end:"rounded-none")}}const ce={base:"focus:outline-none focus-visible:outline-0 disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:cursor-not-allowed aria-disabled:opacity-75 flex-shrink-0",font:"font-medium",rounded:"rounded-md",truncate:"text-left break-all line-clamp-1",block:"w-full flex justify-center items-center",inline:"inline-flex items-center",size:{"2xs":"text-xs",xs:"text-xs",sm:"text-sm",md:"text-sm",lg:"text-sm",xl:"text-base"},gap:{"2xs":"gap-x-1",xs:"gap-x-1.5",sm:"gap-x-1.5",md:"gap-x-2",lg:"gap-x-2.5",xl:"gap-x-2.5"},padding:{"2xs":"px-2 py-1",xs:"px-2.5 py-1.5",sm:"px-2.5 py-1.5",md:"px-3 py-2",lg:"px-3.5 py-2.5",xl:"px-3.5 py-2.5"},square:{"2xs":"p-1",xs:"p-1.5",sm:"p-1.5",md:"p-2",lg:"p-2.5",xl:"p-2.5"},color:{white:{solid:"shadow-sm ring-1 ring-inset ring-gray-300 dark:ring-gray-700 text-gray-900 dark:text-white bg-white hover:bg-gray-50 disabled:bg-white aria-disabled:bg-white dark:bg-gray-900 dark:hover:bg-gray-800/50 dark:disabled:bg-gray-900 dark:aria-disabled:bg-gray-900 focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400",ghost:"text-gray-900 dark:text-white hover:bg-white dark:hover:bg-gray-900 focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400"},gray:{solid:"shadow-sm ring-1 ring-inset ring-gray-300 dark:ring-gray-700 text-gray-700 dark:text-gray-200 bg-gray-50 hover:bg-gray-100 disabled:bg-gray-50 aria-disabled:bg-gray-50 dark:bg-gray-800 dark:hover:bg-gray-700/50 dark:disabled:bg-gray-800 dark:aria-disabled:bg-gray-800 focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400",ghost:"text-gray-700 dark:text-gray-200 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-gray-800 focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400",link:"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 underline-offset-4 hover:underline focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400"},black:{solid:"shadow-sm text-white dark:text-gray-900 bg-gray-900 hover:bg-gray-800 disabled:bg-gray-900 aria-disabled:bg-gray-900 dark:bg-white dark:hover:bg-gray-100 dark:disabled:bg-white dark:aria-disabled:bg-white focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400",link:"text-gray-900 dark:text-white underline-offset-4 hover:underline focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400"}},variant:{solid:"shadow-sm text-white dark:text-gray-900 bg-{color}-500 hover:bg-{color}-600 disabled:bg-{color}-500 aria-disabled:bg-{color}-500 dark:bg-{color}-400 dark:hover:bg-{color}-500 dark:disabled:bg-{color}-400 dark:aria-disabled:bg-{color}-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-{color}-500 dark:focus-visible:outline-{color}-400",outline:"ring-1 ring-inset ring-current text-{color}-500 dark:text-{color}-400 hover:bg-{color}-50 disabled:bg-transparent aria-disabled:bg-transparent dark:hover:bg-{color}-950 dark:disabled:bg-transparent dark:aria-disabled:bg-transparent focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400",soft:"text-{color}-500 dark:text-{color}-400 bg-{color}-50 hover:bg-{color}-100 disabled:bg-{color}-50 aria-disabled:bg-{color}-50 dark:bg-{color}-950 dark:hover:bg-{color}-900 dark:disabled:bg-{color}-950 dark:aria-disabled:bg-{color}-950 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400",ghost:"text-{color}-500 dark:text-{color}-400 hover:bg-{color}-50 disabled:bg-transparent aria-disabled:bg-transparent dark:hover:bg-{color}-950 dark:disabled:bg-transparent dark:aria-disabled:bg-transparent focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400",link:"text-{color}-500 hover:text-{color}-600 disabled:text-{color}-500 aria-disabled:text-{color}-500 dark:text-{color}-400 dark:hover:text-{color}-500 dark:disabled:text-{color}-400 dark:aria-disabled:text-{color}-400 underline-offset-4 hover:underline focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400"},icon:{base:"flex-shrink-0",loading:"animate-spin",size:{"2xs":"h-4 w-4",xs:"h-4 w-4",sm:"h-5 w-5",md:"h-5 w-5",lg:"h-5 w-5",xl:"h-6 w-6"}},default:{size:"sm",variant:"solid",color:"primary",loadingIcon:"i-heroicons-arrow-path-20-solid"}},u=K(j.ui.strategy,j.ui.button,ce),ge=A({components:{UIcon:D,ULink:G},inheritAttrs:!1,props:{...N,type:{type:String,default:"button"},block:{type:Boolean,default:!1},label:{type:String,default:null},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},padded:{type:Boolean,default:!0},size:{type:String,default:()=>u.default.size,validator(e){return Object.keys(u.size).includes(e)}},color:{type:String,default:()=>u.default.color,validator(e){return[...j.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(a=>Object.keys(a))].includes(e)}},icon:{type:String,default:null},loadingIcon:{type:String,default:()=>u.default.loadingIcon},leadingIcon:{type:String,default:null},trailingIcon:{type:String,default:null},trailing:{type:Boolean,default:!1},leading:{type:Boolean,default:!1},square:{type:Boolean,default:!1},truncate:{type:Boolean,default:!1},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})}},setup(e,{slots:a}){const{ui:r,attrs:t}=re("button",X(e,"ui"),u),{size:i,rounded:n}=ue({ui:r,props:e}),s=o(()=>e.icon&&e.leading||e.icon&&!e.trailing||e.loading&&!e.trailing||e.leadingIcon),d=o(()=>e.icon&&e.trailing||e.loading&&e.trailing||e.trailingIcon),l=o(()=>e.square||!a.default&&!e.label),g=o(()=>{const $=r.value.color?.[e.color]?.[e.variant]||r.value.variant[e.variant];return Y(w(r.value.base,r.value.font,n.value,r.value.size[i.value],r.value.gap[i.value],e.padded&&r.value[l.value?"square":"padding"][i.value],$?.replaceAll("{color}",e.color),e.block?r.value.block:r.value.inline),e.class)}),h=o(()=>e.loading?e.loadingIcon:e.leadingIcon||e.icon),m=o(()=>e.loading&&!s.value?e.loadingIcon:e.trailingIcon||e.icon),y=o(()=>w(r.value.icon.base,r.value.icon.size[i.value],e.loading&&r.value.icon.loading)),v=o(()=>w(r.value.icon.base,r.value.icon.size[i.value],e.loading&&!s.value&&r.value.icon.loading)),k=o(()=>te(e));return{ui:r,attrs:t,isLeading:s,isTrailing:d,isSquare:l,buttonClass:g,leadingIconName:h,trailingIconName:m,leadingIconClass:y,trailingIconClass:v,linkProps:k}}});function fe(e,a,r,t,i,n){const s=D,d=G;return c(),f(d,p({type:e.type,disabled:e.disabled||e.loading,class:e.buttonClass},{...e.linkProps,...e.attrs}),{default:O(()=>[b(e.$slots,"leading",{disabled:e.disabled,loading:e.loading},()=>[e.isLeading&&e.leadingIconName?(c(),f(s,{key:0,name:e.leadingIconName,class:x(e.leadingIconClass),"aria-hidden":"true"},null,8,["name","class"])):S("",!0)]),b(e.$slots,"default",{},()=>[e.label!==void 0&&e.label!==null?(c(),W("span",{key:0,class:x([e.truncate?e.ui.truncate:""])},Z(e.label),3)):S("",!0)]),b(e.$slots,"trailing",{disabled:e.disabled,loading:e.loading},()=>[e.isTrailing&&e.trailingIconName?(c(),f(s,{key:0,name:e.trailingIconName,class:x(e.trailingIconClass),"aria-hidden":"true"},null,8,["name","class"])):S("",!0)])]),_:3},16,["type","disabled","class"])}const me=q(ge,[["render",fe]]);export{D as _,me as a,ue as u};
1
+ import J from"./DL7l9XXk.js";import{_ as q}from"./DlAUqK2U.js";import{N as c,g as f,E as C,r as z,l as A,ah as O,W as b,A as p,Z as M,f as V,P as F,u as P,e as o,K as T,M as _,p as H,R as Q,b as j,z as K,D as x,h as S,i as W,a0 as Z,a1 as X,a4 as Y,a3 as w}from"./D7LY3N47.js";import{_ as ee}from"./CYtbVgsc.js";import{u as re}from"./DqW9UKXb.js";const N={to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1}},te=e=>Object.keys(N).reduce((r,t)=>(e[t]!==void 0&&(r[t]=e[t]),r),{});function I(e){return typeof e=="string"?`'${e}'`:new ie().serialize(e)}const ie=(function(){class e{#e=new Map;compare(r,t){const i=typeof r,n=typeof t;return i==="string"&&n==="string"?r.localeCompare(t):i==="number"&&n==="number"?r-t:String.prototype.localeCompare.call(this.serialize(r,!0),this.serialize(t,!0))}serialize(r,t){if(r===null)return"null";switch(typeof r){case"string":return t?r:`'${r}'`;case"bigint":return`${r}n`;case"object":return this.$object(r);case"function":return this.$function(r)}return String(r)}serializeObject(r){const t=Object.prototype.toString.call(r);if(t!=="[object Object]")return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),r);const i=r.constructor,n=i===Object||i===void 0?"":i.name;if(n!==""&&globalThis[n]===i)return this.serializeBuiltInType(n,r);if(typeof r.toJSON=="function"){const s=r.toJSON();return n+(s!==null&&typeof s=="object"?this.$object(s):`(${this.serialize(s)})`)}return this.serializeObjectEntries(n,Object.entries(r))}serializeBuiltInType(r,t){const i=this["$"+r];if(i)return i.call(this,t);if(typeof t?.entries=="function")return this.serializeObjectEntries(r,t.entries());throw new Error(`Cannot serialize ${r}`)}serializeObjectEntries(r,t){const i=Array.from(t).sort((s,d)=>this.compare(s[0],d[0]));let n=`${r}{`;for(let s=0;s<i.length;s++){const[d,l]=i[s];n+=`${this.serialize(d,!0)}:${this.serialize(l)}`,s<i.length-1&&(n+=",")}return n+"}"}$object(r){let t=this.#e.get(r);return t===void 0&&(this.#e.set(r,`#${this.#e.size}`),t=this.serializeObject(r),this.#e.set(r,t)),t}$function(r){const t=Function.prototype.toString.call(r);return t.slice(-15)==="[native code] }"?`${r.name||""}()[native]`:`${r.name}(${r.length})${t.replace(/\s*\n\s*/g,"")}`}$Array(r){let t="[";for(let i=0;i<r.length;i++)t+=this.serialize(r[i]),i<r.length-1&&(t+=",");return t+"]"}$Date(r){try{return`Date(${r.toISOString()})`}catch{return"Date(null)"}}$ArrayBuffer(r){return`ArrayBuffer[${new Uint8Array(r).join(",")}]`}$Set(r){return`Set${this.$Array(Array.from(r).sort((t,i)=>this.compare(t,i)))}`}$Map(r){return this.serializeObjectEntries("Map",r.entries())}}for(const a of["Error","RegExp","URL"])e.prototype["$"+a]=function(r){return`${a}(${r})`};for(const a of["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"])e.prototype["$"+a]=function(r){return`${a}[${r.join(",")}]`};for(const a of["BigInt64Array","BigUint64Array"])e.prototype["$"+a]=function(r){return`${a}[${r.join("n,")}${r.length>0?"n":""}]`};return e})();function E(e,a){return e===a||I(e)===I(a)}const ae=A({props:{name:{type:String,required:!0},mode:{type:String,required:!1,default:null},size:{type:[Number,String],required:!1,default:null},customize:{type:Function,required:!1,default:null}}});function ne(e,a,r,t,i,n){const s=J;return c(),f(s,C(z(e.$props)),null,16)}const D=q(ae,[["render",ne]]);function se(e,a){const r=B(e),t=B(a);return R(r,t)}function R(e,a){const r=[],t=new Set([...Object.keys(e.props||{}),...Object.keys(a.props||{})]);if(e.props&&a.props)for(const i of t){const n=e.props[i],s=a.props[i];n&&s?r.push(...R(e.props?.[i],a.props?.[i])):(n||s)&&r.push(new U((s||n).key,n?"removed":"added",s,n))}return t.size===0&&e.hash!==a.hash&&r.push(new U((a||e).key,"changed",a,e)),r}function B(e,a=""){if(e&&typeof e!="object")return new L(a,e,I(e));const r={},t=[];for(const i in e)r[i]=B(e[i],a?`${a}.${i}`:i),t.push(r[i].hash);return new L(a,e,`{${t.join(":")}}`,r)}class U{constructor(a,r,t,i){this.key=a,this.type=r,this.newValue=t,this.oldValue=i}toString(){return this.toJSON()}toJSON(){switch(this.type){case"added":return`Added \`${this.key}\``;case"removed":return`Removed \`${this.key}\``;case"changed":return`Changed \`${this.key}\` from \`${this.oldValue?.toString()||"-"}\` to \`${this.newValue.toString()}\``}}}class L{constructor(a,r,t,i){this.key=a,this.value=r,this.hash=t,this.props=i}toString(){return this.props?`{${Object.keys(this.props).join(",")}}`:JSON.stringify(this.value)}toJSON(){const a=this.key||".";return this.props?`${a}({${Object.keys(this.props).join(",")}})`:`${a}(${this.value})`}}const oe=A({inheritAttrs:!1,props:{...N,as:{type:String,default:"button"},type:{type:String,default:"button"},disabled:{type:Boolean,default:null},active:{type:Boolean,default:void 0},exact:{type:Boolean,default:!1},exactQuery:{type:[Boolean,String],default:!1},exactHash:{type:Boolean,default:!1},inactiveClass:{type:String,default:void 0}},setup(e){function a(t,i){const n=se(t,i).reduce((l,g)=>(g.type==="added"&&l.add(g.key),l),new Set),s=Object.fromEntries(Object.entries(t).filter(([l])=>!n.has(l))),d=Object.fromEntries(Object.entries(i).filter(([l])=>!n.has(l)));return E(s,d)}function r(t,i,{isActive:n,isExactActive:s}){if(e.exactQuery==="partial"){if(!a(t.query,i.query))return e.inactiveClass}else if(e.exactQuery===!0&&!E(t.query,i.query))return e.inactiveClass;return e.exactHash&&t.hash!==i.hash?e.inactiveClass:e.exact&&s||!e.exact&&n?e.activeClass:e.inactiveClass}return{resolveLinkClass:r}}}),le=["href","aria-disabled","role","rel","target","tabindex","onClick"];function de(e,a,r,t,i,n){const s=ee;return e.to?(c(),f(s,p({key:1},e.$props,{custom:""}),{default:O(({route:d,href:l,target:g,rel:h,navigate:m,isActive:y,isExactActive:v,isExternal:k})=>[V("a",p(e.$attrs,{href:e.disabled?void 0:l,"aria-disabled":e.disabled?"true":void 0,role:e.disabled?"link":void 0,rel:h,target:g,class:e.active!==void 0?e.active?e.activeClass:e.inactiveClass:e.resolveLinkClass(d,e._.provides[F]||e.$route,{isActive:y,isExactActive:v}),tabindex:e.disabled?-1:void 0,onClick:$=>!k&&!e.disabled&&m($)}),[b(e.$slots,"default",C(z({isActive:e.active!==void 0?e.active:e.exact?v:y})))],16,le)]),_:3},16)):(c(),f(M(e.as),p({key:0,type:e.type,disabled:e.disabled},e.$attrs,{class:e.active?e.activeClass:e.inactiveClass}),{default:O(()=>[b(e.$slots,"default",C(z({isActive:e.active})))]),_:3},16,["type","disabled","class"]))}const G=q(oe,[["render",de]]);function ue({ui:e,props:a}){const r=H();if(Q("ButtonGroupContextConsumer",!0),P("ButtonGroupContextConsumer",!1))return{size:o(()=>a.size),rounded:o(()=>e.value.rounded)};let i=r.parent,n;for(;i&&!n;){if(i.type.name==="ButtonGroup"){n=P(`group-${i.uid}`);break}i=i.parent}const s=o(()=>n?.value.children.indexOf(r));return T(()=>{n?.value.register(r)}),_(()=>{n?.value.unregister(r)}),{size:o(()=>n?.value?n?.value.size??e.value.default.size:a.size),rounded:o(()=>!n||s.value===-1?e.value.rounded:n.value.children.length===1?n.value.ui.rounded:s.value===0?n.value.rounded.start:s.value===n.value.children.length-1?n.value.rounded.end:"rounded-none")}}const ce={base:"focus:outline-none focus-visible:outline-0 disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:cursor-not-allowed aria-disabled:opacity-75 flex-shrink-0",font:"font-medium",rounded:"rounded-md",truncate:"text-left break-all line-clamp-1",block:"w-full flex justify-center items-center",inline:"inline-flex items-center",size:{"2xs":"text-xs",xs:"text-xs",sm:"text-sm",md:"text-sm",lg:"text-sm",xl:"text-base"},gap:{"2xs":"gap-x-1",xs:"gap-x-1.5",sm:"gap-x-1.5",md:"gap-x-2",lg:"gap-x-2.5",xl:"gap-x-2.5"},padding:{"2xs":"px-2 py-1",xs:"px-2.5 py-1.5",sm:"px-2.5 py-1.5",md:"px-3 py-2",lg:"px-3.5 py-2.5",xl:"px-3.5 py-2.5"},square:{"2xs":"p-1",xs:"p-1.5",sm:"p-1.5",md:"p-2",lg:"p-2.5",xl:"p-2.5"},color:{white:{solid:"shadow-sm ring-1 ring-inset ring-gray-300 dark:ring-gray-700 text-gray-900 dark:text-white bg-white hover:bg-gray-50 disabled:bg-white aria-disabled:bg-white dark:bg-gray-900 dark:hover:bg-gray-800/50 dark:disabled:bg-gray-900 dark:aria-disabled:bg-gray-900 focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400",ghost:"text-gray-900 dark:text-white hover:bg-white dark:hover:bg-gray-900 focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400"},gray:{solid:"shadow-sm ring-1 ring-inset ring-gray-300 dark:ring-gray-700 text-gray-700 dark:text-gray-200 bg-gray-50 hover:bg-gray-100 disabled:bg-gray-50 aria-disabled:bg-gray-50 dark:bg-gray-800 dark:hover:bg-gray-700/50 dark:disabled:bg-gray-800 dark:aria-disabled:bg-gray-800 focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400",ghost:"text-gray-700 dark:text-gray-200 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-gray-800 focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400",link:"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 underline-offset-4 hover:underline focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400"},black:{solid:"shadow-sm text-white dark:text-gray-900 bg-gray-900 hover:bg-gray-800 disabled:bg-gray-900 aria-disabled:bg-gray-900 dark:bg-white dark:hover:bg-gray-100 dark:disabled:bg-white dark:aria-disabled:bg-white focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400",link:"text-gray-900 dark:text-white underline-offset-4 hover:underline focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400"}},variant:{solid:"shadow-sm text-white dark:text-gray-900 bg-{color}-500 hover:bg-{color}-600 disabled:bg-{color}-500 aria-disabled:bg-{color}-500 dark:bg-{color}-400 dark:hover:bg-{color}-500 dark:disabled:bg-{color}-400 dark:aria-disabled:bg-{color}-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-{color}-500 dark:focus-visible:outline-{color}-400",outline:"ring-1 ring-inset ring-current text-{color}-500 dark:text-{color}-400 hover:bg-{color}-50 disabled:bg-transparent aria-disabled:bg-transparent dark:hover:bg-{color}-950 dark:disabled:bg-transparent dark:aria-disabled:bg-transparent focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400",soft:"text-{color}-500 dark:text-{color}-400 bg-{color}-50 hover:bg-{color}-100 disabled:bg-{color}-50 aria-disabled:bg-{color}-50 dark:bg-{color}-950 dark:hover:bg-{color}-900 dark:disabled:bg-{color}-950 dark:aria-disabled:bg-{color}-950 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400",ghost:"text-{color}-500 dark:text-{color}-400 hover:bg-{color}-50 disabled:bg-transparent aria-disabled:bg-transparent dark:hover:bg-{color}-950 dark:disabled:bg-transparent dark:aria-disabled:bg-transparent focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400",link:"text-{color}-500 hover:text-{color}-600 disabled:text-{color}-500 aria-disabled:text-{color}-500 dark:text-{color}-400 dark:hover:text-{color}-500 dark:disabled:text-{color}-400 dark:aria-disabled:text-{color}-400 underline-offset-4 hover:underline focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400"},icon:{base:"flex-shrink-0",loading:"animate-spin",size:{"2xs":"h-4 w-4",xs:"h-4 w-4",sm:"h-5 w-5",md:"h-5 w-5",lg:"h-5 w-5",xl:"h-6 w-6"}},default:{size:"sm",variant:"solid",color:"primary",loadingIcon:"i-heroicons-arrow-path-20-solid"}},u=K(j.ui.strategy,j.ui.button,ce),ge=A({components:{UIcon:D,ULink:G},inheritAttrs:!1,props:{...N,type:{type:String,default:"button"},block:{type:Boolean,default:!1},label:{type:String,default:null},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},padded:{type:Boolean,default:!0},size:{type:String,default:()=>u.default.size,validator(e){return Object.keys(u.size).includes(e)}},color:{type:String,default:()=>u.default.color,validator(e){return[...j.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(a=>Object.keys(a))].includes(e)}},icon:{type:String,default:null},loadingIcon:{type:String,default:()=>u.default.loadingIcon},leadingIcon:{type:String,default:null},trailingIcon:{type:String,default:null},trailing:{type:Boolean,default:!1},leading:{type:Boolean,default:!1},square:{type:Boolean,default:!1},truncate:{type:Boolean,default:!1},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})}},setup(e,{slots:a}){const{ui:r,attrs:t}=re("button",X(e,"ui"),u),{size:i,rounded:n}=ue({ui:r,props:e}),s=o(()=>e.icon&&e.leading||e.icon&&!e.trailing||e.loading&&!e.trailing||e.leadingIcon),d=o(()=>e.icon&&e.trailing||e.loading&&e.trailing||e.trailingIcon),l=o(()=>e.square||!a.default&&!e.label),g=o(()=>{const $=r.value.color?.[e.color]?.[e.variant]||r.value.variant[e.variant];return Y(w(r.value.base,r.value.font,n.value,r.value.size[i.value],r.value.gap[i.value],e.padded&&r.value[l.value?"square":"padding"][i.value],$?.replaceAll("{color}",e.color),e.block?r.value.block:r.value.inline),e.class)}),h=o(()=>e.loading?e.loadingIcon:e.leadingIcon||e.icon),m=o(()=>e.loading&&!s.value?e.loadingIcon:e.trailingIcon||e.icon),y=o(()=>w(r.value.icon.base,r.value.icon.size[i.value],e.loading&&r.value.icon.loading)),v=o(()=>w(r.value.icon.base,r.value.icon.size[i.value],e.loading&&!s.value&&r.value.icon.loading)),k=o(()=>te(e));return{ui:r,attrs:t,isLeading:s,isTrailing:d,isSquare:l,buttonClass:g,leadingIconName:h,trailingIconName:m,leadingIconClass:y,trailingIconClass:v,linkProps:k}}});function fe(e,a,r,t,i,n){const s=D,d=G;return c(),f(d,p({type:e.type,disabled:e.disabled||e.loading,class:e.buttonClass},{...e.linkProps,...e.attrs}),{default:O(()=>[b(e.$slots,"leading",{disabled:e.disabled,loading:e.loading},()=>[e.isLeading&&e.leadingIconName?(c(),f(s,{key:0,name:e.leadingIconName,class:x(e.leadingIconClass),"aria-hidden":"true"},null,8,["name","class"])):S("",!0)]),b(e.$slots,"default",{},()=>[e.label!==void 0&&e.label!==null?(c(),W("span",{key:0,class:x([e.truncate?e.ui.truncate:""])},Z(e.label),3)):S("",!0)]),b(e.$slots,"trailing",{disabled:e.disabled,loading:e.loading},()=>[e.isTrailing&&e.trailingIconName?(c(),f(s,{key:0,name:e.trailingIconName,class:x(e.trailingIconClass),"aria-hidden":"true"},null,8,["name","class"])):S("",!0)])]),_:3},16,["type","disabled","class"])}const me=q(ge,[["render",fe]]);export{D as _,me as a,ue as u};
@@ -1 +1 @@
1
- import{g as l,ah as g,i as r,W as o,D as d,h as i,A as p,Z as b,l as c,e as f,z as m,b as u,N as s,a1 as y,a4 as k,a3 as v}from"./B6CloFTX.js";import{u as h}from"./CB-qGQpu.js";import{_ as $}from"./DlAUqK2U.js";const C={base:"",background:"bg-white dark:bg-gray-900",divide:"divide-y divide-gray-200 dark:divide-gray-800",ring:"ring-1 ring-gray-200 dark:ring-gray-800",rounded:"rounded-lg",shadow:"shadow",body:{base:"",background:"",padding:"px-4 py-5 sm:p-6"},header:{base:"",background:"",padding:"px-4 py-5 sm:px-6"},footer:{base:"",background:"",padding:"px-4 py-4 sm:px-6"}},w=m(u.ui.strategy,u.ui.card,C),S=c({inheritAttrs:!1,props:{as:{type:String,default:"div"},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})}},setup(a){const{ui:e,attrs:n}=h("card",y(a,"ui"),w),t=f(()=>k(v(e.value.base,e.value.rounded,e.value.divide,e.value.ring,e.value.shadow,e.value.background),a.class));return{ui:e,attrs:n,cardClass:t}}});function A(a,e,n,t,B,j){return s(),l(b(a.$attrs.onSubmit?"form":a.as),p({class:a.cardClass},a.attrs),{default:g(()=>[a.$slots.header?(s(),r("div",{key:0,class:d([a.ui.header.base,a.ui.header.padding,a.ui.header.background])},[o(a.$slots,"header")],2)):i("",!0),a.$slots.default?(s(),r("div",{key:1,class:d([a.ui.body.base,a.ui.body.padding,a.ui.body.background])},[o(a.$slots,"default")],2)):i("",!0),a.$slots.footer?(s(),r("div",{key:2,class:d([a.ui.footer.base,a.ui.footer.padding,a.ui.footer.background])},[o(a.$slots,"footer")],2)):i("",!0)]),_:3},16,["class"])}const O=$(S,[["render",A]]);export{O as _};
1
+ import{g as l,ah as g,i as r,W as o,D as d,h as i,A as p,Z as b,l as c,e as f,z as m,b as u,N as s,a1 as y,a4 as k,a3 as v}from"./D7LY3N47.js";import{u as h}from"./DqW9UKXb.js";import{_ as $}from"./DlAUqK2U.js";const C={base:"",background:"bg-white dark:bg-gray-900",divide:"divide-y divide-gray-200 dark:divide-gray-800",ring:"ring-1 ring-gray-200 dark:ring-gray-800",rounded:"rounded-lg",shadow:"shadow",body:{base:"",background:"",padding:"px-4 py-5 sm:p-6"},header:{base:"",background:"",padding:"px-4 py-5 sm:px-6"},footer:{base:"",background:"",padding:"px-4 py-4 sm:px-6"}},w=m(u.ui.strategy,u.ui.card,C),S=c({inheritAttrs:!1,props:{as:{type:String,default:"div"},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})}},setup(a){const{ui:e,attrs:n}=h("card",y(a,"ui"),w),t=f(()=>k(v(e.value.base,e.value.rounded,e.value.divide,e.value.ring,e.value.shadow,e.value.background),a.class));return{ui:e,attrs:n,cardClass:t}}});function A(a,e,n,t,B,j){return s(),l(b(a.$attrs.onSubmit?"form":a.as),p({class:a.cardClass},a.attrs),{default:g(()=>[a.$slots.header?(s(),r("div",{key:0,class:d([a.ui.header.base,a.ui.header.padding,a.ui.header.background])},[o(a.$slots,"header")],2)):i("",!0),a.$slots.default?(s(),r("div",{key:1,class:d([a.ui.body.base,a.ui.body.padding,a.ui.body.background])},[o(a.$slots,"default")],2)):i("",!0),a.$slots.footer?(s(),r("div",{key:2,class:d([a.ui.footer.base,a.ui.footer.padding,a.ui.footer.background])},[o(a.$slots,"footer")],2)):i("",!0)]),_:3},16,["class"])}const O=$(S,[["render",A]]);export{O as _};
@@ -1,4 +1,4 @@
1
- import{a6 as w,e as S,q as k,x as B,l as x,aa as C,af as T,s as I,a as q,I as P}from"./B6CloFTX.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{a6 as w,e as S,q as k,x as B,l as x,aa as C,af as T,s as I,a as q,I as P}from"./D7LY3N47.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:`; }
2
2
  `,expanded:`;
3
3
  }
4
4
  `},rule:{compressed:"{key}:",compact:" {key}: ",expanded:`
@@ -1,2 +1,2 @@
1
- import{a as q}from"./Cde_Ulqm.js";import{_ as D}from"./Cybd4n4b.js";import{_ as O}from"./mH-IieKd.js";import{_ as F}from"./DQcp3FR_.js";import{_ as G}from"./rG-0aeB1.js";import{s as J,_ as K}from"./BOrBGVUf.js";import{_ as Q}from"./BQrd1umS.js";import{_ as W}from"./CJImEqMV.js";import{u as X}from"./Dd5WWlUa.js";import{l as Y,af as U,K as Z,J as ee,i as a,k as i,ah as r,v as V,a5 as t,U as d,C as te,N as s,g as oe,h as S,f as l,a0 as u,j as c}from"./B6CloFTX.js";import{_ as le}from"./DlAUqK2U.js";import"./BzY5_7kS.js";import"./-JbJIqze.js";import"./CB-qGQpu.js";const se={class:"logs-page"},ne={class:"flex items-center justify-between gap-3 flex-wrap"},ae={class:"text-xs text-gray-500 mt-1"},ie={key:0,class:"ml-2 text-amber-600"},re={key:1,class:"ml-2 text-gray-500"},ue={key:0},de={class:"flex items-center gap-2"},me={class:"controls"},ce={class:"autopoll"},pe={key:1,class:"meta"},fe={key:0},_e={key:1},ge={key:2,class:"empty"},ve={class:"empty-sub"},ye={key:3,class:"empty"},xe={key:0,class:"empty-sub"},be={key:1,class:"empty-sub"},he={class:"text-sm text-gray-600"},ke={class:"flex justify-end gap-2"},Se=Y({__name:"logs",setup(we){const T=X(),o=d(null),w=d(!1),g=d(""),v=d(""),p=d(""),y=d(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=d(!0),f=d(!1),b=d(!1),L=d(null);let C=null,h=null;async function k(n={}){w.value=!0,g.value="";try{const e=new URLSearchParams;e.set("limit",String(y.value)),p.value&&e.set("q",p.value);const _=`/api/logs?${e.toString()}`;o.value=await T(_),n.keepScroll||(await te(),M())}catch(e){g.value=e instanceof Error?e.message:String(e)}finally{w.value=!1}}function M(){const n=L.value;n&&(n.scrollTop=n.scrollHeight)}async function P(){b.value=!0;try{await T("/api/logs",{method:"DELETE"}),f.value=!1,await k()}catch(n){g.value=n instanceof Error?n.message:String(n)}finally{b.value=!1}}U(v,n=>{h&&clearTimeout(h),h=setTimeout(()=>{p.value=n},300)}),U([p,y],()=>{k()});function B(){E(),x.value&&(C=J(()=>{typeof document<"u"&&document.visibilityState!=="visible"||k({keepScroll:!0})},5e3))}function E(){C&&(clearInterval(C),C=null)}return U(x,B),Z(()=>{k(),B()}),ee(()=>{E(),h&&clearTimeout(h)}),(n,e)=>{const _=q,$=D,z=O,N=F,A=G,H=K,I=Q,R=W;return s(),a("div",se,[i(I,null,{header:r(()=>[l("div",ne,[l("div",null,[e[6]||(e[6]=l("h1",{class:"text-lg font-semibold"},"Logs",-1)),l("p",ae,[l("code",null,u(t(o)?.path||"—"),1),t(o)&&!t(o).exists?(s(),a("span",ie,"not found")):t(o)?(s(),a("span",re,[c(u(t(o).total.toLocaleString())+" line(s) total",1),t(o).truncated?(s(),a("span",ue,", tailing last "+u(t(o).limit.toLocaleString()),1)):S("",!0)])):S("",!0)])]),l("div",de,[i(_,{color:"gray",variant:"ghost",size:"sm",loading:t(w),disabled:t(w),onClick:k},{default:r(()=>[...e[7]||(e[7]=[c(" Refresh ",-1)])]),_:1},8,["loading","disabled"]),i(_,{color:"red",variant:"soft",size:"sm",disabled:!t(o)?.exists||t(o)?.total===0||t(b),onClick:e[0]||(e[0]=m=>f.value=!0)},{default:r(()=>[...e[8]||(e[8]=[c(" Clear log ",-1)])]),_:1},8,["disabled"])])])]),default:r(()=>[t(g)?(s(),oe($,{key:0,color:"red",variant:"soft",title:t(g),class:"mb-3"},null,8,["title"])):S("",!0),l("div",me,[i(N,{label:"Search",class:"search-group"},{default:r(()=>[i(z,{modelValue:t(v),"onUpdate:modelValue":e[1]||(e[1]=m=>V(v)?v.value=m:null),placeholder:"Case-insensitive substring filter…",icon:"i-heroicons-magnifying-glass",loading:t(v)!==t(p)},null,8,["modelValue","loading"])]),_:1}),i(N,{label:"Tail lines",class:"tail-group"},{default:r(()=>[i(A,{modelValue:t(y),"onUpdate:modelValue":e[2]||(e[2]=m=>V(y)?y.value=m:null),modelModifiers:{number:!0},options:j},null,8,["modelValue"])]),_:1}),l("div",ce,[i(H,{modelValue:t(x),"onUpdate:modelValue":e[3]||(e[3]=m=>V(x)?x.value=m:null),label:"Auto-refresh (5s)"},null,8,["modelValue"])])]),t(o)?(s(),a("div",pe,[t(p)?(s(),a("span",fe," Showing "+u(t(o).shown.toLocaleString())+" match(es) in last "+u(Math.min(t(o).total,t(o).limit).toLocaleString())+" line(s) ",1)):(s(),a("span",_e," Showing last "+u(t(o).shown.toLocaleString())+" line(s) ",1))])):S("",!0),t(o)&&!t(o).exists?(s(),a("div",ge,[e[11]||(e[11]=l("p",{class:"empty-title"},"Log file does not exist yet",-1)),l("p",ve,[e[9]||(e[9]=c(" aidev creates it on first run. Once ",-1)),l("code",null,u(t(o).path),1),e[10]||(e[10]=c(" exists, lines will appear here. ",-1))])])):t(o)&&t(o).lines.length===0?(s(),a("div",ye,[e[12]||(e[12]=l("p",{class:"empty-title"},"No matching lines",-1)),t(p)?(s(),a("p",xe," Nothing in the last "+u(t(o).limit.toLocaleString())+" lines matches “"+u(t(p))+"”. ",1)):(s(),a("p",be," The log file is empty. "))])):t(o)?(s(),a("pre",{key:4,ref_key:"viewer",ref:L,class:"viewer"},[l("code",null,u(t(o).lines.join(`
1
+ import{a as q}from"./DCp3GJQW.js";import{_ as D}from"./CLsTGSNv.js";import{_ as O}from"./DWMhLzME.js";import{_ as F}from"./B2vj_HiW.js";import{_ as G}from"./C2BUFUls.js";import{s as J,_ as K}from"./bW-720fM.js";import{_ as Q}from"./DKIXA6Zt.js";import{_ as W}from"./CnlcD-w9.js";import{u as X}from"./m0N__S0x.js";import{l as Y,af as U,K as Z,J as ee,i as a,k as i,ah as r,v as V,a5 as t,U as d,C as te,N as s,g as oe,h as S,f as l,a0 as u,j as c}from"./D7LY3N47.js";import{_ as le}from"./DlAUqK2U.js";import"./DL7l9XXk.js";import"./CYtbVgsc.js";import"./DqW9UKXb.js";const se={class:"logs-page"},ne={class:"flex items-center justify-between gap-3 flex-wrap"},ae={class:"text-xs text-gray-500 mt-1"},ie={key:0,class:"ml-2 text-amber-600"},re={key:1,class:"ml-2 text-gray-500"},ue={key:0},de={class:"flex items-center gap-2"},me={class:"controls"},ce={class:"autopoll"},pe={key:1,class:"meta"},fe={key:0},_e={key:1},ge={key:2,class:"empty"},ve={class:"empty-sub"},ye={key:3,class:"empty"},xe={key:0,class:"empty-sub"},be={key:1,class:"empty-sub"},he={class:"text-sm text-gray-600"},ke={class:"flex justify-end gap-2"},Se=Y({__name:"logs",setup(we){const T=X(),o=d(null),w=d(!1),g=d(""),v=d(""),p=d(""),y=d(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=d(!0),f=d(!1),b=d(!1),L=d(null);let C=null,h=null;async function k(n={}){w.value=!0,g.value="";try{const e=new URLSearchParams;e.set("limit",String(y.value)),p.value&&e.set("q",p.value);const _=`/api/logs?${e.toString()}`;o.value=await T(_),n.keepScroll||(await te(),M())}catch(e){g.value=e instanceof Error?e.message:String(e)}finally{w.value=!1}}function M(){const n=L.value;n&&(n.scrollTop=n.scrollHeight)}async function P(){b.value=!0;try{await T("/api/logs",{method:"DELETE"}),f.value=!1,await k()}catch(n){g.value=n instanceof Error?n.message:String(n)}finally{b.value=!1}}U(v,n=>{h&&clearTimeout(h),h=setTimeout(()=>{p.value=n},300)}),U([p,y],()=>{k()});function B(){E(),x.value&&(C=J(()=>{typeof document<"u"&&document.visibilityState!=="visible"||k({keepScroll:!0})},5e3))}function E(){C&&(clearInterval(C),C=null)}return U(x,B),Z(()=>{k(),B()}),ee(()=>{E(),h&&clearTimeout(h)}),(n,e)=>{const _=q,$=D,z=O,N=F,A=G,H=K,I=Q,R=W;return s(),a("div",se,[i(I,null,{header:r(()=>[l("div",ne,[l("div",null,[e[6]||(e[6]=l("h1",{class:"text-lg font-semibold"},"Logs",-1)),l("p",ae,[l("code",null,u(t(o)?.path||"—"),1),t(o)&&!t(o).exists?(s(),a("span",ie,"not found")):t(o)?(s(),a("span",re,[c(u(t(o).total.toLocaleString())+" line(s) total",1),t(o).truncated?(s(),a("span",ue,", tailing last "+u(t(o).limit.toLocaleString()),1)):S("",!0)])):S("",!0)])]),l("div",de,[i(_,{color:"gray",variant:"ghost",size:"sm",loading:t(w),disabled:t(w),onClick:k},{default:r(()=>[...e[7]||(e[7]=[c(" Refresh ",-1)])]),_:1},8,["loading","disabled"]),i(_,{color:"red",variant:"soft",size:"sm",disabled:!t(o)?.exists||t(o)?.total===0||t(b),onClick:e[0]||(e[0]=m=>f.value=!0)},{default:r(()=>[...e[8]||(e[8]=[c(" Clear log ",-1)])]),_:1},8,["disabled"])])])]),default:r(()=>[t(g)?(s(),oe($,{key:0,color:"red",variant:"soft",title:t(g),class:"mb-3"},null,8,["title"])):S("",!0),l("div",me,[i(N,{label:"Search",class:"search-group"},{default:r(()=>[i(z,{modelValue:t(v),"onUpdate:modelValue":e[1]||(e[1]=m=>V(v)?v.value=m:null),placeholder:"Case-insensitive substring filter…",icon:"i-heroicons-magnifying-glass",loading:t(v)!==t(p)},null,8,["modelValue","loading"])]),_:1}),i(N,{label:"Tail lines",class:"tail-group"},{default:r(()=>[i(A,{modelValue:t(y),"onUpdate:modelValue":e[2]||(e[2]=m=>V(y)?y.value=m:null),modelModifiers:{number:!0},options:j},null,8,["modelValue"])]),_:1}),l("div",ce,[i(H,{modelValue:t(x),"onUpdate:modelValue":e[3]||(e[3]=m=>V(x)?x.value=m:null),label:"Auto-refresh (5s)"},null,8,["modelValue"])])]),t(o)?(s(),a("div",pe,[t(p)?(s(),a("span",fe," Showing "+u(t(o).shown.toLocaleString())+" match(es) in last "+u(Math.min(t(o).total,t(o).limit).toLocaleString())+" line(s) ",1)):(s(),a("span",_e," Showing last "+u(t(o).shown.toLocaleString())+" line(s) ",1))])):S("",!0),t(o)&&!t(o).exists?(s(),a("div",ge,[e[11]||(e[11]=l("p",{class:"empty-title"},"Log file does not exist yet",-1)),l("p",ve,[e[9]||(e[9]=c(" aidev creates it on first run. Once ",-1)),l("code",null,u(t(o).path),1),e[10]||(e[10]=c(" exists, lines will appear here. ",-1))])])):t(o)&&t(o).lines.length===0?(s(),a("div",ye,[e[12]||(e[12]=l("p",{class:"empty-title"},"No matching lines",-1)),t(p)?(s(),a("p",xe," Nothing in the last "+u(t(o).limit.toLocaleString())+" lines matches “"+u(t(p))+"”. ",1)):(s(),a("p",be," The log file is empty. "))])):t(o)?(s(),a("pre",{key:4,ref_key:"viewer",ref:L,class:"viewer"},[l("code",null,u(t(o).lines.join(`
2
2
  `)),1)],512)):S("",!0)]),_:1}),i(R,{modelValue:t(f),"onUpdate:modelValue":e[5]||(e[5]=m=>V(f)?f.value=m:null)},{default:r(()=>[i(I,null,{header:r(()=>[...e[13]||(e[13]=[l("h3",{class:"text-base font-semibold"},"Clear log file?",-1)])]),footer:r(()=>[l("div",ke,[i(_,{variant:"ghost",color:"gray",disabled:t(b),onClick:e[4]||(e[4]=m=>f.value=!1)},{default:r(()=>[...e[16]||(e[16]=[c(" Cancel ",-1)])]),_:1},8,["disabled"]),i(_,{color:"red",loading:t(b),onClick:P},{default:r(()=>[...e[17]||(e[17]=[c(" Clear log ",-1)])]),_:1},8,["loading"])])]),default:r(()=>[l("p",he,[e[14]||(e[14]=c(" This truncates ",-1)),l("code",null,u(t(o)?.path),1),e[15]||(e[15]=c(" to zero bytes. The file itself stays in place. This cannot be undone. ",-1))])]),_:1})]),_:1},8,["modelValue"])])}}}),Ae=le(Se,[["__scopeId","data-v-d2744000"]]);export{Ae as default};
@@ -1 +1 @@
1
- import{_ as A,u as X}from"./Cde_Ulqm.js";import{a2 as V,u as B,e as u,U as F,N as S,i as N,f as Y,A as Z,W as j,D as b,h as W,l as P,m as _,K as x,b as z,z as ee,y as ae,k as $,a1 as w,a4 as ne,a3 as C}from"./B6CloFTX.js";import{u as le,i as ie}from"./CB-qGQpu.js";import{_ as te}from"./DlAUqK2U.js";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const G=()=>{};function oe(e,n){function t(...a){return new Promise((l,r)=>{Promise.resolve(e(()=>n.apply(this,a),{fn:n,thisArg:this,args:a})).then(l).catch(r)})}return t}function ue(e,n={}){let t,a,l=G;const r=c=>{clearTimeout(c),l(),l=G};let d;return c=>{const v=V(e),o=V(n.maxWait);return t&&r(t),v<=0||o!==void 0&&o<=0?(a&&(r(a),a=void 0),Promise.resolve(c())):new Promise((f,y)=>{l=n.rejectOnCancel?y:f,d=c,o&&!a&&(a=setTimeout(()=>{t&&r(t),a=void 0,f(d())},o)),t=setTimeout(()=>{a&&r(a),a=void 0,f(c())},v)})}}function re(e,n=200,t={}){return oe(ue(n,t),e)}const se=(e,n,t=!0)=>{const a=B("form-events",void 0),l=B("form-group",void 0),r=B("form-inputs",void 0);l&&(!t||e?.legend?l.inputId.value=void 0:e?.id&&(l.inputId.value=e?.id),r&&(r.value[l.name.value]=l.inputId.value));const d=F(!1);function s(f,y){a&&a.emit({type:f,path:y})}function c(){s("blur",l?.name.value),d.value=!0}function v(){s("change",l?.name.value)}const o=re(()=>{(d.value||l?.eagerValidation.value)&&s("input",l?.name.value)},300);return{inputId:u(()=>e?.id??l?.inputId.value),name:u(()=>e?.name??l?.name.value),size:u(()=>{const f=n.size[l?.size.value]?l?.size.value:null;return e?.size??f??n.default?.size}),color:u(()=>l?.error?.value?"red":e?.color),emitFormBlur:c,emitFormInput:o,emitFormChange:v}},g=ee(z.ui.strategy,z.ui.input,ie),de=P({components:{UIcon:A},inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:"text"},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},autofocus:{type:Boolean,default:!1},autofocusDelay:{type:Number,default:100},icon:{type:String,default:null},loadingIcon:{type:String,default:()=>g.default.loadingIcon},leadingIcon:{type:String,default:null},trailingIcon:{type:String,default:null},trailing:{type:Boolean,default:!1},leading:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},padded:{type:Boolean,default:!0},size:{type:String,default:null,validator(e){return Object.keys(g.size).includes(e)}},color:{type:String,default:()=>g.default.color,validator(e){return[...z.ui.colors,...Object.keys(g.color)].includes(e)}},variant:{type:String,default:()=>g.default.variant,validator(e){return[...Object.keys(g.variant),...Object.values(g.color).flatMap(n=>Object.keys(n))].includes(e)}},inputClass:{type:String,default:null},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})},modelModifiers:{type:Object,default:()=>({})}},emits:["update:modelValue","blur","change"],setup(e,{emit:n,slots:t}){const{ui:a,attrs:l}=le("input",w(e,"ui"),g,w(e,"class")),{size:r,rounded:d}=X({ui:a,props:e}),{emitFormBlur:s,emitFormInput:c,size:v,color:o,inputId:f,name:y}=se(e,g),m=u(()=>r.value??v.value),p=F(_({},e.modelModifiers,{trim:!1,lazy:!1,number:!1,nullify:!1})),k=F(null),M=()=>{e.autofocus&&k.value?.focus()},T=i=>{p.value.trim&&(i=i.trim()),(p.value.number||e.type==="number")&&(i=ae(i)),p.value.nullify&&(i||=null),n("update:modelValue",i),c()},D=i=>{p.value.lazy||T(i.target.value)},q=i=>{if(e.type==="file"){const I=i.target.files;n("change",I)}else{const I=i.target.value;n("change",I),p.value.lazy&&T(I),p.value.trim&&(i.target.value=I.trim())}},U=i=>{s(),n("blur",i)};x(()=>{setTimeout(()=>{M()},e.autofocusDelay)});const E=u(()=>{const i=a.value.color?.[o.value]?.[e.variant]||a.value.variant[e.variant];return ne(C(a.value.base,a.value.form,d.value,a.value.placeholder,e.type==="file"&&a.value.file.base,a.value.size[m.value],e.padded?a.value.padding[m.value]:"p-0",i?.replaceAll("{color}",o.value),(h.value||t.leading)&&a.value.leading.padding[m.value],(O.value||t.trailing)&&a.value.trailing.padding[m.value]),e.inputClass)}),h=u(()=>e.icon&&e.leading||e.icon&&!e.trailing||e.loading&&!e.trailing||e.leadingIcon),O=u(()=>e.icon&&e.trailing||e.loading&&e.trailing||e.trailingIcon),L=u(()=>e.loading?e.loadingIcon:e.leadingIcon||e.icon),R=u(()=>e.loading&&!h.value?e.loadingIcon:e.trailingIcon||e.icon),J=u(()=>C(a.value.icon.leading.wrapper,a.value.icon.leading.pointer,a.value.icon.leading.padding[m.value])),K=u(()=>C(a.value.icon.base,o.value&&z.ui.colors.includes(o.value)&&a.value.icon.color.replaceAll("{color}",o.value),a.value.icon.size[m.value],e.loading&&a.value.icon.loading)),H=u(()=>C(a.value.icon.trailing.wrapper,a.value.icon.trailing.pointer,a.value.icon.trailing.padding[m.value])),Q=u(()=>C(a.value.icon.base,o.value&&z.ui.colors.includes(o.value)&&a.value.icon.color.replaceAll("{color}",o.value),a.value.icon.size[m.value],e.loading&&!h.value&&a.value.icon.loading));return{ui:a,attrs:l,name:y,inputId:f,input:k,isLeading:h,isTrailing:O,inputClass:E,leadingIconName:L,leadingIconClass:K,leadingWrapperIconClass:J,trailingIconName:R,trailingIconClass:Q,trailingWrapperIconClass:H,onInput:D,onChange:q,onBlur:U}}}),ce=["id","name","type","required","placeholder","disabled"];function fe(e,n,t,a,l,r){const d=A;return S(),N("div",{class:b(e.type==="hidden"?"hidden":e.ui.wrapper)},[Y("input",Z({id:e.inputId,ref:"input",name:e.name,type:e.type,required:e.required,placeholder:e.placeholder,disabled:e.disabled,class:e.inputClass},e.type==="file"?e.attrs:{...e.attrs,value:e.modelValue},{onInput:n[0]||(n[0]=(...s)=>e.onInput&&e.onInput(...s)),onBlur:n[1]||(n[1]=(...s)=>e.onBlur&&e.onBlur(...s)),onChange:n[2]||(n[2]=(...s)=>e.onChange&&e.onChange(...s))}),null,16,ce),j(e.$slots,"default"),e.isLeading&&e.leadingIconName||e.$slots.leading?(S(),N("span",{key:0,class:b(e.leadingWrapperIconClass)},[j(e.$slots,"leading",{disabled:e.disabled,loading:e.loading},()=>[$(d,{name:e.leadingIconName,class:b(e.leadingIconClass)},null,8,["name","class"])])],2)):W("",!0),e.isTrailing&&e.trailingIconName||e.$slots.trailing?(S(),N("span",{key:1,class:b(e.trailingWrapperIconClass)},[j(e.$slots,"trailing",{disabled:e.disabled,loading:e.loading},()=>[$(d,{name:e.trailingIconName,class:b(e.trailingIconClass)},null,8,["name","class"])])],2)):W("",!0)],2)}const ye=te(de,[["render",fe]]);export{ye as _,se as u};
1
+ import{_ as A,u as X}from"./DCp3GJQW.js";import{a2 as V,u as B,e as u,U as F,N as S,i as N,f as Y,A as Z,W as j,D as b,h as W,l as P,m as _,K as x,b as z,z as ee,y as ae,k as $,a1 as w,a4 as ne,a3 as C}from"./D7LY3N47.js";import{u as le,i as ie}from"./DqW9UKXb.js";import{_ as te}from"./DlAUqK2U.js";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const G=()=>{};function oe(e,n){function t(...a){return new Promise((l,r)=>{Promise.resolve(e(()=>n.apply(this,a),{fn:n,thisArg:this,args:a})).then(l).catch(r)})}return t}function ue(e,n={}){let t,a,l=G;const r=c=>{clearTimeout(c),l(),l=G};let d;return c=>{const v=V(e),o=V(n.maxWait);return t&&r(t),v<=0||o!==void 0&&o<=0?(a&&(r(a),a=void 0),Promise.resolve(c())):new Promise((f,y)=>{l=n.rejectOnCancel?y:f,d=c,o&&!a&&(a=setTimeout(()=>{t&&r(t),a=void 0,f(d())},o)),t=setTimeout(()=>{a&&r(a),a=void 0,f(c())},v)})}}function re(e,n=200,t={}){return oe(ue(n,t),e)}const se=(e,n,t=!0)=>{const a=B("form-events",void 0),l=B("form-group",void 0),r=B("form-inputs",void 0);l&&(!t||e?.legend?l.inputId.value=void 0:e?.id&&(l.inputId.value=e?.id),r&&(r.value[l.name.value]=l.inputId.value));const d=F(!1);function s(f,y){a&&a.emit({type:f,path:y})}function c(){s("blur",l?.name.value),d.value=!0}function v(){s("change",l?.name.value)}const o=re(()=>{(d.value||l?.eagerValidation.value)&&s("input",l?.name.value)},300);return{inputId:u(()=>e?.id??l?.inputId.value),name:u(()=>e?.name??l?.name.value),size:u(()=>{const f=n.size[l?.size.value]?l?.size.value:null;return e?.size??f??n.default?.size}),color:u(()=>l?.error?.value?"red":e?.color),emitFormBlur:c,emitFormInput:o,emitFormChange:v}},g=ee(z.ui.strategy,z.ui.input,ie),de=P({components:{UIcon:A},inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:"text"},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},autofocus:{type:Boolean,default:!1},autofocusDelay:{type:Number,default:100},icon:{type:String,default:null},loadingIcon:{type:String,default:()=>g.default.loadingIcon},leadingIcon:{type:String,default:null},trailingIcon:{type:String,default:null},trailing:{type:Boolean,default:!1},leading:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},padded:{type:Boolean,default:!0},size:{type:String,default:null,validator(e){return Object.keys(g.size).includes(e)}},color:{type:String,default:()=>g.default.color,validator(e){return[...z.ui.colors,...Object.keys(g.color)].includes(e)}},variant:{type:String,default:()=>g.default.variant,validator(e){return[...Object.keys(g.variant),...Object.values(g.color).flatMap(n=>Object.keys(n))].includes(e)}},inputClass:{type:String,default:null},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})},modelModifiers:{type:Object,default:()=>({})}},emits:["update:modelValue","blur","change"],setup(e,{emit:n,slots:t}){const{ui:a,attrs:l}=le("input",w(e,"ui"),g,w(e,"class")),{size:r,rounded:d}=X({ui:a,props:e}),{emitFormBlur:s,emitFormInput:c,size:v,color:o,inputId:f,name:y}=se(e,g),m=u(()=>r.value??v.value),p=F(_({},e.modelModifiers,{trim:!1,lazy:!1,number:!1,nullify:!1})),k=F(null),M=()=>{e.autofocus&&k.value?.focus()},T=i=>{p.value.trim&&(i=i.trim()),(p.value.number||e.type==="number")&&(i=ae(i)),p.value.nullify&&(i||=null),n("update:modelValue",i),c()},D=i=>{p.value.lazy||T(i.target.value)},q=i=>{if(e.type==="file"){const I=i.target.files;n("change",I)}else{const I=i.target.value;n("change",I),p.value.lazy&&T(I),p.value.trim&&(i.target.value=I.trim())}},U=i=>{s(),n("blur",i)};x(()=>{setTimeout(()=>{M()},e.autofocusDelay)});const E=u(()=>{const i=a.value.color?.[o.value]?.[e.variant]||a.value.variant[e.variant];return ne(C(a.value.base,a.value.form,d.value,a.value.placeholder,e.type==="file"&&a.value.file.base,a.value.size[m.value],e.padded?a.value.padding[m.value]:"p-0",i?.replaceAll("{color}",o.value),(h.value||t.leading)&&a.value.leading.padding[m.value],(O.value||t.trailing)&&a.value.trailing.padding[m.value]),e.inputClass)}),h=u(()=>e.icon&&e.leading||e.icon&&!e.trailing||e.loading&&!e.trailing||e.leadingIcon),O=u(()=>e.icon&&e.trailing||e.loading&&e.trailing||e.trailingIcon),L=u(()=>e.loading?e.loadingIcon:e.leadingIcon||e.icon),R=u(()=>e.loading&&!h.value?e.loadingIcon:e.trailingIcon||e.icon),J=u(()=>C(a.value.icon.leading.wrapper,a.value.icon.leading.pointer,a.value.icon.leading.padding[m.value])),K=u(()=>C(a.value.icon.base,o.value&&z.ui.colors.includes(o.value)&&a.value.icon.color.replaceAll("{color}",o.value),a.value.icon.size[m.value],e.loading&&a.value.icon.loading)),H=u(()=>C(a.value.icon.trailing.wrapper,a.value.icon.trailing.pointer,a.value.icon.trailing.padding[m.value])),Q=u(()=>C(a.value.icon.base,o.value&&z.ui.colors.includes(o.value)&&a.value.icon.color.replaceAll("{color}",o.value),a.value.icon.size[m.value],e.loading&&!h.value&&a.value.icon.loading));return{ui:a,attrs:l,name:y,inputId:f,input:k,isLeading:h,isTrailing:O,inputClass:E,leadingIconName:L,leadingIconClass:K,leadingWrapperIconClass:J,trailingIconName:R,trailingIconClass:Q,trailingWrapperIconClass:H,onInput:D,onChange:q,onBlur:U}}}),ce=["id","name","type","required","placeholder","disabled"];function fe(e,n,t,a,l,r){const d=A;return S(),N("div",{class:b(e.type==="hidden"?"hidden":e.ui.wrapper)},[Y("input",Z({id:e.inputId,ref:"input",name:e.name,type:e.type,required:e.required,placeholder:e.placeholder,disabled:e.disabled,class:e.inputClass},e.type==="file"?e.attrs:{...e.attrs,value:e.modelValue},{onInput:n[0]||(n[0]=(...s)=>e.onInput&&e.onInput(...s)),onBlur:n[1]||(n[1]=(...s)=>e.onBlur&&e.onBlur(...s)),onChange:n[2]||(n[2]=(...s)=>e.onChange&&e.onChange(...s))}),null,16,ce),j(e.$slots,"default"),e.isLeading&&e.leadingIconName||e.$slots.leading?(S(),N("span",{key:0,class:b(e.leadingWrapperIconClass)},[j(e.$slots,"leading",{disabled:e.disabled,loading:e.loading},()=>[$(d,{name:e.leadingIconName,class:b(e.leadingIconClass)},null,8,["name","class"])])],2)):W("",!0),e.isTrailing&&e.trailingIconName||e.$slots.trailing?(S(),N("span",{key:1,class:b(e.trailingWrapperIconClass)},[j(e.$slots,"trailing",{disabled:e.disabled,loading:e.loading},()=>[$(d,{name:e.trailingIconName,class:b(e.trailingIconClass)},null,8,["name","class"])])],2)):W("",!0)],2)}const ye=te(de,[["render",fe]]);export{ye as _,se as u};
@@ -1,4 +1,4 @@
1
- import{a as W}from"./Cde_Ulqm.js";import{_ as H}from"./Cybd4n4b.js";import{_ as q}from"./BQrd1umS.js";import{u as G}from"./Dd5WWlUa.js";import{l as Y,J as Q,N as x,i as T,k as O,ah as w,a5 as s,g as M,h as j,f as o,F as X,V as Z,j as y,a0 as S,D as ee,e as N,U as p,C as te,ad as ne}from"./B6CloFTX.js";import{_ as ae}from"./DlAUqK2U.js";import"./BzY5_7kS.js";import"./-JbJIqze.js";import"./CB-qGQpu.js";const se={class:"run-page"},le={class:"flex items-center justify-between gap-3 flex-wrap"},oe={class:"text-xs text-gray-500 mt-1"},re={class:"actions"},ie={class:"status-bar"},ue={class:"status-text"},ce={key:2,class:"empty"},de="aidev-ui-token",fe=Y({__name:"run",setup(ve){const z=G(),U=ne(),V=N(()=>U.public.aidevCwd),D=[{value:"open",label:"Open",color:"primary"},{value:"pending",label:"Pending",color:"sky"},{value:"review",label:"Review",color:"amber"},{value:"all",label:"All",color:"gray"}],m=p([]),l=p(!1),r=p(!1),i=p(null),g=p(null),u=p(""),R=p(null);let c=null;const I=N(()=>m.value.join(`
1
+ import{a as W}from"./DCp3GJQW.js";import{_ as H}from"./CLsTGSNv.js";import{_ as q}from"./DKIXA6Zt.js";import{u as G}from"./m0N__S0x.js";import{l as Y,J as Q,N as x,i as T,k as O,ah as w,a5 as s,g as M,h as j,f as o,F as X,V as Z,j as y,a0 as S,D as ee,e as N,U as p,C as te,ad as ne}from"./D7LY3N47.js";import{_ as ae}from"./DlAUqK2U.js";import"./DL7l9XXk.js";import"./CYtbVgsc.js";import"./DqW9UKXb.js";const se={class:"run-page"},le={class:"flex items-center justify-between gap-3 flex-wrap"},oe={class:"text-xs text-gray-500 mt-1"},re={class:"actions"},ie={class:"status-bar"},ue={class:"status-text"},ce={key:2,class:"empty"},de="aidev-ui-token",fe=Y({__name:"run",setup(ve){const z=G(),U=ne(),V=N(()=>U.public.aidevCwd),D=[{value:"open",label:"Open",color:"primary"},{value:"pending",label:"Pending",color:"sky"},{value:"review",label:"Review",color:"amber"},{value:"all",label:"All",color:"gray"}],m=p([]),l=p(!1),r=p(!1),i=p(null),g=p(null),u=p(""),R=p(null);let c=null;const I=N(()=>m.value.join(`
2
2
  `)),J=N(()=>l.value?"running":u.value?"error":g.value?g.value.code===0?"done":"failed":"idle"),L=N(()=>{if(l.value&&i.value)return`Running aidev run ${i.value}…`;if(g.value){const{code:n,signal:e,durationMs:t}=g.value,a=A(t);return e?`Terminated by signal ${e} after ${a}`:`Exited with code ${n??"null"} after ${a}`}return"Idle"});function A(n){if(n<1e3)return`${n}ms`;const e=n/1e3;if(e<60)return`${e.toFixed(1)}s`;const t=Math.floor(e/60),a=Math.round(e-t*60);return`${t}m ${a}s`}function _(n,e){m.value.push(n?`${n} ${e}`:e),te(()=>{const t=R.value;t&&(t.scrollTop=t.scrollHeight)})}function P(n,e){if(n==="stdout")_("",e);else if(n==="stderr")_("[stderr]",e);else if(n==="exit"){try{const t=JSON.parse(e);g.value=t;const a=A(t.durationMs);_("",`--- exit code ${t.code??"null"}${t.signal?`, signal ${t.signal}`:""} (${a}) ---`)}catch{_("",`--- exit ${e} ---`)}l.value=!1,i.value=null,r.value=!1}else n==="error"&&(_("[error]",e||"unknown error"),l.value=!1,i.value=null,r.value=!1)}async function F(n){if(l.value)return;const e=localStorage.getItem(de);if(!e){u.value="Not authenticated — refresh and log in again.";return}u.value="",m.value=[],g.value=null,l.value=!0,i.value=n;const t=new AbortController;c=t;try{const a=await fetch("/api/run",{method:"POST",headers:{Authorization:`Bearer ${e}`,Accept:"text/event-stream","Content-Type":"application/json"},body:JSON.stringify({status:n}),signal:t.signal});if(!a.ok||!a.body){const h=await a.text().catch(()=>"");let C=h;try{const v=JSON.parse(h);C=v.statusMessage||v.message||h}catch{}u.value=`HTTP ${a.status}: ${C||a.statusText}`,l.value=!1,i.value=null,c===t&&(c=null);return}const E=a.body.getReader(),d=new TextDecoder("utf-8");let f="",$="message",k=[];const B=()=>{k.length===0&&$==="message"||(P($,k.join(`
3
3
  `)),$="message",k=[])};for(;;){const{value:h,done:C}=await E.read();if(C)break;f+=d.decode(h,{stream:!0});let v=f.indexOf(`
4
4
  `);for(;v!==-1;){const b=f.slice(0,v).replace(/\r$/,"");f=f.slice(v+1),b===""?B():b.startsWith(":")||(b.startsWith("event:")?$=b.slice(6).trim()||"message":b.startsWith("data:")&&k.push(b.slice(5).replace(/^ /,""))),v=f.indexOf(`
@@ -1 +1 @@
1
- import{a as Ve}from"./Cde_Ulqm.js";import{_ as Se}from"./Cybd4n4b.js";import{_ as he}from"./BQrd1umS.js";import{_ as De}from"./rG-0aeB1.js";import{_ as be}from"./DQcp3FR_.js";import{_ as Pe}from"./mH-IieKd.js";import{_ as Ue}from"./CbcumZrF.js";import{_ as Ce}from"./CJImEqMV.js";import{u as Ge}from"./Dd5WWlUa.js";import{l as Le,K as xe,i as f,k as a,ah as n,v as H,a5 as l,U as y,S as B,N as u,g as k,h as O,j as T,f as i,a0 as C,F as W,V as j,e as G}from"./B6CloFTX.js";import{_ as Ke}from"./DlAUqK2U.js";import"./BzY5_7kS.js";import"./-JbJIqze.js";import"./CB-qGQpu.js";const we={class:"config-page"},Me={class:"flex items-center justify-between gap-3"},He={class:"text-xs text-gray-500 mt-1"},Be={key:0,class:"ml-2 text-amber-600"},We={key:1,class:"ml-2 text-emerald-600"},je={class:"flex items-center gap-2"},Fe={key:2,class:"mb-4"},Ye={class:"flex items-center justify-between gap-3"},ze={class:"grid gap-4 md:grid-cols-2"},$e={class:"flex items-center justify-between gap-3"},Je={class:"flex items-center gap-2"},Xe={class:"space-y-3"},Ze={class:"flex items-center justify-between gap-3 mb-3"},qe={class:"flex items-center gap-2 min-w-0"},Qe={class:"flex flex-col gap-0.5"},el={key:1,class:"text-xs text-gray-400"},ll={key:0,class:"grid gap-4 md:grid-cols-2"},tl={key:1,class:"text-sm text-gray-500"},ol={class:"grid gap-4 md:grid-cols-2"},al={class:"grid gap-4 md:grid-cols-2"},sl={class:"flex items-center justify-between gap-3"},nl={key:0,class:"text-sm text-gray-500"},rl={key:1,class:"grid gap-4 md:grid-cols-2"},dl={class:"flex items-center gap-2"},il={class:"space-y-3"},ul={key:0,class:"text-sm text-red-500"},pl={class:"flex justify-end gap-2"},z="PROVIDER",_l=Le({__name:"config",setup(cl){const V=Ge(),$=y(""),L=y(null),x=y(!1),N=y(""),R=y(!1),K=y(!1),J=y(0),s=B({}),S=B({}),g=B({provider:!1,ai:!1}),E=B({provider:null,ai:null}),I=y(""),h=y(!1),D=y(""),b=y(""),P=y(""),ne=[{label:"ClickUp",value:"clickup"},{label:"Jira",value:"jira"},{label:"Linear",value:"linear"},{label:"Monday",value:"monday"},{label:"Notion",value:"notion"},{label:"Trello",value:"trello"},{label:"Local",value:"local"}],F=["antigravity","anthropic-sdk","claude","codex","cursor","windsurf"],re=F.map(t=>({label:t,value:t})),de={claude:[{key:"CLAUDE_MODEL",help:"Model passed to `claude --model`. Default routes plan→opus and code→sonnet.",placeholder:"opusplan"}],"anthropic-sdk":[{key:"ANTHROPIC_API_KEY",help:"Accepts a single key or comma-separated pool; the runner rotates round-robin.",secret:!0},{key:"ANTHROPIC_MODEL",placeholder:"claude-opus-4-6"},{key:"ANTHROPIC_BASE_URL",help:"Optional — leave blank for default.",placeholder:"https://api.anthropic.com"},{key:"ANTHROPIC_SDK_MAX_RETRIES",help:"Retries after transient SDK errors. Set 0 to disable. Default: 3.",placeholder:"3"}],windsurf:[{key:"WINDSURF_TOKEN",help:"Required for Docker mode on Windows.",secret:!0},{key:"WINDSURF_DOCKER_IMAGE",help:"Docker image for headless Windsurf on Windows.",placeholder:"windsurfinabox"},{key:"WINDSURF_CONFIG_DIR",help:"Optional — defaults to ~/.config/Windsurf."}],cursor:[],codex:[],antigravity:[]},X={cursor:"Uses the `agent` CLI — no extra env keys.",codex:"Uses the `codex` CLI. Set OPENAI_API_KEY or run `codex login`.",antigravity:"Uses the `agy` or `antigravity` CLI — no extra env keys."};let w=0;const m=y([]),ie=G(()=>m.value.map(t=>({label:t.type,value:t.type}))),Z={clickup:[{key:"CLICKUP_API_KEY",secret:!0},{key:"CLICKUP_TEAM_ID"},{key:"CLICKUP_TAG",help:"Tag used to scope tasks to this project."},{key:"CLICKUP_LIST_ID",help:"Optional — required to create tasks."},{key:"CLICKUP_PENDING_STATUS",placeholder:"pending"},{key:"CLICKUP_OPEN_STATUS",placeholder:"open"},{key:"CLICKUP_IN_REVIEW_STATUS",placeholder:"review"}],jira:[{key:"JIRA_BASE_URL",placeholder:"https://mycompany.atlassian.net"},{key:"JIRA_EMAIL"},{key:"JIRA_API_TOKEN",secret:!0},{key:"JIRA_PROJECT"},{key:"JIRA_LABEL"},{key:"JIRA_PENDING_STATUS",placeholder:"To Do"},{key:"JIRA_IN_REVIEW_STATUS",placeholder:"In Review"}],linear:[{key:"LINEAR_API_KEY",secret:!0},{key:"LINEAR_TEAM_ID"},{key:"LINEAR_LABEL"},{key:"LINEAR_PENDING_STATUS",placeholder:"Pending"},{key:"LINEAR_IN_REVIEW_STATUS",placeholder:"In Review"}],monday:[{key:"MONDAY_API_TOKEN",secret:!0},{key:"MONDAY_BOARD_ID"},{key:"MONDAY_STATUS_COLUMN_ID",placeholder:"status"},{key:"MONDAY_GROUP_ID"}],notion:[{key:"NOTION_API_KEY",secret:!0},{key:"NOTION_DATABASE_ID"},{key:"NOTION_STATUS_PROPERTY",placeholder:"Status"},{key:"NOTION_PENDING_STATUS",placeholder:"pending"},{key:"NOTION_IN_REVIEW_STATUS",placeholder:"review"}],trello:[{key:"TRELLO_API_KEY",secret:!0},{key:"TRELLO_TOKEN",secret:!0},{key:"TRELLO_BOARD_ID"},{key:"TRELLO_LABEL"},{key:"TRELLO_OPEN_LIST",placeholder:"To Do"},{key:"TRELLO_PENDING_LIST",placeholder:"Blocked"},{key:"TRELLO_IN_PROGRESS_LIST",placeholder:"Doing"},{key:"TRELLO_IN_REVIEW_LIST",placeholder:"In Review"}],local:[]},q=["AGENTS","CLAUDE_MODEL","ANTHROPIC_API_KEY","ANTHROPIC_MODEL","ANTHROPIC_BASE_URL","ANTHROPIC_SDK_MAX_RETRIES","WINDSURF_TOKEN","WINDSURF_DOCKER_IMAGE","WINDSURF_CONFIG_DIR"],ue=[{label:"smart",value:"smart"},{label:"always",value:"always"}],Q=["DEV_NOTES_MODE","ASSIGNEE_TAG","AIDEV_TRIGGER_WORD","THINKING_TAG","PLANNING_TAG","ACCEPTED_TAG","DONE_STATUS","AIDEV_COMMENT_PREFIX","AIDEV_HOOKS_PATH","AIDEV_AUTO_COMPRESS","AIDEV_COMPRESS_THRESHOLD","GIT_REMOTE","GITHUB_BASE_BRANCH","GITHUB_REPO"],ee=["AIDEV_LOG_PATH"],pe=G(()=>{const t=(s.PROVIDER||"clickup").toLowerCase();return Z[t]??[]}),_e=G(()=>{const t=new Set([z,...q,...Q,...ee]);for(const e of Object.values(Z))for(const r of e)t.add(r.key);return t}),le=G(()=>Object.keys(s).filter(t=>!_e.value.has(t)).sort()),ce=G(()=>{const t=Object.keys(s),e=Object.keys(S);if(t.length!==e.length)return!0;for(const r of t)if((s[r]??"")!==(S[r]??""))return!0;return!1});function me(t){return/(KEY|TOKEN|SECRET|PASSWORD)$/i.test(t)}function te(t){return de[t]??[]}function fe(t){const e=t.split(",").map(r=>r.trim()).filter(Boolean).filter(r=>F.includes(r));return e.length===0?[{uid:w++,type:"claude"},{uid:w++,type:"cursor"}]:e.map(r=>({uid:w++,type:r}))}function U(){s.AGENTS=m.value.map(t=>t.type).join(",")}function Ee(){const t=new Set(m.value.map(r=>r.type)),e=F.find(r=>!t.has(r))??"claude";m.value.push({uid:w++,type:e}),U()}function ye(t){m.value.length<=1||(m.value.splice(t,1),U())}function oe(t,e){const r=t+e,d=m.value[t];if(!d||r<0||r>=m.value.length)return;const c=[...m.value];c.splice(t,1),c.splice(r,0,d),m.value=c,U()}function Y(t){$.value=t.path,L.value=t.exists;for(const d of Object.keys(s))delete s[d];for(const d of Object.keys(S))delete S[d];const e={};e[z]=t.values[z]||"clickup";for(const d of q)e[d]=t.values[d]??"";for(const d of Q)e[d]=t.values[d]??"";for(const d of ee)e[d]=t.values[d]??"";for(const[d,c]of Object.entries(t.values))e[d]=c;for(const[d,c]of Object.entries(e))s[d]=c,S[d]=c;m.value=fe(s.AGENTS||""),U();const r=m.value.map(d=>d.type);(!I.value||!r.includes(I.value))&&(I.value=r[0]??"")}async function ae(){x.value=!0,N.value="";try{const t=await V("/api/config");Y(t)}catch(t){N.value=t instanceof Error?t.message:String(t)}finally{x.value=!1}}async function Ae(){R.value=!0,K.value=!1,N.value="";try{const t=await V("/api/config",{method:"PUT",body:{values:{...s}}});J.value=Object.keys(t.values).length,Y(t),K.value=!0,setTimeout(()=>K.value=!1,3e3)}catch(t){N.value=t instanceof Error?t.message:String(t)}finally{R.value=!1}}async function ve(){const t={PROVIDER:"clickup",AGENTS:"claude,cursor",DEV_NOTES_MODE:"smart",AIDEV_TRIGGER_WORD:"aidev-continue",THINKING_TAG:"thinking",PLANNING_TAG:"planning"};R.value=!0;try{const e=await V("/api/config",{method:"PUT",body:{values:t}});Y(e)}catch(e){N.value=e instanceof Error?e.message:String(e)}finally{R.value=!1}}async function Ie(){g.provider=!0,E.provider=null;try{E.provider=await V("/api/config/test",{method:"POST",body:{provider:!0}})}catch(t){E.provider={ok:!1,message:t instanceof Error?t.message:String(t)}}finally{g.provider=!1}}async function Te(){if(I.value){g.ai=!0,E.ai=null;try{E.ai=await V("/api/config/test",{method:"POST",body:{ai:I.value}})}catch(t){E.ai={ok:!1,message:t instanceof Error?t.message:String(t)}}finally{g.ai=!1}}}function ge(t){delete s[t]}function se(){h.value=!1,D.value="",b.value="",P.value=""}function ke(){const t=D.value.trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t)){P.value="Key must match [A-Za-z_][A-Za-z0-9_]*";return}if(t in s){P.value=`Key ${t} already exists`;return}s[t]=b.value,se()}return xe(ae),(t,e)=>{const r=Ve,d=Se,c=he,M=De,p=be,_=Pe,Oe=Ue,Ne=Ce;return u(),f("div",we,[a(c,null,{header:n(()=>[i("div",Me,[i("div",null,[e[21]||(e[21]=i("h1",{class:"text-lg font-semibold"},"Config",-1)),i("p",He,[i("code",null,C(l($)||"—"),1),l(L)===!1?(u(),f("span",Be,"not found")):l(L)?(u(),f("span",We,"loaded")):O("",!0)])]),i("div",je,[a(r,{color:"gray",variant:"ghost",size:"sm",loading:l(x),disabled:l(x),onClick:ae},{default:n(()=>[...e[22]||(e[22]=[T(" Reload ",-1)])]),_:1},8,["loading","disabled"]),a(r,{color:"primary",size:"sm",loading:l(R),disabled:l(R)||!l(ce),onClick:Ae},{default:n(()=>[...e[23]||(e[23]=[T(" Save changes ",-1)])]),_:1},8,["loading","disabled"])])])]),default:n(()=>[l(N)?(u(),k(d,{key:0,color:"red",variant:"soft",title:l(N),class:"mb-4"},null,8,["title"])):O("",!0),l(L)===!1?(u(),k(d,{key:1,color:"amber",variant:"soft",title:".env.aidev does not exist",description:"Press “Create with defaults” to seed the file with the minimum keys needed to start configuring.",class:"mb-4"},{actions:n(()=>[a(r,{size:"sm",color:"amber",loading:l(R),onClick:ve},{default:n(()=>[...e[24]||(e[24]=[T(" Create with defaults ",-1)])]),_:1},8,["loading"])]),_:1})):O("",!0),l(K)?(u(),f("div",Fe,[a(d,{color:"green",variant:"soft",title:"Saved",description:`Wrote ${l(J)} key(s).`},null,8,["description"])])):O("",!0)]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[i("div",Ye,[e[26]||(e[26]=i("h2",{class:"text-base font-semibold"},"Task provider",-1)),a(r,{size:"sm",color:"gray",variant:"soft",loading:l(g).provider,disabled:l(g).provider,onClick:Ie},{default:n(()=>[...e[25]||(e[25]=[T(" Test connection ",-1)])]),_:1},8,["loading","disabled"])])]),default:n(()=>[i("div",ze,[a(p,{label:"PROVIDER",help:"Which task backend aidev should talk to."},{default:n(()=>[a(M,{modelValue:l(s).PROVIDER,"onUpdate:modelValue":e[0]||(e[0]=o=>l(s).PROVIDER=o),options:ne},null,8,["modelValue"])]),_:1}),(u(!0),f(W,null,j(l(pe),o=>(u(),k(p,{key:o.key,label:o.key,help:o.help},{default:n(()=>[a(_,{modelValue:l(s)[o.key],"onUpdate:modelValue":A=>l(s)[o.key]=A,type:o.secret?"password":"text",placeholder:o.placeholder??"",autocomplete:"off"},null,8,["modelValue","onUpdate:modelValue","type","placeholder"])]),_:2},1032,["label","help"]))),128))]),l(E).provider?(u(),k(d,{key:0,color:l(E).provider.ok?"green":"red",variant:"soft",title:l(E).provider.ok?"Provider OK":"Provider failed",description:l(E).provider.message,class:"mt-3"},null,8,["color","title","description"])):O("",!0)]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[i("div",$e,[e[27]||(e[27]=i("h2",{class:"text-base font-semibold"},"AI runners",-1)),i("div",Je,[a(M,{modelValue:l(I),"onUpdate:modelValue":e[1]||(e[1]=o=>H(I)?I.value=o:null),options:l(ie),size:"sm",class:"w-44"},null,8,["modelValue","options"]),a(r,{size:"sm",color:"gray",variant:"soft",loading:l(g).ai,disabled:l(g).ai||!l(I),onClick:Te},{default:n(()=>[T(" Test "+C(l(I)||"agent"),1)]),_:1},8,["loading","disabled"])])])]),default:n(()=>[e[30]||(e[30]=i("p",{class:"text-sm text-gray-500 mb-3"}," Agents in fallback order — first is primary, rest are tried when the previous fails. ",-1)),i("div",Xe,[(u(!0),f(W,null,j(l(m),(o,A)=>(u(),f("div",{key:o.uid,class:"agent-block rounded-lg border border-gray-200 dark:border-gray-700 p-4"},[i("div",Ze,[i("div",qe,[i("div",Qe,[a(r,{size:"xs",color:"gray",variant:"ghost",icon:"i-heroicons-chevron-up",disabled:A===0,"aria-label":"Move up",onClick:v=>oe(A,-1)},null,8,["disabled","onClick"]),a(r,{size:"xs",color:"gray",variant:"ghost",icon:"i-heroicons-chevron-down",disabled:A===l(m).length-1,"aria-label":"Move down",onClick:v=>oe(A,1)},null,8,["disabled","onClick"])]),a(M,{modelValue:o.type,"onUpdate:modelValue":[v=>o.type=v,U],options:l(re),class:"w-52"},null,8,["modelValue","onUpdate:modelValue","options"]),A===0?(u(),k(Oe,{key:0,color:"primary",variant:"subtle",size:"xs"},{default:n(()=>[...e[28]||(e[28]=[T(" primary ",-1)])]),_:1})):(u(),f("span",el,"fallback "+C(A),1))]),a(r,{size:"xs",color:"red",variant:"ghost",icon:"i-heroicons-trash",disabled:l(m).length<=1,"aria-label":"Remove agent",onClick:v=>ye(A)},null,8,["disabled","onClick"])]),te(o.type).length>0?(u(),f("div",ll,[(u(!0),f(W,null,j(te(o.type),v=>(u(),k(p,{key:v.key,label:v.key,help:v.help},{default:n(()=>[a(_,{modelValue:l(s)[v.key],"onUpdate:modelValue":Re=>l(s)[v.key]=Re,type:v.secret?"password":"text",placeholder:v.placeholder??"",autocomplete:"off"},null,8,["modelValue","onUpdate:modelValue","type","placeholder"])]),_:2},1032,["label","help"]))),128))])):X[o.type]?(u(),f("p",tl,C(X[o.type]),1)):O("",!0)]))),128)),a(r,{size:"sm",color:"gray",variant:"soft",icon:"i-heroicons-plus",onClick:Ee},{default:n(()=>[...e[29]||(e[29]=[T(" Add agent ",-1)])]),_:1})]),l(E).ai?(u(),k(d,{key:0,color:l(E).ai.ok?"green":"red",variant:"soft",title:l(E).ai.ok?"AI runner OK":"AI runner failed",description:l(E).ai.message,class:"mt-3"},null,8,["color","title","description"])):O("",!0)]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[...e[31]||(e[31]=[i("h2",{class:"text-base font-semibold"},"Logging",-1)])]),default:n(()=>[i("div",ol,[a(p,{label:"AIDEV_LOG_PATH",help:"Path to the aidev log file. Defaults to ./aidev.log when blank."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_LOG_PATH,"onUpdate:modelValue":e[2]||(e[2]=o=>l(s).AIDEV_LOG_PATH=o),placeholder:"aidev.log"},null,8,["modelValue"])]),_:1})])]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[...e[32]||(e[32]=[i("h2",{class:"text-base font-semibold"},"Workflow & Git",-1)])]),default:n(()=>[i("div",al,[a(p,{label:"DEV_NOTES_MODE",help:"smart — ask only when unclear; always — ask before every task."},{default:n(()=>[a(M,{modelValue:l(s).DEV_NOTES_MODE,"onUpdate:modelValue":e[3]||(e[3]=o=>l(s).DEV_NOTES_MODE=o),options:ue},null,8,["modelValue"])]),_:1}),a(p,{label:"ASSIGNEE_TAG",help:"Optional tag to scope tasks to a specific assignee."},{default:n(()=>[a(_,{modelValue:l(s).ASSIGNEE_TAG,"onUpdate:modelValue":e[4]||(e[4]=o=>l(s).ASSIGNEE_TAG=o)},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_TRIGGER_WORD",help:"Word that resumes a paused agent run."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_TRIGGER_WORD,"onUpdate:modelValue":e[5]||(e[5]=o=>l(s).AIDEV_TRIGGER_WORD=o),placeholder:"aidev-continue"},null,8,["modelValue"])]),_:1}),a(p,{label:"THINKING_TAG",help:"Tasks with this tag are broken into sub-tasks first."},{default:n(()=>[a(_,{modelValue:l(s).THINKING_TAG,"onUpdate:modelValue":e[6]||(e[6]=o=>l(s).THINKING_TAG=o),placeholder:"thinking"},null,8,["modelValue"])]),_:1}),a(p,{label:"PLANNING_TAG",help:"Tasks with this tag are split into sub-tickets."},{default:n(()=>[a(_,{modelValue:l(s).PLANNING_TAG,"onUpdate:modelValue":e[7]||(e[7]=o=>l(s).PLANNING_TAG=o),placeholder:"planning"},null,8,["modelValue"])]),_:1}),a(p,{label:"ACCEPTED_TAG",help:"Tag marking a task as accepted for implementation."},{default:n(()=>[a(_,{modelValue:l(s).ACCEPTED_TAG,"onUpdate:modelValue":e[8]||(e[8]=o=>l(s).ACCEPTED_TAG=o),placeholder:"accepted"},null,8,["modelValue"])]),_:1}),a(p,{label:"DONE_STATUS",help:"Provider status treated as done/closed."},{default:n(()=>[a(_,{modelValue:l(s).DONE_STATUS,"onUpdate:modelValue":e[9]||(e[9]=o=>l(s).DONE_STATUS=o)},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_COMMENT_PREFIX",help:"Prefix for aidev comments on tasks."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_COMMENT_PREFIX,"onUpdate:modelValue":e[10]||(e[10]=o=>l(s).AIDEV_COMMENT_PREFIX=o),placeholder:"[aidev]"},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_HOOKS_PATH",help:"Optional hooks module (.ts or .js)."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_HOOKS_PATH,"onUpdate:modelValue":e[11]||(e[11]=o=>l(s).AIDEV_HOOKS_PATH=o),placeholder:".aidev/aidev.hooks.ts"},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_AUTO_COMPRESS",help:"Set false/0/no to disable prompt compression."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_AUTO_COMPRESS,"onUpdate:modelValue":e[12]||(e[12]=o=>l(s).AIDEV_AUTO_COMPRESS=o),placeholder:"true"},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_COMPRESS_THRESHOLD",help:"Char count that triggers compression."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_COMPRESS_THRESHOLD,"onUpdate:modelValue":e[13]||(e[13]=o=>l(s).AIDEV_COMPRESS_THRESHOLD=o),placeholder:"12000"},null,8,["modelValue"])]),_:1}),a(p,{label:"GIT_REMOTE"},{default:n(()=>[a(_,{modelValue:l(s).GIT_REMOTE,"onUpdate:modelValue":e[14]||(e[14]=o=>l(s).GIT_REMOTE=o),placeholder:"origin"},null,8,["modelValue"])]),_:1}),a(p,{label:"GITHUB_BASE_BRANCH"},{default:n(()=>[a(_,{modelValue:l(s).GITHUB_BASE_BRANCH,"onUpdate:modelValue":e[15]||(e[15]=o=>l(s).GITHUB_BASE_BRANCH=o),placeholder:"main"},null,8,["modelValue"])]),_:1}),a(p,{label:"GITHUB_REPO",help:"owner/repo — auto-detected when blank."},{default:n(()=>[a(_,{modelValue:l(s).GITHUB_REPO,"onUpdate:modelValue":e[16]||(e[16]=o=>l(s).GITHUB_REPO=o),placeholder:"owner/repo"},null,8,["modelValue"])]),_:1})])]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[i("div",sl,[e[34]||(e[34]=i("h2",{class:"text-base font-semibold"},"Other keys",-1)),a(r,{size:"xs",color:"gray",variant:"ghost",onClick:e[17]||(e[17]=o=>h.value=!0)},{default:n(()=>[...e[33]||(e[33]=[T(" + Add key ",-1)])]),_:1})])]),default:n(()=>[l(le).length===0?(u(),f("p",nl," No additional keys. Use “Add key” to introduce one. ")):(u(),f("div",rl,[(u(!0),f(W,null,j(l(le),o=>(u(),k(p,{key:o,label:o},{default:n(()=>[i("div",dl,[a(_,{modelValue:l(s)[o],"onUpdate:modelValue":A=>l(s)[o]=A,type:me(o)?"password":"text",autocomplete:"off",class:"flex-1"},null,8,["modelValue","onUpdate:modelValue","type"]),a(r,{size:"xs",color:"red",variant:"ghost",icon:"i-heroicons-trash",onClick:A=>ge(o)},null,8,["onClick"])])]),_:2},1032,["label"]))),128))]))]),_:1}),a(Ne,{modelValue:l(h),"onUpdate:modelValue":e[20]||(e[20]=o=>H(h)?h.value=o:null)},{default:n(()=>[a(c,null,{header:n(()=>[...e[35]||(e[35]=[i("h3",{class:"text-base font-semibold"},"Add config key",-1)])]),footer:n(()=>[i("div",pl,[a(r,{variant:"ghost",color:"gray",onClick:se},{default:n(()=>[...e[36]||(e[36]=[T("Cancel",-1)])]),_:1}),a(r,{color:"primary",onClick:ke},{default:n(()=>[...e[37]||(e[37]=[T("Add",-1)])]),_:1})])]),default:n(()=>[i("div",il,[a(p,{label:"Key",help:"Letters, numbers, and underscores. Must start with a letter or underscore."},{default:n(()=>[a(_,{modelValue:l(D),"onUpdate:modelValue":e[18]||(e[18]=o=>H(D)?D.value=o:null),placeholder:"MY_NEW_KEY",autofocus:""},null,8,["modelValue"])]),_:1}),a(p,{label:"Value"},{default:n(()=>[a(_,{modelValue:l(b),"onUpdate:modelValue":e[19]||(e[19]=o=>H(b)?b.value=o:null),autocomplete:"off"},null,8,["modelValue"])]),_:1}),l(P)?(u(),f("p",ul,C(l(P)),1)):O("",!0)])]),_:1})]),_:1},8,["modelValue"])])}}}),Sl=Ke(_l,[["__scopeId","data-v-62b03b92"]]);export{Sl as default};
1
+ import{a as Ve}from"./DCp3GJQW.js";import{_ as Se}from"./CLsTGSNv.js";import{_ as he}from"./DKIXA6Zt.js";import{_ as De}from"./C2BUFUls.js";import{_ as be}from"./B2vj_HiW.js";import{_ as Pe}from"./DWMhLzME.js";import{_ as Ue}from"./C7JnlssT.js";import{_ as Ce}from"./CnlcD-w9.js";import{u as Ge}from"./m0N__S0x.js";import{l as Le,K as xe,i as f,k as a,ah as n,v as H,a5 as l,U as y,S as B,N as u,g as k,h as O,j as T,f as i,a0 as C,F as W,V as j,e as G}from"./D7LY3N47.js";import{_ as Ke}from"./DlAUqK2U.js";import"./DL7l9XXk.js";import"./CYtbVgsc.js";import"./DqW9UKXb.js";const we={class:"config-page"},Me={class:"flex items-center justify-between gap-3"},He={class:"text-xs text-gray-500 mt-1"},Be={key:0,class:"ml-2 text-amber-600"},We={key:1,class:"ml-2 text-emerald-600"},je={class:"flex items-center gap-2"},Fe={key:2,class:"mb-4"},Ye={class:"flex items-center justify-between gap-3"},ze={class:"grid gap-4 md:grid-cols-2"},$e={class:"flex items-center justify-between gap-3"},Je={class:"flex items-center gap-2"},Xe={class:"space-y-3"},Ze={class:"flex items-center justify-between gap-3 mb-3"},qe={class:"flex items-center gap-2 min-w-0"},Qe={class:"flex flex-col gap-0.5"},el={key:1,class:"text-xs text-gray-400"},ll={key:0,class:"grid gap-4 md:grid-cols-2"},tl={key:1,class:"text-sm text-gray-500"},ol={class:"grid gap-4 md:grid-cols-2"},al={class:"grid gap-4 md:grid-cols-2"},sl={class:"flex items-center justify-between gap-3"},nl={key:0,class:"text-sm text-gray-500"},rl={key:1,class:"grid gap-4 md:grid-cols-2"},dl={class:"flex items-center gap-2"},il={class:"space-y-3"},ul={key:0,class:"text-sm text-red-500"},pl={class:"flex justify-end gap-2"},z="PROVIDER",_l=Le({__name:"config",setup(cl){const V=Ge(),$=y(""),L=y(null),x=y(!1),N=y(""),R=y(!1),K=y(!1),J=y(0),s=B({}),S=B({}),g=B({provider:!1,ai:!1}),E=B({provider:null,ai:null}),I=y(""),h=y(!1),D=y(""),b=y(""),P=y(""),ne=[{label:"ClickUp",value:"clickup"},{label:"Jira",value:"jira"},{label:"Linear",value:"linear"},{label:"Monday",value:"monday"},{label:"Notion",value:"notion"},{label:"Trello",value:"trello"},{label:"Local",value:"local"}],F=["antigravity","anthropic-sdk","claude","codex","cursor","windsurf"],re=F.map(t=>({label:t,value:t})),de={claude:[{key:"CLAUDE_MODEL",help:"Model passed to `claude --model`. Default routes plan→opus and code→sonnet.",placeholder:"opusplan"}],"anthropic-sdk":[{key:"ANTHROPIC_API_KEY",help:"Accepts a single key or comma-separated pool; the runner rotates round-robin.",secret:!0},{key:"ANTHROPIC_MODEL",placeholder:"claude-opus-4-6"},{key:"ANTHROPIC_BASE_URL",help:"Optional — leave blank for default.",placeholder:"https://api.anthropic.com"},{key:"ANTHROPIC_SDK_MAX_RETRIES",help:"Retries after transient SDK errors. Set 0 to disable. Default: 3.",placeholder:"3"}],windsurf:[{key:"WINDSURF_TOKEN",help:"Required for Docker mode on Windows.",secret:!0},{key:"WINDSURF_DOCKER_IMAGE",help:"Docker image for headless Windsurf on Windows.",placeholder:"windsurfinabox"},{key:"WINDSURF_CONFIG_DIR",help:"Optional — defaults to ~/.config/Windsurf."}],cursor:[],codex:[],antigravity:[]},X={cursor:"Uses the `agent` CLI — no extra env keys.",codex:"Uses the `codex` CLI. Set OPENAI_API_KEY or run `codex login`.",antigravity:"Uses the `agy` or `antigravity` CLI — no extra env keys."};let w=0;const m=y([]),ie=G(()=>m.value.map(t=>({label:t.type,value:t.type}))),Z={clickup:[{key:"CLICKUP_API_KEY",secret:!0},{key:"CLICKUP_TEAM_ID"},{key:"CLICKUP_TAG",help:"Tag used to scope tasks to this project."},{key:"CLICKUP_LIST_ID",help:"Optional — required to create tasks."},{key:"CLICKUP_PENDING_STATUS",placeholder:"pending"},{key:"CLICKUP_OPEN_STATUS",placeholder:"open"},{key:"CLICKUP_IN_REVIEW_STATUS",placeholder:"review"}],jira:[{key:"JIRA_BASE_URL",placeholder:"https://mycompany.atlassian.net"},{key:"JIRA_EMAIL"},{key:"JIRA_API_TOKEN",secret:!0},{key:"JIRA_PROJECT"},{key:"JIRA_LABEL"},{key:"JIRA_PENDING_STATUS",placeholder:"To Do"},{key:"JIRA_IN_REVIEW_STATUS",placeholder:"In Review"}],linear:[{key:"LINEAR_API_KEY",secret:!0},{key:"LINEAR_TEAM_ID"},{key:"LINEAR_LABEL"},{key:"LINEAR_PENDING_STATUS",placeholder:"Pending"},{key:"LINEAR_IN_REVIEW_STATUS",placeholder:"In Review"}],monday:[{key:"MONDAY_API_TOKEN",secret:!0},{key:"MONDAY_BOARD_ID"},{key:"MONDAY_STATUS_COLUMN_ID",placeholder:"status"},{key:"MONDAY_GROUP_ID"}],notion:[{key:"NOTION_API_KEY",secret:!0},{key:"NOTION_DATABASE_ID"},{key:"NOTION_STATUS_PROPERTY",placeholder:"Status"},{key:"NOTION_PENDING_STATUS",placeholder:"pending"},{key:"NOTION_IN_REVIEW_STATUS",placeholder:"review"}],trello:[{key:"TRELLO_API_KEY",secret:!0},{key:"TRELLO_TOKEN",secret:!0},{key:"TRELLO_BOARD_ID"},{key:"TRELLO_LABEL"},{key:"TRELLO_OPEN_LIST",placeholder:"To Do"},{key:"TRELLO_PENDING_LIST",placeholder:"Blocked"},{key:"TRELLO_IN_PROGRESS_LIST",placeholder:"Doing"},{key:"TRELLO_IN_REVIEW_LIST",placeholder:"In Review"}],local:[]},q=["AGENTS","CLAUDE_MODEL","ANTHROPIC_API_KEY","ANTHROPIC_MODEL","ANTHROPIC_BASE_URL","ANTHROPIC_SDK_MAX_RETRIES","WINDSURF_TOKEN","WINDSURF_DOCKER_IMAGE","WINDSURF_CONFIG_DIR"],ue=[{label:"smart",value:"smart"},{label:"always",value:"always"}],Q=["DEV_NOTES_MODE","ASSIGNEE_TAG","AIDEV_TRIGGER_WORD","THINKING_TAG","PLANNING_TAG","ACCEPTED_TAG","DONE_STATUS","AIDEV_COMMENT_PREFIX","AIDEV_HOOKS_PATH","AIDEV_AUTO_COMPRESS","AIDEV_COMPRESS_THRESHOLD","GIT_REMOTE","GITHUB_BASE_BRANCH","GITHUB_REPO"],ee=["AIDEV_LOG_PATH"],pe=G(()=>{const t=(s.PROVIDER||"clickup").toLowerCase();return Z[t]??[]}),_e=G(()=>{const t=new Set([z,...q,...Q,...ee]);for(const e of Object.values(Z))for(const r of e)t.add(r.key);return t}),le=G(()=>Object.keys(s).filter(t=>!_e.value.has(t)).sort()),ce=G(()=>{const t=Object.keys(s),e=Object.keys(S);if(t.length!==e.length)return!0;for(const r of t)if((s[r]??"")!==(S[r]??""))return!0;return!1});function me(t){return/(KEY|TOKEN|SECRET|PASSWORD)$/i.test(t)}function te(t){return de[t]??[]}function fe(t){const e=t.split(",").map(r=>r.trim()).filter(Boolean).filter(r=>F.includes(r));return e.length===0?[{uid:w++,type:"claude"},{uid:w++,type:"cursor"}]:e.map(r=>({uid:w++,type:r}))}function U(){s.AGENTS=m.value.map(t=>t.type).join(",")}function Ee(){const t=new Set(m.value.map(r=>r.type)),e=F.find(r=>!t.has(r))??"claude";m.value.push({uid:w++,type:e}),U()}function ye(t){m.value.length<=1||(m.value.splice(t,1),U())}function oe(t,e){const r=t+e,d=m.value[t];if(!d||r<0||r>=m.value.length)return;const c=[...m.value];c.splice(t,1),c.splice(r,0,d),m.value=c,U()}function Y(t){$.value=t.path,L.value=t.exists;for(const d of Object.keys(s))delete s[d];for(const d of Object.keys(S))delete S[d];const e={};e[z]=t.values[z]||"clickup";for(const d of q)e[d]=t.values[d]??"";for(const d of Q)e[d]=t.values[d]??"";for(const d of ee)e[d]=t.values[d]??"";for(const[d,c]of Object.entries(t.values))e[d]=c;for(const[d,c]of Object.entries(e))s[d]=c,S[d]=c;m.value=fe(s.AGENTS||""),U();const r=m.value.map(d=>d.type);(!I.value||!r.includes(I.value))&&(I.value=r[0]??"")}async function ae(){x.value=!0,N.value="";try{const t=await V("/api/config");Y(t)}catch(t){N.value=t instanceof Error?t.message:String(t)}finally{x.value=!1}}async function Ae(){R.value=!0,K.value=!1,N.value="";try{const t=await V("/api/config",{method:"PUT",body:{values:{...s}}});J.value=Object.keys(t.values).length,Y(t),K.value=!0,setTimeout(()=>K.value=!1,3e3)}catch(t){N.value=t instanceof Error?t.message:String(t)}finally{R.value=!1}}async function ve(){const t={PROVIDER:"clickup",AGENTS:"claude,cursor",DEV_NOTES_MODE:"smart",AIDEV_TRIGGER_WORD:"aidev-continue",THINKING_TAG:"thinking",PLANNING_TAG:"planning"};R.value=!0;try{const e=await V("/api/config",{method:"PUT",body:{values:t}});Y(e)}catch(e){N.value=e instanceof Error?e.message:String(e)}finally{R.value=!1}}async function Ie(){g.provider=!0,E.provider=null;try{E.provider=await V("/api/config/test",{method:"POST",body:{provider:!0}})}catch(t){E.provider={ok:!1,message:t instanceof Error?t.message:String(t)}}finally{g.provider=!1}}async function Te(){if(I.value){g.ai=!0,E.ai=null;try{E.ai=await V("/api/config/test",{method:"POST",body:{ai:I.value}})}catch(t){E.ai={ok:!1,message:t instanceof Error?t.message:String(t)}}finally{g.ai=!1}}}function ge(t){delete s[t]}function se(){h.value=!1,D.value="",b.value="",P.value=""}function ke(){const t=D.value.trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t)){P.value="Key must match [A-Za-z_][A-Za-z0-9_]*";return}if(t in s){P.value=`Key ${t} already exists`;return}s[t]=b.value,se()}return xe(ae),(t,e)=>{const r=Ve,d=Se,c=he,M=De,p=be,_=Pe,Oe=Ue,Ne=Ce;return u(),f("div",we,[a(c,null,{header:n(()=>[i("div",Me,[i("div",null,[e[21]||(e[21]=i("h1",{class:"text-lg font-semibold"},"Config",-1)),i("p",He,[i("code",null,C(l($)||"—"),1),l(L)===!1?(u(),f("span",Be,"not found")):l(L)?(u(),f("span",We,"loaded")):O("",!0)])]),i("div",je,[a(r,{color:"gray",variant:"ghost",size:"sm",loading:l(x),disabled:l(x),onClick:ae},{default:n(()=>[...e[22]||(e[22]=[T(" Reload ",-1)])]),_:1},8,["loading","disabled"]),a(r,{color:"primary",size:"sm",loading:l(R),disabled:l(R)||!l(ce),onClick:Ae},{default:n(()=>[...e[23]||(e[23]=[T(" Save changes ",-1)])]),_:1},8,["loading","disabled"])])])]),default:n(()=>[l(N)?(u(),k(d,{key:0,color:"red",variant:"soft",title:l(N),class:"mb-4"},null,8,["title"])):O("",!0),l(L)===!1?(u(),k(d,{key:1,color:"amber",variant:"soft",title:".env.aidev does not exist",description:"Press “Create with defaults” to seed the file with the minimum keys needed to start configuring.",class:"mb-4"},{actions:n(()=>[a(r,{size:"sm",color:"amber",loading:l(R),onClick:ve},{default:n(()=>[...e[24]||(e[24]=[T(" Create with defaults ",-1)])]),_:1},8,["loading"])]),_:1})):O("",!0),l(K)?(u(),f("div",Fe,[a(d,{color:"green",variant:"soft",title:"Saved",description:`Wrote ${l(J)} key(s).`},null,8,["description"])])):O("",!0)]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[i("div",Ye,[e[26]||(e[26]=i("h2",{class:"text-base font-semibold"},"Task provider",-1)),a(r,{size:"sm",color:"gray",variant:"soft",loading:l(g).provider,disabled:l(g).provider,onClick:Ie},{default:n(()=>[...e[25]||(e[25]=[T(" Test connection ",-1)])]),_:1},8,["loading","disabled"])])]),default:n(()=>[i("div",ze,[a(p,{label:"PROVIDER",help:"Which task backend aidev should talk to."},{default:n(()=>[a(M,{modelValue:l(s).PROVIDER,"onUpdate:modelValue":e[0]||(e[0]=o=>l(s).PROVIDER=o),options:ne},null,8,["modelValue"])]),_:1}),(u(!0),f(W,null,j(l(pe),o=>(u(),k(p,{key:o.key,label:o.key,help:o.help},{default:n(()=>[a(_,{modelValue:l(s)[o.key],"onUpdate:modelValue":A=>l(s)[o.key]=A,type:o.secret?"password":"text",placeholder:o.placeholder??"",autocomplete:"off"},null,8,["modelValue","onUpdate:modelValue","type","placeholder"])]),_:2},1032,["label","help"]))),128))]),l(E).provider?(u(),k(d,{key:0,color:l(E).provider.ok?"green":"red",variant:"soft",title:l(E).provider.ok?"Provider OK":"Provider failed",description:l(E).provider.message,class:"mt-3"},null,8,["color","title","description"])):O("",!0)]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[i("div",$e,[e[27]||(e[27]=i("h2",{class:"text-base font-semibold"},"AI runners",-1)),i("div",Je,[a(M,{modelValue:l(I),"onUpdate:modelValue":e[1]||(e[1]=o=>H(I)?I.value=o:null),options:l(ie),size:"sm",class:"w-44"},null,8,["modelValue","options"]),a(r,{size:"sm",color:"gray",variant:"soft",loading:l(g).ai,disabled:l(g).ai||!l(I),onClick:Te},{default:n(()=>[T(" Test "+C(l(I)||"agent"),1)]),_:1},8,["loading","disabled"])])])]),default:n(()=>[e[30]||(e[30]=i("p",{class:"text-sm text-gray-500 mb-3"}," Agents in fallback order — first is primary, rest are tried when the previous fails. ",-1)),i("div",Xe,[(u(!0),f(W,null,j(l(m),(o,A)=>(u(),f("div",{key:o.uid,class:"agent-block rounded-lg border border-gray-200 dark:border-gray-700 p-4"},[i("div",Ze,[i("div",qe,[i("div",Qe,[a(r,{size:"xs",color:"gray",variant:"ghost",icon:"i-heroicons-chevron-up",disabled:A===0,"aria-label":"Move up",onClick:v=>oe(A,-1)},null,8,["disabled","onClick"]),a(r,{size:"xs",color:"gray",variant:"ghost",icon:"i-heroicons-chevron-down",disabled:A===l(m).length-1,"aria-label":"Move down",onClick:v=>oe(A,1)},null,8,["disabled","onClick"])]),a(M,{modelValue:o.type,"onUpdate:modelValue":[v=>o.type=v,U],options:l(re),class:"w-52"},null,8,["modelValue","onUpdate:modelValue","options"]),A===0?(u(),k(Oe,{key:0,color:"primary",variant:"subtle",size:"xs"},{default:n(()=>[...e[28]||(e[28]=[T(" primary ",-1)])]),_:1})):(u(),f("span",el,"fallback "+C(A),1))]),a(r,{size:"xs",color:"red",variant:"ghost",icon:"i-heroicons-trash",disabled:l(m).length<=1,"aria-label":"Remove agent",onClick:v=>ye(A)},null,8,["disabled","onClick"])]),te(o.type).length>0?(u(),f("div",ll,[(u(!0),f(W,null,j(te(o.type),v=>(u(),k(p,{key:v.key,label:v.key,help:v.help},{default:n(()=>[a(_,{modelValue:l(s)[v.key],"onUpdate:modelValue":Re=>l(s)[v.key]=Re,type:v.secret?"password":"text",placeholder:v.placeholder??"",autocomplete:"off"},null,8,["modelValue","onUpdate:modelValue","type","placeholder"])]),_:2},1032,["label","help"]))),128))])):X[o.type]?(u(),f("p",tl,C(X[o.type]),1)):O("",!0)]))),128)),a(r,{size:"sm",color:"gray",variant:"soft",icon:"i-heroicons-plus",onClick:Ee},{default:n(()=>[...e[29]||(e[29]=[T(" Add agent ",-1)])]),_:1})]),l(E).ai?(u(),k(d,{key:0,color:l(E).ai.ok?"green":"red",variant:"soft",title:l(E).ai.ok?"AI runner OK":"AI runner failed",description:l(E).ai.message,class:"mt-3"},null,8,["color","title","description"])):O("",!0)]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[...e[31]||(e[31]=[i("h2",{class:"text-base font-semibold"},"Logging",-1)])]),default:n(()=>[i("div",ol,[a(p,{label:"AIDEV_LOG_PATH",help:"Path to the aidev log file. Defaults to ./aidev.log when blank."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_LOG_PATH,"onUpdate:modelValue":e[2]||(e[2]=o=>l(s).AIDEV_LOG_PATH=o),placeholder:"aidev.log"},null,8,["modelValue"])]),_:1})])]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[...e[32]||(e[32]=[i("h2",{class:"text-base font-semibold"},"Workflow & Git",-1)])]),default:n(()=>[i("div",al,[a(p,{label:"DEV_NOTES_MODE",help:"smart — ask only when unclear; always — ask before every task."},{default:n(()=>[a(M,{modelValue:l(s).DEV_NOTES_MODE,"onUpdate:modelValue":e[3]||(e[3]=o=>l(s).DEV_NOTES_MODE=o),options:ue},null,8,["modelValue"])]),_:1}),a(p,{label:"ASSIGNEE_TAG",help:"Optional tag to scope tasks to a specific assignee."},{default:n(()=>[a(_,{modelValue:l(s).ASSIGNEE_TAG,"onUpdate:modelValue":e[4]||(e[4]=o=>l(s).ASSIGNEE_TAG=o)},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_TRIGGER_WORD",help:"Word that resumes a paused agent run."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_TRIGGER_WORD,"onUpdate:modelValue":e[5]||(e[5]=o=>l(s).AIDEV_TRIGGER_WORD=o),placeholder:"aidev-continue"},null,8,["modelValue"])]),_:1}),a(p,{label:"THINKING_TAG",help:"Tasks with this tag are broken into sub-tasks first."},{default:n(()=>[a(_,{modelValue:l(s).THINKING_TAG,"onUpdate:modelValue":e[6]||(e[6]=o=>l(s).THINKING_TAG=o),placeholder:"thinking"},null,8,["modelValue"])]),_:1}),a(p,{label:"PLANNING_TAG",help:"Tasks with this tag are split into sub-tickets."},{default:n(()=>[a(_,{modelValue:l(s).PLANNING_TAG,"onUpdate:modelValue":e[7]||(e[7]=o=>l(s).PLANNING_TAG=o),placeholder:"planning"},null,8,["modelValue"])]),_:1}),a(p,{label:"ACCEPTED_TAG",help:"Tag marking a task as accepted for implementation."},{default:n(()=>[a(_,{modelValue:l(s).ACCEPTED_TAG,"onUpdate:modelValue":e[8]||(e[8]=o=>l(s).ACCEPTED_TAG=o),placeholder:"accepted"},null,8,["modelValue"])]),_:1}),a(p,{label:"DONE_STATUS",help:"Provider status treated as done/closed."},{default:n(()=>[a(_,{modelValue:l(s).DONE_STATUS,"onUpdate:modelValue":e[9]||(e[9]=o=>l(s).DONE_STATUS=o)},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_COMMENT_PREFIX",help:"Prefix for aidev comments on tasks."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_COMMENT_PREFIX,"onUpdate:modelValue":e[10]||(e[10]=o=>l(s).AIDEV_COMMENT_PREFIX=o),placeholder:"[aidev]"},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_HOOKS_PATH",help:"Optional hooks module (.ts or .js)."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_HOOKS_PATH,"onUpdate:modelValue":e[11]||(e[11]=o=>l(s).AIDEV_HOOKS_PATH=o),placeholder:".aidev/aidev.hooks.ts"},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_AUTO_COMPRESS",help:"Set false/0/no to disable prompt compression."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_AUTO_COMPRESS,"onUpdate:modelValue":e[12]||(e[12]=o=>l(s).AIDEV_AUTO_COMPRESS=o),placeholder:"true"},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_COMPRESS_THRESHOLD",help:"Char count that triggers compression."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_COMPRESS_THRESHOLD,"onUpdate:modelValue":e[13]||(e[13]=o=>l(s).AIDEV_COMPRESS_THRESHOLD=o),placeholder:"12000"},null,8,["modelValue"])]),_:1}),a(p,{label:"GIT_REMOTE"},{default:n(()=>[a(_,{modelValue:l(s).GIT_REMOTE,"onUpdate:modelValue":e[14]||(e[14]=o=>l(s).GIT_REMOTE=o),placeholder:"origin"},null,8,["modelValue"])]),_:1}),a(p,{label:"GITHUB_BASE_BRANCH"},{default:n(()=>[a(_,{modelValue:l(s).GITHUB_BASE_BRANCH,"onUpdate:modelValue":e[15]||(e[15]=o=>l(s).GITHUB_BASE_BRANCH=o),placeholder:"main"},null,8,["modelValue"])]),_:1}),a(p,{label:"GITHUB_REPO",help:"owner/repo — auto-detected when blank."},{default:n(()=>[a(_,{modelValue:l(s).GITHUB_REPO,"onUpdate:modelValue":e[16]||(e[16]=o=>l(s).GITHUB_REPO=o),placeholder:"owner/repo"},null,8,["modelValue"])]),_:1})])]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[i("div",sl,[e[34]||(e[34]=i("h2",{class:"text-base font-semibold"},"Other keys",-1)),a(r,{size:"xs",color:"gray",variant:"ghost",onClick:e[17]||(e[17]=o=>h.value=!0)},{default:n(()=>[...e[33]||(e[33]=[T(" + Add key ",-1)])]),_:1})])]),default:n(()=>[l(le).length===0?(u(),f("p",nl," No additional keys. Use “Add key” to introduce one. ")):(u(),f("div",rl,[(u(!0),f(W,null,j(l(le),o=>(u(),k(p,{key:o,label:o},{default:n(()=>[i("div",dl,[a(_,{modelValue:l(s)[o],"onUpdate:modelValue":A=>l(s)[o]=A,type:me(o)?"password":"text",autocomplete:"off",class:"flex-1"},null,8,["modelValue","onUpdate:modelValue","type"]),a(r,{size:"xs",color:"red",variant:"ghost",icon:"i-heroicons-trash",onClick:A=>ge(o)},null,8,["onClick"])])]),_:2},1032,["label"]))),128))]))]),_:1}),a(Ne,{modelValue:l(h),"onUpdate:modelValue":e[20]||(e[20]=o=>H(h)?h.value=o:null)},{default:n(()=>[a(c,null,{header:n(()=>[...e[35]||(e[35]=[i("h3",{class:"text-base font-semibold"},"Add config key",-1)])]),footer:n(()=>[i("div",pl,[a(r,{variant:"ghost",color:"gray",onClick:se},{default:n(()=>[...e[36]||(e[36]=[T("Cancel",-1)])]),_:1}),a(r,{color:"primary",onClick:ke},{default:n(()=>[...e[37]||(e[37]=[T("Add",-1)])]),_:1})])]),default:n(()=>[i("div",il,[a(p,{label:"Key",help:"Letters, numbers, and underscores. Must start with a letter or underscore."},{default:n(()=>[a(_,{modelValue:l(D),"onUpdate:modelValue":e[18]||(e[18]=o=>H(D)?D.value=o:null),placeholder:"MY_NEW_KEY",autofocus:""},null,8,["modelValue"])]),_:1}),a(p,{label:"Value"},{default:n(()=>[a(_,{modelValue:l(b),"onUpdate:modelValue":e[19]||(e[19]=o=>H(b)?b.value=o:null),autocomplete:"off"},null,8,["modelValue"])]),_:1}),l(P)?(u(),f("p",ul,C(l(P)),1)):O("",!0)])]),_:1})]),_:1},8,["modelValue"])])}}}),Sl=Ke(_l,[["__scopeId","data-v-62b03b92"]]);export{Sl as default};
@@ -1 +1 @@
1
- import{a7 as u,a6 as f,e as s,a2 as e,z as y,o as h,H as w}from"./B6CloFTX.js";const v=(n,o,p,l,g=!1)=>{const x=u(),t=f(),d=s(()=>{const r=e(o),m=e(p),a=e(l);return y(r?.strategy||t.ui?.strategy,a?{wrapper:a}:{},r||{},g?h(t.ui,n,{}):{},m||{})}),c=s(()=>w(x,["class"]));return{ui:d,attrs:c}},i={wrapper:"relative",base:"relative block w-full disabled:cursor-not-allowed disabled:opacity-75 focus:outline-none border-0",form:"form-input",rounded:"rounded-md",placeholder:"placeholder-gray-400 dark:placeholder-gray-500",file:{base:"file:mr-1.5 file:font-medium file:text-gray-500 dark:file:text-gray-400 file:bg-transparent file:border-0 file:p-0 file:outline-none"},size:{"2xs":"text-xs",xs:"text-xs",sm:"text-sm",md:"text-sm",lg:"text-sm",xl:"text-base"},gap:{"2xs":"gap-x-1",xs:"gap-x-1.5",sm:"gap-x-1.5",md:"gap-x-2",lg:"gap-x-2.5",xl:"gap-x-2.5"},padding:{"2xs":"px-2 py-1",xs:"px-2.5 py-1.5",sm:"px-2.5 py-1.5",md:"px-3 py-2",lg:"px-3.5 py-2.5",xl:"px-3.5 py-2.5"},leading:{padding:{"2xs":"ps-7",xs:"ps-8",sm:"ps-9",md:"ps-10",lg:"ps-11",xl:"ps-12"}},trailing:{padding:{"2xs":"pe-7",xs:"pe-8",sm:"pe-9",md:"pe-10",lg:"pe-11",xl:"pe-12"}},color:{white:{outline:"shadow-sm bg-white dark:bg-gray-900 text-gray-900 dark:text-white ring-1 ring-inset ring-gray-300 dark:ring-gray-700 focus:ring-2 focus:ring-primary-500 dark:focus:ring-primary-400"},gray:{outline:"shadow-sm bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-white ring-1 ring-inset ring-gray-300 dark:ring-gray-700 focus:ring-2 focus:ring-primary-500 dark:focus:ring-primary-400"}},variant:{outline:"shadow-sm bg-transparent text-gray-900 dark:text-white ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400 focus:ring-2 focus:ring-{color}-500 dark:focus:ring-{color}-400",none:"bg-transparent focus:ring-0 focus:shadow-none"},icon:{base:"flex-shrink-0 text-gray-400 dark:text-gray-500",color:"text-{color}-500 dark:text-{color}-400",loading:"animate-spin",size:{"2xs":"h-4 w-4",xs:"h-4 w-4",sm:"h-5 w-5",md:"h-5 w-5",lg:"h-5 w-5",xl:"h-6 w-6"},leading:{wrapper:"absolute inset-y-0 start-0 flex items-center",pointer:"pointer-events-none",padding:{"2xs":"px-2",xs:"px-2.5",sm:"px-2.5",md:"px-3",lg:"px-3.5",xl:"px-3.5"}},trailing:{wrapper:"absolute inset-y-0 end-0 flex items-center",pointer:"pointer-events-none",padding:{"2xs":"px-2",xs:"px-2.5",sm:"px-2.5",md:"px-3",lg:"px-3.5",xl:"px-3.5"}}},default:{size:"sm",color:"white",variant:"outline",loadingIcon:"i-heroicons-arrow-path-20-solid"}},b={option:{base:"cursor-default select-none relative flex items-center justify-between gap-1",rounded:"rounded-md",padding:"px-1.5 py-1.5",size:"text-sm",color:"text-gray-900 dark:text-white",container:"flex items-center gap-1.5 min-w-0",active:"bg-gray-100 dark:bg-gray-900",inactive:"",selected:"pe-7",disabled:"cursor-not-allowed opacity-50",empty:"text-sm text-gray-400 dark:text-gray-500 px-2 py-1.5",icon:{base:"flex-shrink-0 h-5 w-5",active:"text-gray-900 dark:text-white",inactive:"text-gray-400 dark:text-gray-500"},selectedIcon:{wrapper:"absolute inset-y-0 end-0 flex items-center",padding:"pe-2",base:"h-5 w-5 text-gray-900 dark:text-white flex-shrink-0"},avatar:{base:"flex-shrink-0",size:"2xs"},chip:{base:"flex-shrink-0 w-2 h-2 mx-1 rounded-full"}}},z={...i,form:"form-textarea",default:{size:"sm",color:"white",variant:"outline"}},I={...i,form:"form-select",placeholder:"text-gray-400 dark:text-gray-500",default:{size:"sm",color:"white",variant:"outline",loadingIcon:"i-heroicons-arrow-path-20-solid",trailingIcon:"i-heroicons-chevron-down-20-solid"}};({...b.option});export{i,I as s,z as t,v as u};
1
+ import{a7 as u,a6 as f,e as s,a2 as e,z as y,o as h,H as w}from"./D7LY3N47.js";const v=(n,o,p,l,g=!1)=>{const x=u(),t=f(),d=s(()=>{const r=e(o),m=e(p),a=e(l);return y(r?.strategy||t.ui?.strategy,a?{wrapper:a}:{},r||{},g?h(t.ui,n,{}):{},m||{})}),c=s(()=>w(x,["class"]));return{ui:d,attrs:c}},i={wrapper:"relative",base:"relative block w-full disabled:cursor-not-allowed disabled:opacity-75 focus:outline-none border-0",form:"form-input",rounded:"rounded-md",placeholder:"placeholder-gray-400 dark:placeholder-gray-500",file:{base:"file:mr-1.5 file:font-medium file:text-gray-500 dark:file:text-gray-400 file:bg-transparent file:border-0 file:p-0 file:outline-none"},size:{"2xs":"text-xs",xs:"text-xs",sm:"text-sm",md:"text-sm",lg:"text-sm",xl:"text-base"},gap:{"2xs":"gap-x-1",xs:"gap-x-1.5",sm:"gap-x-1.5",md:"gap-x-2",lg:"gap-x-2.5",xl:"gap-x-2.5"},padding:{"2xs":"px-2 py-1",xs:"px-2.5 py-1.5",sm:"px-2.5 py-1.5",md:"px-3 py-2",lg:"px-3.5 py-2.5",xl:"px-3.5 py-2.5"},leading:{padding:{"2xs":"ps-7",xs:"ps-8",sm:"ps-9",md:"ps-10",lg:"ps-11",xl:"ps-12"}},trailing:{padding:{"2xs":"pe-7",xs:"pe-8",sm:"pe-9",md:"pe-10",lg:"pe-11",xl:"pe-12"}},color:{white:{outline:"shadow-sm bg-white dark:bg-gray-900 text-gray-900 dark:text-white ring-1 ring-inset ring-gray-300 dark:ring-gray-700 focus:ring-2 focus:ring-primary-500 dark:focus:ring-primary-400"},gray:{outline:"shadow-sm bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-white ring-1 ring-inset ring-gray-300 dark:ring-gray-700 focus:ring-2 focus:ring-primary-500 dark:focus:ring-primary-400"}},variant:{outline:"shadow-sm bg-transparent text-gray-900 dark:text-white ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400 focus:ring-2 focus:ring-{color}-500 dark:focus:ring-{color}-400",none:"bg-transparent focus:ring-0 focus:shadow-none"},icon:{base:"flex-shrink-0 text-gray-400 dark:text-gray-500",color:"text-{color}-500 dark:text-{color}-400",loading:"animate-spin",size:{"2xs":"h-4 w-4",xs:"h-4 w-4",sm:"h-5 w-5",md:"h-5 w-5",lg:"h-5 w-5",xl:"h-6 w-6"},leading:{wrapper:"absolute inset-y-0 start-0 flex items-center",pointer:"pointer-events-none",padding:{"2xs":"px-2",xs:"px-2.5",sm:"px-2.5",md:"px-3",lg:"px-3.5",xl:"px-3.5"}},trailing:{wrapper:"absolute inset-y-0 end-0 flex items-center",pointer:"pointer-events-none",padding:{"2xs":"px-2",xs:"px-2.5",sm:"px-2.5",md:"px-3",lg:"px-3.5",xl:"px-3.5"}}},default:{size:"sm",color:"white",variant:"outline",loadingIcon:"i-heroicons-arrow-path-20-solid"}},b={option:{base:"cursor-default select-none relative flex items-center justify-between gap-1",rounded:"rounded-md",padding:"px-1.5 py-1.5",size:"text-sm",color:"text-gray-900 dark:text-white",container:"flex items-center gap-1.5 min-w-0",active:"bg-gray-100 dark:bg-gray-900",inactive:"",selected:"pe-7",disabled:"cursor-not-allowed opacity-50",empty:"text-sm text-gray-400 dark:text-gray-500 px-2 py-1.5",icon:{base:"flex-shrink-0 h-5 w-5",active:"text-gray-900 dark:text-white",inactive:"text-gray-400 dark:text-gray-500"},selectedIcon:{wrapper:"absolute inset-y-0 end-0 flex items-center",padding:"pe-2",base:"h-5 w-5 text-gray-900 dark:text-white flex-shrink-0"},avatar:{base:"flex-shrink-0",size:"2xs"},chip:{base:"flex-shrink-0 w-2 h-2 mx-1 rounded-full"}}},z={...i,form:"form-textarea",default:{size:"sm",color:"white",variant:"outline"}},I={...i,form:"form-select",placeholder:"text-gray-400 dark:text-gray-500",default:{size:"sm",color:"white",variant:"outline",loadingIcon:"i-heroicons-arrow-path-20-solid",trailingIcon:"i-heroicons-chevron-down-20-solid"}};({...b.option});export{i,I as s,z as t,v as u};
@@ -1 +1 @@
1
- import{a9 as $,N as s,i as n,f as d,ai as B,ae as V,A as q,D as t,W as g,h as u,l as A,b as p,e as m,z as N,j as b,a0 as h,a1 as v,a4 as j,a3 as D}from"./B6CloFTX.js";import{u as O}from"./CB-qGQpu.js";import{u as z}from"./mH-IieKd.js";import{_ as F}from"./DlAUqK2U.js";const M={wrapper:"relative flex items-start",container:"flex items-center h-5",base:"h-4 w-4 dark:checked:bg-current dark:checked:border-transparent dark:indeterminate:bg-current dark:indeterminate:border-transparent disabled:opacity-50 disabled:cursor-not-allowed focus:ring-0 focus:ring-transparent focus:ring-offset-transparent",form:"form-checkbox",rounded:"rounded",color:"text-{color}-500 dark:text-{color}-400",background:"bg-white dark:bg-gray-900",border:"border border-gray-300 dark:border-gray-700",ring:"focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900",inner:"ms-3 flex flex-col",label:"text-sm font-medium text-gray-700 dark:text-gray-200",required:"text-sm text-red-500 dark:text-red-400",help:"text-sm text-gray-500 dark:text-gray-400",default:{color:"primary"}},T=$,y=N(p.ui.strategy,p.ui.checkbox,M),U=A({inheritAttrs:!1,props:{id:{type:String,default:()=>null},value:{type:[String,Number,Boolean,Object],default:null},modelValue:{type:[Boolean,Array],default:null},name:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:void 0},help:{type:String,default:null},label:{type:String,default:null},required:{type:Boolean,default:!1},color:{type:String,default:()=>y.default.color,validator(e){return p.ui.colors.includes(e)}},inputClass:{type:String,default:""},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})}},emits:["update:modelValue","change"],setup(e,{emit:r}){const{ui:a,attrs:c}=O("checkbox",v(e,"ui"),y,v(e,"class")),{emitFormChange:f,color:l,name:o,inputId:k}=z(e),C=k.value??T(),I=m({get(){return e.modelValue},set(i){r("update:modelValue",i)}}),S=i=>{r("change",i.target.checked),f()},w=m(()=>j(D(a.value.base,a.value.form,a.value.rounded,a.value.background,a.value.border,l.value&&a.value.ring.replaceAll("{color}",l.value),l.value&&a.value.color.replaceAll("{color}",l.value)),e.inputClass));return{ui:a,attrs:c,toggle:I,inputId:C,name:o,inputClass:w,onChange:S}}}),E=["data-n-ids"],G=["id","name","required","value","disabled","indeterminate"],J=["for"];function P(e,r,a,c,f,l){return s(),n("div",{class:t(e.ui.wrapper),"data-n-ids":e.attrs["data-n-ids"]},[d("div",{class:t(e.ui.container)},[B(d("input",q({id:e.inputId,"onUpdate:modelValue":r[0]||(r[0]=o=>e.toggle=o),name:e.name,required:e.required,value:e.value,disabled:e.disabled,indeterminate:e.indeterminate,type:"checkbox",class:e.inputClass},e.attrs,{onChange:r[1]||(r[1]=(...o)=>e.onChange&&e.onChange(...o))}),null,16,G),[[V,e.toggle]])],2),e.label||e.$slots.label?(s(),n("div",{key:0,class:t(e.ui.inner)},[d("label",{for:e.inputId,class:t(e.ui.label)},[g(e.$slots,"label",{label:e.label},()=>[b(h(e.label),1)]),e.required?(s(),n("span",{key:0,class:t(e.ui.required)},"*",2)):u("",!0)],10,J),e.help||e.$slots.help?(s(),n("p",{key:0,class:t(e.ui.help)},[g(e.$slots,"help",{help:e.help},()=>[b(h(e.help),1)])],2)):u("",!0)],2)):u("",!0)],10,E)}const L=F(U,[["render",P]]),Q=globalThis.setInterval;export{L as _,Q as s};
1
+ import{a9 as $,N as s,i as n,f as d,ai as B,ae as V,A as q,D as t,W as g,h as u,l as A,b as p,e as m,z as N,j as b,a0 as h,a1 as v,a4 as j,a3 as D}from"./D7LY3N47.js";import{u as O}from"./DqW9UKXb.js";import{u as z}from"./DWMhLzME.js";import{_ as F}from"./DlAUqK2U.js";const M={wrapper:"relative flex items-start",container:"flex items-center h-5",base:"h-4 w-4 dark:checked:bg-current dark:checked:border-transparent dark:indeterminate:bg-current dark:indeterminate:border-transparent disabled:opacity-50 disabled:cursor-not-allowed focus:ring-0 focus:ring-transparent focus:ring-offset-transparent",form:"form-checkbox",rounded:"rounded",color:"text-{color}-500 dark:text-{color}-400",background:"bg-white dark:bg-gray-900",border:"border border-gray-300 dark:border-gray-700",ring:"focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900",inner:"ms-3 flex flex-col",label:"text-sm font-medium text-gray-700 dark:text-gray-200",required:"text-sm text-red-500 dark:text-red-400",help:"text-sm text-gray-500 dark:text-gray-400",default:{color:"primary"}},T=$,y=N(p.ui.strategy,p.ui.checkbox,M),U=A({inheritAttrs:!1,props:{id:{type:String,default:()=>null},value:{type:[String,Number,Boolean,Object],default:null},modelValue:{type:[Boolean,Array],default:null},name:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:void 0},help:{type:String,default:null},label:{type:String,default:null},required:{type:Boolean,default:!1},color:{type:String,default:()=>y.default.color,validator(e){return p.ui.colors.includes(e)}},inputClass:{type:String,default:""},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})}},emits:["update:modelValue","change"],setup(e,{emit:r}){const{ui:a,attrs:c}=O("checkbox",v(e,"ui"),y,v(e,"class")),{emitFormChange:f,color:l,name:o,inputId:k}=z(e),C=k.value??T(),I=m({get(){return e.modelValue},set(i){r("update:modelValue",i)}}),S=i=>{r("change",i.target.checked),f()},w=m(()=>j(D(a.value.base,a.value.form,a.value.rounded,a.value.background,a.value.border,l.value&&a.value.ring.replaceAll("{color}",l.value),l.value&&a.value.color.replaceAll("{color}",l.value)),e.inputClass));return{ui:a,attrs:c,toggle:I,inputId:C,name:o,inputClass:w,onChange:S}}}),E=["data-n-ids"],G=["id","name","required","value","disabled","indeterminate"],J=["for"];function P(e,r,a,c,f,l){return s(),n("div",{class:t(e.ui.wrapper),"data-n-ids":e.attrs["data-n-ids"]},[d("div",{class:t(e.ui.container)},[B(d("input",q({id:e.inputId,"onUpdate:modelValue":r[0]||(r[0]=o=>e.toggle=o),name:e.name,required:e.required,value:e.value,disabled:e.disabled,indeterminate:e.indeterminate,type:"checkbox",class:e.inputClass},e.attrs,{onChange:r[1]||(r[1]=(...o)=>e.onChange&&e.onChange(...o))}),null,16,G),[[V,e.toggle]])],2),e.label||e.$slots.label?(s(),n("div",{key:0,class:t(e.ui.inner)},[d("label",{for:e.inputId,class:t(e.ui.label)},[g(e.$slots,"label",{label:e.label},()=>[b(h(e.label),1)]),e.required?(s(),n("span",{key:0,class:t(e.ui.required)},"*",2)):u("",!0)],10,J),e.help||e.$slots.help?(s(),n("p",{key:0,class:t(e.ui.help)},[g(e.$slots,"help",{help:e.help},()=>[b(h(e.help),1)])],2)):u("",!0)],2)):u("",!0)],10,E)}const L=F(U,[["render",P]]),Q=globalThis.setInterval;export{L as _,Q as s};
@@ -1 +1 @@
1
- {"id":"d82a45ff-ab57-436a-9e74-0088adfd2cb8","timestamp":1780046822357}
1
+ {"id":"c6a56b63-9280-455c-96ed-843f8029ca3a","timestamp":1780299734820}
@@ -0,0 +1 @@
1
+ {"id":"c6a56b63-9280-455c-96ed-843f8029ca3a","timestamp":1780299734820,"prerendered":[]}
@@ -1 +1 @@
1
- import{B as n}from"./B6CloFTX.js";const e="aidev-ui-token";function u(){return async(s,a={})=>{const o=localStorage.getItem(e),r={...a.headers??{}};o&&(r.Authorization=`Bearer ${o}`);try{return await $fetch(s,{...a,headers:r})}catch(t){throw(t?.response?.status??t?.statusCode)===401&&(localStorage.removeItem(e),await n("/login")),t}}}function l(){localStorage.removeItem(e)}export{l as c,u};
1
+ import{B as n}from"./D7LY3N47.js";const e="aidev-ui-token";function u(){return async(s,a={})=>{const o=localStorage.getItem(e),r={...a.headers??{}};o&&(r.Authorization=`Bearer ${o}`);try{return await $fetch(s,{...a,headers:r})}catch(t){throw(t?.response?.status??t?.statusCode)===401&&(localStorage.removeItem(e),await n("/login")),t}}}function l(){localStorage.removeItem(e)}export{l as c,u};
@@ -0,0 +1 @@
1
+ .card[data-v-75f8701c]{background:#fff;border:1px solid #e2e8f0;border-radius:.375rem;cursor:pointer;display:flex;flex-direction:column;gap:.3rem;padding:.55rem .65rem;transition:box-shadow .12s ease,border-color .12s ease}.card[data-v-75f8701c]:hover{border-color:#94a3b8;box-shadow:0 1px 3px #0f172a14}.card--active[data-v-75f8701c]{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.card--running[data-v-75f8701c]{border-color:#16a34a;box-shadow:0 0 0 2px #16a34a2e}.card-id[data-v-75f8701c]{color:#64748b;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.7rem}.card-title[data-v-75f8701c]{color:#0f172a;font-size:.85rem;font-weight:500;line-height:1.3;word-break:break-word}.card-meta[data-v-75f8701c]{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.1rem}.badge[data-v-75f8701c]{background:#e2e8f0;border-radius:.25rem;color:#1e293b;font-size:.65rem;font-weight:500;padding:.05rem .35rem}.badge--p[data-v-75f8701c]{background:#fde68a;color:#78350f}.badge--tag[data-v-75f8701c]{background:#dbeafe;color:#1e3a8a}.badge--run[data-v-75f8701c]{background:#bbf7d0;color:#14532d}.column[data-v-b3a5d2f7]{background:#f1f5f9;border-radius:.5rem;display:flex;flex:0 0 220px;flex-direction:column;min-height:14rem;padding:.5rem;width:220px}.col-head[data-v-b3a5d2f7]{align-items:baseline;display:flex;gap:.35rem;justify-content:space-between;padding:.25rem .5rem .5rem;white-space:nowrap}.col-title[data-v-b3a5d2f7]{color:#334155;flex-shrink:0;font-size:.85rem;font-weight:600}.col-title--pending[data-v-b3a5d2f7]{color:#ca8a04}.col-title--inprogress[data-v-b3a5d2f7]{color:#2563eb}.col-title--review[data-v-b3a5d2f7]{color:#7c3aed}.col-title--done[data-v-b3a5d2f7]{color:#16a34a}.col-count[data-v-b3a5d2f7]{background:#e2e8f0;border-radius:9999px;color:#475569;font-size:.7rem;padding:.1rem .5rem}.col-body[data-v-b3a5d2f7]{display:flex;flex-direction:column;gap:.4rem}.col-empty[data-v-b3a5d2f7]{color:#94a3b8;font-size:.75rem;padding:1rem 0;text-align:center}.board-scroll[data-v-3c3c8dd8]{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}.board[data-v-3c3c8dd8]{display:flex;flex-wrap:nowrap;gap:.75rem;min-width:100%;width:-moz-max-content;width:max-content}.tags-bar[data-v-3f5621e5]{align-items:center;display:flex;flex-wrap:wrap;gap:.35rem}.tags-bar--saving[data-v-3f5621e5]{opacity:.65;pointer-events:none}.muted-empty[data-v-3f5621e5]{color:#94a3b8;font-size:.78rem}.btn-group[data-v-3f5621e5],.btn-seg[data-v-3f5621e5]{display:inline-flex}.btn-seg[data-v-3f5621e5]{align-items:center;background:#fff;border:1px solid #cbd5e1;color:#64748b;cursor:pointer;font-size:.72rem;font-weight:500;line-height:1;padding:.25rem .55rem;transition:background .1s,border-color .1s,color .1s;white-space:nowrap}.btn-seg[data-v-3f5621e5]:first-child{border-radius:.3rem 0 0 .3rem}.btn-seg[data-v-3f5621e5]:last-child{border-radius:0 .3rem .3rem 0}.btn-seg+.btn-seg[data-v-3f5621e5]{margin-left:-1px}.btn-seg[data-v-3f5621e5]:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8;color:#334155;position:relative;z-index:1}.btn-seg[data-v-3f5621e5]:disabled{cursor:default;opacity:.5}.btn-seg--on[data-v-3f5621e5]{background:#2563eb;border-color:#2563eb;color:#fff;position:relative;z-index:1}.btn-seg--on[data-v-3f5621e5]:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.tag-chip[data-v-3f5621e5]{align-items:center;background:#fff;border:1px solid #cbd5e1;border-radius:.3rem;color:#64748b;cursor:pointer;display:inline-flex;font-size:.72rem;font-weight:500;gap:.25rem;line-height:1;padding:.25rem .55rem;transition:background .1s,border-color .1s,color .1s;white-space:nowrap}.tag-chip[data-v-3f5621e5]:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8;color:#334155}.tag-chip[data-v-3f5621e5]:disabled{cursor:default;opacity:.5}.tag-chip--on[data-v-3f5621e5]{background:#dbeafe;border-color:#93c5fd;color:#1e40af}.tag-chip--on[data-v-3f5621e5]:hover:not(:disabled){background:#bfdbfe;border-color:#60a5fa}.tag-chip--other[data-v-3f5621e5]{cursor:default;padding-right:.3rem}.tag-chip-remove[data-v-3f5621e5]{align-items:center;background:transparent;border:none;border-radius:.2rem;color:#1e40af;cursor:pointer;display:inline-flex;height:1rem;justify-content:center;margin-left:.05rem;opacity:.6;padding:0;transition:opacity .1s,background .1s;width:1rem}.tag-chip-remove[data-v-3f5621e5]:hover:not(:disabled){background:#1e40af1a;opacity:1}.tag-chip-remove[data-v-3f5621e5]:disabled{cursor:default;opacity:.3}.tag-chip-remove[data-v-3f5621e5] svg{height:.65rem;width:.65rem}.create-form[data-v-2ed4cf80]{gap:1rem}.create-form[data-v-2ed4cf80],.field[data-v-2ed4cf80]{display:flex;flex-direction:column}.field[data-v-2ed4cf80]{gap:.35rem}.field-label[data-v-2ed4cf80]{color:#64748b;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.required[data-v-2ed4cf80]{color:#ef4444}.actions[data-v-2ed4cf80]{display:flex;gap:.5rem;justify-content:flex-end;padding-top:.5rem}.md-content[data-v-14f3b300]{color:#0f172a;font-size:.8rem;line-height:1.45;word-break:break-word}.md-content[data-v-14f3b300] p{margin:0 0 .5em}.md-content[data-v-14f3b300] p:last-child{margin-bottom:0}.md-content[data-v-14f3b300] h1,.md-content[data-v-14f3b300] h2,.md-content[data-v-14f3b300] h3,.md-content[data-v-14f3b300] h4{color:#0f172a;font-weight:600;line-height:1.25;margin:.75em 0 .35em}.md-content[data-v-14f3b300] h1{font-size:1.1rem}.md-content[data-v-14f3b300] h2{font-size:1rem}.md-content[data-v-14f3b300] h3{font-size:.95rem}.md-content[data-v-14f3b300] ol,.md-content[data-v-14f3b300] ul{margin:0 0 .5em;padding-left:1.35em}.md-content[data-v-14f3b300] li{margin:.15em 0}.md-content[data-v-14f3b300] blockquote{border-left:3px solid #cbd5e1;color:#475569;margin:0 0 .5em;padding-left:.65em}.md-content[data-v-14f3b300] a{color:#2563eb;text-decoration:underline}.md-content[data-v-14f3b300] a:hover{color:#1d4ed8}.md-content[data-v-14f3b300] code{background:#e2e8f0;border-radius:.2rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;padding:.1em .3em}.md-content[data-v-14f3b300] pre{background:#e2e8f0;border-radius:.375rem;margin:0 0 .5em;overflow-x:auto;padding:.55rem .65rem;white-space:pre-wrap}.md-content[data-v-14f3b300] pre code{background:none;padding:0}.md-content[data-v-14f3b300] hr{border:none;border-top:1px solid #e2e8f0;margin:.65em 0}.md-content[data-v-14f3b300] table{border-collapse:collapse;font-size:.75rem;margin:0 0 .5em;width:100%}.md-content[data-v-14f3b300] td,.md-content[data-v-14f3b300] th{border:1px solid #e2e8f0;padding:.25rem .4rem;text-align:left}.drawer-section[data-v-a2f9ad74]{margin-top:1rem}.section-title[data-v-a2f9ad74]{color:#475569;font-size:.8rem;letter-spacing:.06em;margin-bottom:.4rem;text-transform:uppercase}.muted[data-v-a2f9ad74]{color:#64748b;font-size:.85rem}.exec-row[data-v-a2f9ad74]{align-items:center;display:flex;gap:.5rem;margin:.5rem 0}.exec-viewer[data-v-a2f9ad74]{background:#0f172a;border-radius:.375rem;color:#e2e8f0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;line-height:1.45;margin:0;max-height:18rem;overflow:auto;padding:.6rem .85rem;white-space:pre}.modal-body[data-v-f7c8f271]{display:grid;gap:1.25rem;grid-template-columns:1fr}@media(min-width:768px){.modal-body[data-v-f7c8f271]{align-items:start;grid-template-columns:1fr 1fr;min-height:420px}}.left-col[data-v-f7c8f271]{display:flex;flex-direction:column;gap:0}.drawer-section[data-v-f7c8f271]{margin-top:1rem}.drawer-section[data-v-f7c8f271]:first-child{margin-top:0}.right-col[data-v-f7c8f271]{border-left:1px solid #e2e8f0;display:flex;flex-direction:column;max-height:65vh;padding-left:1.25rem}@media(max-width:767px){.right-col[data-v-f7c8f271]{border-left:none;border-top:1px solid #e2e8f0;max-height:none;padding-left:0;padding-top:1rem}}.comments-list[data-v-f7c8f271]{flex:1;margin-bottom:.75rem;margin-top:.4rem;min-height:0;overflow-y:auto;padding-right:.25rem}.comment-form[data-v-f7c8f271],.comments-list[data-v-f7c8f271]{display:flex;flex-direction:column;gap:.5rem}.comment-form[data-v-f7c8f271]{border-top:1px solid #e2e8f0;flex-shrink:0;padding-top:.5rem}.section-title[data-v-f7c8f271]{color:#475569;font-size:.8rem;letter-spacing:.06em;margin-bottom:.4rem;text-transform:uppercase}.desc[data-v-f7c8f271]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.375rem;max-height:16rem;overflow:auto;padding:.6rem .75rem}.muted[data-v-f7c8f271]{color:#64748b;font-size:.85rem}.status-row[data-v-f7c8f271]{align-items:center;display:flex;gap:.5rem}.comment[data-v-f7c8f271]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.375rem;flex-shrink:0;padding:.5rem .65rem}.comment-head[data-v-f7c8f271]{color:#64748b;display:flex;font-size:.7rem;justify-content:space-between;margin-bottom:.25rem}.comment-author[data-v-f7c8f271]{color:#334155;font-weight:600}.comment-body[data-v-f7c8f271]{margin:0}.comment-actions[data-v-f7c8f271]{align-items:center}.comment-actions[data-v-f7c8f271],.tags-header[data-v-f7c8f271]{display:flex;gap:.5rem;justify-content:space-between}.tags-header[data-v-f7c8f271]{align-items:baseline;margin-bottom:.3rem}.tags-header .section-title[data-v-f7c8f271]{margin-bottom:0}.tags-count[data-v-f7c8f271]{color:#94a3b8;flex-shrink:0;font-size:.7rem}.tags-panel[data-v-f7c8f271]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.375rem;padding:.4rem .5rem}.tags-panel--saving[data-v-f7c8f271]{opacity:.65;pointer-events:none}.link[data-v-f7c8f271]{color:#2563eb;text-decoration:underline}.link[data-v-f7c8f271]:hover{color:#1d4ed8}.tasks-page[data-v-c666eefa]{display:flex;flex-direction:column}.empty-banner[data-v-c666eefa]{color:#64748b;font-size:.85rem;margin-bottom:.75rem}.link[data-v-c666eefa]{color:#2563eb;text-decoration:underline}.link[data-v-c666eefa]:hover{color:#1d4ed8}
@@ -1,5 +1,5 @@
1
1
  import { _ as __nuxt_component_0$2 } from './nuxt-link-B3UD8izG.mjs';
2
- import { P as serialize, B as isEqual } from '../nitro/nitro.mjs';
2
+ import { Q as serialize, B as isEqual } from '../nitro/nitro.mjs';
3
3
  import { mergeProps, withCtx, renderSlot, openBlock, createBlock, createCommentVNode, toDisplayString, defineComponent, toRef, computed, getCurrentInstance, provide, inject, createVNode, resolveDynamicComponent, useSSRContext } from 'vue';
4
4
  import { t as twMerge, a as appConfig, m as mergeConfig } from './server.mjs';
5
5
  import { ssrRenderComponent, ssrRenderSlot, ssrRenderClass, ssrInterpolate, ssrRenderVNode, ssrRenderAttrs } from 'vue/server-renderer';
@@ -0,0 +1,8 @@
1
+ import { M as MarkdownContent_vue_vue_type_style_index_0_scoped_14f3b300_lang } from './tasks-styles-6.mjs-eVZp4A8Q.mjs';
2
+
3
+ const MarkdownContentStyles_Cmzswe4U = [
4
+ MarkdownContent_vue_vue_type_style_index_0_scoped_14f3b300_lang
5
+ ];
6
+
7
+ export { MarkdownContentStyles_Cmzswe4U as default };
8
+ //# sourceMappingURL=MarkdownContent-styles.Cmzswe4U.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownContent-styles.Cmzswe4U.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/MarkdownContent-styles.Cmzswe4U.mjs"],"names":["style_0"],"mappings":";;AACA,uCAAe;AACf,EAAEA;AACF;;;;"}
@@ -0,0 +1,8 @@
1
+ import { T as TagsBar_vue_vue_type_style_index_0_scoped_3f5621e5_lang } from './tasks-styles-4.mjs-D037ZDm6.mjs';
2
+
3
+ const TagsBarStyles_Dl9oYtA7 = [
4
+ TagsBar_vue_vue_type_style_index_0_scoped_3f5621e5_lang
5
+ ];
6
+
7
+ export { TagsBarStyles_Dl9oYtA7 as default };
8
+ //# sourceMappingURL=TagsBar-styles.Dl9oYtA7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagsBar-styles.Dl9oYtA7.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/TagsBar-styles.Dl9oYtA7.mjs"],"names":["style_0"],"mappings":";;AACA,+BAAe;AACf,EAAEA;AACF;;;;"}
@@ -0,0 +1,8 @@
1
+ import { T as TaskCreateModal_vue_vue_type_style_index_0_scoped_2ed4cf80_lang } from './tasks-styles-5.mjs-C-8-0itm.mjs';
2
+
3
+ const TaskCreateModalStyles_Ctk3K3aq = [
4
+ TaskCreateModal_vue_vue_type_style_index_0_scoped_2ed4cf80_lang
5
+ ];
6
+
7
+ export { TaskCreateModalStyles_Ctk3K3aq as default };
8
+ //# sourceMappingURL=TaskCreateModal-styles.Ctk3K3aq.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskCreateModal-styles.Ctk3K3aq.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/TaskCreateModal-styles.Ctk3K3aq.mjs"],"names":["style_0"],"mappings":";;AACA,uCAAe;AACf,EAAEA;AACF;;;;"}
@@ -0,0 +1,8 @@
1
+ import { T as TaskDetailExecute_vue_vue_type_style_index_0_scoped_a2f9ad74_lang } from './tasks-styles-7.mjs-DPUNG0PO.mjs';
2
+
3
+ const TaskDetailExecuteStyles_BOwrZEBG = [
4
+ TaskDetailExecute_vue_vue_type_style_index_0_scoped_a2f9ad74_lang
5
+ ];
6
+
7
+ export { TaskDetailExecuteStyles_BOwrZEBG as default };
8
+ //# sourceMappingURL=TaskDetailExecute-styles.BOwrZEBG.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskDetailExecute-styles.BOwrZEBG.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/TaskDetailExecute-styles.BOwrZEBG.mjs"],"names":["style_0"],"mappings":";;AACA,yCAAe;AACf,EAAEA;AACF;;;;"}
@@ -0,0 +1,8 @@
1
+ import { T as TaskDetailModal_vue_vue_type_style_index_0_scoped_f7c8f271_lang } from './tasks-styles-8.mjs-BWrrF67v.mjs';
2
+
3
+ const TaskDetailModalStyles_BpZ60PFP = [
4
+ TaskDetailModal_vue_vue_type_style_index_0_scoped_f7c8f271_lang
5
+ ];
6
+
7
+ export { TaskDetailModalStyles_BpZ60PFP as default };
8
+ //# sourceMappingURL=TaskDetailModal-styles.BpZ60PFP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskDetailModal-styles.BpZ60PFP.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/TaskDetailModal-styles.BpZ60PFP.mjs"],"names":["style_0"],"mappings":";;AACA,uCAAe;AACf,EAAEA;AACF;;;;"}