@langadventurellc/task-trellis-mcp 1.1.0 → 1.2.1

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 (262) hide show
  1. package/README.md +37 -323
  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 +34 -34
  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 +561 -42
  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 +1 -1
  37. package/dist/__tests__/e2e/utils/extractObjectIds.js +1 -1
  38. package/dist/__tests__/e2e/utils/mcpTestClient.d.ts.map +1 -1
  39. package/dist/__tests__/e2e/utils/mcpTestClient.js +3 -2
  40. package/dist/__tests__/e2e/utils/mcpTestClient.js.map +1 -1
  41. package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts +1 -1
  42. package/dist/__tests__/e2e/utils/parseListObjectsResponse.js +1 -1
  43. package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.d.ts +1 -1
  44. package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.js +1 -1
  45. package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js +4 -4
  46. package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js.map +1 -1
  47. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js +15 -15
  48. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js.map +1 -1
  49. package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js +44 -0
  50. package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js.map +1 -1
  51. package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js +4 -4
  52. package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js.map +1 -1
  53. package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js +43 -43
  54. package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js.map +1 -1
  55. package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js +19 -19
  56. package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js.map +1 -1
  57. package/dist/__tests__/serverStartup.test.d.ts +2 -0
  58. package/dist/__tests__/serverStartup.test.d.ts.map +1 -0
  59. package/dist/__tests__/serverStartup.test.js +171 -0
  60. package/dist/__tests__/serverStartup.test.js.map +1 -0
  61. package/dist/configuration/ServerConfig.d.ts +2 -1
  62. package/dist/configuration/ServerConfig.d.ts.map +1 -1
  63. package/dist/repositories/Repository.d.ts +2 -1
  64. package/dist/repositories/Repository.d.ts.map +1 -1
  65. package/dist/repositories/local/LocalRepository.d.ts +2 -1
  66. package/dist/repositories/local/LocalRepository.d.ts.map +1 -1
  67. package/dist/repositories/local/LocalRepository.js +4 -0
  68. package/dist/repositories/local/LocalRepository.js.map +1 -1
  69. package/dist/repositories/local/__tests__/getChildrenOf.test.d.ts +2 -0
  70. package/dist/repositories/local/__tests__/getChildrenOf.test.d.ts.map +1 -0
  71. package/dist/repositories/local/__tests__/getChildrenOf.test.js +306 -0
  72. package/dist/repositories/local/__tests__/getChildrenOf.test.js.map +1 -0
  73. package/dist/repositories/local/__tests__/getObjects.test.js +309 -0
  74. package/dist/repositories/local/__tests__/getObjects.test.js.map +1 -1
  75. package/dist/repositories/local/deleteObjectById.d.ts.map +1 -1
  76. package/dist/repositories/local/deleteObjectById.js +2 -0
  77. package/dist/repositories/local/deleteObjectById.js.map +1 -1
  78. package/dist/repositories/local/getChildrenOf.d.ts +11 -0
  79. package/dist/repositories/local/getChildrenOf.d.ts.map +1 -0
  80. package/dist/repositories/local/getChildrenOf.js +73 -0
  81. package/dist/repositories/local/getChildrenOf.js.map +1 -0
  82. package/dist/repositories/local/getObjects.d.ts +1 -1
  83. package/dist/repositories/local/getObjects.d.ts.map +1 -1
  84. package/dist/repositories/local/getObjects.js +25 -6
  85. package/dist/repositories/local/getObjects.js.map +1 -1
  86. package/dist/server.js +39 -15
  87. package/dist/server.js.map +1 -1
  88. package/dist/services/TaskTrellisService.d.ts +4 -13
  89. package/dist/services/TaskTrellisService.d.ts.map +1 -1
  90. package/dist/services/local/LocalTaskTrellisService.d.ts +3 -9
  91. package/dist/services/local/LocalTaskTrellisService.d.ts.map +1 -1
  92. package/dist/services/local/LocalTaskTrellisService.js +4 -8
  93. package/dist/services/local/LocalTaskTrellisService.js.map +1 -1
  94. package/dist/services/local/__tests__/appendModifiedFiles.test.js +1 -0
  95. package/dist/services/local/__tests__/appendModifiedFiles.test.js.map +1 -1
  96. package/dist/services/local/__tests__/appendObjectLog.test.js +1 -0
  97. package/dist/services/local/__tests__/appendObjectLog.test.js.map +1 -1
  98. package/dist/services/local/__tests__/claimTask.test.js +127 -131
  99. package/dist/services/local/__tests__/claimTask.test.js.map +1 -1
  100. package/dist/services/local/__tests__/completeTask.test.js +30 -28
  101. package/dist/services/local/__tests__/completeTask.test.js.map +1 -1
  102. package/dist/services/local/__tests__/createObject.test.js +1 -0
  103. package/dist/services/local/__tests__/createObject.test.js.map +1 -1
  104. package/dist/services/local/__tests__/listObjects.test.js +135 -10
  105. package/dist/services/local/__tests__/listObjects.test.js.map +1 -1
  106. package/dist/services/local/__tests__/pruneClosed.test.js +446 -186
  107. package/dist/services/local/__tests__/pruneClosed.test.js.map +1 -1
  108. package/dist/services/local/__tests__/updateObject.test.js +234 -27
  109. package/dist/services/local/__tests__/updateObject.test.js.map +1 -1
  110. package/dist/services/local/claimTask.d.ts.map +1 -1
  111. package/dist/services/local/claimTask.js +25 -34
  112. package/dist/services/local/claimTask.js.map +1 -1
  113. package/dist/services/local/completeTask.d.ts +1 -1
  114. package/dist/services/local/completeTask.d.ts.map +1 -1
  115. package/dist/services/local/completeTask.js +4 -40
  116. package/dist/services/local/completeTask.js.map +1 -1
  117. package/dist/services/local/listObjects.d.ts +1 -1
  118. package/dist/services/local/listObjects.d.ts.map +1 -1
  119. package/dist/services/local/listObjects.js +10 -1
  120. package/dist/services/local/listObjects.js.map +1 -1
  121. package/dist/services/local/pruneClosed.d.ts.map +1 -1
  122. package/dist/services/local/pruneClosed.js +63 -6
  123. package/dist/services/local/pruneClosed.js.map +1 -1
  124. package/dist/services/local/updateObject.d.ts +2 -1
  125. package/dist/services/local/updateObject.d.ts.map +1 -1
  126. package/dist/services/local/updateObject.js +28 -1
  127. package/dist/services/local/updateObject.js.map +1 -1
  128. package/dist/tools/__tests__/appendModifiedFilesTool.test.js +1 -0
  129. package/dist/tools/__tests__/appendModifiedFilesTool.test.js.map +1 -1
  130. package/dist/tools/__tests__/appendObjectLogTool.test.js +1 -0
  131. package/dist/tools/__tests__/appendObjectLogTool.test.js.map +1 -1
  132. package/dist/tools/__tests__/claimTaskTool.test.js +1 -1
  133. package/dist/tools/__tests__/claimTaskTool.test.js.map +1 -1
  134. package/dist/tools/__tests__/completeTaskTool.test.js +23 -16
  135. package/dist/tools/__tests__/completeTaskTool.test.js.map +1 -1
  136. package/dist/tools/__tests__/createObjectTool.test.js +1 -0
  137. package/dist/tools/__tests__/createObjectTool.test.js.map +1 -1
  138. package/dist/tools/__tests__/deleteObjectTool.test.js +1 -0
  139. package/dist/tools/__tests__/deleteObjectTool.test.js.map +1 -1
  140. package/dist/tools/__tests__/getObjectTool.test.js +1 -0
  141. package/dist/tools/__tests__/getObjectTool.test.js.map +1 -1
  142. package/dist/tools/__tests__/listObjectsTool.test.js +160 -1
  143. package/dist/tools/__tests__/listObjectsTool.test.js.map +1 -1
  144. package/dist/tools/__tests__/updateObjectTool.test.js +39 -10
  145. package/dist/tools/__tests__/updateObjectTool.test.js.map +1 -1
  146. package/dist/tools/appendModifiedFilesTool.d.ts +2 -2
  147. package/dist/tools/appendModifiedFilesTool.js +4 -4
  148. package/dist/tools/appendModifiedFilesTool.js.map +1 -1
  149. package/dist/tools/appendObjectLogTool.d.ts +3 -3
  150. package/dist/tools/appendObjectLogTool.js +4 -4
  151. package/dist/tools/appendObjectLogTool.js.map +1 -1
  152. package/dist/tools/completeTaskTool.d.ts +1 -1
  153. package/dist/tools/completeTaskTool.d.ts.map +1 -1
  154. package/dist/tools/completeTaskTool.js +1 -1
  155. package/dist/tools/completeTaskTool.js.map +1 -1
  156. package/dist/tools/createObjectTool.d.ts +8 -8
  157. package/dist/tools/createObjectTool.js +13 -13
  158. package/dist/tools/createObjectTool.js.map +1 -1
  159. package/dist/tools/deleteObjectTool.d.ts +3 -3
  160. package/dist/tools/deleteObjectTool.js +12 -12
  161. package/dist/tools/deleteObjectTool.js.map +1 -1
  162. package/dist/tools/getObjectTool.d.ts +3 -3
  163. package/dist/tools/getObjectTool.d.ts.map +1 -1
  164. package/dist/tools/getObjectTool.js +12 -7
  165. package/dist/tools/getObjectTool.js.map +1 -1
  166. package/dist/tools/index.d.ts +7 -9
  167. package/dist/tools/index.d.ts.map +1 -1
  168. package/dist/tools/index.js +22 -28
  169. package/dist/tools/index.js.map +1 -1
  170. package/dist/tools/listObjectsTool.d.ts +20 -11
  171. package/dist/tools/listObjectsTool.d.ts.map +1 -1
  172. package/dist/tools/listObjectsTool.js +112 -40
  173. package/dist/tools/listObjectsTool.js.map +1 -1
  174. package/dist/tools/updateObjectTool.d.ts +12 -7
  175. package/dist/tools/updateObjectTool.d.ts.map +1 -1
  176. package/dist/tools/updateObjectTool.js +20 -14
  177. package/dist/tools/updateObjectTool.js.map +1 -1
  178. package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.d.ts +2 -0
  179. package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.d.ts.map +1 -0
  180. package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js +206 -0
  181. package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js.map +1 -0
  182. package/dist/utils/__tests__/checkPrerequisitesComplete.test.js +5 -0
  183. package/dist/utils/__tests__/checkPrerequisitesComplete.test.js.map +1 -1
  184. package/dist/utils/__tests__/filterUnavailableObjects.test.js +51 -25
  185. package/dist/utils/__tests__/filterUnavailableObjects.test.js.map +1 -1
  186. package/dist/utils/__tests__/isRequiredForOtherObjects.test.js +5 -0
  187. package/dist/utils/__tests__/isRequiredForOtherObjects.test.js.map +1 -1
  188. package/dist/utils/__tests__/updateParentHierarchy.test.d.ts +2 -0
  189. package/dist/utils/__tests__/updateParentHierarchy.test.d.ts.map +1 -0
  190. package/dist/utils/__tests__/updateParentHierarchy.test.js +137 -0
  191. package/dist/utils/__tests__/updateParentHierarchy.test.js.map +1 -0
  192. package/dist/utils/autoCompleteParentHierarchy.d.ts +11 -0
  193. package/dist/utils/autoCompleteParentHierarchy.d.ts.map +1 -0
  194. package/dist/utils/autoCompleteParentHierarchy.js +49 -0
  195. package/dist/utils/autoCompleteParentHierarchy.js.map +1 -0
  196. package/dist/utils/checkHierarchicalPrerequisitesComplete.d.ts +14 -0
  197. package/dist/utils/checkHierarchicalPrerequisitesComplete.d.ts.map +1 -0
  198. package/dist/utils/checkHierarchicalPrerequisitesComplete.js +47 -0
  199. package/dist/utils/checkHierarchicalPrerequisitesComplete.js.map +1 -0
  200. package/dist/utils/filterUnavailableObjects.d.ts +6 -4
  201. package/dist/utils/filterUnavailableObjects.d.ts.map +1 -1
  202. package/dist/utils/filterUnavailableObjects.js +16 -22
  203. package/dist/utils/filterUnavailableObjects.js.map +1 -1
  204. package/dist/utils/index.d.ts +3 -2
  205. package/dist/utils/index.d.ts.map +1 -1
  206. package/dist/utils/index.js +7 -3
  207. package/dist/utils/index.js.map +1 -1
  208. package/dist/utils/updateParentHierarchy.d.ts +11 -0
  209. package/dist/utils/updateParentHierarchy.d.ts.map +1 -0
  210. package/dist/utils/updateParentHierarchy.js +40 -0
  211. package/dist/utils/updateParentHierarchy.js.map +1 -0
  212. package/dist/validation/__tests__/validateObjectCreation.test.js +1 -0
  213. package/dist/validation/__tests__/validateObjectCreation.test.js.map +1 -1
  214. package/dist/validation/__tests__/validateParentExists.test.js +1 -0
  215. package/dist/validation/__tests__/validateParentExists.test.js.map +1 -1
  216. package/dist/validation/__tests__/validateStatusTransition.test.js +1 -0
  217. package/dist/validation/__tests__/validateStatusTransition.test.js.map +1 -1
  218. package/package.json +1 -1
  219. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts +0 -2
  220. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts.map +0 -1
  221. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js +0 -693
  222. package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js.map +0 -1
  223. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts +0 -2
  224. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts.map +0 -1
  225. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js +0 -352
  226. package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js.map +0 -1
  227. package/dist/services/local/__tests__/replaceObjectBodyRegex.test.d.ts +0 -2
  228. package/dist/services/local/__tests__/replaceObjectBodyRegex.test.d.ts.map +0 -1
  229. package/dist/services/local/__tests__/replaceObjectBodyRegex.test.js +0 -283
  230. package/dist/services/local/__tests__/replaceObjectBodyRegex.test.js.map +0 -1
  231. package/dist/services/local/replaceObjectBodyRegex.d.ts +0 -8
  232. package/dist/services/local/replaceObjectBodyRegex.d.ts.map +0 -1
  233. package/dist/services/local/replaceObjectBodyRegex.js +0 -85
  234. package/dist/services/local/replaceObjectBodyRegex.js.map +0 -1
  235. package/dist/tools/__tests__/pruneClosedTool.test.d.ts +0 -2
  236. package/dist/tools/__tests__/pruneClosedTool.test.d.ts.map +0 -1
  237. package/dist/tools/__tests__/pruneClosedTool.test.js +0 -112
  238. package/dist/tools/__tests__/pruneClosedTool.test.js.map +0 -1
  239. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts +0 -2
  240. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts.map +0 -1
  241. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js +0 -89
  242. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js.map +0 -1
  243. package/dist/tools/pruneClosedTool.d.ts +0 -27
  244. package/dist/tools/pruneClosedTool.d.ts.map +0 -1
  245. package/dist/tools/pruneClosedTool.js +0 -57
  246. package/dist/tools/pruneClosedTool.js.map +0 -1
  247. package/dist/tools/replaceObjectBodyRegexTool.d.ts +0 -36
  248. package/dist/tools/replaceObjectBodyRegexTool.d.ts.map +0 -1
  249. package/dist/tools/replaceObjectBodyRegexTool.js +0 -67
  250. package/dist/tools/replaceObjectBodyRegexTool.js.map +0 -1
  251. package/dist/utils/ReplaceStringOptions.d.ts +0 -12
  252. package/dist/utils/ReplaceStringOptions.d.ts.map +0 -1
  253. package/dist/utils/ReplaceStringOptions.js +0 -3
  254. package/dist/utils/ReplaceStringOptions.js.map +0 -1
  255. package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts +0 -2
  256. package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts.map +0 -1
  257. package/dist/utils/__tests__/replaceStringWithRegex.test.js +0 -281
  258. package/dist/utils/__tests__/replaceStringWithRegex.test.js.map +0 -1
  259. package/dist/utils/replaceStringWithRegex.d.ts +0 -45
  260. package/dist/utils/replaceStringWithRegex.d.ts.map +0 -1
  261. package/dist/utils/replaceStringWithRegex.js +0 -91
  262. package/dist/utils/replaceStringWithRegex.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const utils_1 = require("../utils");
