openspecui 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/dist/cli.mjs +1 -1
  2. package/dist/index.mjs +1 -1
  3. package/dist/{src-Bmm_kaB8.mjs → src-D7s-EgJ2.mjs} +64 -22
  4. package/package.json +4 -3
  5. package/web/{dist/assets/index-l4gcUD8y.js → assets/index-DIHAzyX3.js} +69 -119
  6. package/web/assets/index-DuIo-wPB.css +1 -0
  7. package/web/index.html +4 -4
  8. package/web/logo.svg +8 -0
  9. package/web/openspec_pixel_dark.svg +89 -0
  10. package/web/openspec_pixel_light.svg +89 -0
  11. package/web/assets/index-BhzIZ_eQ.js +0 -150
  12. package/web/assets/index-D6x5Q1lW.css +0 -1
  13. package/web/dist/assets/index-BNmb5C1F.css +0 -1
  14. package/web/dist/assets/index-BhzIZ_eQ.js +0 -150
  15. package/web/dist/assets/index-BxBbLX3V.js +0 -170
  16. package/web/dist/assets/index-C4c5ARU5.css +0 -1
  17. package/web/dist/assets/index-CqKOZnDE.css +0 -1
  18. package/web/dist/assets/index-D6x5Q1lW.css +0 -1
  19. package/web/dist/assets/index-Om_P2_SF.js +0 -155
  20. package/web/dist/index.html +0 -14
  21. /package/web/{dist/assets → assets}/abap-BdImnpbu.js +0 -0
  22. /package/web/{dist/assets → assets}/actionscript-3-CfeIJUat.js +0 -0
  23. /package/web/{dist/assets → assets}/ada-bCR0ucgS.js +0 -0
  24. /package/web/{dist/assets → assets}/andromeeda-C-Jbm3Hp.js +0 -0
  25. /package/web/{dist/assets → assets}/angular-html-CU67Zn6k.js +0 -0
  26. /package/web/{dist/assets → assets}/angular-ts-BwZT4LLn.js +0 -0
  27. /package/web/{dist/assets → assets}/apache-Pmp26Uib.js +0 -0
  28. /package/web/{dist/assets → assets}/apex-DDbsPZ6N.js +0 -0
  29. /package/web/{dist/assets → assets}/apl-dKokRX4l.js +0 -0
  30. /package/web/{dist/assets → assets}/applescript-Co6uUVPk.js +0 -0
  31. /package/web/{dist/assets → assets}/ara-BRHolxvo.js +0 -0
  32. /package/web/{dist/assets → assets}/asciidoc-Dv7Oe6Be.js +0 -0
  33. /package/web/{dist/assets → assets}/asm-D_Q5rh1f.js +0 -0
  34. /package/web/{dist/assets → assets}/astro-CbQHKStN.js +0 -0
  35. /package/web/{dist/assets → assets}/aurora-x-D-2ljcwZ.js +0 -0
  36. /package/web/{dist/assets → assets}/awk-DMzUqQB5.js +0 -0
  37. /package/web/{dist/assets → assets}/ayu-dark-Cv9koXgw.js +0 -0
  38. /package/web/{dist/assets → assets}/ballerina-BFfxhgS-.js +0 -0
  39. /package/web/{dist/assets → assets}/bat-BkioyH1T.js +0 -0
  40. /package/web/{dist/assets → assets}/beancount-k_qm7-4y.js +0 -0
  41. /package/web/{dist/assets → assets}/berry-uYugtg8r.js +0 -0
  42. /package/web/{dist/assets → assets}/bibtex-CHM0blh-.js +0 -0
  43. /package/web/{dist/assets → assets}/bicep-Bmn6On1c.js +0 -0
  44. /package/web/{dist/assets → assets}/blade-DVc8C-J4.js +0 -0
  45. /package/web/{dist/assets → assets}/bsl-BO_Y6i37.js +0 -0
  46. /package/web/{dist/assets → assets}/c-BIGW1oBm.js +0 -0
  47. /package/web/{dist/assets → assets}/cadence-Bv_4Rxtq.js +0 -0
  48. /package/web/{dist/assets → assets}/cairo-KRGpt6FW.js +0 -0
  49. /package/web/{dist/assets → assets}/catppuccin-frappe-DFWUc33u.js +0 -0
  50. /package/web/{dist/assets → assets}/catppuccin-latte-C9dUb6Cb.js +0 -0
  51. /package/web/{dist/assets → assets}/catppuccin-macchiato-DQyhUUbL.js +0 -0
  52. /package/web/{dist/assets → assets}/catppuccin-mocha-D87Tk5Gz.js +0 -0
  53. /package/web/{dist/assets → assets}/clarity-D53aC0YG.js +0 -0
  54. /package/web/{dist/assets → assets}/clojure-P80f7IUj.js +0 -0
  55. /package/web/{dist/assets → assets}/cmake-D1j8_8rp.js +0 -0
  56. /package/web/{dist/assets → assets}/cobol-nwyudZeR.js +0 -0
  57. /package/web/{dist/assets → assets}/codeowners-Bp6g37R7.js +0 -0
  58. /package/web/{dist/assets → assets}/codeql-DsOJ9woJ.js +0 -0
  59. /package/web/{dist/assets → assets}/coffee-Ch7k5sss.js +0 -0
  60. /package/web/{dist/assets → assets}/common-lisp-Cg-RD9OK.js +0 -0
  61. /package/web/{dist/assets → assets}/coq-DkFqJrB1.js +0 -0
  62. /package/web/{dist/assets → assets}/cpp-CofmeUqb.js +0 -0
  63. /package/web/{dist/assets → assets}/crystal-tKQVLTB8.js +0 -0
  64. /package/web/{dist/assets → assets}/csharp-K5feNrxe.js +0 -0
  65. /package/web/{dist/assets → assets}/css-DPfMkruS.js +0 -0
  66. /package/web/{dist/assets → assets}/csv-fuZLfV_i.js +0 -0
  67. /package/web/{dist/assets → assets}/cue-D82EKSYY.js +0 -0
  68. /package/web/{dist/assets → assets}/cypher-COkxafJQ.js +0 -0
  69. /package/web/{dist/assets → assets}/d-85-TOEBH.js +0 -0
  70. /package/web/{dist/assets → assets}/dark-plus-C3mMm8J8.js +0 -0
  71. /package/web/{dist/assets → assets}/dart-CF10PKvl.js +0 -0
  72. /package/web/{dist/assets → assets}/dax-CEL-wOlO.js +0 -0
  73. /package/web/{dist/assets → assets}/desktop-BmXAJ9_W.js +0 -0
  74. /package/web/{dist/assets → assets}/diff-D97Zzqfu.js +0 -0
  75. /package/web/{dist/assets → assets}/docker-BcOcwvcX.js +0 -0
  76. /package/web/{dist/assets → assets}/dotenv-Da5cRb03.js +0 -0
  77. /package/web/{dist/assets → assets}/dracula-BzJJZx-M.js +0 -0
  78. /package/web/{dist/assets → assets}/dracula-soft-BXkSAIEj.js +0 -0
  79. /package/web/{dist/assets → assets}/dream-maker-BtqSS_iP.js +0 -0
  80. /package/web/{dist/assets → assets}/edge-BkV0erSs.js +0 -0
  81. /package/web/{dist/assets → assets}/elixir-CDX3lj18.js +0 -0
  82. /package/web/{dist/assets → assets}/elm-DbKCFpqz.js +0 -0
  83. /package/web/{dist/assets → assets}/emacs-lisp-C9XAeP06.js +0 -0
  84. /package/web/{dist/assets → assets}/erb-BOJIQeun.js +0 -0
  85. /package/web/{dist/assets → assets}/erlang-DsQrWhSR.js +0 -0
  86. /package/web/{dist/assets → assets}/everforest-dark-BgDCqdQA.js +0 -0
  87. /package/web/{dist/assets → assets}/everforest-light-C8M2exoo.js +0 -0
  88. /package/web/{dist/assets → assets}/fennel-BYunw83y.js +0 -0
  89. /package/web/{dist/assets → assets}/fish-BvzEVeQv.js +0 -0
  90. /package/web/{dist/assets → assets}/fluent-C4IJs8-o.js +0 -0
  91. /package/web/{dist/assets → assets}/fortran-fixed-form-BZjJHVRy.js +0 -0
  92. /package/web/{dist/assets → assets}/fortran-free-form-D22FLkUw.js +0 -0
  93. /package/web/{dist/assets → assets}/fsharp-CXgrBDvD.js +0 -0
  94. /package/web/{dist/assets → assets}/gdresource-B7Tvp0Sc.js +0 -0
  95. /package/web/{dist/assets → assets}/gdscript-DTMYz4Jt.js +0 -0
  96. /package/web/{dist/assets → assets}/gdshader-DkwncUOv.js +0 -0
  97. /package/web/{dist/assets → assets}/genie-D0YGMca9.js +0 -0
  98. /package/web/{dist/assets → assets}/gherkin-DyxjwDmM.js +0 -0
  99. /package/web/{dist/assets → assets}/git-commit-F4YmCXRG.js +0 -0
  100. /package/web/{dist/assets → assets}/git-rebase-r7XF79zn.js +0 -0
  101. /package/web/{dist/assets → assets}/github-dark-DHJKELXO.js +0 -0
  102. /package/web/{dist/assets → assets}/github-dark-default-Cuk6v7N8.js +0 -0
  103. /package/web/{dist/assets → assets}/github-dark-dimmed-DH5Ifo-i.js +0 -0
  104. /package/web/{dist/assets → assets}/github-dark-high-contrast-E3gJ1_iC.js +0 -0
  105. /package/web/{dist/assets → assets}/github-light-DAi9KRSo.js +0 -0
  106. /package/web/{dist/assets → assets}/github-light-default-D7oLnXFd.js +0 -0
  107. /package/web/{dist/assets → assets}/github-light-high-contrast-BfjtVDDH.js +0 -0
  108. /package/web/{dist/assets → assets}/gleam-BspZqrRM.js +0 -0
  109. /package/web/{dist/assets → assets}/glimmer-js-Rg0-pVw9.js +0 -0
  110. /package/web/{dist/assets → assets}/glimmer-ts-U6CK756n.js +0 -0
  111. /package/web/{dist/assets → assets}/glsl-DplSGwfg.js +0 -0
  112. /package/web/{dist/assets → assets}/gnuplot-DdkO51Og.js +0 -0
  113. /package/web/{dist/assets → assets}/go-Dn2_MT6a.js +0 -0
  114. /package/web/{dist/assets → assets}/graphql-ChdNCCLP.js +0 -0
  115. /package/web/{dist/assets → assets}/groovy-gcz8RCvz.js +0 -0
  116. /package/web/{dist/assets → assets}/gruvbox-dark-hard-CFHQjOhq.js +0 -0
  117. /package/web/{dist/assets → assets}/gruvbox-dark-medium-GsRaNv29.js +0 -0
  118. /package/web/{dist/assets → assets}/gruvbox-dark-soft-CVdnzihN.js +0 -0
  119. /package/web/{dist/assets → assets}/gruvbox-light-hard-CH1njM8p.js +0 -0
  120. /package/web/{dist/assets → assets}/gruvbox-light-medium-DRw_LuNl.js +0 -0
  121. /package/web/{dist/assets → assets}/gruvbox-light-soft-hJgmCMqR.js +0 -0
  122. /package/web/{dist/assets → assets}/hack-CaT9iCJl.js +0 -0
  123. /package/web/{dist/assets → assets}/haml-B8DHNrY2.js +0 -0
  124. /package/web/{dist/assets → assets}/handlebars-BL8al0AC.js +0 -0
  125. /package/web/{dist/assets → assets}/haskell-Df6bDoY_.js +0 -0
  126. /package/web/{dist/assets → assets}/haxe-CzTSHFRz.js +0 -0
  127. /package/web/{dist/assets → assets}/hcl-BWvSN4gD.js +0 -0
  128. /package/web/{dist/assets → assets}/hjson-D5-asLiD.js +0 -0
  129. /package/web/{dist/assets → assets}/hlsl-D3lLCCz7.js +0 -0
  130. /package/web/{dist/assets → assets}/houston-DnULxvSX.js +0 -0
  131. /package/web/{dist/assets → assets}/html-GMplVEZG.js +0 -0
  132. /package/web/{dist/assets → assets}/html-derivative-BFtXZ54Q.js +0 -0
  133. /package/web/{dist/assets → assets}/http-jrhK8wxY.js +0 -0
  134. /package/web/{dist/assets → assets}/hurl-irOxFIW8.js +0 -0
  135. /package/web/{dist/assets → assets}/hxml-Bvhsp5Yf.js +0 -0
  136. /package/web/{dist/assets → assets}/hy-DFXneXwc.js +0 -0
  137. /package/web/{dist/assets → assets}/imba-DGztddWO.js +0 -0
  138. /package/web/{dist/assets → assets}/ini-BEwlwnbL.js +0 -0
  139. /package/web/{dist/assets → assets}/java-CylS5w8V.js +0 -0
  140. /package/web/{dist/assets → assets}/javascript-wDzz0qaB.js +0 -0
  141. /package/web/{dist/assets → assets}/jinja-4LBKfQ-Z.js +0 -0
  142. /package/web/{dist/assets → assets}/jison-wvAkD_A8.js +0 -0
  143. /package/web/{dist/assets → assets}/json-Cp-IABpG.js +0 -0
  144. /package/web/{dist/assets → assets}/json5-C9tS-k6U.js +0 -0
  145. /package/web/{dist/assets → assets}/jsonc-Des-eS-w.js +0 -0
  146. /package/web/{dist/assets → assets}/jsonl-DcaNXYhu.js +0 -0
  147. /package/web/{dist/assets → assets}/jsonnet-DFQXde-d.js +0 -0
  148. /package/web/{dist/assets → assets}/jssm-C2t-YnRu.js +0 -0
  149. /package/web/{dist/assets → assets}/jsx-g9-lgVsj.js +0 -0
  150. /package/web/{dist/assets → assets}/julia-C8NyazO9.js +0 -0
  151. /package/web/{dist/assets → assets}/kanagawa-dragon-CkXjmgJE.js +0 -0
  152. /package/web/{dist/assets → assets}/kanagawa-lotus-CfQXZHmo.js +0 -0
  153. /package/web/{dist/assets → assets}/kanagawa-wave-DWedfzmr.js +0 -0
  154. /package/web/{dist/assets → assets}/kdl-DV7GczEv.js +0 -0
  155. /package/web/{dist/assets → assets}/kotlin-BdnUsdx6.js +0 -0
  156. /package/web/{dist/assets → assets}/kusto-BvAqAH-y.js +0 -0
  157. /package/web/{dist/assets → assets}/laserwave-DUszq2jm.js +0 -0
  158. /package/web/{dist/assets → assets}/latex-BdAV_C_H.js +0 -0
  159. /package/web/{dist/assets → assets}/lean-Bc6EcWN3.js +0 -0
  160. /package/web/{dist/assets → assets}/less-B1dDrJ26.js +0 -0
  161. /package/web/{dist/assets → assets}/light-plus-B7mTdjB0.js +0 -0
  162. /package/web/{dist/assets → assets}/liquid-DYVedYrR.js +0 -0
  163. /package/web/{dist/assets → assets}/llvm-BtvRca6l.js +0 -0
  164. /package/web/{dist/assets → assets}/log-2UxHyX5q.js +0 -0
  165. /package/web/{dist/assets → assets}/logo-BtOb2qkB.js +0 -0
  166. /package/web/{dist/assets → assets}/lua-BbnMAYS6.js +0 -0
  167. /package/web/{dist/assets → assets}/luau-CXu1NL6O.js +0 -0
  168. /package/web/{dist/assets → assets}/make-CHLpvVh8.js +0 -0
  169. /package/web/{dist/assets → assets}/markdown-Cvjx9yec.js +0 -0
  170. /package/web/{dist/assets → assets}/marko-CPi9NSCl.js +0 -0
  171. /package/web/{dist/assets → assets}/material-theme-D5KoaKCx.js +0 -0
  172. /package/web/{dist/assets → assets}/material-theme-darker-BfHTSMKl.js +0 -0
  173. /package/web/{dist/assets → assets}/material-theme-lighter-B0m2ddpp.js +0 -0
  174. /package/web/{dist/assets → assets}/material-theme-ocean-CyktbL80.js +0 -0
  175. /package/web/{dist/assets → assets}/material-theme-palenight-Csfq5Kiy.js +0 -0
  176. /package/web/{dist/assets → assets}/matlab-D7o27uSR.js +0 -0
  177. /package/web/{dist/assets → assets}/mdc-DUICxH0z.js +0 -0
  178. /package/web/{dist/assets → assets}/mdx-Cmh6b_Ma.js +0 -0
  179. /package/web/{dist/assets → assets}/mermaid-DKYwYmdq.js +0 -0
  180. /package/web/{dist/assets → assets}/min-dark-CafNBF8u.js +0 -0
  181. /package/web/{dist/assets → assets}/min-light-CTRr51gU.js +0 -0
  182. /package/web/{dist/assets → assets}/mipsasm-CKIfxQSi.js +0 -0
  183. /package/web/{dist/assets → assets}/mojo-1DNp92w6.js +0 -0
  184. /package/web/{dist/assets → assets}/monokai-D4h5O-jR.js +0 -0
  185. /package/web/{dist/assets → assets}/move-Bu9oaDYs.js +0 -0
  186. /package/web/{dist/assets → assets}/narrat-DRg8JJMk.js +0 -0
  187. /package/web/{dist/assets → assets}/nextflow-BrzmwbiE.js +0 -0
  188. /package/web/{dist/assets → assets}/nginx-DknmC5AR.js +0 -0
  189. /package/web/{dist/assets → assets}/night-owl-C39BiMTA.js +0 -0
  190. /package/web/{dist/assets → assets}/nim-CVrawwO9.js +0 -0
  191. /package/web/{dist/assets → assets}/nix-c8nO5XWb.js +0 -0
  192. /package/web/{dist/assets → assets}/nord-Ddv68eIx.js +0 -0
  193. /package/web/{dist/assets → assets}/nushell-C-sUppwS.js +0 -0
  194. /package/web/{dist/assets → assets}/objective-c-DXmwc3jG.js +0 -0
  195. /package/web/{dist/assets → assets}/objective-cpp-CLxacb5B.js +0 -0
  196. /package/web/{dist/assets → assets}/ocaml-C0hk2d4L.js +0 -0
  197. /package/web/{dist/assets → assets}/one-dark-pro-DVMEJ2y_.js +0 -0
  198. /package/web/{dist/assets → assets}/one-light-PoHY5YXO.js +0 -0
  199. /package/web/{dist/assets → assets}/openscad-C4EeE6gA.js +0 -0
  200. /package/web/{dist/assets → assets}/pascal-D93ZcfNL.js +0 -0
  201. /package/web/{dist/assets → assets}/perl-C0TMdlhV.js +0 -0
  202. /package/web/{dist/assets → assets}/php-CDn_0X-4.js +0 -0
  203. /package/web/{dist/assets → assets}/pkl-u5AG7uiY.js +0 -0
  204. /package/web/{dist/assets → assets}/plastic-3e1v2bzS.js +0 -0
  205. /package/web/{dist/assets → assets}/plsql-ChMvpjG-.js +0 -0
  206. /package/web/{dist/assets → assets}/po-BTJTHyun.js +0 -0
  207. /package/web/{dist/assets → assets}/poimandres-CS3Unz2-.js +0 -0
  208. /package/web/{dist/assets → assets}/polar-C0HS_06l.js +0 -0
  209. /package/web/{dist/assets → assets}/postcss-CXtECtnM.js +0 -0
  210. /package/web/{dist/assets → assets}/powerquery-CEu0bR-o.js +0 -0
  211. /package/web/{dist/assets → assets}/powershell-Dpen1YoG.js +0 -0
  212. /package/web/{dist/assets → assets}/prisma-Dd19v3D-.js +0 -0
  213. /package/web/{dist/assets → assets}/prolog-CbFg5uaA.js +0 -0
  214. /package/web/{dist/assets → assets}/proto-DyJlTyXw.js +0 -0
  215. /package/web/{dist/assets → assets}/pug-CGlum2m_.js +0 -0
  216. /package/web/{dist/assets → assets}/puppet-BMWR74SV.js +0 -0
  217. /package/web/{dist/assets → assets}/purescript-CklMAg4u.js +0 -0
  218. /package/web/{dist/assets → assets}/python-B6aJPvgy.js +0 -0
  219. /package/web/{dist/assets → assets}/qml-3beO22l8.js +0 -0
  220. /package/web/{dist/assets → assets}/qmldir-C8lEn-DE.js +0 -0
  221. /package/web/{dist/assets → assets}/qss-IeuSbFQv.js +0 -0
  222. /package/web/{dist/assets → assets}/r-DiinP2Uv.js +0 -0
  223. /package/web/{dist/assets → assets}/racket-BqYA7rlc.js +0 -0
  224. /package/web/{dist/assets → assets}/raku-DXvB9xmW.js +0 -0
  225. /package/web/{dist/assets → assets}/razor-CE9lU5zL.js +0 -0
  226. /package/web/{dist/assets → assets}/red-bN70gL4F.js +0 -0
  227. /package/web/{dist/assets → assets}/reg-C-SQnVFl.js +0 -0
  228. /package/web/{dist/assets → assets}/regexp-CDVJQ6XC.js +0 -0
  229. /package/web/{dist/assets → assets}/rel-C3B-1QV4.js +0 -0
  230. /package/web/{dist/assets → assets}/riscv-BM1_JUlF.js +0 -0
  231. /package/web/{dist/assets → assets}/rose-pine-dawn-DHQR4-dF.js +0 -0
  232. /package/web/{dist/assets → assets}/rose-pine-moon-D4_iv3hh.js +0 -0
  233. /package/web/{dist/assets → assets}/rose-pine-qdsjHGoJ.js +0 -0
  234. /package/web/{dist/assets → assets}/rosmsg-BJDFO7_C.js +0 -0
  235. /package/web/{dist/assets → assets}/rst-B0xPkSld.js +0 -0
  236. /package/web/{dist/assets → assets}/ruby-BvKwtOVI.js +0 -0
  237. /package/web/{dist/assets → assets}/rust-B1yitclQ.js +0 -0
  238. /package/web/{dist/assets → assets}/sas-cz2c8ADy.js +0 -0
  239. /package/web/{dist/assets → assets}/sass-Cj5Yp3dK.js +0 -0
  240. /package/web/{dist/assets → assets}/scala-C151Ov-r.js +0 -0
  241. /package/web/{dist/assets → assets}/scheme-C98Dy4si.js +0 -0
  242. /package/web/{dist/assets → assets}/scss-OYdSNvt2.js +0 -0
  243. /package/web/{dist/assets → assets}/sdbl-DVxCFoDh.js +0 -0
  244. /package/web/{dist/assets → assets}/shaderlab-Dg9Lc6iA.js +0 -0
  245. /package/web/{dist/assets → assets}/shellscript-Yzrsuije.js +0 -0
  246. /package/web/{dist/assets → assets}/shellsession-BADoaaVG.js +0 -0
  247. /package/web/{dist/assets → assets}/slack-dark-BthQWCQV.js +0 -0
  248. /package/web/{dist/assets → assets}/slack-ochin-DqwNpetd.js +0 -0
  249. /package/web/{dist/assets → assets}/smalltalk-BERRCDM3.js +0 -0
  250. /package/web/{dist/assets → assets}/snazzy-light-Bw305WKR.js +0 -0
  251. /package/web/{dist/assets → assets}/solarized-dark-DXbdFlpD.js +0 -0
  252. /package/web/{dist/assets → assets}/solarized-light-L9t79GZl.js +0 -0
  253. /package/web/{dist/assets → assets}/solidity-rGO070M0.js +0 -0
  254. /package/web/{dist/assets → assets}/soy-Brmx7dQM.js +0 -0
  255. /package/web/{dist/assets → assets}/sparql-rVzFXLq3.js +0 -0
  256. /package/web/{dist/assets → assets}/splunk-BtCnVYZw.js +0 -0
  257. /package/web/{dist/assets → assets}/sql-BLtJtn59.js +0 -0
  258. /package/web/{dist/assets → assets}/ssh-config-_ykCGR6B.js +0 -0
  259. /package/web/{dist/assets → assets}/stata-BH5u7GGu.js +0 -0
  260. /package/web/{dist/assets → assets}/stylus-BEDo0Tqx.js +0 -0
  261. /package/web/{dist/assets → assets}/svelte-3Dk4HxPD.js +0 -0
  262. /package/web/{dist/assets → assets}/swift-Dg5xB15N.js +0 -0
  263. /package/web/{dist/assets → assets}/synthwave-84-CbfX1IO0.js +0 -0
  264. /package/web/{dist/assets → assets}/system-verilog-CnnmHF94.js +0 -0
  265. /package/web/{dist/assets → assets}/systemd-4A_iFExJ.js +0 -0
  266. /package/web/{dist/assets → assets}/talonscript-CkByrt1z.js +0 -0
  267. /package/web/{dist/assets → assets}/tasl-QIJgUcNo.js +0 -0
  268. /package/web/{dist/assets → assets}/tcl-dwOrl1Do.js +0 -0
  269. /package/web/{dist/assets → assets}/templ-W15q3VgB.js +0 -0
  270. /package/web/{dist/assets → assets}/terraform-BETggiCN.js +0 -0
  271. /package/web/{dist/assets → assets}/tex-CxkMU7Pf.js +0 -0
  272. /package/web/{dist/assets → assets}/tokyo-night-hegEt444.js +0 -0
  273. /package/web/{dist/assets → assets}/toml-vGWfd6FD.js +0 -0
  274. /package/web/{dist/assets → assets}/ts-tags-zn1MmPIZ.js +0 -0
  275. /package/web/{dist/assets → assets}/tsv-B_m7g4N7.js +0 -0
  276. /package/web/{dist/assets → assets}/tsx-COt5Ahok.js +0 -0
  277. /package/web/{dist/assets → assets}/turtle-BsS91CYL.js +0 -0
  278. /package/web/{dist/assets → assets}/twig-CO9l9SDP.js +0 -0
  279. /package/web/{dist/assets → assets}/typescript-BPQ3VLAy.js +0 -0
  280. /package/web/{dist/assets → assets}/typespec-BGHnOYBU.js +0 -0
  281. /package/web/{dist/assets → assets}/typst-DHCkPAjA.js +0 -0
  282. /package/web/{dist/assets → assets}/v-BcVCzyr7.js +0 -0
  283. /package/web/{dist/assets → assets}/vala-CsfeWuGM.js +0 -0
  284. /package/web/{dist/assets → assets}/vb-D17OF-Vu.js +0 -0
  285. /package/web/{dist/assets → assets}/verilog-BQ8w6xss.js +0 -0
  286. /package/web/{dist/assets → assets}/vesper-DU1UobuO.js +0 -0
  287. /package/web/{dist/assets → assets}/vhdl-CeAyd5Ju.js +0 -0
  288. /package/web/{dist/assets → assets}/viml-CJc9bBzg.js +0 -0
  289. /package/web/{dist/assets → assets}/vitesse-black-Bkuqu6BP.js +0 -0
  290. /package/web/{dist/assets → assets}/vitesse-dark-D0r3Knsf.js +0 -0
  291. /package/web/{dist/assets → assets}/vitesse-light-CVO1_9PV.js +0 -0
  292. /package/web/{dist/assets → assets}/vue-DnHKYNfI.js +0 -0
  293. /package/web/{dist/assets → assets}/vue-html-CChd_i61.js +0 -0
  294. /package/web/{dist/assets → assets}/vue-vine-8moa0y9V.js +0 -0
  295. /package/web/{dist/assets → assets}/vyper-CDx5xZoG.js +0 -0
  296. /package/web/{dist/assets → assets}/wasm-CG6Dc4jp.js +0 -0
  297. /package/web/{dist/assets → assets}/wasm-MzD3tlZU.js +0 -0
  298. /package/web/{dist/assets → assets}/wenyan-BV7otONQ.js +0 -0
  299. /package/web/{dist/assets → assets}/wgsl-Dx-B1_4e.js +0 -0
  300. /package/web/{dist/assets → assets}/wikitext-BhOHFoWU.js +0 -0
  301. /package/web/{dist/assets → assets}/wit-5i3qLPDT.js +0 -0
  302. /package/web/{dist/assets → assets}/wolfram-lXgVvXCa.js +0 -0
  303. /package/web/{dist/assets → assets}/xml-sdJ4AIDG.js +0 -0
  304. /package/web/{dist/assets → assets}/xsl-CtQFsRM5.js +0 -0
  305. /package/web/{dist/assets → assets}/yaml-Buea-lGh.js +0 -0
  306. /package/web/{dist/assets → assets}/zenscript-DVFEvuxE.js +0 -0
  307. /package/web/{dist/assets → assets}/zig-VOosw3JB.js +0 -0
