@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,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const TrellisObjectStatus_1 = require("../../models/TrellisObjectStatus");
4
+ const TrellisObjectType_1 = require("../../models/TrellisObjectType");
5
+ const TrellisObjectPriority_1 = require("../../models/TrellisObjectPriority");
6
+ const pruneClosedTool_1 = require("../pruneClosedTool");
7
+ jest.mock("../../models/isClosed", () => ({
8
+ isClosed: jest.fn(),
9
+ }));
10
+ const { isClosed } = require("../../models/isClosed");
11
+ describe("pruneClosedTool", () => {
12
+ let mockRepository;
13
+ beforeEach(() => {
14
+ mockRepository = {
15
+ getObjectById: jest.fn(),
16
+ getObjects: jest.fn(),
17
+ saveObject: jest.fn(),
18
+ deleteObject: jest.fn(),
19
+ };
20
+ isClosed.mockClear();
21
+ });
22
+ describe("handlePruneClosed", () => {
23
+ const createMockObject = (id, status, updatedTime) => ({
24
+ id,
25
+ type: TrellisObjectType_1.TrellisObjectType.TASK,
26
+ title: `Test ${id}`,
27
+ status,
28
+ priority: TrellisObjectPriority_1.TrellisObjectPriority.MEDIUM,
29
+ parent: undefined,
30
+ prerequisites: [],
31
+ affectedFiles: new Map(),
32
+ log: [],
33
+ schema: "1.0",
34
+ childrenIds: [],
35
+ created: new Date().toISOString(),
36
+ updated: updatedTime,
37
+ body: "",
38
+ });
39
+ it("should prune old closed objects", async () => {
40
+ const oldClosedObject = createMockObject("T-old-closed", TrellisObjectStatus_1.TrellisObjectStatus.DONE, new Date(Date.now() - 2 * 60 * 60 * 1000).toISOString());
41
+ mockRepository.getObjects.mockResolvedValue([oldClosedObject]);
42
+ isClosed.mockReturnValue(true);
43
+ mockRepository.deleteObject.mockResolvedValue(undefined);
44
+ const result = await (0, pruneClosedTool_1.handlePruneClosed)(mockRepository, { age: 60 }); // 1 hour
45
+ expect(mockRepository.getObjects).toHaveBeenCalledWith(true, undefined);
46
+ expect(isClosed).toHaveBeenCalledWith(oldClosedObject, 0, [
47
+ oldClosedObject,
48
+ ]);
49
+ expect(mockRepository.deleteObject).toHaveBeenCalledWith("T-old-closed", true);
50
+ expect(result.content[0].text).toContain("Pruned 1 closed objects older than 60 minutes");
51
+ expect(result.content[0].text).toContain("T-old-closed");
52
+ });
53
+ it("should not prune recent closed objects", async () => {
54
+ const recentClosedObject = createMockObject("T-recent-closed", TrellisObjectStatus_1.TrellisObjectStatus.DONE, new Date(Date.now() - 30 * 60 * 1000).toISOString());
55
+ mockRepository.getObjects.mockResolvedValue([recentClosedObject]);
56
+ isClosed.mockReturnValue(true);
57
+ const result = await (0, pruneClosedTool_1.handlePruneClosed)(mockRepository, { age: 60 }); // 1 hour
58
+ expect(mockRepository.getObjects).toHaveBeenCalledWith(true, undefined);
59
+ expect(isClosed).toHaveBeenCalledWith(recentClosedObject, 0, [
60
+ recentClosedObject,
61
+ ]);
62
+ expect(mockRepository.deleteObject).not.toHaveBeenCalled();
63
+ expect(result.content[0].text).toContain("Pruned 0 closed objects older than 60 minutes");
64
+ });
65
+ it("should not prune open objects", async () => {
66
+ const openObject = createMockObject("T-open", TrellisObjectStatus_1.TrellisObjectStatus.IN_PROGRESS, new Date(Date.now() - 2 * 60 * 60 * 1000).toISOString());
67
+ mockRepository.getObjects.mockResolvedValue([openObject]);
68
+ isClosed.mockReturnValue(false);
69
+ const result = await (0, pruneClosedTool_1.handlePruneClosed)(mockRepository, { age: 60 }); // 1 hour
70
+ expect(mockRepository.getObjects).toHaveBeenCalledWith(true, undefined);
71
+ expect(isClosed).toHaveBeenCalledWith(openObject, 0, [openObject]);
72
+ expect(mockRepository.deleteObject).not.toHaveBeenCalled();
73
+ expect(result.content[0].text).toContain("Pruned 0 closed objects older than 60 minutes");
74
+ });
75
+ it("should handle scope parameter", async () => {
76
+ const oldClosedObject = createMockObject("T-scoped-closed", TrellisObjectStatus_1.TrellisObjectStatus.DONE, new Date(Date.now() - 2 * 60 * 60 * 1000).toISOString());
77
+ mockRepository.getObjects.mockResolvedValue([oldClosedObject]);
78
+ isClosed.mockReturnValue(true);
79
+ mockRepository.deleteObject.mockResolvedValue(undefined);
80
+ const result = await (0, pruneClosedTool_1.handlePruneClosed)(mockRepository, {
81
+ age: 60,
82
+ scope: "F-test-feature",
83
+ });
84
+ expect(mockRepository.getObjects).toHaveBeenCalledWith(true, "F-test-feature");
85
+ expect(result.content[0].text).toContain("in scope F-test-feature");
86
+ });
87
+ it("should handle mixed object types and statuses", async () => {
88
+ const oldDoneTask = createMockObject("T-old-done", TrellisObjectStatus_1.TrellisObjectStatus.DONE, new Date(Date.now() - 2 * 60 * 60 * 1000).toISOString());
89
+ const oldWontDoTask = createMockObject("T-old-wont-do", TrellisObjectStatus_1.TrellisObjectStatus.WONT_DO, new Date(Date.now() - 2 * 60 * 60 * 1000).toISOString());
90
+ const recentDoneTask = createMockObject("T-recent-done", TrellisObjectStatus_1.TrellisObjectStatus.DONE, new Date(Date.now() - 30 * 60 * 1000).toISOString());
91
+ const openTask = createMockObject("T-open", TrellisObjectStatus_1.TrellisObjectStatus.IN_PROGRESS, new Date(Date.now() - 2 * 60 * 60 * 1000).toISOString());
92
+ mockRepository.getObjects.mockResolvedValue([
93
+ oldDoneTask,
94
+ oldWontDoTask,
95
+ recentDoneTask,
96
+ openTask,
97
+ ]);
98
+ isClosed.mockImplementation((obj) => obj.status === TrellisObjectStatus_1.TrellisObjectStatus.DONE ||
99
+ obj.status === TrellisObjectStatus_1.TrellisObjectStatus.WONT_DO);
100
+ mockRepository.deleteObject.mockResolvedValue(undefined);
101
+ const result = await (0, pruneClosedTool_1.handlePruneClosed)(mockRepository, { age: 60 });
102
+ expect(mockRepository.deleteObject).toHaveBeenCalledTimes(2);
103
+ expect(mockRepository.deleteObject).toHaveBeenCalledWith("T-old-done", true);
104
+ expect(mockRepository.deleteObject).toHaveBeenCalledWith("T-old-wont-do", true);
105
+ expect(result.content[0].text).toContain("Pruned 2 closed objects");
106
+ expect(result.content[0].text).toContain("T-old-done");
107
+ expect(result.content[0].text).toContain("T-old-wont-do");
108
+ });
109
+ it("should handle deletion failures gracefully", async () => {
110
+ const oldClosedObject1 = createMockObject("T-old-closed-1", TrellisObjectStatus_1.TrellisObjectStatus.DONE, new Date(Date.now() - 2 * 60 * 60 * 1000).toISOString());
111
+ const oldClosedObject2 = createMockObject("T-old-closed-2", TrellisObjectStatus_1.TrellisObjectStatus.DONE, new Date(Date.now() - 2 * 60 * 60 * 1000).toISOString());
112
+ mockRepository.getObjects.mockResolvedValue([
113
+ oldClosedObject1,
114
+ oldClosedObject2,
115
+ ]);
116
+ isClosed.mockReturnValue(true);
117
+ // First deletion fails, second succeeds
118
+ mockRepository.deleteObject
119
+ .mockRejectedValueOnce(new Error("Permission denied"))
120
+ .mockResolvedValueOnce(undefined);
121
+ // Mock console.error to check error logging
122
+ const consoleSpy = jest.spyOn(console, "error").mockImplementation();
123
+ const result = await (0, pruneClosedTool_1.handlePruneClosed)(mockRepository, { age: 60 });
124
+ expect(mockRepository.deleteObject).toHaveBeenCalledTimes(2);
125
+ expect(consoleSpy).toHaveBeenCalledWith("Failed to delete object T-old-closed-1:", expect.any(Error));
126
+ expect(result.content[0].text).toContain("Pruned 1 closed objects");
127
+ expect(result.content[0].text).toContain("T-old-closed-2");
128
+ expect(result.content[0].text).not.toContain("T-old-closed-1");
129
+ consoleSpy.mockRestore();
130
+ });
131
+ it("should handle repository getObjects error", async () => {
132
+ const errorMessage = "Repository connection failed";
133
+ mockRepository.getObjects.mockRejectedValue(new Error(errorMessage));
134
+ const result = await (0, pruneClosedTool_1.handlePruneClosed)(mockRepository, { age: 60 });
135
+ expect(result.content[0].text).toContain("Error pruning closed objects");
136
+ expect(result.content[0].text).toContain(errorMessage);
137
+ });
138
+ it("should handle empty object list", async () => {
139
+ mockRepository.getObjects.mockResolvedValue([]);
140
+ const result = await (0, pruneClosedTool_1.handlePruneClosed)(mockRepository, { age: 60 });
141
+ expect(mockRepository.deleteObject).not.toHaveBeenCalled();
142
+ expect(result.content[0].text).toContain("Pruned 0 closed objects");
143
+ });
144
+ it("should handle zero age parameter", async () => {
145
+ const oldClosedObject = createMockObject("T-old-closed", TrellisObjectStatus_1.TrellisObjectStatus.DONE, new Date(Date.now() - 1000).toISOString());
146
+ mockRepository.getObjects.mockResolvedValue([oldClosedObject]);
147
+ isClosed.mockReturnValue(true);
148
+ mockRepository.deleteObject.mockResolvedValue(undefined);
149
+ const result = await (0, pruneClosedTool_1.handlePruneClosed)(mockRepository, { age: 0 });
150
+ expect(mockRepository.deleteObject).toHaveBeenCalledWith("T-old-closed", true);
151
+ expect(result.content[0].text).toContain("Pruned 1 closed objects older than 0 minutes");
152
+ });
153
+ it("should handle large age parameter", async () => {
154
+ const veryOldObject = createMockObject("T-ancient", TrellisObjectStatus_1.TrellisObjectStatus.DONE, new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString());
155
+ mockRepository.getObjects.mockResolvedValue([veryOldObject]);
156
+ isClosed.mockReturnValue(true);
157
+ mockRepository.deleteObject.mockResolvedValue(undefined);
158
+ const result = await (0, pruneClosedTool_1.handlePruneClosed)(mockRepository, { age: 999999 });
159
+ expect(mockRepository.deleteObject).not.toHaveBeenCalled();
160
+ expect(result.content[0].text).toContain("Pruned 0 closed objects older than 999999 minutes");
161
+ });
162
+ it("should handle non-Error exceptions", async () => {
163
+ const errorValue = "String error";
164
+ mockRepository.getObjects.mockRejectedValue(errorValue);
165
+ const result = await (0, pruneClosedTool_1.handlePruneClosed)(mockRepository, { age: 60 });
166
+ expect(result.content[0].text).toContain("Error pruning closed objects");
167
+ expect(result.content[0].text).toContain(errorValue);
168
+ });
169
+ });
170
+ });
171
+ //# sourceMappingURL=pruneClosedTool.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pruneClosedTool.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/pruneClosedTool.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=replaceObjectBodyRegexTool.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replaceObjectBodyRegexTool.test.d.ts","sourceRoot":"","sources":["../../../src/tools/__tests__/replaceObjectBodyRegexTool.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const models_1 = require("../../models");
4
+ const replaceObjectBodyRegexTool_1 = require("../replaceObjectBodyRegexTool");
5
+ describe("replaceObjectBodyRegexTool", () => {
6
+ let mockRepository;
7
+ beforeEach(() => {
8
+ mockRepository = {
9
+ getObjectById: jest.fn(),
10
+ getObjects: jest.fn(),
11
+ saveObject: jest.fn(),
12
+ deleteObject: jest.fn(),
13
+ };
14
+ jest.clearAllMocks();
15
+ });
16
+ describe("handleReplaceObjectBodyRegex", () => {
17
+ const mockTrellisObject = {
18
+ id: "T-test-task",
19
+ type: models_1.TrellisObjectType.TASK,
20
+ title: "Test Task",
21
+ status: models_1.TrellisObjectStatus.OPEN,
22
+ priority: models_1.TrellisObjectPriority.MEDIUM,
23
+ parent: "F-test-feature",
24
+ prerequisites: [],
25
+ affectedFiles: new Map(),
26
+ log: [],
27
+ schema: "1.0",
28
+ childrenIds: [],
29
+ body: "This is the old content that needs to be replaced with new content.",
30
+ created: "2025-01-15T10:00:00Z",
31
+ updated: "2025-01-15T10:00:00Z",
32
+ };
33
+ it("should successfully replace text using simple regex pattern", async () => {
34
+ mockRepository.getObjectById.mockResolvedValue(mockTrellisObject);
35
+ mockRepository.saveObject.mockResolvedValue();
36
+ const result = await (0, replaceObjectBodyRegexTool_1.handleReplaceObjectBodyRegex)(mockRepository, {
37
+ id: "T-test-task",
38
+ regex: "old content",
39
+ replacement: "new content",
40
+ });
41
+ const expectedUpdatedObject = {
42
+ ...mockTrellisObject,
43
+ body: "This is the new content that needs to be replaced with new content.",
44
+ };
45
+ expect(mockRepository.getObjectById).toHaveBeenCalledWith("T-test-task");
46
+ expect(mockRepository.saveObject).toHaveBeenCalledWith(expectedUpdatedObject);
47
+ expect(result.content[0].text).toContain('Successfully replaced content in object body using pattern "old content"');
48
+ expect(result.content[0].text).toContain("T-test-task");
49
+ });
50
+ it("should successfully replace text using regex with backreferences", async () => {
51
+ const objectWithNames = {
52
+ ...mockTrellisObject,
53
+ body: "Name: John Doe",
54
+ };
55
+ mockRepository.getObjectById.mockResolvedValue(objectWithNames);
56
+ mockRepository.saveObject.mockResolvedValue();
57
+ const result = await (0, replaceObjectBodyRegexTool_1.handleReplaceObjectBodyRegex)(mockRepository, {
58
+ id: "T-test-task",
59
+ regex: "Name: (\\w+) (\\w+)",
60
+ replacement: "Name: $2, $1",
61
+ });
62
+ const expectedUpdatedObject = {
63
+ ...objectWithNames,
64
+ body: "Name: Doe, John",
65
+ };
66
+ expect(mockRepository.saveObject).toHaveBeenCalledWith(expectedUpdatedObject);
67
+ expect(result.content[0].text).toContain("Successfully replaced content");
68
+ });
69
+ it("should handle multiline regex patterns", async () => {
70
+ const objectWithMultilineContent = {
71
+ ...mockTrellisObject,
72
+ body: `Section A:
73
+ This is old content
74
+ that spans multiple lines
75
+ End Section A`,
76
+ };
77
+ mockRepository.getObjectById.mockResolvedValue(objectWithMultilineContent);
78
+ mockRepository.saveObject.mockResolvedValue();
79
+ const result = await (0, replaceObjectBodyRegexTool_1.handleReplaceObjectBodyRegex)(mockRepository, {
80
+ id: "T-test-task",
81
+ regex: "Section A:.*?End Section A",
82
+ replacement: "Section A:\nThis is new content\nEnd Section A",
83
+ });
84
+ const expectedUpdatedObject = {
85
+ ...objectWithMultilineContent,
86
+ body: "Section A:\nThis is new content\nEnd Section A",
87
+ };
88
+ expect(mockRepository.saveObject).toHaveBeenCalledWith(expectedUpdatedObject);
89
+ expect(result.content[0].text).toContain("Successfully replaced content");
90
+ });
91
+ it("should allow multiple occurrences when specified", async () => {
92
+ const objectWithRepeats = {
93
+ ...mockTrellisObject,
94
+ body: "Replace this word and also replace this word again.",
95
+ };
96
+ mockRepository.getObjectById.mockResolvedValue(objectWithRepeats);
97
+ mockRepository.saveObject.mockResolvedValue();
98
+ const result = await (0, replaceObjectBodyRegexTool_1.handleReplaceObjectBodyRegex)(mockRepository, {
99
+ id: "T-test-task",
100
+ regex: "replace",
101
+ replacement: "update",
102
+ allowMultipleOccurrences: true,
103
+ });
104
+ const expectedUpdatedObject = {
105
+ ...objectWithRepeats,
106
+ body: "Replace this word and also update this word again.",
107
+ };
108
+ expect(mockRepository.saveObject).toHaveBeenCalledWith(expectedUpdatedObject);
109
+ expect(result.content[0].text).toContain("Successfully replaced content");
110
+ });
111
+ it("should reject multiple occurrences when not allowed", async () => {
112
+ const objectWithRepeats = {
113
+ ...mockTrellisObject,
114
+ body: "test content and more test content",
115
+ };
116
+ mockRepository.getObjectById.mockResolvedValue(objectWithRepeats);
117
+ const result = await (0, replaceObjectBodyRegexTool_1.handleReplaceObjectBodyRegex)(mockRepository, {
118
+ id: "T-test-task",
119
+ regex: "test",
120
+ replacement: "demo",
121
+ });
122
+ expect(mockRepository.saveObject).not.toHaveBeenCalled();
123
+ expect(result.content[0].text).toContain("Found 2 matches for pattern");
124
+ expect(result.content[0].text).toContain("allowMultipleOccurrences is false");
125
+ });
126
+ it("should return error when object is not found", async () => {
127
+ mockRepository.getObjectById.mockResolvedValue(null);
128
+ const result = await (0, replaceObjectBodyRegexTool_1.handleReplaceObjectBodyRegex)(mockRepository, {
129
+ id: "T-nonexistent",
130
+ regex: "old",
131
+ replacement: "new",
132
+ });
133
+ expect(mockRepository.getObjectById).toHaveBeenCalledWith("T-nonexistent");
134
+ expect(mockRepository.saveObject).not.toHaveBeenCalled();
135
+ expect(result.content[0].text).toBe("Error: Object with ID 'T-nonexistent' not found");
136
+ });
137
+ it("should return error when object has no body content", async () => {
138
+ const objectWithoutBody = {
139
+ ...mockTrellisObject,
140
+ body: "",
141
+ };
142
+ mockRepository.getObjectById.mockResolvedValue(objectWithoutBody);
143
+ const result = await (0, replaceObjectBodyRegexTool_1.handleReplaceObjectBodyRegex)(mockRepository, {
144
+ id: "T-test-task",
145
+ regex: "old",
146
+ replacement: "new",
147
+ });
148
+ expect(mockRepository.saveObject).not.toHaveBeenCalled();
149
+ expect(result.content[0].text).toBe("Error: Object with ID 'T-test-task' has no body content to replace");
150
+ });
151
+ it("should inform user when no matches are found", async () => {
152
+ mockRepository.getObjectById.mockResolvedValue(mockTrellisObject);
153
+ const result = await (0, replaceObjectBodyRegexTool_1.handleReplaceObjectBodyRegex)(mockRepository, {
154
+ id: "T-test-task",
155
+ regex: "nonexistent pattern",
156
+ replacement: "new content",
157
+ });
158
+ expect(mockRepository.saveObject).not.toHaveBeenCalled();
159
+ expect(result.content[0].text).toBe('No matches found for pattern "nonexistent pattern" in object body. Body remains unchanged.');
160
+ });
161
+ it("should handle invalid regex patterns gracefully", async () => {
162
+ mockRepository.getObjectById.mockResolvedValue(mockTrellisObject);
163
+ const result = await (0, replaceObjectBodyRegexTool_1.handleReplaceObjectBodyRegex)(mockRepository, {
164
+ id: "T-test-task",
165
+ regex: "[invalid regex",
166
+ replacement: "new content",
167
+ });
168
+ expect(mockRepository.saveObject).not.toHaveBeenCalled();
169
+ expect(result.content[0].text).toContain("Error replacing object body:");
170
+ expect(result.content[0].text).toContain("Invalid regex pattern");
171
+ });
172
+ it("should handle repository errors gracefully", async () => {
173
+ mockRepository.getObjectById.mockRejectedValue(new Error("Database connection failed"));
174
+ const result = await (0, replaceObjectBodyRegexTool_1.handleReplaceObjectBodyRegex)(mockRepository, {
175
+ id: "T-test-task",
176
+ regex: "old",
177
+ replacement: "new",
178
+ });
179
+ expect(result.content[0].text).toBe("Error replacing object body: Database connection failed");
180
+ });
181
+ it("should handle save errors gracefully", async () => {
182
+ mockRepository.getObjectById.mockResolvedValue(mockTrellisObject);
183
+ mockRepository.saveObject.mockRejectedValue(new Error("Failed to save"));
184
+ const result = await (0, replaceObjectBodyRegexTool_1.handleReplaceObjectBodyRegex)(mockRepository, {
185
+ id: "T-test-task",
186
+ regex: "old content",
187
+ replacement: "new content",
188
+ });
189
+ expect(result.content[0].text).toBe("Error replacing object body: Failed to save");
190
+ });
191
+ it("should handle empty regex pattern", async () => {
192
+ mockRepository.getObjectById.mockResolvedValue(mockTrellisObject);
193
+ const result = await (0, replaceObjectBodyRegexTool_1.handleReplaceObjectBodyRegex)(mockRepository, {
194
+ id: "T-test-task",
195
+ regex: "",
196
+ replacement: "new content",
197
+ });
198
+ expect(mockRepository.saveObject).not.toHaveBeenCalled();
199
+ expect(result.content[0].text).toContain("Regex pattern cannot be empty");
200
+ });
201
+ it("should preserve object metadata when updating body", async () => {
202
+ mockRepository.getObjectById.mockResolvedValue(mockTrellisObject);
203
+ mockRepository.saveObject.mockResolvedValue();
204
+ await (0, replaceObjectBodyRegexTool_1.handleReplaceObjectBodyRegex)(mockRepository, {
205
+ id: "T-test-task",
206
+ regex: "old content",
207
+ replacement: "new content",
208
+ });
209
+ const savedObject = mockRepository.saveObject.mock.calls[0][0];
210
+ expect(savedObject.id).toBe(mockTrellisObject.id);
211
+ expect(savedObject.type).toBe(mockTrellisObject.type);
212
+ expect(savedObject.title).toBe(mockTrellisObject.title);
213
+ expect(savedObject.status).toBe(mockTrellisObject.status);
214
+ expect(savedObject.priority).toBe(mockTrellisObject.priority);
215
+ expect(savedObject.prerequisites).toBe(mockTrellisObject.prerequisites);
216
+ expect(savedObject.created).toBe(mockTrellisObject.created);
217
+ expect(savedObject.updated).toBe(mockTrellisObject.updated);
218
+ expect(savedObject.body).toBe("This is the new content that needs to be replaced with new content.");
219
+ });
220
+ it("should handle complex patterns with context", async () => {
221
+ const objectWithSections = {
222
+ ...mockTrellisObject,
223
+ body: `# Header 1
224
+ Some content here
225
+
226
+ ## Section to Update
227
+ Old implementation details
228
+ End of section
229
+
230
+ # Header 2
231
+ Other content`,
232
+ };
233
+ mockRepository.getObjectById.mockResolvedValue(objectWithSections);
234
+ mockRepository.saveObject.mockResolvedValue();
235
+ const result = await (0, replaceObjectBodyRegexTool_1.handleReplaceObjectBodyRegex)(mockRepository, {
236
+ id: "T-test-task",
237
+ regex: "(## Section to Update\\s+).*?(\\s+End of section)",
238
+ replacement: "$1New implementation details$2",
239
+ });
240
+ const expectedBody = `# Header 1
241
+ Some content here
242
+
243
+ ## Section to Update
244
+ New implementation details
245
+ End of section
246
+
247
+ # Header 2
248
+ Other content`;
249
+ const expectedUpdatedObject = {
250
+ ...objectWithSections,
251
+ body: expectedBody,
252
+ };
253
+ expect(mockRepository.saveObject).toHaveBeenCalledWith(expectedUpdatedObject);
254
+ expect(result.content[0].text).toContain("Successfully replaced content");
255
+ });
256
+ });
257
+ });
258
+ //# sourceMappingURL=replaceObjectBodyRegexTool.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replaceObjectBodyRegexTool.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/replaceObjectBodyRegexTool.test.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,8 @@ describe("updateObjectTool", () => {
33
33
  schema: "1.0",
