@langadventurellc/task-trellis-mcp 1.0.1 → 1.2.0

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 (331) hide show
  1. package/README.md +52 -263
  2. package/dist/__tests__/e2e/autoPrune.e2e.test.d.ts +2 -0
  3. package/dist/__tests__/e2e/autoPrune.e2e.test.d.ts.map +1 -0
  4. package/dist/__tests__/e2e/autoPrune.e2e.test.js +533 -0
  5. package/dist/__tests__/e2e/autoPrune.e2e.test.js.map +1 -0
  6. package/dist/__tests__/e2e/configuration/activation.e2e.test.js +6 -6
  7. package/dist/__tests__/e2e/configuration/activation.e2e.test.js.map +1 -1
  8. package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.js +55 -6
  9. package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.js.map +1 -1
  10. package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.js +19 -19
  11. package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.js.map +1 -1
  12. package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.js +9 -9
  13. package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.js.map +1 -1
  14. package/dist/__tests__/e2e/configuration/preActivation.e2e.test.js +15 -15
  15. package/dist/__tests__/e2e/configuration/preActivation.e2e.test.js.map +1 -1
  16. package/dist/__tests__/e2e/crud/createObject.e2e.test.js +94 -42
  17. package/dist/__tests__/e2e/crud/createObject.e2e.test.js.map +1 -1
  18. package/dist/__tests__/e2e/crud/deleteObject.e2e.test.js +19 -19
  19. package/dist/__tests__/e2e/crud/deleteObject.e2e.test.js.map +1 -1
  20. package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js +32 -32
  21. package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js.map +1 -1
  22. package/dist/__tests__/e2e/crud/getObject.e2e.test.js +143 -22
  23. package/dist/__tests__/e2e/crud/getObject.e2e.test.js.map +1 -1
  24. package/dist/__tests__/e2e/crud/listObjects.e2e.test.js +810 -121
  25. package/dist/__tests__/e2e/crud/listObjects.e2e.test.js.map +1 -1
  26. package/dist/__tests__/e2e/crud/updateObject.e2e.test.js +497 -25
  27. package/dist/__tests__/e2e/crud/updateObject.e2e.test.js.map +1 -1
  28. package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.d.ts +2 -0
  29. package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.d.ts.map +1 -0
  30. package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.js +319 -0
  31. package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.js.map +1 -0
  32. package/dist/__tests__/e2e/infrastructure/client.e2e.test.js +4 -4
  33. package/dist/__tests__/e2e/infrastructure/client.e2e.test.js.map +1 -1
  34. package/dist/__tests__/e2e/infrastructure/server.e2e.test.js +6 -6
  35. package/dist/__tests__/e2e/infrastructure/server.e2e.test.js.map +1 -1
  36. package/dist/__tests__/e2e/utils/extractObjectIds.d.ts +5 -0
  37. package/dist/__tests__/e2e/utils/extractObjectIds.d.ts.map +1 -0
  38. package/dist/__tests__/e2e/utils/extractObjectIds.js +12 -0
  39. package/dist/__tests__/e2e/utils/extractObjectIds.js.map +1 -0
  40. package/dist/__tests__/e2e/utils/index.d.ts +1 -0
  41. package/dist/__tests__/e2e/utils/index.d.ts.map +1 -1
  42. package/dist/__tests__/e2e/utils/index.js +3 -1
  43. package/dist/__tests__/e2e/utils/index.js.map +1 -1
  44. package/dist/__tests__/e2e/utils/mcpTestClient.d.ts +2 -1
  45. package/dist/__tests__/e2e/utils/mcpTestClient.d.ts.map +1 -1
  46. package/dist/__tests__/e2e/utils/mcpTestClient.js +15 -8
  47. package/dist/__tests__/e2e/utils/mcpTestClient.js.map +1 -1
  48. package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts +4 -2
  49. package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts.map +1 -1
  50. package/dist/__tests__/e2e/utils/parseListObjectsResponse.js +2 -1
  51. package/dist/__tests__/e2e/utils/parseListObjectsResponse.js.map +1 -1
  52. package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.d.ts +1 -1
  53. package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.js +1 -1
  54. package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js +4 -4
  55. package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js.map +1 -1
  56. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.d.ts +2 -0
  57. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.d.ts.map +1 -0
  58. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js +597 -0
  59. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js.map +1 -0
  60. package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js +233 -0
  61. package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js.map +1 -1
  62. package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js +447 -1
  63. package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js.map +1 -1
  64. package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js +43 -43
  65. package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js.map +1 -1
  66. package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js +22 -26
  67. package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js.map +1 -1
  68. package/dist/__tests__/serverStartup.test.d.ts +2 -0
  69. package/dist/__tests__/serverStartup.test.d.ts.map +1 -0
  70. package/dist/__tests__/serverStartup.test.js +171 -0
  71. package/dist/__tests__/serverStartup.test.js.map +1 -0
  72. package/dist/configuration/ServerConfig.d.ts +2 -0
  73. package/dist/configuration/ServerConfig.d.ts.map +1 -1
  74. package/dist/models/TrellisObjectSummary.d.ts +16 -0
  75. package/dist/models/TrellisObjectSummary.d.ts.map +1 -0
  76. package/dist/{utils/ReplaceStringOptions.js → models/TrellisObjectSummary.js} +1 -1
  77. package/dist/models/TrellisObjectSummary.js.map +1 -0
  78. package/dist/models/index.d.ts +1 -0
  79. package/dist/models/index.d.ts.map +1 -1
  80. package/dist/models/index.js.map +1 -1
  81. package/dist/repositories/Repository.d.ts +2 -1
  82. package/dist/repositories/Repository.d.ts.map +1 -1
  83. package/dist/repositories/local/LocalRepository.d.ts +2 -1
  84. package/dist/repositories/local/LocalRepository.d.ts.map +1 -1
  85. package/dist/repositories/local/LocalRepository.js +4 -0
  86. package/dist/repositories/local/LocalRepository.js.map +1 -1
  87. package/dist/repositories/local/__tests__/getChildrenOf.test.d.ts +2 -0
  88. package/dist/repositories/local/__tests__/getChildrenOf.test.d.ts.map +1 -0
  89. package/dist/repositories/local/__tests__/getChildrenOf.test.js +306 -0
  90. package/dist/repositories/local/__tests__/getChildrenOf.test.js.map +1 -0
  91. package/dist/repositories/local/__tests__/getObjectFilePath.test.js +9 -6
  92. package/dist/repositories/local/__tests__/getObjectFilePath.test.js.map +1 -1
  93. package/dist/repositories/local/__tests__/getObjects.test.js +349 -10
  94. package/dist/repositories/local/__tests__/getObjects.test.js.map +1 -1
  95. package/dist/repositories/local/deleteObjectById.d.ts.map +1 -1
  96. package/dist/repositories/local/deleteObjectById.js +2 -0
  97. package/dist/repositories/local/deleteObjectById.js.map +1 -1
  98. package/dist/repositories/local/getChildrenOf.d.ts +11 -0
  99. package/dist/repositories/local/getChildrenOf.d.ts.map +1 -0
  100. package/dist/repositories/local/getChildrenOf.js +73 -0
  101. package/dist/repositories/local/getChildrenOf.js.map +1 -0
  102. package/dist/repositories/local/getObjectFilePath.d.ts.map +1 -1
  103. package/dist/repositories/local/getObjectFilePath.js +8 -4
  104. package/dist/repositories/local/getObjectFilePath.js.map +1 -1
  105. package/dist/repositories/local/getObjects.d.ts +1 -1
  106. package/dist/repositories/local/getObjects.d.ts.map +1 -1
  107. package/dist/repositories/local/getObjects.js +31 -7
  108. package/dist/repositories/local/getObjects.js.map +1 -1
  109. package/dist/server.js +57 -19
  110. package/dist/server.js.map +1 -1
  111. package/dist/services/TaskTrellisService.d.ts +78 -0
  112. package/dist/services/TaskTrellisService.d.ts.map +1 -0
  113. package/dist/services/TaskTrellisService.js +3 -0
  114. package/dist/services/TaskTrellisService.js.map +1 -0
  115. package/dist/services/local/LocalTaskTrellisService.d.ts +55 -0
  116. package/dist/services/local/LocalTaskTrellisService.d.ts.map +1 -0
  117. package/dist/services/local/LocalTaskTrellisService.js +73 -0
  118. package/dist/services/local/LocalTaskTrellisService.js.map +1 -0
  119. package/dist/services/local/__tests__/appendAffectedFiles.test.d.ts +2 -0
  120. package/dist/services/local/__tests__/appendAffectedFiles.test.d.ts.map +1 -0
  121. package/dist/services/local/__tests__/appendAffectedFiles.test.js +202 -0
  122. package/dist/services/local/__tests__/appendAffectedFiles.test.js.map +1 -0
  123. package/dist/services/local/__tests__/appendModifiedFiles.test.d.ts +2 -0
  124. package/dist/services/local/__tests__/appendModifiedFiles.test.d.ts.map +1 -0
  125. package/dist/services/local/__tests__/appendModifiedFiles.test.js +162 -0
  126. package/dist/services/local/__tests__/appendModifiedFiles.test.js.map +1 -0
  127. package/dist/services/local/__tests__/appendObjectLog.test.d.ts +2 -0
  128. package/dist/services/local/__tests__/appendObjectLog.test.d.ts.map +1 -0
  129. package/dist/services/local/__tests__/appendObjectLog.test.js +105 -0
  130. package/dist/services/local/__tests__/appendObjectLog.test.js.map +1 -0
  131. package/dist/services/local/__tests__/claimTask.test.d.ts +2 -0
  132. package/dist/services/local/__tests__/claimTask.test.d.ts.map +1 -0
  133. package/dist/services/local/__tests__/claimTask.test.js +459 -0
  134. package/dist/services/local/__tests__/claimTask.test.js.map +1 -0
  135. package/dist/services/local/__tests__/completeTask.test.d.ts +2 -0
  136. package/dist/services/local/__tests__/completeTask.test.d.ts.map +1 -0
  137. package/dist/services/local/__tests__/completeTask.test.js +470 -0
  138. package/dist/services/local/__tests__/completeTask.test.js.map +1 -0
  139. package/dist/services/local/__tests__/createObject.test.d.ts +2 -0
  140. package/dist/services/local/__tests__/createObject.test.d.ts.map +1 -0
  141. package/dist/services/local/__tests__/createObject.test.js +333 -0
  142. package/dist/services/local/__tests__/createObject.test.js.map +1 -0
  143. package/dist/services/local/__tests__/listObjects.test.d.ts +2 -0
  144. package/dist/services/local/__tests__/listObjects.test.d.ts.map +1 -0
  145. package/dist/services/local/__tests__/listObjects.test.js +351 -0
  146. package/dist/services/local/__tests__/listObjects.test.js.map +1 -0
  147. package/dist/services/local/__tests__/pruneClosed.test.d.ts +2 -0
  148. package/dist/services/local/__tests__/pruneClosed.test.d.ts.map +1 -0
  149. package/dist/services/local/__tests__/pruneClosed.test.js +473 -0
  150. package/dist/services/local/__tests__/pruneClosed.test.js.map +1 -0
  151. package/dist/services/local/__tests__/updateObject.test.d.ts +2 -0
  152. package/dist/services/local/__tests__/updateObject.test.d.ts.map +1 -0
  153. package/dist/services/local/__tests__/updateObject.test.js +521 -0
  154. package/dist/services/local/__tests__/updateObject.test.js.map +1 -0
  155. package/dist/services/local/appendAffectedFiles.d.ts +12 -0
  156. package/dist/services/local/appendAffectedFiles.d.ts.map +1 -0
  157. package/dist/services/local/appendAffectedFiles.js +34 -0
  158. package/dist/services/local/appendAffectedFiles.js.map +1 -0
  159. package/dist/services/local/appendModifiedFiles.d.ts +15 -0
  160. package/dist/services/local/appendModifiedFiles.d.ts.map +1 -0
  161. package/dist/services/local/appendModifiedFiles.js +39 -0
  162. package/dist/services/local/appendModifiedFiles.js.map +1 -0
  163. package/dist/services/local/appendObjectLog.d.ts +8 -0
  164. package/dist/services/local/appendObjectLog.d.ts.map +1 -0
  165. package/dist/services/local/appendObjectLog.js +45 -0
  166. package/dist/services/local/appendObjectLog.js.map +1 -0
  167. package/dist/services/local/claimTask.d.ts +8 -0
  168. package/dist/services/local/claimTask.d.ts.map +1 -0
  169. package/dist/services/local/claimTask.js +109 -0
  170. package/dist/services/local/claimTask.js.map +1 -0
  171. package/dist/services/local/completeTask.d.ts +9 -0
  172. package/dist/services/local/completeTask.d.ts.map +1 -0
  173. package/dist/services/local/completeTask.js +38 -0
  174. package/dist/services/local/completeTask.js.map +1 -0
  175. package/dist/services/local/createObject.d.ts +9 -0
  176. package/dist/services/local/createObject.d.ts.map +1 -0
  177. package/dist/services/local/createObject.js +44 -0
  178. package/dist/services/local/createObject.js.map +1 -0
  179. package/dist/services/local/listObjects.d.ts +9 -0
  180. package/dist/services/local/listObjects.d.ts.map +1 -0
  181. package/dist/services/local/listObjects.js +52 -0
  182. package/dist/services/local/listObjects.js.map +1 -0
  183. package/dist/services/local/pruneClosed.d.ts +8 -0
  184. package/dist/services/local/pruneClosed.d.ts.map +1 -0
  185. package/dist/services/local/pruneClosed.js +112 -0
  186. package/dist/services/local/pruneClosed.js.map +1 -0
  187. package/dist/services/local/updateObject.d.ts +10 -0
  188. package/dist/services/local/updateObject.d.ts.map +1 -0
  189. package/dist/services/local/updateObject.js +80 -0
  190. package/dist/services/local/updateObject.js.map +1 -0
  191. package/dist/tools/__tests__/appendModifiedFilesTool.test.d.ts +2 -0
  192. package/dist/tools/__tests__/appendModifiedFilesTool.test.d.ts.map +1 -0
  193. package/dist/tools/__tests__/appendModifiedFilesTool.test.js +178 -0
  194. package/dist/tools/__tests__/appendModifiedFilesTool.test.js.map +1 -0
  195. package/dist/tools/__tests__/appendObjectLogTool.test.js +34 -101
  196. package/dist/tools/__tests__/appendObjectLogTool.test.js.map +1 -1
  197. package/dist/tools/__tests__/claimTaskTool.test.js +98 -311
  198. package/dist/tools/__tests__/claimTaskTool.test.js.map +1 -1
  199. package/dist/tools/__tests__/completeTaskTool.test.js +140 -183
  200. package/dist/tools/__tests__/completeTaskTool.test.js.map +1 -1
  201. package/dist/tools/__tests__/createObjectTool.test.js +62 -325
  202. package/dist/tools/__tests__/createObjectTool.test.js.map +1 -1
  203. package/dist/tools/__tests__/deleteObjectTool.test.js +1 -0
  204. package/dist/tools/__tests__/deleteObjectTool.test.js.map +1 -1
  205. package/dist/tools/__tests__/getObjectTool.test.js +1 -0
  206. package/dist/tools/__tests__/getObjectTool.test.js.map +1 -1
  207. package/dist/tools/__tests__/listObjectsTool.test.js +228 -108
  208. package/dist/tools/__tests__/listObjectsTool.test.js.map +1 -1
  209. package/dist/tools/__tests__/updateObjectTool.test.js +78 -167
  210. package/dist/tools/__tests__/updateObjectTool.test.js.map +1 -1
  211. package/dist/tools/appendModifiedFilesTool.d.ts +30 -0
  212. package/dist/tools/appendModifiedFilesTool.d.ts.map +1 -0
  213. package/dist/tools/appendModifiedFilesTool.js +55 -0
  214. package/dist/tools/appendModifiedFilesTool.js.map +1 -0
  215. package/dist/tools/appendObjectLogTool.d.ts +7 -6
  216. package/dist/tools/appendObjectLogTool.d.ts.map +1 -1
  217. package/dist/tools/appendObjectLogTool.js +6 -44
  218. package/dist/tools/appendObjectLogTool.js.map +1 -1
  219. package/dist/tools/claimTaskTool.d.ts +4 -3
  220. package/dist/tools/claimTaskTool.d.ts.map +1 -1
  221. package/dist/tools/claimTaskTool.js +2 -80
  222. package/dist/tools/claimTaskTool.js.map +1 -1
  223. package/dist/tools/completeTaskTool.d.ts +5 -3
  224. package/dist/tools/completeTaskTool.d.ts.map +1 -1
  225. package/dist/tools/completeTaskTool.js +3 -29
  226. package/dist/tools/completeTaskTool.js.map +1 -1
  227. package/dist/tools/createObjectTool.d.ts +13 -12
  228. package/dist/tools/createObjectTool.d.ts.map +1 -1
  229. package/dist/tools/createObjectTool.js +22 -55
  230. package/dist/tools/createObjectTool.js.map +1 -1
  231. package/dist/tools/deleteObjectTool.d.ts +3 -3
  232. package/dist/tools/deleteObjectTool.js +12 -12
  233. package/dist/tools/deleteObjectTool.js.map +1 -1
  234. package/dist/tools/getObjectTool.d.ts +3 -3
  235. package/dist/tools/getObjectTool.d.ts.map +1 -1
  236. package/dist/tools/getObjectTool.js +12 -7
  237. package/dist/tools/getObjectTool.js.map +1 -1
  238. package/dist/tools/index.d.ts +7 -8
  239. package/dist/tools/index.d.ts.map +1 -1
  240. package/dist/tools/index.js +22 -25
  241. package/dist/tools/index.js.map +1 -1
  242. package/dist/tools/listObjectsTool.d.ts +24 -14
  243. package/dist/tools/listObjectsTool.d.ts.map +1 -1
  244. package/dist/tools/listObjectsTool.js +114 -50
  245. package/dist/tools/listObjectsTool.js.map +1 -1
  246. package/dist/tools/updateObjectTool.d.ts +15 -9
  247. package/dist/tools/updateObjectTool.d.ts.map +1 -1
  248. package/dist/tools/updateObjectTool.js +20 -60
  249. package/dist/tools/updateObjectTool.js.map +1 -1
  250. package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.d.ts +2 -0
  251. package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.d.ts.map +1 -0
  252. package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js +206 -0
  253. package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js.map +1 -0
  254. package/dist/utils/__tests__/checkPrerequisitesComplete.test.js +5 -0
  255. package/dist/utils/__tests__/checkPrerequisitesComplete.test.js.map +1 -1
  256. package/dist/utils/__tests__/filterUnavailableObjects.test.js +51 -25
  257. package/dist/utils/__tests__/filterUnavailableObjects.test.js.map +1 -1
  258. package/dist/utils/__tests__/isRequiredForOtherObjects.test.js +5 -0
  259. package/dist/utils/__tests__/isRequiredForOtherObjects.test.js.map +1 -1
  260. package/dist/utils/__tests__/updateParentHierarchy.test.d.ts +2 -0
  261. package/dist/utils/__tests__/updateParentHierarchy.test.d.ts.map +1 -0
  262. package/dist/utils/__tests__/updateParentHierarchy.test.js +137 -0
  263. package/dist/utils/__tests__/updateParentHierarchy.test.js.map +1 -0
  264. package/dist/utils/autoCompleteParentHierarchy.d.ts +11 -0
  265. package/dist/utils/autoCompleteParentHierarchy.d.ts.map +1 -0
  266. package/dist/utils/autoCompleteParentHierarchy.js +49 -0
  267. package/dist/utils/autoCompleteParentHierarchy.js.map +1 -0
  268. package/dist/utils/checkHierarchicalPrerequisitesComplete.d.ts +14 -0
  269. package/dist/utils/checkHierarchicalPrerequisitesComplete.d.ts.map +1 -0
  270. package/dist/utils/checkHierarchicalPrerequisitesComplete.js +47 -0
  271. package/dist/utils/checkHierarchicalPrerequisitesComplete.js.map +1 -0
  272. package/dist/utils/filterUnavailableObjects.d.ts +6 -4
  273. package/dist/utils/filterUnavailableObjects.d.ts.map +1 -1
  274. package/dist/utils/filterUnavailableObjects.js +16 -22
  275. package/dist/utils/filterUnavailableObjects.js.map +1 -1
  276. package/dist/utils/index.d.ts +3 -2
  277. package/dist/utils/index.d.ts.map +1 -1
  278. package/dist/utils/index.js +7 -3
  279. package/dist/utils/index.js.map +1 -1
  280. package/dist/utils/updateParentHierarchy.d.ts +11 -0
  281. package/dist/utils/updateParentHierarchy.d.ts.map +1 -0
  282. package/dist/utils/updateParentHierarchy.js +40 -0
  283. package/dist/utils/updateParentHierarchy.js.map +1 -0
  284. package/dist/validation/__tests__/validateObjectCreation.test.js +1 -0
  285. package/dist/validation/__tests__/validateObjectCreation.test.js.map +1 -1
  286. package/dist/validation/__tests__/validateParentExists.test.js +1 -0
  287. package/dist/validation/__tests__/validateParentExists.test.js.map +1 -1
  288. package/dist/validation/__tests__/validateParentType.test.js +5 -5
  289. package/dist/validation/__tests__/validateParentType.test.js.map +1 -1
  290. package/dist/validation/__tests__/validateStatusTransition.test.js +1 -0
  291. package/dist/validation/__tests__/validateStatusTransition.test.js.map +1 -1
  292. package/dist/validation/validateParentType.d.ts +1 -1
  293. package/dist/validation/validateParentType.d.ts.map +1 -1
  294. package/dist/validation/validateParentType.js +2 -5
  295. package/dist/validation/validateParentType.js.map +1 -1
  296. package/package.json +1 -1
  297. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts +0 -2
  298. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts.map +0 -1
  299. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js +0 -693
  300. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js.map +0 -1
  301. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts +0 -2
  302. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts.map +0 -1
  303. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js +0 -352
  304. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js.map +0 -1
  305. package/dist/tools/__tests__/pruneClosedTool.test.d.ts +0 -2
  306. package/dist/tools/__tests__/pruneClosedTool.test.d.ts.map +0 -1
  307. package/dist/tools/__tests__/pruneClosedTool.test.js +0 -171
  308. package/dist/tools/__tests__/pruneClosedTool.test.js.map +0 -1
  309. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts +0 -2
  310. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts.map +0 -1
  311. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js +0 -258
  312. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js.map +0 -1
  313. package/dist/tools/pruneClosedTool.d.ts +0 -26
  314. package/dist/tools/pruneClosedTool.d.ts.map +0 -1
  315. package/dist/tools/pruneClosedTool.js +0 -106
  316. package/dist/tools/pruneClosedTool.js.map +0 -1
  317. package/dist/tools/replaceObjectBodyRegexTool.d.ts +0 -35
  318. package/dist/tools/replaceObjectBodyRegexTool.d.ts.map +0 -1
  319. package/dist/tools/replaceObjectBodyRegexTool.js +0 -145
  320. package/dist/tools/replaceObjectBodyRegexTool.js.map +0 -1
  321. package/dist/utils/ReplaceStringOptions.d.ts +0 -12
  322. package/dist/utils/ReplaceStringOptions.d.ts.map +0 -1
  323. package/dist/utils/ReplaceStringOptions.js.map +0 -1
  324. package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts +0 -2
  325. package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts.map +0 -1
  326. package/dist/utils/__tests__/replaceStringWithRegex.test.js +0 -281
  327. package/dist/utils/__tests__/replaceStringWithRegex.test.js.map +0 -1
  328. package/dist/utils/replaceStringWithRegex.d.ts +0 -45
  329. package/dist/utils/replaceStringWithRegex.d.ts.map +0 -1
  330. package/dist/utils/replaceStringWithRegex.js +0 -91
  331. package/dist/utils/replaceStringWithRegex.js.map +0 -1
