@leanspec/ui 0.2.5-dev.20251119025751 → 0.2.5-dev.20251119062438

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 (200) hide show
  1. package/.next/standalone/node_modules/.pnpm/tiktoken@1.0.22/node_modules/tiktoken/tiktoken_bg.wasm +0 -0
  2. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  3. package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +1 -1
  4. package/.next/standalone/packages/ui/.next/build-manifest.json +4 -5
  5. package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -28
  6. package/.next/standalone/packages/ui/.next/routes-manifest.json +8 -6
  7. package/.next/standalone/packages/ui/.next/server/app/_global-error/page/build-manifest.json +2 -3
  8. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js +1 -1
  9. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  10. package/.next/standalone/packages/ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  12. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  13. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  14. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/standalone/packages/ui/.next/server/app/_not-found/page/build-manifest.json +2 -3
  18. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js +3 -3
  19. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  22. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +16 -16
  23. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +16 -16
  24. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  25. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  26. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  27. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +5 -5
  28. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js +1 -1
  29. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  30. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js +1 -1
  31. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js +1 -1
  33. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  34. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +1 -1
  35. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  36. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +1 -1
  37. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  38. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route/app-paths-manifest.json +3 -0
  39. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route/build-manifest.json +11 -0
  40. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js +7 -0
  41. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -0
  42. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route_client-reference-manifest.js +2 -0
  43. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +1 -1
  44. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  45. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +1 -1
  46. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  47. package/.next/standalone/packages/ui/.next/server/app/page/build-manifest.json +2 -3
  48. package/.next/standalone/packages/ui/.next/server/app/page.js +3 -3
  49. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  50. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page/build-manifest.json +2 -3
  52. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js +3 -3
  53. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  54. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/packages/ui/.next/server/app/specs/page/build-manifest.json +2 -3
  56. package/.next/standalone/packages/ui/.next/server/app/specs/page.js +3 -3
  57. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  58. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/packages/ui/.next/server/app/stats/page/build-manifest.json +2 -3
  60. package/.next/standalone/packages/ui/.next/server/app/stats/page.js +3 -3
  61. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  62. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +1 -1
  64. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_specs_[id]_status_route_actions_5d700407.js +3 -0
  65. package/.next/standalone/packages/ui/.next/server/chunks/{[root-of-the-server]__d169fe70._.js → [root-of-the-server]__175bef84._.js} +2 -2
  66. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3971eae5._.js +3 -0
  67. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__6bca1621._.js +3 -0
  68. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__87a3475a._.js +3 -0
  69. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9f0f4c0b._.js +3 -0
  70. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__c1c9f5f5._.js +3 -0
  71. package/.next/standalone/packages/ui/.next/server/chunks/{[root-of-the-server]__f4ea2112._.js → [root-of-the-server]__c6689757._.js} +2 -2
  72. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__cd1fb0a2._.js +4 -0
  73. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e2071b2e._.js +3 -0
  74. package/.next/standalone/packages/ui/.next/server/chunks/e0876_tiktoken_3efea2dc._.js +3 -0
  75. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +1 -1
  76. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__c65aedd0._.js → [root-of-the-server]__299c81cc._.js} +2 -2
  77. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__3fffdda5._.js → [root-of-the-server]__41f5b5c0._.js} +2 -2
  78. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__eefaabd3._.js → [root-of-the-server]__5ca2e973._.js} +2 -2
  79. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__7f55abaa._.js +1 -1
  80. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__9d8d3fd6._.js +3 -0
  81. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__e5891e5a._.js → [root-of-the-server]__cbbbfb5d._.js} +2 -2
  82. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__e79a982a._.js +7 -0
  83. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ff03fc1e._.js +7 -0
  84. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  85. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_6cd9a5e0._.js +3 -0
  86. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b483c9fe._.js +3 -0
  87. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b5040d31._.js +5 -0
  88. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_e1889307._.js +3 -0
  89. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_9710705b._.js +3 -0
  90. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_loading_tsx_9304a706._.js +3 -0
  91. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +3 -0
  92. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +3 -0
  93. package/.next/standalone/packages/ui/.next/server/middleware-build-manifest.js +2 -3
  94. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  95. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  96. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  97. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  98. package/.next/standalone/packages/ui/.next/static/chunks/061e3819fd59154d.js +1 -0
  99. package/.next/standalone/packages/ui/.next/static/chunks/148ab58e68b383da.js +1 -0
  100. package/.next/standalone/packages/ui/.next/static/chunks/5f97d665a4d9dc62.js +3 -0
  101. package/.next/standalone/packages/ui/.next/static/chunks/9b54fc05b02c39e6.css +1 -0
  102. package/.next/standalone/packages/ui/.next/static/chunks/9b7b7024c39c5f99.js +1 -0
  103. package/.next/standalone/packages/ui/.next/static/chunks/{f2151fb88f8fc70a.js → ae50cdf3322e1d02.js} +1 -1
  104. package/.next/standalone/packages/ui/.next/static/chunks/c0fe4c94c7282ac0.js +4 -0
  105. package/.next/standalone/packages/ui/.next/static/chunks/d79bf953f0dfb650.js +1 -0
  106. package/.next/standalone/packages/ui/.next/static/chunks/e50fb8d0b728cd35.js +5 -0
  107. package/.next/standalone/packages/ui/.next/static/chunks/e6e238dbf1d3e740.js +1 -0
  108. package/.next/standalone/packages/ui/.next/static/chunks/turbopack-9cc79aa1b34ffcbe.js +3 -0
  109. package/.next/standalone/packages/ui/package.json +1 -1
  110. package/.next/standalone/packages/ui/src/app/api/specs/[id]/status/route.ts +122 -0
  111. package/.next/standalone/packages/ui/src/app/globals.css +10 -0
  112. package/.next/standalone/packages/ui/src/app/specs/page.tsx +2 -2
  113. package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +352 -113
  114. package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +23 -0
  115. package/.next/standalone/packages/ui/src/lib/specs/sources/filesystem-source.ts +46 -6
  116. package/.next/standalone/packages/ui/tsconfig.json +2 -1
  117. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  118. package/.next/standalone/packages/ui/vitest.config.ts +1 -0
  119. package/.next/static/chunks/061e3819fd59154d.js +1 -0
  120. package/.next/static/chunks/148ab58e68b383da.js +1 -0
  121. package/.next/static/chunks/5f97d665a4d9dc62.js +3 -0
  122. package/.next/static/chunks/9b54fc05b02c39e6.css +1 -0
  123. package/.next/static/chunks/9b7b7024c39c5f99.js +1 -0
  124. package/.next/static/chunks/{f2151fb88f8fc70a.js → ae50cdf3322e1d02.js} +1 -1
  125. package/.next/static/chunks/c0fe4c94c7282ac0.js +4 -0
  126. package/.next/static/chunks/d79bf953f0dfb650.js +1 -0
  127. package/.next/static/chunks/e50fb8d0b728cd35.js +5 -0
  128. package/.next/static/chunks/e6e238dbf1d3e740.js +1 -0
  129. package/.next/static/chunks/turbopack-9cc79aa1b34ffcbe.js +3 -0
  130. package/package.json +1 -1
  131. package/.next/standalone/packages/ui/.next/server/app/board/page/app-paths-manifest.json +0 -3
  132. package/.next/standalone/packages/ui/.next/server/app/board/page/build-manifest.json +0 -18
  133. package/.next/standalone/packages/ui/.next/server/app/board/page/next-font-manifest.json +0 -6
  134. package/.next/standalone/packages/ui/.next/server/app/board/page/react-loadable-manifest.json +0 -1
  135. package/.next/standalone/packages/ui/.next/server/app/board/page.js +0 -20
  136. package/.next/standalone/packages/ui/.next/server/app/board/page.js.nft.json +0 -1
  137. package/.next/standalone/packages/ui/.next/server/app/board/page_client-reference-manifest.js +0 -2
  138. package/.next/standalone/packages/ui/.next/server/app/board.html +0 -1
  139. package/.next/standalone/packages/ui/.next/server/app/board.meta +0 -14
  140. package/.next/standalone/packages/ui/.next/server/app/board.rsc +0 -41
  141. package/.next/standalone/packages/ui/.next/server/app/board.segments/_full.segment.rsc +0 -41
  142. package/.next/standalone/packages/ui/.next/server/app/board.segments/_index.segment.rsc +0 -26
  143. package/.next/standalone/packages/ui/.next/server/app/board.segments/_tree.segment.rsc +0 -9
  144. package/.next/standalone/packages/ui/.next/server/app/board.segments/board/__PAGE__.segment.rsc +0 -9
  145. package/.next/standalone/packages/ui/.next/server/app/board.segments/board.segment.rsc +0 -8
  146. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__003ee184._.js +0 -3
  147. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__21119265._.js +0 -3
  148. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__6ec5cafb._.js +0 -3
  149. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__7acaa6ec._.js +0 -3
  150. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2c55ffb._.js +0 -3
  151. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_7af75658._.js +0 -3
  152. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__4b343655._.js +0 -3
  153. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__68015eee._.js +0 -3
  154. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b161f033._.js +0 -7
  155. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b50fa24c._.js +0 -7
  156. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_4f2c4868._.js +0 -4
  157. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_64a39e38._.js +0 -3
  158. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_a527620e._.js +0 -3
  159. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_d7e4bd50._.js +0 -5
  160. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f8b2190a._.js +0 -3
  161. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_board_page_actions_c5a3cb3c.js +0 -3
  162. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_board_loading_tsx_03dfd70d._.js +0 -3
  163. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_board_page_tsx_9415dc46._.js +0 -3
  164. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_ui_input_tsx_190a7701._.js +0 -3
  165. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_d725c10c._.js +0 -3
  166. package/.next/standalone/packages/ui/.next/static/chunks/107411d1a2f4b31d.js +0 -1
  167. package/.next/standalone/packages/ui/.next/static/chunks/17ac52d909def83e.js +0 -1
  168. package/.next/standalone/packages/ui/.next/static/chunks/212881511f73fc12.js +0 -5
  169. package/.next/standalone/packages/ui/.next/static/chunks/5057c3e1e7e13ca3.js +0 -1
  170. package/.next/standalone/packages/ui/.next/static/chunks/5c2072ad938de8ed.js +0 -1
  171. package/.next/standalone/packages/ui/.next/static/chunks/5d646f493d4c6928.js +0 -1
  172. package/.next/standalone/packages/ui/.next/static/chunks/88f695d32910a4ac.js +0 -1
  173. package/.next/standalone/packages/ui/.next/static/chunks/c210559fdfe60fef.js +0 -1
  174. package/.next/standalone/packages/ui/.next/static/chunks/df1731c03abf1aee.css +0 -1
  175. package/.next/standalone/packages/ui/.next/static/chunks/e237e00fd3a84178.js +0 -3
  176. package/.next/standalone/packages/ui/.next/static/chunks/ebd89051637b9a47.js +0 -4
  177. package/.next/standalone/packages/ui/.next/static/chunks/turbopack-7450632b40b2e378.js +0 -3
  178. package/.next/standalone/packages/ui/src/app/board/board-client.tsx +0 -162
  179. package/.next/standalone/packages/ui/src/app/board/loading.tsx +0 -43
  180. package/.next/standalone/packages/ui/src/app/board/page.tsx +0 -18
  181. package/.next/static/chunks/107411d1a2f4b31d.js +0 -1
  182. package/.next/static/chunks/17ac52d909def83e.js +0 -1
  183. package/.next/static/chunks/212881511f73fc12.js +0 -5
  184. package/.next/static/chunks/5057c3e1e7e13ca3.js +0 -1
  185. package/.next/static/chunks/5c2072ad938de8ed.js +0 -1
  186. package/.next/static/chunks/5d646f493d4c6928.js +0 -1
  187. package/.next/static/chunks/88f695d32910a4ac.js +0 -1
  188. package/.next/static/chunks/c210559fdfe60fef.js +0 -1
  189. package/.next/static/chunks/df1731c03abf1aee.css +0 -1
  190. package/.next/static/chunks/e237e00fd3a84178.js +0 -3
  191. package/.next/static/chunks/ebd89051637b9a47.js +0 -4
  192. package/.next/static/chunks/turbopack-7450632b40b2e378.js +0 -3
  193. /package/.next/standalone/packages/ui/.next/server/app/{board/page → api/specs/[id]/status/route}/server-reference-manifest.json +0 -0
  194. /package/.next/standalone/packages/ui/.next/server/app/{board/page.js.map → api/specs/[id]/status/route.js.map} +0 -0
  195. /package/.next/standalone/packages/ui/.next/static/{Wuxh-xmlQh_NqvIbobfYH → 18365Lfcsz3xqXCT_JLBo}/_buildManifest.js +0 -0
  196. /package/.next/standalone/packages/ui/.next/static/{Wuxh-xmlQh_NqvIbobfYH → 18365Lfcsz3xqXCT_JLBo}/_clientMiddlewareManifest.json +0 -0
  197. /package/.next/standalone/packages/ui/.next/static/{Wuxh-xmlQh_NqvIbobfYH → 18365Lfcsz3xqXCT_JLBo}/_ssgManifest.js +0 -0
  198. /package/.next/static/{Wuxh-xmlQh_NqvIbobfYH → 18365Lfcsz3xqXCT_JLBo}/_buildManifest.js +0 -0
  199. /package/.next/static/{Wuxh-xmlQh_NqvIbobfYH → 18365Lfcsz3xqXCT_JLBo}/_clientMiddlewareManifest.json +0 -0
  200. /package/.next/static/{Wuxh-xmlQh_NqvIbobfYH → 18365Lfcsz3xqXCT_JLBo}/_ssgManifest.js +0 -0
