xtep-workspace 1.10.10

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 (418) hide show
  1. package/CHANGELOG.md +525 -0
  2. package/README.md +188 -0
  3. package/config/component-versions.json +16 -0
  4. package/config/scenarioCapabilities.json +29 -0
  5. package/config/version-notes.yaml +244 -0
  6. package/dist/adapters/OutputAdapter.d.ts +79 -0
  7. package/dist/adapters/OutputAdapter.d.ts.map +1 -0
  8. package/dist/adapters/OutputAdapter.js +124 -0
  9. package/dist/adapters/OutputAdapter.js.map +1 -0
  10. package/dist/cli/check-node-version.d.ts +3 -0
  11. package/dist/cli/check-node-version.d.ts.map +1 -0
  12. package/dist/cli/check-node-version.js +153 -0
  13. package/dist/cli/check-node-version.js.map +1 -0
  14. package/dist/cli/plugins.d.ts +41 -0
  15. package/dist/cli/plugins.d.ts.map +1 -0
  16. package/dist/cli/plugins.js +742 -0
  17. package/dist/cli/plugins.js.map +1 -0
  18. package/dist/cli/rebuild.d.ts +63 -0
  19. package/dist/cli/rebuild.d.ts.map +1 -0
  20. package/dist/cli/rebuild.js +989 -0
  21. package/dist/cli/rebuild.js.map +1 -0
  22. package/dist/cli/repair.d.ts +7 -0
  23. package/dist/cli/repair.d.ts.map +1 -0
  24. package/dist/cli/repair.js +925 -0
  25. package/dist/cli/repair.js.map +1 -0
  26. package/dist/cli/setup.d.ts +7 -0
  27. package/dist/cli/setup.d.ts.map +1 -0
  28. package/dist/cli/setup.js +452 -0
  29. package/dist/cli/setup.js.map +1 -0
  30. package/dist/cli/update.d.ts +10 -0
  31. package/dist/cli/update.d.ts.map +1 -0
  32. package/dist/cli/update.js +426 -0
  33. package/dist/cli/update.js.map +1 -0
  34. package/dist/cli/webui.d.ts +6 -0
  35. package/dist/cli/webui.d.ts.map +1 -0
  36. package/dist/cli/webui.js +210 -0
  37. package/dist/cli/webui.js.map +1 -0
  38. package/dist/http/index.d.ts +3 -0
  39. package/dist/http/index.d.ts.map +1 -0
  40. package/dist/http/index.js +15 -0
  41. package/dist/http/index.js.map +1 -0
  42. package/dist/http/middleware/errorHandler.d.ts +16 -0
  43. package/dist/http/middleware/errorHandler.d.ts.map +1 -0
  44. package/dist/http/middleware/errorHandler.js +79 -0
  45. package/dist/http/middleware/errorHandler.js.map +1 -0
  46. package/dist/http/routes/admin.d.ts +3 -0
  47. package/dist/http/routes/admin.d.ts.map +1 -0
  48. package/dist/http/routes/admin.js +730 -0
  49. package/dist/http/routes/admin.js.map +1 -0
  50. package/dist/http/routes/backup.d.ts +3 -0
  51. package/dist/http/routes/backup.d.ts.map +1 -0
  52. package/dist/http/routes/backup.js +172 -0
  53. package/dist/http/routes/backup.js.map +1 -0
  54. package/dist/http/routes/config.d.ts +3 -0
  55. package/dist/http/routes/config.d.ts.map +1 -0
  56. package/dist/http/routes/config.js +157 -0
  57. package/dist/http/routes/config.js.map +1 -0
  58. package/dist/http/routes/context.d.ts +3 -0
  59. package/dist/http/routes/context.d.ts.map +1 -0
  60. package/dist/http/routes/context.js +82 -0
  61. package/dist/http/routes/context.js.map +1 -0
  62. package/dist/http/routes/log.d.ts +3 -0
  63. package/dist/http/routes/log.d.ts.map +1 -0
  64. package/dist/http/routes/log.js +105 -0
  65. package/dist/http/routes/log.js.map +1 -0
  66. package/dist/http/routes/memo.d.ts +6 -0
  67. package/dist/http/routes/memo.d.ts.map +1 -0
  68. package/dist/http/routes/memo.js +29 -0
  69. package/dist/http/routes/memo.js.map +1 -0
  70. package/dist/http/routes/node.d.ts +3 -0
  71. package/dist/http/routes/node.d.ts.map +1 -0
  72. package/dist/http/routes/node.js +251 -0
  73. package/dist/http/routes/node.js.map +1 -0
  74. package/dist/http/routes/state.d.ts +3 -0
  75. package/dist/http/routes/state.d.ts.map +1 -0
  76. package/dist/http/routes/state.js +48 -0
  77. package/dist/http/routes/state.js.map +1 -0
  78. package/dist/http/routes/workspace.d.ts +3 -0
  79. package/dist/http/routes/workspace.d.ts.map +1 -0
  80. package/dist/http/routes/workspace.js +249 -0
  81. package/dist/http/routes/workspace.js.map +1 -0
  82. package/dist/http/server.d.ts +10 -0
  83. package/dist/http/server.d.ts.map +1 -0
  84. package/dist/http/server.js +284 -0
  85. package/dist/http/server.js.map +1 -0
  86. package/dist/http/services.d.ts +93 -0
  87. package/dist/http/services.d.ts.map +1 -0
  88. package/dist/http/services.js +297 -0
  89. package/dist/http/services.js.map +1 -0
  90. package/dist/index.d.ts +3 -0
  91. package/dist/index.d.ts.map +1 -0
  92. package/dist/index.js +1073 -0
  93. package/dist/index.js.map +1 -0
  94. package/dist/prompts/guidanceContent.d.ts +18 -0
  95. package/dist/prompts/guidanceContent.d.ts.map +1 -0
  96. package/dist/prompts/guidanceContent.js +814 -0
  97. package/dist/prompts/guidanceContent.js.map +1 -0
  98. package/dist/prompts/index.d.ts +2 -0
  99. package/dist/prompts/index.d.ts.map +1 -0
  100. package/dist/prompts/index.js +4 -0
  101. package/dist/prompts/index.js.map +1 -0
  102. package/dist/prompts/instructions.d.ts +56 -0
  103. package/dist/prompts/instructions.d.ts.map +1 -0
  104. package/dist/prompts/instructions.js +1343 -0
  105. package/dist/prompts/instructions.js.map +1 -0
  106. package/dist/services/BackupService.d.ts +104 -0
  107. package/dist/services/BackupService.d.ts.map +1 -0
  108. package/dist/services/BackupService.js +549 -0
  109. package/dist/services/BackupService.js.map +1 -0
  110. package/dist/services/CapabilityService.d.ts +38 -0
  111. package/dist/services/CapabilityService.d.ts.map +1 -0
  112. package/dist/services/CapabilityService.js +256 -0
  113. package/dist/services/CapabilityService.js.map +1 -0
  114. package/dist/services/ConfigService.d.ts +35 -0
  115. package/dist/services/ConfigService.d.ts.map +1 -0
  116. package/dist/services/ConfigService.js +105 -0
  117. package/dist/services/ConfigService.js.map +1 -0
  118. package/dist/services/ContextService.d.ts +65 -0
  119. package/dist/services/ContextService.d.ts.map +1 -0
  120. package/dist/services/ContextService.js +503 -0
  121. package/dist/services/ContextService.js.map +1 -0
  122. package/dist/services/DetectionService.d.ts +76 -0
  123. package/dist/services/DetectionService.d.ts.map +1 -0
  124. package/dist/services/DetectionService.js +262 -0
  125. package/dist/services/DetectionService.js.map +1 -0
  126. package/dist/services/DispatchService.d.ts +267 -0
  127. package/dist/services/DispatchService.d.ts.map +1 -0
  128. package/dist/services/DispatchService.js +1357 -0
  129. package/dist/services/DispatchService.js.map +1 -0
  130. package/dist/services/EventService.d.ts +81 -0
  131. package/dist/services/EventService.d.ts.map +1 -0
  132. package/dist/services/EventService.js +187 -0
  133. package/dist/services/EventService.js.map +1 -0
  134. package/dist/services/GuidanceService.d.ts +64 -0
  135. package/dist/services/GuidanceService.d.ts.map +1 -0
  136. package/dist/services/GuidanceService.js +259 -0
  137. package/dist/services/GuidanceService.js.map +1 -0
  138. package/dist/services/HealthService.d.ts +43 -0
  139. package/dist/services/HealthService.d.ts.map +1 -0
  140. package/dist/services/HealthService.js +276 -0
  141. package/dist/services/HealthService.js.map +1 -0
  142. package/dist/services/InstallationService.d.ts +62 -0
  143. package/dist/services/InstallationService.d.ts.map +1 -0
  144. package/dist/services/InstallationService.js +204 -0
  145. package/dist/services/InstallationService.js.map +1 -0
  146. package/dist/services/LogService.d.ts +35 -0
  147. package/dist/services/LogService.d.ts.map +1 -0
  148. package/dist/services/LogService.js +189 -0
  149. package/dist/services/LogService.js.map +1 -0
  150. package/dist/services/MemoService.d.ts +39 -0
  151. package/dist/services/MemoService.d.ts.map +1 -0
  152. package/dist/services/MemoService.js +288 -0
  153. package/dist/services/MemoService.js.map +1 -0
  154. package/dist/services/NodeService.d.ts +90 -0
  155. package/dist/services/NodeService.d.ts.map +1 -0
  156. package/dist/services/NodeService.js +958 -0
  157. package/dist/services/NodeService.js.map +1 -0
  158. package/dist/services/OpenSpecParser.d.ts +43 -0
  159. package/dist/services/OpenSpecParser.d.ts.map +1 -0
  160. package/dist/services/OpenSpecParser.js +191 -0
  161. package/dist/services/OpenSpecParser.js.map +1 -0
  162. package/dist/services/ReferenceService.d.ts +35 -0
  163. package/dist/services/ReferenceService.d.ts.map +1 -0
  164. package/dist/services/ReferenceService.js +195 -0
  165. package/dist/services/ReferenceService.js.map +1 -0
  166. package/dist/services/RepairService.d.ts +36 -0
  167. package/dist/services/RepairService.d.ts.map +1 -0
  168. package/dist/services/RepairService.js +429 -0
  169. package/dist/services/RepairService.js.map +1 -0
  170. package/dist/services/SearchService.d.ts +34 -0
  171. package/dist/services/SearchService.d.ts.map +1 -0
  172. package/dist/services/SearchService.js +293 -0
  173. package/dist/services/SearchService.js.map +1 -0
  174. package/dist/services/SessionService.d.ts +136 -0
  175. package/dist/services/SessionService.d.ts.map +1 -0
  176. package/dist/services/SessionService.js +297 -0
  177. package/dist/services/SessionService.js.map +1 -0
  178. package/dist/services/StateService.d.ts +97 -0
  179. package/dist/services/StateService.d.ts.map +1 -0
  180. package/dist/services/StateService.js +846 -0
  181. package/dist/services/StateService.js.map +1 -0
  182. package/dist/services/TutorialService.d.ts +114 -0
  183. package/dist/services/TutorialService.d.ts.map +1 -0
  184. package/dist/services/TutorialService.js +1262 -0
  185. package/dist/services/TutorialService.js.map +1 -0
  186. package/dist/services/WorkspaceService.d.ts +273 -0
  187. package/dist/services/WorkspaceService.d.ts.map +1 -0
  188. package/dist/services/WorkspaceService.js +1764 -0
  189. package/dist/services/WorkspaceService.js.map +1 -0
  190. package/dist/services/index.d.ts +15 -0
  191. package/dist/services/index.d.ts.map +1 -0
  192. package/dist/services/index.js +14 -0
  193. package/dist/services/index.js.map +1 -0
  194. package/dist/storage/FileSystemAdapter.d.ts +223 -0
  195. package/dist/storage/FileSystemAdapter.d.ts.map +1 -0
  196. package/dist/storage/FileSystemAdapter.js +384 -0
  197. package/dist/storage/FileSystemAdapter.js.map +1 -0
  198. package/dist/storage/JsonStorage.d.ts +158 -0
  199. package/dist/storage/JsonStorage.d.ts.map +1 -0
  200. package/dist/storage/JsonStorage.js +613 -0
  201. package/dist/storage/JsonStorage.js.map +1 -0
  202. package/dist/storage/MarkdownStorage.d.ts +178 -0
  203. package/dist/storage/MarkdownStorage.d.ts.map +1 -0
  204. package/dist/storage/MarkdownStorage.js +918 -0
  205. package/dist/storage/MarkdownStorage.js.map +1 -0
  206. package/dist/storage/SessionBindingStorage.d.ts +69 -0
  207. package/dist/storage/SessionBindingStorage.d.ts.map +1 -0
  208. package/dist/storage/SessionBindingStorage.js +131 -0
  209. package/dist/storage/SessionBindingStorage.js.map +1 -0
  210. package/dist/storage/index.d.ts +6 -0
  211. package/dist/storage/index.d.ts.map +1 -0
  212. package/dist/storage/index.js +6 -0
  213. package/dist/storage/index.js.map +1 -0
  214. package/dist/tools/capability.d.ts +18 -0
  215. package/dist/tools/capability.d.ts.map +1 -0
  216. package/dist/tools/capability.js +73 -0
  217. package/dist/tools/capability.js.map +1 -0
  218. package/dist/tools/config.d.ts +14 -0
  219. package/dist/tools/config.d.ts.map +1 -0
  220. package/dist/tools/config.js +61 -0
  221. package/dist/tools/config.js.map +1 -0
  222. package/dist/tools/context.d.ts +22 -0
  223. package/dist/tools/context.d.ts.map +1 -0
  224. package/dist/tools/context.js +139 -0
  225. package/dist/tools/context.js.map +1 -0
  226. package/dist/tools/dispatch.d.ts +41 -0
  227. package/dist/tools/dispatch.d.ts.map +1 -0
  228. package/dist/tools/dispatch.js +380 -0
  229. package/dist/tools/dispatch.js.map +1 -0
  230. package/dist/tools/help.d.ts +44 -0
  231. package/dist/tools/help.d.ts.map +1 -0
  232. package/dist/tools/help.js +227 -0
  233. package/dist/tools/help.js.map +1 -0
  234. package/dist/tools/import.d.ts +17 -0
  235. package/dist/tools/import.d.ts.map +1 -0
  236. package/dist/tools/import.js +96 -0
  237. package/dist/tools/import.js.map +1 -0
  238. package/dist/tools/index.d.ts +12 -0
  239. package/dist/tools/index.d.ts.map +1 -0
  240. package/dist/tools/index.js +13 -0
  241. package/dist/tools/index.js.map +1 -0
  242. package/dist/tools/log.d.ts +21 -0
  243. package/dist/tools/log.d.ts.map +1 -0
  244. package/dist/tools/log.js +93 -0
  245. package/dist/tools/log.js.map +1 -0
  246. package/dist/tools/memo.d.ts +26 -0
  247. package/dist/tools/memo.d.ts.map +1 -0
  248. package/dist/tools/memo.js +188 -0
  249. package/dist/tools/memo.js.map +1 -0
  250. package/dist/tools/node.d.ts +34 -0
  251. package/dist/tools/node.d.ts.map +1 -0
  252. package/dist/tools/node.js +328 -0
  253. package/dist/tools/node.js.map +1 -0
  254. package/dist/tools/search.d.ts +14 -0
  255. package/dist/tools/search.d.ts.map +1 -0
  256. package/dist/tools/search.js +95 -0
  257. package/dist/tools/search.js.map +1 -0
  258. package/dist/tools/session.d.ts +22 -0
  259. package/dist/tools/session.d.ts.map +1 -0
  260. package/dist/tools/session.js +127 -0
  261. package/dist/tools/session.js.map +1 -0
  262. package/dist/tools/state.d.ts +10 -0
  263. package/dist/tools/state.d.ts.map +1 -0
  264. package/dist/tools/state.js +79 -0
  265. package/dist/tools/state.js.map +1 -0
  266. package/dist/tools/workspace.d.ts +38 -0
  267. package/dist/tools/workspace.d.ts.map +1 -0
  268. package/dist/tools/workspace.js +240 -0
  269. package/dist/tools/workspace.js.map +1 -0
  270. package/dist/types/capability.d.ts +36 -0
  271. package/dist/types/capability.d.ts.map +1 -0
  272. package/dist/types/capability.js +3 -0
  273. package/dist/types/capability.js.map +1 -0
  274. package/dist/types/confirmation.d.ts +35 -0
  275. package/dist/types/confirmation.d.ts.map +1 -0
  276. package/dist/types/confirmation.js +3 -0
  277. package/dist/types/confirmation.js.map +1 -0
  278. package/dist/types/context.d.ts +174 -0
  279. package/dist/types/context.d.ts.map +1 -0
  280. package/dist/types/context.js +3 -0
  281. package/dist/types/context.js.map +1 -0
  282. package/dist/types/errors.d.ts +81 -0
  283. package/dist/types/errors.d.ts.map +1 -0
  284. package/dist/types/errors.js +154 -0
  285. package/dist/types/errors.js.map +1 -0
  286. package/dist/types/guidance.d.ts +162 -0
  287. package/dist/types/guidance.d.ts.map +1 -0
  288. package/dist/types/guidance.js +4 -0
  289. package/dist/types/guidance.js.map +1 -0
  290. package/dist/types/health.d.ts +61 -0
  291. package/dist/types/health.d.ts.map +1 -0
  292. package/dist/types/health.js +3 -0
  293. package/dist/types/health.js.map +1 -0
  294. package/dist/types/index.d.ts +10 -0
  295. package/dist/types/index.d.ts.map +1 -0
  296. package/dist/types/index.js +11 -0
  297. package/dist/types/index.js.map +1 -0
  298. package/dist/types/memo.d.ts +132 -0
  299. package/dist/types/memo.d.ts.map +1 -0
  300. package/dist/types/memo.js +3 -0
  301. package/dist/types/memo.js.map +1 -0
  302. package/dist/types/node.d.ts +316 -0
  303. package/dist/types/node.d.ts.map +1 -0
  304. package/dist/types/node.js +3 -0
  305. package/dist/types/node.js.map +1 -0
  306. package/dist/types/repair.d.ts +62 -0
  307. package/dist/types/repair.d.ts.map +1 -0
  308. package/dist/types/repair.js +4 -0
  309. package/dist/types/repair.js.map +1 -0
  310. package/dist/types/search.d.ts +58 -0
  311. package/dist/types/search.d.ts.map +1 -0
  312. package/dist/types/search.js +3 -0
  313. package/dist/types/search.js.map +1 -0
  314. package/dist/types/settings.d.ts +109 -0
  315. package/dist/types/settings.d.ts.map +1 -0
  316. package/dist/types/settings.js +30 -0
  317. package/dist/types/settings.js.map +1 -0
  318. package/dist/types/workspace.d.ts +357 -0
  319. package/dist/types/workspace.d.ts.map +1 -0
  320. package/dist/types/workspace.js +3 -0
  321. package/dist/types/workspace.js.map +1 -0
  322. package/dist/utils/contentValidation.d.ts +47 -0
  323. package/dist/utils/contentValidation.d.ts.map +1 -0
  324. package/dist/utils/contentValidation.js +93 -0
  325. package/dist/utils/contentValidation.js.map +1 -0
  326. package/dist/utils/devLog.d.ts +43 -0
  327. package/dist/utils/devLog.d.ts.map +1 -0
  328. package/dist/utils/devLog.js +94 -0
  329. package/dist/utils/devLog.js.map +1 -0
  330. package/dist/utils/errorLogger.d.ts +27 -0
  331. package/dist/utils/errorLogger.d.ts.map +1 -0
  332. package/dist/utils/errorLogger.js +105 -0
  333. package/dist/utils/errorLogger.js.map +1 -0
  334. package/dist/utils/git.d.ts +123 -0
  335. package/dist/utils/git.d.ts.map +1 -0
  336. package/dist/utils/git.js +400 -0
  337. package/dist/utils/git.js.map +1 -0
  338. package/dist/utils/hash.d.ts +32 -0
  339. package/dist/utils/hash.d.ts.map +1 -0
  340. package/dist/utils/hash.js +37 -0
  341. package/dist/utils/hash.js.map +1 -0
  342. package/dist/utils/id.d.ts +54 -0
  343. package/dist/utils/id.d.ts.map +1 -0
  344. package/dist/utils/id.js +96 -0
  345. package/dist/utils/id.js.map +1 -0
  346. package/dist/utils/index.d.ts +8 -0
  347. package/dist/utils/index.d.ts.map +1 -0
  348. package/dist/utils/index.js +9 -0
  349. package/dist/utils/index.js.map +1 -0
  350. package/dist/utils/logger.d.ts +42 -0
  351. package/dist/utils/logger.d.ts.map +1 -0
  352. package/dist/utils/logger.js +228 -0
  353. package/dist/utils/logger.js.map +1 -0
  354. package/dist/utils/manualChangeFormatter.d.ts +8 -0
  355. package/dist/utils/manualChangeFormatter.d.ts.map +1 -0
  356. package/dist/utils/manualChangeFormatter.js +21 -0
  357. package/dist/utils/manualChangeFormatter.js.map +1 -0
  358. package/dist/utils/paramValidator.d.ts +35 -0
  359. package/dist/utils/paramValidator.d.ts.map +1 -0
  360. package/dist/utils/paramValidator.js +214 -0
  361. package/dist/utils/paramValidator.js.map +1 -0
  362. package/dist/utils/port.d.ts +7 -0
  363. package/dist/utils/port.d.ts.map +1 -0
  364. package/dist/utils/port.js +28 -0
  365. package/dist/utils/port.js.map +1 -0
  366. package/dist/utils/processManager.d.ts +53 -0
  367. package/dist/utils/processManager.d.ts.map +1 -0
  368. package/dist/utils/processManager.js +267 -0
  369. package/dist/utils/processManager.js.map +1 -0
  370. package/dist/utils/sessionLogger.d.ts +28 -0
  371. package/dist/utils/sessionLogger.d.ts.map +1 -0
  372. package/dist/utils/sessionLogger.js +142 -0
  373. package/dist/utils/sessionLogger.js.map +1 -0
  374. package/dist/utils/time.d.ts +15 -0
  375. package/dist/utils/time.d.ts.map +1 -0
  376. package/dist/utils/time.js +32 -0
  377. package/dist/utils/time.js.map +1 -0
  378. package/dist/utils/validation.d.ts +23 -0
  379. package/dist/utils/validation.d.ts.map +1 -0
  380. package/dist/utils/validation.js +88 -0
  381. package/dist/utils/validation.js.map +1 -0
  382. package/docs//346/227/245/345/277/227/347/263/273/347/273/237.md +389 -0
  383. package/docs//347/224/250/346/210/267/346/211/213/345/206/214.md +1446 -0
  384. package/docs//347/224/250/346/210/267/346/211/213/345/206/214/344/270/216/346/212/200/346/234/257/346/214/207/345/215/227.md +873 -0
  385. package/package.json +89 -0
  386. package/plugin/README.md +141 -0
  387. package/plugin/agents/xtep-executor.md +114 -0
  388. package/plugin/agents/xtep-reviewer.md +133 -0
  389. package/plugin/docs/diagnostic-guide.md +128 -0
  390. package/plugin/hooks/hooks.json.deprecated +70 -0
  391. package/plugin/scripts/cursor-hook-entry.cjs +217 -0
  392. package/plugin/scripts/hook-entry.cjs +663 -0
  393. package/plugin/scripts/openspec-import.cjs +714 -0
  394. package/plugin/scripts/shared/binding.cjs +98 -0
  395. package/plugin/scripts/shared/config.cjs +65 -0
  396. package/plugin/scripts/shared/context.cjs +120 -0
  397. package/plugin/scripts/shared/index.cjs +34 -0
  398. package/plugin/scripts/shared/logger.cjs +196 -0
  399. package/plugin/scripts/shared/reminder.cjs +261 -0
  400. package/plugin/scripts/shared/utils.cjs +62 -0
  401. package/plugin/scripts/shared/workspace.cjs +322 -0
  402. package/plugin/skills/aligning-intent/SKILL.md +275 -0
  403. package/plugin/skills/analyzing-measurements/SKILL.md +223 -0
  404. package/plugin/skills/bootstrapping-workspace/SKILL.md +260 -0
  405. package/plugin/skills/designing-solutions/SKILL.md +363 -0
  406. package/plugin/skills/diagnosing-issues/SKILL.md +219 -0
  407. package/plugin/skills/discovering-context/SKILL.md +283 -0
  408. package/plugin/skills/dispatching-parent/SKILL.md +399 -0
  409. package/plugin/skills/executing-task/SKILL.md +340 -0
  410. package/plugin/skills/memo-create/SKILL.md +222 -0
  411. package/plugin/skills/planning-verification/SKILL.md +245 -0
  412. package/plugin/skills/preparing-dispatch/SKILL.md +299 -0
  413. package/plugin/skills/researching-tech/SKILL.md +223 -0
  414. package/plugin/skills/reviewing-quality/SKILL.md +354 -0
  415. package/plugin/skills/reviewing-spec/SKILL.md +333 -0
  416. package/plugin/skills/starting-info-flow/SKILL.md +196 -0
  417. package/web/README.md +5 -0
  418. package//351/205/215/347/275/256/346/226/271/345/274/217.md +330 -0