@@ -4,98 +4,88 @@ const models_1 = require("../../models");
4
4
  const listObjectsTool_1 = require("../listObjectsTool");
5
5
  describe("listObjectsTool", () => {
6
6
  let mockRepository;
7
+ let mockService;
7
8
  beforeEach(() => {
8
9
  mockRepository = {
9
10
  getObjectById: jest.fn(),
10
11
  getObjects: jest.fn(),
11
12
  saveObject: jest.fn(),
12
13
  deleteObject: jest.fn(),
14
+ getChildrenOf: jest.fn(),
15
+ };
16
+ mockService = {
17
+ createObject: jest.fn(),
18
+ updateObject: jest.fn(),
19
+ claimTask: jest.fn(),
20
+ completeTask: jest.fn(),
21
+ listObjects: jest.fn(),
22
+ appendObjectLog: jest.fn(),
23
+ pruneClosed: jest.fn(),
24
+ appendModifiedFiles: jest.fn(),
13
25
  };
14
26
  // Reset mocks
15
27
  jest.clearAllMocks();
16
28
  });
17
29
  describe("handleListObjects", () => {
18
- const mockObjects = [
30
+ const mockSummaries = [
19
31
  {
20
32
  id: "P-project-1",
21
- type: models_1.TrellisObjectType.PROJECT,
33
+ type: "project",
22
34
  title: "Project 1",
23
- status: models_1.TrellisObjectStatus.OPEN,
24
- priority: models_1.TrellisObjectPriority.HIGH,
35
+ status: "open",
36
+ priority: "high",
25
37
  prerequisites: [],
26
- affectedFiles: new Map(),
27
- log: [],
28
- schema: "v1.0",
29
38
  childrenIds: [],
30
- body: "Project 1 body",
31
39
  created: "2025-01-15T10:00:00Z",
32
40
  updated: "2025-01-15T10:00:00Z",
33
41
  },
34
42
  {
35
43
  id: "T-task-1",
36
- type: models_1.TrellisObjectType.TASK,
44
+ type: "task",
37
45
  title: "Task 1",
38
- status: models_1.TrellisObjectStatus.IN_PROGRESS,
39
- priority: models_1.TrellisObjectPriority.MEDIUM,
46
+ status: "in-progress",
47
+ priority: "medium",
40
48
  parent: "F-feature-1",
41
49
  prerequisites: [],
42
- affectedFiles: new Map(),
43
- log: [],
44
- schema: "v1.0",
45
50
  childrenIds: [],
46
- body: "Task 1 body",
47
51
  created: "2025-01-15T10:00:00Z",
48
52
  updated: "2025-01-15T10:00:00Z",
49
53
  },
50
54
  ];
51
- it("should successfully list objects with valid type", async () => {
52
- mockRepository.getObjects.mockResolvedValue(mockObjects);
53
- const result = await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
55
+ const mockResponse = {
56
+ content: [
57
+ {
58
+ type: "text",
59
+ text: JSON.stringify(mockSummaries, null, 2),
60
+ },
61
+ ],
62
+ };
63
+ it("should call service.listObjects with correct parameters for type only", async () => {
64
+ mockService.listObjects.mockResolvedValue(mockResponse);
65
+ const result = await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
54
66
  type: "project",
55
67
  });
56
- expect(mockRepository.getObjects).toHaveBeenCalledWith(false, undefined, models_1.TrellisObjectType.PROJECT, undefined, undefined);
57
- expect(result).toEqual({
58
- content: [
59
- {
60
- type: "text",
61
- text: JSON.stringify(mockObjects, null, 2),
62
- },
63
- ],
64
- });
68
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.PROJECT, undefined, undefined, undefined, false);
69
+ expect(result).toEqual(mockResponse);
65
70
  });
66
- it("should list objects with all parameters provided", async () => {
67
- mockRepository.getObjects.mockResolvedValue(mockObjects);
68
- const result = await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
71
+ it("should call service.listObjects with all parameters provided", async () => {
72
+ mockService.listObjects.mockResolvedValue(mockResponse);
73
+ const result = await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
69
74
  type: "task",
70
75
  scope: "F-feature-1",
71
76
  status: "in-progress",
72
77
  priority: "high",
73
78
  includeClosed: true,
74
79
  });
75
- expect(mockRepository.getObjects).toHaveBeenCalledWith(true, "F-feature-1", models_1.TrellisObjectType.TASK, models_1.TrellisObjectStatus.IN_PROGRESS, models_1.TrellisObjectPriority.HIGH);
76
- expect(result).toEqual({
77
- content: [
78
- {
79
- type: "text",
80
- text: JSON.stringify(mockObjects, null, 2),
81
- },
82
- ],
83
- });
84
- });
85
- it("should handle includeClosed parameter correctly", async () => {
86
- mockRepository.getObjects.mockResolvedValue(mockObjects);
87
- await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
88
- type: "task",
89
- includeClosed: false,
90
- });
91
- expect(mockRepository.getObjects).toHaveBeenCalledWith(false, undefined, models_1.TrellisObjectType.TASK, undefined, undefined);
80
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, "F-feature-1", models_1.TrellisObjectStatus.IN_PROGRESS, models_1.TrellisObjectPriority.HIGH, true);
81
+ expect(result).toEqual(mockResponse);
92
82
  });
93
83
  it("should default includeClosed to false when not provided", async () => {
94
- mockRepository.getObjects.mockResolvedValue(mockObjects);
95
- await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
84
+ mockService.listObjects.mockResolvedValue(mockResponse);
85
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
96
86
  type: "task",
97
87
  });
98
- expect(mockRepository.getObjects).toHaveBeenCalledWith(false, undefined, models_1.TrellisObjectType.TASK, undefined, undefined);
88
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, undefined, undefined, undefined, false);
99
89
  });