@@ -135,11 +135,29 @@ export class FilesystemSource implements SpecSource {
135
135
 
136
136
  for (const entry of entries) {
137
137
  if (!entry.isDirectory()) continue;
138
- if (entry.name === 'archived') continue; // Skip archived directory
138
+
139
+ // Load archived specs from archived/ directory
140
+ if (entry.name === 'archived') {
141
+ const archivedDir = path.join(this.specsDir, 'archived');
142
+ const archivedEntries = await fs.readdir(archivedDir, { withFileTypes: true });
143
+
144
+ for (const archivedEntry of archivedEntries) {
145
+ if (!archivedEntry.isDirectory()) continue;
146
+
147
+ if (specPattern.test(archivedEntry.name)) {
148
+ const specDir = path.join(archivedDir, archivedEntry.name);
149
+ const spec = await this.loadSpecFromDirectory(specDir, archivedEntry.name, true);
150
+ if (spec) {
151
+ specs.push(spec);
152
+ }
153
+ }
154
+ }
155
+ continue;
156
+ }
139
157
 
140
158
  if (specPattern.test(entry.name)) {
141
159
  const specDir = path.join(this.specsDir, entry.name);
142
- const spec = await this.loadSpecFromDirectory(specDir, entry.name);
160
+ const spec = await this.loadSpecFromDirectory(specDir, entry.name, false);
143
161
  if (spec) {
144
162
  specs.push(spec);
145
163
  }
@@ -163,12 +181,30 @@ export class FilesystemSource implements SpecSource {
163
181
  const entries = await fs.readdir(this.specsDir, { withFileTypes: true });
164
182
  const specPattern = new RegExp(`^0*${specNum}-`);
165
183
 
184
+ // Check regular specs
166
185
  for (const entry of entries) {
167
186
  if (!entry.isDirectory()) continue;
187
+ if (entry.name === 'archived') continue; // Check archived separately
168
188
  if (specPattern.test(entry.name)) {
169
189
  const specDir = path.join(this.specsDir, entry.name);
170
- return await this.loadSpecFromDirectory(specDir, entry.name);
190
+ return await this.loadSpecFromDirectory(specDir, entry.name, false);
191
+ }
192
+ }
193
+
194
+ // Check archived specs
195
+ try {
196
+ const archivedDir = path.join(this.specsDir, 'archived');
197
+ const archivedEntries = await fs.readdir(archivedDir, { withFileTypes: true });
198
+
199
+ for (const entry of archivedEntries) {
200
+ if (!entry.isDirectory()) continue;
201
+ if (specPattern.test(entry.name)) {
202
+ const specDir = path.join(archivedDir, entry.name);
203
+ return await this.loadSpecFromDirectory(specDir, entry.name, true);
204
+ }
171
205
  }
206
+ } catch {
207
+ // Archived directory doesn't exist or can't be read
172
208
  }
173
209
 
174
210
  return null;
@@ -177,7 +213,7 @@ export class FilesystemSource implements SpecSource {
177
213
  /**
178
214
  * Load a spec from a directory
179
215
  */
180
- private async loadSpecFromDirectory(specDir: string, specName: string): Promise<Spec | null> {
216
+ private async loadSpecFromDirectory(specDir: string, specName: string, isArchived: boolean = false): Promise<Spec | null> {
181
217
  const readmePath = path.join(specDir, 'README.md');
182
218
 
183
219
  try {
@@ -205,6 +241,10 @@ export class FilesystemSource implements SpecSource {
205
241
  return isNaN(parsed.getTime()) ? null : parsed;
206
242
  };
207
243
 
244
+ // Build the file path (include "archived/" prefix if archived)
245
+ const filePathPrefix = isArchived ? 'specs/archived/' : 'specs/';
246
+ const filePath = `${filePathPrefix}${specName}/README.md`;
247
+
208
248
  // Create a Spec object compatible with the schema
209
249
  const spec: Spec = {
210
250
  id,
@@ -221,8 +261,8 @@ export class FilesystemSource implements SpecSource {
221
261
  createdAt: toDate(createdValue),
222
262
  updatedAt: toDate(updatedValue),
223
263
  completedAt: toDate(completedValue),
224
- filePath: `specs/${specName}/README.md`,
225
- githubUrl: `https://github.com/codervisor/lean-spec/tree/main/specs/${specName}/README.md`,
264
+ filePath,
265
+ githubUrl: `https://github.com/codervisor/lean-spec/tree/main/${filePath}`,
226
266
  syncedAt: new Date(), // Current time for filesystem reads
227
267
  };
228
268
 
@@ -19,7 +19,8 @@
19
19
  }
20
20
  ],
21
21
  "paths": {
22
- "@/*": ["./src/*"]
22
+ "@/*": ["./src/*"],
23
+ "@cli/*": ["../cli/src/*"]
23
24
  }
24
25
  },
25
26
  "include": [