@qelos/aidev 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/.env.aidev.example +12 -1
  2. package/README.md +65 -7
  3. package/dist/ai/devin.d.ts +7 -0
  4. package/dist/ai/devin.d.ts.map +1 -0
  5. package/dist/ai/devin.js +91 -0
  6. package/dist/ai/devin.js.map +1 -0
  7. package/dist/ai/index.js +2 -2
  8. package/dist/ai/index.js.map +1 -1
  9. package/dist/cli.js +31 -0
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commands/help.js +1 -1
  12. package/dist/commands/help.js.map +1 -1
  13. package/dist/commands/hooks.d.ts +5 -0
  14. package/dist/commands/hooks.d.ts.map +1 -0
  15. package/dist/commands/hooks.js +86 -0
  16. package/dist/commands/hooks.js.map +1 -0
  17. package/dist/commands/init.d.ts +1 -0
  18. package/dist/commands/init.d.ts.map +1 -1
  19. package/dist/commands/init.js +18 -109
  20. package/dist/commands/init.js.map +1 -1
  21. package/dist/commands/run.d.ts +2 -1
  22. package/dist/commands/run.d.ts.map +1 -1
  23. package/dist/commands/run.js +105 -64
  24. package/dist/commands/run.js.map +1 -1
  25. package/dist/commands/schedule.js +2 -2
  26. package/dist/commands/schedule.js.map +1 -1
  27. package/dist/config.d.ts.map +1 -1
  28. package/dist/config.js +8 -1
  29. package/dist/config.js.map +1 -1
  30. package/dist/diagnostics.d.ts.map +1 -1
  31. package/dist/diagnostics.js +1 -2
  32. package/dist/diagnostics.js.map +1 -1
  33. package/dist/hooks.d.ts +18 -0
  34. package/dist/hooks.d.ts.map +1 -1
  35. package/dist/hooks.js +16 -0
  36. package/dist/hooks.js.map +1 -1
  37. package/dist/hooksTemplate.d.ts +14 -0
  38. package/dist/hooksTemplate.d.ts.map +1 -0
  39. package/dist/hooksTemplate.js +274 -0
  40. package/dist/hooksTemplate.js.map +1 -0
  41. package/dist/logger.d.ts +1 -0
  42. package/dist/logger.d.ts.map +1 -1
  43. package/dist/logger.js +32 -0
  44. package/dist/logger.js.map +1 -1
  45. package/dist/platform.d.ts +2 -2
  46. package/dist/platform.js +2 -2
  47. package/dist/providers/clickup.d.ts +8 -0
  48. package/dist/providers/clickup.d.ts.map +1 -1
  49. package/dist/providers/clickup.js +13 -1
  50. package/dist/providers/clickup.js.map +1 -1
  51. package/dist/providers/jira.d.ts +2 -0
  52. package/dist/providers/jira.d.ts.map +1 -1
  53. package/dist/providers/jira.js +51 -12
  54. package/dist/providers/jira.js.map +1 -1
  55. package/dist/providers/linear.d.ts +19 -0
  56. package/dist/providers/linear.d.ts.map +1 -1
  57. package/dist/providers/linear.js +65 -18
  58. package/dist/providers/linear.js.map +1 -1
  59. package/dist/providers/monday.d.ts +11 -0
  60. package/dist/providers/monday.d.ts.map +1 -1
  61. package/dist/providers/monday.js +74 -1
  62. package/dist/providers/monday.js.map +1 -1
  63. package/dist/providers/notion.d.ts +1 -0
  64. package/dist/providers/notion.d.ts.map +1 -1
  65. package/dist/providers/notion.js +44 -0
  66. package/dist/providers/notion.js.map +1 -1
  67. package/dist/providers/trello.d.ts +1 -0
  68. package/dist/providers/trello.d.ts.map +1 -1
  69. package/dist/providers/trello.js +53 -0
  70. package/dist/providers/trello.js.map +1 -1
  71. package/dist/safeMode.d.ts +32 -0
  72. package/dist/safeMode.d.ts.map +1 -0
  73. package/dist/safeMode.js +192 -0
  74. package/dist/safeMode.js.map +1 -0
  75. package/dist/types.d.ts +4 -1
  76. package/dist/types.d.ts.map +1 -1
  77. package/package.json +2 -2
  78. package/ui/.output/nitro.json +1 -1
  79. package/ui/.output/public/_nuxt/6wLLp9Nc.js +1 -0
  80. package/ui/.output/public/_nuxt/BGkU0f28.js +1 -0
  81. package/ui/.output/public/_nuxt/BOIhDy_l.js +4 -0
  82. package/ui/.output/public/_nuxt/BWJzzHTi.js +1 -0
  83. package/ui/.output/public/_nuxt/{3LZdFtk_.js → By4xSvKt.js} +3 -3
  84. package/ui/.output/public/_nuxt/ByAMJ0xS.js +1 -0
  85. package/ui/.output/public/_nuxt/C1xk3ymy.js +1 -0
  86. package/ui/.output/public/_nuxt/CBV5GuL6.js +11 -0
  87. package/ui/.output/public/_nuxt/CTtW-0zG.js +1 -0
  88. package/ui/.output/public/_nuxt/CX0vIr0s.js +131 -0
  89. package/ui/.output/public/_nuxt/{LzHPbXPK.js → CYm8nRCj.js} +1 -1
  90. package/ui/.output/public/_nuxt/CdHqKVo4.js +1 -0
  91. package/ui/.output/public/_nuxt/CnXdKLRd.js +16 -0
  92. package/ui/.output/public/_nuxt/Cz9dogwK.js +1 -0
  93. package/ui/.output/public/_nuxt/DGHfexQZ.js +1 -0
  94. package/ui/.output/public/_nuxt/{CWjftssB.js → DOoocm0F.js} +1 -1
  95. package/ui/.output/public/_nuxt/{DZd8Jv5H.js → D_gcbXK2.js} +1 -1
  96. package/ui/.output/public/_nuxt/{CO4XMBYO.js → Dfhp6TEA.js} +11 -11
  97. package/ui/.output/public/_nuxt/{BtD1YBwM.js → G5BjvTWO.js} +1 -1
  98. package/ui/.output/public/_nuxt/H73b_QUy.js +1 -0
  99. package/ui/.output/public/_nuxt/{BMTHyzVP.js → LCoCV2KL.js} +1 -1
  100. package/ui/.output/public/_nuxt/Zrl3Utak.js +1 -0
  101. package/ui/.output/public/_nuxt/config.CaB_F_OT.css +1 -0
  102. package/ui/.output/public/_nuxt/default.D13_FS9T.css +1 -0
  103. package/ui/.output/public/_nuxt/hooks.B03-GWTh.css +1 -0
  104. package/ui/.output/public/_nuxt/kPPYUzXr.js +2 -0
  105. package/ui/.output/public/_nuxt/logs.DLMkvOEl.css +1 -0
  106. package/ui/.output/public/_nuxt/mHp9eItY.js +1 -0
  107. package/ui/.output/public/_nuxt/{BTfAgCfF.js → tyaD1vVi.js} +1 -1
  108. package/ui/.output/public/_nuxt/{BGlShnpS.js → ynXKxjpn.js} +1 -1
  109. package/ui/.output/public/_nuxt/{B8sr5ZW-.js → yqBy-NAR.js} +2 -2
  110. package/ui/.output/server/chunks/_/hooksTemplate.mjs +365 -0
  111. package/ui/.output/server/chunks/_/hooksTemplate.mjs.map +1 -0
  112. package/ui/.output/server/chunks/build/{Badge-YPOjmkfv.mjs → Badge-nNgbDd8N.mjs} +2 -2
  113. package/ui/.output/server/chunks/build/{Badge-YPOjmkfv.mjs.map → Badge-nNgbDd8N.mjs.map} +1 -1
  114. package/ui/.output/server/chunks/build/{Button-CZHl6fpI.mjs → Button-CQZG7w2L.mjs} +117 -3
  115. package/ui/.output/server/chunks/build/Button-CQZG7w2L.mjs.map +1 -0
  116. package/ui/.output/server/chunks/build/{Card--ibiHV_r.mjs → Card-DdEnDTQW.mjs} +2 -2
  117. package/ui/.output/server/chunks/build/{Card--ibiHV_r.mjs.map → Card-DdEnDTQW.mjs.map} +1 -1
  118. package/ui/.output/server/chunks/build/{FormGroup-CX5VmH8y.mjs → FormGroup-BfYiVGgN.mjs} +2 -2
  119. package/ui/.output/server/chunks/build/{FormGroup-CX5VmH8y.mjs.map → FormGroup-BfYiVGgN.mjs.map} +1 -1
  120. package/ui/.output/server/chunks/build/{Input-kmqS1oY_.mjs → Input-Cnk3P_aB.mjs} +5 -60
  121. package/ui/.output/server/chunks/build/Input-Cnk3P_aB.mjs.map +1 -0
  122. package/ui/.output/server/chunks/build/{Modal-DmZs0Ekg.mjs → Modal-DfVO6DJD.mjs} +10 -5
  123. package/ui/.output/server/chunks/build/Modal-DfVO6DJD.mjs.map +1 -0
  124. package/ui/.output/server/chunks/build/{Select-n4_YfXfk.mjs → Select-Dc9_TJIR.mjs} +3 -3
  125. package/ui/.output/server/chunks/build/{Select-n4_YfXfk.mjs.map → Select-Dc9_TJIR.mjs.map} +1 -1
  126. package/ui/.output/server/chunks/build/client.precomputed.mjs +1 -1
  127. package/ui/.output/server/chunks/build/client.precomputed.mjs.map +1 -1
  128. package/ui/.output/server/chunks/build/{config-Bkb2wy7R.mjs → config-BUokZPak.mjs} +78 -58
  129. package/ui/.output/server/chunks/build/config-BUokZPak.mjs.map +1 -0
  130. package/ui/.output/server/chunks/build/config-styles.irltMnuD.mjs +8 -0
  131. package/ui/.output/server/chunks/build/config-styles.irltMnuD.mjs.map +1 -0
  132. package/ui/.output/server/chunks/build/{default-DmD3qBXZ.mjs → default-6TcwTt3p.mjs} +10 -9
  133. package/ui/.output/server/chunks/build/default-6TcwTt3p.mjs.map +1 -0
  134. package/ui/.output/server/chunks/build/default-styles.BqL9zxh4.mjs +8 -0
  135. package/ui/.output/server/chunks/build/default-styles.BqL9zxh4.mjs.map +1 -0
  136. package/ui/.output/server/chunks/build/entry-styles.q-b4rEBh.mjs +11 -0
  137. package/ui/.output/server/chunks/build/entry-styles.q-b4rEBh.mjs.map +1 -0
  138. package/ui/.output/server/chunks/build/hooks-k2ZmlVpA.mjs +4181 -0
  139. package/ui/.output/server/chunks/build/hooks-k2ZmlVpA.mjs.map +1 -0
  140. package/ui/.output/server/chunks/build/hooks-styles.Ddk4F_Gj.mjs +8 -0
  141. package/ui/.output/server/chunks/build/hooks-styles.Ddk4F_Gj.mjs.map +1 -0
  142. package/ui/.output/server/chunks/build/{index-Dy4Tu7MB.mjs → index-DwMIJp2e.mjs} +7 -3
  143. package/ui/.output/server/chunks/build/index-DwMIJp2e.mjs.map +1 -0
  144. package/ui/.output/server/chunks/build/{index-BvfXQQ2n.mjs → index-JLPhao-C.mjs} +5 -5
  145. package/ui/.output/server/chunks/build/{index-BvfXQQ2n.mjs.map → index-JLPhao-C.mjs.map} +1 -1
  146. package/ui/.output/server/chunks/build/{interval-DHZqEf-n.mjs → interval-DPa3fpS0.mjs} +3 -3
  147. package/ui/.output/server/chunks/build/{interval-DHZqEf-n.mjs.map → interval-DPa3fpS0.mjs.map} +1 -1
  148. package/ui/.output/server/chunks/build/{login-B5YkLJCV.mjs → login-D9DpNq3o.mjs} +6 -5
  149. package/ui/.output/server/chunks/build/login-D9DpNq3o.mjs.map +1 -0
  150. package/ui/.output/server/chunks/build/{logs-BvD1Y3HI.mjs → logs-BVuWOSb6.mjs} +49 -31
  151. package/ui/.output/server/chunks/build/logs-BVuWOSb6.mjs.map +1 -0
  152. package/ui/.output/server/chunks/build/logs-styles.C2Mi0JvX.mjs +8 -0
  153. package/ui/.output/server/chunks/build/logs-styles.C2Mi0JvX.mjs.map +1 -0
  154. package/ui/.output/server/chunks/build/{run-BStPkbGg.mjs → run-BVQZSGcX.mjs} +5 -5
  155. package/ui/.output/server/chunks/build/{run-BStPkbGg.mjs.map → run-BVQZSGcX.mjs.map} +1 -1
  156. package/ui/.output/server/chunks/build/{schedule-B2UKsnRW.mjs → schedule-rRz2CwWh.mjs} +10 -9
  157. package/ui/.output/server/chunks/build/schedule-rRz2CwWh.mjs.map +1 -0
  158. package/ui/.output/server/chunks/build/server.mjs +14 -9
  159. package/ui/.output/server/chunks/build/server.mjs.map +1 -1
  160. package/ui/.output/server/chunks/build/styles.mjs +8 -7
  161. package/ui/.output/server/chunks/build/styles.mjs.map +1 -1
  162. package/ui/.output/server/chunks/build/{tasks-DBH3Z6lg.mjs → tasks-DJjZQWcq.mjs} +10 -9
  163. package/ui/.output/server/chunks/build/tasks-DJjZQWcq.mjs.map +1 -0
  164. package/ui/.output/server/chunks/build/{useApi-Bqajqsuz.mjs → useApi-Brbyp7hV.mjs} +3 -3
  165. package/ui/.output/server/chunks/build/useApi-Brbyp7hV.mjs.map +1 -0
  166. package/ui/.output/server/chunks/build/useFormGroup-DqE91r20.mjs +61 -0
  167. package/ui/.output/server/chunks/build/useFormGroup-DqE91r20.mjs.map +1 -0
  168. package/ui/.output/server/chunks/nitro/nitro.mjs +202 -164
  169. package/ui/.output/server/chunks/routes/api/config/test.post.mjs +1 -1
  170. package/ui/.output/server/chunks/routes/api/config/test.post.mjs.map +1 -1
  171. package/ui/.output/server/chunks/routes/api/hooks-execute.post.mjs +83 -0
  172. package/ui/.output/server/chunks/routes/api/hooks-execute.post.mjs.map +1 -0
  173. package/ui/.output/server/chunks/routes/api/hooks-regenerate.post.mjs +30 -0
  174. package/ui/.output/server/chunks/routes/api/hooks-regenerate.post.mjs.map +1 -0
  175. package/ui/.output/server/chunks/routes/api/hooks-update.post.mjs +31 -0
  176. package/ui/.output/server/chunks/routes/api/hooks-update.post.mjs.map +1 -0
  177. package/ui/.output/server/chunks/routes/api/hooks.get.mjs +28 -0
  178. package/ui/.output/server/chunks/routes/api/hooks.get.mjs.map +1 -0
  179. package/ui/.output/server/chunks/routes/api/hooks.put.mjs +32 -0
  180. package/ui/.output/server/chunks/routes/api/hooks.put.mjs.map +1 -0
  181. package/ui/.output/server/chunks/routes/api/logs.get.mjs +7 -2
  182. package/ui/.output/server/chunks/routes/api/logs.get.mjs.map +1 -1
  183. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/_virtual/_rollupPluginBabelHelpers.js +123 -0
  184. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/config/index.js +11 -0
  185. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/index.js +9 -0
  186. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/loader/index.js +175 -0
  187. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/compose.js +16 -0
  188. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/curry.js +20 -0
  189. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/deepMerge.js +18 -0
  190. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/isObject.js +9 -0
  191. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/makeCancelable.js +25 -0
  192. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/validators/index.js +49 -0
  193. package/ui/.output/server/node_modules/@monaco-editor/loader/package.json +51 -0
  194. package/ui/.output/server/node_modules/@tanstack/virtual-core/dist/esm/index.js +1197 -0
  195. package/ui/.output/server/node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js +34 -0
  196. package/ui/.output/server/node_modules/@tanstack/virtual-core/dist/esm/utils.js +74 -0
  197. package/ui/.output/server/node_modules/@tanstack/virtual-core/package.json +56 -0
  198. package/ui/.output/server/node_modules/@tanstack/vue-virtual/dist/esm/index.js +66 -0
  199. package/ui/.output/server/node_modules/@tanstack/vue-virtual/package.json +68 -0
  200. package/ui/.output/server/node_modules/state-local/lib/cjs/state-local.js +195 -0
  201. package/ui/.output/server/node_modules/state-local/package.json +59 -0
  202. package/ui/.output/server/package.json +4 -0
  203. package/ui/package.json +1 -0
  204. package/ui/.output/public/_nuxt/B93YYUZf.js +0 -1
  205. package/ui/.output/public/_nuxt/BAs1isOw.js +0 -1
  206. package/ui/.output/public/_nuxt/BrZL2iQr.js +0 -1
  207. package/ui/.output/public/_nuxt/Bv6Ws9vz.js +0 -1
  208. package/ui/.output/public/_nuxt/C2WdrjFS.js +0 -1
  209. package/ui/.output/public/_nuxt/CVTgFccA.js +0 -2
  210. package/ui/.output/public/_nuxt/Ceb2855t.js +0 -1
  211. package/ui/.output/public/_nuxt/Cg55PjEy.js +0 -4
  212. package/ui/.output/public/_nuxt/D0ZgktSu.js +0 -1
  213. package/ui/.output/public/_nuxt/DZIUG6ZX.js +0 -1
  214. package/ui/.output/public/_nuxt/DihqGT4A.js +0 -1
  215. package/ui/.output/public/_nuxt/MzK2TZ-I.js +0 -16
  216. package/ui/.output/public/_nuxt/TJXLPQOj.js +0 -1
  217. package/ui/.output/public/_nuxt/VuiIFQtE.js +0 -1
  218. package/ui/.output/public/_nuxt/config.C19X1GwO.css +0 -1
  219. package/ui/.output/public/_nuxt/default.Dw-0Xw5D.css +0 -1
  220. package/ui/.output/public/_nuxt/logs.PK6CTQHM.css +0 -1
  221. package/ui/.output/server/chunks/build/Button-CZHl6fpI.mjs.map +0 -1
  222. package/ui/.output/server/chunks/build/Input-kmqS1oY_.mjs.map +0 -1
  223. package/ui/.output/server/chunks/build/Modal-DmZs0Ekg.mjs.map +0 -1
  224. package/ui/.output/server/chunks/build/config-Bkb2wy7R.mjs.map +0 -1
  225. package/ui/.output/server/chunks/build/config-styles.B4mTchgT.mjs +0 -8
  226. package/ui/.output/server/chunks/build/config-styles.B4mTchgT.mjs.map +0 -1
  227. package/ui/.output/server/chunks/build/default-DmD3qBXZ.mjs.map +0 -1
  228. package/ui/.output/server/chunks/build/default-styles.DmprFUrQ.mjs +0 -8
  229. package/ui/.output/server/chunks/build/default-styles.DmprFUrQ.mjs.map +0 -1
  230. package/ui/.output/server/chunks/build/entry-styles.Cg1Sndbr.mjs +0 -11
  231. package/ui/.output/server/chunks/build/entry-styles.Cg1Sndbr.mjs.map +0 -1
  232. package/ui/.output/server/chunks/build/index-Dy4Tu7MB.mjs.map +0 -1
  233. package/ui/.output/server/chunks/build/login-B5YkLJCV.mjs.map +0 -1
  234. package/ui/.output/server/chunks/build/logs-BvD1Y3HI.mjs.map +0 -1
  235. package/ui/.output/server/chunks/build/logs-styles.CU5b1wKf.mjs +0 -8
  236. package/ui/.output/server/chunks/build/logs-styles.CU5b1wKf.mjs.map +0 -1
  237. package/ui/.output/server/chunks/build/schedule-B2UKsnRW.mjs.map +0 -1
  238. package/ui/.output/server/chunks/build/tasks-DBH3Z6lg.mjs.map +0 -1
  239. package/ui/.output/server/chunks/build/useApi-Bqajqsuz.mjs.map +0 -1
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.isSecretKey = isSecretKey;
37
+ exports.isSecretValue = isSecretValue;
38
+ exports.secretsFileRelPath = secretsFileRelPath;
39
+ exports.secretsFilePath = secretsFilePath;
40
+ exports.collectSecrets = collectSecrets;
41
+ exports.findSecretsInText = findSecretsInText;
42
+ exports.redactText = redactText;
43
+ exports.writeSecretsFile = writeSecretsFile;
44
+ exports.sanitizeTaskForSafeMode = sanitizeTaskForSafeMode;
45
+ const fs = __importStar(require("node:fs"));
46
+ const path = __importStar(require("node:path"));
47
+ const dotenv = __importStar(require("dotenv"));
48
+ // Segment patterns for underscore-separated env var names (e.g. CLICKUP_API_KEY).
49
+ const SECRET_SEGMENT_PATTERNS = [
50
+ /^key$/i,
51
+ /^token$/i,
52
+ /^secret$/i,
53
+ /^password$/i,
54
+ /^passwd$/i,
55
+ /^pwd$/i,
56
+ /^auth$/i,
57
+ /^credential$/i,
58
+ /^private$/i,
59
+ /^api[_-]?key$/i,
60
+ ];
61
+ const MIN_SECRET_LENGTH = 8;
62
+ function isSecretKey(key) {
63
+ const segments = key.split('_');
64
+ return segments.some((seg) => SECRET_SEGMENT_PATTERNS.some((p) => p.test(seg)));
65
+ }
66
+ function isSecretValue(key, value) {
67
+ if (value.length < MIN_SECRET_LENGTH)
68
+ return false;
69
+ // Skip obviously non-secret values
70
+ if (/^(true|false|yes|no|null|undefined|[0-9]+)$/i.test(value))
71
+ return false;
72
+ // Skip bare base URLs (e.g. JIRA_BASE_URL=https://example.atlassian.net)
73
+ if (/^https?:\/\/[a-z0-9._-]+(:\d+)?\/?$/i.test(value))
74
+ return false;
75
+ return isSecretKey(key);
76
+ }
77
+ function addSecretsFromFile(secrets, filePath, overwrite = false) {
78
+ if (!fs.existsSync(filePath))
79
+ return;
80
+ const parsed = dotenv.parse(fs.readFileSync(filePath, 'utf8'));
81
+ for (const [key, value] of Object.entries(parsed)) {
82
+ if (!isSecretValue(key, value))
83
+ continue;
84
+ if (!overwrite && secrets.has(key))
85
+ continue;
86
+ secrets.set(key, value);
87
+ }
88
+ }
89
+ /** Relative path (from project cwd) to the git-ignored secrets file for a task. */
90
+ function secretsFileRelPath(taskId) {
91
+ return path.join('.aidev', 'assets', 'secrets', `task-${taskId}.secrets`);
92
+ }
93
+ /** Absolute path to the git-ignored secrets file for a task. */
94
+ function secretsFilePath(taskId, cwd = process.cwd()) {
95
+ return path.join(cwd, secretsFileRelPath(taskId));
96
+ }
97
+ /**
98
+ * Collect secret key→value pairs from `.env.aidev` (and its extend), `.env`, plus
99
+ * process.env (covers shell-provided values after loadConfig).
100
+ */
101
+ function collectSecrets(cwd = process.cwd()) {
102
+ const secrets = new Map();
103
+ const envAidevPath = path.join(cwd, '.env.aidev');
104
+ addSecretsFromFile(secrets, path.join(cwd, '.env'));
105
+ addSecretsFromFile(secrets, envAidevPath);
106
+ if (fs.existsSync(envAidevPath)) {
107
+ const parsed = dotenv.parse(fs.readFileSync(envAidevPath, 'utf8'));
108
+ const rawExtend = parsed['AIDEV_ENV_EXTEND'];
109
+ if (rawExtend) {
110
+ const extendPath = path.isAbsolute(rawExtend)
111
+ ? rawExtend
112
+ : path.resolve(path.dirname(envAidevPath), rawExtend);
113
+ addSecretsFromFile(secrets, extendPath);
114
+ }
115
+ }
116
+ for (const [key, value] of Object.entries(process.env)) {
117
+ if (value && isSecretValue(key, value) && !secrets.has(key)) {
118
+ secrets.set(key, value);
119
+ }
120
+ }
121
+ return secrets;
122
+ }
123
+ /** Return the subset of secrets whose values actually appear in `text`. */
124
+ function findSecretsInText(text, secrets) {
125
+ const found = new Map();
126
+ for (const [key, value] of secrets) {
127
+ if (text.includes(value))
128
+ found.set(key, value);
129
+ }
130
+ return found;
131
+ }
132
+ /** Replace secret values in text with placeholder references to the secrets file. */
133
+ function redactText(text, foundSecrets, taskId) {
134
+ if (foundSecrets.size === 0)
135
+ return text;
136
+ const relPath = secretsFileRelPath(taskId);
137
+ const entries = [...foundSecrets.entries()].sort((a, b) => b[1].length - a[1].length);
138
+ let result = text;
139
+ const seen = new Set();
140
+ for (const [key, value] of entries) {
141
+ if (seen.has(value))
142
+ continue;
143
+ seen.add(value);
144
+ const escaped = value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
145
+ const placeholder = `[encrypted content at file ${relPath} — ${key}]`;
146
+ result = result.replace(new RegExp(escaped, 'g'), placeholder);
147
+ }
148
+ return result;
149
+ }
150
+ /** Write secrets to `.aidev/assets/secrets/task-<taskId>.secrets` (under git-ignored assets). */
151
+ function writeSecretsFile(foundSecrets, taskId, cwd = process.cwd()) {
152
+ const filePath = secretsFilePath(taskId, cwd);
153
+ const secretsDir = path.dirname(filePath);
154
+ if (!fs.existsSync(secretsDir)) {
155
+ fs.mkdirSync(secretsDir, { recursive: true });
156
+ }
157
+ const relPath = secretsFileRelPath(taskId);
158
+ const lines = [
159
+ `# Secret values for task ${taskId} (git-ignored under .aidev/assets/)`,
160
+ `# These values appeared in the task prompt and were redacted for security.`,
161
+ `# Prefer terminal pipes over reading this file directly, e.g.:`,
162
+ `# Get-Content ${relPath} | ForEach-Object { if ($_ -match '^KEY=') { $env:KEY = $_.Split('=',2)[1] } }`,
163
+ `# export $(grep -v '^#' ${relPath} | xargs) && your-command`,
164
+ ``,
165
+ ];
166
+ for (const [key, value] of foundSecrets) {
167
+ lines.push(`${key}=${value}`);
168
+ }
169
+ fs.writeFileSync(filePath, lines.join('\n') + '\n', 'utf8');
170
+ return relPath;
171
+ }
172
+ function safeModeNotice(relPath) {
173
+ return (`\n\n⚠️ Secret values were redacted from this prompt. ` +
174
+ `They are stored in \`${relPath}\` (git-ignored). ` +
175
+ `Prefer piping values via the terminal instead of reading that file directly.`);
176
+ }
177
+ /**
178
+ * Apply safe mode to a task and its conversation context.
179
+ * Secrets found in the combined text are redacted and stored in a git-ignored file.
180
+ */
181
+ function sanitizeTaskForSafeMode(task, context, secrets, cwd = process.cwd()) {
182
+ const combined = (task.description || '') + '\n' + context;
183
+ const found = findSecretsInText(combined, secrets);
184
+ if (found.size === 0)
185
+ return { task, context };
186
+ const relPath = writeSecretsFile(found, task.id, cwd);
187
+ return {
188
+ task: { ...task, description: redactText(task.description || '', found, task.id) },
189
+ context: redactText(context, found, task.id) + safeModeNotice(relPath),
190
+ };
191
+ }
192
+ //# sourceMappingURL=safeMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeMode.js","sourceRoot":"","sources":["../src/safeMode.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -7,6 +7,7 @@ export interface Task {
7
7
  tags: string[];