100
90
  describe("type parameter validation", () => {
101
91
  it.each([
@@ -104,12 +94,12 @@ describe("listObjectsTool", () => {
104
94
  { type: "feature", expectedType: models_1.TrellisObjectType.FEATURE },
105
95
  { type: "task", expectedType: models_1.TrellisObjectType.TASK },
106
96
  ])("should convert valid type string '$type' to enum", async ({ type, expectedType }) => {
107
- mockRepository.getObjects.mockResolvedValue(mockObjects);
108
- await (0, listObjectsTool_1.handleListObjects)(mockRepository, { type });
109
- expect(mockRepository.getObjects).toHaveBeenCalledWith(false, undefined, expectedType, undefined, undefined);
97
+ mockService.listObjects.mockResolvedValue(mockResponse);
98
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, { type });
99
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, expectedType, undefined, undefined, undefined, false);
110
100
  });
111
101
  it("should return error for invalid type", async () => {
112
- const result = await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
102
+ const result = await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
113
103
  type: "invalid-type",
114
104
  });
115
105
  expect(result).toEqual({
@@ -120,7 +110,7 @@ describe("listObjectsTool", () => {
120
110
  },
121
111
  ],
122
112
  });
123
- expect(mockRepository.getObjects).not.toHaveBeenCalled();
113
+ expect(mockService.listObjects).not.toHaveBeenCalled();
124
114
  });
