@langadventurellc/task-trellis-mcp 0.1.0-rc.3 → 1.0.0-rc.2

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 (316) hide show
  1. package/README.md +60 -6
  2. package/dist/__tests__/e2e/configuration/activation.e2e.test.d.ts +2 -0
  3. package/dist/__tests__/e2e/configuration/activation.e2e.test.d.ts.map +1 -0
  4. package/dist/__tests__/e2e/configuration/activation.e2e.test.js +130 -0
  5. package/dist/__tests__/e2e/configuration/activation.e2e.test.js.map +1 -0
  6. package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.d.ts +2 -0
  7. package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.d.ts.map +1 -0
  8. package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.js +125 -0
  9. package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.js.map +1 -0
  10. package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.d.ts +2 -0
  11. package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.d.ts.map +1 -0
  12. package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.js +262 -0
  13. package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.js.map +1 -0
  14. package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.d.ts +2 -0
  15. package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.d.ts.map +1 -0
  16. package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.js +243 -0
  17. package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.js.map +1 -0
  18. package/dist/__tests__/e2e/configuration/preActivation.e2e.test.d.ts +2 -0
  19. package/dist/__tests__/e2e/configuration/preActivation.e2e.test.d.ts.map +1 -0
  20. package/dist/__tests__/e2e/configuration/preActivation.e2e.test.js +123 -0
  21. package/dist/__tests__/e2e/configuration/preActivation.e2e.test.js.map +1 -0
  22. package/dist/__tests__/e2e/crud/createObject.e2e.test.d.ts +2 -0
  23. package/dist/__tests__/e2e/crud/createObject.e2e.test.d.ts.map +1 -0
  24. package/dist/__tests__/e2e/crud/createObject.e2e.test.js +376 -0
  25. package/dist/__tests__/e2e/crud/createObject.e2e.test.js.map +1 -0
  26. package/dist/__tests__/e2e/crud/deleteObject.e2e.test.d.ts +2 -0
  27. package/dist/__tests__/e2e/crud/deleteObject.e2e.test.d.ts.map +1 -0
  28. package/dist/__tests__/e2e/crud/deleteObject.e2e.test.js +391 -0
  29. package/dist/__tests__/e2e/crud/deleteObject.e2e.test.js.map +1 -0
  30. package/dist/__tests__/e2e/crud/fileValidation.e2e.test.d.ts +2 -0
  31. package/dist/__tests__/e2e/crud/fileValidation.e2e.test.d.ts.map +1 -0
  32. package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js +409 -0
  33. package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js.map +1 -0
  34. package/dist/__tests__/e2e/crud/getObject.e2e.test.d.ts +2 -0
  35. package/dist/__tests__/e2e/crud/getObject.e2e.test.d.ts.map +1 -0
  36. package/dist/__tests__/e2e/crud/getObject.e2e.test.js +447 -0
  37. package/dist/__tests__/e2e/crud/getObject.e2e.test.js.map +1 -0
  38. package/dist/__tests__/e2e/crud/listObjects.e2e.test.d.ts +2 -0
  39. package/dist/__tests__/e2e/crud/listObjects.e2e.test.d.ts.map +1 -0
  40. package/dist/__tests__/e2e/crud/listObjects.e2e.test.js +593 -0
  41. package/dist/__tests__/e2e/crud/listObjects.e2e.test.js.map +1 -0
  42. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts +2 -0
  43. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts.map +1 -0
  44. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js +693 -0
  45. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js.map +1 -0
  46. package/dist/__tests__/e2e/crud/updateObject.e2e.test.d.ts +2 -0
  47. package/dist/__tests__/e2e/crud/updateObject.e2e.test.d.ts.map +1 -0
  48. package/dist/__tests__/e2e/crud/updateObject.e2e.test.js +662 -0
  49. package/dist/__tests__/e2e/crud/updateObject.e2e.test.js.map +1 -0
  50. package/dist/__tests__/e2e/infrastructure/client.e2e.test.d.ts +2 -0
  51. package/dist/__tests__/e2e/infrastructure/client.e2e.test.d.ts.map +1 -0
  52. package/dist/__tests__/e2e/infrastructure/client.e2e.test.js +68 -0
  53. package/dist/__tests__/e2e/infrastructure/client.e2e.test.js.map +1 -0
  54. package/dist/__tests__/e2e/infrastructure/server.e2e.test.d.ts +2 -0
  55. package/dist/__tests__/e2e/infrastructure/server.e2e.test.d.ts.map +1 -0
  56. package/dist/__tests__/e2e/infrastructure/server.e2e.test.js +37 -0
  57. package/dist/__tests__/e2e/infrastructure/server.e2e.test.js.map +1 -0
  58. package/dist/__tests__/e2e/utils/HierarchyOptions.d.ts +7 -0
  59. package/dist/__tests__/e2e/utils/HierarchyOptions.d.ts.map +1 -0
  60. package/dist/__tests__/e2e/utils/HierarchyOptions.js +3 -0
  61. package/dist/__tests__/e2e/utils/HierarchyOptions.js.map +1 -0
  62. package/dist/__tests__/e2e/utils/ObjectData.d.ts +17 -0
  63. package/dist/__tests__/e2e/utils/ObjectData.d.ts.map +1 -0
  64. package/dist/__tests__/e2e/utils/ObjectData.js +3 -0
  65. package/dist/__tests__/e2e/utils/ObjectData.js.map +1 -0
  66. package/dist/__tests__/e2e/utils/cleanup.d.ts +10 -0
  67. package/dist/__tests__/e2e/utils/cleanup.d.ts.map +1 -0
  68. package/dist/__tests__/e2e/utils/cleanup.js +99 -0
  69. package/dist/__tests__/e2e/utils/cleanup.js.map +1 -0
  70. package/dist/__tests__/e2e/utils/createObjectContent.d.ts +6 -0
  71. package/dist/__tests__/e2e/utils/createObjectContent.d.ts.map +1 -0
  72. package/dist/__tests__/e2e/utils/createObjectContent.js +34 -0
  73. package/dist/__tests__/e2e/utils/createObjectContent.js.map +1 -0
  74. package/dist/__tests__/e2e/utils/createObjectFile.d.ts +6 -0
  75. package/dist/__tests__/e2e/utils/createObjectFile.d.ts.map +1 -0
  76. package/dist/__tests__/e2e/utils/createObjectFile.js +88 -0
  77. package/dist/__tests__/e2e/utils/createObjectFile.js.map +1 -0
  78. package/dist/__tests__/e2e/utils/fileExists.d.ts +5 -0
  79. package/dist/__tests__/e2e/utils/fileExists.d.ts.map +1 -0
  80. package/dist/__tests__/e2e/utils/fileExists.js +52 -0
  81. package/dist/__tests__/e2e/utils/fileExists.js.map +1 -0
  82. package/dist/__tests__/e2e/utils/folderExists.d.ts +5 -0
  83. package/dist/__tests__/e2e/utils/folderExists.d.ts.map +1 -0
  84. package/dist/__tests__/e2e/utils/folderExists.js +52 -0
  85. package/dist/__tests__/e2e/utils/folderExists.js.map +1 -0
  86. package/dist/__tests__/e2e/utils/index.d.ts +15 -0
  87. package/dist/__tests__/e2e/utils/index.d.ts.map +1 -0
  88. package/dist/__tests__/e2e/utils/index.js +32 -0
  89. package/dist/__tests__/e2e/utils/index.js.map +1 -0
  90. package/dist/__tests__/e2e/utils/mcpTestClient.d.ts +13 -0
  91. package/dist/__tests__/e2e/utils/mcpTestClient.d.ts.map +1 -0
  92. package/dist/__tests__/e2e/utils/mcpTestClient.js +79 -0
  93. package/dist/__tests__/e2e/utils/mcpTestClient.js.map +1 -0
  94. package/dist/__tests__/e2e/utils/parseGetObjectResponse.d.ts +5 -0
  95. package/dist/__tests__/e2e/utils/parseGetObjectResponse.d.ts.map +1 -0
  96. package/dist/__tests__/e2e/utils/parseGetObjectResponse.js +15 -0
  97. package/dist/__tests__/e2e/utils/parseGetObjectResponse.js.map +1 -0
  98. package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts +5 -0
  99. package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts.map +1 -0
  100. package/dist/__tests__/e2e/utils/parseListObjectsResponse.js +15 -0
  101. package/dist/__tests__/e2e/utils/parseListObjectsResponse.js.map +1 -0
  102. package/dist/__tests__/e2e/utils/parseReplaceObjectBodyRegexResponse.d.ts +10 -0
  103. package/dist/__tests__/e2e/utils/parseReplaceObjectBodyRegexResponse.d.ts.map +1 -0
  104. package/dist/__tests__/e2e/utils/parseReplaceObjectBodyRegexResponse.js +40 -0
  105. package/dist/__tests__/e2e/utils/parseReplaceObjectBodyRegexResponse.js.map +1 -0
  106. package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.d.ts +5 -0
  107. package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.d.ts.map +1 -0
  108. package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.js +15 -0
  109. package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.js.map +1 -0
  110. package/dist/__tests__/e2e/utils/pathExists.d.ts +5 -0
  111. package/dist/__tests__/e2e/utils/pathExists.d.ts.map +1 -0
  112. package/dist/__tests__/e2e/utils/pathExists.js +50 -0
  113. package/dist/__tests__/e2e/utils/pathExists.js.map +1 -0
  114. package/dist/__tests__/e2e/utils/readObjectFile.d.ts +10 -0
  115. package/dist/__tests__/e2e/utils/readObjectFile.d.ts.map +1 -0
  116. package/dist/__tests__/e2e/utils/readObjectFile.js +54 -0
  117. package/dist/__tests__/e2e/utils/readObjectFile.js.map +1 -0
  118. package/dist/__tests__/e2e/utils/serverProcess.d.ts +11 -0
  119. package/dist/__tests__/e2e/utils/serverProcess.d.ts.map +1 -0
  120. package/dist/__tests__/e2e/utils/serverProcess.js +119 -0
  121. package/dist/__tests__/e2e/utils/serverProcess.js.map +1 -0
  122. package/dist/__tests__/e2e/utils/testEnvironment.d.ts +9 -0
  123. package/dist/__tests__/e2e/utils/testEnvironment.d.ts.map +1 -0
  124. package/dist/__tests__/e2e/utils/testEnvironment.js +74 -0
  125. package/dist/__tests__/e2e/utils/testEnvironment.js.map +1 -0
  126. package/dist/__tests__/e2e/workflow/appendLog.e2e.test.d.ts +2 -0
  127. package/dist/__tests__/e2e/workflow/appendLog.e2e.test.d.ts.map +1 -0
  128. package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js +175 -0
  129. package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js.map +1 -0
  130. package/dist/__tests__/e2e/workflow/claimTask.e2e.test.d.ts +2 -0
  131. package/dist/__tests__/e2e/workflow/claimTask.e2e.test.d.ts.map +1 -0
  132. package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js +154 -0
  133. package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js.map +1 -0
  134. package/dist/__tests__/e2e/workflow/completeTask.e2e.test.d.ts +2 -0
  135. package/dist/__tests__/e2e/workflow/completeTask.e2e.test.d.ts.map +1 -0
  136. package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js +129 -0
  137. package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js.map +1 -0
  138. package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.d.ts +2 -0
  139. package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.d.ts.map +1 -0
  140. package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js +547 -0
  141. package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js.map +1 -0
  142. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts +2 -0
  143. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts.map +1 -0
  144. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js +352 -0
  145. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js.map +1 -0
  146. package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.d.ts +2 -0
  147. package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.d.ts.map +1 -0
  148. package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js +385 -0
  149. package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js.map +1 -0
  150. package/dist/models/TrellisObject.d.ts +2 -0
  151. package/dist/models/TrellisObject.d.ts.map +1 -1
  152. package/dist/models/__tests__/isClaimable.test.js +8 -0
  153. package/dist/models/__tests__/isClaimable.test.js.map +1 -1
  154. package/dist/models/__tests__/isClosed.test.js +6 -0
  155. package/dist/models/__tests__/isClosed.test.js.map +1 -1
  156. package/dist/models/__tests__/isOpen.test.js +6 -0
  157. package/dist/models/__tests__/isOpen.test.js.map +1 -1
  158. package/dist/repositories/local/__tests__/getChildrenByFilePath.test.d.ts +2 -0
  159. package/dist/repositories/local/__tests__/getChildrenByFilePath.test.d.ts.map +1 -0
  160. package/dist/repositories/local/__tests__/getChildrenByFilePath.test.js +118 -0
  161. package/dist/repositories/local/__tests__/getChildrenByFilePath.test.js.map +1 -0
  162. package/dist/repositories/local/__tests__/getObjectByFilePath.test.js +13 -1
  163. package/dist/repositories/local/__tests__/getObjectByFilePath.test.js.map +1 -1
  164. package/dist/repositories/local/__tests__/getObjectById.test.js +2 -0
  165. package/dist/repositories/local/__tests__/getObjectById.test.js.map +1 -1
  166. package/dist/repositories/local/__tests__/getObjectFilePath.test.js +2 -0
  167. package/dist/repositories/local/__tests__/getObjectFilePath.test.js.map +1 -1
  168. package/dist/repositories/local/deleteObjectById.js +2 -2
  169. package/dist/repositories/local/deleteObjectById.js.map +1 -1
  170. package/dist/repositories/local/findMarkdownFiles.d.ts.map +1 -1
  171. package/dist/repositories/local/findMarkdownFiles.js +6 -1
  172. package/dist/repositories/local/findMarkdownFiles.js.map +1 -1
  173. package/dist/repositories/local/getChildrenByFilePath.d.ts +14 -0
  174. package/dist/repositories/local/getChildrenByFilePath.d.ts.map +1 -0
  175. package/dist/repositories/local/getChildrenByFilePath.js +93 -0
  176. package/dist/repositories/local/getChildrenByFilePath.js.map +1 -0
  177. package/dist/repositories/local/getObjectByFilePath.d.ts.map +1 -1
  178. package/dist/repositories/local/getObjectByFilePath.js +5 -1
  179. package/dist/repositories/local/getObjectByFilePath.js.map +1 -1
  180. package/dist/repositories/local/getObjectById.d.ts.map +1 -1
  181. package/dist/repositories/local/getObjectById.js +4 -1
  182. package/dist/repositories/local/getObjectById.js.map +1 -1
  183. package/dist/repositories/local/getObjects.js +1 -1
  184. package/dist/repositories/local/getObjects.js.map +1 -1
  185. package/dist/repositories/local/saveObject.d.ts +1 -0
  186. package/dist/repositories/local/saveObject.d.ts.map +1 -1
  187. package/dist/repositories/local/saveObject.js +46 -0
  188. package/dist/repositories/local/saveObject.js.map +1 -1
  189. package/dist/server.js +52 -17
  190. package/dist/server.js.map +1 -1
  191. package/dist/tools/__tests__/appendObjectLogTool.test.js +2 -0
  192. package/dist/tools/__tests__/appendObjectLogTool.test.js.map +1 -1
  193. package/dist/tools/__tests__/claimTaskTool.test.js +4 -0
  194. package/dist/tools/__tests__/claimTaskTool.test.js.map +1 -1
  195. package/dist/tools/__tests__/completeTaskTool.test.js +2 -0
  196. package/dist/tools/__tests__/completeTaskTool.test.js.map +1 -1
  197. package/dist/tools/__tests__/createObjectTool.test.js +18 -0
  198. package/dist/tools/__tests__/createObjectTool.test.js.map +1 -1
  199. package/dist/tools/__tests__/getObjectTool.test.js +4 -0
  200. package/dist/tools/__tests__/getObjectTool.test.js.map +1 -1
  201. package/dist/tools/__tests__/listObjectsTool.test.js +4 -0
  202. package/dist/tools/__tests__/listObjectsTool.test.js.map +1 -1
  203. package/dist/tools/__tests__/pruneClosedTool.test.d.ts +2 -0
  204. package/dist/tools/__tests__/pruneClosedTool.test.d.ts.map +1 -0
  205. package/dist/tools/__tests__/pruneClosedTool.test.js +171 -0
  206. package/dist/tools/__tests__/pruneClosedTool.test.js.map +1 -0
  207. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts +2 -0
  208. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts.map +1 -0
  209. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js +258 -0
  210. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js.map +1 -0
  211. package/dist/tools/__tests__/updateObjectTool.test.js +2 -0
  212. package/dist/tools/__tests__/updateObjectTool.test.js.map +1 -1
  213. package/dist/tools/activateTool.d.ts +1 -1
  214. package/dist/tools/activateTool.d.ts.map +1 -1
  215. package/dist/tools/activateTool.js +35 -1
  216. package/dist/tools/activateTool.js.map +1 -1
  217. package/dist/tools/appendObjectLogTool.d.ts +1 -1
  218. package/dist/tools/appendObjectLogTool.d.ts.map +1 -1
  219. package/dist/tools/appendObjectLogTool.js +27 -1
  220. package/dist/tools/appendObjectLogTool.js.map +1 -1
  221. package/dist/tools/claimTaskTool.d.ts +1 -1
  222. package/dist/tools/claimTaskTool.d.ts.map +1 -1
  223. package/dist/tools/claimTaskTool.js +34 -5
  224. package/dist/tools/claimTaskTool.js.map +1 -1
  225. package/dist/tools/completeTaskTool.d.ts +1 -1
  226. package/dist/tools/completeTaskTool.d.ts.map +1 -1
  227. package/dist/tools/completeTaskTool.js +30 -1
  228. package/dist/tools/completeTaskTool.js.map +1 -1
  229. package/dist/tools/createObjectTool.d.ts +1 -1
  230. package/dist/tools/createObjectTool.d.ts.map +1 -1
  231. package/dist/tools/createObjectTool.js +43 -2
  232. package/dist/tools/createObjectTool.js.map +1 -1
  233. package/dist/tools/deleteObjectTool.d.ts +1 -1
  234. package/dist/tools/deleteObjectTool.d.ts.map +1 -1
  235. package/dist/tools/deleteObjectTool.js +23 -1
  236. package/dist/tools/deleteObjectTool.js.map +1 -1
  237. package/dist/tools/getObjectTool.d.ts +1 -1
  238. package/dist/tools/getObjectTool.d.ts.map +1 -1
  239. package/dist/tools/getObjectTool.js +21 -1
  240. package/dist/tools/getObjectTool.js.map +1 -1
  241. package/dist/tools/index.d.ts +1 -0
  242. package/dist/tools/index.d.ts.map +1 -1
  243. package/dist/tools/index.js +4 -1
  244. package/dist/tools/index.js.map +1 -1
  245. package/dist/tools/listObjectsTool.d.ts +1 -1
  246. package/dist/tools/listObjectsTool.d.ts.map +1 -1
  247. package/dist/tools/listObjectsTool.js +37 -1
  248. package/dist/tools/listObjectsTool.js.map +1 -1
  249. package/dist/tools/pruneClosedTool.d.ts +3 -3
  250. package/dist/tools/pruneClosedTool.d.ts.map +1 -1
  251. package/dist/tools/pruneClosedTool.js +82 -11
  252. package/dist/tools/pruneClosedTool.js.map +1 -1
  253. package/dist/tools/replaceObjectBodyRegexTool.d.ts +35 -0
  254. package/dist/tools/replaceObjectBodyRegexTool.d.ts.map +1 -0
  255. package/dist/tools/replaceObjectBodyRegexTool.js +145 -0
  256. package/dist/tools/replaceObjectBodyRegexTool.js.map +1 -0
  257. package/dist/tools/updateObjectTool.d.ts +1 -1
  258. package/dist/tools/updateObjectTool.d.ts.map +1 -1
  259. package/dist/tools/updateObjectTool.js +35 -1
  260. package/dist/tools/updateObjectTool.js.map +1 -1
  261. package/dist/utils/MultipleMatchesError.d.ts +7 -0
  262. package/dist/utils/MultipleMatchesError.d.ts.map +1 -0
  263. package/dist/utils/MultipleMatchesError.js +15 -0
  264. package/dist/utils/MultipleMatchesError.js.map +1 -0
  265. package/dist/utils/ReplaceStringOptions.d.ts +12 -0
  266. package/dist/utils/ReplaceStringOptions.d.ts.map +1 -0
  267. package/dist/utils/ReplaceStringOptions.js +3 -0
  268. package/dist/utils/ReplaceStringOptions.js.map +1 -0
  269. package/dist/utils/__tests__/checkPrerequisitesComplete.test.js +2 -0
  270. package/dist/utils/__tests__/checkPrerequisitesComplete.test.js.map +1 -1
  271. package/dist/utils/__tests__/deserializeTrellisObject.test.js +48 -0
  272. package/dist/utils/__tests__/deserializeTrellisObject.test.js.map +1 -1
  273. package/dist/utils/__tests__/filterUnavailableObjects.test.js +11 -10
  274. package/dist/utils/__tests__/filterUnavailableObjects.test.js.map +1 -1
  275. package/dist/utils/__tests__/isRequiredForOtherObjects.test.js +2 -0
  276. package/dist/utils/__tests__/isRequiredForOtherObjects.test.js.map +1 -1
  277. package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts +2 -0
  278. package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts.map +1 -0
  279. package/dist/utils/__tests__/replaceStringWithRegex.test.js +263 -0
  280. package/dist/utils/__tests__/replaceStringWithRegex.test.js.map +1 -0
  281. package/dist/utils/__tests__/serializationRoundTrip.test.js +24 -0
  282. package/dist/utils/__tests__/serializationRoundTrip.test.js.map +1 -1
  283. package/dist/utils/__tests__/serializeTrellisObject.test.js +40 -0
  284. package/dist/utils/__tests__/serializeTrellisObject.test.js.map +1 -1
  285. package/dist/utils/__tests__/sortTrellisObjects.test.js +2 -0
  286. package/dist/utils/__tests__/sortTrellisObjects.test.js.map +1 -1
  287. package/dist/utils/checkPrerequisitesComplete.d.ts.map +1 -1
  288. package/dist/utils/checkPrerequisitesComplete.js +3 -4
  289. package/dist/utils/checkPrerequisitesComplete.js.map +1 -1
  290. package/dist/utils/deserializeTrellisObject.d.ts.map +1 -1
  291. package/dist/utils/deserializeTrellisObject.js +5 -0
  292. package/dist/utils/deserializeTrellisObject.js.map +1 -1
  293. package/dist/utils/filterUnavailableObjects.d.ts.map +1 -1
  294. package/dist/utils/filterUnavailableObjects.js +5 -6
  295. package/dist/utils/filterUnavailableObjects.js.map +1 -1
  296. package/dist/utils/index.d.ts +3 -0
  297. package/dist/utils/index.d.ts.map +1 -1
  298. package/dist/utils/index.js +5 -1
  299. package/dist/utils/index.js.map +1 -1
  300. package/dist/utils/isRequiredForOtherObjects.d.ts.map +1 -1
  301. package/dist/utils/isRequiredForOtherObjects.js +2 -4
  302. package/dist/utils/isRequiredForOtherObjects.js.map +1 -1
  303. package/dist/utils/replaceStringWithRegex.d.ts +45 -0
  304. package/dist/utils/replaceStringWithRegex.d.ts.map +1 -0
  305. package/dist/utils/replaceStringWithRegex.js +82 -0
  306. package/dist/utils/replaceStringWithRegex.js.map +1 -0
  307. package/dist/utils/serializeTrellisObject.d.ts.map +1 -1
  308. package/dist/utils/serializeTrellisObject.js +3 -0
  309. package/dist/utils/serializeTrellisObject.js.map +1 -1
  310. package/dist/validation/__tests__/validateObjectCreation.test.js +2 -0
  311. package/dist/validation/__tests__/validateObjectCreation.test.js.map +1 -1
  312. package/dist/validation/__tests__/validateParentExists.test.js +2 -0
  313. package/dist/validation/__tests__/validateParentExists.test.js.map +1 -1
  314. package/dist/validation/__tests__/validateStatusTransition.test.js +2 -0
  315. package/dist/validation/__tests__/validateStatusTransition.test.js.map +1 -1
  316. package/package.json +8 -3
