@langadventurellc/task-trellis-mcp 1.0.1 → 1.1.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 (207) hide show
  1. package/README.md +47 -67
  2. package/dist/__tests__/e2e/crud/createObject.e2e.test.js +64 -12
  3. package/dist/__tests__/e2e/crud/createObject.e2e.test.js.map +1 -1
  4. package/dist/__tests__/e2e/crud/listObjects.e2e.test.js +260 -90
  5. package/dist/__tests__/e2e/crud/listObjects.e2e.test.js.map +1 -1
  6. package/dist/__tests__/e2e/utils/extractObjectIds.d.ts +5 -0
  7. package/dist/__tests__/e2e/utils/extractObjectIds.d.ts.map +1 -0
  8. package/dist/__tests__/e2e/utils/extractObjectIds.js +12 -0
  9. package/dist/__tests__/e2e/utils/extractObjectIds.js.map +1 -0
  10. package/dist/__tests__/e2e/utils/index.d.ts +1 -0
  11. package/dist/__tests__/e2e/utils/index.d.ts.map +1 -1
  12. package/dist/__tests__/e2e/utils/index.js +3 -1
  13. package/dist/__tests__/e2e/utils/index.js.map +1 -1
  14. package/dist/__tests__/e2e/utils/mcpTestClient.d.ts +2 -1
  15. package/dist/__tests__/e2e/utils/mcpTestClient.d.ts.map +1 -1
  16. package/dist/__tests__/e2e/utils/mcpTestClient.js +14 -8
  17. package/dist/__tests__/e2e/utils/mcpTestClient.js.map +1 -1
  18. package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts +3 -1
  19. package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts.map +1 -1
  20. package/dist/__tests__/e2e/utils/parseListObjectsResponse.js +1 -0
  21. package/dist/__tests__/e2e/utils/parseListObjectsResponse.js.map +1 -1
  22. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.d.ts +2 -0
  23. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.d.ts.map +1 -0
  24. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js +597 -0
  25. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js.map +1 -0
  26. package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js +189 -0
  27. package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js.map +1 -1
  28. package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js +446 -0
  29. package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js.map +1 -1
  30. package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js +3 -7
  31. package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js.map +1 -1
  32. package/dist/configuration/ServerConfig.d.ts +1 -0
  33. package/dist/configuration/ServerConfig.d.ts.map +1 -1
  34. package/dist/models/TrellisObjectSummary.d.ts +16 -0
  35. package/dist/models/TrellisObjectSummary.d.ts.map +1 -0
  36. package/dist/models/TrellisObjectSummary.js +3 -0
  37. package/dist/models/TrellisObjectSummary.js.map +1 -0
  38. package/dist/models/index.d.ts +1 -0
  39. package/dist/models/index.d.ts.map +1 -1
  40. package/dist/models/index.js.map +1 -1
  41. package/dist/repositories/local/__tests__/getObjectFilePath.test.js +9 -6
  42. package/dist/repositories/local/__tests__/getObjectFilePath.test.js.map +1 -1
  43. package/dist/repositories/local/__tests__/getObjects.test.js +40 -10
  44. package/dist/repositories/local/__tests__/getObjects.test.js.map +1 -1
  45. package/dist/repositories/local/getObjectFilePath.d.ts.map +1 -1
  46. package/dist/repositories/local/getObjectFilePath.js +8 -4
  47. package/dist/repositories/local/getObjectFilePath.js.map +1 -1
  48. package/dist/repositories/local/getObjects.d.ts.map +1 -1
  49. package/dist/repositories/local/getObjects.js +6 -1
  50. package/dist/repositories/local/getObjects.js.map +1 -1
  51. package/dist/server.js +23 -9
  52. package/dist/server.js.map +1 -1
  53. package/dist/services/TaskTrellisService.d.ts +87 -0
  54. package/dist/services/TaskTrellisService.d.ts.map +1 -0
  55. package/dist/services/TaskTrellisService.js +3 -0
  56. package/dist/services/TaskTrellisService.js.map +1 -0
  57. package/dist/services/local/LocalTaskTrellisService.d.ts +61 -0
  58. package/dist/services/local/LocalTaskTrellisService.d.ts.map +1 -0
  59. package/dist/services/local/LocalTaskTrellisService.js +77 -0
  60. package/dist/services/local/LocalTaskTrellisService.js.map +1 -0
  61. package/dist/services/local/__tests__/appendAffectedFiles.test.d.ts +2 -0
  62. package/dist/services/local/__tests__/appendAffectedFiles.test.d.ts.map +1 -0
  63. package/dist/services/local/__tests__/appendAffectedFiles.test.js +202 -0
  64. package/dist/services/local/__tests__/appendAffectedFiles.test.js.map +1 -0
  65. package/dist/services/local/__tests__/appendModifiedFiles.test.d.ts +2 -0
  66. package/dist/services/local/__tests__/appendModifiedFiles.test.d.ts.map +1 -0
  67. package/dist/services/local/__tests__/appendModifiedFiles.test.js +161 -0
  68. package/dist/services/local/__tests__/appendModifiedFiles.test.js.map +1 -0
  69. package/dist/services/local/__tests__/appendObjectLog.test.d.ts +2 -0
  70. package/dist/services/local/__tests__/appendObjectLog.test.d.ts.map +1 -0
  71. package/dist/services/local/__tests__/appendObjectLog.test.js +104 -0
  72. package/dist/services/local/__tests__/appendObjectLog.test.js.map +1 -0
  73. package/dist/services/local/__tests__/claimTask.test.d.ts +2 -0
  74. package/dist/services/local/__tests__/claimTask.test.d.ts.map +1 -0
  75. package/dist/services/local/__tests__/claimTask.test.js +463 -0
  76. package/dist/services/local/__tests__/claimTask.test.js.map +1 -0
  77. package/dist/services/local/__tests__/completeTask.test.d.ts +2 -0
  78. package/dist/services/local/__tests__/completeTask.test.d.ts.map +1 -0
  79. package/dist/services/local/__tests__/completeTask.test.js +468 -0
  80. package/dist/services/local/__tests__/completeTask.test.js.map +1 -0
  81. package/dist/services/local/__tests__/createObject.test.d.ts +2 -0
  82. package/dist/services/local/__tests__/createObject.test.d.ts.map +1 -0
  83. package/dist/services/local/__tests__/createObject.test.js +332 -0
  84. package/dist/services/local/__tests__/createObject.test.js.map +1 -0
  85. package/dist/services/local/__tests__/listObjects.test.d.ts +2 -0
  86. package/dist/services/local/__tests__/listObjects.test.d.ts.map +1 -0
  87. package/dist/services/local/__tests__/listObjects.test.js +226 -0
  88. package/dist/services/local/__tests__/listObjects.test.js.map +1 -0
  89. package/dist/services/local/__tests__/pruneClosed.test.d.ts +2 -0
  90. package/dist/services/local/__tests__/pruneClosed.test.d.ts.map +1 -0
  91. package/dist/services/local/__tests__/pruneClosed.test.js +213 -0
  92. package/dist/services/local/__tests__/pruneClosed.test.js.map +1 -0
  93. package/dist/services/local/__tests__/replaceObjectBodyRegex.test.d.ts +2 -0
  94. package/dist/services/local/__tests__/replaceObjectBodyRegex.test.d.ts.map +1 -0
  95. package/dist/services/local/__tests__/replaceObjectBodyRegex.test.js +283 -0
  96. package/dist/services/local/__tests__/replaceObjectBodyRegex.test.js.map +1 -0
  97. package/dist/services/local/__tests__/updateObject.test.d.ts +2 -0
  98. package/dist/services/local/__tests__/updateObject.test.d.ts.map +1 -0
  99. package/dist/services/local/__tests__/updateObject.test.js +314 -0
  100. package/dist/services/local/__tests__/updateObject.test.js.map +1 -0
  101. package/dist/services/local/appendAffectedFiles.d.ts +12 -0
  102. package/dist/services/local/appendAffectedFiles.d.ts.map +1 -0
  103. package/dist/services/local/appendAffectedFiles.js +34 -0
  104. package/dist/services/local/appendAffectedFiles.js.map +1 -0
  105. package/dist/services/local/appendModifiedFiles.d.ts +15 -0
  106. package/dist/services/local/appendModifiedFiles.d.ts.map +1 -0
  107. package/dist/services/local/appendModifiedFiles.js +39 -0
  108. package/dist/services/local/appendModifiedFiles.js.map +1 -0
  109. package/dist/services/local/appendObjectLog.d.ts +8 -0
  110. package/dist/services/local/appendObjectLog.d.ts.map +1 -0
  111. package/dist/services/local/appendObjectLog.js +45 -0
  112. package/dist/services/local/appendObjectLog.js.map +1 -0
  113. package/dist/services/local/claimTask.d.ts +8 -0
  114. package/dist/services/local/claimTask.d.ts.map +1 -0
  115. package/dist/services/local/claimTask.js +118 -0
  116. package/dist/services/local/claimTask.js.map +1 -0
  117. package/dist/services/local/completeTask.d.ts +9 -0
  118. package/dist/services/local/completeTask.d.ts.map +1 -0
  119. package/dist/services/local/completeTask.js +74 -0
  120. package/dist/services/local/completeTask.js.map +1 -0
  121. package/dist/services/local/createObject.d.ts +9 -0
  122. package/dist/services/local/createObject.d.ts.map +1 -0
  123. package/dist/services/local/createObject.js +44 -0
  124. package/dist/services/local/createObject.js.map +1 -0
  125. package/dist/services/local/listObjects.d.ts +9 -0
  126. package/dist/services/local/listObjects.d.ts.map +1 -0
  127. package/dist/services/local/listObjects.js +43 -0
  128. package/dist/services/local/listObjects.js.map +1 -0
  129. package/dist/services/local/pruneClosed.d.ts +8 -0
  130. package/dist/services/local/pruneClosed.d.ts.map +1 -0
  131. package/dist/services/local/pruneClosed.js +55 -0
  132. package/dist/services/local/pruneClosed.js.map +1 -0
  133. package/dist/services/local/replaceObjectBodyRegex.d.ts +8 -0
  134. package/dist/services/local/replaceObjectBodyRegex.d.ts.map +1 -0
  135. package/dist/services/local/replaceObjectBodyRegex.js +85 -0
  136. package/dist/services/local/replaceObjectBodyRegex.js.map +1 -0
  137. package/dist/services/local/updateObject.d.ts +9 -0
  138. package/dist/services/local/updateObject.d.ts.map +1 -0
  139. package/dist/services/local/updateObject.js +53 -0
  140. package/dist/services/local/updateObject.js.map +1 -0
  141. package/dist/tools/__tests__/appendModifiedFilesTool.test.d.ts +2 -0
  142. package/dist/tools/__tests__/appendModifiedFilesTool.test.d.ts.map +1 -0
  143. package/dist/tools/__tests__/appendModifiedFilesTool.test.js +177 -0
  144. package/dist/tools/__tests__/appendModifiedFilesTool.test.js.map +1 -0
  145. package/dist/tools/__tests__/appendObjectLogTool.test.js +33 -101
  146. package/dist/tools/__tests__/appendObjectLogTool.test.js.map +1 -1
  147. package/dist/tools/__tests__/claimTaskTool.test.js +98 -311
  148. package/dist/tools/__tests__/claimTaskTool.test.js.map +1 -1
  149. package/dist/tools/__tests__/completeTaskTool.test.js +134 -184
  150. package/dist/tools/__tests__/completeTaskTool.test.js.map +1 -1
  151. package/dist/tools/__tests__/createObjectTool.test.js +61 -325
  152. package/dist/tools/__tests__/createObjectTool.test.js.map +1 -1
  153. package/dist/tools/__tests__/listObjectsTool.test.js +70 -109
  154. package/dist/tools/__tests__/listObjectsTool.test.js.map +1 -1
  155. package/dist/tools/__tests__/pruneClosedTool.test.js +87 -146
  156. package/dist/tools/__tests__/pruneClosedTool.test.js.map +1 -1
  157. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js +56 -225
  158. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js.map +1 -1
  159. package/dist/tools/__tests__/updateObjectTool.test.js +48 -166
  160. package/dist/tools/__tests__/updateObjectTool.test.js.map +1 -1
  161. package/dist/tools/appendModifiedFilesTool.d.ts +30 -0
  162. package/dist/tools/appendModifiedFilesTool.d.ts.map +1 -0
  163. package/dist/tools/appendModifiedFilesTool.js +55 -0
  164. package/dist/tools/appendModifiedFilesTool.js.map +1 -0
  165. package/dist/tools/appendObjectLogTool.d.ts +4 -3
  166. package/dist/tools/appendObjectLogTool.d.ts.map +1 -1
  167. package/dist/tools/appendObjectLogTool.js +2 -40
  168. package/dist/tools/appendObjectLogTool.js.map +1 -1
  169. package/dist/tools/claimTaskTool.d.ts +4 -3
  170. package/dist/tools/claimTaskTool.d.ts.map +1 -1
  171. package/dist/tools/claimTaskTool.js +2 -80
  172. package/dist/tools/claimTaskTool.js.map +1 -1
  173. package/dist/tools/completeTaskTool.d.ts +5 -3
  174. package/dist/tools/completeTaskTool.d.ts.map +1 -1
  175. package/dist/tools/completeTaskTool.js +3 -29
  176. package/dist/tools/completeTaskTool.js.map +1 -1
  177. package/dist/tools/createObjectTool.d.ts +7 -6
  178. package/dist/tools/createObjectTool.d.ts.map +1 -1
  179. package/dist/tools/createObjectTool.js +11 -44
  180. package/dist/tools/createObjectTool.js.map +1 -1
  181. package/dist/tools/index.d.ts +1 -0
  182. package/dist/tools/index.d.ts.map +1 -1
  183. package/dist/tools/index.js +4 -1
  184. package/dist/tools/index.js.map +1 -1
  185. package/dist/tools/listObjectsTool.d.ts +5 -4
  186. package/dist/tools/listObjectsTool.d.ts.map +1 -1
  187. package/dist/tools/listObjectsTool.js +5 -13
  188. package/dist/tools/listObjectsTool.js.map +1 -1
  189. package/dist/tools/pruneClosedTool.d.ts +4 -3
  190. package/dist/tools/pruneClosedTool.d.ts.map +1 -1
  191. package/dist/tools/pruneClosedTool.js +2 -51
  192. package/dist/tools/pruneClosedTool.js.map +1 -1
  193. package/dist/tools/replaceObjectBodyRegexTool.d.ts +4 -3
  194. package/dist/tools/replaceObjectBodyRegexTool.d.ts.map +1 -1
  195. package/dist/tools/replaceObjectBodyRegexTool.js +2 -80
  196. package/dist/tools/replaceObjectBodyRegexTool.js.map +1 -1
  197. package/dist/tools/updateObjectTool.d.ts +5 -4
  198. package/dist/tools/updateObjectTool.d.ts.map +1 -1
  199. package/dist/tools/updateObjectTool.js +3 -49
  200. package/dist/tools/updateObjectTool.js.map +1 -1
  201. package/dist/validation/__tests__/validateParentType.test.js +5 -5
  202. package/dist/validation/__tests__/validateParentType.test.js.map +1 -1
  203. package/dist/validation/validateParentType.d.ts +1 -1
  204. package/dist/validation/validateParentType.d.ts.map +1 -1
  205. package/dist/validation/validateParentType.js +2 -5
  206. package/dist/validation/validateParentType.js.map +1 -1
  207. package/package.json +1 -1