125
115
  });
126
116
  describe("status parameter validation", () => {
@@ -134,15 +124,15 @@ describe("listObjectsTool", () => {
134
124
  { status: "done", expectedStatus: models_1.TrellisObjectStatus.DONE },
135
125
  { status: "wont-do", expectedStatus: models_1.TrellisObjectStatus.WONT_DO },
136
126
  ])("should convert valid status string '$status' to enum", async ({ status, expectedStatus }) => {
137
- mockRepository.getObjects.mockResolvedValue(mockObjects);
138
- await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
127
+ mockService.listObjects.mockResolvedValue(mockResponse);
128
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
139
129
  type: "task",
140
130
  status,
141
131
  });
142
- expect(mockRepository.getObjects).toHaveBeenCalledWith(false, undefined, models_1.TrellisObjectType.TASK, expectedStatus, undefined);
132
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, undefined, expectedStatus, undefined, false);
143
133
  });
144
134
  it("should return error for invalid status", async () => {
145
- const result = await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
135
+ const result = await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
146
136
  type: "task",
147
137
  status: "invalid-status",
148
138
  });
@@ -154,7 +144,7 @@ describe("listObjectsTool", () => {
154
144
  },
155
145
  ],
156
146
  });
157
- expect(mockRepository.getObjects).not.toHaveBeenCalled();
147
+ expect(mockService.listObjects).not.toHaveBeenCalled();
158
148
  });
