@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.
- package/README.md +37 -323
- package/dist/__tests__/e2e/autoPrune.e2e.test.d.ts +2 -0
- package/dist/__tests__/e2e/autoPrune.e2e.test.d.ts.map +1 -0
- package/dist/__tests__/e2e/autoPrune.e2e.test.js +533 -0
- package/dist/__tests__/e2e/autoPrune.e2e.test.js.map +1 -0
- package/dist/__tests__/e2e/configuration/activation.e2e.test.js +6 -6
- package/dist/__tests__/e2e/configuration/activation.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.js +55 -6
- package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.js +19 -19
- package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.js +9 -9
- package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/preActivation.e2e.test.js +15 -15
- package/dist/__tests__/e2e/configuration/preActivation.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/createObject.e2e.test.js +34 -34
- package/dist/__tests__/e2e/crud/createObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/deleteObject.e2e.test.js +19 -19
- package/dist/__tests__/e2e/crud/deleteObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js +32 -32
- package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/getObject.e2e.test.js +143 -22
- package/dist/__tests__/e2e/crud/getObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/listObjects.e2e.test.js +561 -42
- package/dist/__tests__/e2e/crud/listObjects.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/updateObject.e2e.test.js +497 -25
- package/dist/__tests__/e2e/crud/updateObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.d.ts +2 -0
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.d.ts.map +1 -0
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.js +319 -0
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.js.map +1 -0
- package/dist/__tests__/e2e/infrastructure/client.e2e.test.js +4 -4
- package/dist/__tests__/e2e/infrastructure/client.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/infrastructure/server.e2e.test.js +6 -6
- package/dist/__tests__/e2e/infrastructure/server.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/utils/extractObjectIds.d.ts +1 -1
- package/dist/__tests__/e2e/utils/extractObjectIds.js +1 -1
- package/dist/__tests__/e2e/utils/mcpTestClient.d.ts.map +1 -1
- package/dist/__tests__/e2e/utils/mcpTestClient.js +3 -2
- package/dist/__tests__/e2e/utils/mcpTestClient.js.map +1 -1
- package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts +1 -1
- package/dist/__tests__/e2e/utils/parseListObjectsResponse.js +1 -1
- package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.d.ts +1 -1
- package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.js +1 -1
- package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js +4 -4
- package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js +15 -15
- package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js +44 -0
- package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js +4 -4
- package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js +43 -43
- package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js +19 -19
- package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js.map +1 -1
- package/dist/__tests__/serverStartup.test.d.ts +2 -0
- package/dist/__tests__/serverStartup.test.d.ts.map +1 -0
- package/dist/__tests__/serverStartup.test.js +171 -0
- package/dist/__tests__/serverStartup.test.js.map +1 -0
- package/dist/configuration/ServerConfig.d.ts +2 -1
- package/dist/configuration/ServerConfig.d.ts.map +1 -1
- package/dist/repositories/Repository.d.ts +2 -1
- package/dist/repositories/Repository.d.ts.map +1 -1
- package/dist/repositories/local/LocalRepository.d.ts +2 -1
- package/dist/repositories/local/LocalRepository.d.ts.map +1 -1
- package/dist/repositories/local/LocalRepository.js +4 -0
- package/dist/repositories/local/LocalRepository.js.map +1 -1
- package/dist/repositories/local/__tests__/getChildrenOf.test.d.ts +2 -0
- package/dist/repositories/local/__tests__/getChildrenOf.test.d.ts.map +1 -0
- package/dist/repositories/local/__tests__/getChildrenOf.test.js +306 -0
- package/dist/repositories/local/__tests__/getChildrenOf.test.js.map +1 -0
- package/dist/repositories/local/__tests__/getObjects.test.js +309 -0
- package/dist/repositories/local/__tests__/getObjects.test.js.map +1 -1
- package/dist/repositories/local/deleteObjectById.d.ts.map +1 -1
- package/dist/repositories/local/deleteObjectById.js +2 -0
- package/dist/repositories/local/deleteObjectById.js.map +1 -1
- package/dist/repositories/local/getChildrenOf.d.ts +11 -0
- package/dist/repositories/local/getChildrenOf.d.ts.map +1 -0
- package/dist/repositories/local/getChildrenOf.js +73 -0
- package/dist/repositories/local/getChildrenOf.js.map +1 -0
- package/dist/repositories/local/getObjects.d.ts +1 -1
- package/dist/repositories/local/getObjects.d.ts.map +1 -1
- package/dist/repositories/local/getObjects.js +25 -6
- package/dist/repositories/local/getObjects.js.map +1 -1
- package/dist/server.js +39 -15
- package/dist/server.js.map +1 -1
- package/dist/services/TaskTrellisService.d.ts +4 -13
- package/dist/services/TaskTrellisService.d.ts.map +1 -1
- package/dist/services/local/LocalTaskTrellisService.d.ts +3 -9
- package/dist/services/local/LocalTaskTrellisService.d.ts.map +1 -1
- package/dist/services/local/LocalTaskTrellisService.js +4 -8
- package/dist/services/local/LocalTaskTrellisService.js.map +1 -1
- package/dist/services/local/__tests__/appendModifiedFiles.test.js +1 -0
- package/dist/services/local/__tests__/appendModifiedFiles.test.js.map +1 -1
- package/dist/services/local/__tests__/appendObjectLog.test.js +1 -0
- package/dist/services/local/__tests__/appendObjectLog.test.js.map +1 -1
- package/dist/services/local/__tests__/claimTask.test.js +127 -131
- package/dist/services/local/__tests__/claimTask.test.js.map +1 -1
- package/dist/services/local/__tests__/completeTask.test.js +30 -28
- package/dist/services/local/__tests__/completeTask.test.js.map +1 -1
- package/dist/services/local/__tests__/createObject.test.js +1 -0
- package/dist/services/local/__tests__/createObject.test.js.map +1 -1
- package/dist/services/local/__tests__/listObjects.test.js +135 -10
- package/dist/services/local/__tests__/listObjects.test.js.map +1 -1
- package/dist/services/local/__tests__/pruneClosed.test.js +446 -186
- package/dist/services/local/__tests__/pruneClosed.test.js.map +1 -1
- package/dist/services/local/__tests__/updateObject.test.js +234 -27
- package/dist/services/local/__tests__/updateObject.test.js.map +1 -1
- package/dist/services/local/claimTask.d.ts.map +1 -1
- package/dist/services/local/claimTask.js +25 -34
- package/dist/services/local/claimTask.js.map +1 -1
- package/dist/services/local/completeTask.d.ts +1 -1
- package/dist/services/local/completeTask.d.ts.map +1 -1
- package/dist/services/local/completeTask.js +4 -40
- package/dist/services/local/completeTask.js.map +1 -1
- package/dist/services/local/listObjects.d.ts +1 -1
- package/dist/services/local/listObjects.d.ts.map +1 -1
- package/dist/services/local/listObjects.js +10 -1
- package/dist/services/local/listObjects.js.map +1 -1
- package/dist/services/local/pruneClosed.d.ts.map +1 -1
- package/dist/services/local/pruneClosed.js +63 -6
- package/dist/services/local/pruneClosed.js.map +1 -1
- package/dist/services/local/updateObject.d.ts +2 -1
- package/dist/services/local/updateObject.d.ts.map +1 -1
- package/dist/services/local/updateObject.js +28 -1
- package/dist/services/local/updateObject.js.map +1 -1
- package/dist/tools/__tests__/appendModifiedFilesTool.test.js +1 -0
- package/dist/tools/__tests__/appendModifiedFilesTool.test.js.map +1 -1
- package/dist/tools/__tests__/appendObjectLogTool.test.js +1 -0
- package/dist/tools/__tests__/appendObjectLogTool.test.js.map +1 -1
- package/dist/tools/__tests__/claimTaskTool.test.js +1 -1
- package/dist/tools/__tests__/claimTaskTool.test.js.map +1 -1
- package/dist/tools/__tests__/completeTaskTool.test.js +23 -16
- package/dist/tools/__tests__/completeTaskTool.test.js.map +1 -1
- package/dist/tools/__tests__/createObjectTool.test.js +1 -0
- package/dist/tools/__tests__/createObjectTool.test.js.map +1 -1
- package/dist/tools/__tests__/deleteObjectTool.test.js +1 -0
- package/dist/tools/__tests__/deleteObjectTool.test.js.map +1 -1
- package/dist/tools/__tests__/getObjectTool.test.js +1 -0
- package/dist/tools/__tests__/getObjectTool.test.js.map +1 -1
- package/dist/tools/__tests__/listObjectsTool.test.js +160 -1
- package/dist/tools/__tests__/listObjectsTool.test.js.map +1 -1
- package/dist/tools/__tests__/updateObjectTool.test.js +39 -10
- package/dist/tools/__tests__/updateObjectTool.test.js.map +1 -1
- package/dist/tools/appendModifiedFilesTool.d.ts +2 -2
- package/dist/tools/appendModifiedFilesTool.js +4 -4
- package/dist/tools/appendModifiedFilesTool.js.map +1 -1
- package/dist/tools/appendObjectLogTool.d.ts +3 -3
- package/dist/tools/appendObjectLogTool.js +4 -4
- package/dist/tools/appendObjectLogTool.js.map +1 -1
- package/dist/tools/completeTaskTool.d.ts +1 -1
- package/dist/tools/completeTaskTool.d.ts.map +1 -1
- package/dist/tools/completeTaskTool.js +1 -1
- package/dist/tools/completeTaskTool.js.map +1 -1
- package/dist/tools/createObjectTool.d.ts +8 -8
- package/dist/tools/createObjectTool.js +13 -13
- package/dist/tools/createObjectTool.js.map +1 -1
- package/dist/tools/deleteObjectTool.d.ts +3 -3
- package/dist/tools/deleteObjectTool.js +12 -12
- package/dist/tools/deleteObjectTool.js.map +1 -1
- package/dist/tools/getObjectTool.d.ts +3 -3
- package/dist/tools/getObjectTool.d.ts.map +1 -1
- package/dist/tools/getObjectTool.js +12 -7
- package/dist/tools/getObjectTool.js.map +1 -1
- package/dist/tools/index.d.ts +7 -9
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +22 -28
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/listObjectsTool.d.ts +20 -11
- package/dist/tools/listObjectsTool.d.ts.map +1 -1
- package/dist/tools/listObjectsTool.js +112 -40
- package/dist/tools/listObjectsTool.js.map +1 -1
- package/dist/tools/updateObjectTool.d.ts +12 -7
- package/dist/tools/updateObjectTool.d.ts.map +1 -1
- package/dist/tools/updateObjectTool.js +20 -14
- package/dist/tools/updateObjectTool.js.map +1 -1
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.d.ts +2 -0
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.d.ts.map +1 -0
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js +206 -0
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js.map +1 -0
- package/dist/utils/__tests__/checkPrerequisitesComplete.test.js +5 -0
- package/dist/utils/__tests__/checkPrerequisitesComplete.test.js.map +1 -1
- package/dist/utils/__tests__/filterUnavailableObjects.test.js +51 -25
- package/dist/utils/__tests__/filterUnavailableObjects.test.js.map +1 -1
- package/dist/utils/__tests__/isRequiredForOtherObjects.test.js +5 -0
- package/dist/utils/__tests__/isRequiredForOtherObjects.test.js.map +1 -1
- package/dist/utils/__tests__/updateParentHierarchy.test.d.ts +2 -0
- package/dist/utils/__tests__/updateParentHierarchy.test.d.ts.map +1 -0
- package/dist/utils/__tests__/updateParentHierarchy.test.js +137 -0
- package/dist/utils/__tests__/updateParentHierarchy.test.js.map +1 -0
- package/dist/utils/autoCompleteParentHierarchy.d.ts +11 -0
- package/dist/utils/autoCompleteParentHierarchy.d.ts.map +1 -0
- package/dist/utils/autoCompleteParentHierarchy.js +49 -0
- package/dist/utils/autoCompleteParentHierarchy.js.map +1 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.d.ts +14 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.d.ts.map +1 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.js +47 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.js.map +1 -0
- package/dist/utils/filterUnavailableObjects.d.ts +6 -4
- package/dist/utils/filterUnavailableObjects.d.ts.map +1 -1
- package/dist/utils/filterUnavailableObjects.js +16 -22
- package/dist/utils/filterUnavailableObjects.js.map +1 -1
- package/dist/utils/index.d.ts +3 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +7 -3
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/updateParentHierarchy.d.ts +11 -0
- package/dist/utils/updateParentHierarchy.d.ts.map +1 -0
- package/dist/utils/updateParentHierarchy.js +40 -0
- package/dist/utils/updateParentHierarchy.js.map +1 -0
- package/dist/validation/__tests__/validateObjectCreation.test.js +1 -0
- package/dist/validation/__tests__/validateObjectCreation.test.js.map +1 -1
- package/dist/validation/__tests__/validateParentExists.test.js +1 -0
- package/dist/validation/__tests__/validateParentExists.test.js.map +1 -1
- package/dist/validation/__tests__/validateStatusTransition.test.js +1 -0
- package/dist/validation/__tests__/validateStatusTransition.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts +0 -2
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts.map +0 -1
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js +0 -693
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js.map +0 -1
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts +0 -2
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts.map +0 -1
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js +0 -352
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js.map +0 -1
- package/dist/services/local/__tests__/replaceObjectBodyRegex.test.d.ts +0 -2
- package/dist/services/local/__tests__/replaceObjectBodyRegex.test.d.ts.map +0 -1
- package/dist/services/local/__tests__/replaceObjectBodyRegex.test.js +0 -283
- package/dist/services/local/__tests__/replaceObjectBodyRegex.test.js.map +0 -1
- package/dist/services/local/replaceObjectBodyRegex.d.ts +0 -8
- package/dist/services/local/replaceObjectBodyRegex.d.ts.map +0 -1
- package/dist/services/local/replaceObjectBodyRegex.js +0 -85
- package/dist/services/local/replaceObjectBodyRegex.js.map +0 -1
- package/dist/tools/__tests__/pruneClosedTool.test.d.ts +0 -2
- package/dist/tools/__tests__/pruneClosedTool.test.d.ts.map +0 -1
- package/dist/tools/__tests__/pruneClosedTool.test.js +0 -112
- package/dist/tools/__tests__/pruneClosedTool.test.js.map +0 -1
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts +0 -2
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts.map +0 -1
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js +0 -89
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js.map +0 -1
- package/dist/tools/pruneClosedTool.d.ts +0 -27
- package/dist/tools/pruneClosedTool.d.ts.map +0 -1
- package/dist/tools/pruneClosedTool.js +0 -57
- package/dist/tools/pruneClosedTool.js.map +0 -1
- package/dist/tools/replaceObjectBodyRegexTool.d.ts +0 -36
- package/dist/tools/replaceObjectBodyRegexTool.d.ts.map +0 -1
- package/dist/tools/replaceObjectBodyRegexTool.js +0 -67
- package/dist/tools/replaceObjectBodyRegexTool.js.map +0 -1
- package/dist/utils/ReplaceStringOptions.d.ts +0 -12
- package/dist/utils/ReplaceStringOptions.d.ts.map +0 -1
- package/dist/utils/ReplaceStringOptions.js +0 -3
- package/dist/utils/ReplaceStringOptions.js.map +0 -1
- package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts +0 -2
- package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts.map +0 -1
- package/dist/utils/__tests__/replaceStringWithRegex.test.js +0 -281
- package/dist/utils/__tests__/replaceStringWithRegex.test.js.map +0 -1
- package/dist/utils/replaceStringWithRegex.d.ts +0 -45
- package/dist/utils/replaceStringWithRegex.d.ts.map +0 -1
- package/dist/utils/replaceStringWithRegex.js +0 -91
- package/dist/utils/replaceStringWithRegex.js.map +0 -1
|
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.claimTask = claimTask;
|
|
4
4
|
const models_1 = require("../../models");
|
|
5
5
|
const checkPrerequisitesComplete_1 = require("../../utils/checkPrerequisitesComplete");
|
|
6
|
+
const checkHierarchicalPrerequisitesComplete_1 = require("../../utils/checkHierarchicalPrerequisitesComplete");
|
|
6
7
|
const filterUnavailableObjects_1 = require("../../utils/filterUnavailableObjects");
|
|
7
8
|
const sortTrellisObjects_1 = require("../../utils/sortTrellisObjects");
|
|
9
|
+
const updateParentHierarchy_1 = require("../../utils/updateParentHierarchy");
|
|
8
10
|
async function claimTask(repository, scope, taskId, force = false) {
|
|
9
11
|
try {
|
|
10
12
|
let claimedTask;
|
|
@@ -19,7 +21,10 @@ async function claimTask(repository, scope, taskId, force = false) {
|
|
|
19
21
|
content: [
|
|
20
22
|
{
|
|
21
23
|
type: "text",
|
|
22
|
-
text: `Successfully claimed task: ${JSON.stringify(
|
|
24
|
+
text: `Successfully claimed task: ${JSON.stringify({
|
|
25
|
+
...updatedTask,
|
|
26
|
+
affectedFiles: Object.fromEntries(updatedTask.affectedFiles),
|
|
27
|
+
}, null, 2)}`,
|
|
23
28
|
},
|
|
24
29
|
],
|
|
25
30
|
};
|
|
@@ -47,7 +52,7 @@ async function findNextAvailableTask(scope, repository) {
|
|
|
47
52
|
const objects = await repository.getObjects(false, // includeClosed
|
|
48
53
|
scope, models_1.TrellisObjectType.TASK);
|
|
49
54
|
// Filter to get only available tasks
|
|
50
|
-
const availableTasks = (0, filterUnavailableObjects_1.filterUnavailableObjects)(objects);
|
|
55
|
+
const availableTasks = await (0, filterUnavailableObjects_1.filterUnavailableObjects)(objects, repository);
|
|
51
56
|
if (availableTasks.length === 0) {
|
|
52
57
|
throw new Error("No available tasks to claim");
|
|
53
58
|
}
|
|
@@ -63,13 +68,19 @@ async function updateTaskStatus(task, repository) {
|
|
|
63
68
|
await repository.saveObject(updatedTask);
|
|
64
69
|
// Update parent hierarchy to in-progress (don't let errors fail the task claim)
|
|
65
70
|
try {
|
|
66
|
-
await updateParentHierarchy(task.parent, repository);
|
|
71
|
+
await (0, updateParentHierarchy_1.updateParentHierarchy)(task.parent, repository);
|
|
67
72
|
}
|
|
68
73
|
catch (error) {
|
|
69
74
|
// Log but don't propagate parent hierarchy update errors
|
|
70
75
|
console.warn("Failed to update parent hierarchy:", error);
|
|
71
76
|
}
|
|
72
|
-
|
|
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;
|
|
73
84
|
}
|
|
74
85
|
async function validateTaskForClaiming(task, taskId, force, repository) {
|
|
75
86
|
// Validate it's a task
|
|
@@ -81,38 +92,18 @@ async function validateTaskForClaiming(task, taskId, force, repository) {
|
|
|
81
92
|
if (!(0, models_1.isClaimable)(task)) {
|
|
82
93
|
throw new Error(`Task "${taskId}" cannot be claimed (status: ${task.status}). Task must be in draft or open status.`);
|
|
83
94
|
}
|
|
84
|
-
// Validate all prerequisites are complete
|
|
85
|
-
const prerequisitesComplete = await (0,
|
|
95
|
+
// Validate all prerequisites are complete (including hierarchical)
|
|
96
|
+
const prerequisitesComplete = await (0, checkHierarchicalPrerequisitesComplete_1.checkHierarchicalPrerequisitesComplete)(task, repository);
|
|
86
97
|
if (!prerequisitesComplete) {
|
|
87
|
-
|
|
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
|
+
}
|
|
88
106
|
}
|
|
89
107
|
}
|
|
90
108
|
}
|
|
91
|
-
async function updateParentHierarchy(parentId, repository, visitedIds = new Set()) {
|
|
92
|
-
if (!parentId) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
// Prevent infinite recursion by checking if we've already visited this ID
|
|
96
|
-
if (visitedIds.has(parentId)) {
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
visitedIds.add(parentId);
|
|
100
|
-
const parent = await repository.getObjectById(parentId);
|
|
101
|
-
if (!parent) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
// If parent is already in progress, we can stop here since we assume
|
|
105
|
-
// its parent is already in progress too
|
|
106
|
-
if (parent.status === models_1.TrellisObjectStatus.IN_PROGRESS) {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
// Update parent to in-progress
|
|
110
|
-
const updatedParent = {
|
|
111
|
-
...parent,
|
|
112
|
-
status: models_1.TrellisObjectStatus.IN_PROGRESS,
|
|
113
|
-
};
|
|
114
|
-
await repository.saveObject(updatedParent);
|
|
115
|
-
// Continue up the hierarchy
|
|
116
|
-
await updateParentHierarchy(parent.parent, repository, visitedIds);
|
|
117
|
-
}
|
|
118
109
|
//# sourceMappingURL=claimTask.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claimTask.js","sourceRoot":"","sources":["../../../src/services/local/claimTask.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"claimTask.js","sourceRoot":"","sources":["../../../src/services/local/claimTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ServerConfig } from "../../configuration";
|
|
2
2
|
import { Repository } from "../../repositories";
|
|
3
|
-
export declare function completeTask(repository: Repository, taskId: string, summary: string, filesChanged: Record<string, string
|
|
3
|
+
export declare function completeTask(repository: Repository, serverConfig: ServerConfig, taskId: string, summary: string, filesChanged: Record<string, string>): Promise<{
|
|
4
4
|
content: Array<{
|
|
5
5
|
type: string;
|
|
6
6
|
text: string;
|
|
@@ -1 +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;
|
|
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"}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.completeTask = completeTask;
|
|
4
4
|
const models_1 = require("../../models");
|
|
5
|
+
const utils_1 = require("../../utils");
|
|
5
6
|
const appendAffectedFiles_js_1 = require("./appendAffectedFiles.js");
|
|
6
|
-
async function completeTask(repository, taskId, summary, filesChanged
|
|
7
|
+
async function completeTask(repository, serverConfig, taskId, summary, filesChanged) {
|
|
7
8
|
// Get the task object from repository
|
|
8
9
|
const task = await repository.getObjectById(taskId);
|
|
9
10
|
if (!task) {
|
|
@@ -22,8 +23,8 @@ async function completeTask(repository, taskId, summary, filesChanged, serverCon
|
|
|
22
23
|
// Save the updated task
|
|
23
24
|
await repository.saveObject(task);
|
|
24
25
|
// If auto-complete parent is enabled, check if we should complete parent objects
|
|
25
|
-
if (serverConfig
|
|
26
|
-
await autoCompleteParentHierarchy(repository, task);
|
|
26
|
+
if (serverConfig.autoCompleteParent) {
|
|
27
|
+
await (0, utils_1.autoCompleteParentHierarchy)(repository, task);
|
|
27
28
|
}
|
|
28
29
|
return {
|
|
29
30
|
content: [
|
|
@@ -34,41 +35,4 @@ async function completeTask(repository, taskId, summary, filesChanged, serverCon
|
|
|
34
35
|
],
|
|
35
36
|
};
|
|
36
37
|
}
|
|
37
|
-
async function autoCompleteParentHierarchy(repository, completedObject) {
|
|
38
|
-
// If the completed object has no parent, nothing to do
|
|
39
|
-
if (!completedObject.parent) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
// Get the parent object
|
|
43
|
-
const parent = await repository.getObjectById(completedObject.parent);
|
|
44
|
-
if (!parent) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
// Check if all children of the parent are done
|
|
48
|
-
const siblings = await Promise.all(parent.childrenIds.map((id) => repository.getObjectById(id)));
|
|
49
|
-
// Filter out null results and check if all are done
|
|
50
|
-
const validSiblings = siblings.filter((sibling) => sibling !== null);
|
|
51
|
-
const allChildrenDone = validSiblings.every((sibling) => sibling.status === models_1.TrellisObjectStatus.DONE ||
|
|
52
|
-
sibling.status === models_1.TrellisObjectStatus.WONT_DO);
|
|
53
|
-
// If all children are done, mark the parent as done and recurse up the hierarchy
|
|
54
|
-
if (allChildrenDone && parent.status !== models_1.TrellisObjectStatus.DONE) {
|
|
55
|
-
parent.status = models_1.TrellisObjectStatus.DONE;
|
|
56
|
-
parent.log.push(`Auto-completed: All child ${getChildTypeName(parent.type)} are complete`);
|
|
57
|
-
await repository.saveObject(parent);
|
|
58
|
-
// Recursively check the parent's parent
|
|
59
|
-
await autoCompleteParentHierarchy(repository, parent);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
function getChildTypeName(parentType) {
|
|
63
|
-
switch (parentType) {
|
|
64
|
-
case models_1.TrellisObjectType.PROJECT:
|
|
65
|
-
return "epics";
|
|
66
|
-
case models_1.TrellisObjectType.EPIC:
|
|
67
|
-
return "features";
|
|
68
|
-
case models_1.TrellisObjectType.FEATURE:
|
|
69
|
-
return "tasks";
|
|
70
|
-
default:
|
|
71
|
-
return "children";
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
38
|
//# sourceMappingURL=completeTask.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completeTask.js","sourceRoot":"","sources":["../../../src/services/local/completeTask.ts"],"names":[],"mappings":";;
|
|
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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TrellisObjectPriority, TrellisObjectStatus, TrellisObjectType } from "../../models";
|
|
2
2
|
import { Repository } from "../../repositories";
|
|
3
|
-
export declare function listObjects(repository: Repository, type
|
|
3
|
+
export declare function listObjects(repository: Repository, type?: TrellisObjectType | TrellisObjectType[], scope?: string, status?: TrellisObjectStatus | TrellisObjectStatus[], priority?: TrellisObjectPriority | TrellisObjectPriority[], includeClosed?: boolean): Promise<{
|
|
4
4
|
content: Array<{
|
|
5
5
|
type: string;
|
|
6
6
|
text: string;
|
|
@@ -1 +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;
|
|
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"}
|
|
@@ -15,10 +15,19 @@ function convertToSummary(obj) {
|
|
|
15
15
|
updated: obj.updated,
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
+
const normalizeEnumInput = (input) => {
|
|
19
|
+
if (input === undefined)
|
|
20
|
+
return undefined;
|
|
21
|
+
return Array.isArray(input) ? input : [input];
|
|
22
|
+
};
|
|
18
23
|
async function listObjects(repository, type, scope, status, priority, includeClosed = false) {
|
|
19
24
|
try {
|
|
25
|
+
// Normalize inputs to arrays
|
|
26
|
+
const normalizedType = normalizeEnumInput(type);
|
|
27
|
+
const normalizedStatus = normalizeEnumInput(status);
|
|
28
|
+
const normalizedPriority = normalizeEnumInput(priority);
|
|
20
29
|
// Get objects from repository
|
|
21
|
-
const objects = await repository.getObjects(includeClosed, scope,
|
|
30
|
+
const objects = await repository.getObjects(includeClosed, scope, normalizedType, normalizedStatus, normalizedPriority);
|
|
22
31
|
const objectSummaries = objects.map(convertToSummary);
|
|
23
32
|
return {
|
|
24
33
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listObjects.js","sourceRoot":"","sources":["../../../src/services/local/listObjects.ts"],"names":[],"mappings":";;
|
|
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"}
|
|
@@ -1 +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;
|
|
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"}
|
|
@@ -2,23 +2,77 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.pruneClosed = pruneClosed;
|
|
4
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
|
+
}
|
|
5
41
|
async function pruneClosed(repository, age, scope) {
|
|
6
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
|
+
}
|
|
7
52
|
// Get all objects including closed ones
|
|
8
53
|
const objects = await repository.getObjects(true, scope);
|
|
9
54
|
// Filter to only closed objects
|
|
10
55
|
const closedObjects = objects.filter(models_1.isClosed);
|
|
11
|
-
// Calculate cutoff time (age in
|
|
12
|
-
const cutoffTime = new Date(Date.now() - age * 60 * 1000);
|
|
56
|
+
// Calculate cutoff time (age in days ago)
|
|
57
|
+
const cutoffTime = new Date(Date.now() - age * 24 * 60 * 60 * 1000);
|
|
13
58
|
// Filter to objects older than cutoff
|
|
14
59
|
const objectsToDelete = closedObjects.filter((obj) => {
|
|
15
60
|
const updatedTime = new Date(obj.updated);
|
|
16
61
|
return updatedTime < cutoffTime;
|
|
17
62
|
});
|
|
18
|
-
// Delete each object
|
|
63
|
+
// Delete each object with hierarchical child validation
|
|
19
64
|
const deletedIds = [];
|
|
65
|
+
const skippedIds = [];
|
|
20
66
|
for (const obj of objectsToDelete) {
|
|
21
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
|
|
22
76
|
await repository.deleteObject(obj.id, true);
|
|
23
77
|
deletedIds.push(obj.id);
|
|
24
78
|
}
|
|
@@ -28,15 +82,18 @@ async function pruneClosed(repository, age, scope) {
|
|
|
28
82
|
}
|
|
29
83
|
}
|
|
30
84
|
const message = scope
|
|
31
|
-
? `Pruned ${deletedIds.length} closed objects older than ${age}
|
|
32
|
-
: `Pruned ${deletedIds.length} closed objects older than ${age}
|
|
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
|
+
: "";
|
|
33
90
|
return {
|
|
34
91
|
content: [
|
|
35
92
|
{
|
|
36
93
|
type: "text",
|
|
37
94
|
text: `${message}${deletedIds.length > 0
|
|
38
95
|
? `\nDeleted objects: ${deletedIds.join(", ")}`
|
|
39
|
-
: ""}`,
|
|
96
|
+
: ""}${skippedMessage}`,
|
|
40
97
|
},
|
|
41
98
|
],
|
|
42
99
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pruneClosed.js","sourceRoot":"","sources":["../../../src/services/local/pruneClosed.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"pruneClosed.js","sourceRoot":"","sources":["../../../src/services/local/pruneClosed.ts"],"names":[],"mappings":";;AA+CA,kCA0FC;AAzID,yCAAgD;AAGhD;;;;;;;GAOG;AACH,KAAK,UAAU,kBAAkB,CAC/B,QAAgB,EAChB,UAAsB,EACtB,UAAuB,IAAI,GAAG,EAAE;IAEhC,qDAAqD;IACrD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEtB,IAAI,CAAC;QACH,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEhE,mBAAmB;QACnB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,uDAAuD;YACvD,IAAI,IAAA,eAAM,EAAC,KAAK,CAAC,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,uDAAuD;YACvD,IAAI,MAAM,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC5D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4DAA4D;QAC5D,OAAO,CAAC,KAAK,CAAC,kCAAkC,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,UAAsB,EACtB,GAAW,EACX,KAAc;IAEd,IAAI,CAAC;QACH,uCAAuC;QACvC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,KAAK;gBACnB,CAAC,CAAC,mCAAmC,GAAG,mBAAmB,KAAK,EAAE;gBAClE,CAAC,CAAC,mCAAmC,GAAG,QAAQ,CAAC;YAEnD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aAC3C,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEzD,gCAAgC;QAChC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAQ,CAAC,CAAC;QAE/C,0CAA0C;QAC1C,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAEpE,sCAAsC;QACtC,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACnD,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO,WAAW,GAAG,UAAU,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,wDAAwD;QACxD,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,oDAAoD;gBACpD,MAAM,wBAAwB,GAAG,MAAM,kBAAkB,CACvD,GAAG,CAAC,EAAE,EACN,UAAU,CACX,CAAC;gBAEF,IAAI,wBAAwB,EAAE,CAAC;oBAC7B,+CAA+C;oBAC/C,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACxB,SAAS;gBACX,CAAC;gBAED,4CAA4C;gBAC5C,MAAM,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC5C,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gDAAgD;gBAChD,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK;YACnB,CAAC,CAAC,UAAU,UAAU,CAAC,MAAM,8BAA8B,GAAG,kBAAkB,KAAK,EAAE;YACvF,CAAC,CAAC,UAAU,UAAU,CAAC,MAAM,8BAA8B,GAAG,OAAO,CAAC;QAExE,MAAM,cAAc,GAClB,UAAU,CAAC,MAAM,GAAG,CAAC;YACnB,CAAC,CAAC,aAAa,UAAU,CAAC,MAAM,gCAAgC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACvF,CAAC,CAAC,EAAE,CAAC;QAET,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,GAAG,OAAO,GACd,UAAU,CAAC,MAAM,GAAG,CAAC;wBACnB,CAAC,CAAC,sBAAsB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBAC/C,CAAC,CAAC,EACN,GAAG,cAAc,EAAE;iBACpB;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBAChG;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { ServerConfig } from "../../configuration";
|
|
1
2
|
import { TrellisObjectPriority, TrellisObjectStatus } from "../../models";
|
|
2
3
|
import { Repository } from "../../repositories";
|
|
3
|
-
export declare function updateObject(repository: Repository, id: string, priority?: TrellisObjectPriority, prerequisites?: string[], body?: string, status?: TrellisObjectStatus, force?: boolean): Promise<{
|
|
4
|
+
export declare function updateObject(repository: Repository, serverConfig: ServerConfig, id: string, title?: string, priority?: TrellisObjectPriority, prerequisites?: string[], body?: string, status?: TrellisObjectStatus, force?: boolean): Promise<{
|
|
4
5
|
content: Array<{
|
|
5
6
|
type: string;
|
|
6
7
|
text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateObject.d.ts","sourceRoot":"","sources":["../../../src/services/local/updateObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.updateObject = updateObject;
|
|
4
|
+
const models_1 = require("../../models");
|
|
5
|
+
const utils_1 = require("../../utils");
|
|
4
6
|
const validateStatusTransition_1 = require("../../validation/validateStatusTransition");
|
|
5
|
-
async function updateObject(repository, id, priority, prerequisites, body, status, force = false) {
|
|
7
|
+
async function updateObject(repository, serverConfig, id, title, priority, prerequisites, body, status, force = false) {
|
|
6
8
|
try {
|
|
7
9
|
// Load the existing object
|
|
8
10
|
const existingObject = await repository.getObjectById(id);
|
|
@@ -19,6 +21,7 @@ async function updateObject(repository, id, priority, prerequisites, body, statu
|
|
|
19
21
|
// Create updated object with new properties, ensuring proper typing
|
|
20
22
|
const updatedObject = {
|
|
21
23
|
...existingObject,
|
|
24
|
+
...(title && { title }),
|
|
22
25
|
...(priority && { priority }),
|
|
23
26
|
...(prerequisites && { prerequisites }),
|
|
24
27
|
...(body && { body }),
|
|
@@ -30,6 +33,30 @@ async function updateObject(repository, id, priority, prerequisites, body, statu
|
|
|
30
33
|
}
|
|
31
34
|
// Save the updated object
|
|
32
35
|
await repository.saveObject(updatedObject);
|
|
36
|
+
// If status is being changed to in-progress, update parent hierarchy
|
|
37
|
+
if (status === models_1.TrellisObjectStatus.IN_PROGRESS &&
|
|
38
|
+
existingObject.status !== models_1.TrellisObjectStatus.IN_PROGRESS) {
|
|
39
|
+
try {
|
|
40
|
+
await (0, utils_1.updateParentHierarchy)(updatedObject.parent, repository);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
// Log but don't propagate parent hierarchy update errors
|
|
44
|
+
console.warn("Failed to update parent hierarchy:", error);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// If status is being changed to done or wont-do, auto-complete parent hierarchy (if enabled)
|
|
48
|
+
if ((status === models_1.TrellisObjectStatus.DONE ||
|
|
49
|
+
status === models_1.TrellisObjectStatus.WONT_DO) &&
|
|
50
|
+
existingObject.status !== status &&
|
|
51
|
+
serverConfig.autoCompleteParent) {
|
|
52
|
+
try {
|
|
53
|
+
await (0, utils_1.autoCompleteParentHierarchy)(repository, updatedObject);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
// Log but don't propagate parent hierarchy update errors
|
|
57
|
+
console.warn("Failed to auto-complete parent hierarchy:", error);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
33
60
|
return {
|
|
34
61
|
content: [
|
|
35
62
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateObject.js","sourceRoot":"","sources":["../../../src/services/local/updateObject.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"updateObject.js","sourceRoot":"","sources":["../../../src/services/local/updateObject.ts"],"names":[],"mappings":";;AAaA,oCA6FC;AAzGD,yCAIsB;AAEtB,uCAGqB;AACrB,wFAAqF;AAE9E,KAAK,UAAU,YAAY,CAChC,UAAsB,EACtB,YAA0B,EAC1B,EAAU,EACV,KAAc,EACd,QAAgC,EAChC,aAAwB,EACxB,IAAa,EACb,MAA4B,EAC5B,QAAiB,KAAK;IAEtB,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,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;YACvB,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC7B,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,CAAC;SAC1B,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,qEAAqE;QACrE,IACE,MAAM,KAAK,4BAAmB,CAAC,WAAW;YAC1C,cAAc,CAAC,MAAM,KAAK,4BAAmB,CAAC,WAAW,EACzD,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,IAAA,6BAAqB,EAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAChE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,yDAAyD;gBACzD,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,6FAA6F;QAC7F,IACE,CAAC,MAAM,KAAK,4BAAmB,CAAC,IAAI;YAClC,MAAM,KAAK,4BAAmB,CAAC,OAAO,CAAC;YACzC,cAAc,CAAC,MAAM,KAAK,MAAM;YAChC,YAAY,CAAC,kBAAkB,EAC/B,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,IAAA,mCAA2B,EAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,yDAAyD;gBACzD,OAAO,CAAC,IAAI,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appendModifiedFilesTool.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/appendModifiedFilesTool.test.ts"],"names":[],"mappings":";;AAEA,wEAAuE;AAEvE,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,WAA+B,CAAC;IACpC,IAAI,cAAuC,CAAC;IAC5C,IAAI,sBAAiC,CAAC;IAEtC,UAAU,CAAC,GAAG,EAAE;QACd,sBAAsB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACnC,WAAW,GAAG;YACZ,mBAAmB,EAAE,sBAAsB;SACX,CAAC;QAEnC,cAAc,GAAG;YACf,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;YACxB,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;YACrB,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;YACrB,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"appendModifiedFilesTool.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/appendModifiedFilesTool.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appendObjectLogTool.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/appendObjectLogTool.test.ts"],"names":[],"mappings":";;AAEA,gEAA+D;AAE/D,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,WAA+B,CAAC;IACpC,IAAI,cAAuC,CAAC;IAC5C,IAAI,kBAA6B,CAAC;IAElC,UAAU,CAAC,GAAG,EAAE;QACd,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC/B,WAAW,GAAG;YACZ,eAAe,EAAE,kBAAkB;SACH,CAAC;QAEnC,cAAc,GAAG;YACf,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;YACxB,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;YACrB,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;YACrB,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"appendObjectLogTool.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/appendObjectLogTool.test.ts"],"names":[],"mappings":";;AAEA,gEAA+D;AAE/D,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,WAA+B,CAAC;IACpC,IAAI,cAAuC,CAAC;IAC5C,IAAI,kBAA6B,CAAC;IAElC,UAAU,CAAC,GAAG,EAAE;QACd,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC/B,WAAW,GAAG;YACZ,eAAe,EAAE,kBAAkB;SACH,CAAC;QAEnC,cAAc,GAAG;YACf,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;YACxB,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;YACrB,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;YACrB,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;YACvB,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;SACzB,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,UAAU,GAAG;gBACjB,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,qCAAqC;qBAC5C;iBACF;aACF,CAAC;YAEF,kBAAkB,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAEjD,MAAM,IAAI,GAAG;gBACX,EAAE,EAAE,aAAa;gBACjB,QAAQ,EAAE,eAAe;aAC1B,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAA,2CAAqB,EACxC,WAAW,EACX,cAAc,EACd,IAAI,CACL,CAAC;YAEF,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAC7C,cAAc,EACd,aAAa,EACb,eAAe,CAChB,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,UAAU,GAAG;gBACjB,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF,CAAC;YAEF,kBAAkB,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAEjD,MAAM,IAAI,GAAG;gBACX,EAAE,EAAE,WAAW;gBACf,QAAQ,EAAE,cAAc;aACzB,CAAC;YAEF,MAAM,IAAA,2CAAqB,EAAC,WAAW,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;YAE/D,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAC7C,cAAc,EACd,WAAW,EACX,cAAc,CACf,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -10,6 +10,7 @@ describe("claimTaskTool", () => {
|
|
|
10
10
|
getObjects: jest.fn(),
|
|
11
11
|
saveObject: jest.fn(),
|
|
12
12
|
deleteObject: jest.fn(),
|
|
13
|
+
getChildrenOf: jest.fn(),
|
|
13
14
|
};
|
|
14
15
|
mockService = {
|
|
15
16
|
createObject: jest.fn(),
|
|
@@ -19,7 +20,6 @@ describe("claimTaskTool", () => {
|
|
|
19
20
|
listObjects: jest.fn(),
|
|
20
21
|
appendObjectLog: jest.fn(),
|
|
21
22
|
pruneClosed: jest.fn(),
|
|
22
|
-
replaceObjectBodyRegex: jest.fn(),
|
|
23
23
|
appendModifiedFiles: jest.fn(),
|
|
24
24
|
};
|
|
25
25
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claimTaskTool.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/claimTaskTool.test.ts"],"names":[],"mappings":";;AAEA,oDAAmD;AAEnD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,cAAuC,CAAC;IAC5C,IAAI,WAA4C,CAAC;IAEjD,UAAU,CAAC,GAAG,EAAE;QACd,cAAc,GAAG;YACf,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;YACxB,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;YACrB,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;YACrB,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"claimTaskTool.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/claimTaskTool.test.ts"],"names":[],"mappings":"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"}
|