@langadventurellc/task-trellis-mcp 1.0.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/README.md +52 -263
  2. package/dist/__tests__/e2e/autoPrune.e2e.test.d.ts +2 -0
  3. package/dist/__tests__/e2e/autoPrune.e2e.test.d.ts.map +1 -0
  4. package/dist/__tests__/e2e/autoPrune.e2e.test.js +533 -0
  5. package/dist/__tests__/e2e/autoPrune.e2e.test.js.map +1 -0
  6. package/dist/__tests__/e2e/configuration/activation.e2e.test.js +6 -6
  7. package/dist/__tests__/e2e/configuration/activation.e2e.test.js.map +1 -1
  8. package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.js +55 -6
  9. package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.js.map +1 -1
  10. package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.js +19 -19
  11. package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.js.map +1 -1
  12. package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.js +9 -9
  13. package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.js.map +1 -1
  14. package/dist/__tests__/e2e/configuration/preActivation.e2e.test.js +15 -15
  15. package/dist/__tests__/e2e/configuration/preActivation.e2e.test.js.map +1 -1
  16. package/dist/__tests__/e2e/crud/createObject.e2e.test.js +94 -42
  17. package/dist/__tests__/e2e/crud/createObject.e2e.test.js.map +1 -1
  18. package/dist/__tests__/e2e/crud/deleteObject.e2e.test.js +19 -19
  19. package/dist/__tests__/e2e/crud/deleteObject.e2e.test.js.map +1 -1
  20. package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js +32 -32
  21. package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js.map +1 -1
  22. package/dist/__tests__/e2e/crud/getObject.e2e.test.js +143 -22
  23. package/dist/__tests__/e2e/crud/getObject.e2e.test.js.map +1 -1
  24. package/dist/__tests__/e2e/crud/listObjects.e2e.test.js +810 -121
  25. package/dist/__tests__/e2e/crud/listObjects.e2e.test.js.map +1 -1
  26. package/dist/__tests__/e2e/crud/updateObject.e2e.test.js +497 -25
  27. package/dist/__tests__/e2e/crud/updateObject.e2e.test.js.map +1 -1
  28. package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.d.ts +2 -0
  29. package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.d.ts.map +1 -0
  30. package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.js +319 -0
  31. package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.js.map +1 -0
  32. package/dist/__tests__/e2e/infrastructure/client.e2e.test.js +4 -4
  33. package/dist/__tests__/e2e/infrastructure/client.e2e.test.js.map +1 -1
  34. package/dist/__tests__/e2e/infrastructure/server.e2e.test.js +6 -6
  35. package/dist/__tests__/e2e/infrastructure/server.e2e.test.js.map +1 -1
  36. package/dist/__tests__/e2e/utils/extractObjectIds.d.ts +5 -0
  37. package/dist/__tests__/e2e/utils/extractObjectIds.d.ts.map +1 -0
  38. package/dist/__tests__/e2e/utils/extractObjectIds.js +12 -0
  39. package/dist/__tests__/e2e/utils/extractObjectIds.js.map +1 -0
  40. package/dist/__tests__/e2e/utils/index.d.ts +1 -0
  41. package/dist/__tests__/e2e/utils/index.d.ts.map +1 -1
  42. package/dist/__tests__/e2e/utils/index.js +3 -1
  43. package/dist/__tests__/e2e/utils/index.js.map +1 -1
  44. package/dist/__tests__/e2e/utils/mcpTestClient.d.ts +2 -1
  45. package/dist/__tests__/e2e/utils/mcpTestClient.d.ts.map +1 -1
  46. package/dist/__tests__/e2e/utils/mcpTestClient.js +15 -8
  47. package/dist/__tests__/e2e/utils/mcpTestClient.js.map +1 -1
  48. package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts +4 -2
  49. package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts.map +1 -1
  50. package/dist/__tests__/e2e/utils/parseListObjectsResponse.js +2 -1
  51. package/dist/__tests__/e2e/utils/parseListObjectsResponse.js.map +1 -1
  52. package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.d.ts +1 -1
  53. package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.js +1 -1
  54. package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js +4 -4
  55. package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js.map +1 -1
  56. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.d.ts +2 -0
  57. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.d.ts.map +1 -0
  58. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js +597 -0
  59. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js.map +1 -0
  60. package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js +233 -0
  61. package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js.map +1 -1
  62. package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js +447 -1
  63. package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js.map +1 -1
  64. package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js +43 -43
  65. package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js.map +1 -1
  66. package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js +22 -26
  67. package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js.map +1 -1
  68. package/dist/__tests__/serverStartup.test.d.ts +2 -0
  69. package/dist/__tests__/serverStartup.test.d.ts.map +1 -0
  70. package/dist/__tests__/serverStartup.test.js +171 -0
  71. package/dist/__tests__/serverStartup.test.js.map +1 -0
  72. package/dist/configuration/ServerConfig.d.ts +2 -0
  73. package/dist/configuration/ServerConfig.d.ts.map +1 -1
  74. package/dist/models/TrellisObjectSummary.d.ts +16 -0
  75. package/dist/models/TrellisObjectSummary.d.ts.map +1 -0
  76. package/dist/{utils/ReplaceStringOptions.js → models/TrellisObjectSummary.js} +1 -1
  77. package/dist/models/TrellisObjectSummary.js.map +1 -0
  78. package/dist/models/index.d.ts +1 -0
  79. package/dist/models/index.d.ts.map +1 -1
  80. package/dist/models/index.js.map +1 -1
  81. package/dist/repositories/Repository.d.ts +2 -1
  82. package/dist/repositories/Repository.d.ts.map +1 -1
  83. package/dist/repositories/local/LocalRepository.d.ts +2 -1
  84. package/dist/repositories/local/LocalRepository.d.ts.map +1 -1
  85. package/dist/repositories/local/LocalRepository.js +4 -0
  86. package/dist/repositories/local/LocalRepository.js.map +1 -1
  87. package/dist/repositories/local/__tests__/getChildrenOf.test.d.ts +2 -0
  88. package/dist/repositories/local/__tests__/getChildrenOf.test.d.ts.map +1 -0
  89. package/dist/repositories/local/__tests__/getChildrenOf.test.js +306 -0
  90. package/dist/repositories/local/__tests__/getChildrenOf.test.js.map +1 -0
  91. package/dist/repositories/local/__tests__/getObjectFilePath.test.js +9 -6
  92. package/dist/repositories/local/__tests__/getObjectFilePath.test.js.map +1 -1
  93. package/dist/repositories/local/__tests__/getObjects.test.js +349 -10
  94. package/dist/repositories/local/__tests__/getObjects.test.js.map +1 -1
  95. package/dist/repositories/local/deleteObjectById.d.ts.map +1 -1
  96. package/dist/repositories/local/deleteObjectById.js +2 -0
  97. package/dist/repositories/local/deleteObjectById.js.map +1 -1
  98. package/dist/repositories/local/getChildrenOf.d.ts +11 -0
  99. package/dist/repositories/local/getChildrenOf.d.ts.map +1 -0
  100. package/dist/repositories/local/getChildrenOf.js +73 -0
  101. package/dist/repositories/local/getChildrenOf.js.map +1 -0
  102. package/dist/repositories/local/getObjectFilePath.d.ts.map +1 -1
  103. package/dist/repositories/local/getObjectFilePath.js +8 -4
  104. package/dist/repositories/local/getObjectFilePath.js.map +1 -1
  105. package/dist/repositories/local/getObjects.d.ts +1 -1
  106. package/dist/repositories/local/getObjects.d.ts.map +1 -1
  107. package/dist/repositories/local/getObjects.js +31 -7
  108. package/dist/repositories/local/getObjects.js.map +1 -1
  109. package/dist/server.js +57 -19
  110. package/dist/server.js.map +1 -1
  111. package/dist/services/TaskTrellisService.d.ts +78 -0
  112. package/dist/services/TaskTrellisService.d.ts.map +1 -0
  113. package/dist/services/TaskTrellisService.js +3 -0
  114. package/dist/services/TaskTrellisService.js.map +1 -0
  115. package/dist/services/local/LocalTaskTrellisService.d.ts +55 -0
  116. package/dist/services/local/LocalTaskTrellisService.d.ts.map +1 -0
  117. package/dist/services/local/LocalTaskTrellisService.js +73 -0
  118. package/dist/services/local/LocalTaskTrellisService.js.map +1 -0
  119. package/dist/services/local/__tests__/appendAffectedFiles.test.d.ts +2 -0
  120. package/dist/services/local/__tests__/appendAffectedFiles.test.d.ts.map +1 -0
  121. package/dist/services/local/__tests__/appendAffectedFiles.test.js +202 -0
  122. package/dist/services/local/__tests__/appendAffectedFiles.test.js.map +1 -0
  123. package/dist/services/local/__tests__/appendModifiedFiles.test.d.ts +2 -0
  124. package/dist/services/local/__tests__/appendModifiedFiles.test.d.ts.map +1 -0
  125. package/dist/services/local/__tests__/appendModifiedFiles.test.js +162 -0
  126. package/dist/services/local/__tests__/appendModifiedFiles.test.js.map +1 -0
  127. package/dist/services/local/__tests__/appendObjectLog.test.d.ts +2 -0
  128. package/dist/services/local/__tests__/appendObjectLog.test.d.ts.map +1 -0
  129. package/dist/services/local/__tests__/appendObjectLog.test.js +105 -0
  130. package/dist/services/local/__tests__/appendObjectLog.test.js.map +1 -0
  131. package/dist/services/local/__tests__/claimTask.test.d.ts +2 -0
  132. package/dist/services/local/__tests__/claimTask.test.d.ts.map +1 -0
  133. package/dist/services/local/__tests__/claimTask.test.js +459 -0
  134. package/dist/services/local/__tests__/claimTask.test.js.map +1 -0
  135. package/dist/services/local/__tests__/completeTask.test.d.ts +2 -0
  136. package/dist/services/local/__tests__/completeTask.test.d.ts.map +1 -0
  137. package/dist/services/local/__tests__/completeTask.test.js +470 -0
  138. package/dist/services/local/__tests__/completeTask.test.js.map +1 -0
  139. package/dist/services/local/__tests__/createObject.test.d.ts +2 -0
  140. package/dist/services/local/__tests__/createObject.test.d.ts.map +1 -0
  141. package/dist/services/local/__tests__/createObject.test.js +333 -0
  142. package/dist/services/local/__tests__/createObject.test.js.map +1 -0
  143. package/dist/services/local/__tests__/listObjects.test.d.ts +2 -0
  144. package/dist/services/local/__tests__/listObjects.test.d.ts.map +1 -0
  145. package/dist/services/local/__tests__/listObjects.test.js +351 -0
  146. package/dist/services/local/__tests__/listObjects.test.js.map +1 -0
  147. package/dist/services/local/__tests__/pruneClosed.test.d.ts +2 -0
  148. package/dist/services/local/__tests__/pruneClosed.test.d.ts.map +1 -0
  149. package/dist/services/local/__tests__/pruneClosed.test.js +473 -0
  150. package/dist/services/local/__tests__/pruneClosed.test.js.map +1 -0
  151. package/dist/services/local/__tests__/updateObject.test.d.ts +2 -0
  152. package/dist/services/local/__tests__/updateObject.test.d.ts.map +1 -0
  153. package/dist/services/local/__tests__/updateObject.test.js +521 -0
  154. package/dist/services/local/__tests__/updateObject.test.js.map +1 -0
  155. package/dist/services/local/appendAffectedFiles.d.ts +12 -0
  156. package/dist/services/local/appendAffectedFiles.d.ts.map +1 -0
  157. package/dist/services/local/appendAffectedFiles.js +34 -0
  158. package/dist/services/local/appendAffectedFiles.js.map +1 -0
  159. package/dist/services/local/appendModifiedFiles.d.ts +15 -0
  160. package/dist/services/local/appendModifiedFiles.d.ts.map +1 -0
  161. package/dist/services/local/appendModifiedFiles.js +39 -0
  162. package/dist/services/local/appendModifiedFiles.js.map +1 -0
  163. package/dist/services/local/appendObjectLog.d.ts +8 -0
  164. package/dist/services/local/appendObjectLog.d.ts.map +1 -0
  165. package/dist/services/local/appendObjectLog.js +45 -0
  166. package/dist/services/local/appendObjectLog.js.map +1 -0
  167. package/dist/services/local/claimTask.d.ts +8 -0
  168. package/dist/services/local/claimTask.d.ts.map +1 -0
  169. package/dist/services/local/claimTask.js +109 -0
  170. package/dist/services/local/claimTask.js.map +1 -0
  171. package/dist/services/local/completeTask.d.ts +9 -0
  172. package/dist/services/local/completeTask.d.ts.map +1 -0
  173. package/dist/services/local/completeTask.js +38 -0
  174. package/dist/services/local/completeTask.js.map +1 -0
  175. package/dist/services/local/createObject.d.ts +9 -0
  176. package/dist/services/local/createObject.d.ts.map +1 -0
  177. package/dist/services/local/createObject.js +44 -0
  178. package/dist/services/local/createObject.js.map +1 -0
  179. package/dist/services/local/listObjects.d.ts +9 -0
  180. package/dist/services/local/listObjects.d.ts.map +1 -0
  181. package/dist/services/local/listObjects.js +52 -0
  182. package/dist/services/local/listObjects.js.map +1 -0
  183. package/dist/services/local/pruneClosed.d.ts +8 -0
  184. package/dist/services/local/pruneClosed.d.ts.map +1 -0
  185. package/dist/services/local/pruneClosed.js +112 -0
  186. package/dist/services/local/pruneClosed.js.map +1 -0
  187. package/dist/services/local/updateObject.d.ts +10 -0
  188. package/dist/services/local/updateObject.d.ts.map +1 -0
  189. package/dist/services/local/updateObject.js +80 -0
  190. package/dist/services/local/updateObject.js.map +1 -0
  191. package/dist/tools/__tests__/appendModifiedFilesTool.test.d.ts +2 -0
  192. package/dist/tools/__tests__/appendModifiedFilesTool.test.d.ts.map +1 -0
  193. package/dist/tools/__tests__/appendModifiedFilesTool.test.js +178 -0
  194. package/dist/tools/__tests__/appendModifiedFilesTool.test.js.map +1 -0
  195. package/dist/tools/__tests__/appendObjectLogTool.test.js +34 -101
  196. package/dist/tools/__tests__/appendObjectLogTool.test.js.map +1 -1
  197. package/dist/tools/__tests__/claimTaskTool.test.js +98 -311
  198. package/dist/tools/__tests__/claimTaskTool.test.js.map +1 -1
  199. package/dist/tools/__tests__/completeTaskTool.test.js +140 -183
  200. package/dist/tools/__tests__/completeTaskTool.test.js.map +1 -1
  201. package/dist/tools/__tests__/createObjectTool.test.js +62 -325
  202. package/dist/tools/__tests__/createObjectTool.test.js.map +1 -1
  203. package/dist/tools/__tests__/deleteObjectTool.test.js +1 -0
  204. package/dist/tools/__tests__/deleteObjectTool.test.js.map +1 -1
  205. package/dist/tools/__tests__/getObjectTool.test.js +1 -0
  206. package/dist/tools/__tests__/getObjectTool.test.js.map +1 -1
  207. package/dist/tools/__tests__/listObjectsTool.test.js +228 -108
  208. package/dist/tools/__tests__/listObjectsTool.test.js.map +1 -1
  209. package/dist/tools/__tests__/updateObjectTool.test.js +78 -167
  210. package/dist/tools/__tests__/updateObjectTool.test.js.map +1 -1
  211. package/dist/tools/appendModifiedFilesTool.d.ts +30 -0
  212. package/dist/tools/appendModifiedFilesTool.d.ts.map +1 -0
  213. package/dist/tools/appendModifiedFilesTool.js +55 -0
  214. package/dist/tools/appendModifiedFilesTool.js.map +1 -0
  215. package/dist/tools/appendObjectLogTool.d.ts +7 -6
  216. package/dist/tools/appendObjectLogTool.d.ts.map +1 -1
  217. package/dist/tools/appendObjectLogTool.js +6 -44
  218. package/dist/tools/appendObjectLogTool.js.map +1 -1
  219. package/dist/tools/claimTaskTool.d.ts +4 -3
  220. package/dist/tools/claimTaskTool.d.ts.map +1 -1
  221. package/dist/tools/claimTaskTool.js +2 -80
  222. package/dist/tools/claimTaskTool.js.map +1 -1
  223. package/dist/tools/completeTaskTool.d.ts +5 -3
  224. package/dist/tools/completeTaskTool.d.ts.map +1 -1
  225. package/dist/tools/completeTaskTool.js +3 -29
  226. package/dist/tools/completeTaskTool.js.map +1 -1
  227. package/dist/tools/createObjectTool.d.ts +13 -12
  228. package/dist/tools/createObjectTool.d.ts.map +1 -1
  229. package/dist/tools/createObjectTool.js +22 -55
  230. package/dist/tools/createObjectTool.js.map +1 -1
  231. package/dist/tools/deleteObjectTool.d.ts +3 -3
  232. package/dist/tools/deleteObjectTool.js +12 -12
  233. package/dist/tools/deleteObjectTool.js.map +1 -1
  234. package/dist/tools/getObjectTool.d.ts +3 -3
  235. package/dist/tools/getObjectTool.d.ts.map +1 -1
  236. package/dist/tools/getObjectTool.js +12 -7
  237. package/dist/tools/getObjectTool.js.map +1 -1
  238. package/dist/tools/index.d.ts +7 -8
  239. package/dist/tools/index.d.ts.map +1 -1
  240. package/dist/tools/index.js +22 -25
  241. package/dist/tools/index.js.map +1 -1
  242. package/dist/tools/listObjectsTool.d.ts +24 -14
  243. package/dist/tools/listObjectsTool.d.ts.map +1 -1
  244. package/dist/tools/listObjectsTool.js +114 -50
  245. package/dist/tools/listObjectsTool.js.map +1 -1
  246. package/dist/tools/updateObjectTool.d.ts +15 -9
  247. package/dist/tools/updateObjectTool.d.ts.map +1 -1
  248. package/dist/tools/updateObjectTool.js +20 -60
  249. package/dist/tools/updateObjectTool.js.map +1 -1
  250. package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.d.ts +2 -0
  251. package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.d.ts.map +1 -0
  252. package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js +206 -0
  253. package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js.map +1 -0
  254. package/dist/utils/__tests__/checkPrerequisitesComplete.test.js +5 -0
  255. package/dist/utils/__tests__/checkPrerequisitesComplete.test.js.map +1 -1
  256. package/dist/utils/__tests__/filterUnavailableObjects.test.js +51 -25
  257. package/dist/utils/__tests__/filterUnavailableObjects.test.js.map +1 -1
  258. package/dist/utils/__tests__/isRequiredForOtherObjects.test.js +5 -0
  259. package/dist/utils/__tests__/isRequiredForOtherObjects.test.js.map +1 -1
  260. package/dist/utils/__tests__/updateParentHierarchy.test.d.ts +2 -0
  261. package/dist/utils/__tests__/updateParentHierarchy.test.d.ts.map +1 -0
  262. package/dist/utils/__tests__/updateParentHierarchy.test.js +137 -0
  263. package/dist/utils/__tests__/updateParentHierarchy.test.js.map +1 -0
  264. package/dist/utils/autoCompleteParentHierarchy.d.ts +11 -0
  265. package/dist/utils/autoCompleteParentHierarchy.d.ts.map +1 -0
  266. package/dist/utils/autoCompleteParentHierarchy.js +49 -0
  267. package/dist/utils/autoCompleteParentHierarchy.js.map +1 -0
  268. package/dist/utils/checkHierarchicalPrerequisitesComplete.d.ts +14 -0
  269. package/dist/utils/checkHierarchicalPrerequisitesComplete.d.ts.map +1 -0
  270. package/dist/utils/checkHierarchicalPrerequisitesComplete.js +47 -0
  271. package/dist/utils/checkHierarchicalPrerequisitesComplete.js.map +1 -0
  272. package/dist/utils/filterUnavailableObjects.d.ts +6 -4
  273. package/dist/utils/filterUnavailableObjects.d.ts.map +1 -1
  274. package/dist/utils/filterUnavailableObjects.js +16 -22
  275. package/dist/utils/filterUnavailableObjects.js.map +1 -1
  276. package/dist/utils/index.d.ts +3 -2
  277. package/dist/utils/index.d.ts.map +1 -1
  278. package/dist/utils/index.js +7 -3
  279. package/dist/utils/index.js.map +1 -1
  280. package/dist/utils/updateParentHierarchy.d.ts +11 -0
  281. package/dist/utils/updateParentHierarchy.d.ts.map +1 -0
  282. package/dist/utils/updateParentHierarchy.js +40 -0
  283. package/dist/utils/updateParentHierarchy.js.map +1 -0
  284. package/dist/validation/__tests__/validateObjectCreation.test.js +1 -0
  285. package/dist/validation/__tests__/validateObjectCreation.test.js.map +1 -1
  286. package/dist/validation/__tests__/validateParentExists.test.js +1 -0
  287. package/dist/validation/__tests__/validateParentExists.test.js.map +1 -1
  288. package/dist/validation/__tests__/validateParentType.test.js +5 -5
  289. package/dist/validation/__tests__/validateParentType.test.js.map +1 -1
  290. package/dist/validation/__tests__/validateStatusTransition.test.js +1 -0
  291. package/dist/validation/__tests__/validateStatusTransition.test.js.map +1 -1
  292. package/dist/validation/validateParentType.d.ts +1 -1
  293. package/dist/validation/validateParentType.d.ts.map +1 -1
  294. package/dist/validation/validateParentType.js +2 -5
  295. package/dist/validation/validateParentType.js.map +1 -1
  296. package/package.json +1 -1
  297. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts +0 -2
  298. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts.map +0 -1
  299. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js +0 -693
  300. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js.map +0 -1
  301. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts +0 -2
  302. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts.map +0 -1
  303. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js +0 -352
  304. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js.map +0 -1
  305. package/dist/tools/__tests__/pruneClosedTool.test.d.ts +0 -2
  306. package/dist/tools/__tests__/pruneClosedTool.test.d.ts.map +0 -1
  307. package/dist/tools/__tests__/pruneClosedTool.test.js +0 -171
  308. package/dist/tools/__tests__/pruneClosedTool.test.js.map +0 -1
  309. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts +0 -2
  310. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts.map +0 -1
  311. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js +0 -258
  312. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js.map +0 -1
  313. package/dist/tools/pruneClosedTool.d.ts +0 -26
  314. package/dist/tools/pruneClosedTool.d.ts.map +0 -1
  315. package/dist/tools/pruneClosedTool.js +0 -106
  316. package/dist/tools/pruneClosedTool.js.map +0 -1
  317. package/dist/tools/replaceObjectBodyRegexTool.d.ts +0 -35
  318. package/dist/tools/replaceObjectBodyRegexTool.d.ts.map +0 -1
  319. package/dist/tools/replaceObjectBodyRegexTool.js +0 -145
  320. package/dist/tools/replaceObjectBodyRegexTool.js.map +0 -1
  321. package/dist/utils/ReplaceStringOptions.d.ts +0 -12
  322. package/dist/utils/ReplaceStringOptions.d.ts.map +0 -1
  323. package/dist/utils/ReplaceStringOptions.js.map +0 -1
  324. package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts +0 -2
  325. package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts.map +0 -1
  326. package/dist/utils/__tests__/replaceStringWithRegex.test.js +0 -281
  327. package/dist/utils/__tests__/replaceStringWithRegex.test.js.map +0 -1
  328. package/dist/utils/replaceStringWithRegex.d.ts +0 -45
  329. package/dist/utils/replaceStringWithRegex.d.ts.map +0 -1
  330. package/dist/utils/replaceStringWithRegex.js +0 -91
  331. package/dist/utils/replaceStringWithRegex.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appendModifiedFiles.d.ts","sourceRoot":"","sources":["../../../src/services/local/appendModifiedFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA+B7D"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.appendModifiedFiles = appendModifiedFiles;
