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,109 @@
1
+ /**
2
+ * 日志级别类型
3
+ */
4
+ export type LogLevel = "debug" | "info" | "warn" | "error";
5
+ /**
6
+ * 有效的日志级别值
7
+ */
8
+ export declare const VALID_LOG_LEVELS: LogLevel[];
9
+ /**
10
+ * 全局配置接口
11
+ * 存储在 ~/.xtep-workspace/config.json
12
+ */
13
+ export interface GlobalConfig {
14
+ version: "1.0";
15
+ defaultDispatchMode: "none" | "git" | "no-git";
16
+ logLevel?: LogLevel;
17
+ tutorialCreated?: boolean;
18
+ tutorialVersion?: string;
19
+ }
20
+ /**
21
+ * 默认日志级别
22
+ */
23
+ export declare const DEFAULT_LOG_LEVEL: LogLevel;
24
+ /**
25
+ * 默认全局配置
26
+ */
27
+ export declare const DEFAULT_CONFIG: GlobalConfig;
28
+ /**
29
+ * config_get 输出
30
+ */
31
+ export interface ConfigGetResult {
32
+ config: GlobalConfig;
33
+ }
34
+ /**
35
+ * config_set 输入
36
+ */
37
+ export interface ConfigSetParams {
38
+ defaultDispatchMode?: "none" | "git" | "no-git";
39
+ logLevel?: LogLevel;
40
+ }
41
+ /**
42
+ * config_set 输出
43
+ */
44
+ export interface ConfigSetResult {
45
+ success: boolean;
46
+ config: GlobalConfig;
47
+ }
48
+ /**
49
+ * 支持的平台类型
50
+ */
51
+ export type PlatformType = "claudeCode" | "cursor" | "codex";
52
+ /**
53
+ * 组件安装信息
54
+ */
55
+ export interface ComponentInfo {
56
+ installed: boolean;
57
+ version?: string;
58
+ }
59
+ /**
60
+ * 平台组件安装信息
61
+ */
62
+ export interface PlatformInstallation {
63
+ enabled: boolean;
64
+ installedAt: string;
65
+ components: {
66
+ hooks: ComponentInfo;
67
+ mcp: ComponentInfo;
68
+ agents?: ComponentInfo;
69
+ skills?: ComponentInfo;
70
+ agentsMd?: ComponentInfo;
71
+ modes?: ComponentInfo;
72
+ };
73
+ }
74
+ /**
75
+ * 安装元信息
76
+ * 记录全局组件安装状态
77
+ */
78
+ export interface InstallationMeta {
79
+ schemaVersion: "1.0";
80
+ global: {
81
+ installedAt: string;
82
+ lastUpdatedAt: string;
83
+ packageVersion: string;
84
+ platforms: {
85
+ claudeCode?: PlatformInstallation;
86
+ cursor?: PlatformInstallation;
87
+ codex?: PlatformInstallation;
88
+ };
89
+ };
90
+ }
91
+ /**
92
+ * 默认安装元信息
93
+ */
94
+ export declare const DEFAULT_INSTALLATION_META: InstallationMeta;
95
+ /**
96
+ * 组件类型
97
+ */
98
+ export type ComponentType = "hooks" | "mcp" | "agents" | "skills";
99
+ /**
100
+ * 安装警告
101
+ */
102
+ export interface InstallationWarning {
103
+ platform: PlatformType;
104
+ component: ComponentType;
105
+ installedVersion: string;
106
+ currentVersion: string;
107
+ message: string;
108
+ }
109
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,EAAuC,CAAC;AAE/E;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,KAAK,CAAC;IACf,mBAAmB,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC/C,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAiB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,YAI5B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mBAAmB,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAChD,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;CACtB;AAOD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,KAAK,EAAE,aAAa,CAAC;QACrB,GAAG,EAAE,aAAa,CAAC;QACnB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,QAAQ,CAAC,EAAE,aAAa,CAAC;QACzB,KAAK,CAAC,EAAE,aAAa,CAAC;KACvB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,KAAK,CAAC;IACrB,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE;YACT,UAAU,CAAC,EAAE,oBAAoB,CAAC;YAClC,MAAM,CAAC,EAAE,oBAAoB,CAAC;YAC9B,KAAK,CAAC,EAAE,oBAAoB,CAAC;SAC9B,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,gBAQvC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,aAAa,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,30 @@
1
+ // src/types/settings.ts
2
+ /**
3
+ * 有效的日志级别值
4
+ */
5
+ export const VALID_LOG_LEVELS = ["debug", "info", "warn", "error"];
6
+ /**
7
+ * 默认日志级别
8
+ */
9
+ export const DEFAULT_LOG_LEVEL = "info";
10
+ /**
11
+ * 默认全局配置
12
+ */
13
+ export const DEFAULT_CONFIG = {
14
+ version: "1.0",
15
+ defaultDispatchMode: "none", // 默认不启用派发
16
+ logLevel: DEFAULT_LOG_LEVEL, // 默认日志级别
17
+ };
18
+ /**
19
+ * 默认安装元信息
20
+ */
21
+ export const DEFAULT_INSTALLATION_META = {
22
+ schemaVersion: "1.0",
23
+ global: {
24
+ installedAt: new Date().toISOString(),
25
+ lastUpdatedAt: new Date().toISOString(),
26
+ packageVersion: "0.0.0",
27
+ platforms: {},
28
+ },
29
+ };
30
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"AAAA,wBAAwB;AAOxB;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAc/E;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAa,MAAM,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,OAAO,EAAE,KAAK;IACd,mBAAmB,EAAE,MAAM,EAAG,UAAU;IACxC,QAAQ,EAAE,iBAAiB,EAAG,SAAS;CACxC,CAAC;AA6EF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAqB;IACzD,aAAa,EAAE,KAAK;IACpB,MAAM,EAAE;QACN,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACvC,cAAc,EAAE,OAAO;QACvB,SAAS,EAAE,EAAE;KACd;CACF,CAAC"}
@@ -0,0 +1,357 @@
1
+ /**
2
+ * 任务场景类型
3
+ */
4
+ export type TaskScenario = 'feature' | 'summary' | 'optimize' | 'debug' | 'misc';
5
+ /**
6
+ * 场景配置(用于引导生成)
7
+ */
8
+ export interface ScenarioConfig {
9
+ scenario: TaskScenario;
10
+ isNeedTest: boolean;
11
+ baseGuidance: string[];
12
+ }
13
+ /**
14
+ * 工作区索引 - 存储在 ~/.xtep-workspace/index.json(全局)
15
+ */
16
+ export interface WorkspaceIndex {
17
+ version: string;
18
+ workspaces: WorkspaceEntry[];
19
+ }
20
+ /**
21
+ * 工作区索引条目
22
+ */
23
+ export interface WorkspaceEntry {
24
+ id: string;
25
+ name: string;
26
+ dirName: string;
27
+ projectRoot: string;
28
+ status: WorkspaceStatus;
29
+ createdAt: string;
30
+ updatedAt: string;
31
+ errorInfo?: WorkspaceErrorInfo;
32
+ hasUnresolvedIssues?: boolean;
33
+ lastWarningAt?: string;
34
+ pinned?: boolean;
35
+ }
36
+ /**
37
+ * 工作区状态
38
+ */
39
+ export type WorkspaceStatus = "active" | "archived" | "error";
40
+ /**
41
+ * 工作区错误信息
42
+ */
43
+ export interface WorkspaceErrorInfo {
44
+ message: string;
45
+ detectedAt: string;
46
+ type?: "dir_missing" | "config_corrupted" | "graph_corrupted" | "version_too_high" | "node_corrupted" | "unknown";
47
+ previousStatus?: "active" | "archived";
48
+ }
49
+ /**
50
+ * 派发资源限制配置
51
+ */
52
+ export interface DispatchLimits {
53
+ timeoutMs?: number;
54
+ maxRetries?: number;
55
+ }
56
+ /**
57
+ * Review 配置
58
+ */
59
+ export interface ReviewConfig {
60
+ specReviewEnabled: boolean;
61
+ qualityReviewEnabled: boolean;
62
+ }
63
+ /**
64
+ * 派发配置 - 存储在 workspace.json 中
65
+ */
66
+ export interface DispatchConfig {
67
+ enabled: boolean;
68
+ useGit: boolean;
69
+ enabledAt: number;
70
+ originalBranch?: string;
71
+ processBranch?: string;
72
+ backupBranches?: string[];
73
+ limits?: DispatchLimits;
74
+ review?: ReviewConfig;
75
+ }
76
+ /**
77
+ * 工作区配置 - 存储在 .xtep-workspace/[dirName]/workspace.json
78
+ */
79
+ export interface WorkspaceConfig {
80
+ id: string;
81
+ name: string;
82
+ dirName: string;
83
+ status: WorkspaceStatus;
84
+ createdAt: string;
85
+ updatedAt: string;
86
+ rootNodeId: string;
87
+ scenario?: TaskScenario;
88
+ dispatch?: DispatchConfig;
89
+ pendingManualChanges?: ManualChange[];
90
+ }
91
+ /**
92
+ * Memo 元信息(用于 memo:// 引用)
93
+ */
94
+ export interface MemoMeta {
95
+ id: string;
96
+ title: string;
97
+ summary: string;
98
+ tags: string[];
99
+ }
100
+ /**
101
+ * 文档引用状态
102
+ */
103
+ export type DocRefStatus = "active" | "expired";
104
+ /**
105
+ * 文档引用
106
+ */
107
+ export interface DocRef {
108
+ path: string;
109
+ description: string;
110
+ memoMeta?: MemoMeta;
111
+ status?: DocRefStatus;
112
+ }
113
+ /**
114
+ * Workspace.md 数据结构
115
+ */
116
+ export interface WorkspaceMdData {
117
+ name: string;
118
+ createdAt: string;
119
+ updatedAt: string;
120
+ rules: string[];
121
+ docs: DocRef[];
122
+ }
123
+ /**
124
+ * 日志条目
125
+ */
126
+ export interface LogEntry {
127
+ time: string;
128
+ operator: string;
129
+ event: string;
130
+ }
131
+ /**
132
+ * 问题数据
133
+ */
134
+ export interface ProblemData {
135
+ currentProblem: string;
136
+ nextStep: string;
137
+ }
138
+ /**
139
+ * workspace_init 输入
140
+ */
141
+ export interface WorkspaceInitParams {
142
+ name: string;
143
+ goal: string;
144
+ projectRoot?: string;
145
+ scenario?: TaskScenario;
146
+ rules?: string[];
147
+ docs?: DocRef[];
148
+ }
149
+ /**
150
+ * 项目文档信息(用于 workspace_init 扫描结果)
151
+ */
152
+ export interface ProjectDocInfo {
153
+ path: string;
154
+ hasFrontmatter: boolean;
155
+ isFolder?: boolean;
156
+ }
157
+ /**
158
+ * 项目文档扫描结果
159
+ */
160
+ export interface ProjectDocsScanResult {
161
+ files: ProjectDocInfo[];
162
+ folders: string[];
163
+ totalFound: number;
164
+ degraded: boolean;
165
+ }
166
+ /**
167
+ * AI 必须执行的行为类型
168
+ */
169
+ export type ActionRequiredType = "invoke_skill" | "ask_user" | "show_plan" | "check_docs" | "review_structure" | "ask_dispatch" | "dispatch_task" | "dispatch_complete_choice";
170
+ /**
171
+ * AI 必须执行的行为
172
+ * 当此字段存在时,AI 必须执行相应行为,不可忽略
173
+ */
174
+ export interface ActionRequired {
175
+ type: ActionRequiredType;
176
+ message: string;
177
+ data?: Record<string, unknown>;
178
+ confirmationToken?: string;
179
+ }
180
+ /**
181
+ * workspace_init 输出
182
+ */
183
+ export interface WorkspaceInitResult {
184
+ workspaceId: string;
185
+ path: string;
186
+ projectRoot: string;
187
+ rootNodeId: string;
188
+ scenario: TaskScenario;
189
+ webUrl?: string;
190
+ hint?: string;
191
+ projectDocs?: ProjectDocsScanResult;
192
+ actionRequired?: ActionRequired;
193
+ }
194
+ /**
195
+ * workspace_list 输入
196
+ */
197
+ export interface WorkspaceListParams {
198
+ status?: "active" | "archived" | "all";
199
+ cwd?: string;
200
+ }
201
+ /**
202
+ * workspace_list 输出项(包含 webUrl)
203
+ */
204
+ export interface WorkspaceListItem extends WorkspaceEntry {
205
+ webUrl: string;
206
+ }
207
+ /**
208
+ * workspace_list 输出
209
+ */
210
+ export interface WorkspaceListResult {
211
+ workspaces: WorkspaceListItem[];
212
+ hint?: string;
213
+ }
214
+ /**
215
+ * 拓扑节点 - 用于轻量级工作区结构展示
216
+ * 基于状态的智能折叠策略,压缩完整节点树
217
+ */
218
+ export interface TopologyNode {
219
+ id: string;
220
+ title: string;
221
+ status: string;
222
+ role?: string;
223
+ children?: TopologyNode[];
224
+ _done?: string[];
225
+ _sum?: string;
226
+ _c?: number;
227
+ }
228
+ /**
229
+ * workspace_get 输入
230
+ */
231
+ export interface WorkspaceGetParams {
232
+ workspaceId: string;
233
+ }
234
+ /**
235
+ * workspace_get 输出
236
+ */
237
+ export interface WorkspaceGetResult {
238
+ config: WorkspaceConfig;
239
+ graph: import("./node.js").NodeGraph;
240
+ workspaceMd: string;
241
+ logMd: string;
242
+ webUrl: string;
243
+ rulesCount: number;
244
+ rulesHash: string;
245
+ topology?: TopologyNode;
246
+ warning?: {
247
+ message: string;
248
+ issues: import("./health.js").HealthIssue[];
249
+ suggestion: string;
250
+ };
251
+ }
252
+ /**
253
+ * workspace_delete 输入
254
+ */
255
+ export interface WorkspaceDeleteParams {
256
+ workspaceId: string;
257
+ force?: boolean;
258
+ }
259
+ /**
260
+ * workspace_delete 输出
261
+ */
262
+ export interface WorkspaceDeleteResult {
263
+ success: boolean;
264
+ }
265
+ /**
266
+ * workspace_status 输入
267
+ */
268
+ export interface WorkspaceStatusParams {
269
+ workspaceId: string;
270
+ format?: "box" | "markdown";
271
+ }
272
+ /**
273
+ * workspace_status 输出
274
+ */
275
+ export interface WorkspaceStatusResult {
276
+ output: string;
277
+ summary: {
278
+ name: string;
279
+ goal: string;
280
+ status: string;
281
+ totalNodes: number;
282
+ completedNodes: number;
283
+ currentFocus: string | null;
284
+ };
285
+ webUrl: string;
286
+ memos?: {
287
+ items: Array<{
288
+ id: string;
289
+ title: string;
290
+ summary: string;
291
+ tags: string[];
292
+ updatedAt: string;
293
+ }>;
294
+ allTags: string[];
295
+ totalCount: number;
296
+ };
297
+ }
298
+ /**
299
+ * workspace_update_rules 输入
300
+ */
301
+ export interface WorkspaceUpdateRulesParams {
302
+ workspaceId: string;
303
+ action: "add" | "remove" | "replace";
304
+ rule?: string;
305
+ rules?: string[];
306
+ }
307
+ /**
308
+ * workspace_update_rules 输出
309
+ */
310
+ export interface WorkspaceUpdateRulesResult {
311
+ success: boolean;
312
+ rulesCount: number;
313
+ rulesHash: string;
314
+ rules: string[];
315
+ }
316
+ /**
317
+ * workspace_archive 输入
318
+ */
319
+ export interface WorkspaceArchiveParams {
320
+ workspaceId: string;
321
+ }
322
+ /**
323
+ * workspace_archive 输出
324
+ */
325
+ export interface WorkspaceArchiveResult {
326
+ success: boolean;
327
+ archivePath: string;
328
+ }
329
+ /**
330
+ * workspace_restore 输入
331
+ */
332
+ export interface WorkspaceRestoreParams {
333
+ workspaceId: string;
334
+ }
335
+ /**
336
+ * workspace_restore 输出
337
+ */
338
+ export interface WorkspaceRestoreResult {
339
+ success: boolean;
340
+ path: string;
341
+ webUrl: string;
342
+ }
343
+ /**
344
+ * 手动变更记录(WebUI 手动操作)
345
+ */
346
+ export interface ManualChange {
347
+ id: string;
348
+ timestamp: string;
349
+ type: "transition" | "create" | "delete" | "focus" | "update";
350
+ nodeId?: string;
351
+ nodeName?: string;
352
+ fromStatus?: string;
353
+ toStatus?: string;
354
+ description: string;
355
+ source: "webui";
356
+ }
357
+ //# sourceMappingURL=workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/types/workspace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // src/types/workspace.ts
2
+ export {};
3
+ //# sourceMappingURL=workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/types/workspace.ts"],"names":[],"mappings":"AAAA,yBAAyB"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * 验证多行内容(不能包含行首 ## 标题)
3
+ *
4
+ * Info.md/Problem.md/Workspace.md 使用 ## 作为 section 分隔符
5
+ * 解析正则使用 (?=\n## |$) 作为边界,所以只有 ## 会触发边界
6
+ *
7
+ * 注意:# 一级标题和 ### 三级标题等不会破坏解析,允许使用
8
+ *
9
+ * @param content 要验证的内容
10
+ * @param fieldName 字段名称(用于错误信息)
11
+ * @throws XtepError 如果内容包含 ## 标题
12
+ */
13
+ export declare function validateMultilineContent(content: string, fieldName: string): void;
14
+ /**
15
+ * 验证单行内容(不能包含换行符)
16
+ * Frontmatter 和列表项使用单行格式,换行符会破坏解析
17
+ *
18
+ * @param content 要验证的内容
19
+ * @param fieldName 字段名称(用于错误信息)
20
+ * @throws XtepError 如果内容包含换行符
21
+ */
22
+ export declare function validateSingleLineContent(content: string, fieldName: string): void;
23
+ /**
24
+ * 转义表格单元格内容
25
+ * Log.md 使用 Markdown 表格格式,需要转义特殊字符
26
+ *
27
+ * @param content 原始内容
28
+ * @returns 转义后的内容
29
+ */
30
+ export declare function escapeTableCell(content: string): string;
31
+ /**
32
+ * 还原表格单元格内容
33
+ * 读取时将转义的内容还原
34
+ *
35
+ * @param content 转义后的内容
36
+ * @returns 原始内容
37
+ */
38
+ export declare function unescapeTableCell(content: string): string;
39
+ /**
40
+ * 验证规则列表
41
+ * 每条规则必须是单行,不能包含 ## 标题
42
+ *
43
+ * @param rules 规则列表
44
+ * @throws XtepError 如果任何规则不合法
45
+ */
46
+ export declare function validateRules(rules: string[]): void;
47
+ //# sourceMappingURL=contentValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentValidation.d.ts","sourceRoot":"","sources":["../../src/utils/contentValidation.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAcjF;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAUlF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAUvD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAYnD"}
@@ -0,0 +1,93 @@
1
+ // src/utils/contentValidation.ts
2
+ import { XtepError } from "../types/errors.js";
3
+ /**
4
+ * 验证多行内容(不能包含行首 ## 标题)
5
+ *
6
+ * Info.md/Problem.md/Workspace.md 使用 ## 作为 section 分隔符
7
+ * 解析正则使用 (?=\n## |$) 作为边界,所以只有 ## 会触发边界
8
+ *
9
+ * 注意:# 一级标题和 ### 三级标题等不会破坏解析,允许使用
10
+ *
11
+ * @param content 要验证的内容
12
+ * @param fieldName 字段名称(用于错误信息)
13
+ * @throws XtepError 如果内容包含 ## 标题
14
+ */
15
+ export function validateMultilineContent(content, fieldName) {
16
+ if (!content)
17
+ return;
18
+ // 只检测行首的 ## 二级标题格式(唯一会破坏 section 解析的格式)
19
+ // 匹配:行首的 ##(后跟空格),但不匹配 ### 及更多 #
20
+ const headerPattern = /^##(?!#)\s/m;
21
+ if (headerPattern.test(content)) {
22
+ throw new XtepError("INVALID_CONTENT", `「${fieldName}」不能包含 Markdown 二级标题(## )格式,这会破坏文件的 section 解析。` +
23
+ `请使用其他格式替代,如:### 三级标题、# 一级标题、**加粗文本**、或直接去掉 ## 前缀。`);
24
+ }
25
+ }
26
+ /**
27
+ * 验证单行内容(不能包含换行符)
28
+ * Frontmatter 和列表项使用单行格式,换行符会破坏解析
29
+ *
30
+ * @param content 要验证的内容
31
+ * @param fieldName 字段名称(用于错误信息)
32
+ * @throws XtepError 如果内容包含换行符
33
+ */
34
+ export function validateSingleLineContent(content, fieldName) {
35
+ if (!content)
36
+ return;
37
+ // 检测任何形式的换行符
38
+ if (/[\r\n]/.test(content)) {
39
+ throw new XtepError("INVALID_CONTENT", `「${fieldName}」不能包含换行符,必须是单行文本。`);
40
+ }
41
+ }
42
+ /**
43
+ * 转义表格单元格内容
44
+ * Log.md 使用 Markdown 表格格式,需要转义特殊字符
45
+ *
46
+ * @param content 原始内容
47
+ * @returns 转义后的内容
48
+ */
49
+ export function escapeTableCell(content) {
50
+ if (!content)
51
+ return "";
52
+ return content
53
+ // 换行符转为 <br>
54
+ .replace(/\r\n/g, "<br>")
55
+ .replace(/\r/g, "<br>")
56
+ .replace(/\n/g, "<br>")
57
+ // 管道符转为全角(避免破坏表格结构)
58
+ .replace(/\|/g, "|");
59
+ }
60
+ /**
61
+ * 还原表格单元格内容
62
+ * 读取时将转义的内容还原
63
+ *
64
+ * @param content 转义后的内容
65
+ * @returns 原始内容
66
+ */
67
+ export function unescapeTableCell(content) {
68
+ if (!content)
69
+ return "";
70
+ return content
71
+ // <br> 还原为换行符
72
+ .replace(/<br>/g, "\n")
73
+ // 全角管道符还原
74
+ .replace(/|/g, "|");
75
+ }
76
+ /**
77
+ * 验证规则列表
78
+ * 每条规则必须是单行,不能包含 ## 标题
79
+ *
80
+ * @param rules 规则列表
81
+ * @throws XtepError 如果任何规则不合法
82
+ */
83
+ export function validateRules(rules) {
84
+ for (let i = 0; i < rules.length; i++) {
85
+ const rule = rules[i];
86
+ if (!rule || rule.trim().length === 0) {
87
+ throw new XtepError("INVALID_CONTENT", `第 ${i + 1} 条规则不能为空`);
88
+ }
89
+ // 规则是列表项,不能包含换行
90
+ validateSingleLineContent(rule, `第 ${i + 1} 条规则`);
91
+ }
92
+ }
93
+ //# sourceMappingURL=contentValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentValidation.js","sourceRoot":"","sources":["../../src/utils/contentValidation.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe,EAAE,SAAiB;IACzE,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,wCAAwC;IACxC,iCAAiC;IACjC,MAAM,aAAa,GAAG,aAAa,CAAC;IAEpC,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CACjB,iBAAiB,EACjB,IAAI,SAAS,gDAAgD;YAC7D,mDAAmD,CACpD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAe,EAAE,SAAiB;IAC1E,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,aAAa;IACb,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CACjB,iBAAiB,EACjB,IAAI,SAAS,mBAAmB,CACjC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,OAAO,OAAO;QACZ,aAAa;SACZ,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;SACxB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,oBAAoB;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,OAAO,OAAO;QACZ,cAAc;SACb,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;QACvB,UAAU;SACT,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAe;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,SAAS,CACjB,iBAAiB,EACjB,KAAK,CAAC,GAAG,CAAC,UAAU,CACrB,CAAC;QACJ,CAAC;QACD,gBAAgB;QAChB,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;AACH,CAAC"}