package/dist/cli.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { a as __commonJS, o as __toESM, t as startServer } from "./src-Bmm_kaB8.mjs";
2
+ import { a as __commonJS, o as __toESM, t as startServer } from "./src-D7s-EgJ2.mjs";
3
3
  import { createRequire } from "node:module";
4
4
  import { fileURLToPath } from "url";
5
5
  import { basename, dirname, extname, join, normalize, relative, resolve } from "path";
package/dist/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
- import { i as ACPAgents, n as createServer, r as ProviderManager, t as startServer } from "./src-Bmm_kaB8.mjs";
1
+ import { i as ACPAgents, n as createServer, r as ProviderManager, t as startServer } from "./src-D7s-EgJ2.mjs";
2
2
 
3
3
  export { ACPAgents, ProviderManager, createServer, startServer };
@@ -12747,6 +12747,18 @@ var OpenSpecAdapter = class {
12747
12747
  return false;
12748
12748
  }
12749
12749
  }
12750
+ /** File time info derived from filesystem */
12751
+ async getFileTimeInfo(filePath) {
12752
+ try {
12753
+ const fileStat = await stat(filePath);
12754
+ return {
12755
+ createdAt: fileStat.birthtime.getTime(),
12756
+ updatedAt: fileStat.mtime.getTime()
12757
+ };
12758
+ } catch {
12759
+ return null;
12760
+ }
12761
+ }
12750
12762
  async listSpecs() {
12751
12763
  try {
12752
12764
  return (await readdir(this.specsDir, { withFileTypes: true })).filter((e) => e.isDirectory() && !e.name.startsWith(".")).map((e) => e.name);
@@ -12755,16 +12767,24 @@ var OpenSpecAdapter = class {
12755
12767
  }
12756
12768
  }
12757
12769
  /**
12758
- * List specs with metadata (id and name)
12770
+ * List specs with metadata (id, name, and time info)
12771
+ * Only returns specs that have valid spec.md
12772
+ * Sorted by updatedAt descending (most recent first)
12759
12773
  */
12760
12774
  async listSpecsWithMeta() {
12761
12775
  const ids = await this.listSpecs();
12762
- return await Promise.all(ids.map(async (id) => {
12776
+ return (await Promise.all(ids.map(async (id) => {
12777
+ const spec = await this.readSpec(id);
12778
+ if (!spec) return null;
12779
+ const specPath = join(this.specsDir, id, "spec.md");
12780
+ const timeInfo = await this.getFileTimeInfo(specPath);
12763
12781
  return {
12764
12782
  id,
12765
- name: (await this.readSpec(id))?.name ?? id
12783
+ name: spec.name,
12784
+ createdAt: timeInfo?.createdAt ?? 0,
12785
+ updatedAt: timeInfo?.updatedAt ?? 0
12766
12786
  };
12767
- }));
12787
+ }))).filter((r) => r !== null).sort((a, b) => b.updatedAt - a.updatedAt);
12768
12788
  }
12769
12789
  async listChanges() {
12770
12790
  try {
@@ -12774,21 +12794,25 @@ var OpenSpecAdapter = class {
12774
12794
  }
12775
12795
  }
12776
12796
  /**
12777
- * List changes with metadata (id, name, and progress)
12797
+ * List changes with metadata (id, name, progress, and time info)
12798
+ * Only returns changes that have valid proposal.md
12799
+ * Sorted by updatedAt descending (most recent first)
12778
12800
  */
12779
12801
  async listChangesWithMeta() {
12780
12802
  const ids = await this.listChanges();
12781
- return await Promise.all(ids.map(async (id) => {
12803
+ return (await Promise.all(ids.map(async (id) => {
12782
12804
  const change = await this.readChange(id);
12805
+ if (!change) return null;
12806
+ const proposalPath = join(this.changesDir, id, "proposal.md");
12807
+ const timeInfo = await this.getFileTimeInfo(proposalPath);
12783
12808
  return {
12784
12809
  id,
12785
- name: change?.name ?? id,
12786
- progress: change?.progress ?? {
12787
- total: 0,
12788
- completed: 0
12789
- }
12810
+ name: change.name,
12811
+ progress: change.progress,
12812
+ createdAt: timeInfo?.createdAt ?? 0,
12813
+ updatedAt: timeInfo?.updatedAt ?? 0
12790
12814
  };
12791
- }));
12815
+ }))).filter((r) => r !== null).sort((a, b) => b.updatedAt - a.updatedAt);
12792
12816
  }
12793
12817
  async listArchivedChanges() {
12794
12818
  try {
@@ -12798,16 +12822,24 @@ var OpenSpecAdapter = class {
12798
12822
  }
12799
12823
  }
12800
12824
  /**
12801
- * List archived changes with metadata
12825
+ * List archived changes with metadata and time info
12826
+ * Only returns archives that have valid proposal.md
12827
+ * Sorted by updatedAt descending (most recent first)
12802
12828
  */
12803
12829
  async listArchivedChangesWithMeta() {
12804
12830
  const ids = await this.listArchivedChanges();
12805
- return await Promise.all(ids.map(async (id) => {
12831
+ return (await Promise.all(ids.map(async (id) => {
12832
+ const change = await this.readArchivedChange(id);
12833
+ if (!change) return null;
12834
+ const proposalPath = join(this.archiveDir, id, "proposal.md");
12835
+ const timeInfo = await this.getFileTimeInfo(proposalPath);
12806
12836
  return {
12807
12837
  id,
12808
- name: (await this.readArchivedChange(id))?.name ?? id
12838
+ name: change.name,
12839
+ createdAt: timeInfo?.createdAt ?? 0,
12840
+ updatedAt: timeInfo?.updatedAt ?? 0
12809
12841
  };
12810
- }));
12842
+ }))).filter((r) => r !== null).sort((a, b) => b.updatedAt - a.updatedAt);
12811
12843
  }
12812
12844
  /**
12813
12845
  * Read project.md content
@@ -13622,18 +13654,28 @@ function createWebSocketServer(server, httpServer) {
13622
13654
  //#region src/index.ts
13623
13655
  const __dirname = dirname$1(fileURLToPath(import.meta.url));
13624
13656
  /**
13625
- * Check if a port is available by trying to listen on it
13657
+ * Check if a port is available by trying to listen on it.
13658
+ * Tests both 127.0.0.1 and 0.0.0.0 to ensure the port is truly available.
13626
13659
  */
13627
13660
  function isPortAvailable(port) {
13628
13661
  return new Promise((resolve$1) => {
13629
- const server = createServer$1();
13630
- server.once("error", () => {
13662
+ const server1 = createServer$1();
13663
+ server1.once("error", () => {
13631
13664
  resolve$1(false);
13632
13665
  });
13633
- server.once("listening", () => {
13634
- server.close(() => resolve$1(true));
13666
+ server1.once("listening", () => {
13667
+ server1.close(() => {
13668
+ const server2 = createServer$1();
13669
+ server2.once("error", () => {
13670
+ resolve$1(false);
13671
+ });
13672
+ server2.once("listening", () => {
13673
+ server2.close(() => resolve$1(true));
13674
+ });
13675
+ server2.listen(port, "0.0.0.0");
13676
+ });
13635
13677
  });
13636
- server.listen(port, "0.0.0.0");
13678
+ server1.listen(port, "127.0.0.1");
13637
13679
  });
13638
13680
  }
13639
13681
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openspecui",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "OpenSpec UI - Visual interface for spec-driven development",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",
@@ -32,8 +32,9 @@
32
32
  "@openspecui/server": "0.1.0"
33
33
  },
34
34
  "scripts": {
35
- "build": "pnpm run build:copy-web && tsdown",
36
- "build:copy-web": "cp -r ../web/dist ./web",
35
+ "build": "pnpm run build:web && pnpm run build:copy-web && tsdown",
36
+ "build:web": "pnpm --filter @openspecui/web build",
37
+ "build:copy-web": "rm -rf ./web && cp -r ../web/dist ./web",
37
38
  "typecheck": "tsc --noEmit",
38
39
  "dev": "tsx src/cli.ts",
39
40
  "test": "vitest run",