@@ -0,0 +1,429 @@
1
+ // src/services/RepairService.ts
2
+ // 工作区修复服务 - 诊断和自动修复工作区问题
3
+ import { XtepError } from "../types/errors.js";
4
+ // 当前存储版本
5
+ const STORAGE_VERSION = "5.0";
6
+ /**
7
+ * 工作区修复服务
8
+ */
9
+ export class RepairService {
10
+ json;
11
+ fs;
12
+ constructor(json, fs) {
13
+ this.json = json;
14
+ this.fs = fs;
15
+ }
16
+ /**
17
+ * 诊断工作区问题
18
+ */
19
+ async diagnose(params) {
20
+ const { workspaceId } = params;
21
+ // 1. 获取工作区在 index 中的信息
22
+ const index = await this.json.readIndex();
23
+ const wsEntry = index.workspaces.find(ws => ws.id === workspaceId);
24
+ if (!wsEntry) {
25
+ throw new XtepError("WORKSPACE_NOT_FOUND", `工作区 "${workspaceId}" 不在索引中`);
26
+ }
27
+ const projectRoot = wsEntry.projectRoot;
28
+ const wsDirName = wsEntry.dirName || wsEntry.id;
29
+ const wsPath = this.fs.getWorkspacePath(projectRoot, wsDirName);
30
+ // 2. 诊断问题
31
+ const issues = await this.diagnoseWorkspace(workspaceId, projectRoot, wsDirName, wsPath, wsEntry);
32
+ // 3. 统计
33
+ const summary = {
34
+ total: issues.length,
35
+ errors: issues.filter(i => i.severity === "error").length,
36
+ warnings: issues.filter(i => i.severity === "warning").length,
37
+ autoFixable: issues.filter(i => i.fixType === "auto").length,
38
+ interactiveFixable: issues.filter(i => i.fixType === "interactive").length,
39
+ manualFixable: issues.filter(i => i.fixType === "manual").length,
40
+ };
41
+ return {
42
+ workspaceId,
43
+ workspacePath: wsPath,
44
+ issues: issues.map(i => ({
45
+ id: i.id,
46
+ severity: i.severity,
47
+ message: i.message,
48
+ detail: i.detail,
49
+ fixType: i.fixType,
50
+ })),
51
+ summary,
52
+ };
53
+ }
54
+ /**
55
+ * 修复工作区问题(仅自动修复)
56
+ */
57
+ async repair(params) {
58
+ const { workspaceId, issueIds } = params;
59
+ // 1. 先诊断获取问题列表
60
+ const index = await this.json.readIndex();
61
+ const wsEntry = index.workspaces.find(ws => ws.id === workspaceId);
62
+ if (!wsEntry) {
63
+ throw new XtepError("WORKSPACE_NOT_FOUND", `工作区 "${workspaceId}" 不在索引中`);
64
+ }
65
+ const projectRoot = wsEntry.projectRoot;
66
+ const wsDirName = wsEntry.dirName || wsEntry.id;
67
+ const wsPath = this.fs.getWorkspacePath(projectRoot, wsDirName);
68
+ // 2. 获取带修复函数的问题列表
69
+ const issues = await this.diagnoseWorkspace(workspaceId, projectRoot, wsDirName, wsPath, wsEntry);
70
+ // 3. 筛选要修复的问题
71
+ let toFix = issues.filter(i => i.fixType === "auto" && i.autoFix);
72
+ if (issueIds && issueIds.length > 0) {
73
+ toFix = toFix.filter(i => issueIds.includes(i.id));
74
+ }
75
+ // 4. 执行修复
76
+ const details = [];
77
+ let fixed = 0;
78
+ let failed = 0;
79
+ for (const issue of toFix) {
80
+ try {
81
+ const success = await issue.autoFix();
82
+ if (success) {
83
+ fixed++;
84
+ details.push({ issueId: issue.id, success: true });
85
+ }
86
+ else {
87
+ failed++;
88
+ details.push({ issueId: issue.id, success: false, message: "修复返回失败" });
89
+ }
90
+ }
91
+ catch (e) {
92
+ failed++;
93
+ details.push({
94
+ issueId: issue.id,
95
+ success: false,
96
+ message: e instanceof Error ? e.message : "未知错误",
97
+ });
98
+ }
99
+ }
100
+ // 5. 统计跳过的(非自动修复的)
101
+ const skipped = issues.length - toFix.length;
102
+ return {
103
+ workspaceId,
104
+ fixed,
105
+ failed,
106
+ skipped,
107
+ details,
108
+ };
109
+ }
110
+ /**
111
+ * 诊断工作区(内部方法,返回带修复函数的问题)
112
+ */
113
+ async diagnoseWorkspace(workspaceId, projectRoot, wsDirName, wsPath, indexEntry) {
114
+ const issues = [];
115
+ // ========== 1. 工作区目录检查 ==========
116
+ const wsExists = await this.fs.exists(wsPath);
117
+ if (!wsExists) {
118
+ issues.push({
119
+ id: "ws-dir-missing",
120
+ severity: "error",
121
+ message: "工作区目录不存在",
122
+ detail: `期望路径: ${wsPath}`,
123
+ fixType: "manual",
124
+ });
125
+ // 目录不存在,无法继续诊断
126
+ return issues;
127
+ }
128
+ // ========== 2. Index 相关问题 ==========
129
+ // 2.1 index 中 dirName 缺失
130
+ if (!indexEntry.dirName) {
131
+ issues.push({
132
+ id: "index-missing-dirname",
133
+ severity: "error",
134
+ message: "索引条目缺少 dirName 字段",
135
+ fixType: "auto",
136
+ autoFix: async () => {
137
+ const idx = await this.json.readIndex();
138
+ const entry = idx.workspaces.find(w => w.id === workspaceId);
139
+ if (entry) {
140
+ entry.dirName = wsDirName;
141
+ await this.json.writeIndex(idx);
142
+ return true;
143
+ }
144
+ return false;
145
+ },
146
+ });
147
+ }
148
+ // 2.2 index 中 dirName 与实际不匹配(尝试修复)
149
+ if (indexEntry.dirName && indexEntry.dirName !== wsDirName) {
150
+ // 检查实际目录是否存在
151
+ const actualPath = this.fs.getWorkspacePath(projectRoot, indexEntry.dirName);
152
+ const actualExists = await this.fs.exists(actualPath);
153
+ if (!actualExists) {
154
+ // 实际目录不存在,可能是 dirName 错误,尝试查找
155
+ issues.push({
156
+ id: "index-dirname-mismatch",
157
+ severity: "error",
158
+ message: "索引中的 dirName 与实际目录名不匹配",
159
+ detail: `索引: ${indexEntry.dirName}, 实际: ${wsDirName}`,
160
+ fixType: "auto",
161
+ autoFix: async () => {
162
+ const idx = await this.json.readIndex();
163
+ const entry = idx.workspaces.find(w => w.id === workspaceId);
164
+ if (entry) {
165
+ entry.dirName = wsDirName;
166
+ await this.json.writeIndex(idx);
167
+ return true;
168
+ }
169
+ return false;
170
+ },
171
+ });
172
+ }
173
+ }
174
+ // ========== 3. workspace.json 问题 ==========
175
+ const configPath = this.fs.getWorkspaceConfigPath(projectRoot, wsDirName);
176
+ const configExists = await this.fs.exists(configPath);
177
+ if (!configExists) {
178
+ issues.push({
179
+ id: "missing-workspace-json",
180
+ severity: "error",
181
+ message: "workspace.json 文件缺失",
182
+ fixType: "interactive", // 需要用户输入工作区名称
183
+ });
184
+ }
185
+ else {
186
+ try {
187
+ const config = await this.json.readWorkspaceConfig(projectRoot, wsDirName);
188
+ // 3.1 缺少 dirName
189
+ if (!config.dirName) {
190
+ issues.push({
191
+ id: "config-missing-dirname",
192
+ severity: "warning",
193
+ message: "workspace.json 缺少 dirName 字段",
194
+ fixType: "auto",
195
+ autoFix: async () => {
196
+ const cfg = await this.json.readWorkspaceConfig(projectRoot, wsDirName);
197
+ cfg.dirName = wsDirName;
198
+ await this.json.writeWorkspaceConfig(projectRoot, wsDirName, cfg);
199
+ return true;
200
+ },
201
+ });
202
+ }
203
+ // 3.2 dirName 不匹配
204
+ if (config.dirName && config.dirName !== wsDirName) {
205
+ issues.push({
206
+ id: "config-dirname-mismatch",
207
+ severity: "warning",
208
+ message: "workspace.json 中的 dirName 与实际目录名不匹配",
209
+ detail: `配置: ${config.dirName}, 实际: ${wsDirName}`,
210
+ fixType: "auto",
211
+ autoFix: async () => {
212
+ const cfg = await this.json.readWorkspaceConfig(projectRoot, wsDirName);
213
+ cfg.dirName = wsDirName;
214
+ await this.json.writeWorkspaceConfig(projectRoot, wsDirName, cfg);
215
+ return true;
216
+ },
217
+ });
218
+ }
219
+ }
220
+ catch {
221
+ issues.push({
222
+ id: "invalid-workspace-json",
223
+ severity: "error",
224
+ message: "workspace.json 格式无效 (JSON 解析失败)",
225
+ fixType: "interactive", // 需要用户确认重建
226
+ });
227
+ }
228
+ }
229
+ // ========== 4. graph.json 问题 ==========
230
+ const graphPath = this.fs.getGraphPath(projectRoot, wsDirName);
231
+ const graphExists = await this.fs.exists(graphPath);
232
+ if (!graphExists) {
233
+ issues.push({
234
+ id: "missing-graph-json",
235
+ severity: "error",
236
+ message: "graph.json 文件缺失",
237
+ fixType: "auto",
238
+ autoFix: async () => {
239
+ // 创建基本的 graph.json
240
+ const graph = {
241
+ version: STORAGE_VERSION,
242
+ currentFocus: "root",
243
+ nodes: {
244
+ root: {
245
+ id: "root",
246
+ dirName: "root",
247
+ status: "planning",
248
+ parentId: null,
249
+ children: [],
250
+ },
251
+ },
252
+ };
253
+ await this.fs.writeFile(graphPath, JSON.stringify(graph, null, 2));
254
+ // 创建 root 节点目录
255
+ const rootDir = this.fs.getNodePath(projectRoot, wsDirName, "root");
256
+ await this.fs.ensureDir(rootDir);
257
+ const infoPath = this.fs.getNodeInfoPath(projectRoot, wsDirName, "root");
258
+ const infoContent = `---
259
+ id: root
260
+ type: planning
261
+ title: 根节点
262
+ status: planning
263
+ ---
264
+
265
+ ## 需求
266
+
267
+ (待填写)
268
+ `;
269
+ await this.fs.writeFile(infoPath, infoContent);
270
+ return true;
271
+ },
272
+ });
273
+ }
274
+ else {
275
+ try {
276
+ const graph = await this.json.readGraph(projectRoot, wsDirName);
277
+ // 4.1 检查悬空的子节点引用
278
+ if (graph.nodes) {
279
+ for (const [nodeId, nodeMeta] of Object.entries(graph.nodes)) {
280
+ const meta = nodeMeta;
281
+ if (meta.children && Array.isArray(meta.children)) {
282
+ for (const childId of meta.children) {
283
+ if (!graph.nodes[childId]) {
284
+ const capturedNodeId = nodeId;
285
+ const capturedChildId = childId;
286
+ issues.push({
287
+ id: `dangling-child-${nodeId}-${childId}`,
288
+ severity: "warning",
289
+ message: `节点 ${nodeId} 引用了不存在的子节点 ${childId}`,
290
+ detail: `子节点 "${childId}" 不在 graph.nodes 中`,
291
+ fixType: "auto",
292
+ autoFix: async () => {
293
+ const g = await this.json.readGraph(projectRoot, wsDirName);
294
+ const node = g.nodes?.[capturedNodeId];
295
+ if (node?.children) {
296
+ node.children = node.children.filter(c => c !== capturedChildId);
297
+ await this.json.writeGraph(projectRoot, wsDirName, g);
298
+ return true;
299
+ }
300
+ return false;
301
+ },
302
+ });
303
+ }
304
+ }
305
+ }
306
+ }
307
+ }
308
+ // 4.2 检查孤立的父节点引用
309
+ if (graph.nodes) {
310
+ for (const [nodeId, nodeMeta] of Object.entries(graph.nodes)) {
311
+ const meta = nodeMeta;
312
+ if (meta.parentId && !graph.nodes[meta.parentId]) {
313
+ issues.push({
314
+ id: `orphan-parent-${nodeId}`,
315
+ severity: "warning",
316
+ message: `节点 ${nodeId} 的父节点 ${meta.parentId} 不存在`,
317
+ detail: `父节点 "${meta.parentId}" 不在 graph.nodes 中`,
318
+ fixType: "interactive", // 需要用户决定如何处理
319
+ });
320
+ }
321
+ }
322
+ }
323
+ // 4.3 版本检查
324
+ if (graph.version && this.compareVersion(graph.version, STORAGE_VERSION) > 0) {
325
+ issues.push({
326
+ id: "graph-version-too-high",
327
+ severity: "error",
328
+ message: `graph.json 版本过高`,
329
+ detail: `文件版本: ${graph.version}, 当前支持: ${STORAGE_VERSION}`,
330
+ fixType: "interactive", // 需要用户确认降级
331
+ });
332
+ }
333
+ // 4.4 检查节点目录是否存在
334
+ const nodesDir = this.fs.getNodesDir(projectRoot, wsDirName);
335
+ if (await this.fs.exists(nodesDir) && graph.nodes) {
336
+ for (const [nodeId, nodeMeta] of Object.entries(graph.nodes)) {
337
+ const nodeDirName = nodeMeta.dirName || nodeId;
338
+ const nodePath = this.fs.getNodePath(projectRoot, wsDirName, nodeDirName);
339
+ if (!(await this.fs.exists(nodePath))) {
340
+ // 尝试通过 shortId 查找
341
+ const foundDir = await this.findDirByShortId(nodesDir, nodeId);
342
+ if (foundDir) {
343
+ const capturedNodeId = nodeId;
344
+ const capturedFoundDir = foundDir;
345
+ issues.push({
346
+ id: `node-dirname-mismatch-${nodeId}`,
347
+ severity: "warning",
348
+ message: `节点 ${nodeId} 的目录名不匹配`,
349
+ detail: `配置: ${nodeDirName}, 找到: ${foundDir}`,
350
+ fixType: "auto",
351
+ autoFix: async () => {
352
+ const g = await this.json.readGraph(projectRoot, wsDirName);
353
+ if (g.nodes && g.nodes[capturedNodeId]) {
354
+ g.nodes[capturedNodeId].dirName = capturedFoundDir;
355
+ await this.json.writeGraph(projectRoot, wsDirName, g);
356
+ return true;
357
+ }
358
+ return false;
359
+ },
360
+ });
361
+ }
362
+ else {
363
+ issues.push({
364
+ id: `node-dir-missing-${nodeId}`,
365
+ severity: "warning",
366
+ message: `节点 ${nodeId} 的目录不存在`,
367
+ detail: `期望目录: ${nodeDirName}`,
368
+ fixType: "interactive", // 需要用户指定正确目录
369
+ });
370
+ }
371
+ }
372
+ }
373
+ }
374
+ }
375
+ catch {
376
+ issues.push({
377
+ id: "invalid-graph-json",
378
+ severity: "error",
379
+ message: "graph.json 格式无效 (JSON 解析失败)",
380
+ fixType: "interactive", // 需要用户确认重建
381
+ });
382
+ }
383
+ }
384
+ return issues;
385
+ }
386
+ /**
387
+ * 提取 ID 的短标识
388
+ */
389
+ extractShortId(id) {
390
+ const match = id.match(/^(?:ws-|node-|memo-)?([a-z0-9]+)-([a-z0-9]+)$/);
391
+ return match ? match[1] : id.slice(-8);
392
+ }
393
+ /**
394
+ * 通过 shortId 查找目录
395
+ */
396
+ async findDirByShortId(parentDir, id) {
397
+ const shortId = this.extractShortId(id);
398
+ try {
399
+ const items = await this.fs.readdir(parentDir);
400
+ // 优先匹配 _shortId 后缀
401
+ for (const item of items) {
402
+ if (item.endsWith(`_${shortId}`)) {
403
+ return item;
404
+ }
405
+ }
406
+ // 兜底:包含 shortId
407
+ for (const item of items) {
408
+ if (item.includes(shortId)) {
409
+ return item;
410
+ }
411
+ }
412
+ }
413
+ catch {
414
+ // ignore
415
+ }
416
+ return null;
417
+ }
418
+ /**
419
+ * 版本比较
420
+ */
421
+ compareVersion(a, b) {
422
+ const [aMajor, aMinor = 0] = a.split(".").map(Number);
423
+ const [bMajor, bMinor = 0] = b.split(".").map(Number);
424
+ if (aMajor !== bMajor)
425
+ return aMajor - bMajor;
426
+ return aMinor - bMinor;
427
+ }
428
+ }
429
+ //# sourceMappingURL=RepairService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RepairService.js","sourceRoot":"","sources":["../../src/services/RepairService.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,yBAAyB;AAYzB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,SAAS;AACT,MAAM,eAAe,GAAG,KAAK,CAAC;AAO9B;;GAEG;AACH,MAAM,OAAO,aAAa;IAEd;IACA;IAFV,YACU,IAAiB,EACjB,EAAqB;QADrB,SAAI,GAAJ,IAAI,CAAa;QACjB,OAAE,GAAF,EAAE,CAAmB;IAC5B,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACnC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAE/B,uBAAuB;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;QAEnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,QAAQ,WAAW,SAAS,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAEhE,UAAU;QACV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAElG,QAAQ;QACR,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM;YACzD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM;YAC7D,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM;YAC5D,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,MAAM;YAC1E,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,MAAM;SACjE,CAAC;QAEF,OAAO;YACL,WAAW;YACX,aAAa,EAAE,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC,CAAC;YACH,OAAO;SACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,MAAoB;QAC/B,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAEzC,eAAe;QACf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;QAEnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,QAAQ,WAAW,SAAS,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAEhE,kBAAkB;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAElG,cAAc;QACd,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,UAAU;QACV,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAQ,EAAE,CAAC;gBACvC,IAAI,OAAO,EAAE,CAAC;oBACZ,KAAK,EAAE,CAAC;oBACR,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,CAAC;oBACT,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;iBACjD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAE7C,OAAO;YACL,WAAW;YACX,KAAK;YACL,MAAM;YACN,OAAO;YACP,OAAO;SACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC7B,WAAmB,EACnB,WAAmB,EACnB,SAAiB,EACjB,MAAc,EACd,UAAiF;QAEjF,MAAM,MAAM,GAAoB,EAAE,CAAC;QAEnC,mCAAmC;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,gBAAgB;gBACpB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,UAAU;gBACnB,MAAM,EAAE,SAAS,MAAM,EAAE;gBACzB,OAAO,EAAE,QAAQ;aAClB,CAAC,CAAC;YACH,eAAe;YACf,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,sCAAsC;QAEtC,yBAAyB;QACzB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,uBAAuB;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,mBAAmB;gBAC5B,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,KAAK,IAAI,EAAE;oBAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;oBACxC,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;oBAC7D,IAAI,KAAK,EAAE,CAAC;wBACV,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;wBAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;wBAChC,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,mCAAmC;QACnC,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3D,aAAa;YACb,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;YAC7E,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAEtD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,8BAA8B;gBAC9B,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,wBAAwB;oBAC5B,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,wBAAwB;oBACjC,MAAM,EAAE,OAAO,UAAU,CAAC,OAAO,SAAS,SAAS,EAAE;oBACrD,OAAO,EAAE,MAAM;oBACf,OAAO,EAAE,KAAK,IAAI,EAAE;wBAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;wBACxC,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;wBAC7D,IAAI,KAAK,EAAE,CAAC;4BACV,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;4BAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;4BAChC,OAAO,IAAI,CAAC;wBACd,CAAC;wBACD,OAAO,KAAK,CAAC;oBACf,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,6CAA6C;QAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEtD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,wBAAwB;gBAC5B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,qBAAqB;gBAC9B,OAAO,EAAE,aAAa,EAAE,cAAc;aACvC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAE3E,iBAAiB;gBACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC;wBACV,EAAE,EAAE,wBAAwB;wBAC5B,QAAQ,EAAE,SAAS;wBACnB,OAAO,EAAE,8BAA8B;wBACvC,OAAO,EAAE,MAAM;wBACf,OAAO,EAAE,KAAK,IAAI,EAAE;4BAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;4BACxE,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;4BACxB,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;4BAClE,OAAO,IAAI,CAAC;wBACd,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;gBAED,kBAAkB;gBAClB,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACnD,MAAM,CAAC,IAAI,CAAC;wBACV,EAAE,EAAE,yBAAyB;wBAC7B,QAAQ,EAAE,SAAS;wBACnB,OAAO,EAAE,qCAAqC;wBAC9C,MAAM,EAAE,OAAO,MAAM,CAAC,OAAO,SAAS,SAAS,EAAE;wBACjD,OAAO,EAAE,MAAM;wBACf,OAAO,EAAE,KAAK,IAAI,EAAE;4BAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;4BACxE,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;4BACxB,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;4BAClE,OAAO,IAAI,CAAC;wBACd,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,wBAAwB;oBAC5B,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,iCAAiC;oBAC1C,OAAO,EAAE,aAAa,EAAE,WAAW;iBACpC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,yCAAyC;QAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEpD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,oBAAoB;gBACxB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,iBAAiB;gBAC1B,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,KAAK,IAAI,EAAE;oBAClB,mBAAmB;oBACnB,MAAM,KAAK,GAAG;wBACZ,OAAO,EAAE,eAAe;wBACxB,YAAY,EAAE,MAAM;wBACpB,KAAK,EAAE;4BACL,IAAI,EAAE;gCACJ,EAAE,EAAE,MAAM;gCACV,OAAO,EAAE,MAAM;gCACf,MAAM,EAAE,UAAU;gCAClB,QAAQ,EAAE,IAAI;gCACd,QAAQ,EAAE,EAAE;6BACb;yBACF;qBACF,CAAC;oBACF,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBAEnE,eAAe;oBACf,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;oBACpE,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;oBACzE,MAAM,WAAW,GAAG;;;;;;;;;;CAU7B,CAAC;oBACQ,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;oBAC/C,OAAO,IAAI,CAAC;gBACd,CAAC;aACF,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAEhE,iBAAiB;gBACjB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC7D,MAAM,IAAI,GAAG,QAAmC,CAAC;wBACjD,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAClD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gCACpC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;oCAC1B,MAAM,cAAc,GAAG,MAAM,CAAC;oCAC9B,MAAM,eAAe,GAAG,OAAO,CAAC;oCAChC,MAAM,CAAC,IAAI,CAAC;wCACV,EAAE,EAAE,kBAAkB,MAAM,IAAI,OAAO,EAAE;wCACzC,QAAQ,EAAE,SAAS;wCACnB,OAAO,EAAE,MAAM,MAAM,eAAe,OAAO,EAAE;wCAC7C,MAAM,EAAE,QAAQ,OAAO,oBAAoB;wCAC3C,OAAO,EAAE,MAAM;wCACf,OAAO,EAAE,KAAK,IAAI,EAAE;4CAClB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;4CAC5D,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,cAAc,CAAwC,CAAC;4CAC9E,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;gDACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC;gDACjE,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;gDACtD,OAAO,IAAI,CAAC;4CACd,CAAC;4CACD,OAAO,KAAK,CAAC;wCACf,CAAC;qCACF,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,iBAAiB;gBACjB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC7D,MAAM,IAAI,GAAG,QAAwC,CAAC;wBACtD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACjD,MAAM,CAAC,IAAI,CAAC;gCACV,EAAE,EAAE,iBAAiB,MAAM,EAAE;gCAC7B,QAAQ,EAAE,SAAS;gCACnB,OAAO,EAAE,MAAM,MAAM,SAAS,IAAI,CAAC,QAAQ,MAAM;gCACjD,MAAM,EAAE,QAAQ,IAAI,CAAC,QAAQ,oBAAoB;gCACjD,OAAO,EAAE,aAAa,EAAE,aAAa;6BACtC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,WAAW;gBACX,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7E,MAAM,CAAC,IAAI,CAAC;wBACV,EAAE,EAAE,wBAAwB;wBAC5B,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,iBAAiB;wBAC1B,MAAM,EAAE,SAAS,KAAK,CAAC,OAAO,WAAW,eAAe,EAAE;wBAC1D,OAAO,EAAE,aAAa,EAAE,WAAW;qBACpC,CAAC,CAAC;gBACL,CAAC;gBAED,iBAAiB;gBACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC7D,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAClD,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC7D,MAAM,WAAW,GAAI,QAAiC,CAAC,OAAO,IAAI,MAAM,CAAC;wBACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;wBAE1E,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;4BACtC,kBAAkB;4BAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;4BAE/D,IAAI,QAAQ,EAAE,CAAC;gCACb,MAAM,cAAc,GAAG,MAAM,CAAC;gCAC9B,MAAM,gBAAgB,GAAG,QAAQ,CAAC;gCAClC,MAAM,CAAC,IAAI,CAAC;oCACV,EAAE,EAAE,yBAAyB,MAAM,EAAE;oCACrC,QAAQ,EAAE,SAAS;oCACnB,OAAO,EAAE,MAAM,MAAM,UAAU;oCAC/B,MAAM,EAAE,OAAO,WAAW,SAAS,QAAQ,EAAE;oCAC7C,OAAO,EAAE,MAAM;oCACf,OAAO,EAAE,KAAK,IAAI,EAAE;wCAClB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;wCAC5D,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;4CACtC,CAAC,CAAC,KAAK,CAAC,cAAc,CAA0B,CAAC,OAAO,GAAG,gBAAgB,CAAC;4CAC7E,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;4CACtD,OAAO,IAAI,CAAC;wCACd,CAAC;wCACD,OAAO,KAAK,CAAC;oCACf,CAAC;iCACF,CAAC,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACN,MAAM,CAAC,IAAI,CAAC;oCACV,EAAE,EAAE,oBAAoB,MAAM,EAAE;oCAChC,QAAQ,EAAE,SAAS;oCACnB,OAAO,EAAE,MAAM,MAAM,SAAS;oCAC9B,MAAM,EAAE,SAAS,WAAW,EAAE;oCAC9B,OAAO,EAAE,aAAa,EAAE,aAAa;iCACtC,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,oBAAoB;oBACxB,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,6BAA6B;oBACtC,OAAO,EAAE,aAAa,EAAE,WAAW;iBACpC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,EAAU;QAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,EAAU;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAE/C,mBAAmB;YACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC;oBACjC,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,gBAAgB;YAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,CAAS,EAAE,CAAS;QACzC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,MAAM,GAAG,MAAM,CAAC;QAC9C,OAAO,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,34 @@
1
+ import type { FileSystemAdapter } from "../storage/FileSystemAdapter.js";
2
+ import type { JsonStorage } from "../storage/JsonStorage.js";
3
+ import type { MarkdownStorage } from "../storage/MarkdownStorage.js";
4
+ import type { WorkspaceSearchParams, WorkspaceSearchResult, ContentSearchParams, ContentSearchResult } from "../types/search.js";
5
+ /**
6
+ * 搜索服务
7
+ */
8
+ export declare class SearchService {
9
+ private json;
10
+ private md;
11
+ private fs;
12
+ constructor(json: JsonStorage, md: MarkdownStorage, fs: FileSystemAdapter);
13
+ /**
14
+ * 搜索工作区
15
+ */
16
+ workspaceSearch(params: WorkspaceSearchParams): Promise<WorkspaceSearchResult>;
17
+ /**
18
+ * 搜索工作区内容
19
+ */
20
+ contentSearch(params: ContentSearchParams): Promise<ContentSearchResult>;
21
+ /**
22
+ * 收集节点子树中所有节点 ID
23
+ */
24
+ private collectSubtreeNodes;
25
+ /**
26
+ * 在文本中查找关键词,返回第一个匹配的片段
27
+ */
28
+ private findInText;
29
+ /**
30
+ * 在文本中查找所有匹配,返回带行号的片段列表
31
+ */
32
+ private findAllInText;
33
+ }
34
+ //# sourceMappingURL=SearchService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchService.d.ts","sourceRoot":"","sources":["../../src/services/SearchService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EAErB,mBAAmB,EACnB,mBAAmB,EAEpB,MAAM,oBAAoB,CAAC;AAG5B;;GAEG;AACH,qBAAa,aAAa;IAEtB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,EAAE;gBAFF,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,eAAe,EACnB,EAAE,EAAE,iBAAiB;IAG/B;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA6DpF;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAoL9E;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACH,OAAO,CAAC,aAAa;CAmBtB"}