@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
@@ -2,9 +2,40 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pruneClosedTool = void 0;
4
4
  exports.handlePruneClosed = handlePruneClosed;
5
+ const isClosed_1 = require("../models/isClosed");
5
6
  exports.pruneClosedTool = {
6
7
  name: "prune_closed",
7
- description: "Prunes closed objects from the task trellis system",
8
+ description: `Prunes closed objects from the task trellis system
9
+
10
+ Use this tool for maintenance and cleanup of completed, cancelled, or otherwise closed objects that are no longer needed. Essential for system hygiene and performance optimization.
11
+
12
+ Pruning criteria:
13
+ - 'age': Minimum age in minutes since object closure (required)
14
+ - 'scope': Limit pruning to specific project or area (optional)
15
+ - Objects must be in closed states (completed, cancelled, archived)
16
+ - Objects must not have active dependencies or relationships
17
+
18
+ Safety mechanisms:
19
+ - Only removes truly closed objects (completed, cancelled, etc.)
20
+ - Validates no active objects depend on pruned items
21
+ - Preserves objects referenced by active work
22
+ - Maintains referential integrity of remaining system
23
+
24
+ Common usage patterns:
25
+ - Daily cleanup: age=1440 (24 hours)
26
+ - Weekly maintenance: age=10080 (7 days)
27
+ - Project closure: scope='project-name', age=4320 (3 days)
28
+ - System cleanup: age=43200 (30 days)
29
+
30
+ Pruning benefits:
31
+ - Reduces database size and improves query performance
32
+ - Removes clutter from active task views
33
+ - Prevents accumulation of obsolete work items
34
+ - Maintains focus on current and relevant tasks
35
+
36
+ Use regularly as part of system maintenance to keep the task trellis clean and performant. Consider project lifecycles and audit requirements when setting age thresholds.
37
+
38
+ This operation is permanent - pruned objects cannot be recovered.`,
8
39
  inputSchema: {
9
40
  type: "object",
10
41
  properties: {
@@ -20,16 +51,56 @@ exports.pruneClosedTool = {
20
51
  required: ["age"],
21
52
  },
22
53
  };
23
- function handlePruneClosed(repository, args) {
54
+ async function handlePruneClosed(repository, args) {
24
55
  const { scope, age } = args;
25
- // No-op implementation - just return the received parameters
26
- return {
27
- content: [
28
- {
29
- type: "text",
30
- text: `Pruned closed objects: ${JSON.stringify({ scope, age }, null, 2)}`,
31
- },
32
- ],
33
- };
56
+ try {
57
+ // Get all objects including closed ones
58
+ const objects = await repository.getObjects(true, scope);
59
+ // Filter to only closed objects
60
+ const closedObjects = objects.filter(isClosed_1.isClosed);
61
+ // Calculate cutoff time (age in minutes ago)
62
+ const cutoffTime = new Date(Date.now() - age * 60 * 1000);
63
+ // Filter to objects older than cutoff
64
+ const objectsToDelete = closedObjects.filter((obj) => {
65
+ const updatedTime = new Date(obj.updated);
66
+ return updatedTime < cutoffTime;
67
+ });
68
+ // Delete each object
69
+ const deletedIds = [];
70
+ for (const obj of objectsToDelete) {
71
+ try {
72
+ await repository.deleteObject(obj.id, true);
73
+ deletedIds.push(obj.id);
74
+ }
75
+ catch (error) {
76
+ // Continue with other objects even if one fails
77
+ console.error(`Failed to delete object ${obj.id}:`, error);
78
+ }
79
+ }
80
+ const message = scope
81
+ ? `Pruned ${deletedIds.length} closed objects older than ${age} minutes in scope ${scope}`
82
+ : `Pruned ${deletedIds.length} closed objects older than ${age} minutes`;
83
+ return {
84
+ content: [
85
+ {
86
+ type: "text",
87
+ text: `${message}${deletedIds.length > 0
88
+ ? `
89
+ Deleted objects: ${deletedIds.join(", ")}`
90
+ : ""}`,
91
+ },
92
+ ],
93
+ };
94
+ }
95
+ catch (error) {
96
+ return {
97
+ content: [
98
+ {
99
+ type: "text",
100
+ text: `Error pruning closed objects: ${error instanceof Error ? error.message : String(error)}`,
101
+ },
102
+ ],
103
+ };
104
+ }
34
105
  }
35
106
  //# sourceMappingURL=pruneClosedTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pruneClosedTool.js","sourceRoot":"","sources":["../../src/tools/pruneClosedTool.ts"],"names":[],"mappings":";;;AAqBA,8CAmBC;AAtCY,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,oDAAoD;IACjE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wCAAwC;aACtD;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yDAAyD;aACvE;SACF;QACD,QAAQ,EAAE,CAAC,KAAK,CAAC;KAClB;CACO,CAAC;AAEX,SAAgB,iBAAiB,CAAC,UAAsB,EAAE,IAAa;IACrE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAGtB,CAAC;IAEF,6DAA6D;IAC7D,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,0BAA0B,IAAI,CAAC,SAAS,CAC5C,EAAE,KAAK,EAAE,GAAG,EAAE,EACd,IAAI,EACJ,CAAC,CACF,EAAE;aACJ;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"pruneClosedTool.js","sourceRoot":"","sources":["../../src/tools/pruneClosedTool.ts"],"names":[],"mappings":";;;AAoDA,8CA6DC;AAhHD,iDAA8C;AAEjC,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kEA8BmD;IAChE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wCAAwC;aACtD;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yDAAyD;aACvE;SACF;QACD,QAAQ,EAAE,CAAC,KAAK,CAAC;KAClB;CACO,CAAC;AAEJ,KAAK,UAAU,iBAAiB,CAAC,UAAsB,EAAE,IAAa;IAC3E,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAGtB,CAAC;IAEF,IAAI,CAAC;QACH,wCAAwC;QACxC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEzD,gCAAgC;QAChC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,mBAAQ,CAAC,CAAC;QAE/C,6CAA6C;QAC7C,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAE1D,sCAAsC;QACtC,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACnD,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO,WAAW,GAAG,UAAU,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC5C,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gDAAgD;gBAChD,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK;YACnB,CAAC,CAAC,UAAU,UAAU,CAAC,MAAM,8BAA8B,GAAG,qBAAqB,KAAK,EAAE;YAC1F,CAAC,CAAC,UAAU,UAAU,CAAC,MAAM,8BAA8B,GAAG,UAAU,CAAC;QAE3E,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,GAAG,OAAO,GACd,UAAU,CAAC,MAAM,GAAG,CAAC;wBACnB,CAAC,CAAC;mBACG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBAC5B,CAAC,CAAC,EACN,EAAE;iBACH;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBAChG;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { Repository } from "../repositories";
2
+ export declare const replaceObjectBodyRegexTool: {
3
+ readonly name: "replace_object_body_regex";
4
+ readonly description: "Replaces portions of an object's body using regular expressions\n\nUse this tool to make targeted edits to specific sections of an object's body content without recreating the entire text. This is safer and more efficient than wholesale body replacement for surgical text modifications.\n\nThe tool uses regex pattern matching with multiline and global capabilities, similar to Python's re.sub(). When allowMultipleOccurrences is false (default), it prevents unintended bulk replacements by throwing an error if multiple matches are found.\n\nRegex Features:\n- Multiline matching: patterns can span multiple lines\n- Dot-all mode: . matches newlines \n- Backreferences: use \\1, \\2, etc. in replacement text\n- Case-sensitive matching (use (?i) flag in pattern for case-insensitive)\n\nCommon use cases:\n- Update specific sections of documentation\n- Modify code snippets within object descriptions\n- Replace outdated information while preserving structure\n- Update specific parameters or values\n- Fix formatting or content errors in targeted areas\n\nSafety features:\n- Single-match enforcement (unless explicitly allowed)\n- Pattern validation before execution\n- Graceful error handling with detailed messages\n- Original content preservation on pattern mismatch\n\nExample patterns:\n- Simple text: \"old text\" → \"new text\"\n- With context: \"(section:\\s*)old content(\\s*end)\" → \"\\1new content\\2\" \n- Multi-line: \"BEGIN.*?END\" → \"BEGIN\\nnew content\\nEND\"\n- Backreferences: \"(\\w+) (\\w+)\" → \"\\2, \\1\"\n\nThe replacement preserves all object metadata and relationships while only modifying the body content that matches your pattern.";
5
+ readonly inputSchema: {
6
+ readonly type: "object";
7
+ readonly properties: {
8
+ readonly id: {
9
+ readonly type: "string";
10
+ readonly description: "ID of the object whose body should be modified";
11
+ };
12
+ readonly regex: {
13
+ readonly type: "string";
14
+ readonly description: "Regular expression pattern to match content in the body";
15
+ };
16
+ readonly replacement: {
17
+ readonly type: "string";
18
+ readonly description: "Replacement text (may contain backreferences like \\1, \\2, etc.)";
19
+ };
20
+ readonly allowMultipleOccurrences: {
21
+ readonly type: "boolean";
22
+ readonly description: "Allow replacing multiple pattern matches (defaults to false)";
23
+ readonly default: false;
24
+ };
25
+ };
26
+ readonly required: readonly ["id", "regex", "replacement"];
27
+ };
28
+ };
29
+ export declare function handleReplaceObjectBodyRegex(repository: Repository, args: unknown): Promise<{
30
+ content: {
31
+ type: string;
32
+ text: string;
33
+ }[];
34
+ }>;
35
+ //# sourceMappingURL=replaceObjectBodyRegexTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replaceObjectBodyRegexTool.d.ts","sourceRoot":"","sources":["../../src/tools/replaceObjectBodyRegexTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;CA2D7B,CAAC;AAEX,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,OAAO;;;;;GAiGd"}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.replaceObjectBodyRegexTool = void 0;
4
+ exports.handleReplaceObjectBodyRegex = handleReplaceObjectBodyRegex;
5
+ const replaceStringWithRegex_1 = require("../utils/replaceStringWithRegex");
6
+ const MultipleMatchesError_1 = require("../utils/MultipleMatchesError");
7
+ exports.replaceObjectBodyRegexTool = {
8
+ name: "replace_object_body_regex",
9
+ description: `Replaces portions of an object's body using regular expressions
10
+
11
+ Use this tool to make targeted edits to specific sections of an object's body content without recreating the entire text. This is safer and more efficient than wholesale body replacement for surgical text modifications.
12
+
13
+ The tool uses regex pattern matching with multiline and global capabilities, similar to Python's re.sub(). When allowMultipleOccurrences is false (default), it prevents unintended bulk replacements by throwing an error if multiple matches are found.
14
+
15
+ Regex Features:
16
+ - Multiline matching: patterns can span multiple lines
17
+ - Dot-all mode: . matches newlines
18
+ - Backreferences: use \\1, \\2, etc. in replacement text
19
+ - Case-sensitive matching (use (?i) flag in pattern for case-insensitive)
20
+
21
+ Common use cases:
22
+ - Update specific sections of documentation
23
+ - Modify code snippets within object descriptions
24
+ - Replace outdated information while preserving structure
25
+ - Update specific parameters or values
26
+ - Fix formatting or content errors in targeted areas
27
+
28
+ Safety features:
29
+ - Single-match enforcement (unless explicitly allowed)
30
+ - Pattern validation before execution
31
+ - Graceful error handling with detailed messages
32
+ - Original content preservation on pattern mismatch
33
+
34
+ Example patterns:
35
+ - Simple text: "old text" → "new text"
36
+ - With context: "(section:\\s*)old content(\\s*end)" → "\\1new content\\2"
37
+ - Multi-line: "BEGIN.*?END" → "BEGIN\\nnew content\\nEND"
38
+ - Backreferences: "(\\w+) (\\w+)" → "\\2, \\1"
39
+
40
+ The replacement preserves all object metadata and relationships while only modifying the body content that matches your pattern.`,
41
+ inputSchema: {
42
+ type: "object",
43
+ properties: {
44
+ id: {
45
+ type: "string",
46
+ description: "ID of the object whose body should be modified",
47
+ },
48
+ regex: {
49
+ type: "string",
50
+ description: "Regular expression pattern to match content in the body",
51
+ },
52
+ replacement: {
53
+ type: "string",
54
+ description: "Replacement text (may contain backreferences like \\1, \\2, etc.)",
55
+ },
56
+ allowMultipleOccurrences: {
57
+ type: "boolean",
58
+ description: "Allow replacing multiple pattern matches (defaults to false)",
59
+ default: false,
60
+ },
61
+ },
62
+ required: ["id", "regex", "replacement"],
63
+ },
64
+ };
65
+ async function handleReplaceObjectBodyRegex(repository, args) {
66
+ const { id, regex, replacement, allowMultipleOccurrences = false, } = args;
67
+ try {
68
+ // Load the existing object
69
+ const existingObject = await repository.getObjectById(id);
70
+ if (!existingObject) {
71
+ return {
72
+ content: [
73
+ {
74
+ type: "text",
75
+ text: `Error: Object with ID '${id}' not found`,
76
+ },
77
+ ],
78
+ };
79
+ }
80
+ // Check if the object has a body to replace
81
+ if (!existingObject.body) {
82
+ return {
83
+ content: [
84
+ {
85
+ type: "text",
86
+ text: `Error: Object with ID '${id}' has no body content to replace`,
87
+ },
88
+ ],
89
+ };
90
+ }
91
+ // Perform the regex replacement on the body
92
+ const updatedBody = (0, replaceStringWithRegex_1.replaceStringWithRegex)(existingObject.body, {
93
+ regex,
94
+ replacement,
95
+ allowMultipleOccurrences,
96
+ });
97
+ // If the body didn't change, inform the user
98
+ if (updatedBody === existingObject.body) {
99
+ return {
100
+ content: [
101
+ {
102
+ type: "text",
103
+ text: `No matches found for pattern "${regex}" in object body. Body remains unchanged.`,
104
+ },
105
+ ],
106
+ };
107
+ }
108
+ // Create updated object with the new body
109
+ const updatedObject = {
110
+ ...existingObject,
111
+ body: updatedBody,
112
+ };
113
+ // Save the updated object
114
+ await repository.saveObject(updatedObject);
115
+ return {
116
+ content: [
117
+ {
118
+ type: "text",
119
+ text: `Successfully replaced content in object body using pattern "${regex}". Object ID: ${id}`,
120
+ },
121
+ ],
122
+ };
123
+ }
124
+ catch (error) {
125
+ if (error instanceof MultipleMatchesError_1.MultipleMatchesError) {
126
+ return {
127
+ content: [
128
+ {
129
+ type: "text",
130
+ text: `Error: ${error.message}`,
131
+ },
132
+ ],
133
+ };
134
+ }
135
+ return {
136
+ content: [
137
+ {
138
+ type: "text",
139
+ text: `Error replacing object body: ${error instanceof Error ? error.message : String(error)}`,
140
+ },
141
+ ],
142
+ };
143
+ }
144
+ }
145
+ //# sourceMappingURL=replaceObjectBodyRegexTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replaceObjectBodyRegexTool.js","sourceRoot":"","sources":["../../src/tools/replaceObjectBodyRegexTool.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Repository } from "../repositories";
2
2
  export declare const updateObjectTool: {
3
3
  readonly name: "update_object";
4
- readonly description: "Updates an existing object in the task trellis system";
4
+ readonly description: "Updates an existing object in the task trellis system\n\nUse this tool to modify properties of existing objects such as changing status, priority, prerequisites, or content. Essential for managing work item lifecycle and maintaining project state.\n\nAvailable status values:\n- 'draft': Initial state for new objects\n- 'open': Ready to begin work\n- 'in-progress': Currently being worked on\n- 'done': Completed successfully\n- 'wont-do': Cancelled or decided against\n\nAvailable priority values:\n- 'high': Critical or urgent work\n- 'medium': Standard priority\n- 'low': Nice-to-have or future work\n\nUpdatable properties:\n- 'status': Progress state (follows workflow: draft → open → in-progress → done)\n- 'priority': Importance level (high, medium, low)\n- 'prerequisites': Dependency relationships (add/remove prerequisite objects)\n- 'body': Detailed description or content of the work item\n- 'force': Bypass certain validation checks when necessary\n\nCommon update patterns:\n- Mark task as ready: status='open'\n- Start working: status='in-progress'\n- Change priority: priority='high'\n- Add dependencies: prerequisites=[...existing, 'new-prereq-id']\n- Update description: body='detailed work description'\n- Complete work: status='done'\n- Cancel work: status='wont-do'\n\nThe update maintains object integrity by validating relationships and preserving audit trail. Use 'force=true' only when bypassing standard validation is necessary for administrative operations.\n\nUpdates automatically refresh the 'updated' timestamp while preserving creation metadata and change history.";
5
5
  readonly inputSchema: {
6
6
  readonly type: "object";
7
7
  readonly properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"updateObjectTool.d.ts","sourceRoot":"","sources":["../../src/tools/updateObjectTool.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCnB,CAAC;AAEX,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,OAAO;;;;;GAuEd"}
1
+ {"version":3,"file":"updateObjectTool.d.ts","sourceRoot":"","sources":["../../src/tools/updateObjectTool.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEnB,CAAC;AAEX,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,OAAO;;;;;GAuEd"}
@@ -5,7 +5,41 @@ exports.handleUpdateObject = handleUpdateObject;
5
5
  const validateStatusTransition_1 = require("../validation/validateStatusTransition");
6
6
  exports.updateObjectTool = {
7
7
  name: "update_object",
8
- description: "Updates an existing object in the task trellis system",
8
+ description: `Updates an existing object in the task trellis system
9
+
10
+ Use this tool to modify properties of existing objects such as changing status, priority, prerequisites, or content. Essential for managing work item lifecycle and maintaining project state.
11
+
12
+ Available status values:
13
+ - 'draft': Initial state for new objects
14
+ - 'open': Ready to begin work
15
+ - 'in-progress': Currently being worked on
16
+ - 'done': Completed successfully
17
+ - 'wont-do': Cancelled or decided against
18
+
19
+ Available priority values:
20
+ - 'high': Critical or urgent work
21
+ - 'medium': Standard priority
22
+ - 'low': Nice-to-have or future work
23
+
24
+ Updatable properties:
25
+ - 'status': Progress state (follows workflow: draft → open → in-progress → done)
26
+ - 'priority': Importance level (high, medium, low)
27
+ - 'prerequisites': Dependency relationships (add/remove prerequisite objects)
28
+ - 'body': Detailed description or content of the work item
29
+ - 'force': Bypass certain validation checks when necessary
30
+
31
+ Common update patterns:
32
+ - Mark task as ready: status='open'
33
+ - Start working: status='in-progress'
34
+ - Change priority: priority='high'
35
+ - Add dependencies: prerequisites=[...existing, 'new-prereq-id']
36
+ - Update description: body='detailed work description'
37
+ - Complete work: status='done'
38
+ - Cancel work: status='wont-do'
39
+
40
+ The update maintains object integrity by validating relationships and preserving audit trail. Use 'force=true' only when bypassing standard validation is necessary for administrative operations.
41
+
42
+ Updates automatically refresh the 'updated' timestamp while preserving creation metadata and change history.`,
9
43
  inputSchema: {
10
44
  type: "object",
11
45
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"updateObjectTool.js","sourceRoot":"","sources":["../../src/tools/updateObjectTool.ts"],"names":[],"mappings":";;;AA+CA,gDAyEC;AAlHD,qFAAkF;AAErE,QAAA,gBAAgB,GAAG;IAC9B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,uDAAuD;IACpE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4BAA4B;aAC1C;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2BAA2B;aACzC;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;iBACf;gBACD,WAAW,EAAE,6CAA6C;aAC3D;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uCAAuC;aACrD;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,uCAAuC;gBACpD,OAAO,EAAE,KAAK;aACf;SACF;QACD,QAAQ,EAAE,CAAC,IAAI,CAAC;KACjB;CACO,CAAC;AAEJ,KAAK,UAAU,kBAAkB,CACtC,UAAsB,EACtB,IAAa;IAEb,MAAM,EACJ,EAAE,EACF,QAAQ,EACR,aAAa,EACb,IAAI,EACJ,MAAM,EACN,KAAK,GAAG,KAAK,GACd,GAAG,IAOH,CAAC;IAEF,IAAI,CAAC;QACH,2BAA2B;QAC3B,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,0BAA0B,EAAE,aAAa;qBAChD;iBACF;aACF,CAAC;QACJ,CAAC;QAED,oEAAoE;QACpE,MAAM,aAAa,GAAkB;YACnC,GAAG,cAAc;YACjB,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,QAAiC,EAAE,CAAC;YAChE,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YACrB,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,MAA6B,EAAE,CAAC;SACzD,CAAC;QAEF,6BAA6B;QAC7B,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,IAAA,mDAAwB,EAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC;QAED,0BAA0B;QAC1B,MAAM,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAE3C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,gCAAgC,IAAI,CAAC,SAAS,CAClD,aAAa,EACb,IAAI,EACJ,CAAC,CACF,EAAE;iBACJ;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBACzF;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"updateObjectTool.js","sourceRoot":"","sources":["../../src/tools/updateObjectTool.ts"],"names":[],"mappings":";;;AAiFA,gDAyEC;AApJD,qFAAkF;AAErE,QAAA,gBAAgB,GAAG;IAC9B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6GAkC8F;IAC3G,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4BAA4B;aAC1C;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2BAA2B;aACzC;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;iBACf;gBACD,WAAW,EAAE,6CAA6C;aAC3D;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uCAAuC;aACrD;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,uCAAuC;gBACpD,OAAO,EAAE,KAAK;aACf;SACF;QACD,QAAQ,EAAE,CAAC,IAAI,CAAC;KACjB;CACO,CAAC;AAEJ,KAAK,UAAU,kBAAkB,CACtC,UAAsB,EACtB,IAAa;IAEb,MAAM,EACJ,EAAE,EACF,QAAQ,EACR,aAAa,EACb,IAAI,EACJ,MAAM,EACN,KAAK,GAAG,KAAK,GACd,GAAG,IAOH,CAAC;IAEF,IAAI,CAAC;QACH,2BAA2B;QAC3B,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,0BAA0B,EAAE,aAAa;qBAChD;iBACF;aACF,CAAC;QACJ,CAAC;QAED,oEAAoE;QACpE,MAAM,aAAa,GAAkB;YACnC,GAAG,cAAc;YACjB,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,QAAiC,EAAE,CAAC;YAChE,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YACrB,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,MAA6B,EAAE,CAAC;SACzD,CAAC;QAEF,6BAA6B;QAC7B,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,IAAA,mDAAwB,EAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC;QAED,0BAA0B;QAC1B,MAAM,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAE3C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,gCAAgC,IAAI,CAAC,SAAS,CAClD,aAAa,EACb,IAAI,EACJ,CAAC,CACF,EAAE;iBACJ;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBACzF;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Error thrown when multiple regex matches are found but not allowed
3
+ */
4
+ export declare class MultipleMatchesError extends Error {
5
+ constructor(matchCount: number, pattern: string);
6
+ }
7
+ //# sourceMappingURL=MultipleMatchesError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultipleMatchesError.d.ts","sourceRoot":"","sources":["../../src/utils/MultipleMatchesError.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAOhD"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MultipleMatchesError = void 0;
4
+ /**
5
+ * Error thrown when multiple regex matches are found but not allowed
6
+ */
7
+ class MultipleMatchesError extends Error {
8
+ constructor(matchCount, pattern) {
9
+ super(`Found ${matchCount} matches for pattern "${pattern}" but allowMultipleOccurrences is false. ` +
10
+ "Use allowMultipleOccurrences: true to replace all matches, or provide a more specific regex.");
11
+ this.name = "MultipleMatchesError";
12
+ }
13
+ }
14
+ exports.MultipleMatchesError = MultipleMatchesError;
15
+ //# sourceMappingURL=MultipleMatchesError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultipleMatchesError.js","sourceRoot":"","sources":["../../src/utils/MultipleMatchesError.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,UAAkB,EAAE,OAAe;QAC7C,KAAK,CACH,SAAS,UAAU,yBAAyB,OAAO,2CAA2C;YAC5F,8FAA8F,CACjG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AARD,oDAQC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Options for string replacement with regex
3
+ */
4
+ export interface ReplaceStringOptions {
5
+ /** The regular expression pattern to match */
6
+ regex: string;
7
+ /** The replacement string (may contain backreferences like \1, \2, etc.) */
8
+ replacement: string;
9
+ /** Whether to allow multiple occurrences to be replaced. If false and multiple matches found, throws an error */
10
+ allowMultipleOccurrences?: boolean;
11
+ }
12
+ //# sourceMappingURL=ReplaceStringOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReplaceStringOptions.d.ts","sourceRoot":"","sources":["../../src/utils/ReplaceStringOptions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,iHAAiH;IACjH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ReplaceStringOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReplaceStringOptions.js","sourceRoot":"","sources":["../../src/utils/ReplaceStringOptions.ts"],"names":[],"mappings":""}
@@ -36,6 +36,8 @@ describe("checkPrerequisitesComplete", () => {
36
36
  childrenIds: [],
37
37
  body: `Body for ${id}`,
38
38
  type: models_1.TrellisObjectType.TASK,
39
+ created: "2025-01-15T10:00:00Z",
40
+ updated: "2025-01-15T10:00:00Z",
39
41
  });
40
42
  it("should return true when object has no prerequisites", async () => {
41
43
  const object = createMockObject("task-1", models_1.TrellisObjectStatus.OPEN, []);
@@ -1 +1 @@
1
- {"version":3,"file":"checkPrerequisitesComplete.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/checkPrerequisitesComplete.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkPrerequisitesComplete.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/checkPrerequisitesComplete.test.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ id: T-test-id-123
10
10
  title: Test Task
11
11
  status: in-progress
12
12
  priority: high
13
+ parent: F-parent-feature-456
13
14
  prerequisites:
14
15
  - prereq-1
15
16
  - prereq-2
@@ -23,6 +24,8 @@ schema: v1.0
23
24
  childrenIds:
24
25
  - child-1
25
26
  - child-2
27
+ created: "2025-01-15T10:00:00Z"
28
+ updated: "2025-01-15T10:00:00Z"
26
29
  ---
27
30
 
28
31
  This is the main content of the task.`;
@@ -33,6 +36,7 @@ This is the main content of the task.`;
33
36
  title: "Test Task",
34
37
  status: models_1.TrellisObjectStatus.IN_PROGRESS,
35
38
  priority: models_1.TrellisObjectPriority.HIGH,
39
+ parent: "F-parent-feature-456",
36
40
  prerequisites: ["prereq-1", "prereq-2"],
37
41
  affectedFiles: new Map([
38
42
  ["src/file1.ts", "modified"],
@@ -42,6 +46,8 @@ This is the main content of the task.`;
42
46
  schema: "v1.0",
43
47
  childrenIds: ["child-1", "child-2"],
44
48
  body: "This is the main content of the task.",
49
+ created: "2025-01-15T10:00:00Z",
50
+ updated: "2025-01-15T10:00:00Z",
45
51
  });
46
52
  });
47
53
  it("should handle multi-line log entries correctly", () => {
@@ -68,6 +74,8 @@ log:
68
74
  - Final point
69
75
  schema: v1.0
70
76
  childrenIds: []
77
+ created: "2025-01-15T10:00:00Z"
78
+ updated: "2025-01-15T10:00:00Z"
71
79
  ---
72
80
 
73
81
  Test body content`;
@@ -89,6 +97,8 @@ affectedFiles: {}
89
97
  log: []
90
98
  schema: v1.0
91
99
  childrenIds: []
100
+ created: "2025-01-15T10:00:00Z"
101
+ updated: "2025-01-15T10:00:00Z"
92
102
  ---
93
103
 
94
104
  `;
@@ -119,6 +129,8 @@ schema: v2.0-beta
119
129
  childrenIds:
120
130
  - child-with-dashes
121
131
  - child with spaces
132
+ created: "2025-01-15T10:00:00Z"
133
+ updated: "2025-01-15T10:00:00Z"
122
134
  ---
123
135
 
124
136
  Body with "quotes", symbols: @#$%, and other special characters!`;
@@ -151,6 +163,8 @@ title: Test Task
151
163
  status: open
152
164
  # priority is missing
153
165
  schema: v1.0
166
+ created: "2025-01-15T10:00:00Z"
167
+ updated: "2025-01-15T10:00:00Z"
154
168
  ---
155
169
 
156
170
  body content`;
@@ -163,6 +177,8 @@ title: Test Task
163
177
  status: open
164
178
  priority: 123 # should be string, not number
165
179
  schema: v1.0
180
+ created: "2025-01-15T10:00:00Z"
181
+ updated: "2025-01-15T10:00:00Z"
166
182
  ---
167
183
 
168
184
  body content`;
@@ -188,6 +204,8 @@ schema: v1.0
188
204
  childrenIds:
189
205
  - valid-child
190
206
  - 789
207
+ created: "2025-01-15T10:00:00Z"
208
+ updated: "2025-01-15T10:00:00Z"
191
209
  ---
192
210
 
193
211
  body content`;
@@ -211,6 +229,8 @@ affectedFiles:
211
229
  log: []
212
230
  schema: v1.0
213
231
  childrenIds: []
232
+ created: "2025-01-15T10:00:00Z"
233
+ updated: "2025-01-15T10:00:00Z"
214
234
  ---
215
235
 
216
236
  body content`;
@@ -232,6 +252,8 @@ affectedFiles: {}
232
252
  log: []
233
253
  schema: v1.0
234
254
  childrenIds: []
255
+ created: "2025-01-15T10:00:00Z"
256
+ updated: "2025-01-15T10:00:00Z"
235
257
  ---
236
258
 
237
259
  # Main Task Description
@@ -268,6 +290,7 @@ const example = "code block";
268
290
  title: "Round Trip Test",
269
291
  status: models_1.TrellisObjectStatus.IN_PROGRESS,
270
292
  priority: models_1.TrellisObjectPriority.HIGH,
293
+ parent: "F-parent-feature-789",
271
294
  prerequisites: ["prereq-1", "prereq-2"],
272
295
  affectedFiles: new Map([
273
296
  ["src/file1.ts", "modified"],
@@ -283,6 +306,8 @@ const example = "code block";
283
306
  childrenIds: ["child-1", "child-2"],
284
307
  body: "# Task Description\n\nThis is the task body with **markdown** formatting.",
285
308
  type: models_1.TrellisObjectType.TASK,
309
+ created: "2025-01-15T10:00:00Z",
310
+ updated: "2025-01-15T10:00:00Z",
286
311
  };
287
312
  // Serialize then deserialize
288
313
  const serialized = (0, serializeTrellisObject_1.serializeTrellisObject)(originalObject);
@@ -309,6 +334,8 @@ affectedFiles: {}
309
334
  log: []
310
335
  schema: v1.0
311
336
  childrenIds: []
337
+ created: "2025-01-15T10:00:00Z"
338
+ updated: "2025-01-15T10:00:00Z"
312
339
  ---
313
340
 
314
341
  This body contains --- markers
@@ -325,5 +352,26 @@ and should handle them correctly.
325
352
 
326
353
  Even multiple --- sections should work.`);
327
354
  });
355
+ it("should handle markdown without parent field", () => {
356
+ const markdownString = `---
357
+ id: P-no-parent-test
358
+ title: No Parent Test
359
+ status: open
360
+ priority: medium
361
+ prerequisites: []
362
+ affectedFiles: {}
363
+ log: []
364
+ schema: v1.0
365
+ childrenIds: []
366
+ created: "2025-01-15T10:00:00Z"
367
+ updated: "2025-01-15T10:00:00Z"
368
+ ---
369
+
370
+ Test body content`;
371
+ const result = (0, deserializeTrellisObject_1.deserializeTrellisObject)(markdownString);
372
+ expect(result.parent).toBeUndefined();
373
+ expect(result.id).toBe("P-no-parent-test");
374
+ expect(result.title).toBe("No Parent Test");
375
+ });
328
376
  });
329
377
  //# sourceMappingURL=deserializeTrellisObject.test.js.map