8
8
  priority?: number;
9
9
  sourceListId?: string;
10
+ blockedBy?: string[];
10
11
  }
11
12
  /** Controls how much task payload providers fetch (UI board vs CLI run). */
12
13
  export interface FetchTasksOptions {
@@ -70,7 +71,7 @@ export interface Comment {
70
71
  authorId: string;
71
72
  date: number;
72
73
  }
73
- export type AgentName = 'antigravity' | 'anthropic-sdk' | 'claude' | 'codex' | 'cursor' | 'windsurf';
74
+ export type AgentName = 'antigravity' | 'anthropic-sdk' | 'claude' | 'codex' | 'cursor' | 'devin';
74
75
  export interface Config {
75
76
  provider: string;
76
77
  clickupApiKey: string;
@@ -131,5 +132,7 @@ export interface Config {
131
132
  doneStatus: string;
132
133
  autoCompress: boolean;
133
134
  compressThreshold: number;
135
+ logTtlDays: number;
136
+ safeMode: boolean;
134
137
  }
135
138
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@qelos/aidev",
3
- "version": "1.1.0",
4
- "description": "AI-powered task executor — polls ClickUp (and more) to implement tasks with Claude, Cursor, Windsurf, or Antigravity",
3
+ "version": "1.3.0",
4
+ "description": "AI-powered task executor — polls ClickUp (and more) to implement tasks with Claude, Cursor, Devin, or Antigravity",
5
5
  "type": "commonjs",
6
6
  "bin": {
7
7
  "aidev": "dist/cli.js"
@@ -1,5 +1,5 @@
1
1
  {
2
- "date": "2026-06-02T20:53:24.712Z",
2
+ "date": "2026-06-12T03:38:16.117Z",
3
3
  "preset": "node-server",
4
4
  "framework": {
5
5
  "name": "nuxt",
@@ -0,0 +1 @@
1
+ import J from"./yqBy-NAR.js";import{_ as A}from"./DlAUqK2U.js";import{R as g,h as p,G as S,s as I,m as N,ao as O,Z as y,B as m,a1 as H,g as Q,P as K,ad as W,ac as Z,f as s,a7 as w,A as F,p as X,K as Y,v as E,M as ee,Q as re,q as te,V as ae,c as j,E as $,i as C,j as ie,a4 as ne,a6 as oe,aa as se,a9 as z}from"./CnXdKLRd.js";import{_ as le}from"./Cz9dogwK.js";const P={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}},de=e=>Object.keys(P).reduce((r,t)=>(e[t]!==void 0&&(r[t]=e[t]),r),{});function B(e){return typeof e=="string"?`'${e}'`:new ue().serialize(e)}const ue=(function(){class e{#e=new Map;compare(r,t){const a=typeof r,n=typeof t;return a==="string"&&n==="string"?r.localeCompare(t):a==="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 a=r.constructor,n=a===Object||a===void 0?"":a.name;if(n!==""&&globalThis[n]===a)return this.serializeBuiltInType(n,r);if(typeof r.toJSON=="function"){const o=r.toJSON();return n+(o!==null&&typeof o=="object"?this.$object(o):`(${this.serialize(o)})`)}return this.serializeObjectEntries(n,Object.entries(r))}serializeBuiltInType(r,t){const a=this["$"+r];if(a)return a.call(this,t);if(typeof t?.entries=="function")return this.serializeObjectEntries(r,t.entries());throw new Error(`Cannot serialize ${r}`)}serializeObjectEntries(r,t){const a=Array.from(t).sort((o,d)=>this.compare(o[0],d[0]));let n=`${r}{`;for(let o=0;o<a.length;o++){const[d,l]=a[o];n+=`${this.serialize(d,!0)}:${this.serialize(l)}`,o<a.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 a=0;a<r.length;a++)t+=this.serialize(r[a]),a<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,a)=>this.compare(t,a)))}`}$Map(r){return this.serializeObjectEntries("Map",r.entries())}}for(const i of["Error","RegExp","URL"])e.prototype["$"+i]=function(r){return`${i}(${r})`};for(const i of["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"])e.prototype["$"+i]=function(r){return`${i}[${r.join(",")}]`};for(const i of["BigInt64Array","BigUint64Array"])e.prototype["$"+i]=function(r){return`${i}[${r.join("n,")}${r.length>0?"n":""}]`};return e})();function U(e,i){return e===i||B(e)===B(i)}const ce=N({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 ge(e,i,r,t,a,n){const o=J;return g(),p(o,S(I(e.$props)),null,16)}const G=A(ce,[["render",ge]]);function fe(e,i){const r=q(e),t=q(i);return R(r,t)}function R(e,i){const r=[],t=new Set([...Object.keys(e.props||{}),...Object.keys(i.props||{})]);if(e.props&&i.props)for(const a of t){const n=e.props[a],o=i.props[a];n&&o?r.push(...R(e.props?.[a],i.props?.[a])):(n||o)&&r.push(new L((o||n).key,n?"removed":"added",o,n))}return t.size===0&&e.hash!==i.hash&&r.push(new L((i||e).key,"changed",i,e)),r}function q(e,i=""){if(e&&typeof e!="object")return new M(i,e,B(e));const r={},t=[];for(const a in e)r[a]=q(e[a],i?`${i}.${a}`:a),t.push(r[a].hash);return new M(i,e,`{${t.join(":")}}`,r)}class L{constructor(i,r,t,a){this.key=i,this.type=r,this.newValue=t,this.oldValue=a}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 M{constructor(i,r,t,a){this.key=i,this.value=r,this.hash=t,this.props=a}toString(){return this.props?`{${Object.keys(this.props).join(",")}}`:JSON.stringify(this.value)}toJSON(){const i=this.key||".";return this.props?`${i}({${Object.keys(this.props).join(",")}})`:`${i}(${this.value})`}}const pe=N({inheritAttrs:!1,props:{...P,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 i(t,a){const n=fe(t,a).reduce((l,u)=>(u.type==="added"&&l.add(u.key),l),new Set),o=Object.fromEntries(Object.entries(t).filter(([l])=>!n.has(l))),d=Object.fromEntries(Object.entries(a).filter(([l])=>!n.has(l)));return U(o,d)}function r(t,a,{isActive:n,isExactActive:o}){if(e.exactQuery==="partial"){if(!i(t.query,a.query))return e.inactiveClass}else if(e.exactQuery===!0&&!U(t.query,a.query))return e.inactiveClass;return e.exactHash&&t.hash!==a.hash?e.inactiveClass:e.exact&&o||!e.exact&&n?e.activeClass:e.inactiveClass}return{resolveLinkClass:r}}}),be=["href","aria-disabled","role","rel","target","tabindex","onClick"];function ye(e,i,r,t,a,n){const o=le;return e.to?(g(),p(o,m({key:1},e.$props,{custom:""}),{default:O(({route:d,href:l,target:u,rel:b,navigate:f,isActive:h,isExactActive:v,isExternal:x})=>[Q("a",m(e.$attrs,{href:e.disabled?void 0:l,"aria-disabled":e.disabled?"true":void 0,role:e.disabled?"link":void 0,rel:b,target:u,class:e.active!==void 0?e.active?e.activeClass:e.inactiveClass:e.resolveLinkClass(d,e._.provides[K]||e.$route,{isActive:h,isExactActive:v}),tabindex:e.disabled?-1:void 0,onClick:k=>!x&&!e.disabled&&f(k)}),[y(e.$slots,"default",S(I({isActive:e.active!==void 0?e.active:e.exact?v:h})))],16,be)]),_:3},16)):(g(),p(H(e.as),m({key:0,type:e.type,disabled:e.disabled},e.$attrs,{class:e.active?e.activeClass:e.inactiveClass}),{default:O(()=>[y(e.$slots,"default",S(I({isActive:e.active})))]),_:3},16,["type","disabled","class"]))}const T=A(pe,[["render",ye]]),he=(e,i,r,t,a=!1)=>{const n=W(),o=Z(),d=s(()=>{const u=w(i),b=w(r),f=w(t);return F(u?.strategy||o.ui?.strategy,f?{wrapper:f}:{},u||{},a?X(o.ui,e,{}):{},b||{})}),l=s(()=>Y(n,["class"]));return{ui:d,attrs:l}};function ve({ui:e,props:i}){const r=te();if(ae("ButtonGroupContextConsumer",!0),E("ButtonGroupContextConsumer",!1))return{size:s(()=>i.size),rounded:s(()=>e.value.rounded)};let a=r.parent,n;for(;a&&!n;){if(a.type.name==="ButtonGroup"){n=E(`group-${a.uid}`);break}a=a.parent}const o=s(()=>n?.value.children.indexOf(r));return ee(()=>{n?.value.register(r)}),re(()=>{n?.value.unregister(r)}),{size:s(()=>n?.value?n?.value.size??e.value.default.size:i.size),rounded:s(()=>!n||o.value===-1?e.value.rounded:n.value.children.length===1?n.value.ui.rounded:o.value===0?n.value.rounded.start:o.value===n.value.children.length-1?n.value.rounded.end:"rounded-none")}}const me={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"}},_={base:"invisible before:visible before:block before:rotate-45 before:z-[-1] before:w-2 before:h-2",ring:"before:ring-1 before:ring-gray-200 dark:before:ring-gray-800",rounded:"before:rounded-sm",background:"before:bg-gray-200 dark:before:bg-gray-800",shadow:"before:shadow",placement:"group-data-[popper-placement*='right']:-left-1 group-data-[popper-placement*='left']:-right-1 group-data-[popper-placement*='top']:-bottom-1 group-data-[popper-placement*='bottom']:-top-1"},D={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"}},V={container:"z-20 group",trigger:"flex items-center w-full",width:"w-full",height:"max-h-60",base:"relative focus:outline-none overflow-y-auto scroll-py-1",background:"bg-white dark:bg-gray-800",shadow:"shadow-lg",rounded:"rounded-md",padding:"p-1",ring:"ring-1 ring-gray-200 dark:ring-gray-700",empty:"text-sm text-gray-400 dark:text-gray-500 px-2 py-1.5",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"}},transition:{leaveActiveClass:"transition ease-in duration-100",leaveFromClass:"opacity-100",leaveToClass:"opacity-0"},popper:{placement:"bottom-end"},default:{selectedIcon:"i-heroicons-check-20-solid",trailingIcon:"i-heroicons-chevron-down-20-solid",empty:{label:"No options."},optionEmpty:{label:'No results for "{query}".'}},arrow:{..._,ring:"before:ring-1 before:ring-gray-200 dark:before:ring-gray-700",background:"before:bg-white dark:before:bg-gray-700"}},Se={...D,form:"form-textarea",default:{size:"sm",color:"white",variant:"outline"}},Ie={...D,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"}},Oe={...V,select:"inline-flex items-center text-left cursor-default",input:"block w-[calc(100%+0.5rem)] focus:ring-transparent text-sm px-3 py-1.5 text-gray-700 dark:text-gray-200 bg-white dark:bg-gray-800 border-0 border-b border-gray-200 dark:border-gray-700 sticky -top-1 -mt-1 mb-1 -mx-1 z-10 placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none",required:"absolute inset-0 w-px opacity-0 cursor-default",label:"block truncate",option:{...V.option,create:"block truncate"},transition:{leaveActiveClass:"transition ease-in duration-100",leaveFromClass:"opacity-100",leaveToClass:"opacity-0"},popper:{placement:"bottom-end"},default:{selectedIcon:"i-heroicons-check-20-solid",clearSearchOnClose:!1,showCreateOptionWhen:"empty",searchablePlaceholder:{label:"Search..."},empty:{label:"No options."},optionEmpty:{label:'No results for "{query}".'}},arrow:{..._,ring:"before:ring-1 before:ring-gray-200 dark:before:ring-gray-700",background:"before:bg-white dark:before:bg-gray-700"}},c=F(j.ui.strategy,j.ui.button,me),xe=N({components:{UIcon:G,ULink:T},inheritAttrs:!1,props:{...P,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:()=>c.default.size,validator(e){return Object.keys(c.size).includes(e)}},color:{type:String,default:()=>c.default.color,validator(e){return[...j.ui.colors,...Object.keys(c.color)].includes(e)}},variant:{type:String,default:()=>c.default.variant,validator(e){return[...Object.keys(c.variant),...Object.values(c.color).flatMap(i=>Object.keys(i))].includes(e)}},icon:{type:String,default:null},loadingIcon:{type:String,default:()=>c.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:i}){const{ui:r,attrs:t}=he("button",oe(e,"ui"),c),{size:a,rounded:n}=ve({ui:r,props:e}),o=s(()=>e.icon&&e.leading||e.icon&&!e.trailing||e.loading&&!e.trailing||e.leadingIcon),d=s(()=>e.icon&&e.trailing||e.loading&&e.trailing||e.trailingIcon),l=s(()=>e.square||!i.default&&!e.label),u=s(()=>{const k=r.value.color?.[e.color]?.[e.variant]||r.value.variant[e.variant];return se(z(r.value.base,r.value.font,n.value,r.value.size[a.value],r.value.gap[a.value],e.padded&&r.value[l.value?"square":"padding"][a.value],k?.replaceAll("{color}",e.color),e.block?r.value.block:r.value.inline),e.class)}),b=s(()=>e.loading?e.loadingIcon:e.leadingIcon||e.icon),f=s(()=>e.loading&&!o.value?e.loadingIcon:e.trailingIcon||e.icon),h=s(()=>z(r.value.icon.base,r.value.icon.size[a.value],e.loading&&r.value.icon.loading)),v=s(()=>z(r.value.icon.base,r.value.icon.size[a.value],e.loading&&!o.value&&r.value.icon.loading)),x=s(()=>de(e));return{ui:r,attrs:t,isLeading:o,isTrailing:d,isSquare:l,buttonClass:u,leadingIconName:b,trailingIconName:f,leadingIconClass:h,trailingIconClass:v,linkProps:x}}});function ke(e,i,r,t,a,n){const o=G,d=T;return g(),p(d,m({type:e.type,disabled:e.disabled||e.loading,class:e.buttonClass},{...e.linkProps,...e.attrs}),{default:O(()=>[y(e.$slots,"leading",{disabled:e.disabled,loading:e.loading},()=>[e.isLeading&&e.leadingIconName?(g(),p(o,{key:0,name:e.leadingIconName,class:$(e.leadingIconClass),"aria-hidden":"true"},null,8,["name","class"])):C("",!0)]),y(e.$slots,"default",{},()=>[e.label!==void 0&&e.label!==null?(g(),ie("span",{key:0,class:$([e.truncate?e.ui.truncate:""])},ne(e.label),3)):C("",!0)]),y(e.$slots,"trailing",{disabled:e.disabled,loading:e.loading},()=>[e.isTrailing&&e.trailingIconName?(g(),p(o,{key:0,name:e.trailingIconName,class:$(e.trailingIconClass),"aria-hidden":"true"},null,8,["name","class"])):C("",!0)])]),_:3},16,["type","disabled","class"])}const je=A(xe,[["render",ke]]);export{G as _,je as a,U as b,Oe as c,he as d,D as i,Ie as s,Se as t,ve as u};
@@ -0,0 +1 @@
1
+ import{_ as O,d as P,u as X,i as Z}from"./6wLLp9Nc.js";import{R as p,j as I,g as H,B as K,Z as b,E as g,i as h,m as Q,X as j,n as Y,M as _,c as f,f as i,A as x,z as ee,l as $,a6 as k,aa as ae,a9 as c}from"./CnXdKLRd.js";import{a as le}from"./mHp9eItY.js";import{_ as ne}from"./DlAUqK2U.js";const t=x(f.ui.strategy,f.ui.input,Z),ie=Q({components:{UIcon:O},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:()=>t.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(t.size).includes(e)}},color:{type:String,default:()=>t.default.color,validator(e){return[...f.ui.colors,...Object.keys(t.color)].includes(e)}},variant:{type:String,default:()=>t.default.variant,validator(e){return[...Object.keys(t.variant),...Object.values(t.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:y}){const{ui:a,attrs:C}=P("input",k(e,"ui"),t,k(e,"class")),{size:B,rounded:v}=X({ui:a,props:e}),{emitFormBlur:r,emitFormInput:M,size:V,color:u,inputId:A,name:w}=le(e,t),o=i(()=>B.value??V.value),s=j(Y({},e.modelModifiers,{trim:!1,lazy:!1,number:!1,nullify:!1})),z=j(null),F=()=>{e.autofocus&&z.value?.focus()},S=l=>{s.value.trim&&(l=l.trim()),(s.value.number||e.type==="number")&&(l=ee(l)),s.value.nullify&&(l||=null),n("update:modelValue",l),M()},q=l=>{s.value.lazy||S(l.target.value)},G=l=>{if(e.type==="file"){const d=l.target.files;n("change",d)}else{const d=l.target.value;n("change",d),s.value.lazy&&S(d),s.value.trim&&(l.target.value=d.trim())}},T=l=>{r(),n("blur",l)};_(()=>{setTimeout(()=>{F()},e.autofocusDelay)});const W=i(()=>{const l=a.value.color?.[u.value]?.[e.variant]||a.value.variant[e.variant];return ae(c(a.value.base,a.value.form,v.value,a.value.placeholder,e.type==="file"&&a.value.file.base,a.value.size[o.value],e.padded?a.value.padding[o.value]:"p-0",l?.replaceAll("{color}",u.value),(m.value||y.leading)&&a.value.leading.padding[o.value],(N.value||y.trailing)&&a.value.trailing.padding[o.value]),e.inputClass)}),m=i(()=>e.icon&&e.leading||e.icon&&!e.trailing||e.loading&&!e.trailing||e.leadingIcon),N=i(()=>e.icon&&e.trailing||e.loading&&e.trailing||e.trailingIcon),U=i(()=>e.loading?e.loadingIcon:e.leadingIcon||e.icon),D=i(()=>e.loading&&!m.value?e.loadingIcon:e.trailingIcon||e.icon),E=i(()=>c(a.value.icon.leading.wrapper,a.value.icon.leading.pointer,a.value.icon.leading.padding[o.value])),L=i(()=>c(a.value.icon.base,u.value&&f.ui.colors.includes(u.value)&&a.value.icon.color.replaceAll("{color}",u.value),a.value.icon.size[o.value],e.loading&&a.value.icon.loading)),R=i(()=>c(a.value.icon.trailing.wrapper,a.value.icon.trailing.pointer,a.value.icon.trailing.padding[o.value])),J=i(()=>c(a.value.icon.base,u.value&&f.ui.colors.includes(u.value)&&a.value.icon.color.replaceAll("{color}",u.value),a.value.icon.size[o.value],e.loading&&!m.value&&a.value.icon.loading));return{ui:a,attrs:C,name:w,inputId:A,input:z,isLeading:m,isTrailing:N,inputClass:W,leadingIconName:U,leadingIconClass:L,leadingWrapperIconClass:E,trailingIconName:D,trailingIconClass:J,trailingWrapperIconClass:R,onInput:q,onChange:G,onBlur:T}}}),te=["id","name","type","required","placeholder","disabled"];function ue(e,n,y,a,C,B){const v=O;return p(),I("div",{class:g(e.type==="hidden"?"hidden":e.ui.wrapper)},[H("input",K({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]=(...r)=>e.onInput&&e.onInput(...r)),onBlur:n[1]||(n[1]=(...r)=>e.onBlur&&e.onBlur(...r)),onChange:n[2]||(n[2]=(...r)=>e.onChange&&e.onChange(...r))}),null,16,te),b(e.$slots,"default"),e.isLeading&&e.leadingIconName||e.$slots.leading?(p(),I("span",{key:0,class:g(e.leadingWrapperIconClass)},[b(e.$slots,"leading",{disabled:e.disabled,loading:e.loading},()=>[$(v,{name:e.leadingIconName,class:g(e.leadingIconClass)},null,8,["name","class"])])],2)):h("",!0),e.isTrailing&&e.trailingIconName||e.$slots.trailing?(p(),I("span",{key:1,class:g(e.trailingWrapperIconClass)},[b(e.$slots,"trailing",{disabled:e.disabled,loading:e.loading},()=>[$(v,{name:e.trailingIconName,class:g(e.trailingIconClass)},null,8,["name","class"])])],2)):h("",!0)],2)}const ge=ne(ie,[["render",ue]]);export{ge as _};
@@ -0,0 +1,4 @@
1
+ import{af as Je,v as A,V as P,an as C,f as m,X as g,e as St,t as T,F as et,m as D,M as O,Q as j,am as K,a3 as Lt,T as $t,q as Ft,W as Ot,D as At,E as ee,h as Ve,ao as Q,l as Te,B as Se,g as Le,i as Pt,Z as Ct,a0 as de,A as Dt,c as qe,R as _e,a6 as Ge}from"./CnXdKLRd.js";import{d as Nt}from"./6wLLp9Nc.js";import{_ as kt}from"./DlAUqK2U.js";const Rt={wrapper:"relative z-50",inner:"fixed inset-0 overflow-y-auto",container:"flex min-h-full items-end sm:items-center justify-center text-center",padding:"p-4 sm:p-0",margin:"sm:my-8",base:"relative text-left rtl:text-right flex flex-col",overlay:{base:"fixed inset-0 transition-opacity",background:"bg-gray-200/75 dark:bg-gray-800/75",transition:{enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0"}},background:"bg-white dark:bg-gray-900",ring:"",rounded:"rounded-lg",shadow:"shadow-xl",width:"w-full sm:max-w-lg",height:"",fullscreen:"w-screen h-screen",transition:{enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"}};function He(e){typeof queueMicrotask=="function"?queueMicrotask(e):Promise.resolve().then(e).catch(t=>setTimeout(()=>{throw t}))}function ne(){let e=[],t={addEventListener(n,r,l,a){return n.addEventListener(r,l,a),t.add(()=>n.removeEventListener(r,l,a))},requestAnimationFrame(...n){let r=requestAnimationFrame(...n);t.add(()=>cancelAnimationFrame(r))},nextFrame(...n){t.requestAnimationFrame(()=>{t.requestAnimationFrame(...n)})},setTimeout(...n){let r=setTimeout(...n);t.add(()=>clearTimeout(r))},microTask(...n){let r={current:!0};return He(()=>{r.current&&n[0]()}),t.add(()=>{r.current=!1})},style(n,r,l){let a=n.style.getPropertyValue(r);return Object.assign(n.style,{[r]:l}),this.add(()=>{Object.assign(n.style,{[r]:a})})},group(n){let r=ne();return n(r),this.add(()=>r.dispose())},add(n){return e.push(n),()=>{let r=e.indexOf(n);if(r>=0)for(let l of e.splice(r,1))l()}},dispose(){for(let n of e.splice(0))n()}};return t}var Ye;let tt=Symbol("headlessui.useid"),Ht=0;const Me=(Ye=Je)!=null?Ye:function(){return A(tt,()=>`${++Ht}`)()};function Mt(e){P(tt,e)}function E(e){var t;if(e==null||e.value==null)return null;let n=(t=e.value.$el)!=null?t:e.value;return n instanceof Node?n:null}function R(e,t,...n){if(e in t){let l=t[e];return typeof l=="function"?l(...n):l}let r=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map(l=>`"${l}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,R),r}var jt=Object.defineProperty,Bt=(e,t,n)=>t in e?jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ke=(e,t,n)=>(Bt(e,typeof t!="symbol"?t+"":t,n),n);let xt=class{constructor(){Ke(this,"current",this.detect()),Ke(this,"currentId",0)}set(t){this.current!==t&&(this.currentId=0,this.current=t)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}},re=new xt;function z(e){if(re.isServer)return null;if(e instanceof Node)return e.ownerDocument;if(e!=null&&e.hasOwnProperty("value")){let t=E(e);if(t)return t.ownerDocument}return document}let Ae=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var x=(e=>(e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll",e))(x||{}),nt=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(nt||{}),It=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(It||{});function Ut(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(Ae)).sort((t,n)=>Math.sign((t.tabIndex||Number.MAX_SAFE_INTEGER)-(n.tabIndex||Number.MAX_SAFE_INTEGER)))}var rt=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(rt||{});function Wt(e,t=0){var n;return e===((n=z(e))==null?void 0:n.body)?!1:R(t,{0(){return e.matches(Ae)},1(){let r=e;for(;r!==null;){if(r.matches(Ae))return!0;r=r.parentElement}return!1}})}var Vt=(e=>(e[e.Keyboard=0]="Keyboard",e[e.Mouse=1]="Mouse",e))(Vt||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function _(e){e?.focus({preventScroll:!0})}let qt=["textarea","input"].join(",");function _t(e){var t,n;return(n=(t=e?.matches)==null?void 0:t.call(e,qt))!=null?n:!1}function Gt(e,t=n=>n){return e.slice().sort((n,r)=>{let l=t(n),a=t(r);if(l===null||a===null)return 0;let u=l.compareDocumentPosition(a);return u&Node.DOCUMENT_POSITION_FOLLOWING?-1:u&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function ve(e,t,{sorted:n=!0,relativeTo:r=null,skipElements:l=[]}={}){var a;let u=(a=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e?.ownerDocument)!=null?a:document,o=Array.isArray(e)?n?Gt(e):e:Ut(e);l.length>0&&o.length>1&&(o=o.filter(f=>!l.includes(f))),r=r??u.activeElement;let i=(()=>{if(t&5)return 1;if(t&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),s=(()=>{if(t&1)return 0;if(t&2)return Math.max(0,o.indexOf(r))-1;if(t&4)return Math.max(0,o.indexOf(r))+1;if(t&8)return o.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),d=t&32?{preventScroll:!0}:{},h=0,c=o.length,p;do{if(h>=c||h+c<=0)return 0;let f=s+h;if(t&16)f=(f+c)%c;else{if(f<0)return 3;if(f>=c)return 1}p=o[f],p?.focus(d),h+=i}while(p!==u.activeElement);return t&6&&_t(p)&&p.select(),2}function lt(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function Yt(){return/Android/gi.test(window.navigator.userAgent)}function Kt(){return lt()||Yt()}function ce(e,t,n){re.isServer||C(r=>{document.addEventListener(e,t,n),r(()=>document.removeEventListener(e,t,n))})}function at(e,t,n){re.isServer||C(r=>{window.addEventListener(e,t,n),r(()=>window.removeEventListener(e,t,n))})}function zt(e,t,n=m(()=>!0)){function r(a,u){if(!n.value||a.defaultPrevented)return;let o=u(a);if(o===null||!o.getRootNode().contains(o))return;let i=(function s(d){return typeof d=="function"?s(d()):Array.isArray(d)||d instanceof Set?d:[d]})(e);for(let s of i){if(s===null)continue;let d=s instanceof HTMLElement?s:E(s);if(d!=null&&d.contains(o)||a.composed&&a.composedPath().includes(d))return}return!Wt(o,rt.Loose)&&o.tabIndex!==-1&&a.preventDefault(),t(a,o)}let l=g(null);ce("pointerdown",a=>{var u,o;n.value&&(l.value=((o=(u=a.composedPath)==null?void 0:u.call(a))==null?void 0:o[0])||a.target)},!0),ce("mousedown",a=>{var u,o;n.value&&(l.value=((o=(u=a.composedPath)==null?void 0:u.call(a))==null?void 0:o[0])||a.target)},!0),ce("click",a=>{Kt()||l.value&&(r(a,()=>l.value),l.value=null)},!0),ce("touchend",a=>r(a,()=>a.target instanceof HTMLElement?a.target:null),!0),at("blur",a=>r(a,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}var me=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(me||{}),I=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(I||{});function B({visible:e=!0,features:t=0,ourProps:n,theirProps:r,...l}){var a;let u=ut(r,n),o=Object.assign(l,{props:u});if(e||t&2&&u.static)return $e(o);if(t&1){let i=(a=u.unmount)==null||a?0:1;return R(i,{0(){return null},1(){return $e({...l,props:{...u,hidden:!0,style:{display:"none"}}})}})}return $e(o)}function $e({props:e,attrs:t,slots:n,slot:r,name:l}){var a,u;let{as:o,...i}=it(e,["unmount","static"]),s=(a=n.default)==null?void 0:a.call(n,r),d={};if(r){let h=!1,c=[];for(let[p,f]of Object.entries(r))typeof f=="boolean"&&(h=!0),f===!0&&c.push(p);h&&(d["data-headlessui-state"]=c.join(" "))}if(o==="template"){if(s=ot(s??[]),Object.keys(i).length>0||Object.keys(t).length>0){let[h,...c]=s??[];if(!Xt(h)||c.length>0)throw new Error(['Passing props on "template"!',"",`The current component <${l} /> is rendering a "template".`,"However we need to passthrough the following props:",Object.keys(i).concat(Object.keys(t)).map(v=>v.trim()).filter((v,w,N)=>N.indexOf(v)===w).sort((v,w)=>v.localeCompare(w)).map(v=>` - ${v}`).join(`
2
+ `),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".',"Render a single element as the child so that we can forward the props onto that element."].map(v=>` - ${v}`).join(`
3
+ `)].join(`
4
+ `));let p=ut((u=h.props)!=null?u:{},i,d),f=St(h,p,!0);for(let v in p)v.startsWith("on")&&(f.props||(f.props={}),f.props[v]=p[v]);return f}return Array.isArray(s)&&s.length===1?s[0]:s}return T(o,Object.assign({},i,d),{default:()=>s})}function ot(e){return e.flatMap(t=>t.type===et?ot(t.children):[t])}function ut(...e){if(e.length===0)return{};if(e.length===1)return e[0];let t={},n={};for(let r of e)for(let l in r)l.startsWith("on")&&typeof r[l]=="function"?(n[l]!=null||(n[l]=[]),n[l].push(r[l])):t[l]=r[l];if(t.disabled||t["aria-disabled"])return Object.assign(t,Object.fromEntries(Object.keys(n).map(r=>[r,void 0])));for(let r in n)Object.assign(t,{[r](l,...a){let u=n[r];for(let o of u){if(l instanceof Event&&l.defaultPrevented)return;o(l,...a)}}});return t}function Un(e){let t=Object.assign({},e);for(let n in t)t[n]===void 0&&delete t[n];return t}function it(e,t=[]){let n=Object.assign({},e);for(let r of t)r in n&&delete n[r];return n}function Xt(e){return e==null?!1:typeof e.type=="string"||typeof e.type=="object"||typeof e.type=="function"}var he=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(he||{});let Pe=D({name:"Hidden",props:{as:{type:[Object,String],default:"div"},features:{type:Number,default:1}},setup(e,{slots:t,attrs:n}){return()=>{var r;let{features:l,...a}=e,u={"aria-hidden":(l&2)===2?!0:(r=a["aria-hidden"])!=null?r:void 0,hidden:(l&4)===4?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(l&4)===4&&(l&2)!==2&&{display:"none"}}};return B({ourProps:u,theirProps:a,slot:{},attrs:n,slots:t,name:"Hidden"})}}}),st=Symbol("Context");var L=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(L||{});function Qt(){return je()!==null}function je(){return A(st,null)}function Zt(e){P(st,e)}var dt=(e=>(e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.Delete="Delete",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab",e))(dt||{});function Jt(e){function t(){document.readyState!=="loading"&&(e(),document.removeEventListener("DOMContentLoaded",t))}typeof window<"u"&&typeof document<"u"&&(document.addEventListener("DOMContentLoaded",t),t())}let V=[];Jt(()=>{function e(t){t.target instanceof HTMLElement&&t.target!==document.body&&V[0]!==t.target&&(V.unshift(t.target),V=V.filter(n=>n!=null&&n.isConnected),V.splice(10))}window.addEventListener("click",e,{capture:!0}),window.addEventListener("mousedown",e,{capture:!0}),window.addEventListener("focus",e,{capture:!0}),document.body.addEventListener("click",e,{capture:!0}),document.body.addEventListener("mousedown",e,{capture:!0}),document.body.addEventListener("focus",e,{capture:!0})});function ct(e,t,n,r){re.isServer||C(l=>{e=e??window,e.addEventListener(t,n,r),l(()=>e.removeEventListener(t,n,r))})}var te=(e=>(e[e.Forwards=0]="Forwards",e[e.Backwards=1]="Backwards",e))(te||{});function en(){let e=g(0);return at("keydown",t=>{t.key==="Tab"&&(e.value=t.shiftKey?1:0)}),e}function ft(e){if(!e)return new Set;if(typeof e=="function")return new Set(e());let t=new Set;for(let n of e.value){let r=E(n);r instanceof HTMLElement&&t.add(r)}return t}var pt=(e=>(e[e.None=1]="None",e[e.InitialFocus=2]="InitialFocus",e[e.TabLock=4]="TabLock",e[e.FocusLock=8]="FocusLock",e[e.RestoreFocus=16]="RestoreFocus",e[e.All=30]="All",e))(pt||{});let Z=Object.assign(D({name:"FocusTrap",props:{as:{type:[Object,String],default:"div"},initialFocus:{type:Object,default:null},features:{type:Number,default:30},containers:{type:[Object,Function],default:g(new Set)}},inheritAttrs:!1,setup(e,{attrs:t,slots:n,expose:r}){let l=g(null);r({el:l,$el:l});let a=m(()=>z(l)),u=g(!1);O(()=>u.value=!0),j(()=>u.value=!1),nn({ownerDocument:a},m(()=>u.value&&!!(e.features&16)));let o=rn({ownerDocument:a,container:l,initialFocus:m(()=>e.initialFocus)},m(()=>u.value&&!!(e.features&2)));ln({ownerDocument:a,container:l,containers:e.containers,previousActiveElement:o},m(()=>u.value&&!!(e.features&8)));let i=en();function s(p){let f=E(l);f&&(v=>v())(()=>{R(i.value,{[te.Forwards]:()=>{ve(f,x.First,{skipElements:[p.relatedTarget]})},[te.Backwards]:()=>{ve(f,x.Last,{skipElements:[p.relatedTarget]})}})})}let d=g(!1);function h(p){p.key==="Tab"&&(d.value=!0,requestAnimationFrame(()=>{d.value=!1}))}function c(p){if(!u.value)return;let f=ft(e.containers);E(l)instanceof HTMLElement&&f.add(E(l));let v=p.relatedTarget;v instanceof HTMLElement&&v.dataset.headlessuiFocusGuard!=="true"&&(vt(f,v)||(d.value?ve(E(l),R(i.value,{[te.Forwards]:()=>x.Next,[te.Backwards]:()=>x.Previous})|x.WrapAround,{relativeTo:p.target}):p.target instanceof HTMLElement&&_(p.target)))}return()=>{let p={},f={ref:l,onKeydown:h,onFocusout:c},{features:v,initialFocus:w,containers:N,...S}=e;return T(et,[!!(v&4)&&T(Pe,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:s,features:he.Focusable}),B({ourProps:f,theirProps:{...t,...S},slot:p,attrs:t,slots:n,name:"FocusTrap"}),!!(v&4)&&T(Pe,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:s,features:he.Focusable})])}}}),{features:pt});function tn(e){let t=g(V.slice());return K([e],([n],[r])=>{r===!0&&n===!1?He(()=>{t.value.splice(0)}):r===!1&&n===!0&&(t.value=V.slice())},{flush:"post"}),()=>{var n;return(n=t.value.find(r=>r!=null&&r.isConnected))!=null?n:null}}function nn({ownerDocument:e},t){let n=tn(t);O(()=>{C(()=>{var r,l;t.value||((r=e.value)==null?void 0:r.activeElement)===((l=e.value)==null?void 0:l.body)&&_(n())},{flush:"post"})}),j(()=>{t.value&&_(n())})}function rn({ownerDocument:e,container:t,initialFocus:n},r){let l=g(null),a=g(!1);return O(()=>a.value=!0),j(()=>a.value=!1),O(()=>{K([t,n,r],(u,o)=>{if(u.every((s,d)=>o?.[d]===s)||!r.value)return;let i=E(t);i&&He(()=>{var s,d;if(!a.value)return;let h=E(n),c=(s=e.value)==null?void 0:s.activeElement;if(h){if(h===c){l.value=c;return}}else if(i.contains(c)){l.value=c;return}h?_(h):ve(i,x.First|x.NoScroll)===nt.Error&&console.warn("There are no focusable elements inside the <FocusTrap />"),l.value=(d=e.value)==null?void 0:d.activeElement})},{immediate:!0,flush:"post"})}),l}function ln({ownerDocument:e,container:t,containers:n,previousActiveElement:r},l){var a;ct((a=e.value)==null?void 0:a.defaultView,"focus",u=>{if(!l.value)return;let o=ft(n);E(t)instanceof HTMLElement&&o.add(E(t));let i=r.value;if(!i)return;let s=u.target;s&&s instanceof HTMLElement?vt(o,s)?(r.value=s,_(s)):(u.preventDefault(),u.stopPropagation(),_(i)):_(r.value)},!0)}function vt(e,t){for(let n of e)if(n.contains(t))return!0;return!1}function an(e){let t=Lt(e.getSnapshot());return j(e.subscribe(()=>{t.value=e.getSnapshot()})),t}function on(e,t){let n=e(),r=new Set;return{getSnapshot(){return n},subscribe(l){return r.add(l),()=>r.delete(l)},dispatch(l,...a){let u=t[l].call(n,...a);u&&(n=u,r.forEach(o=>o()))}}}function un(){let e;return{before({doc:t}){var n;let r=t.documentElement;e=((n=t.defaultView)!=null?n:window).innerWidth-r.clientWidth},after({doc:t,d:n}){let r=t.documentElement,l=r.clientWidth-r.offsetWidth,a=e-l;n.style(r,"paddingRight",`${a}px`)}}}function sn(){return lt()?{before({doc:e,d:t,meta:n}){function r(l){return n.containers.flatMap(a=>a()).some(a=>a.contains(l))}t.microTask(()=>{var l;if(window.getComputedStyle(e.documentElement).scrollBehavior!=="auto"){let o=ne();o.style(e.documentElement,"scrollBehavior","auto"),t.add(()=>t.microTask(()=>o.dispose()))}let a=(l=window.scrollY)!=null?l:window.pageYOffset,u=null;t.addEventListener(e,"click",o=>{if(o.target instanceof HTMLElement)try{let i=o.target.closest("a");if(!i)return;let{hash:s}=new URL(i.href),d=e.querySelector(s);d&&!r(d)&&(u=d)}catch{}},!0),t.addEventListener(e,"touchstart",o=>{if(o.target instanceof HTMLElement)if(r(o.target)){let i=o.target;for(;i.parentElement&&r(i.parentElement);)i=i.parentElement;t.style(i,"overscrollBehavior","contain")}else t.style(o.target,"touchAction","none")}),t.addEventListener(e,"touchmove",o=>{if(o.target instanceof HTMLElement){if(o.target.tagName==="INPUT")return;if(r(o.target)){let i=o.target;for(;i.parentElement&&i.dataset.headlessuiPortal!==""&&!(i.scrollHeight>i.clientHeight||i.scrollWidth>i.clientWidth);)i=i.parentElement;i.dataset.headlessuiPortal===""&&o.preventDefault()}else o.preventDefault()}},{passive:!1}),t.add(()=>{var o;let i=(o=window.scrollY)!=null?o:window.pageYOffset;a!==i&&window.scrollTo(0,a),u&&u.isConnected&&(u.scrollIntoView({block:"nearest"}),u=null)})})}}:{}}function dn(){return{before({doc:e,d:t}){t.style(e.documentElement,"overflow","hidden")}}}function cn(e){let t={};for(let n of e)Object.assign(t,n(t));return t}let q=on(()=>new Map,{PUSH(e,t){var n;let r=(n=this.get(e))!=null?n:{doc:e,count:0,d:ne(),meta:new Set};return r.count++,r.meta.add(t),this.set(e,r),this},POP(e,t){let n=this.get(e);return n&&(n.count--,n.meta.delete(t)),this},SCROLL_PREVENT({doc:e,d:t,meta:n}){let r={doc:e,d:t,meta:cn(n)},l=[sn(),un(),dn()];l.forEach(({before:a})=>a?.(r)),l.forEach(({after:a})=>a?.(r))},SCROLL_ALLOW({d:e}){e.dispose()},TEARDOWN({doc:e}){this.delete(e)}});q.subscribe(()=>{let e=q.getSnapshot(),t=new Map;for(let[n]of e)t.set(n,n.documentElement.style.overflow);for(let n of e.values()){let r=t.get(n.doc)==="hidden",l=n.count!==0;(l&&!r||!l&&r)&&q.dispatch(n.count>0?"SCROLL_PREVENT":"SCROLL_ALLOW",n),n.count===0&&q.dispatch("TEARDOWN",n)}});function fn(e,t,n){let r=an(q),l=m(()=>{let a=e.value?r.value.get(e.value):void 0;return a?a.count>0:!1});return K([e,t],([a,u],[o],i)=>{if(!a||!u)return;q.dispatch("PUSH",a,n);let s=!1;i(()=>{s||(q.dispatch("POP",o??a,n),s=!0)})},{immediate:!0}),l}let Fe=new Map,J=new Map;function ze(e,t=g(!0)){C(n=>{var r;if(!t.value)return;let l=E(e);if(!l)return;n(function(){var u;if(!l)return;let o=(u=J.get(l))!=null?u:1;if(o===1?J.delete(l):J.set(l,o-1),o!==1)return;let i=Fe.get(l);i&&(i["aria-hidden"]===null?l.removeAttribute("aria-hidden"):l.setAttribute("aria-hidden",i["aria-hidden"]),l.inert=i.inert,Fe.delete(l))});let a=(r=J.get(l))!=null?r:0;J.set(l,a+1),a===0&&(Fe.set(l,{"aria-hidden":l.getAttribute("aria-hidden"),inert:l.inert}),l.setAttribute("aria-hidden","true"),l.inert=!0)})}function pn({defaultContainers:e=[],portals:t,mainTreeNodeRef:n}={}){let r=g(null),l=z(r);function a(){var u,o,i;let s=[];for(let d of e)d!==null&&(d instanceof HTMLElement?s.push(d):"value"in d&&d.value instanceof HTMLElement&&s.push(d.value));if(t!=null&&t.value)for(let d of t.value)s.push(d);for(let d of(u=l?.querySelectorAll("html > *, body > *"))!=null?u:[])d!==document.body&&d!==document.head&&d instanceof HTMLElement&&d.id!=="headlessui-portal-root"&&(d.contains(E(r))||d.contains((i=(o=E(r))==null?void 0:o.getRootNode())==null?void 0:i.host)||s.some(h=>d.contains(h))||s.push(d));return s}return{resolveContainers:a,contains(u){return a().some(o=>o.contains(u))},mainTreeNodeRef:r,MainTreeNode(){return n!=null?null:T(Pe,{features:he.Hidden,ref:r})}}}let mt=Symbol("ForcePortalRootContext");function vn(){return A(mt,!1)}let Xe=D({name:"ForcePortalRoot",props:{as:{type:[Object,String],default:"template"},force:{type:Boolean,default:!1}},setup(e,{slots:t,attrs:n}){return P(mt,e.force),()=>{let{force:r,...l}=e;return B({theirProps:l,ourProps:{},slot:{},slots:t,attrs:n,name:"ForcePortalRoot"})}}}),ht=Symbol("StackContext");var Ce=(e=>(e[e.Add=0]="Add",e[e.Remove=1]="Remove",e))(Ce||{});function mn(){return A(ht,()=>{})}function hn({type:e,enabled:t,element:n,onUpdate:r}){let l=mn();function a(...u){r?.(...u),l(...u)}O(()=>{K(t,(u,o)=>{u?a(0,e,n):o===!0&&a(1,e,n)},{immediate:!0,flush:"sync"})}),j(()=>{t.value&&a(1,e,n)}),P(ht,a)}let gn=Symbol("DescriptionContext");function yn({slot:e=g({}),name:t="Description",props:n={}}={}){let r=g([]);function l(a){return r.value.push(a),()=>{let u=r.value.indexOf(a);u!==-1&&r.value.splice(u,1)}}return P(gn,{register:l,slot:e,name:t,props:n}),m(()=>r.value.length>0?r.value.join(" "):void 0)}function wn(e){let t=z(e);if(!t){if(e===null)return null;throw new Error(`[Headless UI]: Cannot find ownerDocument for contextElement: ${e}`)}let n=t.getElementById("headlessui-portal-root");if(n)return n;let r=t.createElement("div");return r.setAttribute("id","headlessui-portal-root"),t.body.appendChild(r)}const De=new WeakMap;function bn(e){var t;return(t=De.get(e))!=null?t:0}function Qe(e,t){let n=t(bn(e));return n<=0?De.delete(e):De.set(e,n),n}let En=D({name:"Portal",props:{as:{type:[Object,String],default:"div"}},setup(e,{slots:t,attrs:n}){let r=g(null),l=m(()=>z(r)),a=vn(),u=A(gt,null),o=g(a===!0||u==null?wn(r.value):u.resolveTarget());o.value&&Qe(o.value,c=>c+1);let i=g(!1);O(()=>{i.value=!0}),C(()=>{a||u!=null&&(o.value=u.resolveTarget())});let s=A(Ne,null),d=!1,h=Ft();return K(r,()=>{if(d||!s)return;let c=E(r);c&&(j(s.register(c),h),d=!0)}),j(()=>{var c,p;let f=(c=l.value)==null?void 0:c.getElementById("headlessui-portal-root");!f||o.value!==f||Qe(o.value,v=>v-1)||o.value.children.length>0||(p=o.value.parentElement)==null||p.removeChild(o.value)}),()=>{if(!i.value||o.value===null)return null;let c={ref:r,"data-headlessui-portal":""};return T($t,{to:o.value},B({ourProps:c,theirProps:e,slot:{},attrs:n,slots:t,name:"Portal"}))}}}),Ne=Symbol("PortalParentContext");function Tn(){let e=A(Ne,null),t=g([]);function n(a){return t.value.push(a),e&&e.register(a),()=>r(a)}function r(a){let u=t.value.indexOf(a);u!==-1&&t.value.splice(u,1),e&&e.unregister(a)}let l={register:n,unregister:r,portals:t};return[t,D({name:"PortalWrapper",setup(a,{slots:u}){return P(Ne,l),()=>{var o;return(o=u.default)==null?void 0:o.call(u)}}})]}let gt=Symbol("PortalGroupContext"),Sn=D({name:"PortalGroup",props:{as:{type:[Object,String],default:"template"},target:{type:Object,default:null}},setup(e,{attrs:t,slots:n}){let r=Ot({resolveTarget(){return e.target}});return P(gt,r),()=>{let{target:l,...a}=e;return B({theirProps:a,ourProps:{},slot:{},attrs:t,slots:n,name:"PortalGroup"})}}});var Ln=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(Ln||{});let ke=Symbol("DialogContext");function yt(e){let t=A(ke,null);if(t===null){let n=new Error(`<${e} /> is missing a parent <Dialog /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,yt),n}return t}let fe="DC8F892D-2EBD-447C-A4C8-A03058436FF4",$n=D({name:"Dialog",inheritAttrs:!1,props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},open:{type:[Boolean,String],default:fe},initialFocus:{type:Object,default:null},id:{type:String,default:null},role:{type:String,default:"dialog"}},emits:{close:e=>!0},setup(e,{emit:t,attrs:n,slots:r,expose:l}){var a,u;let o=(a=e.id)!=null?a:`headlessui-dialog-${Me()}`,i=g(!1);O(()=>{i.value=!0});let s=!1,d=m(()=>e.role==="dialog"||e.role==="alertdialog"?e.role:(s||(s=!0,console.warn(`Invalid role [${d}] passed to <Dialog />. Only \`dialog\` and and \`alertdialog\` are supported. Using \`dialog\` instead.`)),"dialog")),h=g(0),c=je(),p=m(()=>e.open===fe&&c!==null?(c.value&L.Open)===L.Open:e.open),f=g(null),v=m(()=>z(f));if(l({el:f,$el:f}),!(e.open!==fe||c!==null))throw new Error("You forgot to provide an `open` prop to the `Dialog`.");if(typeof p.value!="boolean")throw new Error(`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${p.value===fe?void 0:e.open}`);let w=m(()=>i.value&&p.value?0:1),N=m(()=>w.value===0),S=m(()=>h.value>1),U=A(ke,null)!==null,[le,ae]=Tn(),{resolveContainers:G,mainTreeNodeRef:oe,MainTreeNode:ue}=pn({portals:le,defaultContainers:[m(()=>{var y;return(y=Y.panelRef.value)!=null?y:f.value})]}),ye=m(()=>S.value?"parent":"leaf"),ie=m(()=>c!==null?(c.value&L.Closing)===L.Closing:!1),we=m(()=>U||ie.value?!1:N.value),be=m(()=>{var y,b,$;return($=Array.from((b=(y=v.value)==null?void 0:y.querySelectorAll("body > *"))!=null?b:[]).find(F=>F.id==="headlessui-portal-root"?!1:F.contains(E(oe))&&F instanceof HTMLElement))!=null?$:null});ze(be,we);let k=m(()=>S.value?!0:N.value),X=m(()=>{var y,b,$;return($=Array.from((b=(y=v.value)==null?void 0:y.querySelectorAll("[data-headlessui-portal]"))!=null?b:[]).find(F=>F.contains(E(oe))&&F instanceof HTMLElement))!=null?$:null});ze(X,k),hn({type:"Dialog",enabled:m(()=>w.value===0),element:f,onUpdate:(y,b)=>{if(b==="Dialog")return R(y,{[Ce.Add]:()=>h.value+=1,[Ce.Remove]:()=>h.value-=1})}});let H=yn({name:"DialogDescription",slot:m(()=>({open:p.value}))}),M=g(null),Y={titleId:M,panelRef:g(null),dialogState:w,setTitleId(y){M.value!==y&&(M.value=y)},close(){t("close",!1)}};P(ke,Y);let Ie=m(()=>!(!N.value||S.value));zt(G,(y,b)=>{y.preventDefault(),Y.close(),At(()=>b?.focus())},Ie);let Ue=m(()=>!(S.value||w.value!==0));ct((u=v.value)==null?void 0:u.defaultView,"keydown",y=>{Ue.value&&(y.defaultPrevented||y.key===dt.Escape&&(y.preventDefault(),y.stopPropagation(),Y.close()))});let We=m(()=>!(ie.value||w.value!==0||U));return fn(v,We,y=>{var b;return{containers:[...(b=y.containers)!=null?b:[],G]}}),C(y=>{if(w.value!==0)return;let b=E(f);if(!b)return;let $=new ResizeObserver(F=>{for(let Ee of F){let se=Ee.target.getBoundingClientRect();se.x===0&&se.y===0&&se.width===0&&se.height===0&&Y.close()}});$.observe(b),y(()=>$.disconnect())}),()=>{let{open:y,initialFocus:b,...$}=e,F={...n,ref:f,id:o,role:d.value,"aria-modal":w.value===0?!0:void 0,"aria-labelledby":M.value,"aria-describedby":H.value},Ee={open:w.value===0};return T(Xe,{force:!0},()=>[T(En,()=>T(Sn,{target:f.value},()=>T(Xe,{force:!1},()=>T(Z,{initialFocus:b,containers:G,features:N.value?R(ye.value,{parent:Z.features.RestoreFocus,leaf:Z.features.All&~Z.features.FocusLock}):Z.features.None},()=>T(ae,{},()=>B({ourProps:F,theirProps:{...$,...n},slot:Ee,attrs:n,slots:r,visible:w.value===0,features:me.RenderStrategy|me.Static,name:"Dialog"})))))),T(ue)])}}}),Fn=D({name:"DialogPanel",props:{as:{type:[Object,String],default:"div"},id:{type:String,default:null}},setup(e,{attrs:t,slots:n,expose:r}){var l;let a=(l=e.id)!=null?l:`headlessui-dialog-panel-${Me()}`,u=yt("DialogPanel");r({el:u.panelRef,$el:u.panelRef});function o(i){i.stopPropagation()}return()=>{let{...i}=e,s={id:a,ref:u.panelRef,onClick:o};return B({ourProps:s,theirProps:i,slot:{open:u.dialogState.value===0},attrs:t,slots:n,name:"DialogPanel"})}}});function On(e){let t={called:!1};return(...n)=>{if(!t.called)return t.called=!0,e(...n)}}function Oe(e,...t){e&&t.length>0&&e.classList.add(...t)}function pe(e,...t){e&&t.length>0&&e.classList.remove(...t)}var Re=(e=>(e.Finished="finished",e.Cancelled="cancelled",e))(Re||{});function An(e,t){let n=ne();if(!e)return n.dispose;let{transitionDuration:r,transitionDelay:l}=getComputedStyle(e),[a,u]=[r,l].map(o=>{let[i=0]=o.split(",").filter(Boolean).map(s=>s.includes("ms")?parseFloat(s):parseFloat(s)*1e3).sort((s,d)=>d-s);return i});return a!==0?n.setTimeout(()=>t("finished"),a+u):t("finished"),n.add(()=>t("cancelled")),n.dispose}function Ze(e,t,n,r,l,a){let u=ne(),o=a!==void 0?On(a):()=>{};return pe(e,...l),Oe(e,...t,...n),u.nextFrame(()=>{pe(e,...n),Oe(e,...r),u.add(An(e,i=>(pe(e,...r,...t),Oe(e,...l),o(i))))}),u.add(()=>pe(e,...t,...n,...r,...l)),u.add(()=>o("cancelled")),u.dispose}function W(e=""){return e.split(/\s+/).filter(t=>t.length>1)}let Be=Symbol("TransitionContext");var Pn=(e=>(e.Visible="visible",e.Hidden="hidden",e))(Pn||{});function Cn(){return A(Be,null)!==null}function Dn(){let e=A(Be,null);if(e===null)throw new Error("A <TransitionChild /> is used but it is missing a parent <TransitionRoot />.");return e}function Nn(){let e=A(xe,null);if(e===null)throw new Error("A <TransitionChild /> is used but it is missing a parent <TransitionRoot />.");return e}let xe=Symbol("NestingContext");function ge(e){return"children"in e?ge(e.children):e.value.filter(({state:t})=>t==="visible").length>0}function wt(e){let t=g([]),n=g(!1);O(()=>n.value=!0),j(()=>n.value=!1);function r(a,u=I.Hidden){let o=t.value.findIndex(({id:i})=>i===a);o!==-1&&(R(u,{[I.Unmount](){t.value.splice(o,1)},[I.Hidden](){t.value[o].state="hidden"}}),!ge(t)&&n.value&&e?.())}function l(a){let u=t.value.find(({id:o})=>o===a);return u?u.state!=="visible"&&(u.state="visible"):t.value.push({id:a,state:"visible"}),()=>r(a,I.Unmount)}return{children:t,register:l,unregister:r}}let bt=me.RenderStrategy,Et=D({props:{as:{type:[Object,String],default:"div"},show:{type:[Boolean],default:null},unmount:{type:[Boolean],default:!0},appear:{type:[Boolean],default:!1},enter:{type:[String],default:""},enterFrom:{type:[String],default:""},enterTo:{type:[String],default:""},entered:{type:[String],default:""},leave:{type:[String],default:""},leaveFrom:{type:[String],default:""},leaveTo:{type:[String],default:""}},emits:{beforeEnter:()=>!0,afterEnter:()=>!0,beforeLeave:()=>!0,afterLeave:()=>!0},setup(e,{emit:t,attrs:n,slots:r,expose:l}){let a=g(0);function u(){a.value|=L.Opening,t("beforeEnter")}function o(){a.value&=~L.Opening,t("afterEnter")}function i(){a.value|=L.Closing,t("beforeLeave")}function s(){a.value&=~L.Closing,t("afterLeave")}if(!Cn()&&Qt())return()=>T(Tt,{...e,onBeforeEnter:u,onAfterEnter:o,onBeforeLeave:i,onAfterLeave:s},r);let d=g(null),h=m(()=>e.unmount?I.Unmount:I.Hidden);l({el:d,$el:d});let{show:c,appear:p}=Dn(),{register:f,unregister:v}=Nn(),w=g(c.value?"visible":"hidden"),N={value:!0},S=Me(),U={value:!1},le=wt(()=>{!U.value&&w.value!=="hidden"&&(w.value="hidden",v(S),s())});O(()=>{let k=f(S);j(k)}),C(()=>{if(h.value===I.Hidden&&S){if(c.value&&w.value!=="visible"){w.value="visible";return}R(w.value,{hidden:()=>v(S),visible:()=>f(S)})}});let ae=W(e.enter),G=W(e.enterFrom),oe=W(e.enterTo),ue=W(e.entered),ye=W(e.leave),ie=W(e.leaveFrom),we=W(e.leaveTo);O(()=>{C(()=>{if(w.value==="visible"){let k=E(d);if(k instanceof Comment&&k.data==="")throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")}})});function be(k){let X=N.value&&!p.value,H=E(d);!H||!(H instanceof HTMLElement)||X||(U.value=!0,c.value&&u(),c.value||i(),k(c.value?Ze(H,ae,G,oe,ue,M=>{U.value=!1,M===Re.Finished&&o()}):Ze(H,ye,ie,we,ue,M=>{U.value=!1,M===Re.Finished&&(ge(le)||(w.value="hidden",v(S),s()))})))}return O(()=>{K([c],(k,X,H)=>{be(H),N.value=!1},{immediate:!0})}),P(xe,le),Zt(m(()=>R(w.value,{visible:L.Open,hidden:L.Closed})|a.value)),()=>{let{appear:k,show:X,enter:H,enterFrom:M,enterTo:Y,entered:Ie,leave:Ue,leaveFrom:We,leaveTo:y,...b}=e,$={ref:d},F={...b,...p.value&&c.value&&re.isServer?{class:ee([n.class,b.class,...ae,...G])}:{}};return B({theirProps:F,ourProps:$,slot:{},slots:r,attrs:n,features:bt,visible:w.value==="visible",name:"TransitionChild"})}}}),kn=Et,Tt=D({inheritAttrs:!1,props:{as:{type:[Object,String],default:"div"},show:{type:[Boolean],default:null},unmount:{type:[Boolean],default:!0},appear:{type:[Boolean],default:!1},enter:{type:[String],default:""},enterFrom:{type:[String],default:""},enterTo:{type:[String],default:""},entered:{type:[String],default:""},leave:{type:[String],default:""},leaveFrom:{type:[String],default:""},leaveTo:{type:[String],default:""}},emits:{beforeEnter:()=>!0,afterEnter:()=>!0,beforeLeave:()=>!0,afterLeave:()=>!0},setup(e,{emit:t,attrs:n,slots:r}){let l=je(),a=m(()=>e.show===null&&l!==null?(l.value&L.Open)===L.Open:e.show);C(()=>{if(![!0,!1].includes(a.value))throw new Error('A <Transition /> is used but it is missing a `:show="true | false"` prop.')});let u=g(a.value?"visible":"hidden"),o=wt(()=>{u.value="hidden"}),i=g(!0),s={show:a,appear:m(()=>e.appear||!i.value)};return O(()=>{C(()=>{i.value=!1,a.value?u.value="visible":ge(o)||(u.value="hidden")})}),P(xe,o),P(Be,s),()=>{let d=it(e,["show","appear","unmount","onBeforeEnter","onBeforeLeave","onAfterEnter","onAfterLeave"]),h={unmount:e.unmount};return B({ourProps:{...h,as:"template"},theirProps:{},slot:{},slots:{...r,default:()=>[T(kn,{onBeforeEnter:()=>t("beforeEnter"),onAfterEnter:()=>t("afterEnter"),onBeforeLeave:()=>t("beforeLeave"),onAfterLeave:()=>t("afterLeave"),...n,...h,...d},r.default)]},attrs:{},features:bt,visible:u.value==="visible",name:"Transition"})}}});const Rn=Dt(qe.ui.strategy,qe.ui.modal,Rt),Hn=D({components:{HDialog:$n,HDialogPanel:Fn,TransitionRoot:Tt,TransitionChild:Et},inheritAttrs:!1,props:{modelValue:{type:Boolean,default:!1},appear:{type:Boolean,default:!1},overlay:{type:Boolean,default:!0},transition:{type:Boolean,default:!0},preventClose:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})}},emits:["update:modelValue","close","close-prevented","after-leave"],setup(e,{emit:t}){const{ui:n,attrs:r}=Nt("modal",Ge(e,"ui"),Rn,Ge(e,"class")),l=m({get(){return e.modelValue},set(i){t("update:modelValue",i)}}),a=m(()=>e.transition?{...n.value.transition}:{});function u(i){if(e.preventClose){t("close-prevented");return}l.value=i,t("close")}const o=()=>{t("after-leave")};return Mt(()=>Je()),{ui:n,attrs:r,isOpen:l,transitionClass:a,onAfterLeave:o,close:u}}});function Mn(e,t,n,r,l,a){const u=de("TransitionChild"),o=de("HDialogPanel"),i=de("HDialog"),s=de("TransitionRoot");return _e(),Ve(s,{appear:e.appear,show:e.isOpen,as:"template",onAfterLeave:e.onAfterLeave},{default:Q(()=>[Te(i,Se({class:e.ui.wrapper},e.attrs,{onClose:e.close}),{default:Q(()=>[e.overlay?(_e(),Ve(u,Se({key:0,as:"template",appear:e.appear},e.ui.overlay.transition,{class:e.ui.overlay.transition.enterFrom}),{default:Q(()=>[Le("div",{class:ee([e.ui.overlay.base,e.ui.overlay.background])},null,2)]),_:1},16,["appear","class"])):Pt("",!0),Le("div",{class:ee(e.ui.inner)},[Le("div",{class:ee([e.ui.container,!e.fullscreen&&e.ui.padding])},[Te(u,Se({as:"template",appear:e.appear},e.transitionClass,{class:e.transitionClass.enterFrom}),{default:Q(()=>[Te(o,{class:ee([e.ui.base,e.ui.background,e.ui.ring,e.ui.shadow,e.fullscreen?e.ui.fullscreen:[e.ui.width,e.ui.height,e.ui.rounded,e.ui.margin]])},{default:Q(()=>[Ct(e.$slots,"default")]),_:3},8,["class"])]),_:3},16,["appear","class"])],2)],2)]),_:3},16,["class","onClose"])]),_:3},8,["appear","show","onAfterLeave"])}const Wn=kt(Hn,[["render",Mn]]);export{B as A,Un as E,me as N,Gt as O,it as T,Wn as _,Me as a,L as b,E as c,dt as d,Zt as e,Pe as f,he as g,rt as h,z as i,Wt as j,je as l,Kt as n,ne as o,Mt as s,V as t,R as u,zt as w};
@@ -0,0 +1 @@
1
+ import{_ as v}from"./BGkU0f28.js";import{a as b}from"./6wLLp9Nc.js";import{_ as V}from"./C1xk3ymy.js";import{m as h,ah as w,ai as C,M as I,j as _,l as i,ao as a,X as p,R as f,g as s,aq as N,w as B,ab as r,a4 as K,i as R,k as u}from"./CnXdKLRd.js";import{_ as S}from"./DlAUqK2U.js";import"./mHp9eItY.js";import"./yqBy-NAR.js";import"./Cz9dogwK.js";const T={class:"login-wrap"},U={class:"space-y-3"},q={key:0,class:"text-sm text-red-500"},c="aidev-ui-token",E=h({__name:"login",setup(M){const x=w(),m=C(),t=p(""),l=p("");I(()=>{const o=x.query.token,e=typeof o=="string"?o:"";if(e){localStorage.setItem(c,e),m.replace("/");return}const n=localStorage.getItem(c);n&&(t.value=n)});function d(){const o=t.value.trim();if(!o){l.value="Token is required";return}localStorage.setItem(c,o),m.replace("/")}return(o,e)=>{const n=v,g=b,k=V;return f(),_("div",T,[i(k,{class:"login-card"},{header:a(()=>[...e[1]||(e[1]=[s("h1",{class:"text-xl font-semibold"},"aidev login",-1),s("p",{class:"text-sm text-gray-500"},[u(" Paste the token printed by "),s("code",null,"aidev ui"),u(" in your terminal. ")],-1)])]),footer:a(()=>[i(g,{block:"",disabled:!r(t),onClick:d},{default:a(()=>[...e[2]||(e[2]=[u(" Continue ",-1)])]),_:1},8,["disabled"])]),default:a(()=>[s("div",U,[i(n,{modelValue:r(t),"onUpdate:modelValue":e[0]||(e[0]=y=>B(t)?t.value=y:null),placeholder:"32-byte hex token",autocomplete:"off",ui:{base:"font-mono"},onKeydown:N(d,["enter"])},null,8,["modelValue"]),r(l)?(f(),_("p",q,K(r(l)),1)):R("",!0)])]),_:1})])}}}),A=S(E,[["__scopeId","data-v-4199ecb4"]]);export{A as default};
@@ -1,5 +1,5 @@
1
- import{a as H}from"./Ceb2855t.js";import{_ as G}from"./C2WdrjFS.js";import{_ as Q}from"./DihqGT4A.js";import{u as Y}from"./BtD1YBwM.js";import{l as X,ac as Z,L as ee,K as te,O as b,i as T,k as A,ai as w,a6 as s,g as z,h as L,f as r,F as ne,W as ae,j as x,a1 as S,D as se,e as E,V as p,C as le,ae as re}from"./MzK2TZ-I.js";import{_ as oe}from"./DlAUqK2U.js";import"./B8sr5ZW-.js";import"./BAs1isOw.js";const ue={class:"run-page"},ie={class:"flex items-center justify-between gap-3 flex-wrap"},ce={class:"text-xs text-gray-500 mt-1"},de={class:"actions"},fe={class:"status-bar"},ve={class:"status-text"},pe={key:2,class:"empty"},me="aidev-ui-token",ge=X({__name:"run",setup(_e){const V=Y(),D=Z(),I=re(),K=E(()=>I.public.aidevCwd),O=[{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),o=p(!1),u=p(null),g=p(null),i=p(""),R=p(null);let c=null;const P=E(()=>m.value.join(`
2
- `)),U=E(()=>l.value?"running":i.value?"error":g.value?g.value.code===0?"done":"failed":"idle"),W=E(()=>{if(l.value&&u.value)return`Running aidev run ${u.value}…`;if(g.value){const{code:t,signal:e,durationMs:n}=g.value,a=B(n);return e?`Terminated by signal ${e} after ${a}`:`Exited with code ${t??"null"} after ${a}`}return"Idle"});function B(t){if(t<1e3)return`${t}ms`;const e=t/1e3;if(e<60)return`${e.toFixed(1)}s`;const n=Math.floor(e/60),a=Math.round(e-n*60);return`${n}m ${a}s`}function _(t,e){m.value.push(t?`${t} ${e}`:e),le(()=>{const n=R.value;n&&(n.scrollTop=n.scrollHeight)})}function F(t,e){if(t==="stdout")_("",e);else if(t==="stderr")_("[stderr]",e);else if(t==="exit"){try{const n=JSON.parse(e);g.value=n;const a=B(n.durationMs);_("",`--- exit code ${n.code??"null"}${n.signal?`, signal ${n.signal}`:""} (${a}) ---`)}catch{_("",`--- exit ${e} ---`)}l.value=!1,u.value=null,o.value=!1}else t==="error"&&(_("[error]",e||"unknown error"),l.value=!1,u.value=null,o.value=!1)}async function M(t){if(l.value)return;const e=localStorage.getItem(me);if(!e){i.value="Not authenticated — refresh and log in again.";return}i.value="",m.value=[],g.value=null,l.value=!0,u.value=t;const n=new AbortController;c=n;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:t}),signal:n.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{}i.value=`HTTP ${a.status}: ${C||a.statusText}`,l.value=!1,u.value=null,c===n&&(c=null);return}const N=a.body.getReader(),d=new TextDecoder("utf-8");let f="",$="message",k=[];const j=()=>{k.length===0&&$==="message"||(F($,k.join(`
1
+ import{a as H}from"./6wLLp9Nc.js";import{_ as Y}from"./CdHqKVo4.js";import{_ as G}from"./C1xk3ymy.js";import{u as Q}from"./G5BjvTWO.js";import{m as X,ah as Z,M as ee,L as te,R as b,j as T,l as A,ao as w,ab as s,h as z,i as L,g as r,F as ne,Y as ae,k as x,a4 as S,E as se,f as E,X as p,D as le,aj as re}from"./CnXdKLRd.js";import{_ as oe}from"./DlAUqK2U.js";import"./yqBy-NAR.js";import"./Cz9dogwK.js";const ue={class:"run-page"},ie={class:"flex items-center justify-between gap-3 flex-wrap"},ce={class:"text-xs text-gray-500 mt-1"},de={class:"actions"},fe={class:"status-bar"},ve={class:"status-text"},pe={key:2,class:"empty"},me="aidev-ui-token",ge=X({__name:"run",setup(_e){const D=Q(),I=Z(),P=re(),U=E(()=>P.public.aidevCwd),R=[{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),o=p(!1),u=p(null),g=p(null),i=p(""),O=p(null);let c=null;const V=E(()=>m.value.join(`
2
+ `)),F=E(()=>l.value?"running":i.value?"error":g.value?g.value.code===0?"done":"failed":"idle"),J=E(()=>{if(l.value&&u.value)return`Running aidev run ${u.value}…`;if(g.value){const{code:t,signal:e,durationMs:n}=g.value,a=M(n);return e?`Terminated by signal ${e} after ${a}`:`Exited with code ${t??"null"} after ${a}`}return"Idle"});function M(t){if(t<1e3)return`${t}ms`;const e=t/1e3;if(e<60)return`${e.toFixed(1)}s`;const n=Math.floor(e/60),a=Math.round(e-n*60);return`${n}m ${a}s`}function _(t,e){m.value.push(t?`${t} ${e}`:e),le(()=>{const n=O.value;n&&(n.scrollTop=n.scrollHeight)})}function K(t,e){if(t==="stdout")_("",e);else if(t==="stderr")_("[stderr]",e);else if(t==="exit"){try{const n=JSON.parse(e);g.value=n;const a=M(n.durationMs);_("",`--- exit code ${n.code??"null"}${n.signal?`, signal ${n.signal}`:""} (${a}) ---`)}catch{_("",`--- exit ${e} ---`)}l.value=!1,u.value=null,o.value=!1}else t==="error"&&(_("[error]",e||"unknown error"),l.value=!1,u.value=null,o.value=!1)}async function B(t){if(l.value)return;const e=localStorage.getItem(me);if(!e){i.value="Not authenticated — refresh and log in again.";return}i.value="",m.value=[],g.value=null,l.value=!0,u.value=t;const n=new AbortController;c=n;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:t}),signal:n.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{}i.value=`HTTP ${a.status}: ${C||a.statusText}`,l.value=!1,u.value=null,c===n&&(c=null);return}const N=a.body.getReader(),d=new TextDecoder("utf-8");let f="",$="message",k=[];const j=()=>{k.length===0&&$==="message"||(K($,k.join(`
3
3
  `)),$="message",k=[])};for(;;){const{value:h,done:C}=await N.read();if(C)break;f+=d.decode(h,{stream:!0});let v=f.indexOf(`
4
4
  `);for(;v!==-1;){const y=f.slice(0,v).replace(/\r$/,"");f=f.slice(v+1),y===""?j():y.startsWith(":")||(y.startsWith("event:")?$=y.slice(6).trim()||"message":y.startsWith("data:")&&k.push(y.slice(5).replace(/^ /,""))),v=f.indexOf(`
5
- `)}}j()}catch(a){a?.name!=="AbortError"&&(i.value=a instanceof Error?a.message:String(a))}finally{l.value=!1,u.value=null,o.value=!1,c===n&&(c=null)}}async function J(){if(!(!l.value||o.value)){o.value=!0;try{await V("/api/run/cancel",{method:"POST"}),_("","--- cancel requested (SIGTERM) ---")}catch(t){o.value=!1,i.value=t instanceof Error?t.message:String(t)}}}function q(t){const e=Array.isArray(t)?t[0]:t;return typeof e!="string"||!e?null:O.some(n=>n.value===e)?e:null}return ee(()=>{const t=q(D.query.autorun);t&&M(t)}),te(()=>{c&&(c.abort(),c=null)}),(t,e)=>{const n=H,a=G,N=Q;return b(),T("div",ue,[A(N,null,{header:w(()=>[r("div",ie,[r("div",null,[e[5]||(e[5]=r("h1",{class:"text-lg font-semibold"},"Run",-1)),r("p",ce,[e[1]||(e[1]=x(" Spawns ",-1)),e[2]||(e[2]=r("code",null,"aidev run <status>",-1)),e[3]||(e[3]=x(" in ",-1)),r("code",null,S(s(K)||"—"),1),e[4]||(e[4]=x(" and streams output live below. ",-1))])]),s(m).length>0&&!s(l)?(b(),z(n,{key:0,size:"xs",color:"gray",variant:"ghost",onClick:e[0]||(e[0]=d=>m.value=[])},{default:w(()=>[...e[6]||(e[6]=[x(" Clear output ",-1)])]),_:1})):L("",!0)])]),default:w(()=>[s(i)?(b(),z(a,{key:0,color:"red",variant:"soft",title:s(i),class:"mb-3"},null,8,["title"])):L("",!0),r("div",de,[(b(),T(ne,null,ae(O,d=>A(n,{key:d.value,size:"md",color:d.color,loading:s(l)&&s(u)===d.value,disabled:s(l),class:"action-btn",onClick:f=>M(d.value)},{default:w(()=>[x(S(d.label),1)]),_:2},1032,["color","loading","disabled","onClick"])),64)),A(n,{size:"md",color:"red",variant:"soft",disabled:!s(l)||s(o),loading:s(o),class:"cancel-btn",onClick:J},{default:w(()=>[...e[7]||(e[7]=[x(" Cancel ",-1)])]),_:1},8,["disabled","loading"])]),r("div",fe,[r("span",{class:se(["status-dot",`status-dot--${s(U)}`])},null,2),r("span",ve,S(s(W)),1)]),s(m).length>0?(b(),T("pre",{key:1,ref_key:"viewer",ref:R,class:"viewer"},[r("code",null,S(s(P)),1)],512)):(b(),T("p",pe,"No output yet. Click a status above to start a run."))]),_:1})])}}}),Te=oe(ge,[["__scopeId","data-v-17b51f8f"]]);export{Te as default};
5
+ `)}}j()}catch(a){a?.name!=="AbortError"&&(i.value=a instanceof Error?a.message:String(a))}finally{l.value=!1,u.value=null,o.value=!1,c===n&&(c=null)}}async function W(){if(!(!l.value||o.value)){o.value=!0;try{await D("/api/run/cancel",{method:"POST"}),_("","--- cancel requested (SIGTERM) ---")}catch(t){o.value=!1,i.value=t instanceof Error?t.message:String(t)}}}function q(t){const e=Array.isArray(t)?t[0]:t;return typeof e!="string"||!e?null:R.some(n=>n.value===e)?e:null}return ee(()=>{const t=q(I.query.autorun);t&&B(t)}),te(()=>{c&&(c.abort(),c=null)}),(t,e)=>{const n=H,a=Y,N=G;return b(),T("div",ue,[A(N,null,{header:w(()=>[r("div",ie,[r("div",null,[e[5]||(e[5]=r("h1",{class:"text-lg font-semibold"},"Run",-1)),r("p",ce,[e[1]||(e[1]=x(" Spawns ",-1)),e[2]||(e[2]=r("code",null,"aidev run <status>",-1)),e[3]||(e[3]=x(" in ",-1)),r("code",null,S(s(U)||"—"),1),e[4]||(e[4]=x(" and streams output live below. ",-1))])]),s(m).length>0&&!s(l)?(b(),z(n,{key:0,size:"xs",color:"gray",variant:"ghost",onClick:e[0]||(e[0]=d=>m.value=[])},{default:w(()=>[...e[6]||(e[6]=[x(" Clear output ",-1)])]),_:1})):L("",!0)])]),default:w(()=>[s(i)?(b(),z(a,{key:0,color:"red",variant:"soft",title:s(i),class:"mb-3"},null,8,["title"])):L("",!0),r("div",de,[(b(),T(ne,null,ae(R,d=>A(n,{key:d.value,size:"md",color:d.color,loading:s(l)&&s(u)===d.value,disabled:s(l),class:"action-btn",onClick:f=>B(d.value)},{default:w(()=>[x(S(d.label),1)]),_:2},1032,["color","loading","disabled","onClick"])),64)),A(n,{size:"md",color:"red",variant:"soft",disabled:!s(l)||s(o),loading:s(o),class:"cancel-btn",onClick:W},{default:w(()=>[...e[7]||(e[7]=[x(" Cancel ",-1)])]),_:1},8,["disabled","loading"])]),r("div",fe,[r("span",{class:se(["status-dot",`status-dot--${s(F)}`])},null,2),r("span",ve,S(s(J)),1)]),s(m).length>0?(b(),T("pre",{key:1,ref_key:"viewer",ref:O,class:"viewer"},[r("code",null,S(s(V)),1)],512)):(b(),T("p",pe,"No output yet. Click a status above to start a run."))]),_:1})])}}}),Te=oe(ge,[["__scopeId","data-v-17b51f8f"]]);export{Te as default};
@@ -0,0 +1 @@
1
+ import{_ as v}from"./Cz9dogwK.js";import{a as g}from"./6wLLp9Nc.js";import{c as k}from"./G5BjvTWO.js";import{m as h,ai as w,j as e,g as o,F as x,Y as C,ab as l,a4 as t,l as c,ao as i,Z as B,k as L,f as N,R as r,aj as R}from"./CnXdKLRd.js";import{_ as y}from"./DlAUqK2U.js";import"./yqBy-NAR.js";const S={class:"app-shell"},T={class:"sidebar"},V={class:"nav-icon","aria-hidden":"true"},j={class:"main"},D={class:"topbar"},F=["title"],z={class:"cwd-value"},A={class:"content"},E=h({__name:"default",setup(H){const d=w(),_=R(),n=N(()=>_.public.aidevCwd),u=[{to:"/",label:"Dashboard",icon:"◇"},{to:"/config",label:"Config",icon:"⚙"},{to:"/schedule",label:"Schedule",icon:"⏱"},{to:"/logs",label:"Logs",icon:"≡"},{to:"/tasks",label:"Tasks",icon:"☰"},{to:"/run",label:"Run",icon:"▶"},{to:"/hooks",label:"Hooks",icon:"⚡"}];function p(){k(),d.replace("/login")}return(m,s)=>{const f=v,b=g;return r(),e("div",S,[o("aside",T,[s[0]||(s[0]=o("div",{class:"brand"},[o("span",{class:"brand-mark"},"aidev"),o("span",{class:"brand-sub"},"dashboard")],-1)),o("nav",null,[(r(),e(x,null,C(u,a=>c(f,{key:a.to,to:a.to,class:"nav-link","active-class":"nav-link--active"},{default:i(()=>[o("span",V,t(a.icon),1),o("span",null,t(a.label),1)]),_:2},1032,["to"])),64))])]),o("div",j,[o("header",D,[o("div",{class:"cwd",title:l(n)},[s[1]||(s[1]=o("span",{class:"cwd-label"},"cwd",-1)),o("code",z,t(l(n)||"—"),1)],8,F),c(b,{size:"sm",color:"gray",variant:"ghost",onClick:p},{default:i(()=>[...s[2]||(s[2]=[L(" Logout ",-1)])]),_:1})]),o("main",A,[B(m.$slots,"default",{},void 0,!0)])])])}}}),G=y(E,[["__scopeId","data-v-7155b15d"]]);export{G as default};
@@ -0,0 +1 @@
1
+ import{h as l,ao as g,j as r,Z as o,E as d,i,B as p,a1 as c,m as f,f as b,A as m,c as u,R as s,a6 as y,aa as k,a9 as v}from"./CnXdKLRd.js";import{d as h}from"./6wLLp9Nc.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),B=f({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=b(()=>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 S(a,e,n,t,j,A){return s(),l(c(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 z=$(B,[["render",S]]);export{z as _};
@@ -0,0 +1,11 @@
1
+ function j(e,n){(n==null||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function C(e){if(Array.isArray(e))return e}function D(e,n,t){return(n=F(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function q(e,n){var t=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(t!=null){var r,o,i,c,u=[],a=!0,f=!1;try{if(i=(t=t.call(e)).next,n!==0)for(;!(a=(r=i.call(t)).done)&&(u.push(r.value),u.length!==n);a=!0);}catch(h){f=!0,o=h}finally{try{if(!a&&t.return!=null&&(c=t.return(),Object(c)!==c))return}finally{if(f)throw o}}return u}}function R(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function O(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),t.push.apply(t,r)}return t}function w(e){for(var n=1;n<arguments.length;n++){var t=arguments[n]!=null?arguments[n]:{};n%2?O(Object(t),!0).forEach(function(r){D(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):O(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function z(e,n){if(e==null)return{};var t,r,o=L(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)===-1&&{}.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function L(e,n){if(e==null)return{};var t={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(n.indexOf(r)!==-1)continue;t[r]=e[r]}return t}function M(e,n){return C(e)||q(e,n)||H(e,n)||R()}function x(e,n){if(typeof e!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var r=t.call(e,n);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function F(e){var n=x(e,"string");return typeof n=="symbol"?n:n+""}function H(e,n){if(e){if(typeof e=="string")return j(e,n);var t={}.toString.call(e).slice(8,-1);return t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set"?Array.from(e):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?j(e,n):void 0}}function K(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function P(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),t.push.apply(t,r)}return t}function S(e){for(var n=1;n<arguments.length;n++){var t=arguments[n]!=null?arguments[n]:{};n%2?P(Object(t),!0).forEach(function(r){K(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):P(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function N(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return function(r){return n.reduceRight(function(o,i){return i(o)},r)}}function s(e){return function n(){for(var t=this,r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return o.length>=e.length?e.apply(this,o):function(){for(var c=arguments.length,u=new Array(c),a=0;a<c;a++)u[a]=arguments[a];return n.apply(t,[].concat(o,u))}}}function g(e){return{}.toString.call(e).includes("Object")}function U(e){return!Object.keys(e).length}function d(e){return typeof e=="function"}function W(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function B(e,n){return g(n)||l("changeType"),Object.keys(n).some(function(t){return!W(e,t)})&&l("changeField"),n}function G(e){d(e)||l("selectorType")}function Y(e){d(e)||g(e)||l("handlerType"),g(e)&&Object.values(e).some(function(n){return!d(n)})&&l("handlersType")}function J(e){e||l("initialIsRequired"),g(e)||l("initialType"),U(e)&&l("initialContent")}function Q(e,n){throw new Error(e[n]||e.default)}var V={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},l=s(Q)(V),v={changes:B,selector:G,handler:Y,initial:J};function X(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};v.initial(e),v.handler(n);var t={current:e},r=s(k)(t,n),o=s(_)(t),i=s(v.changes)(e),c=s(Z)(t);function u(){var f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(h){return h};return v.selector(f),f(t.current)}function a(f){N(r,o,i,c)(f)}return[u,a]}function Z(e,n){return d(n)?n(e.current):n}function _(e,n){return e.current=S(S({},e.current),n),n}function k(e,n,t){return d(n)?n(e.current):Object.keys(t).forEach(function(r){var o;return(o=n[r])===null||o===void 0?void 0:o.call(n,e.current[r])}),t}var ee={create:X},ne={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}};function te(e){return function n(){for(var t=this,r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return o.length>=e.length?e.apply(this,o):function(){for(var c=arguments.length,u=new Array(c),a=0;a<c;a++)u[a]=arguments[a];return n.apply(t,[].concat(o,u))}}}function re(e){return{}.toString.call(e).includes("Object")}function oe(e){return e||I("configIsRequired"),re(e)||I("configType"),e.urls?(ie(),{paths:{vs:e.urls.monacoBase}}):e}function ie(){console.warn(T.deprecation)}function ae(e,n){throw new Error(e[n]||e.default)}var T={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
3
+ You are using deprecated way of configuration.
4
+
5
+ Instead of using
6
+ monaco.config({ urls: { monacoBase: '...' } })
7
+ use
8
+ monaco.config({ paths: { vs: '...' } })
9
+
10
+ For more please check the link https://github.com/suren-atoyan/monaco-loader#config
11
+ `},I=te(ae)(T),ce={config:oe},ue=function(){for(var n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];return function(o){return t.reduceRight(function(i,c){return c(i)},o)}};function A(e,n){return Object.keys(n).forEach(function(t){n[t]instanceof Object&&e[t]&&Object.assign(n[t],A(e[t],n[t]))}),w(w({},e),n)}var le={type:"cancelation",msg:"operation is manually canceled"};function b(e){var n=!1,t=new Promise(function(r,o){e.then(function(i){return n?o(le):r(i)}),e.catch(o)});return t.cancel=function(){return n=!0},t}var fe=["monaco"],se=ee.create({config:ne,isInitialized:!1,resolve:null,reject:null,monaco:null}),E=M(se,2),p=E[0],m=E[1];function de(e){var n=ce.config(e),t=n.monaco,r=z(n,fe);m(function(o){return{config:A(o.config,r),monaco:t}})}function pe(){var e=p(function(n){var t=n.monaco,r=n.isInitialized,o=n.resolve;return{monaco:t,isInitialized:r,resolve:o}});if(!e.isInitialized){if(m({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),b(y);if(window.monaco&&window.monaco.editor)return $(window.monaco),e.resolve(window.monaco),b(y);ue(ve,me)(he)}return b(y)}function ve(e){return document.body.appendChild(e)}function ge(e){var n=document.createElement("script");return e&&(n.src=e),n}function me(e){var n=p(function(r){var o=r.config,i=r.reject;return{config:o,reject:i}}),t=ge("".concat(n.config.paths.vs,"/loader.js"));return t.onload=function(){return e()},t.onerror=n.reject,t}function he(){var e=p(function(t){var r=t.config,o=t.resolve,i=t.reject;return{config:r,resolve:o,reject:i}}),n=window.require;n.config(e.config),n(["vs/editor/editor.main"],function(t){var r=t.m||t;$(r),e.resolve(r)},function(t){e.reject(t)})}function $(e){p().monaco||m({monaco:e})}function be(){return p(function(e){var n=e.monaco;return n})}var y=new Promise(function(e,n){return m({resolve:e,reject:n})}),ye={config:de,init:pe,__getMonacoInstance:be};export{ye as default};
@@ -0,0 +1 @@
1
+ import{a as Ne}from"./6wLLp9Nc.js";import{_ as Re}from"./CdHqKVo4.js";import{_ as he}from"./C1xk3ymy.js";import{_ as De}from"./Zrl3Utak.js";import{_ as be}from"./D_gcbXK2.js";import{_ as Pe}from"./BGkU0f28.js";import{_ as Ue}from"./DGHfexQZ.js";import{_ as Ce}from"./BOIhDy_l.js";import{u as Le}from"./G5BjvTWO.js";import{m as Ge,M as xe,j as f,l as a,ao as n,w as H,ab as l,X as A,W as B,R as u,h as k,i as O,k as I,g as i,a4 as C,F as W,Y as j,f as L}from"./CnXdKLRd.js";import{_ as Ke}from"./DlAUqK2U.js";import"./yqBy-NAR.js";import"./Cz9dogwK.js";import"./mHp9eItY.js";const Me={class:"config-page"},we={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"},Ye={key:2,class:"mb-4"},ze={class:"flex items-center justify-between gap-3"},Fe={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"},F="PROVIDER",_l=Ge({__name:"config",setup(cl){const N=Le(),$=A(""),G=A(null),x=A(!1),V=A(""),S=A(!1),K=A(!1),J=A(0),s=B({}),R=B({}),g=B({provider:!1,ai:!1}),E=B({provider:null,ai:null}),T=A(""),h=A(!1),D=A(""),b=A(""),P=A(""),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"}],Y=["antigravity","anthropic-sdk","claude","codex","cursor","devin"],re=Y.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"}],devin:[],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 M=0;const m=A([]),ie=L(()=>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_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"],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_SAFE_MODE","AIDEV_AUTO_COMPRESS","AIDEV_COMPRESS_THRESHOLD","GIT_REMOTE","GITHUB_BASE_BRANCH","GITHUB_REPO"],ee=["AIDEV_LOG_PATH"],pe=L(()=>{const t=(s.PROVIDER||"clickup").toLowerCase();return Z[t]??[]}),_e=L(()=>{const t=new Set([F,...q,...Q,...ee]);for(const e of Object.values(Z))for(const r of e)t.add(r.key);return t}),le=L(()=>Object.keys(s).filter(t=>!_e.value.has(t)).sort()),ce=L(()=>{const t=Object.keys(s),e=Object.keys(R);if(t.length!==e.length)return!0;for(const r of t)if((s[r]??"")!==(R[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=>Y.includes(r));return e.length===0?[{uid:M++,type:"claude"},{uid:M++,type:"cursor"}]:e.map(r=>({uid:M++,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=Y.find(r=>!t.has(r))??"claude";m.value.push({uid:M++,type:e}),U()}function Ae(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 z(t){$.value=t.path,G.value=t.exists;for(const d of Object.keys(s))delete s[d];for(const d of Object.keys(R))delete R[d];const e={};e[F]=t.values[F]||"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,R[d]=c;m.value=fe(s.AGENTS||""),U();const r=m.value.map(d=>d.type);(!T.value||!r.includes(T.value))&&(T.value=r[0]??"")}async function ae(){x.value=!0,V.value="";try{const t=await N("/api/config");z(t)}catch(t){V.value=t instanceof Error?t.message:String(t)}finally{x.value=!1}}async function ve(){S.value=!0,K.value=!1,V.value="";try{const t=await N("/api/config",{method:"PUT",body:{values:{...s}}});J.value=Object.keys(t.values).length,z(t),K.value=!0,setTimeout(()=>K.value=!1,3e3)}catch(t){V.value=t instanceof Error?t.message:String(t)}finally{S.value=!1}}async function ye(){const t={PROVIDER:"clickup",AGENTS:"claude,cursor",DEV_NOTES_MODE:"smart",AIDEV_TRIGGER_WORD:"aidev-continue",THINKING_TAG:"thinking",PLANNING_TAG:"planning"};S.value=!0;try{const e=await N("/api/config",{method:"PUT",body:{values:t}});z(e)}catch(e){V.value=e instanceof Error?e.message:String(e)}finally{S.value=!1}}async function Te(){g.provider=!0,E.provider=null;try{E.provider=await N("/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 Ie(){if(T.value){g.ai=!0,E.ai=null;try{E.ai=await N("/api/config/test",{method:"POST",body:{ai:T.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=Ne,d=Re,c=he,w=De,p=be,_=Pe,Oe=Ue,Ve=Ce;return u(),f("div",Me,[a(c,null,{header:n(()=>[i("div",we,[i("div",null,[e[22]||(e[22]=i("h1",{class:"text-lg font-semibold"},"Config",-1)),i("p",He,[i("code",null,C(l($)||"—"),1),l(G)===!1?(u(),f("span",Be,"not found")):l(G)?(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[23]||(e[23]=[I(" Reload ",-1)])]),_:1},8,["loading","disabled"]),a(r,{color:"primary",size:"sm",loading:l(S),disabled:l(S)||!l(ce),onClick:ve},{default:n(()=>[...e[24]||(e[24]=[I(" Save changes ",-1)])]),_:1},8,["loading","disabled"])])])]),default:n(()=>[l(V)?(u(),k(d,{key:0,color:"red",variant:"soft",title:l(V),class:"mb-4"},null,8,["title"])):O("",!0),l(G)===!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(S),onClick:ye},{default:n(()=>[...e[25]||(e[25]=[I(" Create with defaults ",-1)])]),_:1},8,["loading"])]),_:1})):O("",!0),l(K)?(u(),f("div",Ye,[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",ze,[e[27]||(e[27]=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:Te},{default:n(()=>[...e[26]||(e[26]=[I(" Test connection ",-1)])]),_:1},8,["loading","disabled"])])]),default:n(()=>[i("div",Fe,[a(p,{label:"PROVIDER",help:"Which task backend aidev should talk to."},{default:n(()=>[a(w,{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":v=>l(s)[o.key]=v,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[28]||(e[28]=i("h2",{class:"text-base font-semibold"},"AI runners",-1)),i("div",Je,[a(w,{modelValue:l(T),"onUpdate:modelValue":e[1]||(e[1]=o=>H(T)?T.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(T),onClick:Ie},{default:n(()=>[I(" Test "+C(l(T)||"agent"),1)]),_:1},8,["loading","disabled"])])])]),default:n(()=>[e[31]||(e[31]=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,v)=>(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:v===0,"aria-label":"Move up",onClick:y=>oe(v,-1)},null,8,["disabled","onClick"]),a(r,{size:"xs",color:"gray",variant:"ghost",icon:"i-heroicons-chevron-down",disabled:v===l(m).length-1,"aria-label":"Move down",onClick:y=>oe(v,1)},null,8,["disabled","onClick"])]),a(w,{modelValue:o.type,"onUpdate:modelValue":[y=>o.type=y,U],options:l(re),class:"w-52"},null,8,["modelValue","onUpdate:modelValue","options"]),v===0?(u(),k(Oe,{key:0,color:"primary",variant:"subtle",size:"xs"},{default:n(()=>[...e[29]||(e[29]=[I(" primary ",-1)])]),_:1})):(u(),f("span",el,"fallback "+C(v),1))]),a(r,{size:"xs",color:"red",variant:"ghost",icon:"i-heroicons-trash",disabled:l(m).length<=1,"aria-label":"Remove agent",onClick:y=>Ae(v)},null,8,["disabled","onClick"])]),te(o.type).length>0?(u(),f("div",ll,[(u(!0),f(W,null,j(te(o.type),y=>(u(),k(p,{key:y.key,label:y.key,help:y.help},{default:n(()=>[a(_,{modelValue:l(s)[y.key],"onUpdate:modelValue":Se=>l(s)[y.key]=Se,type:y.secret?"password":"text",placeholder:y.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[30]||(e[30]=[I(" 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[32]||(e[32]=[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[33]||(e[33]=[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(w,{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_SAFE_MODE",help:"Redact secret env values from AI prompts (default: true). Set false/0/no to disable."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_SAFE_MODE,"onUpdate:modelValue":e[12]||(e[12]=o=>l(s).AIDEV_SAFE_MODE=o),placeholder:"true"},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[13]||(e[13]=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[14]||(e[14]=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[15]||(e[15]=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[16]||(e[16]=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[17]||(e[17]=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[35]||(e[35]=i("h2",{class:"text-base font-semibold"},"Other keys",-1)),a(r,{size:"xs",color:"gray",variant:"ghost",onClick:e[18]||(e[18]=o=>h.value=!0)},{default:n(()=>[...e[34]||(e[34]=[I(" + 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":v=>l(s)[o]=v,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:v=>ge(o)},null,8,["onClick"])])]),_:2},1032,["label"]))),128))]))]),_:1}),a(Ve,{modelValue:l(h),"onUpdate:modelValue":e[21]||(e[21]=o=>H(h)?h.value=o:null)},{default:n(()=>[a(c,null,{header:n(()=>[...e[36]||(e[36]=[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[37]||(e[37]=[I("Cancel",-1)])]),_:1}),a(r,{color:"primary",onClick:ke},{default:n(()=>[...e[38]||(e[38]=[I("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[19]||(e[19]=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[20]||(e[20]=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"])])}}}),Rl=Ke(_l,[["__scopeId","data-v-bc9f5760"]]);export{Rl as default};