@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,547 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("../utils");
4
+ describe("E2E Workflow - Prerequisites", () => {
5
+ let testEnv;
6
+ let client;
7
+ beforeEach(async () => {
8
+ testEnv = new utils_1.TestEnvironment();
9
+ testEnv.setup();
10
+ client = new utils_1.McpTestClient(testEnv.projectRoot);
11
+ await client.connect();
12
+ await client.callTool("activate", {
13
+ mode: "local",
14
+ projectRoot: testEnv.projectRoot,
15
+ });
16
+ }, 30000);
17
+ afterEach(async () => {
18
+ await client?.disconnect();
19
+ testEnv?.cleanup();
20
+ });
21
+ describe("Simple Prerequisite Chains", () => {
22
+ it("should handle linear dependency chain A -> B -> C", async () => {
23
+ // Create tasks A, B, C with dependencies
24
+ const taskA = await client.callTool("create_object", {
25
+ type: "task",
26
+ title: "Task A - Foundation",
27
+ status: "open",
28
+ });
29
+ const taskAId = taskA.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
30
+ const taskB = await client.callTool("create_object", {
31
+ type: "task",
32
+ title: "Task B - Middle",
33
+ status: "open",
34
+ prerequisites: [taskAId],
35
+ });
36
+ const taskBId = taskB.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
37
+ const taskC = await client.callTool("create_object", {
38
+ type: "task",
39
+ title: "Task C - Final",
40
+ status: "open",
41
+ prerequisites: [taskBId],
42
+ });
43
+ const taskCId = taskC.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
44
+ // Try to claim C (should fail)
45
+ let result = await client.callTool("claim_task", { taskId: taskCId });
46
+ expect(result.content[0].text).toContain("Not all prerequisites");
47
+ // Try to claim B (should fail)
48
+ result = await client.callTool("claim_task", { taskId: taskBId });
49
+ expect(result.content[0].text).toContain("Not all prerequisites");
50
+ // Claim and complete A
51
+ await client.callTool("claim_task", { taskId: taskAId });
52
+ await client.callTool("complete_task", {
53
+ taskId: taskAId,
54
+ summary: "Foundation complete",
55
+ filesChanged: {},
56
+ });
57
+ // Now claim and complete B
58
+ await client.callTool("claim_task", { taskId: taskBId });
59
+ await client.callTool("complete_task", {
60
+ taskId: taskBId,
61
+ summary: "Middle layer complete",
62
+ filesChanged: {},
63
+ });
64
+ // Finally claim and complete C
65
+ result = await client.callTool("claim_task", { taskId: taskCId });
66
+ expect(result.content[0].text).toContain("Successfully claimed");
67
+ await client.callTool("complete_task", {
68
+ taskId: taskCId,
69
+ summary: "Final task complete",
70
+ filesChanged: {},
71
+ });
72
+ });
73
+ it("should handle parallel prerequisites", async () => {
74
+ // Create two independent prerequisites
75
+ const prereq1 = await client.callTool("create_object", {
76
+ type: "task",
77
+ title: "Prerequisite 1",
78
+ status: "open",
79
+ });
80
+ const prereq1Id = prereq1.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
81
+ const prereq2 = await client.callTool("create_object", {
82
+ type: "task",
83
+ title: "Prerequisite 2",
84
+ status: "open",
85
+ });
86
+ const prereq2Id = prereq2.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
87
+ // Create task depending on both
88
+ const mainTask = await client.callTool("create_object", {
89
+ type: "task",
90
+ title: "Task with Multiple Prerequisites",
91
+ status: "open",
92
+ prerequisites: [prereq1Id, prereq2Id],
93
+ });
94
+ const mainTaskId = mainTask.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
95
+ // Try to claim main task (should fail)
96
+ const failResult = await client.callTool("claim_task", {
97
+ taskId: mainTaskId,
98
+ });
99
+ expect(failResult.content[0].text).toContain("Not all prerequisites");
100
+ // Complete only prereq1
101
+ await client.callTool("claim_task", { taskId: prereq1Id });
102
+ await client.callTool("complete_task", {
103
+ taskId: prereq1Id,
104
+ summary: "First prerequisite done",
105
+ filesChanged: {},
106
+ });
107
+ // Try to claim main task (should still fail)
108
+ const failResult2 = await client.callTool("claim_task", {
109
+ taskId: mainTaskId,
110
+ });
111
+ expect(failResult2.content[0].text).toContain("Not all prerequisites");
112
+ // Complete prereq2
113
+ await client.callTool("claim_task", { taskId: prereq2Id });
114
+ await client.callTool("complete_task", {
115
+ taskId: prereq2Id,
116
+ summary: "Second prerequisite done",
117
+ filesChanged: {},
118
+ });
119
+ // Now can claim main task
120
+ const result = await client.callTool("claim_task", {
121
+ taskId: mainTaskId,
122
+ });
123
+ expect(result.content[0].text).toContain("Successfully claimed");
124
+ });
125
+ });
126
+ describe("Complex Dependency Graphs", () => {
127
+ it("should handle diamond dependency pattern", async () => {
128
+ // A
129
+ // / \
130
+ // B C
131
+ // \ /
132
+ // D
133
+ const taskA = await client.callTool("create_object", {
134
+ type: "task",
135
+ title: "Task A - Root",
136
+ status: "open",
137
+ });
138
+ const taskAId = taskA.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
139
+ const taskB = await client.callTool("create_object", {
140
+ type: "task",
141
+ title: "Task B - Left Branch",
142
+ status: "open",
143
+ prerequisites: [taskAId],
144
+ });
145
+ const taskBId = taskB.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
146
+ const taskC = await client.callTool("create_object", {
147
+ type: "task",
148
+ title: "Task C - Right Branch",
149
+ status: "open",
150
+ prerequisites: [taskAId],
151
+ });
152
+ const taskCId = taskC.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
153
+ const taskD = await client.callTool("create_object", {
154
+ type: "task",
155
+ title: "Task D - Convergence",
156
+ status: "open",
157
+ prerequisites: [taskBId, taskCId],
158
+ });
159
+ const taskDId = taskD.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
160
+ // Complete A
161
+ await client.callTool("claim_task", { taskId: taskAId });
162
+ await client.callTool("complete_task", {
163
+ taskId: taskAId,
164
+ summary: "Root complete",
165
+ filesChanged: {},
166
+ });
167
+ // B and C can now be claimed in parallel
168
+ await client.callTool("claim_task", { taskId: taskBId });
169
+ await client.callTool("claim_task", { taskId: taskCId });
170
+ // Try to claim D (should fail)
171
+ let result = await client.callTool("claim_task", { taskId: taskDId });
172
+ expect(result.content[0].text).toContain("Not all prerequisites");
173
+ // Complete B and C
174
+ await client.callTool("complete_task", {
175
+ taskId: taskBId,
176
+ summary: "Left branch complete",
177
+ filesChanged: {},
178
+ });
179
+ await client.callTool("complete_task", {
180
+ taskId: taskCId,
181
+ summary: "Right branch complete",
182
+ filesChanged: {},
183
+ });
184
+ // Now D can be claimed
185
+ result = await client.callTool("claim_task", { taskId: taskDId });
186
+ expect(result.content[0].text).toContain("Successfully claimed");
187
+ });
188
+ it("should handle cross-type dependencies", async () => {
189
+ // Create project -> epic -> feature hierarchy
190
+ const projectResult = await client.callTool("create_object", {
191
+ type: "project",
192
+ title: "Cross-Type Project",
193
+ status: "open",
194
+ });
195
+ const projectId = projectResult.content[0].text.match(/ID: (P-[a-z0-9-]+)/)[1];
196
+ const epicResult = await client.callTool("create_object", {
197
+ type: "epic",
198
+ title: "Cross-Type Epic",
199
+ parent: projectId,
200
+ status: "open",
201
+ });
202
+ const epicId = epicResult.content[0].text.match(/ID: (E-[a-z0-9-]+)/)[1];
203
+ const featureResult = await client.callTool("create_object", {
204
+ type: "feature",
205
+ title: "Cross-Type Feature",
206
+ parent: epicId,
207
+ status: "open",
208
+ });
209
+ const featureId = featureResult.content[0].text.match(/ID: (F-[a-z0-9-]+)/)[1];
210
+ // Create task1 under feature
211
+ const task1Result = await client.callTool("create_object", {
212
+ type: "task",
213
+ title: "Task 1 - Under Feature",
214
+ parent: featureId,
215
+ status: "open",
216
+ });
217
+ const task1Id = task1Result.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
218
+ // Create standalone task2 depending on task1
219
+ const task2Result = await client.callTool("create_object", {
220
+ type: "task",
221
+ title: "Task 2 - Standalone",
222
+ status: "open",
223
+ prerequisites: [task1Id],
224
+ });
225
+ const task2Id = task2Result.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
226
+ // Try to claim task2 (should fail)
227
+ const crossTypeFailResult = await client.callTool("claim_task", {
228
+ taskId: task2Id,
229
+ });
230
+ expect(crossTypeFailResult.content[0].text).toContain("Not all prerequisites");
231
+ // Complete task1
232
+ await client.callTool("claim_task", { taskId: task1Id });
233
+ await client.callTool("complete_task", {
234
+ taskId: task1Id,
235
+ summary: "Feature task complete",
236
+ filesChanged: {},
237
+ });
238
+ // Now task2 can be claimed
239
+ const result = await client.callTool("claim_task", { taskId: task2Id });
240
+ expect(result.content[0].text).toContain("Successfully claimed");
241
+ });
242
+ });
243
+ describe("Circular Dependency Detection", () => {
244
+ it("should handle self-referencing prerequisites gracefully", async () => {
245
+ // Create task with self-reference (should be prevented at creation)
246
+ const result = await client.callTool("create_object", {
247
+ type: "task",
248
+ title: "Self-Referencing Task",
249
+ status: "open",
250
+ prerequisites: ["T-self-ref"], // Its own ID
251
+ });
252
+ const taskId = result.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
253
+ // The task gets created but prerequisite won't exist
254
+ // Try to claim (prerequisite doesn't exist so should succeed)
255
+ const claimResult = await client.callTool("claim_task", { taskId });
256
+ expect(claimResult.content[0].text).toContain("Successfully claimed");
257
+ });
258
+ it("should handle mutual dependencies", async () => {
259
+ // Create task A
260
+ const taskA = await client.callTool("create_object", {
261
+ type: "task",
262
+ title: "Task A - Mutual",
263
+ status: "open",
264
+ });
265
+ const taskAId = taskA.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
266
+ // Create task B depending on A
267
+ const taskB = await client.callTool("create_object", {
268
+ type: "task",
269
+ title: "Task B - Mutual",
270
+ status: "open",
271
+ prerequisites: [taskAId],
272
+ });
273
+ const taskBId = taskB.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
274
+ // Try to update A to depend on B (creating cycle)
275
+ await client.callTool("update_object", {
276
+ id: taskAId,
277
+ prerequisites: [taskBId],
278
+ });
279
+ // Both tasks should now be unclaimable
280
+ let result = await client.callTool("claim_task", { taskId: taskAId });
281
+ expect(result.content[0].text).toContain("Not all prerequisites");
282
+ result = await client.callTool("claim_task", { taskId: taskBId });
283
+ expect(result.content[0].text).toContain("Not all prerequisites");
284
+ // Force claim should work
285
+ result = await client.callTool("claim_task", {
286
+ taskId: taskAId,
287
+ force: true,
288
+ });
289
+ expect(result.content[0].text).toContain("Successfully claimed");
290
+ });
291
+ });
292
+ describe("Partial Prerequisites", () => {
293
+ it("should handle wont-do prerequisites", async () => {
294
+ // Create prerequisite that will be marked wont-do
295
+ const prereqResult = await client.callTool("create_object", {
296
+ type: "task",
297
+ title: "Prerequisite - Will Cancel",
298
+ status: "open",
299
+ });
300
+ const prereqId = prereqResult.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
301
+ // Create dependent task
302
+ const mainResult = await client.callTool("create_object", {
303
+ type: "task",
304
+ title: "Task with Cancelled Prerequisite",
305
+ status: "open",
306
+ prerequisites: [prereqId],
307
+ });
308
+ const mainId = mainResult.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
309
+ // Mark prerequisite as wont-do
310
+ await client.callTool("update_object", {
311
+ id: prereqId,
312
+ status: "wont-do",
313
+ });
314
+ // Main task should now be claimable
315
+ const result = await client.callTool("claim_task", { taskId: mainId });
316
+ expect(result.content[0].text).toContain("Successfully claimed");
317
+ });
318
+ it("should handle external prerequisites", async () => {
319
+ // Create task with external (non-existent) prerequisite
320
+ const result = await client.callTool("create_object", {
321
+ type: "task",
322
+ title: "Task with External Dependency",
323
+ status: "open",
324
+ prerequisites: ["EXTERNAL-API-READY", "EXTERNAL-DOCS-COMPLETE"],
325
+ });
326
+ const taskId = result.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
327
+ // Should be claimable since external prerequisites are assumed complete
328
+ const claimResult = await client.callTool("claim_task", { taskId });
329
+ expect(claimResult.content[0].text).toContain("Successfully claimed");
330
+ });
331
+ it("should handle mixed internal and external prerequisites", async () => {
332
+ // Create internal prerequisite
333
+ const internalResult = await client.callTool("create_object", {
334
+ type: "task",
335
+ title: "Internal Prerequisite",
336
+ status: "open",
337
+ });
338
+ const internalId = internalResult.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
339
+ // Create task with both internal and external prerequisites
340
+ const mainResult = await client.callTool("create_object", {
341
+ type: "task",
342
+ title: "Mixed Prerequisites Task",
343
+ status: "open",
344
+ prerequisites: [internalId, "EXTERNAL-APPROVAL"],
345
+ });
346
+ const mainId = mainResult.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
347
+ // Should not be claimable (internal not complete)
348
+ let result = await client.callTool("claim_task", { taskId: mainId });
349
+ expect(result.content[0].text).toContain("Not all prerequisites");
350
+ // Complete internal prerequisite
351
+ await client.callTool("claim_task", { taskId: internalId });
352
+ await client.callTool("complete_task", {
353
+ taskId: internalId,
354
+ summary: "Internal work done",
355
+ filesChanged: {},
356
+ });
357
+ // Now should be claimable
358
+ result = await client.callTool("claim_task", { taskId: mainId });
359
+ expect(result.content[0].text).toContain("Successfully claimed");
360
+ });
361
+ });
362
+ describe("Prerequisites Edge Cases", () => {
363
+ it("should handle empty prerequisites array", async () => {
364
+ const result = await client.callTool("create_object", {
365
+ type: "task",
366
+ title: "No Prerequisites Task",
367
+ status: "open",
368
+ prerequisites: [],
369
+ });
370
+ const taskId = result.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
371
+ // Should be immediately claimable
372
+ const claimResult = await client.callTool("claim_task", { taskId });
373
+ expect(claimResult.content[0].text).toContain("Successfully claimed");
374
+ });
375
+ it("should handle prerequisites on different object types", async () => {
376
+ // Create feature with prerequisites
377
+ const task1Result = await client.callTool("create_object", {
378
+ type: "task",
379
+ title: "Prerequisite Task for Feature",
380
+ status: "open",
381
+ });
382
+ const task1Id = task1Result.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
383
+ const featureResult = await client.callTool("create_object", {
384
+ type: "feature",
385
+ title: "Feature with Prerequisites",
386
+ status: "open",
387
+ prerequisites: [task1Id],
388
+ });
389
+ const featureId = featureResult.content[0].text.match(/ID: (F-[a-z0-9-]+)/)[1];
390
+ // Create task depending on feature
391
+ const task2Result = await client.callTool("create_object", {
392
+ type: "task",
393
+ title: "Task Depending on Feature",
394
+ status: "open",
395
+ prerequisites: [featureId],
396
+ });
397
+ const task2Id = task2Result.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
398
+ // Complete task1
399
+ await client.callTool("claim_task", { taskId: task1Id });
400
+ await client.callTool("complete_task", {
401
+ taskId: task1Id,
402
+ summary: "Prerequisite for feature done",
403
+ filesChanged: {},
404
+ });
405
+ // Mark feature as done
406
+ await client.callTool("update_object", {
407
+ id: featureId,
408
+ status: "done",
409
+ });
410
+ // Now task2 should be claimable
411
+ const result = await client.callTool("claim_task", { taskId: task2Id });
412
+ expect(result.content[0].text).toContain("Successfully claimed");
413
+ });
414
+ });
415
+ describe("Dynamic Prerequisite Updates", () => {
416
+ it("should handle adding prerequisites to existing tasks", async () => {
417
+ // Create tasks
418
+ const task1Result = await client.callTool("create_object", {
419
+ type: "task",
420
+ title: "Task 1 - Independent",
421
+ status: "open",
422
+ });
423
+ const task1Id = task1Result.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
424
+ const task2Result = await client.callTool("create_object", {
425
+ type: "task",
426
+ title: "Task 2 - Initially Independent",
427
+ status: "open",
428
+ prerequisites: [],
429
+ });
430
+ const task2Id = task2Result.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
431
+ // Task 2 should be claimable initially
432
+ let result = await client.callTool("claim_task", { taskId: task2Id });
433
+ expect(result.content[0].text).toContain("Successfully claimed");
434
+ // Reset task 2 to open
435
+ await client.callTool("update_object", {
436
+ id: task2Id,
437
+ status: "open",
438
+ });
439
+ // Add prerequisite to task 2
440
+ await client.callTool("update_object", {
441
+ id: task2Id,
442
+ prerequisites: [task1Id],
443
+ });
444
+ // Now task 2 should not be claimable
445
+ result = await client.callTool("claim_task", { taskId: task2Id });
446
+ expect(result.content[0].text).toContain("Not all prerequisites");
447
+ // Complete task 1
448
+ await client.callTool("claim_task", { taskId: task1Id });
449
+ await client.callTool("complete_task", {
450
+ taskId: task1Id,
451
+ summary: "Prerequisite completed",
452
+ filesChanged: {},
453
+ });
454
+ // Now task 2 should be claimable
455
+ result = await client.callTool("claim_task", { taskId: task2Id });
456
+ expect(result.content[0].text).toContain("Successfully claimed");
457
+ });
458
+ it("should handle removing prerequisites from existing tasks", async () => {
459
+ // Create prerequisite task
460
+ const prereqResult = await client.callTool("create_object", {
461
+ type: "task",
462
+ title: "Prerequisite Task",
463
+ status: "open",
464
+ });
465
+ const prereqId = prereqResult.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
466
+ // Create dependent task
467
+ const dependentResult = await client.callTool("create_object", {
468
+ type: "task",
469
+ title: "Dependent Task",
470
+ status: "open",
471
+ prerequisites: [prereqId],
472
+ });
473
+ const dependentId = dependentResult.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
474
+ // Should not be claimable initially
475
+ let result = await client.callTool("claim_task", { taskId: dependentId });
476
+ expect(result.content[0].text).toContain("Not all prerequisites");
477
+ // Remove prerequisite
478
+ await client.callTool("update_object", {
479
+ id: dependentId,
480
+ prerequisites: [],
481
+ });
482
+ // Now should be claimable
483
+ result = await client.callTool("claim_task", { taskId: dependentId });
484
+ expect(result.content[0].text).toContain("Successfully claimed");
485
+ });
486
+ });
487
+ describe("Priority with Prerequisites", () => {
488
+ it("should claim highest priority task among available tasks", async () => {
489
+ // Create prerequisite
490
+ const prereqResult = await client.callTool("create_object", {
491
+ type: "task",
492
+ title: "Completed Prerequisite",
493
+ status: "done",
494
+ });
495
+ const prereqId = prereqResult.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
496
+ // Create high priority task with completed prerequisite
497
+ await client.callTool("create_object", {
498
+ type: "task",
499
+ title: "High Priority Available",
500
+ priority: "high",
501
+ status: "open",
502
+ prerequisites: [prereqId],
503
+ });
504
+ // Create medium priority task without prerequisites
505
+ await client.callTool("create_object", {
506
+ type: "task",
507
+ title: "Medium Priority Independent",
508
+ priority: "medium",
509
+ status: "open",
510
+ prerequisites: [],
511
+ });
512
+ // Auto-claim should get high priority task
513
+ const result = await client.callTool("claim_task", {});
514
+ expect(result.content[0].text).toContain("High Priority Available");
515
+ });
516
+ it("should skip blocked high priority tasks and claim available lower priority", async () => {
517
+ // Create incomplete prerequisite
518
+ const prereqResult = await client.callTool("create_object", {
519
+ type: "task",
520
+ title: "Incomplete Prerequisite",
521
+ status: "open",
522
+ priority: "low",
523
+ });
524
+ const prereqId = prereqResult.content[0].text.match(/ID: (T-[a-z0-9-]+)/)[1];
525
+ // Create high priority task with incomplete prerequisite
526
+ await client.callTool("create_object", {
527
+ type: "task",
528
+ title: "High Priority Blocked",
529
+ priority: "high",
530
+ status: "open",
531
+ prerequisites: [prereqId],
532
+ });
533
+ // Create medium priority task without prerequisites
534
+ await client.callTool("create_object", {
535
+ type: "task",
536
+ title: "Medium Priority Available",
537
+ priority: "medium",
538
+ status: "open",
539
+ prerequisites: [],
540
+ });
541
+ // Auto-claim should get medium priority task (high is blocked)
542
+ const result = await client.callTool("claim_task", {});
543
+ expect(result.content[0].text).toContain("Medium Priority Available");
544
+ });
545
+ });
546
+ });
547
+ //# sourceMappingURL=prerequisites.e2e.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prerequisites.e2e.test.js","sourceRoot":"","sources":["../../../../src/__tests__/e2e/workflow/prerequisites.e2e.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pruneClosed.e2e.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pruneClosed.e2e.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/e2e/workflow/pruneClosed.e2e.test.ts"],"names":[],"mappings":""}