159
149
  });
160
150
  describe("priority parameter validation", () => {
@@ -163,15 +153,15 @@ describe("listObjectsTool", () => {
163
153
  { priority: "medium", expectedPriority: models_1.TrellisObjectPriority.MEDIUM },
164
154
  { priority: "low", expectedPriority: models_1.TrellisObjectPriority.LOW },
165
155
  ])("should convert valid priority string '$priority' to enum", async ({ priority, expectedPriority }) => {
166
- mockRepository.getObjects.mockResolvedValue(mockObjects);
167
- await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
156
+ mockService.listObjects.mockResolvedValue(mockResponse);
157
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
168
158
  type: "task",
169
159
  priority,
170
160
  });
171
- expect(mockRepository.getObjects).toHaveBeenCalledWith(false, undefined, models_1.TrellisObjectType.TASK, undefined, expectedPriority);
161
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, undefined, undefined, expectedPriority, false);
172
162
  });
173
163
  it("should return error for invalid priority", async () => {
174
- const result = await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
164
+ const result = await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
175
165
  type: "task",
176
166
  priority: "invalid-priority",
177
167
  });
@@ -183,29 +173,22 @@ describe("listObjectsTool", () => {
183
173
  },
184
174
  ],
185
175
  });
186
- expect(mockRepository.getObjects).not.toHaveBeenCalled();
176
+ expect(mockService.listObjects).not.toHaveBeenCalled();
187
177
  });