4
+ const appendAffectedFiles_1 = require("./appendAffectedFiles");
5
+ /**
6
+ * Appends modified files information to a trellis object
7
+ *
8
+ * @param repository - The repository instance
9
+ * @param id - The ID of the trellis object to update
10
+ * @param filesChanged - Record of file paths to descriptions of modifications
11
+ */
12
+ async function appendModifiedFiles(repository, id, filesChanged) {
13
+ const trellisObject = await repository.getObjectById(id);
14
+ if (!trellisObject) {
15
+ return {
16
+ content: [
17
+ {
18
+ type: "text",
19
+ text: `Object with ID ${id} not found`,
20
+ },
21
+ ],
22
+ };
23
+ }
24
+ // Append the affected files to the trellis object
25
+ await (0, appendAffectedFiles_1.appendAffectedFiles)(repository, trellisObject, filesChanged);
26
+ // Save the updated object
27
+ await repository.saveObject(trellisObject);
28
+ const fileCount = Object.keys(filesChanged).length;
29
+ const fileText = fileCount === 1 ? "file" : "files";
30
+ return {
31
+ content: [
32
+ {
33
+ type: "text",
34
+ text: `Successfully appended ${fileCount} modified ${fileText} to object ${id}`,
35
+ },
36
+ ],
37
+ };
38
+ }
39
+ //# sourceMappingURL=appendModifiedFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appendModifiedFiles.js","sourceRoot":"","sources":["../../../src/services/local/appendModifiedFiles.ts"],"names":[],"mappings":";;AAUA,kDAmCC;AA5CD,+DAA4D;AAE5D;;;;;;GAMG;AACI,KAAK,UAAU,mBAAmB,CACvC,UAAsB,EACtB,EAAU,EACV,YAAoC;IAEpC,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAEzD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,kBAAkB,EAAE,YAAY;iBACvC;aACF;SACF,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,MAAM,IAAA,yCAAmB,EAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;IAEnE,0BAA0B;IAC1B,MAAM,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;IACnD,MAAM,QAAQ,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAEpD,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,yBAAyB,SAAS,aAAa,QAAQ,cAAc,EAAE,EAAE;aAChF;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Repository } from "../../repositories";
2
+ export declare function appendObjectLog(repository: Repository, id: string, contents: string): Promise<{
3
+ content: Array<{
4
+ type: string;
5
+ text: string;
6
+ }>;
7
+ }>;
8
+ //# sourceMappingURL=appendObjectLog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appendObjectLog.d.ts","sourceRoot":"","sources":["../../../src/services/local/appendObjectLog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA8C7D"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.appendObjectLog = appendObjectLog;
4
+ async function appendObjectLog(repository, id, contents) {
5
+ try {
6
+ // Load the existing object
7
+ const existingObject = await repository.getObjectById(id);
8
+ if (!existingObject) {
9
+ return {
10
+ content: [
11
+ {
12
+ type: "text",
13
+ text: `Error: Object with ID '${id}' not found`,
14
+ },
15
+ ],
16
+ };
17
+ }
18
+ // Create updated object with new log entry appended
19
+ const updatedObject = {
20
+ ...existingObject,
21
+ log: [...existingObject.log, contents],
22
+ };
23
+ // Save the updated object
24
+ await repository.saveObject(updatedObject);
25
+ return {
26
+ content: [
27
+ {
28
+ type: "text",
29
+ text: `Successfully appended to object log: ${JSON.stringify({ id, contents, totalLogEntries: updatedObject.log.length }, null, 2)}`,
30
+ },
31
+ ],
32
+ };
33
+ }
34
+ catch (error) {
35
+ return {
36
+ content: [
37
+ {
38
+ type: "text",
39
+ text: `Error appending to object log: ${error instanceof Error ? error.message : String(error)}`,
40
+ },
41
+ ],
42
+ };
43
+ }
44
+ }
45
+ //# sourceMappingURL=appendObjectLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appendObjectLog.js","sourceRoot":"","sources":["../../../src/services/local/appendObjectLog.ts"],"names":[],"mappings":";;AAEA,0CAkDC;AAlDM,KAAK,UAAU,eAAe,CACnC,UAAsB,EACtB,EAAU,EACV,QAAgB;IAEhB,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,oDAAoD;QACpD,MAAM,aAAa,GAAG;YACpB,GAAG,cAAc;YACjB,GAAG,EAAE,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;SACvC,CAAC;QAEF,0BAA0B;QAC1B,MAAM,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAE3C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,wCAAwC,IAAI,CAAC,SAAS,CAC1D,EAAE,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,EAC3D,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,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBACjG;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Repository } from "../../repositories";
2
+ export declare function claimTask(repository: Repository, scope?: string, taskId?: string, force?: boolean): Promise<{
3
+ content: Array<{
4
+ type: string;
5
+ text: string;
6
+ }>;
7
+ }>;
8
+ //# sourceMappingURL=claimTask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claimTask.d.ts","sourceRoot":"","sources":["../../../src/services/local/claimTask.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOhD,wBAAsB,SAAS,CAC7B,UAAU,EAAE,UAAU,EACtB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,GAAE,OAAe,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAqC7D"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.claimTask = claimTask;
4
+ const models_1 = require("../../models");
5
+ const checkPrerequisitesComplete_1 = require("../../utils/checkPrerequisitesComplete");
6
+ const checkHierarchicalPrerequisitesComplete_1 = require("../../utils/checkHierarchicalPrerequisitesComplete");
7
+ const filterUnavailableObjects_1 = require("../../utils/filterUnavailableObjects");
8
+ const sortTrellisObjects_1 = require("../../utils/sortTrellisObjects");
9
+ const updateParentHierarchy_1 = require("../../utils/updateParentHierarchy");
10
+ async function claimTask(repository, scope, taskId, force = false) {
11
+ try {
12
+ let claimedTask;
13
+ if (taskId) {
14
+ claimedTask = await claimSpecificTask(taskId, force, repository);
15
+ }
16
+ else {
17
+ claimedTask = await findNextAvailableTask(scope, repository);
18
+ }
19
+ const updatedTask = await updateTaskStatus(claimedTask, repository);
20
+ return {
21
+ content: [
22
+ {
23
+ type: "text",
24
+ text: `Successfully claimed task: ${JSON.stringify({
25
+ ...updatedTask,
26
+ affectedFiles: Object.fromEntries(updatedTask.affectedFiles),
27
+ }, null, 2)}`,
28
+ },
29
+ ],
30
+ };
31
+ }
32
+ catch (error) {
33
+ return {
34
+ content: [
35
+ {
36
+ type: "text",
37
+ text: `Error claiming task: ${error instanceof Error ? error.message : String(error)}`,
38
+ },
39
+ ],
40
+ };
41
+ }
42
+ }
43
+ async function claimSpecificTask(taskId, force, repository) {
44
+ const object = await repository.getObjectById(taskId);
45
+ if (!object) {
46
+ throw new Error(`Task with ID "${taskId}" not found`);
47
+ }
48
+ await validateTaskForClaiming(object, taskId, force, repository);
49
+ return object;
50
+ }
51
+ async function findNextAvailableTask(scope, repository) {
52
+ const objects = await repository.getObjects(false, // includeClosed
53
+ scope, models_1.TrellisObjectType.TASK);
54
+ // Filter to get only available tasks
55
+ const availableTasks = await (0, filterUnavailableObjects_1.filterUnavailableObjects)(objects, repository);
56
+ if (availableTasks.length === 0) {
57
+ throw new Error("No available tasks to claim");
58
+ }
59
+ // Sort by priority and return the top one
60
+ const sortedTasks = (0, sortTrellisObjects_1.sortTrellisObjects)(availableTasks);
61
+ return sortedTasks[0];
62
+ }
63
+ async function updateTaskStatus(task, repository) {
64
+ const updatedTask = {
65
+ ...task,
66
+ status: models_1.TrellisObjectStatus.IN_PROGRESS,
67
+ };
68
+ await repository.saveObject(updatedTask);
69
+ // Update parent hierarchy to in-progress (don't let errors fail the task claim)
70
+ try {
71
+ await (0, updateParentHierarchy_1.updateParentHierarchy)(task.parent, repository);
72
+ }
73
+ catch (error) {
74
+ // Log but don't propagate parent hierarchy update errors
75
+ console.warn("Failed to update parent hierarchy:", error);
76
+ }
77
+ // Re-read the object from repository to ensure proper Map reconstruction
78
+ // This is needed because the in-memory object may not have the Map properly reconstructed
79
+ const savedTask = await repository.getObjectById(task.id);
80
+ if (!savedTask) {
81
+ throw new Error(`Failed to retrieve saved task with ID "${task.id}"`);
82
+ }
83
+ return savedTask;
84
+ }
85
+ async function validateTaskForClaiming(task, taskId, force, repository) {
86
+ // Validate it's a task
87
+ if (task.type !== models_1.TrellisObjectType.TASK) {
88
+ throw new Error(`Object with ID "${taskId}" is not a task (type: ${task.type})`);
89
+ }
90
+ if (!force) {
91
+ // Validate status is draft or open
92
+ if (!(0, models_1.isClaimable)(task)) {
93
+ throw new Error(`Task "${taskId}" cannot be claimed (status: ${task.status}). Task must be in draft or open status.`);
94
+ }
95
+ // Validate all prerequisites are complete (including hierarchical)
96
+ const prerequisitesComplete = await (0, checkHierarchicalPrerequisitesComplete_1.checkHierarchicalPrerequisitesComplete)(task, repository);
97
+ if (!prerequisitesComplete) {
98
+ // Determine if it's the task's own prerequisites or a parent's
99
+ const ownPrerequisitesComplete = await (0, checkPrerequisitesComplete_1.checkPrerequisitesComplete)(task, repository);
100
+ if (ownPrerequisitesComplete) {
101
+ throw new Error(`Task "${taskId}" cannot be claimed. Parent hierarchy has incomplete prerequisites.`);
102
+ }
103
+ else {
104
+ throw new Error(`Task "${taskId}" cannot be claimed. Not all prerequisites are complete.`);
105
+ }
106
+ }
107
+ }
108
+ }
109
+ //# sourceMappingURL=claimTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claimTask.js","sourceRoot":"","sources":["../../../src/services/local/claimTask.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ServerConfig } from "../../configuration";
2
+ import { Repository } from "../../repositories";
3
+ export declare function completeTask(repository: Repository, serverConfig: ServerConfig, taskId: string, summary: string, filesChanged: Record<string, string>): Promise<{
4
+ content: Array<{
5
+ type: string;
6
+ text: string;
7
+ }>;
8
+ }>;
9
+ //# sourceMappingURL=completeTask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completeTask.d.ts","sourceRoot":"","sources":["../../../src/services/local/completeTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAuC7D"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.completeTask = completeTask;
4
+ const models_1 = require("../../models");
5
+ const utils_1 = require("../../utils");
6
+ const appendAffectedFiles_js_1 = require("./appendAffectedFiles.js");
7
+ async function completeTask(repository, serverConfig, taskId, summary, filesChanged) {
8
+ // Get the task object from repository
9
+ const task = await repository.getObjectById(taskId);
10
+ if (!task) {
11
+ throw new Error(`Task with ID "${taskId}" not found`);
12
+ }
13
+ // Check if task is in progress
14
+ if (task.status !== models_1.TrellisObjectStatus.IN_PROGRESS) {
15
+ throw new Error(`Task "${taskId}" is not in progress (current status: ${task.status})`);
16
+ }
17
+ // Update task status to done
18
+ task.status = models_1.TrellisObjectStatus.DONE;
19
+ // Append to affected files map
20
+ await (0, appendAffectedFiles_js_1.appendAffectedFiles)(repository, task, filesChanged);
21
+ // Append summary to log
22
+ task.log.push(summary);
23
+ // Save the updated task
24
+ await repository.saveObject(task);
25
+ // If auto-complete parent is enabled, check if we should complete parent objects
26
+ if (serverConfig.autoCompleteParent) {
27
+ await (0, utils_1.autoCompleteParentHierarchy)(repository, task);
28
+ }
29
+ return {
30
+ content: [
31
+ {
32
+ type: "text",
33
+ text: `Task "${taskId}" completed successfully. Updated ${Object.keys(filesChanged).length} affected files.`,
34
+ },
35
+ ],
36
+ };
37
+ }
38
+ //# sourceMappingURL=completeTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completeTask.js","sourceRoot":"","sources":["../../../src/services/local/completeTask.ts"],"names":[],"mappings":";;AAMA,oCA6CC;AAlDD,yCAAmD;AAEnD,uCAA0D;AAC1D,qEAA+D;AAExD,KAAK,UAAU,YAAY,CAChC,UAAsB,EACtB,YAA0B,EAC1B,MAAc,EACd,OAAe,EACf,YAAoC;IAEpC,sCAAsC;IACtC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,aAAa,CAAC,CAAC;IACxD,CAAC;IAED,+BAA+B;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,4BAAmB,CAAC,WAAW,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,SAAS,MAAM,yCAAyC,IAAI,CAAC,MAAM,GAAG,CACvE,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC,MAAM,GAAG,4BAAmB,CAAC,IAAI,CAAC;IAEvC,+BAA+B;IAC/B,MAAM,IAAA,4CAAmB,EAAC,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IAE1D,wBAAwB;IACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvB,wBAAwB;IACxB,MAAM,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAElC,iFAAiF;IACjF,IAAI,YAAY,CAAC,kBAAkB,EAAE,CAAC;QACpC,MAAM,IAAA,mCAA2B,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS,MAAM,qCAAqC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,kBAAkB;aAC7G;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { TrellisObjectPriority, TrellisObjectStatus, TrellisObjectType } from "../../models";
2
+ import { Repository } from "../../repositories";
3
+ export declare function createObject(repository: Repository, type: TrellisObjectType, title: string, parent?: string, priority?: TrellisObjectPriority, status?: TrellisObjectStatus, prerequisites?: string[], description?: string): Promise<{
4
+ content: Array<{
5
+ type: string;
6
+ text: string;
7
+ }>;
8
+ }>;
9
+ //# sourceMappingURL=createObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createObject.d.ts","sourceRoot":"","sources":["../../../src/services/local/createObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,GAAE,qBAAoD,EAC9D,MAAM,GAAE,mBAA8C,EACtD,aAAa,GAAE,MAAM,EAAO,EAC5B,WAAW,GAAE,MAAW,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAyC7D"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createObject = createObject;
4
+ const models_1 = require("../../models");
5
+ const utils_1 = require("../../utils");
6
+ const validateObjectCreation_1 = require("../../validation/validateObjectCreation");
7
+ async function createObject(repository, type, title, parent, priority = models_1.TrellisObjectPriority.MEDIUM, status = models_1.TrellisObjectStatus.OPEN, prerequisites = [], description = "") {
8
+ // Get existing objects to generate unique ID
9
+ const existingObjects = await repository.getObjects(true);
10
+ const existingIds = existingObjects.map((obj) => obj.id);
11
+ // Generate unique ID
12
+ const id = (0, utils_1.generateUniqueId)(title, type, existingIds);
13
+ // Create TrellisObject with current timestamp
14
+ const now = new Date().toISOString();
15
+ const trellisObject = {
16
+ id,
17
+ type,
18
+ title,
19
+ status,
20
+ priority,
21
+ parent,
22
+ prerequisites,
23
+ affectedFiles: new Map(),
24
+ log: [],
25
+ schema: "v1.0",
26
+ childrenIds: [],
27
+ created: now,
28
+ updated: now,
29
+ body: description,
30
+ };
31
+ // Validate object before saving
32
+ await (0, validateObjectCreation_1.validateObjectCreation)(trellisObject, repository);
33
+ // Save through repository
34
+ await repository.saveObject(trellisObject);
35
+ return {
36
+ content: [
37
+ {
38
+ type: "text",
39
+ text: `Created object with ID: ${id}`,
40
+ },
41
+ ],
42
+ };
43
+ }
44
+ //# sourceMappingURL=createObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createObject.js","sourceRoot":"","sources":["../../../src/services/local/createObject.ts"],"names":[],"mappings":";;AAUA,oCAkDC;AA5DD,yCAKsB;AAEtB,uCAA+C;AAC/C,oFAAiF;AAE1E,KAAK,UAAU,YAAY,CAChC,UAAsB,EACtB,IAAuB,EACvB,KAAa,EACb,MAAe,EACf,WAAkC,8BAAqB,CAAC,MAAM,EAC9D,SAA8B,4BAAmB,CAAC,IAAI,EACtD,gBAA0B,EAAE,EAC5B,cAAsB,EAAE;IAExB,6CAA6C;IAC7C,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEzD,qBAAqB;IACrB,MAAM,EAAE,GAAG,IAAA,wBAAgB,EAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAEtD,8CAA8C;IAC9C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,aAAa,GAAkB;QACnC,EAAE;QACF,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,aAAa;QACb,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,GAAG,EAAE,EAAE;QACP,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,WAAW;KAClB,CAAC;IAEF,gCAAgC;IAChC,MAAM,IAAA,+CAAsB,EAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAExD,0BAA0B;IAC1B,MAAM,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAE3C,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,2BAA2B,EAAE,EAAE;aACtC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { TrellisObjectPriority, TrellisObjectStatus, TrellisObjectType } from "../../models";
2
+ import { Repository } from "../../repositories";
3
+ export declare function listObjects(repository: Repository, type?: TrellisObjectType | TrellisObjectType[], scope?: string, status?: TrellisObjectStatus | TrellisObjectStatus[], priority?: TrellisObjectPriority | TrellisObjectPriority[], includeClosed?: boolean): Promise<{
4
+ content: Array<{
5
+ type: string;
6
+ text: string;
7
+ }>;
8
+ }>;
9
+ //# sourceMappingURL=listObjects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listObjects.d.ts","sourceRoot":"","sources":["../../../src/services/local/listObjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EACrB,mBAAmB,EAEnB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAsBhD,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,IAAI,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,EAC9C,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,EACpD,QAAQ,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,EAC1D,aAAa,GAAE,OAAe,GAC7B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAoC7D"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listObjects = listObjects;
4
+ function convertToSummary(obj) {
5
+ return {
6
+ id: obj.id,
7
+ type: obj.type,
8
+ title: obj.title,
9
+ status: obj.status,
10
+ priority: obj.priority,
11
+ parent: obj.parent,
12
+ prerequisites: obj.prerequisites,
13
+ childrenIds: obj.childrenIds,
14
+ created: obj.created,
15
+ updated: obj.updated,
16
+ };
17
+ }
18
+ const normalizeEnumInput = (input) => {
19
+ if (input === undefined)
20
+ return undefined;
21
+ return Array.isArray(input) ? input : [input];
22
+ };
23
+ async function listObjects(repository, type, scope, status, priority, includeClosed = false) {
24
+ try {
25
+ // Normalize inputs to arrays
26
+ const normalizedType = normalizeEnumInput(type);
27
+ const normalizedStatus = normalizeEnumInput(status);
28
+ const normalizedPriority = normalizeEnumInput(priority);
29
+ // Get objects from repository
30
+ const objects = await repository.getObjects(includeClosed, scope, normalizedType, normalizedStatus, normalizedPriority);
31
+ const objectSummaries = objects.map(convertToSummary);
32
+ return {
33
+ content: [
34
+ {
35
+ type: "text",
36
+ text: JSON.stringify(objectSummaries, null, 2),
37
+ },
38
+ ],
39
+ };
40
+ }
41
+ catch (error) {
42
+ return {
43
+ content: [
44
+ {
45
+ type: "text",
46
+ text: `Error listing objects: ${error instanceof Error ? error.message : String(error)}`,
47
+ },
48
+ ],
49
+ };
50
+ }
51
+ }
52
+ //# sourceMappingURL=listObjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listObjects.js","sourceRoot":"","sources":["../../../src/services/local/listObjects.ts"],"names":[],"mappings":";;AA6BA,kCA2CC;AA/DD,SAAS,gBAAgB,CAAC,GAAkB;IAC1C,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAI,KAA0B,EAAmB,EAAE;IAC5E,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC,CAAC;AAEK,KAAK,UAAU,WAAW,CAC/B,UAAsB,EACtB,IAA8C,EAC9C,KAAc,EACd,MAAoD,EACpD,QAA0D,EAC1D,gBAAyB,KAAK;IAE9B,IAAI,CAAC;QACH,6BAA6B;QAC7B,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAExD,8BAA8B;QAC9B,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,CACzC,aAAa,EACb,KAAK,EACL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,CACnB,CAAC;QAEF,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAEtD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC/C;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,8 @@
1
+ import { Repository } from "../../repositories";
2
+ export declare function pruneClosed(repository: Repository, age: number, scope?: string): Promise<{
3
+ content: Array<{
4
+ type: string;
5
+ text: string;
6
+ }>;
7
+ }>;
8
+ //# sourceMappingURL=pruneClosed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pruneClosed.d.ts","sourceRoot":"","sources":["../../../src/services/local/pruneClosed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AA8ChD,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAsF7D"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pruneClosed = pruneClosed;
4
+ const models_1 = require("../../models");
5
+ /**
6
+ * Recursively checks if an object has any open descendants at any level.
7
+ *
8
+ * @param objectId - The ID of the object to check for open descendants
9
+ * @param repository - The repository to query for children
10
+ * @param visited - Set to track visited objects and prevent infinite loops
11
+ * @returns Promise<boolean> - true if any descendant at any level is open
12
+ */
13
+ async function hasOpenDescendants(objectId, repository, visited = new Set()) {
14
+ // Prevent infinite loops by tracking visited objects
15
+ if (visited.has(objectId)) {
16
+ return false;
17
+ }
18
+ visited.add(objectId);
19
+ try {
20
+ // Get all children (including closed ones)
21
+ const children = await repository.getChildrenOf(objectId, true);
22
+ // Check each child
23
+ for (const child of children) {
24
+ // If any direct child is open, return true immediately
25
+ if ((0, models_1.isOpen)(child)) {
26
+ return true;
27
+ }
28
+ // Recursively check if this child has open descendants
29
+ if (await hasOpenDescendants(child.id, repository, visited)) {
30
+ return true;
31
+ }
32
+ }
33
+ return false;
34
+ }
35
+ catch (error) {
36
+ // If we can't check descendants, err on the side of caution
37
+ console.error(`Error checking descendants for ${objectId}:`, error);
38
+ return false;
39
+ }
40
+ }
41
+ async function pruneClosed(repository, age, scope) {
42
+ try {
43
+ // Early return for disabled auto-prune
44
+ if (age <= 0) {
45
+ const message = scope
46
+ ? `Auto-prune disabled (threshold: ${age} days) in scope ${scope}`
47
+ : `Auto-prune disabled (threshold: ${age} days)`;
48
+ return {
49
+ content: [{ type: "text", text: message }],
50
+ };
51
+ }
52
+ // Get all objects including closed ones
53
+ const objects = await repository.getObjects(true, scope);
54
+ // Filter to only closed objects
55
+ const closedObjects = objects.filter(models_1.isClosed);
56
+ // Calculate cutoff time (age in days ago)
57
+ const cutoffTime = new Date(Date.now() - age * 24 * 60 * 60 * 1000);
58
+ // Filter to objects older than cutoff
59
+ const objectsToDelete = closedObjects.filter((obj) => {
60
+ const updatedTime = new Date(obj.updated);
61
+ return updatedTime < cutoffTime;
62
+ });
63
+ // Delete each object with hierarchical child validation
64
+ const deletedIds = [];
65
+ const skippedIds = [];
66
+ for (const obj of objectsToDelete) {
67
+ try {
68
+ // Check if object has open descendants at any level
69
+ const hasOpenDescendantsResult = await hasOpenDescendants(obj.id, repository);
70
+ if (hasOpenDescendantsResult) {
71
+ // Skip deletion if object has open descendants
72
+ skippedIds.push(obj.id);
73
+ continue;
74
+ }
75
+ // Proceed with deletion if no open children
76
+ await repository.deleteObject(obj.id, true);
77
+ deletedIds.push(obj.id);
78
+ }
79
+ catch (error) {
80
+ // Continue with other objects even if one fails
81
+ console.error(`Failed to delete object ${obj.id}:`, error);
82
+ }
83
+ }
84
+ const message = scope
85
+ ? `Pruned ${deletedIds.length} closed objects older than ${age} days in scope ${scope}`
86
+ : `Pruned ${deletedIds.length} closed objects older than ${age} days`;
87
+ const skippedMessage = skippedIds.length > 0
88
+ ? `\nSkipped ${skippedIds.length} objects with open children: ${skippedIds.join(", ")}`
89
+ : "";
90
+ return {
91
+ content: [
92
+ {
93
+ type: "text",
94
+ text: `${message}${deletedIds.length > 0
95
+ ? `\nDeleted objects: ${deletedIds.join(", ")}`
96
+ : ""}${skippedMessage}`,
97
+ },
98
+ ],
99
+ };
100
+ }
101
+ catch (error) {
102
+ return {
103
+ content: [
104
+ {
105
+ type: "text",
106
+ text: `Error pruning closed objects: ${error instanceof Error ? error.message : String(error)}`,
107
+ },
108
+ ],
109
+ };
110
+ }
111
+ }
112
+ //# sourceMappingURL=pruneClosed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pruneClosed.js","sourceRoot":"","sources":["../../../src/services/local/pruneClosed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { ServerConfig } from "../../configuration";
2
+ import { TrellisObjectPriority, TrellisObjectStatus } from "../../models";
3
+ import { Repository } from "../../repositories";
4
+ export declare function updateObject(repository: Repository, serverConfig: ServerConfig, id: string, title?: string, priority?: TrellisObjectPriority, prerequisites?: string[], body?: string, status?: TrellisObjectStatus, force?: boolean): Promise<{
5
+ content: Array<{
6
+ type: string;
7
+ text: string;
8
+ }>;
9
+ }>;
10
+ //# sourceMappingURL=updateObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateObject.d.ts","sourceRoot":"","sources":["../../../src/services/local/updateObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAEL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOhD,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,qBAAqB,EAChC,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,mBAAmB,EAC5B,KAAK,GAAE,OAAe,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAmF7D"}