@kynetic-ai/spec 0.9.1 → 0.11.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 (310) hide show
  1. package/README.md +2 -1
  2. package/dist/acp/client.d.ts +6 -1
  3. package/dist/acp/client.d.ts.map +1 -1
  4. package/dist/acp/client.js +7 -2
  5. package/dist/acp/client.js.map +1 -1
  6. package/dist/acp/framing.d.ts +12 -1
  7. package/dist/acp/framing.d.ts.map +1 -1
  8. package/dist/acp/framing.js +27 -4
  9. package/dist/acp/framing.js.map +1 -1
  10. package/dist/agent-runtime/dispatch.d.ts +292 -0
  11. package/dist/agent-runtime/dispatch.d.ts.map +1 -0
  12. package/dist/agent-runtime/dispatch.js +860 -0
  13. package/dist/agent-runtime/dispatch.js.map +1 -0
  14. package/dist/agent-runtime/index.d.ts +11 -0
  15. package/dist/agent-runtime/index.d.ts.map +1 -0
  16. package/dist/agent-runtime/index.js +11 -0
  17. package/dist/agent-runtime/index.js.map +1 -0
  18. package/dist/agent-runtime/invocation.d.ts +86 -0
  19. package/dist/agent-runtime/invocation.d.ts.map +1 -0
  20. package/dist/agent-runtime/invocation.js +442 -0
  21. package/dist/agent-runtime/invocation.js.map +1 -0
  22. package/dist/agent-runtime/prompts.d.ts +50 -0
  23. package/dist/agent-runtime/prompts.d.ts.map +1 -0
  24. package/dist/agent-runtime/prompts.js +108 -0
  25. package/dist/agent-runtime/prompts.js.map +1 -0
  26. package/dist/agents/spawner.d.ts.map +1 -1
  27. package/dist/agents/spawner.js +60 -4
  28. package/dist/agents/spawner.js.map +1 -1
  29. package/dist/cli/batch-exec.d.ts.map +1 -1
  30. package/dist/cli/batch-exec.js +140 -62
  31. package/dist/cli/batch-exec.js.map +1 -1
  32. package/dist/cli/batch-write-buffer.d.ts +141 -0
  33. package/dist/cli/batch-write-buffer.d.ts.map +1 -0
  34. package/dist/cli/batch-write-buffer.js +400 -0
  35. package/dist/cli/batch-write-buffer.js.map +1 -0
  36. package/dist/cli/commands/agent.d.ts +20 -0
  37. package/dist/cli/commands/agent.d.ts.map +1 -0
  38. package/dist/cli/commands/agent.js +831 -0
  39. package/dist/cli/commands/agent.js.map +1 -0
  40. package/dist/cli/commands/inbox.d.ts.map +1 -1
  41. package/dist/cli/commands/inbox.js +46 -22
  42. package/dist/cli/commands/inbox.js.map +1 -1
  43. package/dist/cli/commands/index.d.ts +1 -0
  44. package/dist/cli/commands/index.d.ts.map +1 -1
  45. package/dist/cli/commands/index.js +1 -0
  46. package/dist/cli/commands/index.js.map +1 -1
  47. package/dist/cli/commands/item.d.ts.map +1 -1
  48. package/dist/cli/commands/item.js +22 -16
  49. package/dist/cli/commands/item.js.map +1 -1
  50. package/dist/cli/commands/log.js +1 -1
  51. package/dist/cli/commands/log.js.map +1 -1
  52. package/dist/cli/commands/meta.d.ts.map +1 -1
  53. package/dist/cli/commands/meta.js +168 -6
  54. package/dist/cli/commands/meta.js.map +1 -1
  55. package/dist/cli/commands/module.d.ts.map +1 -1
  56. package/dist/cli/commands/module.js +2 -1
  57. package/dist/cli/commands/module.js.map +1 -1
  58. package/dist/cli/commands/plan-import.js +19 -3
  59. package/dist/cli/commands/plan-import.js.map +1 -1
  60. package/dist/cli/commands/plan.d.ts.map +1 -1
  61. package/dist/cli/commands/plan.js +87 -43
  62. package/dist/cli/commands/plan.js.map +1 -1
  63. package/dist/cli/commands/ralph.d.ts +5 -56
  64. package/dist/cli/commands/ralph.d.ts.map +1 -1
  65. package/dist/cli/commands/ralph.js +52 -1502
  66. package/dist/cli/commands/ralph.js.map +1 -1
  67. package/dist/cli/commands/search.d.ts.map +1 -1
  68. package/dist/cli/commands/search.js +22 -13
  69. package/dist/cli/commands/search.js.map +1 -1
  70. package/dist/cli/commands/serve.d.ts.map +1 -1
  71. package/dist/cli/commands/serve.js +70 -11
  72. package/dist/cli/commands/serve.js.map +1 -1
  73. package/dist/cli/commands/session/checkpoint.d.ts.map +1 -1
  74. package/dist/cli/commands/session/checkpoint.js +7 -2
  75. package/dist/cli/commands/session/checkpoint.js.map +1 -1
  76. package/dist/cli/commands/session/commands.d.ts.map +1 -1
  77. package/dist/cli/commands/session/commands.js +15 -0
  78. package/dist/cli/commands/session/commands.js.map +1 -1
  79. package/dist/cli/commands/session/context.d.ts.map +1 -1
  80. package/dist/cli/commands/session/context.js +10 -5
  81. package/dist/cli/commands/session/context.js.map +1 -1
  82. package/dist/cli/commands/session/log.d.ts +1 -0
  83. package/dist/cli/commands/session/log.d.ts.map +1 -1
  84. package/dist/cli/commands/session/log.js +124 -8
  85. package/dist/cli/commands/session/log.js.map +1 -1
  86. package/dist/cli/commands/session/stale-close.d.ts +17 -0
  87. package/dist/cli/commands/session/stale-close.d.ts.map +1 -0
  88. package/dist/cli/commands/session/stale-close.js +378 -0
  89. package/dist/cli/commands/session/stale-close.js.map +1 -0
  90. package/dist/cli/commands/setup.d.ts.map +1 -1
  91. package/dist/cli/commands/setup.js +95 -0
  92. package/dist/cli/commands/setup.js.map +1 -1
  93. package/dist/cli/commands/skill-crud.d.ts.map +1 -1
  94. package/dist/cli/commands/skill-crud.js +4 -3
  95. package/dist/cli/commands/skill-crud.js.map +1 -1
  96. package/dist/cli/commands/skill-diff.d.ts.map +1 -1
  97. package/dist/cli/commands/skill-diff.js +15 -0
  98. package/dist/cli/commands/skill-diff.js.map +1 -1
  99. package/dist/cli/commands/skill-install.d.ts.map +1 -1
  100. package/dist/cli/commands/skill-install.js +50 -18
  101. package/dist/cli/commands/skill-install.js.map +1 -1
  102. package/dist/cli/commands/task.d.ts.map +1 -1
  103. package/dist/cli/commands/task.js +536 -310
  104. package/dist/cli/commands/task.js.map +1 -1
  105. package/dist/cli/commands/tasks.js +1 -1
  106. package/dist/cli/commands/tasks.js.map +1 -1
  107. package/dist/cli/commands/triage.d.ts.map +1 -1
  108. package/dist/cli/commands/triage.js +37 -13
  109. package/dist/cli/commands/triage.js.map +1 -1
  110. package/dist/cli/commands/validate.d.ts.map +1 -1
  111. package/dist/cli/commands/validate.js +65 -25
  112. package/dist/cli/commands/validate.js.map +1 -1
  113. package/dist/cli/help/content.d.ts.map +1 -1
  114. package/dist/cli/help/content.js +5 -0
  115. package/dist/cli/help/content.js.map +1 -1
  116. package/dist/cli/index.d.ts.map +1 -1
  117. package/dist/cli/index.js +2 -1
  118. package/dist/cli/index.js.map +1 -1
  119. package/dist/cli/output.d.ts.map +1 -1
  120. package/dist/cli/output.js +5 -1
  121. package/dist/cli/output.js.map +1 -1
  122. package/dist/daemon/project-context.ts +22 -0
  123. package/dist/daemon/routes/agent-dispatch.ts +279 -0
  124. package/dist/daemon/routes/items.ts +22 -0
  125. package/dist/daemon/routes/meta.ts +141 -1
  126. package/dist/daemon/routes/plans.ts +147 -0
  127. package/dist/daemon/routes/sessions.ts +180 -0
  128. package/dist/daemon/routes/tasks.ts +198 -0
  129. package/dist/daemon/routes/validation.ts +1 -1
  130. package/dist/daemon/server.ts +77 -21
  131. package/dist/daemon/websocket/handler.ts +67 -6
  132. package/dist/daemon/websocket/lifecycle.ts +19 -0
  133. package/dist/daemon/websocket/pubsub.ts +74 -3
  134. package/dist/export/html.d.ts.map +1 -1
  135. package/dist/export/html.js +5 -2
  136. package/dist/export/html.js.map +1 -1
  137. package/dist/export/triage.d.ts +1 -1
  138. package/dist/export/triage.d.ts.map +1 -1
  139. package/dist/export/triage.js +5 -3
  140. package/dist/export/triage.js.map +1 -1
  141. package/dist/parser/alignment.d.ts.map +1 -1
  142. package/dist/parser/alignment.js +10 -5
  143. package/dist/parser/alignment.js.map +1 -1
  144. package/dist/parser/assess.js +1 -1
  145. package/dist/parser/assess.js.map +1 -1
  146. package/dist/parser/config.d.ts +6 -6
  147. package/dist/parser/meta.d.ts.map +1 -1
  148. package/dist/parser/meta.js +9 -8
  149. package/dist/parser/meta.js.map +1 -1
  150. package/dist/parser/plan-document.d.ts +12 -12
  151. package/dist/parser/plans.d.ts +7 -0
  152. package/dist/parser/plans.d.ts.map +1 -1
  153. package/dist/parser/plans.js +100 -15
  154. package/dist/parser/plans.js.map +1 -1
  155. package/dist/parser/refs.d.ts +5 -0
  156. package/dist/parser/refs.d.ts.map +1 -1
  157. package/dist/parser/refs.js +17 -12
  158. package/dist/parser/refs.js.map +1 -1
  159. package/dist/parser/shadow.d.ts +1 -1
  160. package/dist/parser/shadow.d.ts.map +1 -1
  161. package/dist/parser/shadow.js +71 -4
  162. package/dist/parser/shadow.js.map +1 -1
  163. package/dist/parser/skill-render.d.ts.map +1 -1
  164. package/dist/parser/skill-render.js +6 -3
  165. package/dist/parser/skill-render.js.map +1 -1
  166. package/dist/parser/validate.d.ts.map +1 -1
  167. package/dist/parser/validate.js +35 -76
  168. package/dist/parser/validate.js.map +1 -1
  169. package/dist/parser/yaml.d.ts +24 -5
  170. package/dist/parser/yaml.d.ts.map +1 -1
  171. package/dist/parser/yaml.js +224 -64
  172. package/dist/parser/yaml.js.map +1 -1
  173. package/dist/schema/meta.d.ts +457 -119
  174. package/dist/schema/meta.d.ts.map +1 -1
  175. package/dist/schema/meta.js +56 -0
  176. package/dist/schema/meta.js.map +1 -1
  177. package/dist/schema/plan.d.ts +22 -22
  178. package/dist/schema/spec.d.ts +39 -39
  179. package/dist/schema/task.d.ts +43 -32
  180. package/dist/schema/task.d.ts.map +1 -1
  181. package/dist/schema/task.js +5 -0
  182. package/dist/schema/task.js.map +1 -1
  183. package/dist/sessions/store.d.ts +126 -0
  184. package/dist/sessions/store.d.ts.map +1 -1
  185. package/dist/sessions/store.js +440 -22
  186. package/dist/sessions/store.js.map +1 -1
  187. package/dist/sessions/types.d.ts +75 -17
  188. package/dist/sessions/types.d.ts.map +1 -1
  189. package/dist/sessions/types.js +51 -1
  190. package/dist/sessions/types.js.map +1 -1
  191. package/dist/triage/actions.d.ts +1 -0
  192. package/dist/triage/actions.d.ts.map +1 -1
  193. package/dist/triage/actions.js +34 -7
  194. package/dist/triage/actions.js.map +1 -1
  195. package/dist/utils/commit.js +1 -1
  196. package/dist/utils/commit.js.map +1 -1
  197. package/dist/web-ui/_app/env.js +1 -0
  198. package/dist/web-ui/_app/immutable/assets/0.BJaYkGW2.css +1 -0
  199. package/dist/web-ui/_app/immutable/assets/9.SzGLxi4x.css +1 -0
  200. package/dist/web-ui/_app/immutable/assets/select-trigger.CV-KWLNP.css +1 -0
  201. package/dist/web-ui/_app/immutable/chunks/-lc0BifF.js +1 -0
  202. package/dist/web-ui/_app/immutable/chunks/62JVKtnb.js +1 -0
  203. package/dist/web-ui/_app/immutable/chunks/8RBjHMN1.js +1 -0
  204. package/dist/web-ui/_app/immutable/chunks/B5LJFxqa.js +1 -0
  205. package/dist/web-ui/_app/immutable/chunks/B5wTVqxm.js +1 -0
  206. package/dist/web-ui/_app/immutable/chunks/B6VSmczZ.js +1 -0
  207. package/dist/web-ui/_app/immutable/chunks/B8a0xDxR.js +1 -0
  208. package/dist/web-ui/_app/immutable/chunks/BEOQc37C.js +1 -0
  209. package/dist/web-ui/_app/immutable/chunks/BHtYorjv.js +1 -0
  210. package/dist/web-ui/_app/immutable/chunks/BJ0JX3ea.js +1 -0
  211. package/dist/web-ui/_app/immutable/chunks/BMuCqDX8.js +1 -0
  212. package/dist/web-ui/_app/immutable/chunks/BP352uRn.js +1 -0
  213. package/dist/web-ui/_app/immutable/chunks/BUZujXJ2.js +1 -0
  214. package/dist/web-ui/_app/immutable/chunks/BVA9Exy-.js +1 -0
  215. package/dist/web-ui/_app/immutable/chunks/BWET-efb.js +1 -0
  216. package/dist/web-ui/_app/immutable/chunks/BXkNecpt.js +1 -0
  217. package/dist/web-ui/_app/immutable/chunks/BYzrIfX8.js +1 -0
  218. package/dist/web-ui/_app/immutable/chunks/BkOJ8DkV.js +1 -0
  219. package/dist/web-ui/_app/immutable/chunks/BpuwufMc.js +1 -0
  220. package/dist/web-ui/_app/immutable/chunks/BwMO4RrG.js +1 -0
  221. package/dist/web-ui/_app/immutable/chunks/BysXJlZb.js +1 -0
  222. package/dist/web-ui/_app/immutable/chunks/C076q4JN.js +1 -0
  223. package/dist/web-ui/_app/immutable/chunks/C33JaVbg.js +1 -0
  224. package/dist/web-ui/_app/immutable/chunks/CGtqifKp.js +1 -0
  225. package/dist/web-ui/_app/immutable/chunks/CHDZZ7OG.js +1 -0
  226. package/dist/web-ui/_app/immutable/chunks/CPPfDSei.js +5 -0
  227. package/dist/web-ui/_app/immutable/chunks/CUir3f4J.js +60 -0
  228. package/dist/web-ui/_app/immutable/chunks/Cncwi6fQ.js +1 -0
  229. package/dist/web-ui/_app/immutable/chunks/CrCIbn0C.js +1 -0
  230. package/dist/web-ui/_app/immutable/chunks/CwELQvbx.js +1 -0
  231. package/dist/web-ui/_app/immutable/chunks/D3vxvonu.js +1 -0
  232. package/dist/web-ui/_app/immutable/chunks/D6TVmR9T.js +1 -0
  233. package/dist/web-ui/_app/immutable/chunks/D7LTux4W.js +1 -0
  234. package/dist/web-ui/_app/immutable/chunks/D82RulSH.js +1 -0
  235. package/dist/web-ui/_app/immutable/chunks/D9QNBZM2.js +2 -0
  236. package/dist/web-ui/_app/immutable/chunks/DAMmvwn4.js +1 -0
  237. package/dist/web-ui/_app/immutable/chunks/DAh4Wfku.js +1 -0
  238. package/dist/web-ui/_app/immutable/chunks/DAx07bEQ.js +1 -0
  239. package/dist/web-ui/_app/immutable/chunks/DBYE9jOd.js +1 -0
  240. package/dist/web-ui/_app/immutable/chunks/DOno4cA2.js +1 -0
  241. package/dist/web-ui/_app/immutable/chunks/DQA8NZIH.js +2 -0
  242. package/dist/web-ui/_app/immutable/chunks/DRfPm2bo.js +1 -0
  243. package/dist/web-ui/_app/immutable/chunks/DhQhksaB.js +1 -0
  244. package/dist/web-ui/_app/immutable/chunks/DjG7s6hm.js +1 -0
  245. package/dist/web-ui/_app/immutable/chunks/DjcCz-PU.js +2 -0
  246. package/dist/web-ui/_app/immutable/chunks/DkltRNvh.js +1 -0
  247. package/dist/web-ui/_app/immutable/chunks/DlaTnPKL.js +1 -0
  248. package/dist/web-ui/_app/immutable/chunks/DvA-KON-.js +1 -0
  249. package/dist/web-ui/_app/immutable/chunks/DxCk-KHc.js +1 -0
  250. package/dist/web-ui/_app/immutable/chunks/DzO4hlg9.js +1 -0
  251. package/dist/web-ui/_app/immutable/chunks/Eo4gF7ih.js +1 -0
  252. package/dist/web-ui/_app/immutable/chunks/ExCq5swK.js +1 -0
  253. package/dist/web-ui/_app/immutable/chunks/T3zZGv51.js +1 -0
  254. package/dist/web-ui/_app/immutable/chunks/XZumBYeP.js +1 -0
  255. package/dist/web-ui/_app/immutable/chunks/_ySfNjkF.js +1 -0
  256. package/dist/web-ui/_app/immutable/chunks/iEtR5cV6.js +1 -0
  257. package/dist/web-ui/_app/immutable/chunks/k_Qegko0.js +1 -0
  258. package/dist/web-ui/_app/immutable/chunks/pE6cYWlS.js +1 -0
  259. package/dist/web-ui/_app/immutable/entry/app.Cgu6uKeS.js +2 -0
  260. package/dist/web-ui/_app/immutable/entry/start.9XifnLoB.js +1 -0
  261. package/dist/web-ui/_app/immutable/nodes/0.DISwcKSK.js +1 -0
  262. package/dist/web-ui/_app/immutable/nodes/1.Cx2Ufqp1.js +1 -0
  263. package/dist/web-ui/_app/immutable/nodes/10.C3z8ijXL.js +1 -0
  264. package/dist/web-ui/_app/immutable/nodes/11.DZdIjZmM.js +1 -0
  265. package/dist/web-ui/_app/immutable/nodes/12.FsIGfAOa.js +1 -0
  266. package/dist/web-ui/_app/immutable/nodes/13.DZoFwagf.js +1 -0
  267. package/dist/web-ui/_app/immutable/nodes/14.DaIzDKbQ.js +1 -0
  268. package/dist/web-ui/_app/immutable/nodes/15.BYyt4XWF.js +2 -0
  269. package/dist/web-ui/_app/immutable/nodes/16.CQkSqpOe.js +1 -0
  270. package/dist/web-ui/_app/immutable/nodes/2.Bkf_j2UJ.js +1 -0
  271. package/dist/web-ui/_app/immutable/nodes/3.kaMCurJG.js +1 -0
  272. package/dist/web-ui/_app/immutable/nodes/4.BSsFPTHG.js +2 -0
  273. package/dist/web-ui/_app/immutable/nodes/5.CpPlcCEZ.js +1 -0
  274. package/dist/web-ui/_app/immutable/nodes/6.BN4FqQmY.js +1 -0
  275. package/dist/web-ui/_app/immutable/nodes/7.9kBYIZik.js +1 -0
  276. package/dist/web-ui/_app/immutable/nodes/8.BuijtZ6B.js +1 -0
  277. package/dist/web-ui/_app/immutable/nodes/9.C-Weba8R.js +1 -0
  278. package/dist/web-ui/_app/version.json +1 -0
  279. package/dist/web-ui/index.html +39 -0
  280. package/dist/web-ui/robots.txt +3 -0
  281. package/package.json +4 -2
  282. package/plugin/.claude-plugin/marketplace.json +1 -1
  283. package/plugin/.claude-plugin/plugin.json +1 -1
  284. package/plugin/plugins/kspec/skills/task-work/SKILL.md +25 -2
  285. package/templates/agents-sections/06-ralph-loop.md +64 -11
  286. package/templates/skills/task-work/SKILL.md +25 -2
  287. package/dist/ralph/cli-renderer.d.ts +0 -27
  288. package/dist/ralph/cli-renderer.d.ts.map +0 -1
  289. package/dist/ralph/cli-renderer.js +0 -250
  290. package/dist/ralph/cli-renderer.js.map +0 -1
  291. package/dist/ralph/events.d.ts +0 -65
  292. package/dist/ralph/events.d.ts.map +0 -1
  293. package/dist/ralph/events.js +0 -600
  294. package/dist/ralph/events.js.map +0 -1
  295. package/dist/ralph/index.d.ts +0 -11
  296. package/dist/ralph/index.d.ts.map +0 -1
  297. package/dist/ralph/index.js +0 -16
  298. package/dist/ralph/index.js.map +0 -1
  299. package/dist/ralph/loop-errors.d.ts +0 -83
  300. package/dist/ralph/loop-errors.d.ts.map +0 -1
  301. package/dist/ralph/loop-errors.js +0 -150
  302. package/dist/ralph/loop-errors.js.map +0 -1
  303. package/dist/ralph/subagent.d.ts +0 -127
  304. package/dist/ralph/subagent.d.ts.map +0 -1
  305. package/dist/ralph/subagent.js +0 -268
  306. package/dist/ralph/subagent.js.map +0 -1
  307. package/dist/ralph/wrap-up.d.ts +0 -127
  308. package/dist/ralph/wrap-up.d.ts.map +0 -1
  309. package/dist/ralph/wrap-up.js +0 -271
  310. package/dist/ralph/wrap-up.js.map +0 -1