4
3
  const yaml_1 = require("yaml");
4
+ const utils_1 = require("../utils");
5
5
  describe("E2E File Validation", () => {
6
6
  let testEnv;
7
7
  let client;
@@ -21,7 +21,7 @@ describe("E2E File Validation", () => {
21
21
  });
22
22
  describe("YAML Front-matter Structure Validation", () => {
23
23
  it("should validate required fields in project YAML", async () => {
24
- const result = await client.callTool("create_object", {
24
+ const result = await client.callTool("create_issue", {
25
25
  type: "project",
26
26
  title: "YAML Validation Project",
27
27
  description: "Testing YAML structure",
@@ -39,24 +39,24 @@ describe("E2E File Validation", () => {
39
39
  });
40
40
  it("should validate all object types have correct YAML structure", async () => {
41
41
  // Create hierarchy: Project -> Epic -> Feature -> Task
42
- const projectResult = await client.callTool("create_object", {
42
+ const projectResult = await client.callTool("create_issue", {
43
43
  type: "project",
44
44
  title: "Structure Test Project",
45
45
  });
46
46
  const projectId = projectResult.content[0].text.match(/ID: (P-[a-z-]+)/)[1];
47
- const epicResult = await client.callTool("create_object", {
47
+ const epicResult = await client.callTool("create_issue", {
48
48
  type: "epic",
49
49
  title: "Structure Test Epic",
50
50
  parent: projectId,
51
51
  });
52
52
  const epicId = epicResult.content[0].text.match(/ID: (E-[a-z-]+)/)[1];
53
- const featureResult = await client.callTool("create_object", {
53
+ const featureResult = await client.callTool("create_issue", {
54
54
  type: "feature",
55
55
  title: "Structure Test Feature",
56
56
  parent: epicId,
57
57
  });
58
58
  const featureId = featureResult.content[0].text.match(/ID: (F-[a-z-]+)/)[1];
59
- const taskResult = await client.callTool("create_object", {
59
+ const taskResult = await client.callTool("create_issue", {
60
60
  type: "task",
61
61
  title: "Structure Test Task",
62
62
  parent: featureId,
@@ -73,7 +73,7 @@ describe("E2E File Validation", () => {
73
73
  expect(taskFile.yaml.parent).toBe(featureId);
74
74
  });
75
75
  it("should handle empty and null values correctly", async () => {
76
- const result = await client.callTool("create_object", {
76
+ const result = await client.callTool("create_issue", {
77
77
  type: "task",
78
78
  title: "Empty Values Test",
79
79
  prerequisites: [],
@@ -88,7 +88,7 @@ describe("E2E File Validation", () => {
88
88
  });
89
89
  describe("Special Characters Handling", () => {
90
90
  it("should handle quotes in YAML fields", async () => {
91
- const result = await client.callTool("create_object", {
91
+ const result = await client.callTool("create_issue", {
92
92
  type: "task",
93
93
  title: "Task with \"double quotes\" and 'single quotes'",
94
94
  description: 'Body with "quotes" and special chars',
@@ -102,7 +102,7 @@ describe("E2E File Validation", () => {
102
102
  expect(() => (0, yaml_1.parse)(yamlString)).not.toThrow();
103
103
  });
104
104
  it("should handle colons and YAML special symbols", async () => {
105
- const result = await client.callTool("create_object", {
105
+ const result = await client.callTool("create_issue", {
106
106
  type: "feature",
107
107
  title: "Feature: with: colons: everywhere",
108
108
  description: "key: value pairs in body\nshould: not: break: parsing",
@@ -114,7 +114,7 @@ describe("E2E File Validation", () => {
114
114
  });
115
115
  it("should handle multi-line content in arrays", async () => {
116
116
  // First create a task
117
- const createResult = await client.callTool("create_object", {
117
+ const createResult = await client.callTool("create_issue", {
118
118
  type: "task",
119
119
  title: "Multi-line Log Test",
120
120
  });
@@ -133,7 +133,7 @@ describe("E2E File Validation", () => {
133
133
  expect(file.yaml.log).toContain("Another entry with:\n\nParagraph breaks\n\nAnd formatting");
134
134
  });
135
135
  it("should handle unicode and emojis", async () => {
136
- const result = await client.callTool("create_object", {
136
+ const result = await client.callTool("create_issue", {
137
137
  type: "project",
138
138
  title: "Unicode Project 🚀 你好世界",
139
139
  description: "Testing émojis 😀 and spëcial çhars",
@@ -157,7 +157,7 @@ config:
157
157
  \`\`\`
158
158
 
159
159
  This should not confuse the parser.`;
160
- const result = await client.callTool("create_object", {
160
+ const result = await client.callTool("create_issue", {
161
161
  type: "task",
162
162
  title: "YAML in Body Test",
163
163
  description: yamlLikeBody,
@@ -170,24 +170,24 @@ This should not confuse the parser.`;
170
170
  describe("Directory Structure Validation", () => {
171
171
  it("should create correct directory hierarchy for nested objects", async () => {
172
172
  // Create complete hierarchy
173
- const projectResult = await client.callTool("create_object", {
173
+ const projectResult = await client.callTool("create_issue", {
174
174
  type: "project",
175
175
  title: "Hierarchy Test",
176
176
  });
177
177
  const projectId = projectResult.content[0].text.match(/ID: (P-[a-z-]+)/)[1];
178
- const epicResult = await client.callTool("create_object", {
178
+ const epicResult = await client.callTool("create_issue", {
179
179
  type: "epic",
180
180
  title: "Hierarchy Epic",
181
181
  parent: projectId,
182
182
  });
183
183
  const epicId = epicResult.content[0].text.match(/ID: (E-[a-z-]+)/)[1];
184
- const featureResult = await client.callTool("create_object", {
184
+ const featureResult = await client.callTool("create_issue", {
185
185
  type: "feature",
186
186
  title: "Hierarchy Feature",
187
187
  parent: epicId,
188
188
  });
189
189
  const featureId = featureResult.content[0].text.match(/ID: (F-[a-z-]+)/)[1];
190
- const taskResult = await client.callTool("create_object", {
190
+ const taskResult = await client.callTool("create_issue", {
191
191
  type: "task",
192
192
  title: "Hierarchy Task",
193
193
  parent: featureId,
@@ -205,7 +205,7 @@ This should not confuse the parser.`;
205
205
  expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `p/${projectId}/e/${epicId}/f/${featureId}/t/open/${taskId}.md`)).toBe(true);
206
206
  });
207
207
  it("should handle standalone features correctly", async () => {
208
- const result = await client.callTool("create_object", {
208
+ const result = await client.callTool("create_issue", {
209
209
  type: "feature",
210
210
  title: "Standalone Feature",
211
211
  });
@@ -213,13 +213,13 @@ This should not confuse the parser.`;
213
213
  expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `f/${featureId}/${featureId}.md`)).toBe(true);
214
214
  });
215
215
  it("should handle standalone tasks correctly", async () => {
216
- const openResult = await client.callTool("create_object", {
216
+ const openResult = await client.callTool("create_issue", {
217
217
  type: "task",
218
218
  title: "Standalone Open Task",
219
219
  status: "open",
220
220
  });
221
221
  const openTaskId = openResult.content[0].text.match(/ID: (T-[a-z-]+)/)[1];
222
- const closedResult = await client.callTool("create_object", {
222
+ const closedResult = await client.callTool("create_issue", {
223
223
  type: "task",
224
224
  title: "Standalone Closed Task",
225
225
  status: "done",
@@ -232,7 +232,7 @@ This should not confuse the parser.`;
232
232
  describe("Task Status Directory Transitions", () => {
233
233
  it("should move task file when status changes from open to closed", async () => {
234
234
  // Create task in open status
235
- const createResult = await client.callTool("create_object", {
235
+ const createResult = await client.callTool("create_issue", {
236
236
  type: "task",
237
237
  title: "Status Transition Task",
238
238
  status: "open",
@@ -242,7 +242,7 @@ This should not confuse the parser.`;
242
242
  expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `t/open/${taskId}.md`)).toBe(true);
243
243
  expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `t/closed/${taskId}.md`)).toBe(false);
244
244
  // Update status to done
245
- await client.callTool("update_object", {
245
+ await client.callTool("update_issue", {
246
246
  id: taskId,
247
247
  status: "done",
248
248
  force: true,
@@ -253,7 +253,7 @@ This should not confuse the parser.`;
253
253
  });
254
254
  it("should move task file when status changes from closed to open", async () => {
255
255
  // Create task in done status
256
- const createResult = await client.callTool("create_object", {
256
+ const createResult = await client.callTool("create_issue", {
257
257
  type: "task",
258
258
  title: "Reopen Task",
259
259
  status: "done",
@@ -262,7 +262,7 @@ This should not confuse the parser.`;
262
262
  // Verify initial location
263
263
  expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `t/closed/${taskId}.md`)).toBe(true);
264
264
  // Update status to in-progress
265
- await client.callTool("update_object", {
265
+ await client.callTool("update_issue", {
266
266
  id: taskId,
267
267
  status: "in-progress",
268
268
  force: true,
@@ -273,12 +273,12 @@ This should not confuse the parser.`;
273
273
  });
274
274
  it("should handle status transitions for tasks in hierarchy", async () => {
275
275
  // Create feature with task
276
- const featureResult = await client.callTool("create_object", {
276
+ const featureResult = await client.callTool("create_issue", {
277
277
  type: "feature",
278
278
  title: "Parent Feature",
279
279
  });
280
280
  const featureId = featureResult.content[0].text.match(/ID: (F-[a-z-]+)/)[1];
281
- const taskResult = await client.callTool("create_object", {
281
+ const taskResult = await client.callTool("create_issue", {
282
282
  type: "task",
283
283
  title: "Hierarchical Task",
284
284
  parent: featureId,
@@ -288,7 +288,7 @@ This should not confuse the parser.`;
288
288
  // Verify initial location
289
289
  expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `f/${featureId}/t/open/${taskId}.md`)).toBe(true);
290
290
  // First change status to in-progress
291
- await client.callTool("update_object", {
291
+ await client.callTool("update_issue", {
292
292
  id: taskId,
293
293
  status: "in-progress",
294
294
  force: true,
@@ -341,7 +341,7 @@ Additional content after horizontal rule.
341
341
 
342
342
  ![Image description](image.png)
343
343
  [Link text](https://example.com)`;
344
- const createResult = await client.callTool("create_object", {
344
+ const createResult = await client.callTool("create_issue", {
345
345
  type: "feature",
346
346
  title: "Complex Content Feature",
347
347
  description: complexBody,
@@ -351,7 +351,7 @@ Additional content after horizontal rule.
351
351
  const file = await (0, utils_1.readObjectFile)(testEnv.projectRoot, `f/${featureId}/${featureId}.md`);
352
352
  expect(file.body).toBe(complexBody);
353
353
  // Update the feature and verify content still preserved
354
- await client.callTool("update_object", {
354
+ await client.callTool("update_issue", {
355
355
  id: featureId,
356
356
  priority: "high",
357
357
  });
@@ -361,7 +361,7 @@ Additional content after horizontal rule.
361
361
  });
362
362
  it("should handle file encoding and newlines correctly", async () => {
363
363
  const mixedNewlines = "Line 1\nLine 2\r\nLine 3\rLine 4";
364
- const result = await client.callTool("create_object", {
364
+ const result = await client.callTool("create_issue", {
365
365
  type: "task",
366
366
  title: "Newline Test",
367
367
  description: mixedNewlines,
@@ -383,19 +383,19 @@ Additional content after horizontal rule.
383
383
  prerequisites: ["dep1", "dep2"],
384
384
  };
385
385
  // Need to create project first for epic
386
- const projectResult = await client.callTool("create_object", {
386
+ const projectResult = await client.callTool("create_issue", {
387
387
  type: "project",
388
388
  title: "Parent Project",
389
389
  });
390
390
  const projectId = projectResult.content[0].text.match(/ID: (P-[a-z-]+)/)[1];
391
- const epicResult = await client.callTool("create_object", {
391
+ const epicResult = await client.callTool("create_issue", {
392
392
  type: "epic",
393
393
  parent: projectId,
394
394
  ...testData,
395
395
  });
396
396
  const epicId = epicResult.content[0].text.match(/ID: (E-[a-z-]+)/)[1];
397
397
  // Get the object through MCP
398
- const getResult = await client.callTool("get_object", {
398
+ const getResult = await client.callTool("get_issue", {
399
399
  id: epicId,
400
400
  });
401
401
  // Verify all data preserved
@@ -1 +1 @@
1
- {"version":3,"file":"fileValidation.e2e.test.js","sourceRoot":"","sources":["../../../../src/__tests__/e2e/crud/fileValidation.e2e.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fileValidation.e2e.test.js","sourceRoot":"","sources":["../../../../src/__tests__/e2e/crud/fileValidation.e2e.test.ts"],"names":[],"mappings":"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"}
@@ -81,7 +81,7 @@ describe("E2E CRUD - getObject", () => {
81
81
  };
82
82
  const epicContent = (0, utils_1.createObjectContent)(epicData);
83
83
  await (0, utils_1.createObjectFile)(testEnv.projectRoot, "epic", "E-child-epic", epicContent, { projectId: "P-test-project" });
84
- const result = await client.callTool("get_object", {
84
+ const result = await client.callTool("get_issue", {
85
85
  id: "P-test-project",
86
86
  });
87
87
  expect(result.content[0].type).toBe("text");
@@ -93,7 +93,7 @@ describe("E2E CRUD - getObject", () => {
93
93
  expect(object.priority).toBe("high");
94
94
  expect(object.parent).toBeUndefined();
95
95
  expect(object.prerequisites).toEqual(["P-dep1", "P-dep2"]);
96
- expect(object.affectedFiles).toEqual({});
96
+ expect(object.affectedFiles).toEqual({ "src/index.ts": "Initial setup" });
97
97
  expect(object.log).toEqual(["Created project", "Updated priority"]);
98
98
  expect(object.schema).toBe("1.1");
99
99
  expect(object.body).toBe("This is the project description");
@@ -109,7 +109,7 @@ describe("E2E CRUD - getObject", () => {
109
109
  };
110
110
  const content = (0, utils_1.createObjectContent)(epicData);
111
111
  await (0, utils_1.createObjectFile)(testEnv.projectRoot, "epic", "E-test-epic", content, { projectId: "P-parent-project" });
112
- const result = await client.callTool("get_object", {
112
+ const result = await client.callTool("get_issue", {
113
113
  id: "E-test-epic",
114
114
  });
115
115
  const object = (0, utils_1.parseGetObjectResponse)(result.content[0].text);
@@ -126,7 +126,7 @@ describe("E2E CRUD - getObject", () => {
126
126
  };
127
127
  const content = (0, utils_1.createObjectContent)(featureData);
128
128
  await (0, utils_1.createObjectFile)(testEnv.projectRoot, "feature", "F-standalone-feature", content);
129
- const result = await client.callTool("get_object", {
129
+ const result = await client.callTool("get_issue", {
130
130
  id: "F-standalone-feature",
131
131
  });
132
132
  const object = (0, utils_1.parseGetObjectResponse)(result.content[0].text);
@@ -149,12 +149,12 @@ describe("E2E CRUD - getObject", () => {
149
149
  status: "done",
150
150
  };
151
151
  await (0, utils_1.createObjectFile)(testEnv.projectRoot, "task", "T-closed-task", (0, utils_1.createObjectContent)(closedTaskData), { status: "closed" });
152
- const openResult = await client.callTool("get_object", {
152
+ const openResult = await client.callTool("get_issue", {
153
153
  id: "T-open-task",
154
154
  });
155
155
  const openObject = (0, utils_1.parseGetObjectResponse)(openResult.content[0].text);
156
156
  expect(openObject.status).toBe("open");
157
- const closedResult = await client.callTool("get_object", {
157
+ const closedResult = await client.callTool("get_issue", {
158
158
  id: "T-closed-task",
159
159
  });
160
160
  const closedObject = (0, utils_1.parseGetObjectResponse)(closedResult.content[0].text);
@@ -196,23 +196,23 @@ describe("E2E CRUD - getObject", () => {
196
196
  prerequisites: [epicId, featureId],
197
197
  }), { projectId, epicId, featureId, status: "open" });
198
198
  // Verify each object can be retrieved and has correct parent/children
199
- const projectResult = await client.callTool("get_object", {
199
+ const projectResult = await client.callTool("get_issue", {
200
200
  id: projectId,
201
201
  });
202
202
  const project = (0, utils_1.parseGetObjectResponse)(projectResult.content[0].text);
203
203
  expect(project.childrenIds).toContain(epicId);
204
204
  expect(project.parent).toBeUndefined();
205
- const epicResult = await client.callTool("get_object", { id: epicId });
205
+ const epicResult = await client.callTool("get_issue", { id: epicId });
206
206
  const epic = (0, utils_1.parseGetObjectResponse)(epicResult.content[0].text);
207
207
  expect(epic.parent).toBe(projectId);
208
208
  expect(epic.childrenIds).toContain(featureId);
209
- const featureResult = await client.callTool("get_object", {
209
+ const featureResult = await client.callTool("get_issue", {
210
210
  id: featureId,
211
211
  });
212
212
  const feature = (0, utils_1.parseGetObjectResponse)(featureResult.content[0].text);
213
213
  expect(feature.parent).toBe(epicId);
214
214
  expect(feature.childrenIds).toContain(taskId);
215
- const taskResult = await client.callTool("get_object", { id: taskId });
215
+ const taskResult = await client.callTool("get_issue", { id: taskId });
216
216
  const task = (0, utils_1.parseGetObjectResponse)(taskResult.content[0].text);
217
217
  expect(task.parent).toBe(featureId);
218
218
  expect(task.prerequisites).toEqual([epicId, featureId]);
@@ -239,23 +239,71 @@ describe("E2E CRUD - getObject", () => {
239
239
  parent: featureId,
240
240
  status: "done",
241
241
  }), { featureId, status: "closed" });
242
- const featureResult = await client.callTool("get_object", {
242
+ const featureResult = await client.callTool("get_issue", {
243
243
  id: featureId,
244
244
  });
245
245
  const feature = (0, utils_1.parseGetObjectResponse)(featureResult.content[0].text);
246
246
  expect(feature.childrenIds).toEqual([task1Id, task2Id]);
247
- const task1Result = await client.callTool("get_object", { id: task1Id });
247
+ const task1Result = await client.callTool("get_issue", { id: task1Id });
248
248
  const task1 = (0, utils_1.parseGetObjectResponse)(task1Result.content[0].text);
249
249
  expect(task1.parent).toBe(featureId);
250
- const task2Result = await client.callTool("get_object", { id: task2Id });
250
+ const task2Result = await client.callTool("get_issue", { id: task2Id });
251
251
  const task2 = (0, utils_1.parseGetObjectResponse)(task2Result.content[0].text);
252
252
  expect(task2.parent).toBe(featureId);
253
253
  expect(task2.status).toBe("done");
254
254
  });
255
+ it("should properly display affected files in response (regression test)", async () => {
256
+ // This test specifically validates the bug fix where affected files
257
+ // weren't being properly serialized due to Map JSON.stringify issue
258
+ const taskData = {
259
+ id: "T-affected-files-test",
260
+ title: "Task with Affected Files",
261
+ status: "in-progress",
262
+ priority: "high",
263
+ affectedFiles: {
264
+ "src/components/Button.tsx": "Added new button component",
265
+ "src/styles/theme.css": "Updated button theme",
266
+ "tests/Button.test.tsx": "Added comprehensive tests",
267
+ "docs/components.md": "Updated component documentation",
268
+ },
269
+ log: [
270
+ "Started implementation",
271
+ "Added component structure",
272
+ "Implemented styling",
273
+ "Added tests and documentation",
274
+ ],
275
+ };
276
+ const content = (0, utils_1.createObjectContent)(taskData);
277
+ await (0, utils_1.createObjectFile)(testEnv.projectRoot, "task", "T-affected-files-test", content);
278
+ const result = await client.callTool("get_issue", {
279
+ id: "T-affected-files-test",
280
+ });
281
+ expect(result.content[0].type).toBe("text");
282
+ const object = (0, utils_1.parseGetObjectResponse)(result.content[0].text);
283
+ // Verify affected files are properly populated (not empty)
284
+ expect(object.affectedFiles).toBeDefined();
285
+ expect(typeof object.affectedFiles).toBe("object");
286
+ expect(Object.keys(object.affectedFiles)).toHaveLength(4);
287
+ // Verify specific affected files
288
+ expect(object.affectedFiles["src/components/Button.tsx"]).toBe("Added new button component");
289
+ expect(object.affectedFiles["src/styles/theme.css"]).toBe("Updated button theme");
290
+ expect(object.affectedFiles["tests/Button.test.tsx"]).toBe("Added comprehensive tests");
291
+ expect(object.affectedFiles["docs/components.md"]).toBe("Updated component documentation");
292
+ // Verify log is also properly populated
293
+ expect(object.log).toHaveLength(4);
294
+ expect(object.log).toContain("Started implementation");
295
+ expect(object.log).toContain("Added tests and documentation");
296
+ // Verify that the response text contains the affected files content
297
+ const responseText = result.content[0].text;
298
+ expect(responseText).toContain("src/components/Button.tsx");
299
+ expect(responseText).toContain("Added new button component");
300
+ expect(responseText).toContain("src/styles/theme.css");
301
+ expect(responseText).toContain("Updated button theme");
302
+ });
255
303
  });
256
304
  describe("Error Handling", () => {
257
305
  it("should handle non-existent object IDs", async () => {
258
- const result = await client.callTool("get_object", {
306
+ const result = await client.callTool("get_issue", {
259
307
  id: "P-nonexistent",
260
308
  });
261
309
  expect(result.content[0].type).toBe("text");
@@ -271,7 +319,7 @@ describe("E2E CRUD - getObject", () => {
271
319
  "-missing-prefix",
272
320
  ];
273
321
  for (const id of malformedIds) {
274
- const result = await client.callTool("get_object", { id });
322
+ const result = await client.callTool("get_issue", { id });
275
323
  expect(result.content[0].type).toBe("text");
276
324
  const text = result.content[0].text;
277
325
  // Should either be "not found" or contain "Error"
@@ -286,7 +334,7 @@ describe("E2E CRUD - getObject", () => {
286
334
  const filePath = path.join(testEnv.projectRoot, ".trellis", "p", "P-corrupted", "P-corrupted.md");
287
335
  await fs.mkdir(path.dirname(filePath), { recursive: true });
288
336
  await fs.writeFile(filePath, corruptedContent, "utf-8");
289
- const result = await client.callTool("get_object", {
337
+ const result = await client.callTool("get_issue", {
290
338
  id: "P-corrupted",
291
339
  });
292
340
  expect(result.content[0].type).toBe("text");
@@ -305,7 +353,7 @@ Body content`;
305
353
  const filePath = path.join(testEnv.projectRoot, ".trellis", "p", "P-incomplete", "P-incomplete.md");
306
354
  await fs.mkdir(path.dirname(filePath), { recursive: true });
307
355
  await fs.writeFile(filePath, incompleteContent, "utf-8");
308
- const result = await client.callTool("get_object", {
356
+ const result = await client.callTool("get_issue", {
309
357
  id: "P-incomplete",
310
358
  });
311
359
  // The system should either not find it or report an error
@@ -334,7 +382,7 @@ Body content`;
334
382
  parent: testCase.hierarchy?.projectId,
335
383
  });
336
384
  await (0, utils_1.createObjectFile)(testEnv.projectRoot, testCase.objectType, testCase.id, content, testCase.hierarchy);
337
- const result = await client.callTool("get_object", {
385
+ const result = await client.callTool("get_issue", {
338
386
  id: testCase.id,
339
387
  });
340
388
  const object = (0, utils_1.parseGetObjectResponse)(result.content[0].text);
@@ -353,7 +401,7 @@ Body content`;
353
401
  ];
354
402
  // Test that the system handles these IDs gracefully
355
403
  for (const id of specialIds) {
356
- const result = await client.callTool("get_object", { id });
404
+ const result = await client.callTool("get_issue", { id });
357
405
  expect(result.content[0].type).toBe("text");
358
406
  // Should return "not found" since we haven't created these
359
407
  expect(result.content[0].text).toContain("not found");
@@ -380,7 +428,7 @@ updated: "2024-01-01T00:00:00.000Z"
380
428
  const filePath = path.join(testEnv.projectRoot, ".trellis", "p", "P-minimal", "P-minimal.md");
381
429
  await fs.mkdir(path.dirname(filePath), { recursive: true });
382
430
  await fs.writeFile(filePath, minimalContent, "utf-8");
383
- const result = await client.callTool("get_object", {
431
+ const result = await client.callTool("get_issue", {
384
432
  id: "P-minimal",
385
433
  });
386
434
  const object = (0, utils_1.parseGetObjectResponse)(result.content[0].text);
@@ -431,17 +479,90 @@ This is a complex task with extensive documentation.`,
431
479
  };
432
480
  const content = (0, utils_1.createObjectContent)(complexData);
433
481
  await (0, utils_1.createObjectFile)(testEnv.projectRoot, "task", "T-complex", content, { featureId: "F-parent-feature", status: "open" });
434
- const result = await client.callTool("get_object", {
482
+ const result = await client.callTool("get_issue", {
435
483
  id: "T-complex",
436
484
  });
437
485
  const object = (0, utils_1.parseGetObjectResponse)(result.content[0].text);
438
486
  expect(object.id).toBe("T-complex");
439
487
  expect(object.prerequisites).toHaveLength(4);
440
- expect(Object.keys(object.affectedFiles)).toHaveLength(0);
488
+ expect(Object.keys(object.affectedFiles)).toHaveLength(3);
489
+ expect(object.affectedFiles).toEqual({
490
+ "src/index.ts": "Updated main entry",
491
+ "src/utils/helper.ts": "Added utility function",
492
+ "tests/index.test.ts": "Added test coverage",
493
+ });
441
494
  expect(object.log).toHaveLength(4);
442
495
  expect(object.body).toContain("# Complex Task Implementation");
443
496
  expect(object.body).toContain("This is a complex task");
444
497
  });
445
498
  });
499
+ describe("Title Updates", () => {
500
+ it("should update task title and retrieve updated object", async () => {
501
+ // Create initial task
502
+ const taskData = {
503
+ id: "T-title-update-test",
504
+ title: "Original Task Title",
505
+ status: "open",
506
+ priority: "medium",
507
+ body: "Task body content",
508
+ };
509
+ const content = (0, utils_1.createObjectContent)(taskData);
510
+ await (0, utils_1.createObjectFile)(testEnv.projectRoot, "task", "T-title-update-test", content, { status: "open" });
511
+ // Update the title
512
+ const updateResult = await client.callTool("update_issue", {
513
+ id: "T-title-update-test",
514
+ title: "Updated Task Title",
515
+ });
516
+ expect(updateResult.content[0].type).toBe("text");
517
+ expect(updateResult.content[0].text).toContain("Successfully updated object");
518
+ // Retrieve and verify the updated object
519
+ const getResult = await client.callTool("get_issue", {
520
+ id: "T-title-update-test",
521
+ });
522
+ const object = (0, utils_1.parseGetObjectResponse)(getResult.content[0].text);
523
+ expect(object.id).toBe("T-title-update-test");
524
+ expect(object.title).toBe("Updated Task Title");
525
+ expect(object.body).toBe("Task body content"); // Other fields should remain unchanged
526
+ expect(object.status).toBe("open");
527
+ expect(object.priority).toBe("medium");
528
+ });
529
+ it("should update project title while preserving other properties", async () => {
530
+ // Create initial project with complex data
531
+ const projectData = {
532
+ id: "P-title-update-project",
533
+ title: "Original Project Title",
534
+ status: "in-progress",
535
+ priority: "high",
536
+ prerequisites: ["P-dep1"],
537
+ affectedFiles: { "src/main.ts": "Main implementation" },
538
+ log: ["Project created", "Initial setup"],
539
+ body: "Project description",
540
+ };
541
+ const content = (0, utils_1.createObjectContent)(projectData);
542
+ await (0, utils_1.createObjectFile)(testEnv.projectRoot, "project", "P-title-update-project", content);
543
+ // Update only the title
544
+ const updateResult = await client.callTool("update_issue", {
545
+ id: "P-title-update-project",
546
+ title: "New Project Title",
547
+ });
548
+ expect(updateResult.content[0].type).toBe("text");
549
+ expect(updateResult.content[0].text).toContain("Successfully updated object");
550
+ // Retrieve and verify all properties are preserved except title
551
+ const getResult = await client.callTool("get_issue", {
552
+ id: "P-title-update-project",
553
+ });
554
+ const object = (0, utils_1.parseGetObjectResponse)(getResult.content[0].text);
555
+ expect(object.id).toBe("P-title-update-project"); // ID should remain unchanged
556
+ expect(object.title).toBe("New Project Title"); // Title should be updated
557
+ expect(object.status).toBe("in-progress"); // All other properties preserved
558
+ expect(object.priority).toBe("high");
559
+ expect(object.prerequisites).toEqual(["P-dep1"]);
560
+ expect(object.affectedFiles).toEqual({
561
+ "src/main.ts": "Main implementation",
562
+ });
563
+ expect(object.log).toEqual(["Project created", "Initial setup"]);
564
+ expect(object.body).toBe("Project description");
565
+ });
566
+ });
446
567
  });
447
568
  //# sourceMappingURL=getObject.e2e.test.js.map