34
34
  childrenIds: [],
35
35
  body: "This is a test task",
36
+ created: "2025-01-15T10:00:00Z",
37
+ updated: "2025-01-15T10:00:00Z",
36
38
  };
37
39
  it("should successfully update an object with all properties", async () => {
38
40
  mockRepository.getObjectById.mockResolvedValue(mockTrellisObject);
@@ -1 +1 @@
1
- {"version":3,"file":"updateObjectTool.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/updateObjectTool.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updateObjectTool.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/updateObjectTool.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export declare const activateTool: {
2
2
  readonly name: "activate";
3
- readonly description: "Activates the task trellis system in local or remote mode";
3
+ readonly description: "Activates the task trellis system in local or remote mode\n\nUse this tool to initialize and configure the task trellis system for operation. Must be called before any other task management operations can be performed.\n\nActivation modes:\n- 'local': Uses local file system for task storage and management\n- 'remote': Connects to remote task trellis service via API\n\nLocal mode requirements:\n- 'projectRoot': Absolute path to project directory where tasks will be stored\n- Creates local .task-trellis directory for data persistence\n- Suitable for single-user development workflows\n- No network dependencies once activated\n\nRemote mode requirements: \n- 'apiToken': Authentication token for remote service access\n- 'remoteProjectId': Unique identifier for remote project instance\n- 'url': Service endpoint (optional, uses default if not specified)\n- Enables collaborative task management across distributed teams\n- Requires network connectivity for all operations\n\nActivation process:\n1. Validates mode-specific parameters and connectivity\n2. Initializes data storage (local directory or remote connection)\n3. Verifies authentication and permissions\n4. Sets up task trellis schema and configuration\n5. Prepares system for task creation and management\n\nError conditions:\n- Invalid projectRoot path (local mode)\n- Authentication failure (remote mode)\n- Network connectivity issues (remote mode)\n- Insufficient file system permissions (local mode)\n\nMust be successfully completed before using any other task trellis tools. Re-activation with different parameters switches modes and resets system state.";
4
4
  readonly inputSchema: {
5
5
  readonly type: "object";
6
6
  readonly properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"activateTool.d.ts","sourceRoot":"","sources":["../../src/tools/activateTool.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Bf,CAAC;AAEX,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO;;;;;EAqB3C"}
1
+ {"version":3,"file":"activateTool.d.ts","sourceRoot":"","sources":["../../src/tools/activateTool.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEf,CAAC;AAEX,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO;;;;;EAqB3C"}
@@ -4,7 +4,41 @@ exports.activateTool = void 0;
4
4
  exports.handleActivate = handleActivate;
5
5
  exports.activateTool = {
6
6
  name: "activate",
7
- description: "Activates the task trellis system in local or remote mode",
7
+ description: `Activates the task trellis system in local or remote mode
8
+
9
+ Use this tool to initialize and configure the task trellis system for operation. Must be called before any other task management operations can be performed.
10
+
11
+ Activation modes:
12
+ - 'local': Uses local file system for task storage and management
13
+ - 'remote': Connects to remote task trellis service via API
14
+
15
+ Local mode requirements:
16
+ - 'projectRoot': Absolute path to project directory where tasks will be stored
17
+ - Creates local .task-trellis directory for data persistence
18
+ - Suitable for single-user development workflows
19
+ - No network dependencies once activated
20
+
21
+ Remote mode requirements:
22
+ - 'apiToken': Authentication token for remote service access
23
+ - 'remoteProjectId': Unique identifier for remote project instance
24
+ - 'url': Service endpoint (optional, uses default if not specified)
25
+ - Enables collaborative task management across distributed teams
26
+ - Requires network connectivity for all operations
27
+
28
+ Activation process:
29
+ 1. Validates mode-specific parameters and connectivity
30
+ 2. Initializes data storage (local directory or remote connection)
31
+ 3. Verifies authentication and permissions
32
+ 4. Sets up task trellis schema and configuration
33
+ 5. Prepares system for task creation and management
34
+
35
+ Error conditions:
36
+ - Invalid projectRoot path (local mode)
37
+ - Authentication failure (remote mode)
38
+ - Network connectivity issues (remote mode)
39
+ - Insufficient file system permissions (local mode)
40
+
41
+ Must be successfully completed before using any other task trellis tools. Re-activation with different parameters switches modes and resets system state.`,
8
42
  inputSchema: {
9
43
  type: "object",
10
44
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"activateTool.js","sourceRoot":"","sources":["../../src/tools/activateTool.ts"],"names":[],"mappings":";;;AAgCA,wCAqBC;AArDY,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,2DAA2D;IACxE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;gBACzB,WAAW,EAAE,oCAAoC;aAClD;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6CAA6C;aAC3D;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sCAAsC;aACpD;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uDAAuD;aACrE;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC5D;SACF;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB;CACO,CAAC;AAEX,SAAgB,cAAc,CAAC,IAAa;IAC1C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAK5C,CAAC;IAEF,6DAA6D;IAC7D,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,cAAc,IAAI,CAAC,SAAS,CAChC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,EACpC,IAAI,EACJ,CAAC,CACF,EAAE;aACJ;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"activateTool.js","sourceRoot":"","sources":["../../src/tools/activateTool.ts"],"names":[],"mappings":";;;AAkEA,wCAqBC;AAvFY,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0JAkC2I;IACxJ,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;gBACzB,WAAW,EAAE,oCAAoC;aAClD;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6CAA6C;aAC3D;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sCAAsC;aACpD;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uDAAuD;aACrE;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC5D;SACF;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB;CACO,CAAC;AAEX,SAAgB,cAAc,CAAC,IAAa;IAC1C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAK5C,CAAC;IAEF,6DAA6D;IAC7D,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,cAAc,IAAI,CAAC,SAAS,CAChC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,EACpC,IAAI,EACJ,CAAC,CACF,EAAE;aACJ;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Repository } from "../repositories";
2
2
  export declare const appendObjectLogTool: {
3
3
  readonly name: "append_object_log";
4
- readonly description: "Appends content to an object's log in the task trellis system";
4
+ readonly description: "Appends content to an object's log in the task trellis system\n\nUse this tool to add progress updates, notes, or activity records to an object's audit trail. Essential for tracking work history, documenting decisions, and maintaining transparency in task execution.\n\nLog entry purposes:\n- Record progress milestones and status changes\n- Document challenges encountered and solutions applied\n- Note important decisions or changes in approach\n- Track time spent or resources used\n- Log external dependencies or blockers\n- Record completion details and outcomes\n\nLog content guidelines:\n- Use clear, descriptive entries with context\n- Include timestamps (automatically added by system)\n- Reference specific files, commits, or external resources when relevant\n- Note any changes to scope, requirements, or approach\n- Document lessons learned or insights gained\n\nActivity tracking patterns:\n- Starting work: \"Started implementation of feature X\"\n- Progress updates: \"Completed database schema changes, moving to API layer\"\n- Blocking issues: \"Blocked on external API access, contacted team\"\n- Problem resolution: \"Resolved memory leak by optimizing data structure\"\n- Completion: \"Task completed, all tests passing, PR submitted\"\n\nThe log creates a permanent audit trail that helps with project retrospectives, debugging issues, and understanding work evolution over time.";
5
5
  readonly inputSchema: {
6
6
  readonly type: "object";
7
7
  readonly properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"appendObjectLogTool.d.ts","sourceRoot":"","sources":["../../src/tools/appendObjectLogTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;CAiBtB,CAAC;AAEX,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,OAAO;;;;;GAoDd"}
1
+ {"version":3,"file":"appendObjectLogTool.d.ts","sourceRoot":"","sources":["../../src/tools/appendObjectLogTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;CA2CtB,CAAC;AAEX,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,OAAO;;;;;GAoDd"}