@@ -0,0 +1 @@
1
+ import{f as y,a as l,c as x,p as Ce,t as ve}from"../chunks/DvA-KON-.js";import{o as vt}from"../chunks/CwELQvbx.js";import{J as nr,bf as or,bp as ir,U as lr,x as dr,bq as cr,o as rt,al as ur,aq as fr,aN as Ot,a2 as Et,a1 as Rt,W as hr,bm as vr,h as w,g as d,e as O,b as ae,bl as mr,p as R,c as I,i as J,r as P,a as V,f as g,d as mt,A as gr,u as gt,s as L,n as he,t as se,$ as pr,Q as _r}from"../chunks/D3vxvonu.js";import{p as _,r as F,b as ce,i as U,s as X,l as me}from"../chunks/BysXJlZb.js";import{l as Q,m as re,k as G,q as Ae,t as br,Z as xr,p as zt,B as ct,a2 as $r,e as Fe,a3 as yr,a4 as Lt,a5 as Sr,g as wr,i as Pr,a6 as Cr,y as Ir,f as kr,o as Mr,h as Ue,a7 as Ar,a8 as Nr,c as Ft,a9 as Or,aa as Er,ab as Rr,ac as Vr}from"../chunks/DQA8NZIH.js";import{f as Tr,o as Dr,s as ne,e as Gr,d as Br}from"../chunks/D9QNBZM2.js";import{c as H}from"../chunks/DAx07bEQ.js";import{e as zr,T as Lr,a as Fr,b as Kr}from"../chunks/DRfPm2bo.js";import{a as Ie,c as jr,n as ut,k as Vt,d as ke,e as A,m as ye}from"../chunks/CPPfDSei.js";import{B as Hr}from"../chunks/BkOJ8DkV.js";import{a as Ur,b as Wr,c as qr,d as Jr,S as Yr}from"../chunks/C33JaVbg.js";import{s as Kt,a as jt}from"../chunks/pE6cYWlS.js";import{p as Ht}from"../chunks/D82RulSH.js";import{g as Xr}from"../chunks/B8a0xDxR.js";import{b as $e}from"../chunks/D7LTux4W.js";import{i as Qr,g as Zr,r as ea,b as ta}from"../chunks/BP352uRn.js";import{s as ra,S as aa,a as sa,b as na,c as oa}from"../chunks/DzO4hlg9.js";import{F as ia}from"../chunks/CHDZZ7OG.js";import"../chunks/BUZujXJ2.js";import{I as ge,s as pe}from"../chunks/BHtYorjv.js";import{S as la,R as da}from"../chunks/C076q4JN.js";import{i as ca}from"../chunks/BVA9Exy-.js";import{C as pt,l as Re,L as ua,k as fa,E as ha,H as va,g as ma,A as ga,M as pa,N as _a,O as ba,f as xa,h as $a,Q as ya,R as Sa,U as wa,w as We,s as Pa,n as ft,V as Ut,u as Ca}from"../chunks/BMuCqDX8.js";import{D as Ia,b as ka,c as Ma,d as Aa,a as Na}from"../chunks/DkltRNvh.js";import{I as Oa}from"../chunks/B5wTVqxm.js";import{a as Ea}from"../chunks/BXkNecpt.js";import{C as Ra,a as Va}from"../chunks/XZumBYeP.js";const Ta=[];function Da(o,e=!1,t=!1){return et(o,new Map,"",Ta,null,t)}function et(o,e,t,a,r=null,n=!1){if(typeof o=="object"&&o!==null){var s=e.get(o);if(s!==void 0)return s;if(o instanceof Map)return new Map(o);if(o instanceof Set)return new Set(o);if(nr(o)){var i=Array(o.length);e.set(o,i),r!==null&&e.set(r,i);for(var c=0;c<o.length;c+=1){var u=o[c];c in o&&(i[c]=et(u,e,t,a,null,n))}return i}if(or(o)===ir){i={},e.set(o,i),r!==null&&e.set(r,i);for(var m in o)i[m]=et(o[m],e,t,a,null,n);return i}if(o instanceof Date)return structuredClone(o);if(typeof o.toJSON=="function"&&!n)return et(o.toJSON(),e,t,a,o)}if(o instanceof EventTarget)return o;try{return structuredClone(o)}catch{return o}}function Ga(o,e){let t=null,a=rt;var r;if(rt){t=hr;for(var n=ur(document.head);n!==null&&(n.nodeType!==fr||n.data!==o);)n=Ot(n);if(n===null)Et(!1);else{var s=Ot(n);n.remove(),Rt(s)}}rt||(r=document.head.appendChild(lr()));try{dr(()=>e(r),cr)}finally{a&&(Et(!0),Rt(t))}}const Ba="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='107'%20height='128'%20viewBox='0%200%20107%20128'%3e%3ctitle%3esvelte-logo%3c/title%3e%3cpath%20d='M94.157%2022.819c-10.4-14.885-30.94-19.297-45.792-9.835L22.282%2029.608A29.92%2029.92%200%200%200%208.764%2049.65a31.5%2031.5%200%200%200%203.108%2020.231%2030%2030%200%200%200-4.477%2011.183%2031.9%2031.9%200%200%200%205.448%2024.116c10.402%2014.887%2030.942%2019.297%2045.791%209.835l26.083-16.624A29.92%2029.92%200%200%200%2098.235%2078.35a31.53%2031.53%200%200%200-3.105-20.232%2030%2030%200%200%200%204.474-11.182%2031.88%2031.88%200%200%200-5.447-24.116'%20style='fill:%23ff3e00'/%3e%3cpath%20d='M45.817%20106.582a20.72%2020.72%200%200%201-22.237-8.243%2019.17%2019.17%200%200%201-3.277-14.503%2018%2018%200%200%201%20.624-2.435l.49-1.498%201.337.981a33.6%2033.6%200%200%200%2010.203%205.098l.97.294-.09.968a5.85%205.85%200%200%200%201.052%203.878%206.24%206.24%200%200%200%206.695%202.485%205.8%205.8%200%200%200%201.603-.704L69.27%2076.28a5.43%205.43%200%200%200%202.45-3.631%205.8%205.8%200%200%200-.987-4.371%206.24%206.24%200%200%200-6.698-2.487%205.7%205.7%200%200%200-1.6.704l-9.953%206.345a19%2019%200%200%201-5.296%202.326%2020.72%2020.72%200%200%201-22.237-8.243%2019.17%2019.17%200%200%201-3.277-14.502%2017.99%2017.99%200%200%201%208.13-12.052l26.081-16.623a19%2019%200%200%201%205.3-2.329%2020.72%2020.72%200%200%201%2022.237%208.243%2019.17%2019.17%200%200%201%203.277%2014.503%2018%2018%200%200%201-.624%202.435l-.49%201.498-1.337-.98a33.6%2033.6%200%200%200-10.203-5.1l-.97-.294.09-.968a5.86%205.86%200%200%200-1.052-3.878%206.24%206.24%200%200%200-6.696-2.485%205.8%205.8%200%200%200-1.602.704L37.73%2051.72a5.42%205.42%200%200%200-2.449%203.63%205.79%205.79%200%200%200%20.986%204.372%206.24%206.24%200%200%200%206.698%202.486%205.8%205.8%200%200%200%201.602-.704l9.952-6.342a19%2019%200%200%201%205.295-2.328%2020.72%2020.72%200%200%201%2022.237%208.242%2019.17%2019.17%200%200%201%203.277%2014.503%2018%2018%200%200%201-8.13%2012.053l-26.081%2016.622a19%2019%200%200%201-5.3%202.328'%20style='fill:%23fff'/%3e%3c/svg%3e";class za{#e;#t;constructor(e,t){this.#e=e,this.#t=Tr(t)}get current(){return this.#t(),this.#e()}}const La=/\(.+\)/,Fa=new Set(["all","print","screen","and","or","not","only"]);class Ka extends za{constructor(e,t){let a=La.test(e)||e.split(/[\s,]+/).some(n=>Fa.has(n.trim()))?e:`(${e})`;const r=window.matchMedia(a);super(()=>r.matches,n=>Dr(r,"change",n))}}const ja=768;class Ha extends Ka{constructor(e=ja){super(`max-width: ${e-1}px`)}}const Ua="sidebar:state",Wa=3600*24*7,qa="16rem",Ja="18rem",Ya="3rem",Xa="b";class Qa{props;#e=w(()=>this.props.open());get open(){return d(this.#e)}set open(e){O(this.#e,e)}#t=ae(!1);get openMobile(){return d(this.#t)}set openMobile(e){O(this.#t,e,!0)}setOpen;#r;#a=w(()=>this.open?"expanded":"collapsed");get state(){return d(this.#a)}set state(e){O(this.#a,e)}constructor(e){this.setOpen=e.setOpen,this.#r=new Ha,this.props=e}get isMobile(){return this.#r.current}handleShortcutKeydown=e=>{e.key===Xa&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),this.toggle())};setOpenMobile=e=>{this.openMobile=e};toggle=()=>this.#r.current?this.openMobile=!this.openMobile:this.setOpen(!this.open)}const Wt="scn-sidebar";function Za(o){return vr(Symbol.for(Wt),new Qa(o))}function _t(){return mr(Symbol.for(Wt))}var es=y("<div><!></div>");function ts(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","class","children"]);var r=es();Q(r,s=>({"data-slot":"sidebar-content","data-sidebar":"content",class:s,...a}),[()=>re("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e.class)]);var n=I(r);G(n,()=>e.children??J),P(r),ce(r,s=>t(s),()=>t()),l(o,r),V()}var rs=y("<div><!></div>");function as(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","class","children"]);var r=rs();Q(r,s=>({"data-slot":"sidebar-footer","data-sidebar":"footer",class:s,...a}),[()=>re("flex flex-col gap-2 p-2",e.class)]);var n=I(r);G(n,()=>e.children??J),P(r),ce(r,s=>t(s),()=>t()),l(o,r),V()}var ss=y("<div><!></div>");function at(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","class","children"]);var r=ss();Q(r,s=>({"data-slot":"sidebar-group-content","data-sidebar":"group-content",class:s,...a}),[()=>re("w-full text-sm",e.class)]);var n=I(r);G(n,()=>e.children??J),P(r),ce(r,s=>t(s),()=>t()),l(o,r),V()}var ns=y("<div><!></div>");function st(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","children","child","class"]);const r=w(()=>({class:re("text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",e.class),"data-slot":"sidebar-group-label","data-sidebar":"group-label",...a}));var n=x(),s=g(n);{var i=u=>{var m=x(),f=g(m);G(f,()=>e.child,()=>({props:d(r)})),l(u,m)},c=u=>{var m=ns();Q(m,()=>({...d(r)}));var f=I(m);G(f,()=>e.children??J),P(m),ce(m,b=>t(b),()=>t()),l(u,m)};U(s,u=>{e.child?u(i):u(c,!1)})}l(o,n),V()}var os=y("<div><!></div>");function nt(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","class","children"]);var r=os();Q(r,s=>({"data-slot":"sidebar-group","data-sidebar":"group",class:s,...a}),[()=>re("relative flex w-full min-w-0 flex-col p-2",e.class)]);var n=I(r);G(n,()=>e.children??J),P(r),ce(r,s=>t(s),()=>t()),l(o,r),V()}var is=y("<div><!></div>");function ls(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","class","children"]);var r=is();Q(r,s=>({"data-slot":"sidebar-header","data-sidebar":"header",class:s,...a}),[()=>re("flex flex-col gap-2 p-2",e.class)]);var n=I(r);G(n,()=>e.children??J),P(r),ce(r,s=>t(s),()=>t()),l(o,r),V()}var ds=y("<main><!></main>");function cs(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","class","children"]);var r=ds();Q(r,s=>({"data-slot":"sidebar-inset",class:s,...a}),[()=>re("bg-background relative flex min-w-0 w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2",e.class)]);var n=I(r);G(n,()=>e.children??J),P(r),ce(r,s=>t(s),()=>t()),l(o,r),V()}var us=y("<div><!></div>");function fs(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","class","children"]);var r=us();Q(r,s=>({"data-slot":"sidebar-menu-badge","data-sidebar":"menu-badge",class:s,...a}),[()=>re("text-sidebar-foreground pointer-events-none absolute end-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none","peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",e.class)]);var n=I(r);G(n,()=>e.children??J),P(r),ce(r,s=>t(s),()=>t()),l(o,r),V()}function hs(o,e){let t=o.nextElementSibling;for(;t;){if(t.matches(e))return t;t=t.nextElementSibling}}function vs(o,e){let t=o.previousElementSibling;for(;t;){if(t.matches(e))return t;t=t.previousElementSibling}}function qt(o){if(typeof CSS<"u"&&typeof CSS.escape=="function")return CSS.escape(o);const e=o.length;let t=-1,a,r="";const n=o.charCodeAt(0);if(e===1&&n===45)return"\\"+o;for(;++t<e;){if(a=o.charCodeAt(t),a===0){r+="�";continue}if(a>=1&&a<=31||a===127||t===0&&a>=48&&a<=57||t===1&&a>=48&&a<=57&&n===45){r+="\\"+a.toString(16)+" ";continue}if(a>=128||a===45||a===95||a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122){r+=o.charAt(t);continue}r+="\\"+o.charAt(t)}return r}const Ve="data-value",fe=jr({component:"command",parts:["root","list","input","separator","loading","empty","group","group-items","group-heading","item","viewport","input-label"]}),Le=fe.selector("group"),ot=fe.selector("group-items"),Tt=fe.selector("group-heading"),Jt=fe.selector("item"),it=`${fe.selector("item")}:not([aria-disabled="true"])`,Te=new pt("Command.Root"),ms=new pt("Command.List"),qe=new pt("Command.Group"),Dt={search:"",value:"",filtered:{count:0,items:new Map,groups:new Set}};class bt{static create(e){return Te.set(new bt(e))}opts;attachment;#e=!1;#t=!0;sortAfterTick=!1;sortAndFilterAfterTick=!1;allItems=new Set;allGroups=new Map;allIds=new Map;#r=ae(0);get key(){return d(this.#r)}set key(e){O(this.#r,e,!0)}#a=ae(null);get viewportNode(){return d(this.#a)}set viewportNode(e){O(this.#a,e,!0)}#n=ae(null);get inputNode(){return d(this.#n)}set inputNode(e){O(this.#n,e,!0)}#l=ae(null);get labelNode(){return d(this.#l)}set labelNode(e){O(this.#l,e,!0)}#o=ae(Dt);get commandState(){return d(this.#o)}set commandState(e){O(this.#o,e)}#i=ae(mt(Dt));get _commandState(){return d(this.#i)}set _commandState(e){O(this.#i,e,!0)}#P(){return Da(this._commandState)}#h(){this.#e||(this.#e=!0,Re(()=>{this.#e=!1;const e=this.#P();!Object.is(this.commandState,e)&&(this.commandState=e,this.opts.onStateChange?.current?.(e))}))}setState(e,t,a){Object.is(this._commandState[e],t)||(this._commandState[e]=t,e==="search"?(this.#g(),this.#v()):e==="value"&&(a||this.#_()),this.#h())}constructor(e){this.opts=e,this.attachment=Ie(this.opts.ref);const t={...this._commandState,value:this.opts.value.current??""};this._commandState=t,this.commandState=t,this.onkeydown=this.onkeydown.bind(this)}#p(e,t){const a=this.opts.filter.current??Xt;return e?a(e,this._commandState.search,t):0}#v(){if(!this._commandState.search||this.opts.shouldFilter.current===!1){!this._commandState.value||!this.#t?this.#m():this.#t&&this._commandState.value&&this.#C();return}const e=this._commandState.filtered.items,t=[];for(const s of this._commandState.filtered.groups){const i=this.allGroups.get(s);let c=0;if(!i){t.push([s,c]);continue}for(const u of i){const m=e.get(u);c=Math.max(m??0,c)}t.push([s,c])}const a=this.viewportNode,r=this.getValidItems().sort((s,i)=>{const c=s.getAttribute("data-value"),u=i.getAttribute("data-value"),m=e.get(c)??0;return(e.get(u)??0)-m});for(const s of r){const i=s.closest(ot);if(i){const c=s.parentElement===i?s:s.closest(`${ot} > *`);c&&i.appendChild(c)}else{const c=s.parentElement===a?s:s.closest(`${ot} > *`);c&&a?.appendChild(c)}}const n=t.sort((s,i)=>i[1]-s[1]);for(const s of n){const i=a?.querySelector(`${Le}[${Ve}="${qt(s[0])}"]`);i?.parentElement?.appendChild(i)}this.#m()}setValue(e,t){e!==this.opts.value.current&&e===""&&Re(()=>{this.key++}),this.setState("value",e,t),this.opts.value.current=e}#m(){Re(()=>{const t=this.getValidItems().find(r=>r.getAttribute("aria-disabled")!=="true")?.getAttribute(Ve),a=this.#t&&this.opts.disableInitialScroll.current;this.setValue(t??"",a),this.#t=!1})}#C(){Re(()=>{this.opts.disableInitialScroll.current||this.#_(),this.#t=!1})}#g(){if(!this._commandState.search||this.opts.shouldFilter.current===!1){this._commandState.filtered.count=this.allItems.size;return}this._commandState.filtered.groups=new Set;let e=0;for(const t of this.allItems){const a=this.allIds.get(t)?.value??"",r=this.allIds.get(t)?.keywords??[],n=this.#p(a,r);this._commandState.filtered.items.set(t,n),n>0&&e++}for(const[t,a]of this.allGroups)for(const r of a){const n=this._commandState.filtered.items.get(r);if(n&&n>0){this._commandState.filtered.groups.add(t);break}}this._commandState.filtered.count=e}getValidItems(){const e=this.opts.ref.current;return e?Array.from(e.querySelectorAll(it)).filter(a=>!!a):[]}getVisibleItems(){const e=this.opts.ref.current;return e?Array.from(e.querySelectorAll(Jt)).filter(a=>!!a):[]}get itemsGrid(){if(!this.isGrid)return[];const e=this.opts.columns.current??1,t=this.getVisibleItems(),a=[[]];let r=t[0]?.getAttribute("data-group"),n=0,s=0;for(let i=0;i<t.length;i++){const c=t[i],u=c?.getAttribute("data-group");r!==u?(r=u,n=1,s++,a.push([{index:i,firstRowOfGroup:!0,ref:c}])):(n++,n>e&&(s++,n=1,a.push([])),a[s]?.push({index:i,firstRowOfGroup:a[s]?.[0]?.firstRowOfGroup??i===0,ref:c}))}return a}#s(){const e=this.opts.ref.current;if(!e)return;const t=e.querySelector(`${it}[data-selected]`);if(t)return t}#_(){Re(()=>{const e=this.#s();if(!e)return;const t=e.parentElement?.parentElement;if(t){if(this.isGrid){const a=this.#I(e);if(e.scrollIntoView({block:"nearest"}),a){e?.closest(Le)?.querySelector(Tt)?.scrollIntoView({block:"nearest"});return}}else{const a=ua(t);if(a&&a.dataset?.value===e.dataset?.value){e?.closest(Le)?.querySelector(Tt)?.scrollIntoView({block:"nearest"});return}}e.scrollIntoView({block:"nearest"})}})}#I(e){const t=this.itemsGrid;if(t.length===0)return!1;for(let a=0;a<t.length;a++){const r=t[a];if(r!==void 0)for(let n=0;n<r.length;n++){const s=r[n];if(!(s===void 0||s.ref!==e))return s.firstRowOfGroup}}return!1}updateSelectedToIndex(e){const t=this.getValidItems()[e];t&&this.setValue(t.getAttribute(Ve)??"")}updateSelectedByItem(e){const t=this.#s(),a=this.getValidItems(),r=a.findIndex(s=>s===t);let n=a[r+e];this.opts.loop.current&&(n=r+e<0?a[a.length-1]:r+e===a.length?a[0]:a[r+e]),n&&this.setValue(n.getAttribute(Ve)??"")}updateSelectedByGroup(e){let a=this.#s()?.closest(Le),r;for(;a&&!r;)a=e>0?hs(a,Le):vs(a,Le),r=a?.querySelector(it);r?this.setValue(r.getAttribute(Ve)??""):this.updateSelectedByItem(e)}registerValue(e,t){return e&&e===this.allIds.get(e)?.value||this.allIds.set(e,{value:e,keywords:t}),this._commandState.filtered.items.set(e,this.#p(e,t)),this.sortAfterTick||(this.sortAfterTick=!0,Re(()=>{this.#v(),this.sortAfterTick=!1})),()=>{this.allIds.delete(e)}}registerItem(e,t){return this.allItems.add(e),t&&(this.allGroups.has(t)?this.allGroups.get(t).add(e):this.allGroups.set(t,new Set([e]))),this.sortAndFilterAfterTick||(this.sortAndFilterAfterTick=!0,Re(()=>{this.#g(),this.#v(),this.sortAndFilterAfterTick=!1})),this.#h(),()=>{const a=this.#s();this.allItems.delete(e),this.commandState.filtered.items.delete(e),this.#g(),a?.getAttribute("id")===e&&this.#m(),this.#h()}}registerGroup(e){return this.allGroups.has(e)||this.allGroups.set(e,new Set),()=>{this.allIds.delete(e),this.allGroups.delete(e)}}get isGrid(){return this.opts.columns.current!==null}#b(){return this.updateSelectedToIndex(this.getValidItems().length-1)}#d(e){e.preventDefault(),e.metaKey?this.#b():e.altKey?this.updateSelectedByGroup(1):this.updateSelectedByItem(1)}#x(e){this.opts.columns.current!==null&&(e.preventDefault(),e.metaKey?this.updateSelectedByGroup(1):this.updateSelectedByItem(this.#k(e)))}#$(e,t){if(t.length===0)return null;for(let a=0;a<t.length;a++){const r=t[a];if(r!==void 0)for(let n=0;n<r.length;n++){const s=r[n];if(!(s===void 0||s.ref!==e))return{columnIndex:n,rowIndex:a}}}return null}#k(e){const t=this.itemsGrid,a=this.#s();if(!a)return 0;const r=this.#$(a,t);if(!r)return 0;let n=null;const s=e.altKey?1:0;if(e.altKey&&r.rowIndex===t.length-2&&!this.opts.loop.current)n=this.#c({start:t.length-1,end:t.length,expectedColumnIndex:r.columnIndex,grid:t});else if(r.rowIndex===t.length-1){if(!this.opts.loop.current)return 0;n=this.#c({start:0+s,end:r.rowIndex,expectedColumnIndex:r.columnIndex,grid:t})}else n=this.#c({start:r.rowIndex+1+s,end:t.length,expectedColumnIndex:r.columnIndex,grid:t}),n===null&&this.opts.loop.current&&(n=this.#c({start:0,end:r.rowIndex,expectedColumnIndex:r.columnIndex,grid:t}));return this.#y(a,n)}#c({start:e,end:t,grid:a,expectedColumnIndex:r}){let n=null;for(let s=e;s<t;s++){const i=a[s];if(n=i[r]?.ref??null,n!==null&&Ze(n)){n=null;continue}if(n===null)for(let c=i.length-1;c>=0;c--){const u=i[i.length-1];if(!(u===void 0||Ze(u.ref))){n=u.ref;break}}break}return n}#y(e,t){if(t===null)return 0;const a=this.getValidItems(),r=a.findIndex(s=>s===e);return a.findIndex(s=>s===t)-r}#S(e){this.opts.columns.current!==null&&(e.preventDefault(),e.metaKey?this.updateSelectedByGroup(-1):this.updateSelectedByItem(this.#M(e)))}#M(e){const t=this.itemsGrid,a=this.#s();if(a===void 0)return 0;const r=this.#$(a,t);if(r===null)return 0;let n=null;const s=e.altKey?1:0;if(e.altKey&&r.rowIndex===1&&this.opts.loop.current===!1)n=this.#u({start:0,end:0,expectedColumnIndex:r.columnIndex,grid:t});else if(r.rowIndex===0){if(this.opts.loop.current===!1)return 0;n=this.#u({start:t.length-1-s,end:r.rowIndex+1,expectedColumnIndex:r.columnIndex,grid:t})}else n=this.#u({start:r.rowIndex-1-s,end:0,expectedColumnIndex:r.columnIndex,grid:t}),n===null&&this.opts.loop.current&&(n=this.#u({start:t.length-1,end:r.rowIndex+1,expectedColumnIndex:r.columnIndex,grid:t}));return this.#y(a,n)}#u({start:e,end:t,grid:a,expectedColumnIndex:r}){let n=null;for(let s=e;s>=t;s--){const i=a[s];if(i!==void 0){if(n=i[r]?.ref??null,n!==null&&Ze(n)){n=null;continue}if(n===null)for(let c=i.length-1;c>=0;c--){const u=i[i.length-1];if(!(u===void 0||Ze(u.ref))){n=u.ref;break}}break}}return n}#f(e){e.preventDefault(),e.metaKey?this.updateSelectedToIndex(0):e.altKey?this.updateSelectedByGroup(-1):this.updateSelectedByItem(-1)}onkeydown(e){const t=this.opts.vimBindings.current&&e.ctrlKey;switch(e.key){case wa:case Sa:{t&&(this.isGrid?this.#x(e):this.#d(e));break}case ya:{t&&this.isGrid&&this.#d(e);break}case $a:this.isGrid?this.#x(e):this.#d(e);break;case xa:if(!this.isGrid)break;this.#d(e);break;case ba:case _a:{t&&(this.isGrid?this.#S(e):this.#f(e));break}case pa:{t&&this.isGrid&&this.#f(e);break}case ga:this.isGrid?this.#S(e):this.#f(e);break;case ma:if(!this.isGrid)break;this.#f(e);break;case va:e.preventDefault(),this.updateSelectedToIndex(0);break;case ha:e.preventDefault(),this.#b();break;case fa:if(!e.isComposing&&e.keyCode!==229){e.preventDefault();const a=this.#s();a&&a?.click()}}}#w=w(()=>({id:this.opts.id.current,role:"application",[fe.root]:"",tabindex:-1,onkeydown:this.onkeydown,...this.attachment}));get props(){return d(this.#w)}set props(e){O(this.#w,e)}}function Ze(o){return o.getAttribute("aria-disabled")==="true"}class xt{static create(e){return new xt(e,Te.get())}opts;root;attachment;#e=w(()=>this.root._commandState.filtered.count===0&&this.#t===!1||this.opts.forceMount.current);get shouldRender(){return d(this.#e)}set shouldRender(e){O(this.#e,e)}#t=!0;constructor(e,t){this.opts=e,this.root=t,this.attachment=Ie(this.opts.ref),gr(()=>{this.#t=!1})}#r=w(()=>({id:this.opts.id.current,role:"presentation",[fe.empty]:"",...this.attachment}));get props(){return d(this.#r)}set props(e){O(this.#r,e)}}class $t{static create(e){return qe.set(new $t(e,Te.get()))}opts;root;attachment;#e=w(()=>this.opts.forceMount.current||this.root.opts.shouldFilter.current===!1||!this.root.commandState.search?!0:this.root._commandState.filtered.groups.has(this.trueValue));get shouldRender(){return d(this.#e)}set shouldRender(e){O(this.#e,e)}#t=ae(null);get headingNode(){return d(this.#t)}set headingNode(e){O(this.#t,e,!0)}#r=ae("");get trueValue(){return d(this.#r)}set trueValue(e){O(this.#r,e,!0)}constructor(e,t){this.opts=e,this.root=t,this.attachment=Ie(this.opts.ref),this.trueValue=e.value.current??e.id.current,We(()=>this.trueValue,()=>this.root.registerGroup(this.trueValue)),gt(()=>this.opts.value.current?(this.trueValue=this.opts.value.current,this.root.registerValue(this.opts.value.current)):this.headingNode&&this.headingNode.textContent?(this.trueValue=this.headingNode.textContent.trim().toLowerCase(),this.root.registerValue(this.trueValue)):(this.trueValue=`-----${this.opts.id.current}`,this.root.registerValue(this.trueValue)))}#a=w(()=>({id:this.opts.id.current,role:"presentation",hidden:this.shouldRender?void 0:!0,"data-value":this.trueValue,[fe.group]:"",...this.attachment}));get props(){return d(this.#a)}set props(e){O(this.#a,e)}}class yt{static create(e){return new yt(e,qe.get())}opts;group;attachment;constructor(e,t){this.opts=e,this.group=t,this.attachment=Ie(this.opts.ref,a=>this.group.headingNode=a)}#e=w(()=>({id:this.opts.id.current,[fe["group-heading"]]:"",...this.attachment}));get props(){return d(this.#e)}set props(e){O(this.#e,e)}}class St{static create(e){return new St(e,qe.get())}opts;group;attachment;constructor(e,t){this.opts=e,this.group=t,this.attachment=Ie(this.opts.ref)}#e=w(()=>({id:this.opts.id.current,role:"group",[fe["group-items"]]:"","aria-labelledby":this.group.headingNode?.id??void 0,...this.attachment}));get props(){return d(this.#e)}set props(e){O(this.#e,e)}}class wt{static create(e){return new wt(e,Te.get())}opts;root;attachment;#e=w(()=>{const e=this.root.viewportNode?.querySelector(`${Jt}[${Ve}="${qt(this.root.opts.value.current)}"]`);if(e!=null)return e.getAttribute("id")??void 0});constructor(e,t){this.opts=e,this.root=t,this.attachment=Ie(this.opts.ref,a=>this.root.inputNode=a),We(()=>this.opts.ref.current,()=>{const a=this.opts.ref.current;a&&this.opts.autofocus.current&&Pa(10,()=>a.focus())}),We(()=>this.opts.value.current,()=>{this.root.commandState.search!==this.opts.value.current&&this.root.setState("search",this.opts.value.current)})}#t=w(()=>({id:this.opts.id.current,type:"text",[fe.input]:"",autocomplete:"off",autocorrect:"off",spellcheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":ut(!0),"aria-controls":this.root.viewportNode?.id??void 0,"aria-labelledby":this.root.labelNode?.id??void 0,"aria-activedescendant":d(this.#e),...this.attachment}));get props(){return d(this.#t)}set props(e){O(this.#t,e)}}class Pt{static create(e){const t=qe.getOr(null);return new Pt({...e,group:t},Te.get())}opts;root;attachment;#e=null;#t=w(()=>this.opts.forceMount.current||this.#e?.opts.forceMount.current===!0);#r=w(()=>{if(this.opts.ref.current,d(this.#t)||this.root.opts.shouldFilter.current===!1||!this.root.commandState.search)return!0;const e=this.root.commandState.filtered.items.get(this.trueValue);return e===void 0?!1:e>0});get shouldRender(){return d(this.#r)}set shouldRender(e){O(this.#r,e)}#a=w(()=>this.root.opts.value.current===this.trueValue&&this.trueValue!=="");get isSelected(){return d(this.#a)}set isSelected(e){O(this.#a,e)}#n=ae("");get trueValue(){return d(this.#n)}set trueValue(e){O(this.#n,e,!0)}constructor(e,t){this.opts=e,this.root=t,this.#e=qe.getOr(null),this.trueValue=e.value.current,this.attachment=Ie(this.opts.ref),We([()=>this.trueValue,()=>this.#e?.trueValue,()=>this.opts.forceMount.current],()=>{if(!(this.opts.forceMount.current||!this.trueValue))return this.root.registerItem(this.trueValue,this.#e?.trueValue)}),We([()=>this.opts.value.current,()=>this.opts.ref.current],()=>{this.opts.value.current?this.trueValue=this.opts.value.current:this.opts.ref.current?.textContent&&(this.trueValue=this.opts.ref.current.textContent.trim()),this.trueValue&&(this.root.registerValue(this.trueValue,e.keywords.current.map(a=>a.trim())),this.opts.ref.current?.setAttribute(Ve,this.trueValue))}),this.onclick=this.onclick.bind(this),this.onpointermove=this.onpointermove.bind(this)}#l(){this.opts.disabled.current||(this.#o(),this.opts.onSelect?.current())}#o(){this.opts.disabled.current||this.root.setValue(this.trueValue,!0)}onpointermove(e){this.opts.disabled.current||this.root.opts.disablePointerSelection.current||this.#o()}onclick(e){this.opts.disabled.current||this.#l()}#i=w(()=>({id:this.opts.id.current,"aria-disabled":ut(this.opts.disabled.current),"aria-selected":ut(this.isSelected),"data-disabled":Vt(this.opts.disabled.current),"data-selected":Vt(this.isSelected),"data-value":this.trueValue,"data-group":this.#e?.trueValue,[fe.item]:"",role:"option",onpointermove:this.onpointermove,onclick:this.onclick,...this.attachment}));get props(){return d(this.#i)}set props(e){O(this.#i,e)}}class Ct{static create(e){return new Ct(e)}opts;attachment;constructor(e){this.opts=e,this.attachment=Ie(this.opts.ref)}#e=w(()=>({id:this.opts.id.current,role:"progressbar","aria-valuenow":this.opts.progress.current,"aria-valuemin":0,"aria-valuemax":100,"aria-label":"Loading...",[fe.loading]:"",...this.attachment}));get props(){return d(this.#e)}set props(e){O(this.#e,e)}}class It{static create(e){return ms.set(new It(e,Te.get()))}opts;root;attachment;constructor(e,t){this.opts=e,this.root=t,this.attachment=Ie(this.opts.ref)}#e=w(()=>({id:this.opts.id.current,role:"listbox","aria-label":this.opts.ariaLabel.current,[fe.list]:"",...this.attachment}));get props(){return d(this.#e)}set props(e){O(this.#e,e)}}class kt{static create(e){return new kt(e,Te.get())}opts;root;attachment;constructor(e,t){this.opts=e,this.root=t,this.attachment=Ie(this.opts.ref,a=>this.root.labelNode=a)}#e=w(()=>({id:this.opts.id.current,[fe["input-label"]]:"",for:this.opts.for?.current,style:ra,...this.attachment}));get props(){return d(this.#e)}set props(e){O(this.#e,e)}}var gs=y("<label><!></label>");function ps(o,e){const t=Ce();R(e,!0);let a=_(e,"id",19,()=>ke(t)),r=_(e,"ref",15,null),n=F(e,["$$slots","$$events","$$legacy","id","ref","children"]);const s=kt.create({id:A(()=>a()),ref:A(()=>r(),m=>r(m))}),i=w(()=>ye(n,s.props));var c=gs();Q(c,()=>({...d(i)}));var u=I(c);G(u,()=>e.children??J),P(c),l(o,c),V()}var _s=y("<!> <!>",1),bs=y("<div><!> <!></div>");function xs(o,e){const t=Ce();R(e,!0);const a=D=>{ps(D,{children:(W,Y)=>{he();var j=ve();se(()=>ne(j,b())),l(W,j)},$$slots:{default:!0}})};let r=_(e,"id",19,()=>ke(t)),n=_(e,"ref",15,null),s=_(e,"value",15,""),i=_(e,"onValueChange",3,ft),c=_(e,"onStateChange",3,ft),u=_(e,"loop",3,!1),m=_(e,"shouldFilter",3,!0),f=_(e,"filter",3,Xt),b=_(e,"label",3,""),v=_(e,"vimBindings",3,!0),h=_(e,"disablePointerSelection",3,!1),p=_(e,"disableInitialScroll",3,!1),$=_(e,"columns",3,null),S=F(e,["$$slots","$$events","$$legacy","id","ref","value","onValueChange","onStateChange","loop","shouldFilter","filter","label","vimBindings","disablePointerSelection","disableInitialScroll","columns","children","child"]);const C=bt.create({id:A(()=>r()),ref:A(()=>n(),D=>n(D)),filter:A(()=>f()),shouldFilter:A(()=>m()),loop:A(()=>u()),value:A(()=>s(),D=>{s()!==D&&(s(D),i()(D))}),vimBindings:A(()=>v()),disablePointerSelection:A(()=>h()),disableInitialScroll:A(()=>p()),onStateChange:A(()=>c()),columns:A(()=>$())}),k=D=>C.updateSelectedToIndex(D),K=D=>C.updateSelectedByGroup(D),B=D=>C.updateSelectedByItem(D),N=()=>C.getValidItems(),M=w(()=>ye(S,C.props));var T={updateSelectedToIndex:k,updateSelectedByGroup:K,updateSelectedByItem:B,getValidItems:N},z=x(),E=g(z);{var ee=D=>{var W=_s(),Y=g(W);a(Y);var j=L(Y,2);G(j,()=>e.child,()=>({props:d(M)})),l(D,W)},Z=D=>{var W=bs();Q(W,()=>({...d(M)}));var Y=I(W);a(Y);var j=L(Y,2);G(j,()=>e.children??J),P(W),l(D,W)};U(E,D=>{e.child?D(ee):D(Z,!1)})}return l(o,z),V(T)}var $s=y("<div><!></div>");function ys(o,e){const t=Ce();R(e,!0);let a=_(e,"id",19,()=>ke(t)),r=_(e,"ref",15,null),n=_(e,"forceMount",3,!1),s=F(e,["$$slots","$$events","$$legacy","id","ref","children","child","forceMount"]);const i=xt.create({id:A(()=>a()),ref:A(()=>r(),b=>r(b)),forceMount:A(()=>n())}),c=w(()=>ye(i.props,s));var u=x(),m=g(u);{var f=b=>{var v=x(),h=g(v);{var p=S=>{var C=x(),k=g(C);G(k,()=>e.child,()=>({props:d(c)})),l(S,C)},$=S=>{var C=$s();Q(C,()=>({...d(c)}));var k=I(C);G(k,()=>e.children??J),P(C),l(S,C)};U(h,S=>{e.child?S(p):S($,!1)})}l(b,v)};U(m,b=>{i.shouldRender&&b(f)})}l(o,u),V()}var Ss=y("<div><!></div>");function ws(o,e){const t=Ce();R(e,!0);let a=_(e,"id",19,()=>ke(t)),r=_(e,"ref",15,null),n=_(e,"value",3,""),s=_(e,"forceMount",3,!1),i=F(e,["$$slots","$$events","$$legacy","id","ref","value","forceMount","children","child"]);const c=$t.create({id:A(()=>a()),ref:A(()=>r(),h=>r(h)),forceMount:A(()=>s()),value:A(()=>n())}),u=w(()=>ye(i,c.props));var m=x(),f=g(m);{var b=h=>{var p=x(),$=g(p);G($,()=>e.child,()=>({props:d(u)})),l(h,p)},v=h=>{var p=Ss();Q(p,()=>({...d(u)}));var $=I(p);G($,()=>e.children??J),P(p),l(h,p)};U(f,h=>{e.child?h(b):h(v,!1)})}l(o,m),V()}var Ps=y("<div><!></div>");function Cs(o,e){const t=Ce();R(e,!0);let a=_(e,"id",19,()=>ke(t)),r=_(e,"ref",15,null),n=F(e,["$$slots","$$events","$$legacy","id","ref","children","child"]);const s=yt.create({id:A(()=>a()),ref:A(()=>r(),b=>r(b))}),i=w(()=>ye(n,s.props));var c=x(),u=g(c);{var m=b=>{var v=x(),h=g(v);G(h,()=>e.child,()=>({props:d(i)})),l(b,v)},f=b=>{var v=Ps();Q(v,()=>({...d(i)}));var h=I(v);G(h,()=>e.children??J),P(v),l(b,v)};U(u,b=>{e.child?b(m):b(f,!1)})}l(o,c),V()}var Is=y("<div><!></div>"),ks=y('<div style="display: contents;"><!></div>');function Ms(o,e){const t=Ce();R(e,!0);let a=_(e,"id",19,()=>ke(t)),r=_(e,"ref",15,null),n=F(e,["$$slots","$$events","$$legacy","id","ref","children","child"]);const s=St.create({id:A(()=>a()),ref:A(()=>r(),b=>r(b))}),i=w(()=>ye(n,s.props));var c=ks(),u=I(c);{var m=b=>{var v=x(),h=g(v);G(h,()=>e.child,()=>({props:d(i)})),l(b,v)},f=b=>{var v=Is();Q(v,()=>({...d(i)}));var h=I(v);G(h,()=>e.children??J),P(v),l(b,v)};U(u,b=>{e.child?b(m):b(f,!1)})}P(c),l(o,c),V()}var As=y("<input/>");function Ns(o,e){const t=Ce();R(e,!0);let a=_(e,"value",15,""),r=_(e,"autofocus",3,!1),n=_(e,"id",19,()=>ke(t)),s=_(e,"ref",15,null),i=F(e,["$$slots","$$events","$$legacy","value","autofocus","id","ref","child"]);const c=wt.create({id:A(()=>n()),ref:A(()=>s(),h=>s(h)),value:A(()=>a(),h=>{a(h)}),autofocus:A(()=>r()??!1)}),u=w(()=>ye(i,c.props));var m=x(),f=g(m);{var b=h=>{var p=x(),$=g(p);G($,()=>e.child,()=>({props:d(u)})),l(h,p)},v=h=>{var p=As();Q(p,()=>({...d(u)}),void 0,void 0,void 0,void 0,!0),Ea(p,a),l(h,p)};U(f,h=>{e.child?h(b):h(v,!1)})}l(o,m),V()}var Os=y("<div><!></div>"),Es=y('<div style="display: contents;" data-item-wrapper=""><!></div>');function Rs(o,e){const t=Ce();R(e,!0);let a=_(e,"id",19,()=>ke(t)),r=_(e,"ref",15,null),n=_(e,"value",3,""),s=_(e,"disabled",3,!1),i=_(e,"onSelect",3,ft),c=_(e,"forceMount",3,!1),u=_(e,"keywords",19,()=>[]),m=F(e,["$$slots","$$events","$$legacy","id","ref","value","disabled","children","child","onSelect","forceMount","keywords"]);const f=Pt.create({id:A(()=>a()),ref:A(()=>r(),p=>r(p)),value:A(()=>n()),disabled:A(()=>s()),onSelect:A(()=>i()),forceMount:A(()=>c()),keywords:A(()=>u())}),b=w(()=>ye(m,f.props));var v=x(),h=g(v);Ut(h,()=>f.root.key,p=>{var $=Es(),S=I($);{var C=k=>{var K=x(),B=g(K);{var N=T=>{var z=x(),E=g(z);G(E,()=>e.child,()=>({props:d(b)})),l(T,z)},M=T=>{var z=Os();Q(z,()=>({...d(b)}));var E=I(z);G(E,()=>e.children??J),P(z),l(T,z)};U(B,T=>{e.child?T(N):T(M,!1)})}l(k,K)};U(S,k=>{f.shouldRender&&k(C)})}P($),se(()=>Ae($,"data-value",f.trueValue)),l(p,$)}),l(o,v),V()}var Vs=y("<div><!></div>");function Ts(o,e){const t=Ce();R(e,!0);let a=_(e,"id",19,()=>ke(t)),r=_(e,"ref",15,null),n=F(e,["$$slots","$$events","$$legacy","id","ref","child","children","aria-label"]);const s=It.create({id:A(()=>a()),ref:A(()=>r(),m=>r(m)),ariaLabel:A(()=>e["aria-label"]??"Suggestions...")}),i=w(()=>ye(n,s.props));var c=x(),u=g(c);Ut(u,()=>s.root._commandState.search==="",m=>{var f=x(),b=g(f);{var v=p=>{var $=x(),S=g($);G(S,()=>e.child,()=>({props:d(i)})),l(p,$)},h=p=>{var $=Vs();Q($,()=>({...d(i)}));var S=I($);G(S,()=>e.children??J),P($),l(p,$)};U(b,p=>{e.child?p(v):p(h,!1)})}l(m,f)}),l(o,c),V()}var Ds=y("<div><!></div>");function Gs(o,e){const t=Ce();R(e,!0);let a=_(e,"progress",3,0),r=_(e,"id",19,()=>ke(t)),n=_(e,"ref",15,null),s=F(e,["$$slots","$$events","$$legacy","progress","id","ref","children","child"]);const i=Ct.create({id:A(()=>r()),ref:A(()=>n(),v=>n(v)),progress:A(()=>a())}),c=w(()=>ye(s,i.props));var u=x(),m=g(u);{var f=v=>{var h=x(),p=g(h);G(p,()=>e.child,()=>({props:d(c)})),l(v,h)},b=v=>{var h=Ds();Q(h,()=>({...d(c)}));var p=I(h);G(p,()=>e.children??J),P(h),l(v,h)};U(m,v=>{e.child?v(f):v(b,!1)})}l(o,u),V()}const Gt=1,Bs=.9,zs=.8,Ls=.17,lt=.1,dt=.999,Fs=.9999,Ks=.99,js=/[\\/_+.#"@[({&]/,Hs=/[\\/_+.#"@[({&]/g,Us=/[\s-]/,Yt=/[\s-]/g;function ht(o,e,t,a,r,n,s){if(n===e.length)return r===o.length?Gt:Ks;const i=`${r},${n}`;if(s[i]!==void 0)return s[i];const c=a.charAt(n);let u=t.indexOf(c,r),m=0,f,b,v,h;for(;u>=0;)f=ht(o,e,t,a,u+1,n+1,s),f>m&&(u===r?f*=Gt:js.test(o.charAt(u-1))?(f*=zs,v=o.slice(r,u-1).match(Hs),v&&r>0&&(f*=dt**v.length)):Us.test(o.charAt(u-1))?(f*=Bs,h=o.slice(r,u-1).match(Yt),h&&r>0&&(f*=dt**h.length)):(f*=Ls,r>0&&(f*=dt**(u-r))),o.charAt(u)!==e.charAt(n)&&(f*=Fs)),(f<lt&&t.charAt(u-1)===a.charAt(n+1)||a.charAt(n+1)===a.charAt(n)&&t.charAt(u-1)!==a.charAt(n))&&(b=ht(o,e,t,a,u+1,n+2,s),b*lt>f&&(f=b*lt)),f>m&&(m=f),u=t.indexOf(c,u+1);return s[i]=m,m}function Bt(o){return o.toLowerCase().replace(Yt," ")}function Xt(o,e,t){return o=t&&t.length>0?`${`${o} ${t?.join(" ")}`}`:o,ht(o,e,Bt(o),Bt(e),0,0,{})}function Ws(o,e){R(e,!0);let t=_(e,"delayDuration",3,700),a=_(e,"disableCloseOnTriggerClick",3,!1),r=_(e,"disableHoverableContent",3,!1),n=_(e,"disabled",3,!1),s=_(e,"ignoreNonKeyboardFocus",3,!1),i=_(e,"skipDelayDuration",3,300);zr.create({delayDuration:A(()=>t()),disableCloseOnTriggerClick:A(()=>a()),disableHoverableContent:A(()=>r()),disabled:A(()=>n()),ignoreNonKeyboardFocus:A(()=>s()),skipDelayDuration:A(()=>i())});var c=x(),u=g(c);G(u,()=>e.children??J),l(o,c),V()}function qs(o,e){let t=F(e,["$$slots","$$events","$$legacy"]);var a=x(),r=g(a);H(r,()=>Ws,(n,s)=>{s(n,X(()=>t))}),l(o,a)}const Js=br({base:"peer/menu-button ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_var(--sidebar-border)] hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});var Ys=y("<button><!></button>"),Xs=y("<!> <!>",1);function Qs(o,e){R(e,!0);const t=(h,p)=>{let $=()=>p?.().props;const S=w(()=>ye(d(u),$()));var C=x(),k=g(C);{var K=N=>{var M=x(),T=g(M);G(T,()=>e.child,()=>({props:d(S)})),l(N,M)},B=N=>{var M=Ys();Q(M,()=>({...d(S)}));var T=I(M);G(T,()=>e.children??J),P(M),ce(M,z=>a(z),()=>a()),l(N,M)};U(k,N=>{e.child?N(K):N(B,!1)})}l(h,C)};let a=_(e,"ref",15,null),r=_(e,"variant",3,"default"),n=_(e,"size",3,"default"),s=_(e,"isActive",3,!1),i=F(e,["$$slots","$$events","$$legacy","ref","class","children","child","variant","size","isActive","tooltipContent","tooltipContentProps"]);const c=_t(),u=w(()=>({class:re(Js({variant:r(),size:n()}),e.class),"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":n(),"data-active":s(),...i}));var m=x(),f=g(m);{var b=h=>{t(h,()=>({}))},v=h=>{var p=x(),$=g(p);H($,()=>Kr,(S,C)=>{C(S,{children:(k,K)=>{var B=Xs(),N=g(B);{const T=(z,E)=>{let ee=()=>E?.().props;t(z,()=>({props:ee()}))};H(N,()=>Lr,(z,E)=>{E(z,{child:T,$$slots:{child:!0}})})}var M=L(N,2);{let T=w(()=>c.state!=="collapsed"||c.isMobile);H(M,()=>Fr,(z,E)=>{E(z,X({side:"right",align:"center",get hidden(){return d(T)}},()=>e.tooltipContentProps,{children:(ee,Z)=>{var D=x(),W=g(D);{var Y=q=>{var le=ve();se(()=>ne(le,e.tooltipContent)),l(q,le)},j=q=>{var le=x(),ue=g(le);{var oe=de=>{var ie=x(),Se=g(ie);G(Se,()=>e.tooltipContent),l(de,ie)};U(ue,de=>{e.tooltipContent&&de(oe)},!0)}l(q,le)};U(W,q=>{typeof e.tooltipContent=="string"?q(Y):q(j,!1)})}l(ee,D)},$$slots:{default:!0}}))})}l(k,B)},$$slots:{default:!0}})}),l(h,p)};U(f,h=>{e.tooltipContent?h(v,!1):h(b)})}l(o,m),V()}var Zs=y("<li><!></li>");function en(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","class","children"]);var r=Zs();Q(r,s=>({"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",class:s,...a}),[()=>re("group/menu-item relative",e.class)]);var n=I(r);G(n,()=>e.children??J),P(r),ce(r,s=>t(s),()=>t()),l(o,r),V()}var tn=y("<ul><!></ul>");function rn(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","class","children"]);var r=tn();Q(r,s=>({"data-slot":"sidebar-menu","data-sidebar":"menu",class:s,...a}),[()=>re("flex w-full min-w-0 flex-col gap-1",e.class)]);var n=I(r);G(n,()=>e.children??J),P(r),ce(r,s=>t(s),()=>t()),l(o,r),V()}var an=y("<div><!></div>");function sn(o,e){R(e,!0);let t=_(e,"ref",15,null),a=_(e,"open",15,!0),r=_(e,"onOpenChange",3,()=>{}),n=F(e,["$$slots","$$events","$$legacy","ref","open","onOpenChange","class","style","children"]);const s=Za({open:()=>a(),setOpen:u=>{a(u),r()(u),document.cookie=`${Ua}=${a()}; path=/; max-age=${Wa}`}});var i=x();Gr("keydown",pr,function(...u){s.handleShortcutKeydown?.apply(this,u)});var c=g(i);H(c,()=>qs,(u,m)=>{m(u,{delayDuration:0,children:(f,b)=>{var v=an();Q(v,p=>({"data-slot":"sidebar-wrapper",style:`--sidebar-width: ${qa}; --sidebar-width-icon: ${Ya}; ${e.style??""}`,class:p,...n}),[()=>re("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",e.class)]);var h=I(v);G(h,()=>e.children??J),P(v),ce(v,p=>t(p),()=>t()),l(f,v)},$$slots:{default:!0}})}),l(o,i),V()}var nn=y("<button><!></button>");function on(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","class","children"]);const r=_t();var n=nn();Q(n,i=>({"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onclick:r.toggle,title:"Toggle Sidebar",class:i,...a}),[()=>re("hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-end-4 group-data-[side=right]:start-0 after:absolute after:inset-y-0 after:start-[calc(1/2*100%-1px)] after:w-[2px] sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:start-full","[[data-side=left][data-collapsible=offcanvas]_&]:-end-2","[[data-side=right][data-collapsible=offcanvas]_&]:-start-2",e.class)]);var s=I(n);G(s,()=>e.children??J),P(n),ce(n,i=>t(i),()=>t()),l(o,n),V()}var ln=y("<div><!></div>"),dn=y("<!> <!>",1),cn=y('<!> <div class="flex h-full w-full flex-col"><!></div>',1),un=y('<div class="text-sidebar-foreground group peer hidden md:block" data-slot="sidebar"><div data-slot="sidebar-gap"></div> <div><div data-sidebar="sidebar" data-slot="sidebar-inner" class="bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm"><!></div></div></div>');function fn(o,e){R(e,!0);let t=_(e,"ref",15,null),a=_(e,"side",3,"left"),r=_(e,"variant",3,"sidebar"),n=_(e,"collapsible",3,"offcanvas"),s=F(e,["$$slots","$$events","$$legacy","ref","side","variant","collapsible","class","children"]);const i=_t();var c=x(),u=g(c);{var m=b=>{var v=ln();Q(v,p=>({class:p,...s}),[()=>re("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",e.class)]);var h=I(v);G(h,()=>e.children??J),P(v),ce(v,p=>t(p),()=>t()),l(b,v)},f=b=>{var v=x(),h=g(v);{var p=S=>{var C=x(),k=g(C),K=()=>i.openMobile,B=N=>i.setOpenMobile(N);H(k,()=>Yr,(N,M)=>{M(N,X({get open(){return K()},set open(T){B(T)}},()=>s,{children:(T,z)=>{var E=x(),ee=g(E);H(ee,()=>Ur,(Z,D)=>{D(Z,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",class:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",get style(){return`--sidebar-width: ${Ja};`},get side(){return a()},children:(W,Y)=>{var j=cn(),q=g(j);H(q,()=>Wr,(oe,de)=>{de(oe,{class:"sr-only",children:(ie,Se)=>{var te=dn(),be=g(te);H(be,()=>qr,(Pe,Ne)=>{Ne(Pe,{children:(xe,De)=>{he();var Oe=ve("Sidebar");l(xe,Oe)},$$slots:{default:!0}})});var we=L(be,2);H(we,()=>Jr,(Pe,Ne)=>{Ne(Pe,{children:(xe,De)=>{he();var Oe=ve("Displays the mobile sidebar.");l(xe,Oe)},$$slots:{default:!0}})}),l(ie,te)},$$slots:{default:!0}})});var le=L(q,2),ue=I(le);G(ue,()=>e.children??J),P(le),l(W,j)},$$slots:{default:!0}})}),l(T,E)},$$slots:{default:!0}}))}),l(S,C)},$=S=>{var C=un(),k=I(C),K=L(k,2);Q(K,M=>({"data-slot":"sidebar-container",class:M,...s}),[()=>re("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",a()==="left"?"start-0 group-data-[collapsible=offcanvas]:start-[calc(var(--sidebar-width)*-1)]":"end-0 group-data-[collapsible=offcanvas]:end-[calc(var(--sidebar-width)*-1)]",r()==="floating"||r()==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-e group-data-[side=right]:border-s",e.class)]);var B=I(K),N=I(B);G(N,()=>e.children??J),P(B),P(K),P(C),ce(C,M=>t(M),()=>t()),se(M=>{Ae(C,"data-state",i.state),Ae(C,"data-collapsible",i.state==="collapsed"?n():""),Ae(C,"data-variant",r()),Ae(C,"data-side",a()),zt(k,1,M)},[()=>xr(re("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180",r()==="floating"||r()==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)"))]),l(S,C)};U(h,S=>{i.isMobile?S(p):S($,!1)},!0)}l(b,v)};U(u,b=>{n()==="none"?b(m):b(f,!1)})}l(o,c),V()}var hn=y('<span data-testid="connection-status"><!></span>');function vn(o,e){R(e,!0);let t=w(Zr),a=w(Qr),r=w(()=>d(a)?"destructive":d(t)==="connected"?"default":d(t)==="connecting"||d(t)==="reconnecting"?"secondary":"outline"),n=w(()=>d(a)?"Connection Lost":d(t)==="connected"?"Connected":d(t)==="reconnecting"?"Reconnecting...":d(t)==="connecting"?"Connecting...":"Disconnected");var s=hn(),i=I(s);ct(i,{get variant(){return d(r)},children:(c,u)=>{he();var m=ve();se(()=>ne(m,d(n))),l(c,m)},$$slots:{default:!0}}),P(s),l(o,s),V()}var mn=y('<div class="flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground" data-testid="loading-indicator"><span class="animate-pulse">Loading projects...</span></div>'),gn=y('<div class="flex items-center gap-2 truncate"><!> <span class="truncate"> </span></div>'),pn=y('<div class="flex flex-col"><span> </span> <span class="text-xs text-muted-foreground truncate"> </span></div>'),_n=y("<!> <!>",1),bn=y('<div class="w-full" data-testid="project-selector-container"><!></div>');function xn(o,e){R(e,!0);function t(f){const b=f.split("/").filter(Boolean);return b[b.length-1]||f}function a(f){f&&(yr(f),ea(f))}let r=w(()=>Lt()??void 0),n=w(Sr),s=w($r);var i=bn(),c=I(i);{var u=f=>{var b=mn();l(f,b)},m=f=>{aa(f,{type:"single",get value(){return d(r)},onValueChange:a,children:(b,v)=>{var h=_n(),p=g(h);sa(p,{class:"w-full","data-testid":"project-selector","aria-label":"Select project",children:(S,C)=>{var k=gn(),K=I(k);ia(K,{class:"size-4 shrink-0"});var B=L(K,2),N=I(B,!0);P(B),P(k),se(M=>ne(N,M),[()=>d(r)?t(d(r)):"Select project"]),l(S,k)},$$slots:{default:!0}});var $=L(p,2);na($,{children:(S,C)=>{var k=x(),K=g(k);Fe(K,17,()=>d(n),B=>B.path,(B,N)=>{{let M=w(()=>t(d(N).path));oa(B,{get value(){return d(N).path},get label(){return d(M)},children:(T,z)=>{var E=pn(),ee=I(E),Z=I(ee,!0);P(ee);var D=L(ee,2),W=I(D,!0);P(D),P(E),se(Y=>{ne(Z,Y),Ae(D,"title",d(N).path),ne(W,d(N).path)},[()=>t(d(N).path)]),l(T,E)},$$slots:{default:!0}})}}),l(S,k)},$$slots:{default:!0}}),l(b,h)},$$slots:{default:!0}})};U(c,f=>{d(s)?f(u):f(m,!1)})}P(i),l(o,i),V()}function $n(o,e){const t=me(e,["children","$$slots","$$events","$$legacy"]);const a=[["path",{d:"M12 7v14"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"}]];ge(o,X({name:"book-open"},()=>t,{get iconNode(){return a},children:(r,n)=>{var s=x(),i=g(s);pe(i,e,"default",{}),l(r,s)},$$slots:{default:!0}}))}function yn(o,e){const t=me(e,["children","$$slots","$$events","$$legacy"]);const a=[["path",{d:"M12 8V4H8"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2"}],["path",{d:"M2 14h2"}],["path",{d:"M20 14h2"}],["path",{d:"M15 13v2"}],["path",{d:"M9 13v2"}]];ge(o,X({name:"bot"},()=>t,{get iconNode(){return a},children:(r,n)=>{var s=x(),i=g(s);pe(i,e,"default",{}),l(r,s)},$$slots:{default:!0}}))}function Sn(o,e){const t=me(e,["children","$$slots","$$events","$$legacy"]);const a=[["path",{d:"m6 9 6 6 6-6"}]];ge(o,X({name:"chevron-down"},()=>t,{get iconNode(){return a},children:(r,n)=>{var s=x(),i=g(s);pe(i,e,"default",{}),l(r,s)},$$slots:{default:!0}}))}function wn(o,e){const t=me(e,["children","$$slots","$$events","$$legacy"]);const a=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"}],["circle",{cx:"12",cy:"12",r:"3"}]];ge(o,X({name:"eye"},()=>t,{get iconNode(){return a},children:(r,n)=>{var s=x(),i=g(s);pe(i,e,"default",{}),l(r,s)},$$slots:{default:!0}}))}function Qt(o,e){const t=me(e,["children","$$slots","$$events","$$legacy"]);const a=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5"}],["path",{d:"M10 9H8"}],["path",{d:"M16 13H8"}],["path",{d:"M16 17H8"}]];ge(o,X({name:"file-text"},()=>t,{get iconNode(){return a},children:(r,n)=>{var s=x(),i=g(s);pe(i,e,"default",{}),l(r,s)},$$slots:{default:!0}}))}function Pn(o,e){const t=me(e,["children","$$slots","$$events","$$legacy"]);const a=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z"}]];ge(o,X({name:"funnel"},()=>t,{get iconNode(){return a},children:(r,n)=>{var s=x(),i=g(s);pe(i,e,"default",{}),l(r,s)},$$slots:{default:!0}}))}function Zt(o,e){const t=me(e,["children","$$slots","$$events","$$legacy"]);const a=[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"}]];ge(o,X({name:"inbox"},()=>t,{get iconNode(){return a},children:(r,n)=>{var s=x(),i=g(s);pe(i,e,"default",{}),l(r,s)},$$slots:{default:!0}}))}function er(o,e){const t=me(e,["children","$$slots","$$events","$$legacy"]);const a=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1"}]];ge(o,X({name:"layout-dashboard"},()=>t,{get iconNode(){return a},children:(r,n)=>{var s=x(),i=g(s);pe(i,e,"default",{}),l(r,s)},$$slots:{default:!0}}))}function tr(o,e){const t=me(e,["children","$$slots","$$events","$$legacy"]);const a=[["path",{d:"M13 5h8"}],["path",{d:"M13 12h8"}],["path",{d:"M13 19h8"}],["path",{d:"m3 17 2 2 4-4"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1"}]];ge(o,X({name:"list-todo"},()=>t,{get iconNode(){return a},children:(r,n)=>{var s=x(),i=g(s);pe(i,e,"default",{}),l(r,s)},$$slots:{default:!0}}))}function Cn(o,e){const t=me(e,["children","$$slots","$$events","$$legacy"]);const a=[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z"}],["path",{d:"M15 5.764v15"}],["path",{d:"M9 3.236v15"}]];ge(o,X({name:"map"},()=>t,{get iconNode(){return a},children:(r,n)=>{var s=x(),i=g(s);pe(i,e,"default",{}),l(r,s)},$$slots:{default:!0}}))}function In(o,e){const t=me(e,["children","$$slots","$$events","$$legacy"]);const a=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"}],["circle",{cx:"12",cy:"12",r:"3"}]];ge(o,X({name:"settings"},()=>t,{get iconNode(){return a},children:(r,n)=>{var s=x(),i=g(s);pe(i,e,"default",{}),l(r,s)},$$slots:{default:!0}}))}function kn(o,e){const t=me(e,["children","$$slots","$$events","$$legacy"]);const a=[["path",{d:"M12 19h8"}],["path",{d:"m4 17 6-6-6-6"}]];ge(o,X({name:"terminal"},()=>t,{get iconNode(){return a},children:(r,n)=>{var s=x(),i=g(s);pe(i,e,"default",{}),l(r,s)},$$slots:{default:!0}}))}function Mn(o,e){const t=me(e,["children","$$slots","$$events","$$legacy"]);const a=[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2"}]];ge(o,X({name:"workflow"},()=>t,{get iconNode(){return a},children:(r,n)=>{var s=x(),i=g(s);pe(i,e,"default",{}),l(r,s)},$$slots:{default:!0}}))}var An=y('<div class="flex items-center gap-2 px-4 py-2"><span class="text-lg font-bold">kspec</span></div>'),Nn=y('<div class="px-2"><!></div>'),On=y("<!> <!>",1),En=y('<div class="px-4 py-2 text-sm italic text-muted-foreground" data-testid="session-focus"> </div>'),Rn=y("<!> <!>",1),Vn=y('<button class="flex w-full items-center justify-between text-xs font-medium uppercase tracking-wider"> <!></button>'),Tn=y("<a><!> <span> </span></a>"),Dn=y("<!> <!>",1),Gn=y("<!> <!>",1),Bn=y("<!> <!> <!>",1),zn=y('<div class="flex items-center gap-2 px-4 py-2"><!></div>'),Ln=y("<!> <!> <!> <!>",1);function Fn(o,e){R(e,!0);const t=()=>jt(Ht,"$page",a),[a,r]=Kt(),n=[{label:"Work",items:[{path:"/",label:"Dashboard",icon:er},{path:"/tasks",label:"Tasks",icon:tr,badgeKey:"pendingReview"},{path:"/agents",label:"Agents",icon:yn},{path:"/sessions",label:"Sessions",icon:kn}]},{label:"Specs",items:[{path:"/specs",label:"Specs",icon:Qt},{path:"/plans",label:"Plans",icon:Cn},{path:"/validate",label:"Validate",icon:la}]},{label:"Capture",items:[{path:"/inbox",label:"Inbox",icon:Zt,badgeKey:"inbox"},{path:"/observations",label:"Observations",icon:wn,badgeKey:"observations"},{path:"/triage",label:"Triage",icon:Pn}]},{label:"Config",items:[{path:"/workflows",label:"Workflows",icon:Mn},{path:"/settings",label:"Settings",icon:In}]}];let s=ae(null),i=ae(0),c=ae(0),u=ae(0),m=w(Ar),f=ae(mt({}));function b(S){O(f,{...d(f),[S]:!d(f)[S]},!0)}function v(S){const C=t().url.pathname,k=`${$e}${S}`;return S==="/"?C===k||C==="/":C===k||C.startsWith(`${k}/`)}function h(S){if(!S)return 0;switch(S){case"inbox":return d(i);case"observations":return d(c);case"pendingReview":return d(u);default:return 0}}let p;vt(()=>()=>{p&&clearInterval(p)}),gt(()=>{wr(),Pr()&&($(),p||(p=setInterval($,3e4)))});async function $(){try{const[S,C,k,K]=await Promise.all([Cr(),Ir({resolved:!1}),kr({limit:0}),Mr({status:"pending_review",limit:0})]);O(s,S,!0),O(c,C.total,!0),O(i,k.total,!0),O(u,K.total,!0)}catch(S){console.error("Failed to load sidebar counts:",S)}}fn(o,{children:(S,C)=>{var k=Ln(),K=g(k);ls(K,{children:(T,z)=>{var E=An();l(T,E)},$$slots:{default:!0}});var B=L(K,2);ts(B,{children:(T,z)=>{var E=Bn(),ee=g(E);{var Z=j=>{nt(j,{children:(q,le)=>{var ue=On(),oe=g(ue);st(oe,{children:(ie,Se)=>{he();var te=ve("Project");l(ie,te)},$$slots:{default:!0}});var de=L(oe,2);at(de,{children:(ie,Se)=>{var te=Nn(),be=I(te);xn(be,{}),P(te),l(ie,te)},$$slots:{default:!0}}),l(q,ue)},$$slots:{default:!0}})};U(ee,j=>{d(m)&&j(Z)})}var D=L(ee,2);{var W=j=>{nt(j,{children:(q,le)=>{var ue=Rn(),oe=g(ue);st(oe,{children:(ie,Se)=>{he();var te=ve("Current Focus");l(ie,te)},$$slots:{default:!0}});var de=L(oe,2);at(de,{children:(ie,Se)=>{var te=En(),be=I(te,!0);P(te),se(()=>ne(be,d(s).focus)),l(ie,te)},$$slots:{default:!0}}),l(q,ue)},$$slots:{default:!0}})};U(D,j=>{d(s)?.focus&&j(W)})}var Y=L(D,2);Fe(Y,17,()=>n,Ue,(j,q)=>{nt(j,{children:(le,ue)=>{var oe=Gn(),de=g(oe);st(de,{children:(te,be)=>{var we=Vn();we.__click=()=>b(d(q).label);var Pe=I(we),Ne=L(Pe);{let xe=w(()=>d(f)[d(q).label]?"-rotate-90":"");Sn(Ne,{get class(){return`h-3 w-3 transition-transform ${d(xe)??""}`}})}P(we),se(xe=>{Ae(we,"data-testid",`nav-group-${xe??""}`),ne(Pe,`${d(q).label??""} `)},[()=>d(q).label.toLowerCase()]),l(te,we)},$$slots:{default:!0}});var ie=L(de,2);{var Se=te=>{at(te,{children:(be,we)=>{{let Pe=w(()=>d(q).label.toLowerCase());rn(be,{get"data-testid"(){return`sidebar-nav-${d(Pe)??""}`},children:(Ne,xe)=>{var De=x(),Oe=g(De);Fe(Oe,17,()=>d(q).items,Ue,(Ge,_e)=>{en(Ge,{children:(tt,Mt)=>{var Je=Dn(),Ye=g(Je);{const Me=(Be,Ee)=>{let He=()=>Ee?.().props;var ze=Tn();Q(ze,()=>({href:`${$e??""}${d(_e).path??""}`,...He()}));var Qe=I(ze);H(Qe,()=>d(_e).icon,(ar,sr)=>{sr(ar,{class:"h-4 w-4"})});var Nt=L(Qe,2),rr=I(Nt,!0);P(Nt),P(ze),se(()=>ne(rr,d(_e).label)),l(Be,ze)};let je=w(()=>v(d(_e).path)),Xe=w(()=>d(_e).label.toLowerCase());Qs(Ye,{get isActive(){return d(je)},get"data-testid"(){return`nav-link-${d(Xe)??""}`},child:Me,$$slots:{child:!0}})}var At=L(Ye,2);{var Ke=Me=>{fs(Me,{get"data-testid"(){return`badge-${d(_e).badgeKey??""}`},children:(je,Xe)=>{he();var Be=ve();se(Ee=>ne(Be,Ee),[()=>h(d(_e).badgeKey)]),l(je,Be)},$$slots:{default:!0}})};U(At,Me=>{d(_e).badgeKey&&h(d(_e).badgeKey)>0&&Me(Ke)})}l(tt,Je)},$$slots:{default:!0}})}),l(Ne,De)},$$slots:{default:!0}})}},$$slots:{default:!0}})};U(ie,te=>{d(f)[d(q).label]||te(Se)})}l(le,oe)},$$slots:{default:!0}})}),l(T,E)},$$slots:{default:!0}});var N=L(B,2);as(N,{children:(T,z)=>{var E=zn(),ee=I(E);vn(ee,{}),P(E),l(T,E)},$$slots:{default:!0}});var M=L(N,2);on(M,{}),l(S,k)},$$slots:{default:!0}}),V(),r()}Br(["click"]);var Kn=y("<a><!> <span> </span></a>"),jn=y('<nav class="fixed bottom-0 left-0 right-0 z-50 border-t bg-background md:hidden" aria-label="Mobile navigation"><div class="flex justify-around"></div></nav>');function Hn(o,e){R(e,!1);const t=()=>jt(Ht,"$page",a),[a,r]=Kt(),n=[{path:"/",label:"Home",icon:er},{path:"/tasks",label:"Tasks",icon:tr},{path:"/specs",label:"Specs",icon:Qt},{path:"/inbox",label:"Inbox",icon:Zt}];function s(u){const m=t().url.pathname,f=`${$e}${u}`;return u==="/"?m===f||m==="/":m===f||m.startsWith(`${f}/`)}ca();var i=jn(),c=I(i);Fe(c,5,()=>n,Ue,(u,m)=>{var f=Kn();let b;var v=I(f);d(m).icon(v,{class:"h-5 w-5"});var h=L(v,2),p=I(h,!0);P(h),P(f),se($=>{Ae(f,"href",`${$e??""}${d(m).path??""}`),b=zt(f,1,"flex flex-1 flex-col items-center justify-center gap-1 px-2 py-3 text-xs transition-colors hover:bg-accent",null,b,$),ne(p,d(m).label)},[()=>({"text-primary":s(d(m).path),"font-semibold":s(d(m).path)})]),l(u,f)}),P(c),P(i),l(o,i),V(),r()}function Un(o,e){R(e,!0);let t=_(e,"api",15,null),a=_(e,"ref",15,null),r=_(e,"value",15,""),n=F(e,["$$slots","$$events","$$legacy","api","ref","value","class"]);var s=x(),i=g(s);{let c=w(()=>re("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e.class));H(i,()=>xs,(u,m)=>{ce(m(u,X({"data-slot":"command",get class(){return d(c)}},()=>n,{get value(){return r()},set value(f){r(f)},get ref(){return a()},set ref(f){a(f)}})),f=>t(f),()=>t())})}l(o,s),V()}function Wn(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref"]);var r=x(),n=g(r);H(n,()=>Gs,(s,i)=>{i(s,X(()=>a,{get ref(){return t()},set ref(c){t(c)}}))}),l(o,r),V()}var qn=y("<!> <!>",1),Jn=y("<!> <!>",1);function Yn(o,e){R(e,!0);let t=_(e,"open",15,!1),a=_(e,"ref",15,null),r=_(e,"value",15,""),n=_(e,"title",3,"Command Palette"),s=_(e,"description",3,"Search for a command to run"),i=F(e,["$$slots","$$events","$$legacy","open","ref","value","title","description","portalProps","children"]);var c=x(),u=g(c);H(u,()=>Ia,(m,f)=>{f(m,X(()=>i,{get open(){return t()},set open(b){t(b)},children:(b,v)=>{var h=Jn(),p=g(h);H(p,()=>ka,(S,C)=>{C(S,{class:"sr-only",children:(k,K)=>{var B=qn(),N=g(B);H(N,()=>Ma,(T,z)=>{z(T,{children:(E,ee)=>{he();var Z=ve();se(()=>ne(Z,n())),l(E,Z)},$$slots:{default:!0}})});var M=L(N,2);H(M,()=>Aa,(T,z)=>{z(T,{children:(E,ee)=>{he();var Z=ve();se(()=>ne(Z,s())),l(E,Z)},$$slots:{default:!0}})}),l(k,B)},$$slots:{default:!0}})});var $=L(p,2);H($,()=>Na,(S,C)=>{C(S,{class:"overflow-hidden p-0",get portalProps(){return e.portalProps},children:(k,K)=>{Un(k,X({class:"**:data-[slot=command-input-wrapper]:h-12 [&_[data-command-group]]:px-2 [&_[data-command-group]:not([hidden])_~[data-command-group]]:pt-0 [&_[data-command-input-wrapper]_svg]:h-5 [&_[data-command-input-wrapper]_svg]:w-5 [&_[data-command-input]]:h-12 [&_[data-command-item]]:px-2 [&_[data-command-item]]:py-3 [&_[data-command-item]_svg]:h-5 [&_[data-command-item]_svg]:w-5"},()=>i,{get children(){return e.children},get value(){return r()},set value(B){r(B)},get ref(){return a()},set ref(B){a(B)}}))},$$slots:{default:!0}})}),l(b,h)},$$slots:{default:!0}}))}),l(o,c),V()}function Xn(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","class"]);var r=x(),n=g(r);{let s=w(()=>re("py-6 text-center text-sm",e.class));H(n,()=>ys,(i,c)=>{c(i,X({"data-slot":"command-empty",get class(){return d(s)}},()=>a,{get ref(){return t()},set ref(u){t(u)}}))})}l(o,r),V()}var Qn=y("<!> <!>",1);function Zn(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","class","children","heading","value"]);var r=x(),n=g(r);{let s=w(()=>re("text-foreground overflow-hidden p-1",e.class)),i=w(()=>e.value??e.heading??`----${Ca()}`);H(n,()=>ws,(c,u)=>{u(c,X({"data-slot":"command-group",get class(){return d(s)},get value(){return d(i)}},()=>a,{get ref(){return t()},set ref(m){t(m)},children:(m,f)=>{var b=Qn(),v=g(b);{var h=$=>{var S=x(),C=g(S);H(C,()=>Cs,(k,K)=>{K(k,{class:"text-muted-foreground px-2 py-1.5 text-xs font-medium",children:(B,N)=>{he();var M=ve();se(()=>ne(M,e.heading)),l(B,M)},$$slots:{default:!0}})}),l($,S)};U(v,$=>{e.heading&&$(h)})}var p=L(v,2);H(p,()=>Ms,($,S)=>{S($,{get children(){return e.children}})}),l(m,b)},$$slots:{default:!0}}))})}l(o,r),V()}function eo(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","class"]);var r=x(),n=g(r);{let s=w(()=>re("aria-selected:bg-accent aria-selected:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e.class));H(n,()=>Rs,(i,c)=>{c(i,X({"data-slot":"command-item",get class(){return d(s)}},()=>a,{get ref(){return t()},set ref(u){t(u)}}))})}l(o,r),V()}function to(o,e){R(e,!0);let t=F(e,["$$slots","$$events","$$legacy"]);const a=[["path",{d:"m21 21-4.34-4.34"}],["circle",{cx:"11",cy:"11",r:"8"}]];Oa(o,X({name:"search"},()=>t,{get iconNode(){return a},children:(r,n)=>{var s=x(),i=g(s);G(i,()=>e.children??J),l(r,s)},$$slots:{default:!0}})),V()}var ro=y('<div class="flex h-9 items-center gap-2 border-b ps-3 pe-8" data-slot="command-input-wrapper"><!> <!></div>');function ao(o,e){R(e,!0);let t=_(e,"ref",15,null),a=_(e,"value",15,""),r=F(e,["$$slots","$$events","$$legacy","ref","class","value"]);var n=ro(),s=I(n);to(s,{class:"size-4 shrink-0 opacity-50"});var i=L(s,2);{let c=w(()=>re("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",e.class));H(i,()=>Ns,(u,m)=>{m(u,X({"data-slot":"command-input",get class(){return d(c)}},()=>r,{get ref(){return t()},set ref(f){t(f)},get value(){return a()},set value(f){a(f)}}))})}P(n),l(o,n),V()}function so(o,e){R(e,!0);let t=_(e,"ref",15,null),a=F(e,["$$slots","$$events","$$legacy","ref","class"]);var r=x(),n=g(r);{let s=w(()=>re("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",e.class));H(n,()=>Ts,(i,c)=>{c(i,X({"data-slot":"command-list",get class(){return d(s)}},()=>a,{get ref(){return t()},set ref(u){t(u)}}))})}l(o,r),V()}var no=y('<span class="text-xs text-muted-foreground"> </span>'),oo=y('<div class="flex flex-col"><span class="font-medium"> </span> <!></div>'),io=y("<!> <!>",1);function lo(o,e){R(e,!0);const t=v=>{var h=io(),p=g(h);H(p,()=>ao,(S,C)=>{C(S,{"data-testid":"command-palette-input",placeholder:"Search tasks, items, inbox..."})});var $=L(p,2);H($,()=>so,(S,C)=>{C(S,{"data-testid":"command-palette-results",children:(k,K)=>{var B=x(),N=g(B);{var M=z=>{var E=x(),ee=g(E);H(ee,()=>Wn,(Z,D)=>{D(Z,{children:(W,Y)=>{he();var j=ve("Searching...");l(W,j)},$$slots:{default:!0}})}),l(z,E)},T=z=>{var E=x(),ee=g(E);{var Z=W=>{var Y=x(),j=g(Y);H(j,()=>Xn,(q,le)=>{le(q,{children:(ue,oe)=>{he();var de=ve("No results found.");l(ue,de)},$$slots:{default:!0}})}),l(W,Y)},D=W=>{var Y=x(),j=g(Y);Fe(j,17,()=>Object.entries(d(c)),Ue,(q,le)=>{var ue=w(()=>_r(d(le),2));let oe=()=>d(ue)[0],de=()=>d(ue)[1];var ie=x(),Se=g(ie);{let te=w(()=>m[oe()]||oe());H(Se,()=>Zn,(be,we)=>{we(be,{get"data-testid"(){return`search-group-${oe()??""}`},get heading(){return d(te)},children:(Pe,Ne)=>{var xe=x(),De=g(xe);Fe(De,17,de,Ue,(Oe,Ge)=>{var _e=x(),tt=g(_e);H(tt,()=>eo,(Mt,Je)=>{Je(Mt,{"data-testid":"search-result-item",onSelect:()=>u(d(Ge)),children:(Ye,At)=>{var Ke=oo(),Me=I(Ke),je=I(Me,!0);P(Me);var Xe=L(Me,2);{var Be=Ee=>{var He=no(),ze=I(He);P(He),se(Qe=>ne(ze,`Matched: ${Qe??""}`),[()=>d(Ge).matchedFields.join(", ")]),l(Ee,He)};U(Xe,Ee=>{d(Ge).matchedFields.length>0&&Ee(Be)})}P(Ke),se(()=>ne(je,d(Ge).title)),l(Ye,Ke)},$$slots:{default:!0}})}),l(Oe,_e)}),l(Pe,xe)},$$slots:{default:!0}})})}l(q,ie)}),l(W,Y)};U(ee,W=>{d(r).trim()&&d(n).length===0?W(Z):W(D,!1)},!0)}l(z,E)};U(N,z=>{d(s)?z(M):z(T,!1)})}l(k,B)},$$slots:{default:!0}})}),l(v,h)};let a=ae(!1),r=ae(""),n=ae(mt([])),s=ae(!1),i=null;vt(()=>{function v(h){(h.metaKey||h.ctrlKey)&&h.key==="k"&&(h.preventDefault(),O(a,!d(a)))}return document.addEventListener("keydown",v),()=>{document.removeEventListener("keydown",v)}}),gt(()=>{if(d(r).trim()===""){O(n,[],!0),O(s,!1);return}return O(s,!0),i&&clearTimeout(i),i=setTimeout(async()=>{try{const v=await Nr(d(r));O(n,v.results,!0)}catch(v){console.error("Search failed:",v),O(n,[],!0)}finally{O(s,!1)}},300),()=>{i&&clearTimeout(i)}});const c=w(()=>d(n).reduce((v,h)=>(v[h.type]||(v[h.type]=[]),v[h.type].push(h),v),{}));function u(v){O(a,!1),O(r,""),O(n,[],!0);const p={task:$=>`${$e}/tasks?selected=${$}`,item:$=>`${$e}/items?selected=${$}`,inbox:$=>`${$e}/inbox?selected=${$}`,observation:$=>`${$e}/observations?selected=${$}`,agent:$=>`${$e}/meta?selected=${$}`,workflow:$=>`${$e}/meta?selected=${$}`,convention:$=>`${$e}/meta?selected=${$}`}[v.type]?.(v.ulid);p&&Xr(p)}const m={task:"Tasks",item:"Spec Items",inbox:"Inbox",observation:"Observations",agent:"Agents",workflow:"Workflows",convention:"Conventions"};var f=x(),b=g(f);H(b,()=>Yn,(v,h)=>{h(v,{"data-testid":"command-palette",title:"Search",description:"Search across all entities",get open(){return d(a)},set open(p){O(a,p,!0)},get value(){return d(r)},set value(p){O(r,p,!0)},children:(p,$)=>{t(p)},$$slots:{default:!0}})}),l(o,f),V()}var co=y("<!> Valid",1),uo=y("<!> ",1),fo=y('<!> <span class="sr-only">Refresh</span>',1),ho=y('<div role="alert" class="flex items-center justify-between gap-4 border-b border-amber-200 bg-amber-50 px-4 py-2 text-sm text-amber-800 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-200"><div class="flex items-center gap-3"><!> <span><strong>Read-only mode</strong> <span class="hidden sm:inline"> </span> <span class="sm:hidden"> </span></span></div> <div class="flex items-center gap-2"><!> <!></div></div>');function vo(o,e){R(e,!0);function t(m){if(!m)return"Unknown";const f=new Date(m),v=new Date().getTime()-f.getTime(),h=Math.floor(v/6e4),p=Math.floor(h/60),$=Math.floor(p/24);return h<1?"Just now":h<60?`${h} minute${h===1?"":"s"} ago`:p<24?`${p} hour${p===1?"":"s"} ago`:$<7?`${$} day${$===1?"":"s"} ago`:f.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function a(){window.location.reload()}const r=w(Or),n=w(Er),s=w(()=>t(d(n)));var i=x(),c=g(i);{var u=m=>{var f=ho(),b=I(f),v=I(b);$n(v,{class:"h-4 w-4 flex-shrink-0"});var h=L(v,2),p=L(I(h),2),$=I(p);P(p);var S=L(p,2),C=I(S);P(S),P(h),P(b);var k=L(b,2),K=I(k);{var B=M=>{var T=x(),z=g(T);{var E=Z=>{ct(Z,{variant:"outline",class:"gap-1 border-green-500 text-green-600 dark:text-green-400",children:(D,W)=>{var Y=co(),j=g(Y);Ra(j,{class:"h-3 w-3"}),he(),l(D,Y)},$$slots:{default:!0}})},ee=Z=>{ct(Z,{variant:"outline",class:"gap-1 border-red-500 text-red-600 dark:text-red-400",get title(){return`${d(r).errorCount??""} errors, ${d(r).warningCount??""} warnings`},children:(D,W)=>{var Y=uo(),j=g(Y);Va(j,{class:"h-3 w-3"});var q=L(j);se(()=>ne(q,` ${d(r).errorCount??""} errors`)),l(D,Y)},$$slots:{default:!0}})};U(z,Z=>{d(r).valid?Z(E):Z(ee,!1)})}l(M,T)};U(K,M=>{d(r)&&M(B)})}var N=L(K,2);Hr(N,{variant:"ghost",size:"sm",onclick:a,title:"Refresh page",children:(M,T)=>{var z=fo(),E=g(z);da(E,{class:"h-4 w-4"}),he(2),l(M,z)},$$slots:{default:!0}}),P(k),P(f),se(()=>{ne($,`— Data as of: ${d(s)??""}`),ne(C,`— ${d(s)??""}`)}),l(m,f)};U(c,m=>{Ft()&&m(u)})}l(o,i),V()}var mo=y('<link rel="icon"/>'),go=y('<div class="flex items-center justify-center h-32"><span class="text-muted-foreground">Loading...</span></div>'),po=y('<!> <main class="flex-1 overflow-auto p-4 pb-20 md:pb-4 min-w-0"><!></main>',1),_o=y('<div class="hidden md:block"><!></div> <!> <!>',1),bo=y("<!> <!>",1);function Wo(o,e){R(e,!0);let t=ae(!1);vt(async()=>{if(await Rr(),Ft()){O(t,!0);return}await Vr(),O(t,!0);const i=Lt();ta({projectPath:i??void 0})});let a=w(()=>d(t));var r=bo();Ga("12qhfyh",i=>{var c=mo();se(()=>Ae(c,"href",Ba)),l(i,c)});var n=g(r);lo(n,{});var s=L(n,2);sn(s,{children:(i,c)=>{var u=_o(),m=g(u),f=I(m);Fn(f,{}),P(m);var b=L(m,2);cs(b,{children:(h,p)=>{var $=po(),S=g($);vo(S,{});var C=L(S,2),k=I(C);{var K=N=>{var M=x(),T=g(M);G(T,()=>e.children),l(N,M)},B=N=>{var M=go();l(N,M)};U(k,N=>{d(a)?N(K):N(B,!1)})}P(C),l(h,$)},$$slots:{default:!0}});var v=L(b,2);Hn(v,{}),l(i,u)},$$slots:{default:!0}}),l(o,r),V()}export{Wo as component};
@@ -0,0 +1 @@
1
+ import{f as h,a as c}from"../chunks/DvA-KON-.js";import"../chunks/BUZujXJ2.js";import{p as l,f as v,t as u,a as _,c as s,r as e,s as g}from"../chunks/D3vxvonu.js";import{s as o}from"../chunks/D9QNBZM2.js";import{i as x}from"../chunks/BVA9Exy-.js";import{p}from"../chunks/62JVKtnb.js";var d=h("<h1> </h1> <p> </p>",1);function y(m,i){l(i,!1),x();var t=d(),r=v(t),f=s(r,!0);e(r);var a=g(r,2),n=s(a,!0);e(a),u(()=>{o(f,p.status),o(n,p.error?.message)}),c(m,t),_()}export{y as component};
@@ -0,0 +1 @@
1
+ import{c as N,a,f as d,t as Vt}from"../chunks/DvA-KON-.js";import{o as xe,a as ge}from"../chunks/CwELQvbx.js";import{p as Dt,f as b,i as Gt,a as Bt,b as U,d as Yt,u as pe,e as m,s as r,c as s,g as t,h as he,r as e,n as G,t as D}from"../chunks/D3vxvonu.js";import{d as be,s as p}from"../chunks/D9QNBZM2.js";import{s as It,r as Ot,i as f}from"../chunks/BysXJlZb.js";import{k as Rt,g as ye,i as we,c as xt,L as $e,M as je,N as Ce,O as Pe,B as At,q as Zt,e as St,h as Ut}from"../chunks/DQA8NZIH.js";import{s as ke,o as Se,a as ze,u as Ne}from"../chunks/BP352uRn.js";import{C as zt}from"../chunks/CGtqifKp.js";import{C as Nt}from"../chunks/DjG7s6hm.js";import{C as Mt}from"../chunks/BEOQc37C.js";import{I as Tt}from"../chunks/B5wTVqxm.js";import{F as Me}from"../chunks/CHDZZ7OG.js";import{G as De}from"../chunks/BYzrIfX8.js";import{C as Be}from"../chunks/T3zZGv51.js";import{C as Fe}from"../chunks/BWET-efb.js";const Ee=!1,Oa=Object.freeze(Object.defineProperty({__proto__:null,ssr:Ee},Symbol.toStringTag,{value:"Module"}));function He(vt,E){Dt(E,!0);let I=Ot(E,["$$slots","$$events","$$legacy"]);const y=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"}],["circle",{cx:"12",cy:"12",r:"3"}]];Tt(vt,It({name:"settings"},()=>I,{get iconNode(){return y},children:(j,Z)=>{var B=N(),O=b(B);Rt(O,()=>E.children??Gt),a(j,B)},$$slots:{default:!0}})),Bt()}function Ve(vt,E){Dt(E,!0);let I=Ot(E,["$$slots","$$events","$$legacy"]);const y=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18"}]];Tt(vt,It({name:"server"},()=>I,{get iconNode(){return y},children:(j,Z)=>{var B=N(),O=b(B);Rt(O,()=>E.children??Gt),a(j,B)},$$slots:{default:!0}})),Bt()}function te(vt,E){Dt(E,!0);let I=Ot(E,["$$slots","$$events","$$legacy"]);const y=[["path",{d:"M12 7v14"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"}]];Tt(vt,It({name:"book-open"},()=>I,{get iconNode(){return y},children:(j,Z)=>{var B=N(),O=b(B);Rt(O,()=>E.children??Gt),a(j,B)},$$slots:{default:!0}})),Bt()}var Ae=d('<p class="text-sm text-muted-foreground" data-testid="settings-summary">Project configuration and daemon status</p>'),Ue=d('<div class="flex flex-col items-center justify-center py-16" data-testid="settings-static"><!> <h2 class="text-lg font-medium text-muted-foreground mb-1">Settings unavailable</h2> <p class="text-sm text-muted-foreground">Settings data is not available in static mode. Connect to a running daemon to view project configuration.</p></div>'),Ge=d('<div class="flex items-center gap-2"><!> <h2 class="text-sm font-semibold">Project Configuration</h2></div>'),Ie=d('<div class="flex flex-col gap-2" data-testid="settings-project-loading"><div class="h-4 w-3/4 rounded bg-muted ds-shimmer"></div> <div class="h-4 w-1/2 rounded bg-muted ds-shimmer"></div> <div class="h-4 w-2/3 rounded bg-muted ds-shimmer"></div></div>'),Oe=d('<div class="text-sm text-destructive" data-testid="settings-project-error" role="alert"> </div>'),Re=d('<span class="text-xs text-muted-foreground">None</span>'),Te=d('<dl class="flex flex-col gap-2 text-sm"><div class="flex justify-between"><dt class="text-muted-foreground">Name</dt> <dd class="font-medium" data-testid="config-project-name"> </dd></div> <div class="flex justify-between"><dt class="text-muted-foreground">Version</dt> <dd class="font-mono text-xs" data-testid="config-project-version"> </dd></div> <div class="flex justify-between"><dt class="text-muted-foreground">Status</dt> <dd data-testid="config-project-status"><!></dd></div> <div class="flex justify-between"><dt class="text-muted-foreground">Spec Version</dt> <dd class="font-mono text-xs" data-testid="config-spec-version"> </dd></div> <div class="flex justify-between"><dt class="text-muted-foreground">Root Directory</dt> <dd class="font-mono text-xs truncate max-w-[200px]" data-testid="config-root-dir"> </dd></div> <div class="flex justify-between"><dt class="text-muted-foreground">Remote Tracking</dt> <dd data-testid="config-remote-tracking"><!></dd></div></dl>'),qe=d('<div class="text-sm text-muted-foreground" data-testid="settings-project-empty">No project configuration found.</div>'),Le=d("<!> <!>",1),We=d('<div class="flex items-center gap-2"><!> <h2 class="text-sm font-semibold">Daemon Connection</h2></div>'),Je=d('<div class="flex flex-col gap-2" data-testid="settings-daemon-loading"><div class="h-4 w-3/4 rounded bg-muted ds-shimmer"></div> <div class="h-4 w-1/2 rounded bg-muted ds-shimmer"></div></div>'),Ke=d('<div class="flex flex-col gap-2"><div class="flex items-center gap-2"><span class="size-2 rounded-full bg-severity-error"></span> <span class="text-sm font-medium" data-testid="daemon-status">Disconnected</span></div> <div class="text-sm text-destructive" data-testid="settings-daemon-error" role="alert"> </div></div>'),Qe=d('<div class="flex justify-between"><dt class="text-muted-foreground">Port</dt> <dd class="font-mono text-xs" data-testid="daemon-port"> </dd></div>'),Xe=d('<dl class="flex flex-col gap-2 text-sm"><div class="flex justify-between"><dt class="text-muted-foreground">Status</dt> <dd class="flex items-center gap-2" data-testid="daemon-status"><span class="size-2 rounded-full bg-severity-success"></span> <span class="font-medium">Connected</span></dd></div> <div class="flex justify-between"><dt class="text-muted-foreground">Version</dt> <dd class="font-mono text-xs" data-testid="daemon-version"> </dd></div> <div class="flex justify-between"><dt class="text-muted-foreground">Uptime</dt> <dd class="font-mono text-xs" data-testid="daemon-uptime"> </dd></div> <div class="flex justify-between"><dt class="text-muted-foreground">Active Connections</dt> <dd class="font-mono text-xs" data-testid="daemon-connections"> </dd></div> <!></dl>'),Ye=d("<!> <!>",1),Ze=d('<div class="flex items-center gap-2"><!> <h2 class="text-sm font-semibold">Shadow Branch</h2></div>'),ta=d('<div class="flex flex-col gap-2" data-testid="settings-shadow-loading"><div class="h-4 w-3/4 rounded bg-muted ds-shimmer"></div> <div class="h-4 w-1/2 rounded bg-muted ds-shimmer"></div></div>'),ea=d('<div class="text-sm text-destructive" data-testid="settings-shadow-error" role="alert"> </div>'),aa=d('<span class="size-2 rounded-full bg-severity-success"></span> <span class="font-medium">Healthy</span>',1),sa=d('<span class="size-2 rounded-full bg-severity-warning"></span> <span class="font-medium">Unhealthy</span>',1),ra=d('<span class="size-2 rounded-full bg-muted-foreground"></span> <span class="font-medium">Disabled</span>',1),da=d('<div class="flex justify-between"><dt class="text-muted-foreground">Branch</dt> <dd class="font-mono text-xs" data-testid="shadow-branch"> </dd></div>'),oa=d('<div class="flex justify-between"><dt class="text-muted-foreground">Worktree</dt> <dd class="font-mono text-xs truncate max-w-[200px]" data-testid="shadow-worktree"> </dd></div>'),ia=d('<span class="text-xs text-muted-foreground">Not configured</span>'),na=d('<dl class="flex flex-col gap-2 text-sm"><div class="flex justify-between"><dt class="text-muted-foreground">Status</dt> <dd class="flex items-center gap-2" data-testid="shadow-status"><!></dd></div> <!> <!> <div class="flex justify-between"><dt class="text-muted-foreground">Remote Tracking</dt> <dd data-testid="shadow-remote"><!></dd></div></dl>'),la=d('<div class="text-sm text-muted-foreground" data-testid="settings-shadow-empty">Shadow branch not detected.</div>'),va=d("<!> <!>",1),ca=d('<span class="text-xs text-muted-foreground" data-testid="conventions-count"> </span>'),fa=d('<div class="flex items-center justify-between"><div class="flex items-center gap-2"><!> <h2 class="text-sm font-semibold">Conventions</h2></div> <!></div>'),ua=d('<div class="h-10 rounded bg-muted ds-shimmer"></div>'),ma=d('<div class="flex flex-col gap-2" data-testid="settings-conventions-loading"></div>'),_a=d('<div class="text-sm text-destructive" data-testid="settings-conventions-error" role="alert"> </div>'),xa=d('<div class="flex flex-col items-center justify-center py-8" data-testid="settings-conventions-empty"><!> <p class="text-sm text-muted-foreground">No conventions defined</p></div>'),ga=d('<li class="text-muted-foreground flex items-start gap-1.5"><span class="text-xs mt-1 shrink-0">•</span> <span> </span></li>'),pa=d('<ul class="flex flex-col gap-1 mb-2"></ul>'),ha=d('<div class="flex flex-col gap-0.5 text-xs"><div class="flex items-center gap-1.5"><span class="text-severity-success font-medium">Good:</span> <code class="bg-muted px-1 py-0.5 rounded"> </code></div> <div class="flex items-center gap-1.5"><span class="text-severity-error font-medium">Bad:</span> <code class="bg-muted px-1 py-0.5 rounded"> </code></div></div>'),ba=d('<div class="flex flex-col gap-1.5 mt-2 pt-2 border-t"><h4 class="text-xs font-medium text-muted-foreground uppercase tracking-wider">Examples</h4> <!></div>'),ya=d('<div class="border-t px-3 py-2 text-sm" data-testid="convention-details"><!> <!></div>'),wa=d('<div class="rounded-md border" data-testid="convention-item"><button type="button" class="flex w-full items-center gap-2 px-3 py-2 text-left text-sm hover:bg-muted/50 transition-colors" data-testid="convention-toggle"><!> <span class="font-medium" data-testid="convention-domain"> </span> <span class="text-xs text-muted-foreground ml-auto"> </span></button> <!></div>'),$a=d('<div class="flex flex-col gap-1" data-testid="conventions-list"></div>'),ja=d("<!> <!>",1),Ca=d('<div class="grid gap-4 md:grid-cols-2"><!> <!> <!> <!></div>'),Pa=d('<div class="flex flex-col gap-4 p-6"><div class="flex items-center justify-between"><div><h1 class="text-2xl font-bold">Settings</h1> <!></div></div> <!></div>');function Ra(vt,E){Dt(E,!0);let I=U(null),y=U(null),j=U(null),Z=U(Yt([])),B=U(!0),O=U(!0),bt=U(!0),gt=U(!0),$t=U(""),jt=U(""),Ct=U(""),Pt=U(""),kt=U(Yt(new Set));xe(()=>{xt()||(ke(["files:updates"]),Se("files:updates",Lt))}),ge(()=>{xt()||(ze("files:updates",Lt),Ne(["files:updates"]))}),pe(()=>{ye(),we()&&qt()});async function qt(){await Promise.all([ee(),ae(),se(),re()])}async function ee(){if(xt()){m(B,!1);return}try{m(B,!0),m($t,""),m(y,await $e(),!0)}catch(o){m($t,o instanceof Error?o.message:"Failed to load project config",!0)}finally{m(B,!1)}}async function ae(){if(xt()){m(O,!1);return}try{m(O,!0),m(jt,""),m(I,await je(),!0)}catch(o){m(jt,o instanceof Error?o.message:"Failed to connect to daemon",!0)}finally{m(O,!1)}}async function se(){if(xt()){m(bt,!1);return}try{m(bt,!0),m(Ct,""),m(j,await Ce(),!0)}catch(o){m(Ct,o instanceof Error?o.message:"Failed to load shadow status",!0)}finally{m(bt,!1)}}async function re(){if(xt()){m(gt,!1);return}try{m(gt,!0),m(Pt,"");const o=await Pe();m(Z,o.items,!0)}catch(o){m(Pt,o instanceof Error?o.message:"Failed to load conventions",!0)}finally{m(gt,!1)}}function Lt(){qt()}function de(o){const C=Math.floor(o/3600),nt=Math.floor(o%3600/60),pt=Math.floor(o%60);return C>0?`${C}h ${nt}m ${pt}s`:nt>0?`${nt}m ${pt}s`:`${pt}s`}function oe(o){const C=new Set(t(kt));C.has(o)?C.delete(o):C.add(o),m(kt,C,!0)}let ie=he(()=>t(B)&&t(O)&&t(bt)&&t(gt));var Ft=Pa(),Et=s(Ft),Wt=s(Et),ne=r(s(Wt),2);{var le=o=>{var C=Ae();a(o,C)};f(ne,o=>{t(ie)||o(le)})}e(Wt),e(Et);var ve=r(Et,2);{var ce=o=>{var C=Ue(),nt=s(C);He(nt,{class:"size-12 text-muted-foreground/30 mb-4"}),G(4),e(C),a(o,C)},fe=o=>{var C=Ca(),nt=s(C);zt(nt,{"data-testid":"settings-project-config",children:(ct,Ht)=>{var R=Le(),T=b(R);Mt(T,{class:"pb-3",children:(M,ut)=>{var n=Ge(),P=s(n);Me(P,{class:"size-4 text-muted-foreground"}),G(2),e(n),a(M,n)},$$slots:{default:!0}});var ft=r(T,2);Nt(ft,{class:"pt-0",children:(M,ut)=>{var n=N(),P=b(n);{var tt=i=>{var u=Ie();a(i,u)},et=i=>{var u=N(),H=b(u);{var K=l=>{var v=Oe(),k=s(v,!0);e(v),D(()=>p(k,t($t))),a(l,v)},at=l=>{var v=N(),k=b(v);{var st=_=>{var x=Te(),S=s(x),w=r(s(S),2),q=s(w,!0);e(w),e(S);var V=r(S,2),dt=r(s(V),2),Q=s(dt,!0);e(dt),e(V);var X=r(V,2),L=r(s(X),2),mt=s(L);At(mt,{variant:"secondary",class:"text-xs",children:(h,lt)=>{G();var _t=Vt();D(()=>p(_t,t(y).project?.status??"—")),a(h,_t)},$$slots:{default:!0}}),e(L),e(X);var W=r(X,2),A=r(s(W),2),ot=s(A,!0);e(A),e(W);var Y=r(W,2),$=r(s(Y),2),c=s($,!0);e($),e(Y);var g=r(Y,2),F=r(s(g),2),J=s(F);{var yt=h=>{At(h,{variant:"outline",class:"text-xs",children:(lt,_t)=>{G();var it=Vt();D(()=>p(it,`${t(y).remote_tracking.type??""}: ${t(y).remote_tracking.value??""}`)),a(lt,it)},$$slots:{default:!0}})},z=h=>{var lt=Re();a(h,lt)};f(J,h=>{t(y).remote_tracking?h(yt):h(z,!1)})}e(F),e(g),e(x),D(()=>{p(q,t(y).project?.name??"Not configured"),p(Q,t(y).project?.version??"—"),p(ot,t(y).spec_version??"—"),Zt($,"title",t(y).root_dir),p(c,t(y).root_dir)}),a(_,x)},rt=_=>{var x=qe();a(_,x)};f(k,_=>{t(y)?_(st):_(rt,!1)},!0)}a(l,v)};f(H,l=>{t($t)?l(K):l(at,!1)},!0)}a(i,u)};f(P,i=>{t(B)?i(tt):i(et,!1)})}a(M,n)},$$slots:{default:!0}}),a(ct,R)},$$slots:{default:!0}});var pt=r(nt,2);zt(pt,{"data-testid":"settings-daemon",children:(ct,Ht)=>{var R=Ye(),T=b(R);Mt(T,{class:"pb-3",children:(M,ut)=>{var n=We(),P=s(n);Ve(P,{class:"size-4 text-muted-foreground"}),G(2),e(n),a(M,n)},$$slots:{default:!0}});var ft=r(T,2);Nt(ft,{class:"pt-0",children:(M,ut)=>{var n=N(),P=b(n);{var tt=i=>{var u=Je();a(i,u)},et=i=>{var u=N(),H=b(u);{var K=l=>{var v=Ke(),k=r(s(v),2),st=s(k,!0);e(k),e(v),D(()=>p(st,t(jt))),a(l,v)},at=l=>{var v=N(),k=b(v);{var st=rt=>{var _=Xe(),x=r(s(_),2),S=r(s(x),2),w=s(S,!0);e(S),e(x);var q=r(x,2),V=r(s(q),2),dt=s(V,!0);e(V),e(q);var Q=r(q,2),X=r(s(Q),2),L=s(X,!0);e(X),e(Q);var mt=r(Q,2);{var W=A=>{var ot=Qe(),Y=r(s(ot),2),$=s(Y,!0);e(Y),e(ot),D(()=>p($,t(y).daemon.port)),a(A,ot)};f(mt,A=>{t(y)&&A(W)})}e(_),D(A=>{p(w,t(I).version),p(dt,A),p(L,t(I).connections)},[()=>de(t(I).uptime)]),a(rt,_)};f(k,rt=>{t(I)&&rt(st)},!0)}a(l,v)};f(H,l=>{t(jt)?l(K):l(at,!1)},!0)}a(i,u)};f(P,i=>{t(O)?i(tt):i(et,!1)})}a(M,n)},$$slots:{default:!0}}),a(ct,R)},$$slots:{default:!0}});var Jt=r(pt,2);zt(Jt,{"data-testid":"settings-shadow",children:(ct,Ht)=>{var R=va(),T=b(R);Mt(T,{class:"pb-3",children:(M,ut)=>{var n=Ze(),P=s(n);De(P,{class:"size-4 text-muted-foreground"}),G(2),e(n),a(M,n)},$$slots:{default:!0}});var ft=r(T,2);Nt(ft,{class:"pt-0",children:(M,ut)=>{var n=N(),P=b(n);{var tt=i=>{var u=ta();a(i,u)},et=i=>{var u=N(),H=b(u);{var K=l=>{var v=ea(),k=s(v,!0);e(v),D(()=>p(k,t(Ct))),a(l,v)},at=l=>{var v=N(),k=b(v);{var st=_=>{var x=na(),S=s(x),w=r(s(S),2),q=s(w);{var V=c=>{var g=aa();G(2),a(c,g)},dt=c=>{var g=N(),F=b(g);{var J=z=>{var h=sa();G(2),a(z,h)},yt=z=>{var h=ra();G(2),a(z,h)};f(F,z=>{t(j).enabled?z(J):z(yt,!1)},!0)}a(c,g)};f(q,c=>{t(j).enabled&&t(j).healthy?c(V):c(dt,!1)})}e(w),e(S);var Q=r(S,2);{var X=c=>{var g=da(),F=r(s(g),2),J=s(F,!0);e(F),e(g),D(()=>p(J,t(j).branch_name)),a(c,g)};f(Q,c=>{t(j).branch_name&&c(X)})}var L=r(Q,2);{var mt=c=>{var g=oa(),F=r(s(g),2),J=s(F,!0);e(F),e(g),D(()=>{Zt(F,"title",t(j).worktree_dir),p(J,t(j).worktree_dir)}),a(c,g)};f(L,c=>{t(j).worktree_dir&&c(mt)})}var W=r(L,2),A=r(s(W),2),ot=s(A);{var Y=c=>{At(c,{variant:"outline",class:"text-xs bg-severity-success-muted text-severity-success-muted-fg",children:(g,F)=>{G();var J=Vt("Configured");a(g,J)},$$slots:{default:!0}})},$=c=>{var g=ia();a(c,g)};f(ot,c=>{t(j).remote_tracking?c(Y):c($,!1)})}e(A),e(W),e(x),a(_,x)},rt=_=>{var x=la();a(_,x)};f(k,_=>{t(j)?_(st):_(rt,!1)},!0)}a(l,v)};f(H,l=>{t(Ct)?l(K):l(at,!1)},!0)}a(i,u)};f(P,i=>{t(bt)?i(tt):i(et,!1)})}a(M,n)},$$slots:{default:!0}}),a(ct,R)},$$slots:{default:!0}});var ue=r(Jt,2);zt(ue,{class:"md:col-span-2","data-testid":"settings-conventions",children:(ct,Ht)=>{var R=ja(),T=b(R);Mt(T,{class:"pb-3",children:(M,ut)=>{var n=fa(),P=s(n),tt=s(P);te(tt,{class:"size-4 text-muted-foreground"}),G(2),e(P);var et=r(P,2);{var i=u=>{var H=ca(),K=s(H);e(H),D(()=>p(K,`${t(Z).length??""} domain${t(Z).length===1?"":"s"}`)),a(u,H)};f(et,u=>{!t(gt)&&t(Z).length>0&&u(i)})}e(n),a(M,n)},$$slots:{default:!0}});var ft=r(T,2);Nt(ft,{class:"pt-0",children:(M,ut)=>{var n=N(),P=b(n);{var tt=i=>{var u=ma();St(u,20,()=>Array(3),Ut,(H,K)=>{var at=ua();a(H,at)}),e(u),a(i,u)},et=i=>{var u=N(),H=b(u);{var K=l=>{var v=_a(),k=s(v,!0);e(v),D(()=>p(k,t(Pt))),a(l,v)},at=l=>{var v=N(),k=b(v);{var st=_=>{var x=xa(),S=s(x);te(S,{class:"size-8 text-muted-foreground/30 mb-2"}),G(2),e(x),a(_,x)},rt=_=>{var x=$a();St(x,21,()=>t(Z),S=>S._ulid,(S,w)=>{var q=wa(),V=s(q);V.__click=()=>oe(t(w).domain);var dt=s(V);{var Q=$=>{Be($,{class:"size-3.5 text-muted-foreground shrink-0"})},X=$=>{Fe($,{class:"size-3.5 text-muted-foreground shrink-0"})};f(dt,$=>{t(kt).has(t(w).domain)?$(Q):$(X,!1)})}var L=r(dt,2),mt=s(L,!0);e(L);var W=r(L,2),A=s(W);e(W),e(V);var ot=r(V,2);{var Y=$=>{var c=ya(),g=s(c);{var F=z=>{var h=pa();St(h,21,()=>t(w).rules,Ut,(lt,_t)=>{var it=ga(),ht=r(s(it),2),wt=s(ht,!0);e(ht),e(it),D(()=>p(wt,t(_t))),a(lt,it)}),e(h),a(z,h)};f(g,z=>{t(w).rules.length>0&&z(F)})}var J=r(g,2);{var yt=z=>{var h=ba(),lt=r(s(h),2);St(lt,17,()=>t(w).examples,Ut,(_t,it)=>{var ht=ha(),wt=s(ht),Kt=r(s(wt),2),me=s(Kt,!0);e(Kt),e(wt);var Qt=r(wt,2),Xt=r(s(Qt),2),_e=s(Xt,!0);e(Xt),e(Qt),e(ht),D(()=>{p(me,t(it).good),p(_e,t(it).bad)}),a(_t,ht)}),e(h),a(z,h)};f(J,z=>{t(w).examples&&t(w).examples.length>0&&z(yt)})}e(c),a($,c)};f(ot,$=>{t(kt).has(t(w).domain)&&$(Y)})}e(q),D(()=>{p(mt,t(w).domain),p(A,`${t(w).rules.length??""} rule${t(w).rules.length===1?"":"s"}`)}),a(S,q)}),e(x),a(_,x)};f(k,_=>{t(Z).length===0?_(st):_(rt,!1)},!0)}a(l,v)};f(H,l=>{t(Pt)?l(K):l(at,!1)},!0)}a(i,u)};f(P,i=>{t(gt)?i(tt):i(et,!1)})}a(M,n)},$$slots:{default:!0}}),a(ct,R)},$$slots:{default:!0}}),e(C),a(o,C)};f(ve,o=>{xt()?o(ce):o(fe,!1)})}e(Ft),a(vt,Ft),Bt()}be(["click"]);export{Ra as component,Oa as universal};
@@ -0,0 +1 @@
1
+ import{p as Bt,c as E,a as r,f as x,t as ht}from"../chunks/DvA-KON-.js";import{b as J,d as Ot,e as P,g as e,h as B,u as Tt,p as tt,f as k,a as et,c as g,i as ft,r as d,aY as Re,aZ as Fe,D as he,q as ct,K as fe,a9 as te,s as p,n as Y,t as q}from"../chunks/D3vxvonu.js";import{o as De,d as Te,s as W}from"../chunks/D9QNBZM2.js";import{p as S,i as $,r as mt,s as zt}from"../chunks/BysXJlZb.js";import{k as X,l as Ut,e as wt,B as It,q as Et,p as ae,h as Dt,Z as Ee,m as ie,_ as Me,$ as Be,g as Ue,i as Ke,Q as Ve}from"../chunks/DQA8NZIH.js";import{a as We,s as qe}from"../chunks/pE6cYWlS.js";import{b as _e}from"../chunks/D7LTux4W.js";import{p as Oe}from"../chunks/D82RulSH.js";import"../chunks/BUZujXJ2.js";import{c as ze}from"../chunks/CwELQvbx.js";import{i as Ge}from"../chunks/BVA9Exy-.js";import{C as je}from"../chunks/BWET-efb.js";import{S as Le,a as He,b as me,c as pe,d as Ze}from"../chunks/C33JaVbg.js";import{c as Mt}from"../chunks/DAx07bEQ.js";import{A as ee,f as ne,g as oe,h as re,E as Qe,i as Ye,H as Je,C as be,j as Xe,S as tr,k as er,w as se,l as rr,n as sr}from"../chunks/BMuCqDX8.js";import{i as ar,B as ir,f as nr,e as R,g as or,t as dr,h as lr,j as cr,a as Kt,k as Gt,l as jt,c as ur,n as ge,d as Vt,m as Wt}from"../chunks/CPPfDSei.js";import{C as vr}from"../chunks/T3zZGv51.js";import{S as gt}from"../chunks/DAMmvwn4.js";import{R as hr}from"../chunks/Cncwi6fQ.js";import{C as fr,a as mr}from"../chunks/XZumBYeP.js";import{C as pr}from"../chunks/DxCk-KHc.js";function Pt(c){let t=J(Ot(c));return{[ir]:!0,[ar]:!0,get current(){return e(t)},set current(a){P(t,a,!0)}}}Pt.from=nr;Pt.with=R;Pt.flatten=or;Pt.readonly=dr;Pt.isBox=lr;Pt.isWritableBox=cr;function gr(c){return window.getComputedStyle(c).getPropertyValue("direction")}function _r(c="ltr",t="horizontal"){return{horizontal:c==="rtl"?oe:ne,vertical:re}[t]}function br(c="ltr",t="horizontal"){return{horizontal:c==="rtl"?ne:oe,vertical:ee}[t]}function xr(c="ltr",t="horizontal"){return["ltr","rtl"].includes(c)||(c="ltr"),["horizontal","vertical"].includes(t)||(t="horizontal"),{nextKey:_r(c,t),prevKey:br(c,t)}}class yr{#t;#e=Pt(null);constructor(t){this.#t=t}getCandidateNodes(){return this.#t.rootNode.current?this.#t.candidateSelector?Array.from(this.#t.rootNode.current.querySelectorAll(this.#t.candidateSelector)):this.#t.candidateAttr?Array.from(this.#t.rootNode.current.querySelectorAll(`[${this.#t.candidateAttr}]:not([data-disabled])`)):[]:[]}focusFirstCandidate(){const t=this.getCandidateNodes();t.length&&t[0]?.focus()}handleKeydown(t,a,s=!1){const o=this.#t.rootNode.current;if(!o||!t)return;const u=this.getCandidateNodes();if(!u.length)return;const h=u.indexOf(t),A=gr(o),{nextKey:b,prevKey:y}=xr(A,this.#t.orientation.current),v=this.#t.loop.current,w={[b]:h+1,[y]:h-1,[Je]:0,[Qe]:u.length-1};if(s){const l=b===re?ne:re,i=y===ee?oe:ee;w[l]=h+1,w[i]=h-1}let C=w[a.key];if(C===void 0)return;a.preventDefault(),C<0&&v?C=u.length-1:C===u.length&&v&&(C=0);const f=u[C];if(f)return f.focus(),this.#e.current=f.id,this.#t.onCandidateFocus?.(f),f}getTabIndex(t){const a=this.getCandidateNodes(),s=this.#e.current!==null;return t&&!s&&a[0]===t?(this.#e.current=t.id,0):t?.id===this.#e.current?0:-1}setCurrentTabStopId(t){this.#e.current=t}focusCurrentTabStop(){const t=this.#e.current;if(!t)return;const a=this.#t.rootNode.current?.querySelector(`#${t}`);!a||!Ye(a)||a.focus()}}const Ct=ur({component:"accordion",parts:["root","trigger","content","item","header"]}),xe=new be("Accordion.Root"),Lt=new be("Accordion.Item");class ye{opts;rovingFocusGroup;attachment;constructor(t){this.opts=t,this.rovingFocusGroup=new yr({rootNode:this.opts.ref,candidateAttr:Ct.trigger,loop:this.opts.loop,orientation:this.opts.orientation}),this.attachment=Kt(this.opts.ref)}#t=B(()=>({id:this.opts.id.current,"data-orientation":this.opts.orientation.current,"data-disabled":Gt(this.opts.disabled.current),[Ct.root]:"",...this.attachment}));get props(){return e(this.#t)}set props(t){P(this.#t,t)}}class wr extends ye{opts;isMulti=!1;constructor(t){super(t),this.opts=t,this.includesItem=this.includesItem.bind(this),this.toggleItem=this.toggleItem.bind(this)}includesItem(t){return this.opts.value.current===t}toggleItem(t){this.opts.value.current=this.includesItem(t)?"":t}}class Pr extends ye{#t;isMulti=!0;constructor(t){super(t),this.#t=t.value,this.includesItem=this.includesItem.bind(this),this.toggleItem=this.toggleItem.bind(this)}includesItem(t){return this.#t.current.includes(t)}toggleItem(t){this.#t.current=this.includesItem(t)?this.#t.current.filter(a=>a!==t):[...this.#t.current,t]}}class Ar{static create(t){const{type:a,...s}=t,o=a==="single"?new wr(s):new Pr(s);return xe.set(o)}}class de{static create(t){return Lt.set(new de({...t,rootState:xe.get()}))}opts;root;#t=B(()=>this.root.includesItem(this.opts.value.current));get isActive(){return e(this.#t)}set isActive(t){P(this.#t,t)}#e=B(()=>this.opts.disabled.current||this.root.opts.disabled.current);get isDisabled(){return e(this.#e)}set isDisabled(t){P(this.#e,t)}attachment;#r=J(null);get contentNode(){return e(this.#r)}set contentNode(t){P(this.#r,t,!0)}contentPresence;constructor(t){this.opts=t,this.root=t.rootState,this.updateValue=this.updateValue.bind(this),this.attachment=Kt(this.opts.ref),this.contentPresence=new Xe({ref:R(()=>this.contentNode),open:R(()=>this.isActive)})}updateValue(){this.root.toggleItem(this.opts.value.current)}#s=B(()=>({id:this.opts.id.current,"data-state":jt(this.isActive),"data-disabled":Gt(this.isDisabled),"data-orientation":this.root.opts.orientation.current,[Ct.item]:"",...this.attachment}));get props(){return e(this.#s)}set props(t){P(this.#s,t)}}class le{opts;itemState;#t;#e=B(()=>this.opts.disabled.current||this.itemState.opts.disabled.current||this.#t.opts.disabled.current);attachment;constructor(t,a){this.opts=t,this.itemState=a,this.#t=a.root,this.onclick=this.onclick.bind(this),this.onkeydown=this.onkeydown.bind(this),this.attachment=Kt(this.opts.ref)}static create(t){return new le(t,Lt.get())}onclick(t){if(e(this.#e)||t.button!==0){t.preventDefault();return}this.itemState.updateValue()}onkeydown(t){if(!e(this.#e)){if(t.key===tr||t.key===er){t.preventDefault(),this.itemState.updateValue();return}this.#t.rovingFocusGroup.handleKeydown(this.opts.ref.current,t)}}#r=B(()=>({id:this.opts.id.current,disabled:e(this.#e),"aria-expanded":ge(this.itemState.isActive),"aria-disabled":ge(e(this.#e)),"data-disabled":Gt(e(this.#e)),"data-state":jt(this.itemState.isActive),"data-orientation":this.#t.opts.orientation.current,[Ct.trigger]:"",tabindex:0,onclick:this.onclick,onkeydown:this.onkeydown,...this.attachment}));get props(){return e(this.#r)}set props(t){P(this.#r,t)}}class ce{opts;item;attachment;#t=void 0;#e=!1;#r=J(Ot({width:0,height:0}));#s=B(()=>this.opts.hiddenUntilFound.current?this.item.isActive:this.opts.forceMount.current||this.item.isActive);get open(){return e(this.#s)}set open(t){P(this.#s,t)}constructor(t,a){this.opts=t,this.item=a,this.#e=this.item.isActive,this.attachment=Kt(this.opts.ref,s=>this.item.contentNode=s),Tt(()=>{const s=requestAnimationFrame(()=>{this.#e=!1});return()=>cancelAnimationFrame(s)}),se.pre([()=>this.opts.ref.current,()=>this.opts.hiddenUntilFound.current],([s,o])=>!s||!o?void 0:De(s,"beforematch",()=>{this.item.isActive||requestAnimationFrame(()=>{this.item.updateValue()})})),se([()=>this.open,()=>this.opts.ref.current],this.#n)}static create(t){return new ce(t,Lt.get())}#n=([t,a])=>{a&&rr(()=>{const s=this.opts.ref.current;if(!s)return;this.#t??={transitionDuration:s.style.transitionDuration,animationName:s.style.animationName},s.style.transitionDuration="0s",s.style.animationName="none";const o=s.getBoundingClientRect();P(this.#r,{width:o.width,height:o.height},!0),!this.#e&&this.#t&&(s.style.transitionDuration=this.#t.transitionDuration,s.style.animationName=this.#t.animationName)})};get shouldRender(){return this.item.contentPresence.shouldRender}#a=B(()=>({open:this.item.isActive}));get snippetProps(){return e(this.#a)}set snippetProps(t){P(this.#a,t)}#i=B(()=>({id:this.opts.id.current,"data-state":jt(this.item.isActive),"data-disabled":Gt(this.item.isDisabled),"data-orientation":this.item.root.opts.orientation.current,[Ct.content]:"",style:{"--bits-accordion-content-height":`${e(this.#r).height}px`,"--bits-accordion-content-width":`${e(this.#r).width}px`},hidden:this.opts.hiddenUntilFound.current&&!this.item.isActive?"until-found":void 0,...this.opts.hiddenUntilFound.current&&!this.shouldRender?{}:{hidden:this.opts.hiddenUntilFound.current?!this.shouldRender:this.opts.forceMount.current?void 0:!this.shouldRender},...this.attachment}));get props(){return e(this.#i)}set props(t){P(this.#i,t)}}class ue{opts;item;attachment;constructor(t,a){this.opts=t,this.item=a,this.attachment=Kt(this.opts.ref)}static create(t){return new ue(t,Lt.get())}#t=B(()=>({id:this.opts.id.current,role:"heading","aria-level":this.opts.level.current,"data-heading-level":this.opts.level.current,"data-state":jt(this.item.isActive),"data-orientation":this.item.root.opts.orientation.current,[Ct.header]:"",...this.attachment}));get props(){return e(this.#t)}set props(t){P(this.#t,t)}}var Sr=x("<div><!></div>");function kr(c,t){const a=Bt();tt(t,!0);let s=S(t,"disabled",3,!1),o=S(t,"value",15),u=S(t,"ref",15,null),h=S(t,"id",19,()=>Vt(a)),A=S(t,"onValueChange",3,sr),b=S(t,"loop",3,!0),y=S(t,"orientation",3,"vertical"),v=mt(t,["$$slots","$$events","$$legacy","disabled","children","child","type","value","ref","id","onValueChange","loop","orientation"]);function w(){o()===void 0&&o(t.type==="single"?"":[])}w(),se.pre(()=>o(),()=>{w()});const C=Ar.create({type:t.type,value:R(()=>o(),m=>{o(m),A()(m)}),id:R(()=>h()),disabled:R(()=>s()),loop:R(()=>b()),orientation:R(()=>y()),ref:R(()=>u(),m=>u(m))}),f=B(()=>Wt(v,C.props));var l=E(),i=k(l);{var n=m=>{var I=E(),M=k(I);X(M,()=>t.child,()=>({props:e(f)})),r(m,I)},F=m=>{var I=Sr();Ut(I,()=>({...e(f)}));var M=g(I);X(M,()=>t.children??ft),d(I),r(m,I)};$(i,m=>{t.child?m(n):m(F,!1)})}r(c,l),et()}var Ir=x("<div><!></div>");function Cr(c,t){const a=Bt();tt(t,!0);const s=Vt(a);let o=S(t,"id",3,s),u=S(t,"disabled",3,!1),h=S(t,"value",3,s),A=S(t,"ref",15,null),b=mt(t,["$$slots","$$events","$$legacy","id","disabled","value","children","child","ref"]);const y=de.create({value:R(()=>h()),disabled:R(()=>u()),id:R(()=>o()),ref:R(()=>A(),i=>A(i))}),v=B(()=>Wt(b,y.props));var w=E(),C=k(w);{var f=i=>{var n=E(),F=k(n);X(F,()=>t.child,()=>({props:e(v)})),r(i,n)},l=i=>{var n=Ir();Ut(n,()=>({...e(v)}));var F=g(n);X(F,()=>t.children??ft),d(n),r(i,n)};$(C,i=>{t.child?i(f):i(l,!1)})}r(c,w),et()}var Nr=x("<div><!></div>");function $r(c,t){const a=Bt();tt(t,!0);let s=S(t,"id",19,()=>Vt(a)),o=S(t,"level",3,2),u=S(t,"ref",15,null),h=mt(t,["$$slots","$$events","$$legacy","id","level","children","child","ref"]);const A=ue.create({id:R(()=>s()),level:R(()=>o()),ref:R(()=>u(),f=>u(f))}),b=B(()=>Wt(h,A.props));var y=E(),v=k(y);{var w=f=>{var l=E(),i=k(l);X(i,()=>t.child,()=>({props:e(b)})),r(f,l)},C=f=>{var l=Nr();Ut(l,()=>({...e(b)}));var i=g(l);X(i,()=>t.children??ft),d(l),r(f,l)};$(v,f=>{t.child?f(w):f(C,!1)})}r(c,y),et()}var Rr=x("<button><!></button>");function Fr(c,t){const a=Bt();tt(t,!0);let s=S(t,"disabled",3,!1),o=S(t,"ref",15,null),u=S(t,"id",19,()=>Vt(a)),h=mt(t,["$$slots","$$events","$$legacy","disabled","ref","id","children","child"]);const A=le.create({disabled:R(()=>s()),id:R(()=>u()),ref:R(()=>o(),f=>o(f))}),b=B(()=>Wt(h,A.props));var y=E(),v=k(y);{var w=f=>{var l=E(),i=k(l);X(i,()=>t.child,()=>({props:e(b)})),r(f,l)},C=f=>{var l=Rr();Ut(l,()=>({type:"button",...e(b)}));var i=g(l);X(i,()=>t.children??ft),d(l),r(f,l)};$(v,f=>{t.child?f(w):f(C,!1)})}r(c,y),et()}var Dr=x("<div><!></div>");function Tr(c,t){const a=Bt();tt(t,!0);let s=S(t,"ref",15,null),o=S(t,"id",19,()=>Vt(a)),u=S(t,"forceMount",3,!1),h=S(t,"hiddenUntilFound",3,!1),A=mt(t,["$$slots","$$events","$$legacy","child","ref","id","forceMount","children","hiddenUntilFound"]);const b=ce.create({forceMount:R(()=>u()),id:R(()=>o()),ref:R(()=>s(),l=>s(l)),hiddenUntilFound:R(()=>h())}),y=B(()=>Wt(A,b.props));var v=E(),w=k(v);{var C=l=>{var i=E(),n=k(i);{let F=B(()=>({props:e(y),...b.snippetProps}));X(n,()=>t.child,()=>e(F))}r(l,i)},f=l=>{var i=Dr();Ut(i,()=>({...e(y)}));var n=g(i);X(n,()=>t.children??ft),d(i),r(l,i)};$(w,l=>{t.child?l(C):l(f,!1)})}r(c,v),et()}var Er=x('<button type="button" data-testid="expand-toggle"><!></button>'),Mr=x('<div class="w-6"></div>'),Br=x('<div class="flex gap-1 ml-auto"></div>'),Ur=x('<div class="pl-4 border-l-2 border-border ml-4" data-testid="tree-node-child"></div>'),Kr=x('<div><div class="flex items-center gap-1 py-2 px-2 rounded-md hover:bg-muted/50"><!> <button type="button" class="flex items-center gap-2 flex-1 text-left" data-testid="node-title"><!> <span class="font-medium"> </span> <!></button></div> <!></div>'),Vr=x('<p class="text-center text-muted-foreground py-8">No spec items found</p>'),Wr=x('<div class="space-y-1" data-testid="spec-tree"></div>'),qr=x('<div class="space-y-1" data-testid="spec-tree-container"><!></div>');function Or(c,t){tt(t,!1);const a=fe(),s=(i,n=ft,F=ft)=>{const m=te(()=>(e(h),n(),ct(()=>e(h).has(n().item._ulid)))),I=te(()=>(n(),ct(()=>n().children.length>0)));var M=Kr(),it=g(M),ut=g(it);{var Q=K=>{var T=Er();let rt;T.__click=()=>b(n().item._ulid);var ot=g(T);je(ot,{class:"h-4 w-4"}),d(T),q(()=>{rt=ae(T,1,"p-1 rounded hover:bg-muted transition-transform",null,rt,{"rotate-90":e(m)}),Et(T,"aria-expanded",e(m)),Et(T,"aria-label",e(m)?"Collapse":"Expand")}),r(K,T)},_=K=>{var T=Mr();r(K,T)};$(ut,K=>{e(I)?K(Q):K(_,!1)})}var D=p(ut,2);D.__click=()=>y(n().item);var O=g(D);{let K=te(()=>(n(),ct(()=>v(n().item.type))));It(O,{get class(){return e(K)},children:(T,rt)=>{Y();var ot=ht();q(()=>W(ot,(n(),ct(()=>n().item.type)))),r(T,ot)},$$slots:{default:!0}})}var z=p(O,2),j=g(z,!0);d(z);var L=p(z,2);{var nt=K=>{var T=Br();wt(T,5,()=>(n(),ct(()=>n().item.tags.slice(0,2))),Dt,(rt,ot)=>{It(rt,{variant:"outline",class:"text-xs",children:(Ht,ve)=>{Y();var N=ht();q(()=>W(N,e(ot))),r(Ht,N)},$$slots:{default:!0}})}),d(T),r(K,T)};$(L,K=>{n(),ct(()=>n().item.tags&&n().item.tags.length>0)&&K(nt)})}d(D),d(it);var _t=p(it,2);{var pt=K=>{var T=Ur();wt(T,5,()=>(n(),ct(()=>n().children)),rt=>rt.item._ulid,(rt,ot)=>{s(rt,()=>e(ot),()=>F()+1)}),d(T),r(K,T)};$(_t,K=>{e(I)&&e(m)&&K(pt)})}d(M),q(()=>{Et(M,"data-testid",`tree-node tree-node-${n(),ct(()=>n().item.type)??""}`),W(j,(n(),ct(()=>n().item.title)))}),r(i,M)};let o=S(t,"items",8);const u=ze();let h=fe(new Set);function A(i){const n=new Map,F=[];return i.forEach(m=>{n.set(m._ulid,{item:m,children:[]})}),i.forEach(m=>{const I=n.get(m._ulid);if(I)if(m.parent){const M=n.get(m.parent);M?M.children.push(I):F.push(I)}else F.push(I)}),F}function b(i){e(h).has(i)?e(h).delete(i):e(h).add(i),P(h,e(h))}function y(i){u("select",i._ulid)}function v(i){return{module:"bg-purple-500",feature:"bg-blue-500",requirement:"bg-green-500",trait:"bg-yellow-500"}[i]||"bg-gray-500"}Re(()=>he(o()),()=>{P(a,A(o()))}),Fe(),Ge();var w=qr(),C=g(w);{var f=i=>{var n=Vr();r(i,n)},l=i=>{var n=Wr();wt(n,5,()=>e(a),F=>F.item._ulid,(F,m)=>{s(F,()=>e(m),()=>0)}),d(n),r(i,n)};$(C,i=>{he(o()),ct(()=>o().length===0)?i(f):i(l,!1)})}d(w),r(c,w),et()}Te(["click"]);function zr(c,t){tt(t,!0);let a=S(t,"ref",15,null),s=S(t,"value",15),o=mt(t,["$$slots","$$events","$$legacy","ref","value"]);var u=E(),h=k(u);Mt(h,()=>kr,(A,b)=>{b(A,zt({"data-slot":"accordion"},()=>o,{get ref(){return a()},set ref(y){a(y)},get value(){return s()},set value(y){s(y)}}))}),r(c,u),et()}var Gr=x("<div><!></div>");function jr(c,t){tt(t,!0);let a=S(t,"ref",15,null),s=mt(t,["$$slots","$$events","$$legacy","ref","class","children"]);var o=E(),u=k(o);Mt(u,()=>Tr,(h,A)=>{A(h,zt({"data-slot":"accordion-content",class:"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm"},()=>s,{get ref(){return a()},set ref(b){a(b)},children:(b,y)=>{var v=Gr(),w=g(v);X(w,()=>t.children??ft),d(v),q(C=>ae(v,1,C),[()=>Ee(ie("pt-0 pb-4",t.class))]),r(b,v)},$$slots:{default:!0}}))}),r(c,o),et()}function Lr(c,t){tt(t,!0);let a=S(t,"ref",15,null),s=mt(t,["$$slots","$$events","$$legacy","ref","class"]);var o=E(),u=k(o);{let h=B(()=>ie("border-b last:border-b-0",t.class));Mt(u,()=>Cr,(A,b)=>{b(A,zt({"data-slot":"accordion-item",get class(){return e(h)}},()=>s,{get ref(){return a()},set ref(y){a(y)}}))})}r(c,o),et()}var Hr=x("<!> <!>",1);function Zr(c,t){tt(t,!0);let a=S(t,"ref",15,null),s=S(t,"level",3,3),o=mt(t,["$$slots","$$events","$$legacy","ref","class","level","children"]);var u=E(),h=k(u);Mt(h,()=>$r,(A,b)=>{b(A,{get level(){return s()},class:"flex",children:(y,v)=>{var w=E(),C=k(w);{let f=B(()=>ie("focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-start text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",t.class));Mt(C,()=>Fr,(l,i)=>{i(l,zt({"data-slot":"accordion-trigger",get class(){return e(f)}},()=>o,{get ref(){return a()},set ref(n){a(n)},children:(n,F)=>{var m=Hr(),I=k(m);X(I,()=>t.children??ft);var M=p(I,2);vr(M,{class:"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"}),r(n,m)},$$slots:{default:!0}}))})}r(y,w)},$$slots:{default:!0}})}),r(c,u),et()}var Qr=x('<div class="space-y-4"><!> <!> <!> <!></div>'),Yr=x('<div class="flex flex-col gap-4"><!> <p class="text-destructive"> </p></div>'),Jr=x('<div class="flex items-center gap-2"><!> <!></div> <!>',1),Xr=x('<div><h3 class="text-sm font-semibold mb-2">Tags</h3> <div class="flex flex-wrap gap-1"></div></div>'),ts=x('<span class="text-sm" data-testid="ac-given"> </span>'),es=x("<!> <span>Covered</span>",1),rs=x("<!> <span>Not covered</span>",1),ss=x("<!> <span>Coverage: Unknown</span>",1),as=x('<div class="space-y-2 text-sm pl-4"><div data-testid="ac-given-full"><span class="font-medium text-muted-foreground">Given:</span> </div> <div data-testid="ac-when-full"><span class="font-medium text-muted-foreground">When:</span> </div> <div data-testid="ac-then-full"><span class="font-medium text-muted-foreground">Then:</span> </div> <div data-testid="test-coverage-indicator"><!></div></div>'),is=x("<!> <!>",1),ns=x('<div data-testid="acceptance-criteria"><h3 class="text-sm font-semibold mb-2">Acceptance Criteria</h3> <!></div>'),os=x('<span data-testid="trait-chip"><!></span>'),ds=x('<div data-testid="traits-section"><h3 class="text-sm font-semibold mb-2">Traits</h3> <div class="flex flex-wrap gap-2"></div></div>'),ls=x('<a class="flex items-center gap-2 p-2 rounded border hover:bg-muted/50 transition-colors" data-testid="linked-task"><!> <span class="text-sm flex-1" data-testid="task-title"> </span> <!></a>'),cs=x('<div data-testid="implementation-section"><h3 class="text-sm font-semibold mb-2">Implementation</h3> <div class="space-y-2"></div></div>'),us=x('<div data-testid="implementation-section"><h3 class="text-sm font-semibold mb-2">Implementation</h3> <p class="text-sm text-muted-foreground">No tasks linked to this spec item yet.</p></div>'),vs=x('<div class="flex flex-col gap-6"><!> <!> <!> <!> <!></div>');function hs(c,t){tt(t,!0);let a=S(t,"open",15,!1),s=J(null),o=J(Ot([])),u=J(!1),h=J(null);async function A(v){P(u,!0),P(h,null);try{P(s,await Me(v),!0);const w=await Be(v);P(o,w.items,!0)}catch(w){P(h,w instanceof Error?w.message:"Failed to load item",!0),P(s,null),P(o,[],!0)}finally{P(u,!1)}}Tt(()=>{t.ref&&a()&&A(t.ref)});function b(v){return{pending:"bg-status-pending text-status-pending-fg",in_progress:"bg-status-in-progress text-status-in-progress-fg",pending_review:"bg-status-pending-review text-status-pending-review-fg",needs_work:"bg-status-needs-work text-status-needs-work-fg",blocked:"bg-status-blocked text-status-blocked-fg",completed:"bg-status-completed text-status-completed-fg",cancelled:"bg-status-cancelled text-status-cancelled-fg"}[v]||"bg-status-cancelled text-status-cancelled-fg"}function y(v){return{pending:"Pending",in_progress:"In Progress",pending_review:"Pending Review",needs_work:"Needs Work",blocked:"Blocked",completed:"Completed",cancelled:"Cancelled"}[v]||v}Le(c,{get open(){return a()},set open(v){a(v)},children:(v,w)=>{He(v,{class:"sm:max-w-2xl overflow-y-auto","data-testid":"spec-detail-panel",children:(C,f)=>{var l=E(),i=k(l);{var n=m=>{var I=Qr(),M=g(I);gt(M,{class:"h-8 w-3/4"});var it=p(M,2);gt(it,{class:"h-4 w-full"});var ut=p(it,2);gt(ut,{class:"h-4 w-full"});var Q=p(ut,2);gt(Q,{class:"h-4 w-2/3"}),d(I),r(m,I)},F=m=>{var I=E(),M=k(I);{var it=Q=>{var _=Yr(),D=g(_);me(D,{children:(j,L)=>{pe(j,{children:(nt,_t)=>{Y();var pt=ht("Error");r(nt,pt)},$$slots:{default:!0}})},$$slots:{default:!0}});var O=p(D,2),z=g(O,!0);d(O),d(_),q(()=>W(z,e(h))),r(Q,_)},ut=Q=>{var _=E(),D=k(_);{var O=z=>{var j=vs(),L=g(j);me(L,{children:(N,V)=>{var Z=Jr(),st=k(Z),H=g(st);It(H,{"data-testid":"implementation-status",children:(U,bt)=>{Y();var lt=ht();q(()=>W(lt,e(s).type)),r(U,lt)},$$slots:{default:!0}});var G=p(H,2);pe(G,{"data-testid":"spec-title",children:(U,bt)=>{Y();var lt=ht();q(()=>W(lt,e(s).title)),r(U,lt)},$$slots:{default:!0}}),d(st);var vt=p(st,2);{var dt=U=>{Ze(U,{"data-testid":"spec-description",children:(bt,lt)=>{Y();var at=ht();q(()=>W(at,e(s).description)),r(bt,at)},$$slots:{default:!0}})};$(vt,U=>{e(s).description&&U(dt)})}r(N,Z)},$$slots:{default:!0}});var nt=p(L,2);{var _t=N=>{var V=Xr(),Z=p(g(V),2);wt(Z,21,()=>e(s).tags,Dt,(st,H)=>{It(st,{variant:"outline",children:(G,vt)=>{Y();var dt=ht();q(()=>W(dt,e(H))),r(G,dt)},$$slots:{default:!0}})}),d(Z),d(V),r(N,V)};$(nt,N=>{e(s).tags.length>0&&N(_t)})}var pt=p(nt,2);{var K=N=>{var V=ns(),Z=p(g(V),2);zr(Z,{type:"multiple",class:"w-full",children:(st,H)=>{var G=E(),vt=k(G);wt(vt,17,()=>e(s).acceptance_criteria,Dt,(dt,U,bt)=>{Lr(dt,{get value(){return e(U)._ulid},"data-testid":"ac-item",children:(lt,at)=>{var At=is(),qt=k(At);Zr(qt,{"data-testid":"ac-expand-toggle",children:(Nt,we)=>{var yt=ts(),$t=g(yt);d(yt),q(()=>W($t,`AC-${bt+1}: ${e(U).given??""}`)),r(Nt,yt)},$$slots:{default:!0}});var xt=p(qt,2);jr(xt,{children:(Nt,we)=>{var yt=as(),$t=g(yt),Pe=p(g($t));d($t);var Zt=p($t,2),Ae=p(g(Zt));d(Zt);var Qt=p(Zt,2),Se=p(g(Qt));d(Qt);var Yt=p(Qt,2),ke=g(Yt);{var Ie=St=>{var Rt=es(),Jt=k(Rt);fr(Jt,{class:"w-3 h-3"}),Y(2),r(St,Rt)},Ce=St=>{var Rt=E(),Jt=k(Rt);{var Ne=kt=>{var Ft=rs(),Xt=k(Ft);mr(Xt,{class:"w-3 h-3"}),Y(2),r(kt,Ft)},$e=kt=>{var Ft=ss(),Xt=k(Ft);pr(Xt,{class:"w-3 h-3"}),Y(2),r(kt,Ft)};$(Jt,kt=>{e(U).covered===!1?kt(Ne):kt($e,!1)},!0)}r(St,Rt)};$(ke,St=>{e(U).covered===!0?St(Ie):St(Ce,!1)})}d(Yt),d(yt),q(()=>{W(Pe,` ${e(U).given??""}`),W(Ae,` ${e(U).when??""}`),W(Se,` ${e(U).then??""}`),ae(Yt,1,`text-xs mt-2 inline-flex items-center gap-1 ${e(U).covered===!0?"text-green-600 covered":e(U).covered===!1?"text-amber-600 uncovered":"text-muted-foreground unknown"}`)}),r(Nt,yt)},$$slots:{default:!0}}),r(lt,At)},$$slots:{default:!0}})}),r(st,G)},$$slots:{default:!0}}),d(V),r(N,V)};$(pt,N=>{e(s).acceptance_criteria&&e(s).acceptance_criteria.length>0&&N(K)})}var T=p(pt,2);{var rt=N=>{var V=ds(),Z=p(g(V),2);wt(Z,21,()=>e(s).traits,Dt,(st,H)=>{var G=os(),vt=g(G);hr(vt,{get ref(){return e(H)},type:"spec",class:"text-sm"}),d(G),r(st,G)}),d(Z),d(V),r(N,V)};$(T,N=>{e(s).traits&&e(s).traits.length>0&&N(rt)})}var ot=p(T,2);{var Ht=N=>{var V=cs(),Z=p(g(V),2);wt(Z,21,()=>e(o),Dt,(st,H)=>{var G=ls(),vt=g(G);{let at=B(()=>b(e(H).status));It(vt,{get class(){return e(at)},"data-testid":"task-status-badge",children:(At,qt)=>{Y();var xt=ht();q(Nt=>W(xt,Nt),[()=>y(e(H).status)]),r(At,xt)},$$slots:{default:!0}})}var dt=p(vt,2),U=g(dt,!0);d(dt);var bt=p(dt,2);{var lt=at=>{It(at,{variant:"secondary",class:"text-xs",children:(At,qt)=>{Y();var xt=ht();q(()=>W(xt,`${e(H).notes_count??""} notes`)),r(At,xt)},$$slots:{default:!0}})};$(bt,at=>{e(H).notes_count>0&&at(lt)})}d(G),q(at=>{Et(G,"href",`${_e??""}/tasks?ref=${at??""}`),W(U,e(H).title)},[()=>encodeURIComponent(e(H)._ulid)]),r(st,G)}),d(Z),d(V),r(N,V)},ve=N=>{var V=us();r(N,V)};$(ot,N=>{e(o).length>0?N(Ht):N(ve,!1)})}d(j),r(z,j)};$(D,z=>{e(s)&&z(O)},!0)}r(Q,_)};$(M,Q=>{e(h)?Q(it):Q(ut,!1)},!0)}r(m,I)};$(i,m=>{e(u)?m(n):m(F,!1)})}r(C,l)},$$slots:{default:!0}})},$$slots:{default:!0}}),et()}var fs=x('<div class="flex items-center gap-2 text-sm text-muted-foreground bg-muted/50 rounded-md px-3 py-2" data-testid="plan-filter-banner">Filtered by plan: <code class="bg-muted px-1 py-0.5 rounded text-xs"> </code> <a class="ml-auto text-primary hover:underline text-xs">Clear filter</a></div>'),ms=x('<div class="space-y-4"><!> <!> <!> <!></div>'),ps=x('<div class="rounded-md border border-destructive bg-destructive/10 p-4" data-testid="error-message" role="alert"><p class="text-destructive font-medium">Error loading spec items</p> <p class="text-sm text-destructive/80"> </p></div>'),gs=x('<div class="flex flex-col gap-4"><div class="flex items-center justify-between"><h1 class="text-3xl font-bold">Spec Items</h1> <p class="text-sm text-muted-foreground"> </p></div> <!> <!></div> <!>',1);function Ks(c,t){tt(t,!0);const a=()=>We(Oe,"$page",s),[s,o]=qe();let u=J(Ot([])),h=J(!0),A=J(null),b=J(null),y=J(!1),v=B(()=>a().url.searchParams.get("plan")??void 0);async function w(){P(h,!0),P(A,null);try{const _=await Ve(e(v)?{plan:e(v)}:void 0);P(u,_.items,!0)}catch(_){P(A,_ instanceof Error?_.message:"Failed to load spec items",!0),P(u,[],!0)}finally{P(h,!1)}}function C(_){P(b,_.detail,!0),P(y,!0);const D=new URL(window.location.href);D.searchParams.set("ref",_.detail),window.history.pushState({},"",D)}Tt(()=>{if(!e(y)&&e(b)){P(b,null);const _=new URL(window.location.href);_.searchParams.delete("ref"),window.history.pushState({},"",_)}}),Tt(()=>{const _=a().url.searchParams.get("ref");_&&_!==e(b)&&(P(b,_,!0),P(y,!0))}),Tt(()=>{e(v),Ue(),Ke()&&w()});var f=gs(),l=k(f),i=g(l),n=p(g(i),2),F=g(n);d(n),d(i);var m=p(i,2);{var I=_=>{var D=fs(),O=p(g(D)),z=g(O);d(O);var j=p(O,2);d(D),q(()=>{W(z,`@${e(v)??""}`),Et(j,"href",`${_e??""}/specs`)}),r(_,D)};$(m,_=>{e(v)&&_(I)})}var M=p(m,2);{var it=_=>{var D=ms(),O=g(D);gt(O,{class:"h-12 w-full"});var z=p(O,2);gt(z,{class:"h-12 w-full"});var j=p(z,2);gt(j,{class:"h-12 w-full"});var L=p(j,2);gt(L,{class:"h-12 w-full"}),d(D),r(_,D)},ut=_=>{var D=E(),O=k(D);{var z=L=>{var nt=ps(),_t=p(g(nt),2),pt=g(_t,!0);d(_t),d(nt),q(()=>W(pt,e(A))),r(L,nt)},j=L=>{Or(L,{get items(){return e(u)},$$events:{select:C}})};$(O,L=>{e(A)?L(z):L(j,!1)},!0)}r(_,D)};$(M,_=>{e(h)?_(it):_(ut,!1)})}d(l);var Q=p(l,2);hs(Q,{get ref(){return e(b)},get open(){return e(y)},set open(_){P(y,_,!0)}}),q(()=>W(F,`${e(u).length??""} items total`)),r(c,f),et(),o()}export{Ks as component};
@@ -0,0 +1 @@
1
+ import{f as _,a,t as p,c as Te}from"../chunks/DvA-KON-.js";import{c as Ze,o as et,a as tt}from"../chunks/CwELQvbx.js";import{p as de,a as ie,s as l,c as $,f as M,n as m,t as I,g as e,h as le,r as g,i as ge,D as Ne,q as N,a9 as Se,b as Z,d as ze,u as Ce,e as y}from"../chunks/D3vxvonu.js";import{s as U,d as at}from"../chunks/D9QNBZM2.js";import{i as oe,p as ne,r as _e,b as pe}from"../chunks/BysXJlZb.js";import{l as me,m as he,k as be,e as De,B as Pe,h as Ue,p as st,q as Ae,g as rt,i as lt,o as ot,T as Le}from"../chunks/DQA8NZIH.js";import{s as Ge,a as He}from"../chunks/pE6cYWlS.js";import{p as Je}from"../chunks/D82RulSH.js";import{b as ke}from"../chunks/D7LTux4W.js";import{g as je}from"../chunks/B8a0xDxR.js";import{I as Oe}from"../chunks/Eo4gF7ih.js";import{B as Ee}from"../chunks/BkOJ8DkV.js";import{S as Me,a as Ve,b as qe,c as O}from"../chunks/DzO4hlg9.js";import"../chunks/BUZujXJ2.js";import{i as nt}from"../chunks/BVA9Exy-.js";import{R as dt}from"../chunks/Cncwi6fQ.js";import{T as it,L as ut,b as ct}from"../chunks/DOno4cA2.js";import{s as vt,o as ft,a as $t,u as gt}from"../chunks/BP352uRn.js";import{S as _t,a as pt,b as mt,c as ht,d as bt}from"../chunks/C33JaVbg.js";const xt=!1,xa=Object.freeze(Object.defineProperty({__proto__:null,ssr:xt},Symbol.toStringTag,{value:"Module"}));var Pt=_("<!> <!> <!> <!> <!> <!> <!> <!>",1),kt=_("<!> <!>",1),wt=_("<!> <!> <!> <!>",1),yt=_("<!> <!>",1),Tt=_('<div class="flex items-end"><!></div>'),St=_('<div class="flex flex-wrap gap-4 p-4 bg-muted/50 rounded-lg" data-testid="filter-controls"><div class="flex-1 min-w-[140px]"><label for="status-filter" class="text-sm font-medium mb-2 block">Status</label> <!></div> <div class="flex-1 min-w-[140px]"><label for="automation-filter" class="text-sm font-medium mb-2 block">Automation</label> <!></div> <div class="flex-1 min-w-[140px]"><label for="tag-filter" class="text-sm font-medium mb-2 block">Tag</label> <!></div> <div class="flex-1 min-w-[140px]"><label for="assignee-filter" class="text-sm font-medium mb-2 block">Assignee</label> <!></div> <!></div>');function Ct(L,r){de(r,!0);const d=()=>He(Je,"$page",T),[T,n]=Ge(),P={"":"All Statuses",all:"All Statuses",pending:"Pending",in_progress:"In Progress",pending_review:"Pending Review",needs_work:"Needs Work",blocked:"Blocked",completed:"Completed",cancelled:"Cancelled"},v={"":"All",all:"All",eligible:"Eligible",needs_review:"Needs Review",manual_only:"Manual Only"};let z=le(()=>d().url.searchParams.get("status")||""),ee=le(()=>d().url.searchParams.get("tag")||""),j=le(()=>d().url.searchParams.get("assignee")||""),V=le(()=>d().url.searchParams.get("automation")||""),S=le(()=>e(z)||e(ee)||e(j)||e(V));function b(s,c){let i;Array.isArray(c)?i=c.length>0?c[c.length-1]:void 0:i=c;const f=new URLSearchParams(d().url.searchParams);!i||i==="all"?f.delete(s):f.set(s,i),f.delete("offset");const G=`${ke}/tasks?${f.toString()}`;je(G,{replaceState:!1,keepFocus:!0})}function H(){je(`${ke}/tasks`,{replaceState:!1})}let J=le(()=>e(z)||"all"),te=le(()=>e(V)||"all");var ae=St(),q=$(ae),xe=l($(q),2);Me(xe,{get value(){return e(J)},onValueChange:s=>b("status",s),children:(s,c)=>{var i=kt(),f=M(i);Ve(f,{id:"status-filter","data-testid":"filter-status",children:(F,re)=>{m();var E=p();I(()=>U(E,P[e(J)]||"All Statuses")),a(F,E)},$$slots:{default:!0}});var G=l(f,2);qe(G,{children:(F,re)=>{var E=Pt(),Y=M(E);O(Y,{value:"all",children:(u,B)=>{m();var x=p("All Statuses");a(u,x)},$$slots:{default:!0}});var w=l(Y,2);O(w,{value:"pending",children:(u,B)=>{m();var x=p("Pending");a(u,x)},$$slots:{default:!0}});var R=l(w,2);O(R,{value:"in_progress",children:(u,B)=>{m();var x=p("In Progress");a(u,x)},$$slots:{default:!0}});var k=l(R,2);O(k,{value:"pending_review",children:(u,B)=>{m();var x=p("Pending Review");a(u,x)},$$slots:{default:!0}});var h=l(k,2);O(h,{value:"needs_work",children:(u,B)=>{m();var x=p("Needs Work");a(u,x)},$$slots:{default:!0}});var C=l(h,2);O(C,{value:"blocked",children:(u,B)=>{m();var x=p("Blocked");a(u,x)},$$slots:{default:!0}});var t=l(C,2);O(t,{value:"completed",children:(u,B)=>{m();var x=p("Completed");a(u,x)},$$slots:{default:!0}});var o=l(t,2);O(o,{value:"cancelled",children:(u,B)=>{m();var x=p("Cancelled");a(u,x)},$$slots:{default:!0}}),a(F,E)},$$slots:{default:!0}}),a(s,i)},$$slots:{default:!0}}),g(q);var K=l(q,2),ue=l($(K),2);Me(ue,{get value(){return e(te)},onValueChange:s=>b("automation",s),children:(s,c)=>{var i=yt(),f=M(i);Ve(f,{id:"automation-filter","data-testid":"filter-automation",children:(F,re)=>{m();var E=p();I(()=>U(E,v[e(te)]||"All")),a(F,E)},$$slots:{default:!0}});var G=l(f,2);qe(G,{children:(F,re)=>{var E=wt(),Y=M(E);O(Y,{value:"all",children:(h,C)=>{m();var t=p("All");a(h,t)},$$slots:{default:!0}});var w=l(Y,2);O(w,{value:"eligible",children:(h,C)=>{m();var t=p("Eligible");a(h,t)},$$slots:{default:!0}});var R=l(w,2);O(R,{value:"needs_review",children:(h,C)=>{m();var t=p("Needs Review");a(h,t)},$$slots:{default:!0}});var k=l(R,2);O(k,{value:"manual_only",children:(h,C)=>{m();var t=p("Manual Only");a(h,t)},$$slots:{default:!0}}),a(F,E)},$$slots:{default:!0}}),a(s,i)},$$slots:{default:!0}}),g(K);var Q=l(K,2),se=l($(Q),2);Oe(se,{id:"tag-filter","data-testid":"filter-tag",type:"text",placeholder:"Filter by tag...",get value(){return e(ee)},oninput:s=>b("tag",s.target.value)}),g(Q);var A=l(Q,2),D=l($(A),2);Oe(D,{id:"assignee-filter","data-testid":"filter-assignee",type:"text",placeholder:"Filter by assignee...",get value(){return e(j)},oninput:s=>b("assignee",s.target.value)}),g(A);var W=l(A,2);{var X=s=>{var c=Tt(),i=$(c);Ee(i,{variant:"outline",onclick:H,children:(f,G)=>{m();var F=p("Clear Filters");a(f,F)},$$slots:{default:!0}}),g(c),a(s,c)};oe(W,s=>{e(S)&&s(X)})}g(ae),a(L,ae),ie(),n()}var Lt=_('<div data-slot="table-container" class="relative w-full overflow-x-auto"><table><!></table></div>');function At(L,r){de(r,!0);let d=ne(r,"ref",15,null),T=_e(r,["$$slots","$$events","$$legacy","ref","class","children"]);var n=Lt(),P=$(n);me(P,z=>({"data-slot":"table",class:z,...T}),[()=>he("w-full caption-bottom text-sm",r.class)]);var v=$(P);be(v,()=>r.children??ge),g(P),pe(P,z=>d(z),()=>d()),g(n),a(L,n),ie()}var Et=_("<tbody><!></tbody>");function Ft(L,r){de(r,!0);let d=ne(r,"ref",15,null),T=_e(r,["$$slots","$$events","$$legacy","ref","class","children"]);var n=Et();me(n,v=>({"data-slot":"table-body",class:v,...T}),[()=>he("[&_tr:last-child]:border-0",r.class)]);var P=$(n);be(P,()=>r.children??ge),g(n),pe(n,v=>d(v),()=>d()),a(L,n),ie()}var It=_("<td><!></td>");function ce(L,r){de(r,!0);let d=ne(r,"ref",15,null),T=_e(r,["$$slots","$$events","$$legacy","ref","class","children"]);var n=It();me(n,v=>({"data-slot":"table-cell",class:v,...T}),[()=>he("bg-clip-padding p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pe-0",r.class)]);var P=$(n);be(P,()=>r.children??ge),g(n),pe(n,v=>d(v),()=>d()),a(L,n),ie()}var Rt=_("<th><!></th>");function $e(L,r){de(r,!0);let d=ne(r,"ref",15,null),T=_e(r,["$$slots","$$events","$$legacy","ref","class","children"]);var n=Rt();me(n,v=>({"data-slot":"table-head",class:v,...T}),[()=>he("text-foreground h-10 bg-clip-padding px-2 text-start align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pe-0",r.class)]);var P=$(n);be(P,()=>r.children??ge),g(n),pe(n,v=>d(v),()=>d()),a(L,n),ie()}var Bt=_("<thead><!></thead>");function Nt(L,r){de(r,!0);let d=ne(r,"ref",15,null),T=_e(r,["$$slots","$$events","$$legacy","ref","class","children"]);var n=Bt();me(n,v=>({"data-slot":"table-header",class:v,...T}),[()=>he("[&_tr]:border-b",r.class)]);var P=$(n);be(P,()=>r.children??ge),g(n),pe(n,v=>d(v),()=>d()),a(L,n),ie()}var zt=_("<tr><!></tr>");function We(L,r){de(r,!0);let d=ne(r,"ref",15,null),T=_e(r,["$$slots","$$events","$$legacy","ref","class","children"]);var n=zt();me(n,v=>({"data-slot":"table-row",class:v,...T}),[()=>he("hover:[&,&>svelte-css-wrapper]:[&>th,td]:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",r.class)]);var P=$(n);be(P,()=>r.children??ge),g(n),pe(n,v=>d(v),()=>d()),a(L,n),ie()}var Dt=_("<!> <!> <!> <!> <!> <!>",1),Ut=_('<span data-testid="task-title" class="truncate"> </span>'),jt=_('<span data-testid="task-priority"> </span>'),Ot=_('<span class="text-muted-foreground text-sm">—</span>'),Mt=_('<div class="flex flex-wrap gap-1"><!> <!></div>'),Vt=_('<tr data-testid="task-list-item" role="button" tabindex="0"><!><!><!><!><!><!></tr>'),qt=_("<!> <!>",1),Wt=_('<div class="rounded-md border overflow-hidden" data-testid="task-list"><!></div>');function Gt(L,r){de(r,!1);let d=ne(r,"tasks",8),T=ne(r,"updatedTaskIds",24,()=>new Set),n=ne(r,"onSelectTask",8,void 0);const P=Ze();function v(b){console.log("[TaskList] selectTask called for:",b._ulid,b.title),n()&&(console.log("[TaskList] Calling onSelectTask callback"),n()(b._ulid)),P("select",b._ulid)}function z(b){return{pending:"bg-status-pending text-status-pending-fg",in_progress:"bg-status-in-progress text-status-in-progress-fg",pending_review:"bg-status-pending-review text-status-pending-review-fg",needs_work:"bg-status-needs-work text-status-needs-work-fg",blocked:"bg-status-blocked text-status-blocked-fg",completed:"bg-status-completed text-status-completed-fg",cancelled:"bg-status-cancelled text-status-cancelled-fg"}[b]||"bg-status-cancelled text-status-cancelled-fg"}function ee(b){return{pending:"Pending",in_progress:"In Progress",pending_review:"Pending Review",needs_work:"Needs Work",blocked:"Blocked",completed:"Completed",cancelled:"Cancelled"}[b]||b}function j(b){return b===1?"text-red-600 font-bold":b===2?"text-orange-600 font-semibold":b===3?"text-yellow-600":"text-gray-600"}nt();var V=Wt(),S=$(V);At(S,{class:"table-fixed",children:(b,H)=>{var J=qt(),te=M(J);Nt(te,{children:(q,xe)=>{We(q,{children:(K,ue)=>{var Q=Dt(),se=M(Q);$e(se,{class:"w-[40%]",children:(c,i)=>{m();var f=p("Title");a(c,f)},$$slots:{default:!0}});var A=l(se,2);$e(A,{class:"w-[12%]",children:(c,i)=>{m();var f=p("Status");a(c,f)},$$slots:{default:!0}});var D=l(A,2);$e(D,{class:"w-[8%]",children:(c,i)=>{m();var f=p("Priority");a(c,f)},$$slots:{default:!0}});var W=l(D,2);$e(W,{class:"w-[15%]",children:(c,i)=>{m();var f=p("Spec");a(c,f)},$$slots:{default:!0}});var X=l(W,2);$e(X,{class:"w-[7%]",children:(c,i)=>{m();var f=p("Notes");a(c,f)},$$slots:{default:!0}});var s=l(X,2);$e(s,{class:"w-[18%]",children:(c,i)=>{m();var f=p("Tags");a(c,f)},$$slots:{default:!0}}),a(K,Q)},$$slots:{default:!0}})},$$slots:{default:!0}});var ae=l(te,2);Ft(ae,{children:(q,xe)=>{var K=Te(),ue=M(K);{var Q=A=>{We(A,{children:(D,W)=>{ce(D,{colspan:6,class:"text-center text-muted-foreground",children:(X,s)=>{m();var c=p("No tasks found");a(X,c)},$$slots:{default:!0}})},$$slots:{default:!0}})},se=A=>{var D=Te(),W=M(D);De(W,1,d,Ue,(X,s)=>{const c=Se(()=>(Ne(T()),e(s),N(()=>T().has(e(s)._ulid))));var i=Vt();i.__click=()=>v(e(s)),i.__keydown=w=>w.key==="Enter"&&v(e(s));var f=$(i);ce(f,{class:"font-medium truncate",children:(w,R)=>{var k=Ut(),h=$(k,!0);g(k),I(()=>U(h,(e(s),N(()=>e(s).title)))),a(w,k)},$$slots:{default:!0}});var G=l(f);ce(G,{children:(w,R)=>{{let k=Se(()=>(e(s),N(()=>z(e(s).status))));Pe(w,{"data-testid":"task-status-badge",get class(){return e(k)},children:(h,C)=>{m();var t=p();I(o=>U(t,o),[()=>(e(s),N(()=>ee(e(s).status)))]),a(h,t)},$$slots:{default:!0}})}},$$slots:{default:!0}});var F=l(G);{let w=Se(()=>(e(s),N(()=>j(e(s).priority))));ce(F,{get class(){return e(w)},children:(R,k)=>{var h=jt(),C=$(h);g(h),I(()=>U(C,`P${e(s),N(()=>e(s).priority)??""}`)),a(R,h)},$$slots:{default:!0}})}var re=l(F);ce(re,{"data-testid":"task-spec-ref",class:"truncate",children:(w,R)=>{var k=Te(),h=M(k);{var C=o=>{dt(o,{get ref(){return e(s),N(()=>e(s).spec_ref)},type:"spec",stopPropagation:!0,class:"text-sm truncate"})},t=o=>{var u=Ot();a(o,u)};oe(h,o=>{e(s),N(()=>e(s).spec_ref)?o(C):o(t,!1)})}a(w,k)},$$slots:{default:!0}});var E=l(re);ce(E,{children:(w,R)=>{Pe(w,{"data-testid":"task-notes-count",variant:"secondary",children:(k,h)=>{m();var C=p();I(()=>U(C,(e(s),N(()=>e(s).notes_count)))),a(k,C)},$$slots:{default:!0}})},$$slots:{default:!0}});var Y=l(E);ce(Y,{"data-testid":"task-tags",children:(w,R)=>{var k=Mt(),h=$(k);De(h,1,()=>(e(s),N(()=>e(s).tags.slice(0,3))),Ue,(o,u)=>{Pe(o,{variant:"outline",class:"text-xs",children:(B,x)=>{m();var ve=p();I(()=>U(ve,e(u))),a(B,ve)},$$slots:{default:!0}})});var C=l(h,2);{var t=o=>{Pe(o,{variant:"outline",class:"text-xs",children:(u,B)=>{m();var x=p();I(()=>U(x,`+${e(s),N(()=>e(s).tags.length-3)??""}`)),a(u,x)},$$slots:{default:!0}})};oe(C,o=>{e(s),N(()=>e(s).tags.length>3)&&o(t)})}g(k),a(w,k)},$$slots:{default:!0}}),g(i),I(()=>{st(i,1,`cursor-pointer hover:bg-muted/50 transition-colors duration-300 border-b ${e(c)?"bg-primary/10 animate-pulse":""}`),Ae(i,"data-task-ref",(e(s),N(()=>e(s).slugs?.[0]||e(s)._ulid)))}),a(X,i)}),a(A,D)};oe(ue,A=>{Ne(d()),N(()=>d().length===0)?A(Q):A(se,!1)})}a(q,K)},$$slots:{default:!0}}),a(b,J)},$$slots:{default:!0}}),g(V),a(L,V),ie()}at(["click","keydown"]);var Ht=_('<p class="text-muted-foreground"> </p>'),Jt=_('<div class="flex items-center gap-2 text-sm text-muted-foreground bg-muted/50 rounded-md px-3 py-2" data-testid="plan-filter-banner">Filtered by plan: <code class="bg-muted px-1 py-0.5 rounded text-xs"> </code> <a class="ml-auto text-primary hover:underline text-xs">Clear filter</a></div>'),Kt=_('<div class="bg-destructive/10 text-destructive p-4 rounded-lg" data-testid="error-message" role="alert"> </div>'),Qt=_('<div class="flex justify-center items-center py-12"><p class="text-muted-foreground">Loading tasks...</p></div>'),Xt=_('<span class="font-mono text-xs"> </span>'),Yt=_("<!> <!>",1),Zt=_("<!> <!>",1),ea=_('<div class="flex flex-col gap-6 p-6 min-w-0"><div class="flex items-center justify-between"><div><h1 class="text-3xl font-bold mb-2">Tasks</h1> <!></div> <div class="flex items-center gap-1 border rounded-lg p-0.5"><a title="Board view"><!></a> <!></div></div> <!> <!> <!> <!></div> <!>',1);function Pa(L,r){de(r,!0);const d=()=>He(Je,"$page",T),[T,n]=Ge();let P=Z(ze([])),v=Z(0),z=Z(!0),ee=Z(""),j=Z(ze(new Set)),V=Z(!1),S=Z(null),b=Z(!1),H=Z(""),J=le(()=>({status:d().url.searchParams.get("status")||void 0,tag:d().url.searchParams.get("tag")||void 0,assignee:d().url.searchParams.get("assignee")||void 0,automation:d().url.searchParams.get("automation")||void 0,plan:d().url.searchParams.get("plan")||void 0,limit:50,offset:0})),te=Z("");Ce(()=>{const{status:t,tag:o,assignee:u,automation:B,plan:x,limit:ve,offset:Fe}=e(J);rt(),lt()&&ae()}),Ce(()=>{const t=d().url.searchParams.get("ref");t&&t!==e(te)&&(y(te,t,!0),q(t))});async function ae(){y(z,!0),y(ee,"");try{const t=await ot(e(J));y(P,t.items,!0),y(v,t.total,!0)}catch(t){y(ee,t instanceof Error?t.message:"Failed to load tasks",!0),console.error("Error loading tasks:",t)}finally{y(z,!1)}}async function q(t){y(b,!0),y(H,""),y(V,!0);try{y(S,await Le(t),!0)}catch(o){y(H,o instanceof Error?o.message:"Failed to load task details",!0),console.error("Error loading task:",o)}finally{y(b,!1)}}function xe(t){q(t.detail)}async function K(){if(e(S))try{y(S,await Le(e(S)._ulid),!0)}catch(t){console.error("Error reloading task:",t)}ae()}Ce(()=>{e(V)||(y(S,null),y(H,""),y(te,""))});function ue(t){t.data?.ulid&&(e(j).add(t.data.ulid),y(j,new Set(e(j)),!0),setTimeout(()=>{e(j).delete(t.data.ulid),y(j,new Set(e(j)),!0)},3e3)),ae(),e(S)&&t.data?.ulid===e(S)._ulid&&Le(e(S)._ulid).then(o=>{y(S,o,!0)}).catch(o=>{console.error("Error reloading task:",o)})}et(()=>{vt(["tasks"]),ft("tasks",ue)}),tt(()=>{$t("tasks",ue),gt(["tasks"])});let Q=le(()=>e(S)?.slugs?.[0]??e(S)?._ulid?.slice(0,8)??"");var se=ea(),A=M(se),D=$(A),W=$(D),X=l($(W),2);{var s=t=>{var o=Ht(),u=$(o);g(o),I(()=>U(u,`Showing ${e(P).length??""} of ${e(v)??""} tasks`)),a(t,o)};oe(X,t=>{e(z)||t(s)})}g(W);var c=l(W,2),i=$(c),f=$(i);Ee(f,{variant:"ghost",size:"icon-sm","aria-pressed":"false",children:(t,o)=>{ut(t,{class:"size-4"})},$$slots:{default:!0}}),g(i);var G=l(i,2);Ee(G,{variant:"ghost",size:"icon-sm",class:"bg-accent",title:"List view","aria-pressed":"true",children:(t,o)=>{ct(t,{class:"size-4"})},$$slots:{default:!0}}),g(c),g(D);var F=l(D,2);Ct(F,{});var re=l(F,2);{var E=t=>{var o=Jt(),u=l($(o)),B=$(u);g(u);var x=l(u,2);g(o),I(()=>{U(B,`@${e(J).plan??""}`),Ae(x,"href",`${ke??""}/tasks`)}),a(t,o)};oe(re,t=>{e(J).plan&&t(E)})}var Y=l(re,2);{var w=t=>{var o=Kt(),u=$(o,!0);g(o),I(()=>U(u,e(ee))),a(t,o)};oe(Y,t=>{e(ee)&&t(w)})}var R=l(Y,2);{var k=t=>{var o=Qt();a(t,o)},h=t=>{Gt(t,{get tasks(){return e(P)},get updatedTaskIds(){return e(j)},onSelectTask:q,$$events:{select:xe}})};oe(R,t=>{e(z)?t(k):t(h,!1)})}g(A);var C=l(A,2);_t(C,{get open(){return e(V)},set open(t){y(V,t,!0)},children:(t,o)=>{pt(t,{class:"sm:max-w-2xl overflow-y-auto","data-testid":"task-detail-panel",children:(u,B)=>{var x=Zt(),ve=M(x);{var Fe=we=>{mt(we,{children:(Ke,ta)=>{var Re=Yt(),Be=M(Re);ht(Be,{"data-testid":"task-detail-title",children:(ye,Xe)=>{m();var fe=p();I(()=>U(fe,e(S).title)),a(ye,fe)},$$slots:{default:!0}});var Qe=l(Be,2);bt(Qe,{children:(ye,Xe)=>{var fe=Xt(),Ye=$(fe);g(fe),I(()=>U(Ye,`@${e(Q)??""}`)),a(ye,fe)},$$slots:{default:!0}}),a(Ke,Re)},$$slots:{default:!0}})};oe(ve,we=>{e(S)&&!e(b)&&!e(H)&&we(Fe)})}var Ie=l(ve,2);it(Ie,{get task(){return e(S)},get loading(){return e(b)},get error(){return e(H)},onTaskUpdated:K}),a(u,x)},$$slots:{default:!0}})},$$slots:{default:!0}}),I(()=>Ae(i,"href",`${ke??""}/tasks/board`)),a(L,se),ie(),n()}export{Pa as component,xa as universal};
@@ -0,0 +1 @@
1
+ import{c as se,a as o,f as v,t as be}from"../chunks/DvA-KON-.js";import{o as je,a as Re}from"../chunks/CwELQvbx.js";import{p as ne,f as G,i as Ne,a as de,c as r,r as s,s as i,g as a,h as K,t as Q,n as $,u as fe,e as g,b as ae,d as pe}from"../chunks/D3vxvonu.js";import{d as De,s as S}from"../chunks/D9QNBZM2.js";import{s as Le,r as Oe,i as A,p as me}from"../chunks/BysXJlZb.js";import{k as Ie,p as xe,q as oe,e as ie,B as Ce,h as ge,T as ye,g as Me,i as Ue,o as Ee,A as ke}from"../chunks/DQA8NZIH.js";import{a as Fe,s as qe}from"../chunks/pE6cYWlS.js";import{p as Ve}from"../chunks/D82RulSH.js";import{s as Ge,o as we,a as Te,u as He}from"../chunks/BP352uRn.js";import{f as Je,g as Ke,a as Qe,T as We,d as Xe,L as ze,b as Ye}from"../chunks/DOno4cA2.js";import{R as Be}from"../chunks/Cncwi6fQ.js";import{I as Ze}from"../chunks/B5wTVqxm.js";import{G as $e}from"../chunks/BYzrIfX8.js";import{T as et,B as tt,c as at,p as st}from"../chunks/DjcCz-PU.js";import{A as rt}from"../chunks/DBYE9jOd.js";import{B as ot}from"../chunks/iEtR5cV6.js";import{T as it}from"../chunks/CrCIbn0C.js";import{c as ce}from"../chunks/DAx07bEQ.js";import{a as lt,b as nt,c as dt,d as vt,D as ct}from"../chunks/DkltRNvh.js";import"../chunks/BUZujXJ2.js";import{S as te}from"../chunks/DAMmvwn4.js";import{B as Pe}from"../chunks/BkOJ8DkV.js";import{b as ut}from"../chunks/D7LTux4W.js";const ft=!1,ba=Object.freeze(Object.defineProperty({__proto__:null,ssr:ft},Symbol.toStringTag,{value:"Module"}));function mt(W,t){ne(t,!0);let b=Oe(t,["$$slots","$$events","$$legacy"]);const D=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"}]];Ze(W,Le({name:"message-square"},()=>b,{get iconNode(){return D},children:(u,h)=>{var c=se(),y=G(c);Ie(y,()=>t.children??Ne),o(u,c)},$$slots:{default:!0}})),de()}var gt=v('<span class="ml-auto flex items-center gap-0.5 text-[10px] text-status-blocked"><!> Blocked</span>'),_t=v('<span class="ml-auto flex items-center gap-0.5 text-[10px] text-status-cancelled"><!> Cancelled</span>'),pt=v('<span class="text-[10px] text-muted-foreground"> </span>'),xt=v('<div class="flex flex-wrap gap-1 mb-2" data-testid="task-tags"><!> <!></div>'),kt=v('<div class="mb-2" data-testid="spec-ref-link"><!></div>'),bt=v('<button data-testid="task-card"><div class="flex items-center gap-1.5 mb-1.5"><span data-testid="priority-badge"> </span> <span class="flex items-center gap-1 text-[10px] text-muted-foreground"><span aria-hidden="true"></span> </span> <!> <!></div> <p class="text-sm font-medium leading-snug line-clamp-2 mb-1" data-testid="task-title"> </p> <p class="text-[11px] font-mono text-muted-foreground mb-1.5" data-testid="task-slug"> </p> <!> <!> <div class="flex items-center gap-3 text-[10px] text-muted-foreground pt-1.5 border-t border-border/50" data-testid="task-metadata"><span class="flex items-center gap-0.5"><!> </span> <span class="flex items-center gap-0.5"><!> </span> <span class="ml-auto"> </span></div></button>');function ht(W,t){ne(t,!0);let b=K(()=>Ke(t.task.status)),D=K(()=>t.task.status==="blocked"),u=K(()=>t.task.status==="cancelled"),h=K(()=>t.task.slugs?.[0]??t.task._ulid.slice(0,8));var c=bt();c.__click=()=>t.onclick(t.task);var y=r(c),P=r(y),H=r(P);s(P);var _=i(P,2),X=r(_),C=i(X);s(_);var p=i(_,2);{var w=l=>{var n=gt(),x=r(n);et(x,{class:"size-3"}),$(),s(n),o(l,n)};A(p,l=>{a(D)&&l(w)})}var j=i(p,2);{var k=l=>{var n=_t(),x=r(n);tt(x,{class:"size-3"}),$(),s(n),o(l,n)};A(j,l=>{a(u)&&l(k)})}s(y);var f=i(y,2),B=r(f,!0);s(f);var R=i(f,2),L=r(R);s(R);var O=i(R,2);{var T=l=>{var n=xt(),x=r(n);ie(x,17,()=>t.task.tags.slice(0,3),ge,(d,m)=>{Ce(d,{variant:"secondary",class:"text-[10px] px-1.5 py-0",children:(E,ue)=>{$();var ee=be();Q(()=>S(ee,a(m))),o(E,ee)},$$slots:{default:!0}})});var U=i(x,2);{var e=d=>{var m=pt(),E=r(m);s(m),Q(()=>S(E,`+${t.task.tags.length-3}`)),o(d,m)};A(U,d=>{t.task.tags.length>3&&d(e)})}s(n),o(l,n)};A(O,l=>{t.task.tags?.length>0&&l(T)})}var z=i(O,2);{var F=l=>{var n=kt(),x=r(n);Be(x,{get ref(){return t.task.spec_ref},type:"spec",inline:!0,class:"text-[11px]"}),s(n),o(l,n)};A(z,l=>{t.task.spec_ref&&l(F)})}var q=i(z,2),N=r(q),I=r(N);mt(I,{class:"size-3"});var V=i(I);s(N);var J=i(N,2),Z=r(J);$e(Z,{class:"size-3"});var re=i(Z);s(J);var M=i(J,2),Y=r(M,!0);s(M),s(q),s(c),Q(l=>{xe(c,1,`group w-full text-left rounded-lg border bg-card p-3 shadow-sm transition-colors hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ${a(D)?"border-status-blocked/50":a(u)?"border-status-cancelled/50 opacity-60":"border-border"}`),oe(c,"data-task-id",t.task._ulid),xe(P,1,`inline-flex items-center justify-center size-5 rounded-full text-[10px] font-bold leading-none ${t.task.priority===1?"bg-destructive text-primary-foreground":t.task.priority===2?"bg-status-in-progress text-status-in-progress-fg":"bg-muted text-muted-foreground"}`),oe(P,"title",`Priority ${t.task.priority??""}`),S(H,`P${t.task.priority??""}`),xe(X,1,`size-2 rounded-full ${a(b).bg??""}`),S(C,` ${a(b).label??""}`),S(B,t.task.title),S(L,`@${a(h)??""}`),oe(N,"title",`${t.task.notes_count??""} notes`),S(V,` ${t.task.notes_count??""}`),oe(J,"title",`${t.task.depends_on?.length??0??""} dependencies`),S(re,` ${t.task.depends_on?.length??0??""}`),oe(M,"title",t.task.created_at),S(Y,l)},[()=>Je(t.task.created_at)]),o(W,c),de()}De(["click"]);var yt=v('<p>No backlog tasks.</p> <p class="mt-1">Create tasks with <code class="bg-muted px-1 rounded">kspec task add</code></p>',1),wt=v('<p>No tasks ready for work.</p> <p class="mt-1">Mark tasks eligible with <code class="bg-muted px-1 rounded">kspec task set --automation eligible</code></p>',1),Tt=v('<p>No active work.</p> <p class="mt-1">Start a task with <code class="bg-muted px-1 rounded">kspec task start</code></p>',1),zt=v('<p>Nothing awaiting review.</p> <p class="mt-1">Submit work with <code class="bg-muted px-1 rounded">kspec task submit</code></p>',1),Pt=v('<p>No completed tasks yet.</p> <p class="mt-1">Tasks appear here after completion.</p>',1),Ct=v("<p>No tasks in this column.</p>"),Bt=v('<div class="flex flex-col items-center justify-center py-8 text-muted-foreground text-xs text-center px-2" data-testid="column-empty"><!></div>'),St=v('<div class="flex flex-col min-w-0" data-testid="board-column"><div class="flex items-center gap-2 mb-3 px-1"><h2 class="text-sm font-semibold"> </h2> <span class="inline-flex items-center justify-center min-w-[20px] h-5 rounded-full bg-muted px-1.5 text-[10px] font-medium text-muted-foreground"> </span></div> <div class="flex flex-col gap-2 overflow-y-auto flex-1 pb-4 pr-1"><!></div></div>');function At(W,t){ne(t,!0);var b=St(),D=r(b),u=r(D),h=r(u,!0);s(u);var c=i(u,2),y=r(c,!0);s(c),s(D);var P=i(D,2),H=r(P);{var _=C=>{var p=Bt(),w=r(p);{var j=f=>{var B=yt();$(2),o(f,B)},k=f=>{var B=se(),R=G(B);{var L=T=>{var z=wt();$(2),o(T,z)},O=T=>{var z=se(),F=G(z);{var q=I=>{var V=Tt();$(2),o(I,V)},N=I=>{var V=se(),J=G(V);{var Z=M=>{var Y=zt();$(2),o(M,Y)},re=M=>{var Y=se(),l=G(Y);{var n=U=>{var e=Pt();$(2),o(U,e)},x=U=>{var e=Ct();o(U,e)};A(l,U=>{t.column.id==="done"?U(n):U(x,!1)},!0)}o(M,Y)};A(J,M=>{t.column.id==="review"?M(Z):M(re,!1)},!0)}o(I,V)};A(F,I=>{t.column.id==="in_progress"?I(q):I(N,!1)},!0)}o(T,z)};A(R,T=>{t.column.id==="ready"?T(L):T(O,!1)},!0)}o(f,B)};A(w,f=>{t.column.id==="backlog"?f(j):f(k,!1)})}s(p),o(C,p)},X=C=>{var p=se(),w=G(p);ie(w,17,()=>t.column.tasks,j=>j._ulid,(j,k)=>{ht(j,{get task(){return a(k)},get onclick(){return t.onCardClick}})}),o(C,p)};A(H,C=>{t.column.tasks.length===0?C(_):C(X,!1)})}s(P),s(b),Q(()=>{oe(b,"data-column-id",t.column.id),S(h,t.column.label),S(y,t.column.tasks.length)}),o(W,b),de()}var jt=v('<div class="truncate mb-1" data-testid="fleet-task-title"><!></div>'),Rt=v('<div class="truncate"> </div>'),Nt=v('<div class="mt-1.5 rounded bg-muted/50 p-1.5 font-mono text-[10px] leading-tight text-muted-foreground overflow-hidden max-h-14" aria-live="polite" data-testid="fleet-output"></div>'),Dt=v('<div class="mt-1.5 flex items-center gap-1 text-[10px] text-muted-foreground/50" aria-live="polite" data-testid="fleet-output-empty"><!> <span>Awaiting output...</span></div>'),Lt=v('<div class="flex-shrink-0 w-72 rounded-lg border bg-card p-3 ds-breathe" data-testid="fleet-card"><div class="flex items-center gap-2 mb-1.5"><!> <span class="text-xs font-medium truncate" data-testid="fleet-agent-name"> </span></div> <!> <div class="flex items-center gap-1.5 text-[10px] text-muted-foreground mb-1.5"><span class="relative flex size-2"><span class="absolute inline-flex h-full w-full rounded-full bg-status-in-progress opacity-75 ds-breathe"></span> <span class="relative inline-flex size-2 rounded-full bg-status-in-progress"></span></span> <span> </span></div> <!></div>'),Ot=v('<div class="mb-4" data-testid="active-fleet-row"><div class="flex items-center gap-2 mb-2"><!> <h3 class="text-sm font-medium">Active Fleet</h3> <!></div> <div class="flex gap-3 overflow-x-auto pb-2"></div></div>');function It(W,t){ne(t,!0);let b=me(t,"outputLines",19,()=>({})),D=me(t,"taskTitles",19,()=>({})),u=K(()=>t.status?.active_invocations??[]),h=K(()=>t.status?.dispatch_enabled&&a(u).length>0),c=K(()=>Object.fromEntries((t.status?.agent_definitions??[]).map(_=>[_.id,_.name])));var y=se(),P=G(y);{var H=_=>{var X=Ot(),C=r(X),p=r(C);rt(p,{class:"size-4 text-status-in-progress"});var w=i(p,4);Ce(w,{variant:"secondary",class:"text-[10px]",children:(k,f)=>{$();var B=be();Q(()=>S(B,`${a(u).length??""} running`)),o(k,B)},$$slots:{default:!0}}),s(C);var j=i(C,2);ie(j,21,()=>a(u),k=>k.session_id,(k,f)=>{const B=K(()=>b()[a(f).session_id]??[]),R=K(()=>a(f).task_ref?D()[a(f).task_ref]:void 0),L=K(()=>a(c)[a(f).agent_id]??a(f).agent_id);var O=Lt(),T=r(O),z=r(T);ot(z,{class:"size-4 text-muted-foreground"});var F=i(z,2),q=r(F,!0);s(F),s(T);var N=i(T,2);{var I=l=>{var n=jt(),x=r(n);Be(x,{get ref(){return a(f).task_ref},type:"task",get title(){return a(R)},class:"text-xs"}),s(n),o(l,n)};A(N,l=>{a(f).task_ref&&l(I)})}var V=i(N,2),J=i(r(V),2),Z=r(J,!0);s(J),s(V);var re=i(V,2);{var M=l=>{var n=Nt();ie(n,21,()=>a(B),ge,(x,U)=>{var e=Rt(),d=r(e,!0);s(e),Q(()=>S(d,a(U))),o(x,e)}),s(n),Q(()=>oe(n,"aria-label",`Agent output for ${a(R)??a(L)??""}`)),o(l,n)},Y=l=>{var n=Dt(),x=r(n);it(x,{class:"size-3"}),$(2),s(n),Q(()=>oe(n,"aria-label",`Agent output for ${a(R)??a(L)??""}`)),o(l,n)};A(re,l=>{a(B).length>0?l(M):l(Y,!1)})}s(O),Q(l=>{S(q,a(L)),S(Z,l)},[()=>Qe(a(f).elapsed_ms)]),o(k,O)}),s(j),s(X),o(_,X)};A(P,_=>{a(h)&&_(H)})}o(W,y),de()}var Mt=v('<span class="font-mono text-xs"> </span>'),Ut=v("<!> <!>",1),Et=v("<!> <!>",1);function Ft(W,t){ne(t,!0);let b=me(t,"open",15,!1),D=me(t,"taskRef",11,null),u=ae(null),h=ae(!1),c=ae("");fe(()=>{b()&&D()?y(D()):b()||(g(u,null),g(c,""))});async function y(C){g(h,!0),g(c,"");try{g(u,await ye(C),!0)}catch(p){g(c,p instanceof Error?p.message:"Failed to load task",!0)}finally{g(h,!1)}}async function P(){a(u)&&g(u,await ye(a(u)._ulid),!0),t.onTaskUpdated?.()}let H=K(()=>a(u)?.slugs?.[0]??a(u)?._ulid?.slice(0,8)??"");var _=se(),X=G(_);ce(X,()=>ct,(C,p)=>{p(C,{get open(){return b()},set open(w){b(w)},children:(w,j)=>{var k=se(),f=G(k);ce(f,()=>lt,(B,R)=>{R(B,{class:"max-w-2xl max-h-[85vh] overflow-y-auto","data-testid":"task-detail-modal",children:(L,O)=>{var T=Et(),z=G(T);{var F=N=>{var I=se(),V=G(I);ce(V,()=>nt,(J,Z)=>{Z(J,{children:(re,M)=>{var Y=Ut(),l=G(Y);ce(l,()=>dt,(x,U)=>{U(x,{"data-testid":"task-detail-title",children:(e,d)=>{$();var m=be();Q(()=>S(m,a(u).title)),o(e,m)},$$slots:{default:!0}})});var n=i(l,2);ce(n,()=>vt,(x,U)=>{U(x,{children:(e,d)=>{var m=Mt(),E=r(m);s(m),Q(()=>S(E,`@${a(H)??""}`)),o(e,m)},$$slots:{default:!0}})}),o(re,Y)},$$slots:{default:!0}})}),o(N,I)};A(z,N=>{a(u)&&!a(h)&&!a(c)&&N(F)})}var q=i(z,2);We(q,{get task(){return a(u)},get loading(){return a(h)},get error(){return a(c)},onTaskUpdated:P}),o(L,T)},$$slots:{default:!0}})}),o(w,k)},$$slots:{default:!0}})}),o(W,_),de()}var qt=v('<div class="rounded-lg border bg-card p-3 mb-2"><div class="flex items-center gap-1.5 mb-1.5"><!> <!></div> <!> <!> <div class="flex gap-1 mb-2"><!> <!></div> <div class="flex items-center gap-3 pt-1.5 border-t border-border/50"><!> <!> <!></div></div>'),Vt=v('<div class="flex flex-col min-w-0"><div class="flex items-center gap-2 mb-3 px-1"><!> <!></div> <!></div>'),Gt=v('<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5 gap-4 p-6" data-testid="board-skeleton"></div>');function Ht(W){var t=Gt();ie(t,4,()=>Array(5),ge,(b,D,u)=>{var h=Vt(),c=r(h),y=r(c);te(y,{class:"h-4 w-20 ds-shimmer"});var P=i(y,2);te(P,{class:"size-5 rounded-full ds-shimmer"}),s(c);var H=i(c,2);ie(H,1,()=>Array(u===0?3:u===4?2:1),ge,(_,X,C,p)=>{var w=qt(),j=r(w),k=r(j);te(k,{class:"size-5 rounded-full ds-shimmer"});var f=i(k,2);te(f,{class:"h-3 w-16 ds-shimmer"}),s(j);var B=i(j,2);te(B,{class:"h-4 w-full mb-1 ds-shimmer"});var R=i(B,2);te(R,{class:"h-3 w-24 mb-1.5 ds-shimmer"});var L=i(R,2),O=r(L);te(O,{class:"h-4 w-10 rounded-full ds-shimmer"});var T=i(O,2);te(T,{class:"h-4 w-12 rounded-full ds-shimmer"}),s(L);var z=i(L,2),F=r(z);te(F,{class:"h-3 w-8 ds-shimmer"});var q=i(F,2);te(q,{class:"h-3 w-8 ds-shimmer"});var N=i(q,2);te(N,{class:"h-3 w-6 ml-auto ds-shimmer"}),s(z),s(w),o(_,w)}),s(h),o(b,h)}),s(t),o(W,t)}var Jt=v('<p class="text-sm text-muted-foreground"> </p>'),Kt=v('<div class="mx-6 mt-4 bg-destructive/10 text-destructive p-4 rounded-lg" role="alert" data-testid="board-error"> </div>'),Qt=v('<div class="flex flex-col items-center justify-center flex-1 py-16" data-testid="board-empty"><!> <h2 class="text-lg font-medium text-muted-foreground mb-1">No tasks yet</h2> <p class="text-sm text-muted-foreground">Create tasks using <code class="bg-muted px-1 rounded text-xs">kspec task add</code></p></div>'),Wt=v('<div class="px-6 pt-4"><!></div> <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5 gap-4 p-6 pt-2 flex-1 min-h-0" data-testid="board-columns"></div>',1),Xt=v('<div class="flex flex-col h-full min-w-0"><div class="flex items-center justify-between p-6 pb-0"><div><h1 class="text-2xl font-bold">Task Board</h1> <!></div> <div class="flex items-center gap-1 border rounded-lg p-0.5"><!> <a title="List view"><!></a></div></div> <!> <!></div> <!>',1);function ha(W,t){ne(t,!0);const b=()=>Fe(Ve,"$page",D),[D,u]=qe();let h=ae(pe([])),c=ae(pe([])),y=ae(!0),P=ae(""),H=ae(null),_=pe({}),X=K(()=>Object.fromEntries(Object.entries(_).map(([e,d])=>[e,d.lines]))),C=K(()=>Object.fromEntries(a(h).flatMap(e=>{const d=[[`@${e._ulid}`,e.title]];for(const m of e.slugs)d.push([`@${m}`,e.title]);return d}))),p=ae(!1),w=ae(null),j=ae("");fe(()=>{g(c,Xe(a(h)),!0)}),fe(()=>{Me(),Ue()&&k()}),fe(()=>{const e=b().url.searchParams.get("ref");e&&e!==a(j)&&(g(j,e,!0),g(w,e,!0),g(p,!0))});async function k(){g(y,!0),g(P,"");try{const[e,d]=await Promise.all([Ee({limit:500}),ke().catch(()=>null)]);g(h,e.items,!0),g(H,d,!0)}catch(e){g(P,e instanceof Error?e.message:"Failed to load board",!0)}finally{g(y,!1)}}function f(e){g(w,e._ulid,!0),g(p,!0)}function B(){k()}function R(e){k()}function L(e){if(e.event==="agent_text_chunk"&&e.data?.session_id&&e.data?.text){const d=e.data.session_id,m=e.data.text,E=_[d]??at();_[d]=st(E,m);return}ke().then(d=>{g(H,d,!0);const m=new Set(d.active_invocations.map(E=>E.session_id));for(const E of Object.keys(_))m.has(E)||delete _[E]}).catch(()=>{})}let O;je(()=>{Ge(["tasks","agents"]),we("tasks",R),we("agents",L),O=setInterval(()=>{ke().then(e=>{g(H,e,!0)}).catch(()=>{})},5e3)}),Re(()=>{Te("tasks",R),Te("agents",L),He(["tasks","agents"]),O&&clearInterval(O)});var T=Xt(),z=G(T),F=r(z),q=r(F),N=i(r(q),2);{var I=e=>{const d=K(()=>a(c).reduce((ue,ee)=>ue+ee.tasks.length,0));var m=Jt(),E=r(m);s(m),Q(()=>S(E,`${a(d)??""} tasks`)),o(e,m)};A(N,e=>{!a(y)&&a(c).length>0&&e(I)})}s(q);var V=i(q,2),J=r(V);Pe(J,{variant:"ghost",size:"icon-sm",class:"bg-accent",title:"Board view","aria-pressed":"true",children:(e,d)=>{ze(e,{class:"size-4"})},$$slots:{default:!0}});var Z=i(J,2),re=r(Z);Pe(re,{variant:"ghost",size:"icon-sm","aria-pressed":"false",children:(e,d)=>{Ye(e,{class:"size-4"})},$$slots:{default:!0}}),s(Z),s(V),s(F);var M=i(F,2);{var Y=e=>{var d=Kt(),m=r(d,!0);s(d),Q(()=>S(m,a(P))),o(e,d)};A(M,e=>{a(P)&&e(Y)})}var l=i(M,2);{var n=e=>{Ht(e)},x=e=>{var d=se(),m=G(d);{var E=ee=>{var le=Qt(),ve=r(le);ze(ve,{class:"size-12 text-muted-foreground/30 mb-4"}),$(4),s(le),o(ee,le)},ue=ee=>{var le=Wt(),ve=G(le),Se=r(ve);It(Se,{get status(){return a(H)},get outputLines(){return a(X)},get taskTitles(){return a(C)}}),s(ve);var he=i(ve,2);ie(he,21,()=>a(c),_e=>_e.id,(_e,Ae)=>{At(_e,{get column(){return a(Ae)},onCardClick:f})}),s(he),o(ee,le)};A(m,ee=>{a(h).length===0?ee(E):ee(ue,!1)},!0)}o(e,d)};A(l,e=>{a(y)?e(n):e(x,!1)})}s(z);var U=i(z,2);Ft(U,{onTaskUpdated:B,get open(){return a(p)},set open(e){g(p,e,!0)},get taskRef(){return a(w)},set taskRef(e){g(w,e,!0)}}),Q(()=>oe(Z,"href",`${ut??""}/tasks`)),o(W,T),de(),u()}export{ha as component,ba as universal};
@@ -0,0 +1 @@
1
+ import{c as ce,a as r,f as v,t as N}from"../chunks/DvA-KON-.js";import{o as Ht,a as Kt}from"../chunks/CwELQvbx.js";import{p as xt,f as y,i as Qt,a as bt,b as H,d as vt,u as ut,e as d,g as e,h as b,c as n,s as o,t as f,$ as Wt,r as s,P as We,Q as gt,n as K}from"../chunks/D3vxvonu.js";import{d as Xt,e as Jt,s as _}from"../chunks/D9QNBZM2.js";import{s as Yt,r as Zt,i as u}from"../chunks/BysXJlZb.js";import{k as ea,g as ta,i as aa,f as ra,a as ft,b as Xe,e as Se,c as le,h as Ce,s as Je,r as oa,B as _t,u as ia,v as sa,R as pt,w as na}from"../chunks/DQA8NZIH.js";import{s as da,a as la}from"../chunks/pE6cYWlS.js";import{g as ca}from"../chunks/B8a0xDxR.js";import{b as mt}from"../chunks/D7LTux4W.js";import{p as va}from"../chunks/D82RulSH.js";import{s as ua,o as ga,a as fa,u as _a}from"../chunks/BP352uRn.js";import{B as be}from"../chunks/BkOJ8DkV.js";import{C as pa}from"../chunks/CGtqifKp.js";import{C as ma}from"../chunks/DjG7s6hm.js";import{C as xa}from"../chunks/BEOQc37C.js";import{C as ba}from"../chunks/DhQhksaB.js";import{T as ha}from"../chunks/k_Qegko0.js";import{S as $a}from"../chunks/8RBjHMN1.js";import{I as ya}from"../chunks/B5wTVqxm.js";import{C as wa}from"../chunks/BWET-efb.js";function Ta(ke,ve){xt(ve,!0);let re=Zt(ve,["$$slots","$$events","$$legacy"]);const Re=[["path",{d:"m15 18-6-6 6-6"}]];ya(ke,Yt({name:"chevron-left"},()=>re,{get iconNode(){return Re},children:(Ee,he)=>{var oe=ce(),Q=y(oe);ea(Q,()=>ve.children??Qt),r(Ee,oe)},$$slots:{default:!0}})),bt()}var Aa=v('<p class="text-muted-foreground" data-testid="triage-progress"> <!></p>'),Pa=v("<option> </option>"),Sa=v("<option> </option>"),Ca=v('<select class="rounded-md border bg-background px-3 py-1.5 text-sm" data-testid="triage-tag-filter"><option>All Tags</option><!></select>'),ka=v('<div class="w-full bg-muted rounded-full h-2" data-testid="triage-progress-bar"><div class="bg-primary rounded-full h-2 transition-all duration-300"></div></div>'),Ra=v('<div class="rounded-md bg-red-50 p-4 text-sm text-red-800 dark:bg-red-900/20 dark:text-red-200" data-testid="triage-error" role="alert"> </div>'),Ea=v('<div class="rounded-md bg-amber-50 p-3 text-sm text-amber-800 dark:bg-amber-900/20 dark:text-amber-200" data-testid="triage-static-notice">Triage decisions are not included in static snapshots. Browse inbox items below; use the daemon for full triage functionality.</div>'),Ia=v('<div class="text-center text-muted-foreground py-12">Loading triage data...</div>'),Da=v('<p>No inbox items to triage.</p> <p class="text-sm mt-1">Add items to your inbox first.</p>',1),Na=v("<p>No items match the current filters.</p>"),Oa=v('<div class="text-center text-muted-foreground py-12"><!></div>'),La=v("<!> Previous",1),ja=v("Next <!>",1),Ua=v('<span>&middot;</span> <div class="flex gap-1" data-testid="triage-card-tags"></div>',1),Ma=v('<div class="flex items-start justify-between gap-4"><!> <!></div> <div class="flex items-center gap-2 text-xs text-muted-foreground mt-2" data-testid="triage-card-meta"><span data-testid="triage-card-age"> </span> <span>&middot;</span> <span data-testid="triage-card-added-by"> </span> <!></div>',1),Fa=v('<p data-testid="triage-rec-evidence"><span class="font-medium">Evidence:</span> </p>'),za=v('<div class="rounded-md bg-muted p-4 mb-4" data-testid="triage-agent-recommendation"><p class="text-sm font-medium mb-2"><!></p> <div class="space-y-1 text-sm"><p data-testid="triage-rec-action"><span class="font-medium">Action:</span> </p> <p data-testid="triage-rec-reasoning"><span class="font-medium">Reasoning:</span> </p> <!> <p class="text-xs text-muted-foreground"> </p></div></div>'),Ba=v('<!> <div class="space-y-4" data-testid="triage-action-form"><div><p class="text-sm font-medium mb-2"> </p> <div class="flex flex-wrap gap-2" data-testid="triage-action-buttons"></div></div> <div><p class="text-sm font-medium mb-2">Reasoning</p> <!></div> <div class="flex gap-2"><!> <!></div></div>',1),Ga=v('<p class="text-sm text-muted-foreground mt-4">No triage decision recorded. Use the CLI or daemon to triage items.</p>'),Va=v("<!> <!>",1),qa=v("<!> <!>",1),Ha=v('<div class="flex items-center justify-between mb-2"><!> <span class="text-sm text-muted-foreground" data-testid="triage-position"> </span> <!></div> <!>',1),Ka=v('<div class="flex flex-col gap-4 p-6"><div class="flex items-center justify-between"><div><h1 class="text-3xl font-bold">Triage</h1> <!></div> <div class="flex gap-2 items-center" data-testid="triage-filters"><select class="rounded-md border bg-background px-3 py-1.5 text-sm" data-testid="triage-status-filter"><option>All</option><option>Untriaged</option><option>Triaged</option><option>Acted On</option></select> <select class="rounded-md border bg-background px-3 py-1.5 text-sm" data-testid="triage-action-filter"><option>All Actions</option><!></select> <!></div></div> <!> <!> <!> <!></div>');function fr(ke,ve){xt(ve,!0);const re=()=>la(va,"$page",Re),[Re,Ee]=da();let he=H(vt([])),oe=H(vt([])),Q=H(!0),w=H(""),k=H(0),O=H(!1),W=H(""),X=H("");const ue={promote:"Promote to Task",delete:"Delete",defer:"Defer","spec-gap":"Spec Gap",duplicate:"Duplicate"},ht={promote:"bg-green-500",delete:"bg-red-500",defer:"bg-yellow-500","spec-gap":"bg-purple-500",duplicate:"bg-gray-500"},$t=["all","untriaged","triaged","acted_on"],yt=Object.keys(ue);let ie=b(()=>re().url.searchParams.get("tag")||""),J=b(()=>{const t=re().url.searchParams.get("status");return t&&$t.includes(t)?t:"all"}),se=b(()=>{const t=re().url.searchParams.get("action");return t&&yt.includes(t)?t:""}),ge=b(()=>e(he).map(a=>{const l=e(oe).find(p=>p.inbox_ref===a._ulid)??null;return{inbox:a,record:l}})),M=b(()=>{let t=e(ge);return e(ie)&&(t=t.filter(a=>a.inbox.tags.includes(e(ie)))),e(J)==="untriaged"?t=t.filter(a=>!a.record||a.record.status==="pending"):e(J)==="triaged"?t=t.filter(a=>a.record?.status==="triaged"):e(J)==="acted_on"&&(t=t.filter(a=>a.record?.status==="acted_on")),e(se)&&(t=t.filter(a=>a.record?.action===e(se))),t}),i=b(()=>e(M)[e(k)]??null),Ye=b(()=>e(ge).filter(t=>t.record&&t.record.status!=="pending").length),Ie=b(()=>e(ge).length),Ze=b(()=>{const t=new Set;return e(he).forEach(a=>a.tags.forEach(l=>t.add(l))),Array.from(t).sort()});Ht(()=>{le()||(ua(["triage:updates"]),ga("triage:updates",et))}),Kt(()=>{le()||(fa("triage:updates",et),_a(["triage:updates"]))}),ut(()=>{ta(),aa()&&wt()});function et(t){De()}async function wt(){try{d(Q,!0),d(w,"");const[t,a]=await Promise.all([ra({limit:1e3}),ft({limit:1e3})]);d(he,t.items,!0),d(oe,a.items,!0)}catch(t){d(w,t instanceof Error?t.message:"Failed to load triage data",!0)}finally{d(Q,!1)}}async function De(){try{const t=await ft({limit:1e3});d(oe,t.items,!0)}catch(t){console.error("Failed to reload triage records:",t)}}function Ne(t,a){const l=new URLSearchParams(re().url.searchParams);!a||a==="all"?l.delete(t):l.set(t,a);const p=l.toString(),h=p?`${mt}/triage?${p}`:`${mt}/triage`;ca(h,{replaceState:!1,keepFocus:!0,noScroll:!0})}function tt(){e(k)<e(M).length-1&&(We(k),$e())}function at(){e(k)>0&&(We(k,-1),$e())}function $e(){d(W,""),d(X,""),d(w,"")}function Tt(t){const a=t.target;a.tagName==="INPUT"||a.tagName==="TEXTAREA"||a.isContentEditable||(t.key==="ArrowLeft"?at():t.key==="ArrowRight"&&tt())}async function At(){if(!(!e(i)||!e(W)||!e(X).trim())){if(le()){d(w,"Cannot submit triage decisions in read-only mode.");return}try{d(O,!0),d(w,"");const t=e(i).record;t&&t.status!=="pending"?await ia(t._ulid,{action:e(W),reasoning:e(X).trim()}):await sa({inbox_ref:e(i).inbox._ulid,action:e(W),reasoning:e(X).trim()}),await De(),e(k)<e(M).length-1&&We(k),$e()}catch(t){t instanceof pt?d(w,t.message,!0):d(w,t instanceof Error?t.message:"Failed to submit triage decision",!0)}finally{d(O,!1)}}}async function Pt(){if(e(i)?.record){if(le()){d(w,"Cannot execute triage actions in read-only mode.");return}try{d(O,!0),d(w,""),await na(e(i).record._ulid),await De()}catch(t){t instanceof pt?d(w,t.message,!0):d(w,t instanceof Error?t.message:"Failed to execute triage action",!0)}finally{d(O,!1)}}}function St(t){const a=new Date(t),p=new Date().getTime()-a.getTime(),h=Math.floor(p/6e4),c=Math.floor(p/36e5),g=Math.floor(p/864e5);return h<1?"just now":h<60?`${h}m ago`:c<24?`${c}h ago`:g<7?`${g}d ago`:a.toLocaleDateString()}ut(()=>{e(ie),e(J),e(se),d(k,0),$e()});var Oe=Ka();Jt("keydown",Wt,Tt);var Le=n(Oe),je=n(Le),Ct=o(n(je),2);{var kt=t=>{var a=Aa(),l=n(a),p=o(l);{var h=c=>{var g=N();f(()=>_(g,`· Showing ${e(M).length??""} filtered`)),r(c,g)};u(p,c=>{e(M).length!==e(ge).length&&c(h)})}s(a),f(()=>_(l,`${e(Ye)??""} of ${e(Ie)??""} triaged `)),r(t,a)};u(Ct,t=>{e(Q)||t(kt)})}s(je);var rt=o(je,2),F=n(rt);F.__change=t=>Ne("status",t.currentTarget.value);var Ue=n(F);Ue.value=Ue.__value="all";var Me=o(Ue);Me.value=Me.__value="untriaged";var Fe=o(Me);Fe.value=Fe.__value="triaged";var ot=o(Fe);ot.value=ot.__value="acted_on",s(F);var it;Xe(F);var z=o(F,2);z.__change=t=>Ne("action",t.currentTarget.value);var ze=n(z);ze.value=ze.__value="";var Rt=o(ze);Se(Rt,17,()=>Object.entries(ue),Ce,(t,a)=>{var l=b(()=>gt(e(a),2));let p=()=>e(l)[0],h=()=>e(l)[1];var c=Pa(),g=n(c,!0);s(c);var A={};f(()=>{_(g,h()),A!==(A=p())&&(c.value=(c.__value=p())??"")}),r(t,c)}),s(z);var st;Xe(z);var Et=o(z,2);{var It=t=>{var a=Ca();a.__change=c=>Ne("tag",c.currentTarget.value);var l=n(a);l.value=l.__value="";var p=o(l);Se(p,17,()=>e(Ze),Ce,(c,g)=>{var A=Sa(),fe=n(A,!0);s(A);var B={};f(()=>{_(fe,e(g)),B!==(B=e(g))&&(A.value=(A.__value=e(g))??"")}),r(c,A)}),s(a);var h;Xe(a),f(()=>{h!==(h=e(ie))&&(a.value=(a.__value=e(ie))??"",Je(a,e(ie)))}),r(t,a)};u(Et,t=>{e(Ze).length>0&&t(It)})}s(rt),s(Le);var nt=o(Le,2);{var Dt=t=>{var a=ka(),l=n(a);s(a),f(()=>oa(l,`width: ${e(Ye)/e(Ie)*100}%`)),r(t,a)};u(nt,t=>{e(Ie)>0&&t(Dt)})}var dt=o(nt,2);{var Nt=t=>{var a=Ra(),l=n(a,!0);s(a),f(()=>_(l,e(w))),r(t,a)};u(dt,t=>{e(w)&&t(Nt)})}var lt=o(dt,2);{var Ot=t=>{var a=Ea();r(t,a)};u(lt,t=>{le()&&!e(Q)&&t(Ot)})}var Lt=o(lt,2);{var jt=t=>{var a=Ia();r(t,a)},Ut=t=>{var a=ce(),l=y(a);{var p=c=>{var g=Oa(),A=n(g);{var fe=L=>{var Y=Da();K(2),r(L,Y)},B=L=>{var Y=Na();r(L,Y)};u(A,L=>{e(ge).length===0?L(fe):L(B,!1)})}s(g),r(c,g)},h=c=>{var g=ce(),A=y(g);{var fe=B=>{var L=Ha(),Y=y(L),ct=n(Y);{let _e=b(()=>e(k)===0);be(ct,{variant:"outline",size:"sm",onclick:at,get disabled(){return e(_e)},"data-testid":"triage-prev",children:(ye,we)=>{var G=La(),pe=y(G);Ta(pe,{class:"size-4 mr-1"}),K(),r(ye,G)},$$slots:{default:!0}})}var Be=o(ct,2),Mt=n(Be);s(Be);var Ft=o(Be,2);{let _e=b(()=>e(k)===e(M).length-1);be(Ft,{variant:"outline",size:"sm",onclick:tt,get disabled(){return e(_e)},"data-testid":"triage-next",children:(ye,we)=>{K();var G=ja(),pe=o(y(G));wa(pe,{class:"size-4 ml-1"}),r(ye,G)},$$slots:{default:!0}})}s(Y);var zt=o(Y,2);pa(zt,{class:"transition-all duration-200","data-testid":"triage-card",children:(_e,ye)=>{var we=qa(),G=y(we);xa(G,{children:(Ge,Bt)=>{var me=Ma(),ne=y(me),Te=n(ne);ba(Te,{class:"text-lg leading-relaxed","data-testid":"triage-card-text",children:(m,S)=>{K();var T=N();f(()=>_(T,e(i).inbox.text)),r(m,T)},$$slots:{default:!0}});var Ve=o(Te,2);{var qe=m=>{{let S=b(()=>e(i).record.action?ht[e(i).record.action]:"bg-gray-500");_t(m,{get class(){return e(S)},"data-testid":"triage-card-status",children:(T,q)=>{K();var U=N();f(()=>_(U,e(i).record.status==="acted_on"?"Acted":"Triaged")),r(T,U)},$$slots:{default:!0}})}};u(Ve,m=>{e(i).record&&e(i).record.status!=="pending"&&m(qe)})}s(ne);var Ae=o(ne,2),$=n(Ae),R=n($,!0);s($);var P=o($,4),V=n(P,!0);s(P);var E=o(P,2);{var j=m=>{var S=Ua(),T=o(y(S),2);Se(T,21,()=>e(i).inbox.tags,Ce,(q,U)=>{_t(q,{variant:"secondary",class:"text-xs",children:(Z,Pe)=>{K();var ee=N();f(()=>_(ee,e(U))),r(Z,ee)},$$slots:{default:!0}})}),s(T),r(m,S)};u(E,m=>{e(i).inbox.tags.length>0&&m(j)})}s(Ae),f(m=>{_(R,m),_(V,e(i).inbox.added_by)},[()=>St(e(i).inbox.created_at)]),r(Ge,me)},$$slots:{default:!0}});var pe=o(G,2);ma(pe,{children:(Ge,Bt)=>{var me=Va(),ne=y(me);{var Te=$=>{var R=za(),P=n(R),V=n(P);{var E=x=>{var C=N("Override Decision");r(x,C)},j=x=>{var C=N("Agent Recommendation");r(x,C)};u(V,x=>{e(i).record.override_by?x(E):x(j,!1)})}s(P);var m=o(P,2),S=n(m),T=o(n(S));s(S);var q=o(S,2),U=o(n(q));s(q);var Z=o(q,2);{var Pe=x=>{var C=Fa(),D=o(n(C));s(C),f(xe=>_(D,` ${xe??""}`),[()=>e(i).record.evidence_refs.join(", ")]),r(x,C)};u(Z,x=>{e(i).record.evidence_refs.length>0&&x(Pe)})}var ee=o(Z,2),I=n(ee);s(ee),s(m),s(R),f(()=>{_(T,` ${(e(i).record.action?ue[e(i).record.action]:"None")??""}`),_(U,` ${(e(i).record.override_reasoning||e(i).record.reasoning)??""}`),_(I,`Decided by: ${(e(i).record.override_by||e(i).record.decided_by)??""}`)}),r($,R)};u(ne,$=>{e(i).record&&e(i).record.status!=="pending"&&$(Te)})}var Ve=o(ne,2);{var qe=$=>{var R=Ba(),P=y(R);$a(P,{class:"my-4"});var V=o(P,2),E=n(V),j=n(E),m=n(j,!0);s(j);var S=o(j,2);Se(S,21,()=>Object.entries(ue),Ce,(I,x)=>{var C=b(()=>gt(e(x),2));let D=()=>e(C)[0],xe=()=>e(C)[1];{let He=b(()=>e(W)===D()?"default":"outline");be(I,{get variant(){return e(He)},size:"sm",onclick:()=>d(W,D(),!0),get"data-testid"(){return`triage-action-${D()??""}`},children:(Ke,te)=>{K();var ae=N();f(()=>_(ae,xe())),r(Ke,ae)},$$slots:{default:!0}})}}),s(S),s(E);var T=o(E,2),q=o(n(T),2);ha(q,{placeholder:"Why are you choosing this action?",rows:3,get disabled(){return e(O)},"data-testid":"triage-reasoning",get value(){return e(X)},set value(I){d(X,I,!0)}}),s(T);var U=o(T,2),Z=n(U);{let I=b(()=>e(O)||!e(W)||!e(X).trim());be(Z,{onclick:At,get disabled(){return e(I)},"data-testid":"triage-submit",children:(x,C)=>{var D=ce(),xe=y(D);{var He=te=>{var ae=N("Submitting...");r(te,ae)},Ke=te=>{var ae=ce(),Gt=y(ae);{var Vt=de=>{var Qe=N("Override Decision");r(de,Qe)},qt=de=>{var Qe=N("Submit Decision");r(de,Qe)};u(Gt,de=>{e(i).record&&e(i).record.status!=="pending"?de(Vt):de(qt,!1)},!0)}r(te,ae)};u(xe,te=>{e(O)?te(He):te(Ke,!1)})}r(x,D)},$$slots:{default:!0}})}var Pe=o(Z,2);{var ee=I=>{be(I,{variant:"secondary",onclick:Pt,get disabled(){return e(O)},"data-testid":"triage-act",children:(x,C)=>{K();var D=N();f(()=>_(D,e(O)?"Executing...":`Execute: ${e(i).record.action?ue[e(i).record.action]:""}`)),r(x,D)},$$slots:{default:!0}})};u(Pe,I=>{e(i).record?.status==="triaged"&&I(ee)})}s(U),s(V),f(()=>_(m,e(i).record&&e(i).record.status!=="pending"?"Override Action":"Select Action")),r($,R)},Ae=$=>{var R=ce(),P=y(R);{var V=E=>{var j=Ga();r(E,j)};u(P,E=>{e(i).record||E(V)})}r($,R)};u(Ve,$=>{le()?$(Ae,!1):$(qe)})}r(Ge,me)},$$slots:{default:!0}}),r(_e,we)},$$slots:{default:!0}}),f(()=>_(Mt,`${e(k)+1} / ${e(M).length??""}`)),r(B,L)};u(A,B=>{e(i)&&B(fe)},!0)}r(c,g)};u(l,c=>{e(M).length===0?c(p):c(h,!1)},!0)}r(t,a)};u(Lt,t=>{e(Q)?t(jt):t(Ut,!1)})}s(Oe),f(()=>{it!==(it=e(J))&&(F.value=(F.__value=e(J))??"",Je(F,e(J))),st!==(st=e(se))&&(z.value=(z.__value=e(se))??"",Je(z,e(se)))}),r(ke,Oe),bt(),Ee()}Xt(["change"]);export{fr as component};
@@ -0,0 +1,2 @@
1
+ import{c as ae,a as o,f as n,t as pe}from"../chunks/DvA-KON-.js";import{f as c,p as ct,u as ft,e as de,b as fe,a as ut,s as i,c as r,g as e,r as s,h as re,n as N,t as P}from"../chunks/D3vxvonu.js";import{d as mt,s as m}from"../chunks/D9QNBZM2.js";import{l as he,s as $e,i as W}from"../chunks/BysXJlZb.js";import{g as _t,i as pt,z as gt,P as ht,Q as $t,o as xt,e as Ce,h as ke,B as Se,p as Ie,r as Xe}from"../chunks/DQA8NZIH.js";import{C as ue}from"../chunks/CGtqifKp.js";import{C as me}from"../chunks/DjG7s6hm.js";import{C as ge}from"../chunks/BEOQc37C.js";import{C as Me}from"../chunks/DhQhksaB.js";import{R as yt,S as wt}from"../chunks/C076q4JN.js";import"../chunks/BUZujXJ2.js";import{I as xe,s as ye}from"../chunks/BHtYorjv.js";import{T as Fe}from"../chunks/B5LJFxqa.js";function Oe(O,$){const d=he($,["children","$$slots","$$events","$$legacy"]);const v=[["circle",{cx:"12",cy:"12",r:"10"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16"}]];xe(O,$e({name:"circle-alert"},()=>d,{get iconNode(){return v},children:(z,B)=>{var g=ae(),C=c(g);ye(C,$,"default",{}),o(z,g)},$$slots:{default:!0}}))}function Ue(O,$){const d=he($,["children","$$slots","$$events","$$legacy"]);const v=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"m9 12 2 2 4-4"}]];xe(O,$e({name:"circle-check"},()=>d,{get iconNode(){return v},children:(z,B)=>{var g=ae(),C=c(g);ye(C,$,"default",{}),o(z,g)},$$slots:{default:!0}}))}function bt(O,$){const d=he($,["children","$$slots","$$events","$$legacy"]);const v=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"}],["path",{d:"M12 9v4"}],["path",{d:"M12 17h.01"}]];xe(O,$e({name:"file-exclamation-point"},()=>d,{get iconNode(){return v},children:(z,B)=>{var g=ae(),C=c(g);ye(C,$,"default",{}),o(z,g)},$$slots:{default:!0}}))}function Ye(O,$){const d=he($,["children","$$slots","$$events","$$legacy"]);const v=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"M12 16v-4"}],["path",{d:"M12 8h.01"}]];xe(O,$e({name:"info"},()=>d,{get iconNode(){return v},children:(z,B)=>{var g=ae(),C=c(g);ye(C,$,"default",{}),o(z,g)},$$slots:{default:!0}}))}function Pt(O,$){const d=he($,["children","$$slots","$$events","$$legacy"]);const v=[["path",{d:"M9 17H7A5 5 0 0 1 7 7"}],["path",{d:"M15 7h2a5 5 0 0 1 4 8"}],["line",{x1:"8",x2:"12",y1:"12",y2:"12"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22"}]];xe(O,$e({name:"link-2-off"},()=>d,{get iconNode(){return v},children:(z,B)=>{var g=ae(),C=c(g);ye(C,$,"default",{}),o(z,g)},$$slots:{default:!0}}))}function Ct(O,$){const d=he($,["children","$$slots","$$events","$$legacy"]);const v=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"}],["path",{d:"M12 8v4"}],["path",{d:"M12 16h.01"}]];xe(O,$e({name:"shield-alert"},()=>d,{get iconNode(){return v},children:(z,B)=>{var g=ae(),C=c(g);ye(C,$,"default",{}),o(z,g)},$$slots:{default:!0}}))}var kt=n("<!> Valid",1),St=n("<!> Issues Found",1),It=n(`<button class="inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm
2
+ text-muted-foreground transition-colors hover:bg-muted/50" data-testid="refresh-btn"><!> Refresh</button>`),Mt=n('<div class="rounded-md bg-severity-error-muted p-4 text-sm text-severity-error-muted-fg" role="alert" data-testid="error"> </div>'),At=n('<div class="h-4 w-24 rounded bg-muted ds-shimmer"></div>'),Nt=n('<div class="h-8 w-16 rounded bg-muted ds-shimmer"></div>'),zt=n("<!> <!>",1),Tt=n('<div class="h-4 w-32 rounded bg-muted ds-shimmer"></div>'),Et=n('<div class="h-4 w-full rounded bg-muted ds-shimmer"></div>'),Rt=n("<!> <!>",1),Wt=n('<div class="space-y-4" data-testid="loading"><div class="grid gap-4 md:grid-cols-3"></div> <!></div>'),Vt=n('<div class="text-center text-muted-foreground py-12" data-testid="empty"><!> <p>No validation data available.</p> <p class="text-sm">Connect to a running daemon to run validation.</p></div>'),jt=n("<!> <!>",1),Ft=n('<div> </div> <p class="text-xs text-muted-foreground">Schema, reference, and trait cycle errors</p>',1),Ot=n("<!> <!>",1),Ut=n("<!> <!>",1),Lt=n('<div> </div> <p class="text-xs text-muted-foreground">Completeness, orphans, and reference warnings</p>',1),Bt=n("<!> <!>",1),Dt=n("<!> <!>",1),Ht=n('<div class="text-2xl font-bold" data-testid="valid-item-count"> </div> <p class="text-xs text-muted-foreground"> </p>',1),Qt=n("<!> <!>",1),qt=n("<!> Alignment",1),Gt=n('<div class="grid gap-4 sm:grid-cols-2 lg:grid-cols-4"><div class="space-y-1" data-testid="spec-coverage"><p class="text-sm text-muted-foreground">Spec Coverage</p> <div class="flex items-baseline gap-2"><span class="text-2xl font-bold"> </span> <span class="text-xs text-muted-foreground"> </span></div> <div class="h-2 w-full rounded-full bg-muted overflow-hidden"><div class="h-full rounded-full transition-all bg-severity-success"></div></div></div> <div class="space-y-1" data-testid="ac-coverage"><p class="text-sm text-muted-foreground">AC Coverage</p> <div class="flex items-baseline gap-2"><span class="text-2xl font-bold"> </span> <span class="text-xs text-muted-foreground"> </span></div> <div class="h-2 w-full rounded-full bg-muted overflow-hidden"><div class="h-full rounded-full transition-all bg-severity-info"></div></div></div> <div class="space-y-1" data-testid="orphaned-tasks"><p class="text-sm text-muted-foreground">Orphaned Tasks</p> <div class="flex items-baseline gap-2"><span> </span> <span class="text-xs text-muted-foreground">tasks without linked specs</span></div></div> <div class="space-y-1" data-testid="orphaned-specs"><p class="text-sm text-muted-foreground">Orphaned Specs</p> <div class="flex items-baseline gap-2"><span> </span> <span class="text-xs text-muted-foreground">specs without linked tasks</span></div></div></div>'),Jt=n("<!> <!>",1),Kt=n('<p class="text-xs text-muted-foreground mt-1 font-mono truncate"> </p>'),Xt=n('<div class="rounded-md border p-3 bg-severity-error-muted border-severity-error-border" data-testid="issue-error"><div class="flex items-start gap-2"><!> <div class="min-w-0"><div class="flex items-center gap-2 flex-wrap"><!> <span class="text-sm font-medium"> </span></div> <!></div></div></div>'),Yt=n('<div data-testid="error-issues"><h3 class="text-sm font-medium text-severity-error mb-2 flex items-center gap-1.5"><!> </h3> <div class="space-y-2"></div></div>'),Zt=n('<p class="text-xs text-muted-foreground mt-1 font-mono truncate"> </p>'),es=n('<div class="rounded-md border p-3 bg-severity-warning-muted border-severity-warning-border" data-testid="issue-warning"><div class="flex items-start gap-2"><!> <div class="min-w-0"><div class="flex items-center gap-2 flex-wrap"><!> <span class="text-sm font-medium"> </span></div> <!></div></div></div>'),ts=n('<div data-testid="warning-issues"><h3 class="text-sm font-medium text-severity-warning-muted-fg mb-2 flex items-center gap-1.5"><!> </h3> <div class="space-y-2"></div></div>'),ss=n('<p class="text-xs text-muted-foreground mt-1 font-mono truncate"> </p>'),rs=n('<div class="rounded-md border p-3 bg-severity-info-muted border-severity-info-border" data-testid="issue-info"><div class="flex items-start gap-2"><!> <div class="min-w-0"><div class="flex items-center gap-2 flex-wrap"><!> <span class="text-sm font-medium"> </span></div> <!></div></div></div>'),as=n('<div data-testid="info-issues"><h3 class="text-sm font-medium text-severity-info mb-2 flex items-center gap-1.5"><!> </h3> <div class="space-y-2"></div></div>'),os=n('<div class="space-y-4" data-testid="issues-list"><h2 class="text-xl font-semibold flex items-center gap-2"><!> </h2> <!> <!> <!></div>'),is=n('<div class="text-center text-muted-foreground"><!> <p class="font-medium">No issues found</p> <p class="text-sm">All validation checks passed.</p></div>'),ds=n('<div class="grid gap-4 md:grid-cols-3" data-testid="summary-cards"><!> <!> <!></div> <!> <!>',1),ns=n('<div class="flex flex-col gap-6" data-testid="validate-page"><div class="flex items-center justify-between"><div class="flex items-center gap-3"><h1 class="text-3xl font-bold">Validate</h1> <!></div> <!></div> <!> <!></div>');function ws(O,$){ct($,!0);let d=fe(null),v=fe(null),z=fe(0),B=fe(0),g=fe(0),C=fe(!0),_e=fe(""),Ae=re(()=>e(d)?e(d).schemaErrors.length+e(d).refErrors.length+e(d).traitCycles.length:0),Le=re(()=>e(d)?e(d).refWarnings.length+e(d).completenessWarnings.length+e(d).orphans.length:0),Be=re(()=>{if(!e(d))return 0;const a=new Set;for(const t of e(d).schemaErrors)t.file&&a.add(t.file);for(const t of e(d).refErrors){const h=t.sourceUlid??t.sourceFile;h&&a.add(h)}for(const t of e(d).traitCycles)t.traitRef&&a.add(t.traitRef);return Math.max(0,e(z)-a.size)}),De=re(()=>!e(v)||e(v).stats.totalSpecs===0?0:Math.round(e(v).stats.specsWithTasks/e(v).stats.totalSpecs*100)),He=re(()=>e(d)?et(e(d).completenessWarnings):0),Qe=re(()=>{if(e(B)===0)return 100;const a=e(B)-e(He);return Math.round(a/e(B)*100)}),we=re(()=>{if(!e(d)&&!e(v))return[];const a=[];if(e(d)){for(const t of e(d).schemaErrors)a.push({severity:"error",category:"Schema",message:t.message,detail:t.file+(t.path?` (${t.path})`:"")});for(const t of e(d).refErrors)a.push({severity:"error",category:"Reference",message:t.message,detail:`${t.ref} in ${t.field}`});for(const t of e(d).traitCycles)a.push({severity:"error",category:"Trait Cycle",message:t.message,detail:t.cycle.join(" → ")});for(const t of e(d).refWarnings)a.push({severity:"warning",category:"Reference",message:t.message,detail:`${t.ref} in ${t.field}`});for(const t of e(d).completenessWarnings)a.push({severity:"warning",category:Ze(t.type),message:t.message,detail:t.details??`${t.itemRef} — ${t.itemTitle}`});for(const t of e(d).orphans)a.push({severity:"info",category:"Orphan",message:`${t.title} (${t.type})`,detail:t.file??t.ulid})}if(e(v))for(const t of e(v).warnings)a.push({severity:t.type==="status_mismatch"?"warning":"info",category:tt(t.type),message:t.message,detail:t.specTitle??t.specUlid});return a}),Ne=re(()=>e(we).filter(a=>a.severity==="error")),ze=re(()=>e(we).filter(a=>a.severity==="warning")),Te=re(()=>e(we).filter(a=>a.severity==="info"));ft(()=>{_t(),pt()&&qe()});async function qe(){try{de(C,!0),de(_e,"");const[a,t,h,X]=await Promise.all([gt(),ht(),$t({limit:999}),xt({limit:999})]);de(d,a,!0),de(v,t,!0),de(z,h.total,!0),de(B,h.items.reduce((Q,k)=>Q+(k.acceptance_criteria_count??0),0),!0),de(g,X.items.filter(Q=>!Q.spec_ref).length,!0)}catch(a){de(_e,a instanceof Error?a.message:"Failed to load validation data",!0)}finally{de(C,!1)}}function Ze(a){return{missing_acceptance_criteria:"Missing AC",missing_description:"Missing Description",status_inconsistency:"Status Inconsistency",missing_test_coverage:"Test Coverage",automation_eligible_no_spec:"No Spec",ac_schema_field_mismatch:"AC Schema Mismatch"}[a]??a}function et(a){let t=0;for(const h of a)if(h.type==="missing_test_coverage"&&h.details){const X=h.details.match(/^Uncovered(?:\s+trait\s+ACs)?:\s*(.+)$/);X&&(t+=X[1].split(",").length)}return t}function tt(a){return{orphaned_spec:"Orphaned Spec",status_mismatch:"Status Mismatch",stale_implementation:"Stale Implementation"}[a]??a}var Ee=ns(),Re=r(Ee),We=r(Re),st=i(r(We),2);{var rt=a=>{var t=ae(),h=c(t);{var X=k=>{Se(k,{class:"bg-severity-success text-severity-success-fg","data-testid":"status-valid",children:(T,q)=>{var U=kt(),L=c(U);Ue(L,{class:"mr-1 h-3 w-3"}),N(),o(T,U)},$$slots:{default:!0}})},Q=k=>{Se(k,{class:"bg-severity-error text-severity-error-fg","data-testid":"status-invalid",children:(T,q)=>{var U=St(),L=c(U);Ct(L,{class:"mr-1 h-3 w-3"}),N(),o(T,U)},$$slots:{default:!0}})};W(h,k=>{e(d).valid&&e(Ae)===0?k(X):k(Q,!1)})}o(a,t)};W(st,a=>{!e(C)&&e(d)&&a(rt)})}s(We);var at=i(We,2);{var ot=a=>{var t=It();t.__click=qe;var h=r(t);yt(h,{class:"h-3.5 w-3.5"}),N(),s(t),o(a,t)};W(at,a=>{e(C)||a(ot)})}s(Re);var Ge=i(Re,2);{var it=a=>{var t=Mt(),h=r(t,!0);s(t),P(()=>m(h,e(_e))),o(a,t)};W(Ge,a=>{e(_e)&&a(it)})}var dt=i(Ge,2);{var nt=a=>{var t=Wt(),h=r(t);Ce(h,20,()=>Array(3),ke,(Q,k)=>{ue(Q,{children:(T,q)=>{var U=zt(),L=c(U);ge(L,{class:"pb-2",children:(G,Pe)=>{var ce=At();o(G,ce)},$$slots:{default:!0}});var be=i(L,2);me(be,{children:(G,Pe)=>{var ce=Nt();o(G,ce)},$$slots:{default:!0}}),o(T,U)},$$slots:{default:!0}})}),s(h);var X=i(h,2);ue(X,{children:(Q,k)=>{var T=Rt(),q=c(T);ge(q,{class:"pb-2",children:(L,be)=>{var G=Tt();o(L,G)},$$slots:{default:!0}});var U=i(q,2);me(U,{class:"space-y-3",children:(L,be)=>{var G=ae(),Pe=c(G);Ce(Pe,16,()=>Array(3),ke,(ce,Je)=>{var Ve=Et();o(ce,Ve)}),o(L,G)},$$slots:{default:!0}}),o(Q,T)},$$slots:{default:!0}}),s(t),o(a,t)},lt=a=>{var t=ae(),h=c(t);{var X=k=>{var T=Vt(),q=r(T);wt(q,{class:"mx-auto h-12 w-12 mb-4 opacity-50"}),N(4),s(T),o(k,T)},Q=k=>{var T=ds(),q=c(T),U=r(q);ue(U,{"data-testid":"error-count-card",children:(M,J)=>{var E=Ot(),A=c(E);ge(A,{class:"flex flex-row items-center justify-between pb-2 space-y-0",children:(w,D)=>{var f=jt(),l=c(f);Me(l,{class:"text-sm font-medium",children:(_,p)=>{N();var x=pe("Errors");o(_,x)},$$slots:{default:!0}});var u=i(l,2);Oe(u,{class:"h-4 w-4 text-severity-error"}),o(w,f)},$$slots:{default:!0}});var V=i(A,2);me(V,{children:(w,D)=>{var f=Ft(),l=c(f);let u;var _=r(l,!0);s(l),N(2),P(()=>{u=Ie(l,1,"text-2xl font-bold",null,u,{"text-severity-error":e(Ae)>0}),m(_,e(Ae))}),o(w,f)},$$slots:{default:!0}}),o(M,E)},$$slots:{default:!0}});var L=i(U,2);ue(L,{"data-testid":"warning-count-card",children:(M,J)=>{var E=Bt(),A=c(E);ge(A,{class:"flex flex-row items-center justify-between pb-2 space-y-0",children:(w,D)=>{var f=Ut(),l=c(f);Me(l,{class:"text-sm font-medium",children:(_,p)=>{N();var x=pe("Warnings");o(_,x)},$$slots:{default:!0}});var u=i(l,2);Fe(u,{class:"h-4 w-4 text-severity-warning"}),o(w,f)},$$slots:{default:!0}});var V=i(A,2);me(V,{children:(w,D)=>{var f=Lt(),l=c(f);let u;var _=r(l,!0);s(l),N(2),P(()=>{u=Ie(l,1,"text-2xl font-bold",null,u,{"text-severity-warning":e(Le)>0}),m(_,e(Le))}),o(w,f)},$$slots:{default:!0}}),o(M,E)},$$slots:{default:!0}});var be=i(L,2);ue(be,{"data-testid":"valid-count-card",children:(M,J)=>{var E=Qt(),A=c(E);ge(A,{class:"flex flex-row items-center justify-between pb-2 space-y-0",children:(w,D)=>{var f=Dt(),l=c(f);Me(l,{class:"text-sm font-medium",children:(_,p)=>{N();var x=pe("Valid Items");o(_,x)},$$slots:{default:!0}});var u=i(l,2);Ue(u,{class:"h-4 w-4 text-severity-success"}),o(w,f)},$$slots:{default:!0}});var V=i(A,2);me(V,{children:(w,D)=>{var f=Ht(),l=c(f),u=r(l,!0);s(l);var _=i(l,2),p=r(_);s(_),P(()=>{m(u,e(Be)),m(p,`${e(Be)??""} of ${e(z)??""} items passing validation`)}),o(w,f)},$$slots:{default:!0}}),o(M,E)},$$slots:{default:!0}}),s(q);var G=i(q,2);{var Pe=M=>{ue(M,{"data-testid":"alignment-section",children:(J,E)=>{var A=Jt(),V=c(A);ge(V,{children:(D,f)=>{Me(D,{class:"flex items-center gap-2",children:(l,u)=>{var _=qt(),p=c(_);Pt(p,{class:"h-5 w-5"}),N(),o(l,_)},$$slots:{default:!0}})},$$slots:{default:!0}});var w=i(V,2);me(w,{children:(D,f)=>{var l=Gt(),u=r(l),_=i(r(u),2),p=r(_),x=r(p);s(p);var j=i(p,2),Y=r(j);s(j),s(_);var ne=i(_,2),Z=r(ne);s(ne),s(u);var oe=i(u,2),b=i(r(oe),2),R=r(b),ee=r(R);s(R);var K=i(R,2),te=r(K);s(K),s(b);var F=i(b,2),se=r(F);s(F),s(oe);var H=i(oe,2),le=i(r(H),2),ie=r(le);let ve;var y=r(ie,!0);s(ie),N(2),s(le),s(H);var S=i(H,2),I=i(r(S),2),je=r(I);let Ke;var vt=r(je,!0);s(je),N(2),s(I),s(S),s(l),P(()=>{m(x,`${e(De)??""}%`),m(Y,`${e(v).stats.specsWithTasks??""}/${e(v).stats.totalSpecs??""} specs with tasks`),Xe(Z,`width: ${e(De)??""}%`),m(ee,`${e(Qe)??""}%`),m(te,`${e(B)-e(He)}/${e(B)??""} ACs with tests`),Xe(se,`width: ${e(Qe)??""}%`),ve=Ie(ie,1,"text-2xl font-bold",null,ve,{"text-severity-warning":e(g)>0}),m(y,e(g)),Ke=Ie(je,1,"text-2xl font-bold",null,Ke,{"text-severity-warning":e(v).stats.orphanedSpecs>0}),m(vt,e(v).stats.orphanedSpecs)}),o(D,l)},$$slots:{default:!0}}),o(J,A)},$$slots:{default:!0}})};W(G,M=>{e(v)&&M(Pe)})}var ce=i(G,2);{var Je=M=>{var J=os(),E=r(J),A=r(E);bt(A,{class:"h-5 w-5"});var V=i(A);s(E);var w=i(E,2);{var D=p=>{var x=Yt(),j=r(x),Y=r(j);Oe(Y,{class:"h-4 w-4"});var ne=i(Y);s(j);var Z=i(j,2);Ce(Z,21,()=>e(Ne),ke,(oe,b)=>{var R=Xt(),ee=r(R),K=r(ee);Oe(K,{class:"h-4 w-4 mt-0.5 text-severity-error shrink-0"});var te=i(K,2),F=r(te),se=r(F);Se(se,{variant:"outline",class:"text-xs",children:(y,S)=>{N();var I=pe();P(()=>m(I,e(b).category)),o(y,I)},$$slots:{default:!0}});var H=i(se,2),le=r(H,!0);s(H),s(F);var ie=i(F,2);{var ve=y=>{var S=Kt(),I=r(S,!0);s(S),P(()=>m(I,e(b).detail)),o(y,S)};W(ie,y=>{e(b).detail&&y(ve)})}s(te),s(ee),s(R),P(()=>m(le,e(b).message)),o(oe,R)}),s(Z),s(x),P(()=>m(ne,` Errors (${e(Ne).length??""})`)),o(p,x)};W(w,p=>{e(Ne).length>0&&p(D)})}var f=i(w,2);{var l=p=>{var x=ts(),j=r(x),Y=r(j);Fe(Y,{class:"h-4 w-4"});var ne=i(Y);s(j);var Z=i(j,2);Ce(Z,21,()=>e(ze),ke,(oe,b)=>{var R=es(),ee=r(R),K=r(ee);Fe(K,{class:"h-4 w-4 mt-0.5 text-severity-warning-muted-fg shrink-0"});var te=i(K,2),F=r(te),se=r(F);Se(se,{variant:"outline",class:"text-xs",children:(y,S)=>{N();var I=pe();P(()=>m(I,e(b).category)),o(y,I)},$$slots:{default:!0}});var H=i(se,2),le=r(H,!0);s(H),s(F);var ie=i(F,2);{var ve=y=>{var S=Zt(),I=r(S,!0);s(S),P(()=>m(I,e(b).detail)),o(y,S)};W(ie,y=>{e(b).detail&&y(ve)})}s(te),s(ee),s(R),P(()=>m(le,e(b).message)),o(oe,R)}),s(Z),s(x),P(()=>m(ne,` Warnings (${e(ze).length??""})`)),o(p,x)};W(f,p=>{e(ze).length>0&&p(l)})}var u=i(f,2);{var _=p=>{var x=as(),j=r(x),Y=r(j);Ye(Y,{class:"h-4 w-4"});var ne=i(Y);s(j);var Z=i(j,2);Ce(Z,21,()=>e(Te),ke,(oe,b)=>{var R=rs(),ee=r(R),K=r(ee);Ye(K,{class:"h-4 w-4 mt-0.5 text-severity-info shrink-0"});var te=i(K,2),F=r(te),se=r(F);Se(se,{variant:"outline",class:"text-xs",children:(y,S)=>{N();var I=pe();P(()=>m(I,e(b).category)),o(y,I)},$$slots:{default:!0}});var H=i(se,2),le=r(H,!0);s(H),s(F);var ie=i(F,2);{var ve=y=>{var S=ss(),I=r(S,!0);s(S),P(()=>m(I,e(b).detail)),o(y,S)};W(ie,y=>{e(b).detail&&y(ve)})}s(te),s(ee),s(R),P(()=>m(le,e(b).message)),o(oe,R)}),s(Z),s(x),P(()=>m(ne,` Info (${e(Te).length??""})`)),o(p,x)};W(u,p=>{e(Te).length>0&&p(_)})}s(J),P(()=>m(V,` Issues (${e(we).length??""})`)),o(M,J)},Ve=M=>{var J=ae(),E=c(J);{var A=V=>{ue(V,{"data-testid":"no-issues",children:(w,D)=>{me(w,{class:"py-8",children:(f,l)=>{var u=is(),_=r(u);Ue(_,{class:"mx-auto h-12 w-12 mb-4 text-severity-success opacity-75"}),N(4),s(u),o(f,u)},$$slots:{default:!0}})},$$slots:{default:!0}})};W(E,V=>{e(_e)||V(A)},!0)}o(M,J)};W(ce,M=>{e(we).length>0?M(Je):M(Ve,!1)})}o(k,T)};W(h,k=>{!e(d)&&!e(v)&&!e(_e)?k(X):k(Q,!1)},!0)}o(a,t)};W(dt,a=>{e(C)?a(nt):a(lt,!1)})}s(Ee),o(O,Ee),ut()}mt(["click"]);export{ws as component};
@@ -0,0 +1 @@
1
+ import{c as D,a as e,f as o,t as pt}from"../chunks/DvA-KON-.js";import{o as Ht,a as Rt}from"../chunks/CwELQvbx.js";import{p as Y,f as _,i as ot,a as q,b as mt,d as Ut,u as Yt,e as L,s as d,c as i,g as t,r,t as b,n as O}from"../chunks/D3vxvonu.js";import{s as k}from"../chunks/D9QNBZM2.js";import{s as it,r as lt,i as f}from"../chunks/BysXJlZb.js";import{k as nt,g as qt,i as Gt,S as Jt,c as _t,e as rt,h as xt,B as st}from"../chunks/DQA8NZIH.js";import{s as Kt,o as Qt,a as Xt,u as te}from"../chunks/BP352uRn.js";import{C as ee}from"../chunks/CGtqifKp.js";import{C as ae}from"../chunks/DjG7s6hm.js";import{C as re}from"../chunks/BEOQc37C.js";import{B as se}from"../chunks/BkOJ8DkV.js";import{I as dt}from"../chunks/B5wTVqxm.js";import{Z as oe}from"../chunks/ExCq5swK.js";import{P as ie}from"../chunks/BwMO4RrG.js";import{C as le}from"../chunks/BpuwufMc.js";const ne=!1,Qe=Object.freeze(Object.defineProperty({__proto__:null,ssr:ne},Symbol.toStringTag,{value:"Module"}));function de(P,l){Y(l,!0);let m=lt(l,["$$slots","$$events","$$legacy"]);const x=[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2"}]];dt(P,it({name:"workflow"},()=>m,{get iconNode(){return x},children:(g,T)=>{var c=D(),y=_(c);nt(y,()=>l.children??ot),e(g,c)},$$slots:{default:!0}})),q()}function ce(P,l){Y(l,!0);let m=lt(l,["$$slots","$$events","$$legacy"]);const x=[["path",{d:"m17 2 4 4-4 4"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14"}],["path",{d:"m7 22-4-4 4-4"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3"}]];dt(P,it({name:"repeat"},()=>m,{get iconNode(){return x},children:(g,T)=>{var c=D(),y=_(c);nt(y,()=>l.children??ot),e(g,c)},$$slots:{default:!0}})),q()}function ve(P,l){Y(l,!0);let m=lt(l,["$$slots","$$events","$$legacy"]);const x=[["circle",{cx:"12",cy:"12",r:"10"}],["circle",{cx:"12",cy:"12",r:"1"}]];dt(P,it({name:"circle-dot"},()=>m,{get iconNode(){return x},children:(g,T)=>{var c=D(),y=_(c);nt(y,()=>l.children??ot),e(g,c)},$$slots:{default:!0}})),q()}function fe(P,l){Y(l,!0);let m=lt(l,["$$slots","$$events","$$legacy"]);const x=[["circle",{cx:"12",cy:"12",r:"10"}]];dt(P,it({name:"circle"},()=>m,{get iconNode(){return x},children:(g,T)=>{var c=D(),y=_(c);nt(y,()=>l.children??ot),e(g,c)},$$slots:{default:!0}})),q()}function ue(P,l){Y(l,!0);let m=lt(l,["$$slots","$$events","$$legacy"]);const x=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"}]];dt(P,it({name:"copy"},()=>m,{get iconNode(){return x},children:(g,T)=>{var c=D(),y=_(c);nt(y,()=>l.children??ot),e(g,c)},$$slots:{default:!0}})),q()}var pe=o('<p class="text-sm text-muted-foreground" data-testid="workflows-summary"> </p>'),me=o('<div class="bg-destructive/10 text-destructive p-4 rounded-lg text-sm" data-testid="workflows-error" role="alert"> </div>'),_e=o('<div class="h-36 rounded-lg bg-muted ds-shimmer"></div>'),xe=o('<div class="flex flex-col gap-3" data-testid="workflows-loading"></div>'),ge=o('Define workflows in <code class="text-xs bg-muted px-1 py-0.5 rounded">kynetic.meta.yaml</code> to see them here.',1),he=o('<div class="flex flex-col items-center justify-center py-16" data-testid="workflows-empty"><!> <h2 class="text-lg font-medium text-muted-foreground mb-1">No workflows defined</h2> <p class="text-sm text-muted-foreground"><!></p></div>'),$e=o("<!> ",1),ye=o("<!> Loop",1),we=o('<p class="text-sm text-muted-foreground whitespace-pre-line" data-testid="workflow-description"> </p>'),be=o("<!> Copied!",1),ke=o("<!> Start",1),Pe=o('<div class="flex items-start justify-between gap-4"><div class="flex-1 min-w-0"><div class="flex items-center gap-2 mb-1 flex-wrap"><h3 class="text-sm font-semibold" data-testid="workflow-id"> </h3> <!> <!> <!> <!></div> <!></div> <!></div>'),Ce=o('<span class="text-xs text-destructive/80 ml-1"> </span>'),Ne=o('<li class="text-xs text-muted-foreground list-disc"> </li>'),Se=o('<ul class="mt-1 ml-4 space-y-0.5"></ul>'),ze=o('<li class="flex items-start gap-2 text-sm" data-testid="workflow-step"><span class="flex items-center gap-1.5 shrink-0 mt-0.5"><span class="text-xs text-muted-foreground font-mono w-4 text-right"></span> <!></span> <span class="min-w-0"><span class="text-muted-foreground"> </span> <!> <!></span></li>'),Me=o('<div class="flex flex-col gap-1.5" data-testid="workflow-steps"><h4 class="text-xs font-medium text-muted-foreground uppercase tracking-wider"> </h4> <ol class="flex flex-col gap-1"></ol></div>'),je=o('<p class="text-xs text-muted-foreground italic">No steps defined</p>'),Te=o("<span>&middot;</span> <!>",1),Be=o('<!> <div class="flex items-center gap-2 text-xs text-muted-foreground mt-3 pt-3 border-t"><code class="bg-muted px-1 py-0.5 rounded" data-testid="workflow-ulid"> </code> <!></div>',1),De=o("<!> <!>",1),Ee=o('<div class="flex flex-col gap-3" data-testid="workflows-list"></div>'),Ie=o('<div class="flex flex-col gap-4 p-6"><div class="flex items-center justify-between"><div><h1 class="text-2xl font-bold">Workflows</h1> <!></div></div> <!> <!></div>');function Xe(P,l){Y(l,!0);let m=mt(Ut([])),x=mt(!0),g=mt(""),T=mt(null);const c={action:"text-severity-success",check:"text-severity-info",decision:"text-severity-warning"};Ht(()=>{_t()||(Kt(["files:updates"]),Qt("files:updates",Nt))}),Rt(()=>{_t()||(Xt("files:updates",Nt),te(["files:updates"]))}),Yt(()=>{qt(),Gt()&&y()});async function y(){try{L(x,!0),L(g,"");const s=await Jt();L(m,s.items,!0)}catch(s){L(g,s instanceof Error?s.message:"Failed to load workflows",!0)}finally{L(x,!1)}}function Nt(){y()}async function Bt(s){const u=`kspec workflow start @${s}`;try{await navigator.clipboard.writeText(u),L(T,s,!0),setTimeout(()=>{L(T,null)},2e3)}catch{}}var gt=Ie(),ht=i(gt),St=i(ht),Dt=d(i(St),2);{var Et=s=>{var u=pe(),E=i(u);r(u),b(()=>k(E,`${t(m).length??""} workflow${t(m).length===1?"":"s"} defined`)),e(s,u)};f(Dt,s=>{t(x)||s(Et)})}r(St),r(ht);var zt=d(ht,2);{var It=s=>{var u=me(),E=i(u,!0);r(u),b(()=>k(E,t(g))),e(s,u)};f(zt,s=>{t(g)&&s(It)})}var Wt=d(zt,2);{var At=s=>{var u=xe();rt(u,20,()=>Array(3),xt,(E,Mt)=>{var $t=_e();e(E,$t)}),r(u),e(s,u)},Lt=s=>{var u=D(),E=_(u);{var Mt=V=>{var I=he(),Z=i(I);de(Z,{class:"size-12 text-muted-foreground/30 mb-4"});var n=d(Z,4),yt=i(n);{var jt=z=>{var G=pt("No workflow data available in the snapshot.");e(z,G)},ct=z=>{var G=ge();O(2),e(z,G)};f(yt,z=>{_t()?z(jt):z(ct,!1)})}r(n),r(I),e(V,I)},$t=V=>{var I=Ee();rt(I,21,()=>t(m),Z=>Z._ulid,(Z,n)=>{ee(Z,{class:"transition-all duration-200 hover:shadow-md","data-testid":"workflow-card",children:(yt,jt)=>{var ct=De(),z=_(ct);re(z,{class:"pb-3",children:(wt,Ot)=>{var F=Pe(),H=i(F),J=i(H),K=i(J),vt=i(K,!0);r(K);var R=d(K,2);st(R,{variant:"secondary",class:"text-xs gap-1","data-testid":"workflow-trigger",children:(a,p)=>{var w=$e(),v=_(w);oe(v,{class:"h-3 w-3"});var A=d(v);b(()=>k(A,` ${t(n).trigger??""}`)),e(a,w)},$$slots:{default:!0}});var ft=d(R,2);{var bt=a=>{st(a,{variant:"outline",class:"text-xs gap-1","data-testid":"workflow-loop",children:(p,w)=>{var v=ye(),A=_(v);ce(A,{class:"h-3 w-3"}),O(),e(p,v)},$$slots:{default:!0}})};f(ft,a=>{t(n).mode==="loop"&&a(bt)})}var ut=d(ft,2);{var h=a=>{st(a,{variant:"outline",class:"text-xs gap-1","data-testid":"workflow-variant",children:(p,w)=>{O();var v=pt();b(()=>k(v,`variant of @${t(n).based_on??""}`)),e(p,v)},$$slots:{default:!0}})};f(ut,a=>{t(n).based_on&&a(h)})}var N=d(ut,2);{var W=a=>{st(a,{class:"text-xs bg-status-blocked text-status-blocked-fg",children:(p,w)=>{O();var v=pt("Strict");e(p,v)},$$slots:{default:!0}})};f(N,a=>{t(n).enforcement==="strict"&&a(W)})}r(J);var Q=d(J,2);{var U=a=>{var p=we(),w=i(p,!0);r(p),b(v=>k(w,v),[()=>t(n).description.trim()]),e(a,p)};f(Q,a=>{t(n).description&&a(U)})}r(H);var X=d(H,2);{var C=a=>{se(a,{variant:"outline",size:"sm",class:"h-8 gap-1.5 text-xs shrink-0","data-testid":"workflow-start-btn",onclick:()=>Bt(t(n).id),children:(p,w)=>{var v=D(),A=_(v);{var kt=M=>{var j=be(),tt=_(j);ue(tt,{class:"size-3.5"}),O(),e(M,j)},Pt=M=>{var j=ke(),tt=_(j);ie(tt,{class:"size-3.5"}),O(),e(M,j)};f(A,M=>{t(T)===t(n).id?M(kt):M(Pt,!1)})}e(p,v)},$$slots:{default:!0}})};f(X,a=>{_t()||a(C)})}r(F),b(()=>k(vt,t(n).id)),e(wt,F)},$$slots:{default:!0}});var G=d(z,2);ae(G,{class:"pt-0",children:(wt,Ot)=>{var F=Be(),H=_(F);{var J=h=>{var N=Me(),W=i(N),Q=i(W);r(W);var U=d(W,2);rt(U,21,()=>t(n).steps,xt,(X,C,a)=>{var p=ze(),w=i(p),v=i(w);v.textContent=`${a+1}.`;var A=d(v,2);{var kt=$=>{le($,{get class(){return`size-3.5 ${c.check}`}})},Pt=$=>{var S=D(),et=_(S);{var Ct=B=>{ve(B,{get class(){return`size-3.5 ${c.decision}`}})},at=B=>{fe(B,{get class(){return`size-3.5 ${c.action}`}})};f(et,B=>{t(C).type==="decision"?B(Ct):B(at,!1)},!0)}e($,S)};f(A,$=>{t(C).type==="check"?$(kt):$(Pt,!1)})}r(w);var M=d(w,2),j=i(M),tt=i(j,!0);r(j);var Tt=d(j,2);{var Vt=$=>{var S=Ce(),et=i(S);r(S),b(()=>k(et,`(on fail: ${t(C).on_fail??""})`)),e($,S)};f(Tt,$=>{t(C).on_fail&&$(Vt)})}var Zt=d(Tt,2);{var Ft=$=>{var S=Se();rt(S,21,()=>t(C).options,xt,(et,Ct)=>{var at=Ne(),B=i(at,!0);r(at),b(()=>k(B,t(Ct))),e(et,at)}),r(S),e($,S)};f(Zt,$=>{t(C).options&&t(C).options.length>0&&$(Ft)})}r(M),r(p),b(()=>k(tt,t(C).content)),e(X,p)}),r(U),r(N),b(()=>k(Q,`Steps (${t(n).steps.length??""})`)),e(h,N)},K=h=>{var N=je();e(h,N)};f(H,h=>{t(n).steps.length>0?h(J):h(K,!1)})}var vt=d(H,2),R=i(vt),ft=i(R,!0);r(R);var bt=d(R,2);{var ut=h=>{var N=Te(),W=d(_(N),2);rt(W,17,()=>t(n).tags,xt,(Q,U)=>{st(Q,{variant:"secondary",class:"text-xs",children:(X,C)=>{O();var a=pt();b(()=>k(a,t(U))),e(X,a)},$$slots:{default:!0}})}),e(h,N)};f(bt,h=>{t(n).tags&&t(n).tags.length>0&&h(ut)})}r(vt),b(h=>k(ft,h),[()=>t(n)._ulid.slice(0,8)]),e(wt,F)},$$slots:{default:!0}}),e(yt,ct)},$$slots:{default:!0}})}),r(I),e(V,I)};f(E,V=>{t(m).length===0?V(Mt):V($t,!1)},!0)}e(s,u)};f(Wt,s=>{t(x)?s(At):s(Lt,!1)})}r(gt),e(P,gt),q()}export{Xe as component,Qe as universal};