@@ -1,7 +1,8 @@
1
1
  import { Repository } from "../repositories";
2
+ import { TaskTrellisService } from "../services/TaskTrellisService";
2
3
  export declare const updateObjectTool: {
3
4
  readonly name: "update_object";
4
- readonly description: "Updates an existing object in the task trellis system\n\nUse this tool to modify properties of existing objects such as changing status, priority, prerequisites, or content. Essential for managing work item lifecycle and maintaining project state.\n\nAvailable status values:\n- 'draft': Initial state for new objects\n- 'open': Ready to begin work\n- 'in-progress': Currently being worked on\n- 'done': Completed successfully\n- 'wont-do': Cancelled or decided against\n\nAvailable priority values:\n- 'high': Critical or urgent work\n- 'medium': Standard priority\n- 'low': Nice-to-have or future work\n\nUpdatable properties:\n- 'status': Progress state (follows workflow: draft → open → in-progress → done)\n- 'priority': Importance level (high, medium, low)\n- 'prerequisites': Dependency relationships (add/remove prerequisite objects)\n- 'body': Detailed description or content of the work item\n- 'force': Bypass certain validation checks when necessary\n\nCommon update patterns:\n- Mark task as ready: status='open'\n- Start working: status='in-progress'\n- Change priority: priority='high'\n- Add dependencies: prerequisites=[...existing, 'new-prereq-id']\n- Update description: body='detailed work description'\n- Complete work: status='done'\n- Cancel work: status='wont-do'\n\nThe update maintains object integrity by validating relationships and preserving audit trail. Use 'force=true' only when bypassing standard validation is necessary for administrative operations.\n\nUpdates automatically refresh the 'updated' timestamp while preserving creation metadata and change history.";
5
+ readonly description: "Updates an existing object in the task trellis system\n\nUse this tool to modify properties of existing objects such as changing status, priority, prerequisites, or content. Essential for managing work item lifecycle and maintaining project state.\n\nAvailable status values:\n- 'draft': Initial state for new objects\n- 'open': Ready to begin work (default for new objects)\n- 'in-progress': Currently being worked on\n- 'done': Completed successfully\n- 'wont-do': Cancelled or decided against\n\nAvailable priority values:\n- 'high': Critical or urgent work\n- 'medium': Standard priority\n- 'low': Nice-to-have or future work\n\nUpdatable properties:\n- 'status': Progress state (follows workflow: draft → open → in-progress → done)\n- 'priority': Importance level (high, medium, low)\n- 'prerequisites': Dependency relationships (add/remove prerequisite objects)\n- 'body': Detailed description or content of the work item\n- 'force': Bypass certain validation checks when necessary\n\nCommon update patterns:\n- Mark task as ready: status='open'\n- Start working: status='in-progress'\n- Change priority: priority='high'\n- Add dependencies: prerequisites=[...existing, 'new-prereq-id']\n- Update description: body='detailed work description'\n- Complete work: status='done'\n- Cancel work: status='wont-do'\n\nThe update maintains object integrity by validating relationships and preserving audit trail. Use 'force=true' only when bypassing standard validation is necessary for administrative operations.\n\nUpdates automatically refresh the 'updated' timestamp while preserving creation metadata and change history.";
5
6
  readonly inputSchema: {
6
7
  readonly type: "object";
7
8
  readonly properties: {
@@ -37,10 +38,10 @@ export declare const updateObjectTool: {
37
38
  readonly required: readonly ["id"];
38
39
  };
39
40
  };
40
- export declare function handleUpdateObject(repository: Repository, args: unknown): Promise<{
41
- content: {
41
+ export declare function handleUpdateObject(service: TaskTrellisService, repository: Repository, args: unknown): Promise<{
42
+ content: Array<{
42
43
  type: string;
43
44
  text: string;
44
- }[];
45
+ }>;
45
46
  }>;
46
47
  //# sourceMappingURL=updateObjectTool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"updateObjectTool.d.ts","sourceRoot":"","sources":["../../src/tools/updateObjectTool.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEnB,CAAC;AAEX,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,OAAO;;;;;GAuEd"}
1
+ {"version":3,"file":"updateObjectTool.d.ts","sourceRoot":"","sources":["../../src/tools/updateObjectTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEnB,CAAC;AAEX,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,OAAO;;;;;GA2Bd"}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateObjectTool = void 0;
4
4
  exports.handleUpdateObject = handleUpdateObject;
5
- const validateStatusTransition_1 = require("../validation/validateStatusTransition");
6
5
  exports.updateObjectTool = {
7
6
  name: "update_object",
8
7
  description: `Updates an existing object in the task trellis system
@@ -11,7 +10,7 @@ Use this tool to modify properties of existing objects such as changing status,
11
10
 
12
11
  Available status values:
13
12
  - 'draft': Initial state for new objects
14
- - 'open': Ready to begin work
13
+ - 'open': Ready to begin work (default for new objects)
15
14
  - 'in-progress': Currently being worked on
16
15
  - 'done': Completed successfully
17
16
  - 'wont-do': Cancelled or decided against
@@ -75,53 +74,8 @@ Updates automatically refresh the 'updated' timestamp while preserving creation
75
74
  required: ["id"],
76
75
  },
77
76
  };
78
- async function handleUpdateObject(repository, args) {
77
+ async function handleUpdateObject(service, repository, args) {
79
78
  const { id, priority, prerequisites, body, status, force = false, } = args;
80
- try {
81
- // Load the existing object
82
- const existingObject = await repository.getObjectById(id);
83
- if (!existingObject) {
84
- return {
85
- content: [
86
- {
87
- type: "text",
88
- text: `Error: Object with ID '${id}' not found`,
89
- },
90
- ],
91
- };
92
- }
93
- // Create updated object with new properties, ensuring proper typing
94
- const updatedObject = {
95
- ...existingObject,
96
- ...(priority && { priority: priority }),
97
- ...(prerequisites && { prerequisites }),
98
- ...(body && { body }),
99
- ...(status && { status: status }),
100
- };
101
- // Validate status transition
102
- if (status && !force) {
103
- await (0, validateStatusTransition_1.validateStatusTransition)(updatedObject, repository);
104
- }
105
- // Save the updated object
106
- await repository.saveObject(updatedObject);
107
- return {
108
- content: [
109
- {
110
- type: "text",
111
- text: `Successfully updated object: ${JSON.stringify(updatedObject, null, 2)}`,
112
- },
113
- ],
114
- };
115
- }
116
- catch (error) {
117
- return {
118
- content: [
119
- {
120
- type: "text",
121
- text: `Error updating object: ${error instanceof Error ? error.message : String(error)}`,
122
- },
123
- ],
124
- };
125
- }
79
+ return service.updateObject(repository, id, priority, prerequisites, body, status, force);
126
80
  }
127
81
  //# sourceMappingURL=updateObjectTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"updateObjectTool.js","sourceRoot":"","sources":["../../src/tools/updateObjectTool.ts"],"names":[],"mappings":";;;AAiFA,gDAyEC;AApJD,qFAAkF;AAErE,QAAA,gBAAgB,GAAG;IAC9B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6GAkC8F;IAC3G,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4BAA4B;aAC1C;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2BAA2B;aACzC;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;iBACf;gBACD,WAAW,EAAE,6CAA6C;aAC3D;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uCAAuC;aACrD;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,uCAAuC;gBACpD,OAAO,EAAE,KAAK;aACf;SACF;QACD,QAAQ,EAAE,CAAC,IAAI,CAAC;KACjB;CACO,CAAC;AAEJ,KAAK,UAAU,kBAAkB,CACtC,UAAsB,EACtB,IAAa;IAEb,MAAM,EACJ,EAAE,EACF,QAAQ,EACR,aAAa,EACb,IAAI,EACJ,MAAM,EACN,KAAK,GAAG,KAAK,GACd,GAAG,IAOH,CAAC;IAEF,IAAI,CAAC;QACH,2BAA2B;QAC3B,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,0BAA0B,EAAE,aAAa;qBAChD;iBACF;aACF,CAAC;QACJ,CAAC;QAED,oEAAoE;QACpE,MAAM,aAAa,GAAkB;YACnC,GAAG,cAAc;YACjB,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,QAAiC,EAAE,CAAC;YAChE,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YACrB,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,MAA6B,EAAE,CAAC;SACzD,CAAC;QAEF,6BAA6B;QAC7B,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,IAAA,mDAAwB,EAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC;QAED,0BAA0B;QAC1B,MAAM,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAE3C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,gCAAgC,IAAI,CAAC,SAAS,CAClD,aAAa,EACb,IAAI,EACJ,CAAC,CACF,EAAE;iBACJ;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBACzF;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"updateObjectTool.js","sourceRoot":"","sources":["../../src/tools/updateObjectTool.ts"],"names":[],"mappings":";;;AA6EA,gDA8BC;AAvGY,QAAA,gBAAgB,GAAG;IAC9B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6GAkC8F;IAC3G,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4BAA4B;aAC1C;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2BAA2B;aACzC;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;iBACf;gBACD,WAAW,EAAE,6CAA6C;aAC3D;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uCAAuC;aACrD;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,uCAAuC;gBACpD,OAAO,EAAE,KAAK;aACf;SACF;QACD,QAAQ,EAAE,CAAC,IAAI,CAAC;KACjB;CACO,CAAC;AAEJ,KAAK,UAAU,kBAAkB,CACtC,OAA2B,EAC3B,UAAsB,EACtB,IAAa;IAEb,MAAM,EACJ,EAAE,EACF,QAAQ,EACR,aAAa,EACb,IAAI,EACJ,MAAM,EACN,KAAK,GAAG,KAAK,GACd,GAAG,IAOH,CAAC;IAEF,OAAO,OAAO,CAAC,YAAY,CACzB,UAAU,EACV,EAAE,EACF,QAAiC,EACjC,aAAa,EACb,IAAI,EACJ,MAA6B,EAC7B,KAAK,CACN,CAAC;AACJ,CAAC"}
@@ -28,18 +28,18 @@ describe("validateParentType", () => {
28
28
  });
29
29
  });
30
30
  describe("Epics", () => {
31
- it("should require epics to have a project parent", () => {
31
+ it("should allow epics with project parent", () => {
32
32
  expect(() => {
33
33
  (0, validateParentType_1.validateParentType)(TrellisObjectType_1.TrellisObjectType.EPIC, "P-project");
34
34
  }).not.toThrow();
35
35
  });
36
- it("should reject epics with no parent", () => {
36
+ it("should allow epics with no parent", () => {
37
37
  expect(() => {
38
38
  (0, validateParentType_1.validateParentType)(TrellisObjectType_1.TrellisObjectType.EPIC, null);
39
- }).toThrow("Epics must have a project as a parent");
39
+ }).not.toThrow();
40
40
  expect(() => {
41
41
  (0, validateParentType_1.validateParentType)(TrellisObjectType_1.TrellisObjectType.EPIC, undefined);
42
- }).toThrow("Epics must have a project as a parent");
42
+ }).not.toThrow();
43
43
  });
44
44
  it("should reject epics with non-project parents", () => {
45
45
  expect(() => {
@@ -118,7 +118,7 @@ describe("validateParentType", () => {
118
118
  }).not.toThrow();
119
119
  expect(() => {
120
120
  (0, validateParentType_1.validateParentType)(TrellisObjectType_1.TrellisObjectType.EPIC, "");
121
- }).toThrow("Epics must have a project as a parent");
121
+ }).not.toThrow();
122
122
  });
123
123
  });
124
124
  });
@@ -1 +1 @@
1
- {"version":3,"file":"validateParentType.test.js","sourceRoot":"","sources":["../../../src/validation/__tests__/validateParentType.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateParentType.test.js","sourceRoot":"","sources":["../../../src/validation/__tests__/validateParentType.test.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { TrellisObjectType } from "../models/TrellisObjectType.js";
4
4
  *
5
5
  * Business rules:
6
6
  * - Projects cannot have parents
7
- * - Epics must have a project as a parent
7
+ * - Epics can either have a project as a parent or have no parent
8
8
  * - Features can either have an epic as a parent or have no parent
9
9
  * - Tasks can have a feature as a parent or have no parent
10
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"validateParentType.d.ts","sourceRoot":"","sources":["../../src/validation/validateParentType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGnE;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,IAAI,CAiCN"}
1
+ {"version":3,"file":"validateParentType.d.ts","sourceRoot":"","sources":["../../src/validation/validateParentType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGnE;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,IAAI,CA8BN"}
@@ -8,7 +8,7 @@ const inferObjectType_js_1 = require("../utils/inferObjectType.js");
8
8
  *
9
9
  * Business rules:
10
10
  * - Projects cannot have parents
11
- * - Epics must have a project as a parent
11
+ * - Epics can either have a project as a parent or have no parent
12
12
  * - Features can either have an epic as a parent or have no parent
13
13
  * - Tasks can have a feature as a parent or have no parent
14
14
  *
@@ -18,10 +18,7 @@ const inferObjectType_js_1 = require("../utils/inferObjectType.js");
18
18
  */
19
19
  function validateParentType(objectType, parentId) {
20
20
  if (!parentId) {
21
- // No parent - only allowed for projects, features, and tasks
22
- if (objectType === TrellisObjectType_js_1.TrellisObjectType.EPIC) {
23
- throw new Error("Epics must have a project as a parent");
24
- }
21
+ // No parent - allowed for projects, epics, features, and tasks
25
22
  return;
26
23
  }
27
24
  const parentType = (0, inferObjectType_js_1.inferObjectType)(parentId);
@@ -1 +1 @@
1
- {"version":3,"file":"validateParentType.js","sourceRoot":"","sources":["../../src/validation/validateParentType.ts"],"names":[],"mappings":";;AAgBA,gDAoCC;AApDD,yEAAmE;AACnE,oEAA8D;AAE9D;;;;;;;;;;;;GAYG;AACH,SAAgB,kBAAkB,CAChC,UAA6B,EAC7B,QAAmC;IAEnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,6DAA6D;QAC7D,IAAI,UAAU,KAAK,wCAAiB,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,oCAAe,EAAC,QAAQ,CAAC,CAAC;IAE7C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,wCAAiB,CAAC,OAAO;YAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAElD,KAAK,wCAAiB,CAAC,IAAI;YACzB,IAAI,UAAU,KAAK,wCAAiB,CAAC,OAAO,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM;QAER,KAAK,wCAAiB,CAAC,OAAO;YAC5B,IAAI,UAAU,KAAK,wCAAiB,CAAC,IAAI,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YACD,MAAM;QAER,KAAK,wCAAiB,CAAC,IAAI;YACzB,IAAI,UAAU,KAAK,wCAAiB,CAAC,OAAO,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM;IACV,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"validateParentType.js","sourceRoot":"","sources":["../../src/validation/validateParentType.ts"],"names":[],"mappings":";;AAgBA,gDAiCC;AAjDD,yEAAmE;AACnE,oEAA8D;AAE9D;;;;;;;;;;;;GAYG;AACH,SAAgB,kBAAkB,CAChC,UAA6B,EAC7B,QAAmC;IAEnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,+DAA+D;QAC/D,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,oCAAe,EAAC,QAAQ,CAAC,CAAC;IAE7C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,wCAAiB,CAAC,OAAO;YAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAElD,KAAK,wCAAiB,CAAC,IAAI;YACzB,IAAI,UAAU,KAAK,wCAAiB,CAAC,OAAO,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM;QAER,KAAK,wCAAiB,CAAC,OAAO;YAC5B,IAAI,UAAU,KAAK,wCAAiB,CAAC,IAAI,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YACD,MAAM;QAER,KAAK,wCAAiB,CAAC,IAAI;YACzB,IAAI,UAAU,KAAK,wCAAiB,CAAC,OAAO,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM;IACV,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@langadventurellc/task-trellis-mcp",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "An MCP server that helps AI coding agents break down projects into tasks and track their progress.",
5
5
  "homepage": "https://github.com/langadventurellc/task-trellis-mcp#readme",
6
6
  "bugs": {