188
178
  });
189
- it("should handle optional parameters as undefined when not provided", async () => {
190
- mockRepository.getObjects.mockResolvedValue(mockObjects);
191
- await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
192
- type: "task",
193
- });
194
- expect(mockRepository.getObjects).toHaveBeenCalledWith(false, undefined, models_1.TrellisObjectType.TASK, undefined, undefined);
195
- });
196
179
  it("should pass scope parameter through unchanged", async () => {
197
- mockRepository.getObjects.mockResolvedValue(mockObjects);
180
+ mockService.listObjects.mockResolvedValue(mockResponse);
198
181
  const scope = "P-my-project";
199
- await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
182
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
200
183
  type: "epic",
201
184
  scope,
202
185
  });
203
- expect(mockRepository.getObjects).toHaveBeenCalledWith(false, scope, models_1.TrellisObjectType.EPIC, undefined, undefined);
186
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.EPIC, scope, undefined, undefined, false);
204
187
  });
205
- it("should handle repository errors gracefully", async () => {
206
- const errorMessage = "Database connection failed";
207
- mockRepository.getObjects.mockRejectedValue(new Error(errorMessage));
208
- const result = await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
188
+ it("should handle service errors gracefully", async () => {
189
+ const errorMessage = "Service error";
190
+ mockService.listObjects.mockRejectedValue(new Error(errorMessage));
191
+ const result = await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
209
192
  type: "task",
210
193
  });
211
194
  expect(result).toEqual({
@@ -217,9 +200,9 @@ describe("listObjectsTool", () => {
217
200
  ],
218
201
  });
219
202
  });
220
- it("should handle non-Error exceptions", async () => {
221
- mockRepository.getObjects.mockRejectedValue("String error");
222
- const result = await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
203
+ it("should handle non-Error exceptions from service", async () => {
204
+ mockService.listObjects.mockRejectedValue("String error");
205
+ const result = await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
223
206
  type: "task",
224
207
  });
225
208
  expect(result).toEqual({
@@ -231,38 +214,175 @@ describe("listObjectsTool", () => {
231
214
  ],
232
215
  });
233
216
  });
234
- it("should return empty array when repository returns no objects", async () => {
235
- mockRepository.getObjects.mockResolvedValue([]);
236
- const result = await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
237
- type: "task",
238
- });
239
- expect(result).toEqual({
240
- content: [
241
- {
242
- type: "text",
243
- text: JSON.stringify([], null, 2),
244
- },
245
- ],
246
- });
247
- });
248
- it("should handle complex filtering scenarios", async () => {
249
- const filteredObjects = [mockObjects[1]]; // Only the task
250
- mockRepository.getObjects.mockResolvedValue(filteredObjects);
251
- const result = await (0, listObjectsTool_1.handleListObjects)(mockRepository, {
217
+ it("should handle complex parameter scenarios", async () => {
218
+ mockService.listObjects.mockResolvedValue(mockResponse);
219
+ const result = await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
252
220
  type: "task",
253
221
  scope: "F-feature-1",
254
222
  status: "in-progress",
255
223
  priority: "medium",
256
224
  includeClosed: true,
257
225
  });
258
- expect(mockRepository.getObjects).toHaveBeenCalledWith(true, "F-feature-1", models_1.TrellisObjectType.TASK, models_1.TrellisObjectStatus.IN_PROGRESS, models_1.TrellisObjectPriority.MEDIUM);
259
- expect(result).toEqual({
260
- content: [
261
- {
262
- type: "text",
263
- text: JSON.stringify(filteredObjects, null, 2),
264
- },
265
- ],
226
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, "F-feature-1", models_1.TrellisObjectStatus.IN_PROGRESS, models_1.TrellisObjectPriority.MEDIUM, true);
227
+ expect(result).toEqual(mockResponse);
228
+ });
229
+ describe("array input handling", () => {
230
+ it("should handle array of types", async () => {
231
+ mockService.listObjects.mockResolvedValue(mockResponse);
232
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
233
+ type: ["project", "epic"],
234
+ });
235
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, [models_1.TrellisObjectType.PROJECT, models_1.TrellisObjectType.EPIC], undefined, undefined, undefined, false);
236
+ });
237
+ it("should handle array of statuses", async () => {
238
+ mockService.listObjects.mockResolvedValue(mockResponse);
239
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
240
+ type: "task",
241
+ status: ["open", "in-progress"],
242
+ });
243
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, undefined, [models_1.TrellisObjectStatus.OPEN, models_1.TrellisObjectStatus.IN_PROGRESS], undefined, false);
244
+ });
245
+ it("should handle array of priorities", async () => {
246
+ mockService.listObjects.mockResolvedValue(mockResponse);
247
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
248
+ type: "task",
249
+ priority: ["high", "medium"],
250
+ });
251
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, undefined, undefined, [models_1.TrellisObjectPriority.HIGH, models_1.TrellisObjectPriority.MEDIUM], false);
252
+ });
253
+ it("should handle single element arrays as single values", async () => {
254
+ mockService.listObjects.mockResolvedValue(mockResponse);
255
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
256
+ type: ["task"],
257
+ status: ["open"],
258
+ priority: ["high"],
259
+ });
260
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, undefined, models_1.TrellisObjectStatus.OPEN, models_1.TrellisObjectPriority.HIGH, false);
261
+ });
262
+ it("should handle mixed single and array parameters", async () => {
263
+ mockService.listObjects.mockResolvedValue(mockResponse);
264
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
265
+ type: "task",
266
+ status: ["open", "in-progress"],
267
+ priority: "high",
268
+ });
269
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, undefined, [models_1.TrellisObjectStatus.OPEN, models_1.TrellisObjectStatus.IN_PROGRESS], models_1.TrellisObjectPriority.HIGH, false);
270
+ });
271
+ it("should handle optional type parameter with other filters", async () => {
272
+ mockService.listObjects.mockResolvedValue(mockResponse);
273
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
274
+ status: "open",
275
+ priority: "high",
276
+ });
277
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, undefined, undefined, models_1.TrellisObjectStatus.OPEN, models_1.TrellisObjectPriority.HIGH, false);
278
+ });
279
+ it("should handle all parameters as arrays", async () => {
280
+ mockService.listObjects.mockResolvedValue(mockResponse);
281
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
282
+ type: ["feature", "task"],
283
+ status: ["open", "in-progress"],
284
+ priority: ["high", "medium"],
285
+ });
286
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, [models_1.TrellisObjectType.FEATURE, models_1.TrellisObjectType.TASK], undefined, [models_1.TrellisObjectStatus.OPEN, models_1.TrellisObjectStatus.IN_PROGRESS], [models_1.TrellisObjectPriority.HIGH, models_1.TrellisObjectPriority.MEDIUM], false);
287
+ });
288
+ it("should return error for invalid type in array", async () => {
289
+ const result = await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
290
+ type: ["task", "invalid-type"],
291
+ });
292
+ expect(result).toEqual({
293
+ content: [
294
+ {
295
+ type: "text",
296
+ text: "Error listing objects: Invalid type value: invalid-type",
297
+ },
298
+ ],
299
+ });
300
+ expect(mockService.listObjects).not.toHaveBeenCalled();
301
+ });
302
+ it("should return error for invalid status in array", async () => {
303
+ const result = await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
304
+ type: "task",
305
+ status: ["open", "invalid-status"],
306
+ });
307
+ expect(result).toEqual({
308
+ content: [
309
+ {
310
+ type: "text",
311
+ text: "Error listing objects: Invalid status value: invalid-status",
312
+ },
313
+ ],
314
+ });
315
+ expect(mockService.listObjects).not.toHaveBeenCalled();
316
+ });
317
+ it("should return error for invalid priority in array", async () => {
318
+ const result = await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
319
+ type: "task",
320
+ priority: ["high", "invalid-priority"],
321
+ });
322
+ expect(result).toEqual({
323
+ content: [
324
+ {
325
+ type: "text",
326
+ text: "Error listing objects: Invalid priority value: invalid-priority",
327
+ },
328
+ ],
329
+ });
330
+ expect(mockService.listObjects).not.toHaveBeenCalled();
331
+ });
332
+ it("should return error for multiple invalid values in array", async () => {
333
+ const result = await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
334
+ type: ["task", "invalid-type", "another-invalid"],
335
+ });
336
+ expect(result).toEqual({
337
+ content: [
338
+ {
339
+ type: "text",
340
+ text: "Error listing objects: Invalid type values: invalid-type, another-invalid",
341
+ },
342
+ ],
343
+ });
344
+ expect(mockService.listObjects).not.toHaveBeenCalled();
345
+ });
346
+ it("should handle empty arrays as no filter provided", async () => {
347
+ mockService.listObjects.mockResolvedValue(mockResponse);
348
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
349
+ type: [],
350
+ status: "open",
351
+ });
352
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, undefined, undefined, models_1.TrellisObjectStatus.OPEN, undefined, false);
353
+ });
354
+ it("should return error when all arrays are empty and no other filters", async () => {
355
+ const result = await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
356
+ type: [],
357
+ status: [],
358
+ priority: [],
359
+ });
360
+ expect(result).toEqual({
361
+ content: [
362
+ {
363
+ type: "text",
364
+ text: "Error listing objects: At least one filter parameter (type, status, priority, or scope) must be provided",
365
+ },
366
+ ],
367
+ });
368
+ expect(mockService.listObjects).not.toHaveBeenCalled();
369
+ });
370
+ it("should handle empty parameter object with scope filter", async () => {
371
+ mockService.listObjects.mockResolvedValue(mockResponse);
372
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
373
+ scope: "P-project-1",
374
+ });
375
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, undefined, "P-project-1", undefined, undefined, false);
376
+ });
377
+ // Backward compatibility tests
378
+ it("should maintain backward compatibility with single string values", async () => {
379
+ mockService.listObjects.mockResolvedValue(mockResponse);
380
+ await (0, listObjectsTool_1.handleListObjects)(mockService, mockRepository, {
381
+ type: "task",
382
+ status: "open",
383
+ priority: "high",
384
+ });
385
+ expect(mockService.listObjects).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, undefined, models_1.TrellisObjectStatus.OPEN, models_1.TrellisObjectPriority.HIGH, false);
266
386
  });
267
387
  });
268
388
  });
@@ -1 +1 @@
1
- {"version":3,"file":"listObjectsTool.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/listObjectsTool.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listObjectsTool.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/listObjectsTool.test.ts"],"names":[],"mappings":"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"}