@@ -0,0 +1,391 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const utils_1 = require("../utils");
37
+ describe("E2E CRUD - deleteObject", () => {
38
+ let testEnv;
39
+ let client;
40
+ beforeEach(async () => {
41
+ testEnv = new utils_1.TestEnvironment();
42
+ testEnv.setup();
43
+ client = new utils_1.McpTestClient(testEnv.projectRoot);
44
+ await client.connect();
45
+ // Activate server in local mode
46
+ await client.callTool("activate", {
47
+ mode: "local",
48
+ projectRoot: testEnv.projectRoot,
49
+ });
50
+ }, 30000);
51
+ afterEach(async () => {
52
+ await client?.disconnect();
53
+ testEnv?.cleanup();
54
+ });
55
+ // Helper function to create object file manually
56
+ async function createObjectFile(id, kind, title, options = {}) {
57
+ const data = {
58
+ id,
59
+ title,
60
+ kind,
61
+ ...options,
62
+ body: options.description,
63
+ };
64
+ const content = (0, utils_1.createObjectContent)(data);
65
+ let objectType;
66
+ if (kind === "project") {
67
+ objectType = "project";
68
+ }
69
+ else if (kind === "epic") {
70
+ objectType = "epic";
71
+ }
72
+ else if (kind === "feature") {
73
+ objectType = "feature";
74
+ }
75
+ else if (kind === "task") {
76
+ objectType = "task";
77
+ }
78
+ // Use existing createObjectFile utility
79
+ const { createObjectFile: utilCreateObjectFile } = await Promise.resolve().then(() => __importStar(require("../utils")));
80
+ const hierarchy = {
81
+ projectId: kind === "epic" ? options.parent : undefined,
82
+ featureId: kind === "task" ? options.parent : undefined,
83
+ status: options.status === "done" || options.status === "wont-do"
84
+ ? "closed"
85
+ : "open",
86
+ };
87
+ await utilCreateObjectFile(testEnv.projectRoot, objectType, id, content, hierarchy);
88
+ }
89
+ describe("Standalone Object Deletion", () => {
90
+ it("should delete standalone project and verify complete cleanup", async () => {
91
+ // Create project
92
+ await createObjectFile("P-test-project", "project", "Test Project");
93
+ // Verify existence
94
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "p/P-test-project/P-test-project.md")).toBe(true);
95
+ expect(await (0, utils_1.folderExists)(testEnv.projectRoot, "p/P-test-project")).toBe(true);
96
+ // Delete project
97
+ const result = await client.callTool("delete_object", {
98
+ id: "P-test-project",
99
+ });
100
+ // Verify deletion response
101
+ expect(result.content[0].type).toBe("text");
102
+ expect(result.content[0].text).toBe("Successfully deleted object: P-test-project");
103
+ // Verify complete file system cleanup
104
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "p/P-test-project/P-test-project.md")).toBe(false);
105
+ expect(await (0, utils_1.folderExists)(testEnv.projectRoot, "p/P-test-project")).toBe(false);
106
+ });
107
+ it("should delete standalone epic and verify complete cleanup", async () => {
108
+ // Create project first, then epic
109
+ await createObjectFile("P-parent-project", "project", "Parent Project");
110
+ await createObjectFile("E-test-epic", "epic", "Test Epic", {
111
+ parent: "P-parent-project",
112
+ });
113
+ // Verify existence
114
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "p/P-parent-project/e/E-test-epic/E-test-epic.md")).toBe(true);
115
+ expect(await (0, utils_1.folderExists)(testEnv.projectRoot, "p/P-parent-project/e/E-test-epic")).toBe(true);
116
+ // Delete epic
117
+ const result = await client.callTool("delete_object", {
118
+ id: "E-test-epic",
119
+ });
120
+ // Verify deletion
121
+ expect(result.content[0].text).toBe("Successfully deleted object: E-test-epic");
122
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "p/P-parent-project/e/E-test-epic/E-test-epic.md")).toBe(false);
123
+ expect(await (0, utils_1.folderExists)(testEnv.projectRoot, "p/P-parent-project/e/E-test-epic")).toBe(false);
124
+ });
125
+ it("should delete standalone feature and verify complete cleanup", async () => {
126
+ // Create standalone feature
127
+ await createObjectFile("F-test-feature", "feature", "Test Feature");
128
+ // Verify existence
129
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "f/F-test-feature/F-test-feature.md")).toBe(true);
130
+ expect(await (0, utils_1.folderExists)(testEnv.projectRoot, "f/F-test-feature")).toBe(true);
131
+ // Delete feature
132
+ const result = await client.callTool("delete_object", {
133
+ id: "F-test-feature",
134
+ });
135
+ // Verify deletion
136
+ expect(result.content[0].text).toBe("Successfully deleted object: F-test-feature");
137
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "f/F-test-feature/F-test-feature.md")).toBe(false);
138
+ expect(await (0, utils_1.folderExists)(testEnv.projectRoot, "f/F-test-feature")).toBe(false);
139
+ });
140
+ it("should delete standalone task and verify file removal", async () => {
141
+ // Create standalone task
142
+ await createObjectFile("T-test-task", "task", "Test Task", {
143
+ status: "open",
144
+ });
145
+ // Verify existence
146
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/open/T-test-task.md")).toBe(true);
147
+ // Delete task
148
+ const result = await client.callTool("delete_object", {
149
+ id: "T-test-task",
150
+ });
151
+ // Verify deletion
152
+ expect(result.content[0].text).toBe("Successfully deleted object: T-test-task");
153
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/open/T-test-task.md")).toBe(false);
154
+ });
155
+ it("should delete closed task and verify file removal", async () => {
156
+ // Create closed task
157
+ await createObjectFile("T-closed-task", "task", "Closed Task", {
158
+ status: "done",
159
+ });
160
+ // Verify existence
161
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/closed/T-closed-task.md")).toBe(true);
162
+ // Delete task
163
+ const result = await client.callTool("delete_object", {
164
+ id: "T-closed-task",
165
+ });
166
+ // Verify deletion
167
+ expect(result.content[0].text).toBe("Successfully deleted object: T-closed-task");
168
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/closed/T-closed-task.md")).toBe(false);
169
+ });
170
+ });
171
+ describe("Dependency Validation", () => {
172
+ it("should prevent deletion of object with dependents without force", async () => {
173
+ // Create prerequisite task
174
+ await createObjectFile("T-prerequisite", "task", "Prerequisite Task", {
175
+ status: "done",
176
+ });
177
+ // Create dependent task
178
+ await createObjectFile("T-dependent", "task", "Dependent Task", {
179
+ status: "open",
180
+ prerequisites: ["T-prerequisite"],
181
+ });
182
+ // Attempt deletion without force
183
+ const result = await client.callTool("delete_object", {
184
+ id: "T-prerequisite",
185
+ });
186
+ // Verify prevention
187
+ expect(result.content[0].text).toContain("Error deleting object");
188
+ expect(result.content[0].text).toContain("required by other objects");
189
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/closed/T-prerequisite.md")).toBe(true);
190
+ });
191
+ it("should allow deletion with force flag despite dependencies", async () => {
192
+ // Create prerequisite and dependent tasks
193
+ await createObjectFile("T-force-prereq", "task", "Force Prerequisite", {
194
+ status: "done",
195
+ });
196
+ await createObjectFile("T-force-dependent", "task", "Force Dependent", {
197
+ status: "open",
198
+ prerequisites: ["T-force-prereq"],
199
+ });
200
+ // Delete with force
201
+ const result = await client.callTool("delete_object", {
202
+ id: "T-force-prereq",
203
+ force: true,
204
+ });
205
+ // Verify successful deletion
206
+ expect(result.content[0].text).toBe("Successfully deleted object: T-force-prereq");
207
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/closed/T-force-prereq.md")).toBe(false);
208
+ });
209
+ it("should allow deletion of dependent before prerequisite", async () => {
210
+ // Create prerequisite and dependent
211
+ await createObjectFile("T-prereq-safe", "task", "Safe Prerequisite", {
212
+ status: "done",
213
+ });
214
+ await createObjectFile("T-dependent-first", "task", "Dependent First", {
215
+ status: "open",
216
+ prerequisites: ["T-prereq-safe"],
217
+ });
218
+ // Delete dependent first
219
+ const dependentResult = await client.callTool("delete_object", {
220
+ id: "T-dependent-first",
221
+ });
222
+ expect(dependentResult.content[0].text).toBe("Successfully deleted object: T-dependent-first");
223
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/open/T-dependent-first.md")).toBe(false);
224
+ // Now delete prerequisite (should work without force)
225
+ const prereqResult = await client.callTool("delete_object", {
226
+ id: "T-prereq-safe",
227
+ });
228
+ expect(prereqResult.content[0].text).toBe("Successfully deleted object: T-prereq-safe");
229
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/closed/T-prereq-safe.md")).toBe(false);
230
+ });
231
+ });
232
+ describe("Error Handling", () => {
233
+ it("should handle non-existent object IDs gracefully", async () => {
234
+ const result = await client.callTool("delete_object", {
235
+ id: "P-nonexistent",
236
+ });
237
+ expect(result.content[0].text).toContain("Error deleting object");
238
+ expect(result.content[0].text).toContain("No object found");
239
+ });
240
+ it("should handle malformed object IDs", async () => {
241
+ const malformedIds = [
242
+ "invalid-id",
243
+ "X-unknown-prefix",
244
+ "",
245
+ "P-", // Missing slug
246
+ ];
247
+ for (const id of malformedIds) {
248
+ const result = await client.callTool("delete_object", { id });
249
+ expect(result.content[0].text).toContain("Error");
250
+ }
251
+ });
252
+ it("should handle special characters in object content gracefully", async () => {
253
+ // Create task with special characters in content
254
+ await createObjectFile("T-special-chars", "task", "Task with Special Characters", {
255
+ status: "open",
256
+ description: "Content with unicode: 🚀 and special chars: <>&\"'",
257
+ });
258
+ // Verify creation
259
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/open/T-special-chars.md")).toBe(true);
260
+ // Delete should work normally
261
+ const result = await client.callTool("delete_object", {
262
+ id: "T-special-chars",
263
+ });
264
+ expect(result.content[0].text).toBe("Successfully deleted object: T-special-chars");
265
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/open/T-special-chars.md")).toBe(false);
266
+ });
267
+ });
268
+ describe("Hierarchical Object Deletion", () => {
269
+ it("should delete task from hierarchy maintaining parent structure", async () => {
270
+ // Create complete hierarchy: Project -> Epic -> Feature -> Task
271
+ const projectId = "P-hierarchy-project";
272
+ const epicId = "E-hierarchy-epic";
273
+ const featureId = "F-hierarchy-feature";
274
+ const taskId = "T-hierarchy-task";
275
+ // Create objects in hierarchy
276
+ await createObjectFile(projectId, "project", "Hierarchy Project");
277
+ await createObjectFile(epicId, "epic", "Hierarchy Epic", {
278
+ parent: projectId,
279
+ });
280
+ await createObjectFile(featureId, "feature", "Hierarchy Feature", {
281
+ parent: epicId,
282
+ });
283
+ await createObjectFile(taskId, "task", "Hierarchy Task", {
284
+ parent: featureId,
285
+ status: "open",
286
+ });
287
+ // Delete task from hierarchy
288
+ const result = await client.callTool("delete_object", {
289
+ id: taskId,
290
+ });
291
+ // Verify task deleted but hierarchy intact
292
+ expect(result.content[0].text).toBe(`Successfully deleted object: ${taskId}`);
293
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `f/${featureId}/t/open/${taskId}.md`)).toBe(false);
294
+ expect(await (0, utils_1.folderExists)(testEnv.projectRoot, `f/${featureId}`)).toBe(true);
295
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `f/${featureId}/${featureId}.md`)).toBe(true);
296
+ });
297
+ it("should delete feature and verify parent epic remains", async () => {
298
+ // Create hierarchy
299
+ const projectId = "P-feature-delete-project";
300
+ const epicId = "E-feature-delete-epic";
301
+ const featureId = "F-feature-delete-target";
302
+ await createObjectFile(projectId, "project", "Feature Delete Project");
303
+ await createObjectFile(epicId, "epic", "Feature Delete Epic", {
304
+ parent: projectId,
305
+ });
306
+ await createObjectFile(featureId, "feature", "Feature Delete Target", {
307
+ parent: epicId,
308
+ });
309
+ // Delete feature
310
+ const result = await client.callTool("delete_object", {
311
+ id: featureId,
312
+ });
313
+ // Verify feature deleted, epic remains
314
+ expect(result.content[0].text).toBe(`Successfully deleted object: ${featureId}`);
315
+ expect(await (0, utils_1.folderExists)(testEnv.projectRoot, `f/${featureId}`)).toBe(false);
316
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `p/${projectId}/e/${epicId}/${epicId}.md`)).toBe(true);
317
+ });
318
+ });
319
+ describe("Complex Deletion Scenarios", () => {
320
+ it("should handle multiple prerequisites correctly", async () => {
321
+ // Create multiple prerequisites
322
+ await createObjectFile("T-multi-prereq-1", "task", "Multi Prereq 1", {
323
+ status: "done",
324
+ });
325
+ await createObjectFile("T-multi-prereq-2", "task", "Multi Prereq 2", {
326
+ status: "done",
327
+ });
328
+ // Create task with multiple prerequisites
329
+ await createObjectFile("T-multi-dependent", "task", "Multi Dependent", {
330
+ status: "open",
331
+ prerequisites: ["T-multi-prereq-1", "T-multi-prereq-2"],
332
+ });
333
+ // Try to delete one prerequisite without force
334
+ const result1 = await client.callTool("delete_object", {
335
+ id: "T-multi-prereq-1",
336
+ });
337
+ expect(result1.content[0].text).toContain("Error");
338
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/closed/T-multi-prereq-1.md")).toBe(true);
339
+ // Delete with force should work
340
+ const result2 = await client.callTool("delete_object", {
341
+ id: "T-multi-prereq-1",
342
+ force: true,
343
+ });
344
+ expect(result2.content[0].text).toBe("Successfully deleted object: T-multi-prereq-1");
345
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/closed/T-multi-prereq-1.md")).toBe(false);
346
+ });
347
+ it("should maintain file system integrity after failed deletion", async () => {
348
+ // Create objects that will cause deletion to fail
349
+ await createObjectFile("T-integrity-prereq", "task", "Integrity Prereq", {
350
+ status: "done",
351
+ });
352
+ await createObjectFile("T-integrity-dependent", "task", "Integrity Dependent", {
353
+ status: "open",
354
+ prerequisites: ["T-integrity-prereq"],
355
+ });
356
+ // Try deletion that will fail
357
+ const result = await client.callTool("delete_object", {
358
+ id: "T-integrity-prereq",
359
+ });
360
+ // Verify failure
361
+ expect(result.content[0].text).toContain("Error");
362
+ // Verify original files still exist and are intact
363
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/closed/T-integrity-prereq.md")).toBe(true);
364
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/open/T-integrity-dependent.md")).toBe(true);
365
+ });
366
+ it("should handle concurrent deletion attempts gracefully", async () => {
367
+ // Create task for concurrent test
368
+ await createObjectFile("T-concurrent", "task", "Concurrent Task", {
369
+ status: "open",
370
+ });
371
+ // Verify creation
372
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/open/T-concurrent.md")).toBe(true);
373
+ // Simulate concurrent deletion attempts (second will fail as file won't exist)
374
+ const results = await Promise.allSettled([
375
+ client.callTool("delete_object", { id: "T-concurrent" }),
376
+ client.callTool("delete_object", { id: "T-concurrent" }),
377
+ ]);
378
+ // At least one should succeed, others should fail gracefully
379
+ const responses = results
380
+ .filter((r) => r.status === "fulfilled")
381
+ .map((r) => r.value.content[0].text);
382
+ const successes = responses.filter((text) => text.includes("Successfully"));
383
+ const errors = responses.filter((text) => text.includes("Error"));
384
+ expect(successes.length).toBeGreaterThanOrEqual(1);
385
+ expect(errors.length).toBeGreaterThanOrEqual(0);
386
+ // File should be gone
387
+ expect(await (0, utils_1.fileExists)(testEnv.projectRoot, "t/open/T-concurrent.md")).toBe(false);
388
+ });
389
+ });
390
+ });
391
+ //# sourceMappingURL=deleteObject.e2e.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteObject.e2e.test.js","sourceRoot":"","sources":["../../../../src/__tests__/e2e/crud/deleteObject.e2e.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fileValidation.e2e.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileValidation.e2e.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/e2e/crud/fileValidation.e2e.test.ts"],"names":[],"mappings":""}