@lumenflow/mcp 2.21.1 → 3.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.
- package/LICENSE +13 -185
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +2 -0
- package/dist/bin.js.map +1 -1
- package/dist/cli-runner.d.ts +0 -13
- package/dist/cli-runner.d.ts.map +1 -1
- package/dist/cli-runner.js +2 -0
- package/dist/cli-runner.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-constants.d.ts +173 -0
- package/dist/mcp-constants.d.ts.map +1 -0
- package/dist/mcp-constants.js +193 -0
- package/dist/mcp-constants.js.map +1 -0
- package/dist/resources.d.ts +0 -8
- package/dist/resources.d.ts.map +1 -1
- package/dist/resources.js +2 -0
- package/dist/resources.js.map +1 -1
- package/dist/runtime-cache.d.ts +7 -0
- package/dist/runtime-cache.d.ts.map +1 -0
- package/dist/runtime-cache.js +28 -0
- package/dist/runtime-cache.js.map +1 -0
- package/dist/runtime-tool-resolver.constants.d.ts +33 -0
- package/dist/runtime-tool-resolver.constants.d.ts.map +1 -0
- package/dist/runtime-tool-resolver.constants.js +35 -0
- package/dist/runtime-tool-resolver.constants.js.map +1 -0
- package/dist/runtime-tool-resolver.d.ts +5 -0
- package/dist/runtime-tool-resolver.d.ts.map +1 -0
- package/dist/runtime-tool-resolver.js +2030 -0
- package/dist/runtime-tool-resolver.js.map +1 -0
- package/dist/server.d.ts +0 -11
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +32 -4
- package/dist/server.js.map +1 -1
- package/dist/tools/agent-tools.d.ts +0 -8
- package/dist/tools/agent-tools.d.ts.map +1 -1
- package/dist/tools/agent-tools.js +115 -41
- package/dist/tools/agent-tools.js.map +1 -1
- package/dist/tools/context-tools.d.ts +1 -7
- package/dist/tools/context-tools.d.ts.map +1 -1
- package/dist/tools/context-tools.js +25 -40
- package/dist/tools/context-tools.js.map +1 -1
- package/dist/tools/flow-tools.d.ts +0 -8
- package/dist/tools/flow-tools.d.ts.map +1 -1
- package/dist/tools/flow-tools.js +53 -64
- package/dist/tools/flow-tools.js.map +1 -1
- package/dist/tools/initiative-tools.d.ts +0 -8
- package/dist/tools/initiative-tools.d.ts.map +1 -1
- package/dist/tools/initiative-tools.js +200 -84
- package/dist/tools/initiative-tools.js.map +1 -1
- package/dist/tools/memory-tools.d.ts +0 -8
- package/dist/tools/memory-tools.d.ts.map +1 -1
- package/dist/tools/memory-tools.js +270 -166
- package/dist/tools/memory-tools.js.map +1 -1
- package/dist/tools/orchestration-tools.d.ts +0 -8
- package/dist/tools/orchestration-tools.d.ts.map +1 -1
- package/dist/tools/orchestration-tools.js +101 -57
- package/dist/tools/orchestration-tools.js.map +1 -1
- package/dist/tools/parity-tools.d.ts +12 -8
- package/dist/tools/parity-tools.d.ts.map +1 -1
- package/dist/tools/parity-tools.js +778 -193
- package/dist/tools/parity-tools.js.map +1 -1
- package/dist/tools/runtime-task-constants.d.ts +19 -0
- package/dist/tools/runtime-task-constants.d.ts.map +1 -0
- package/dist/tools/runtime-task-constants.js +21 -0
- package/dist/tools/runtime-task-constants.js.map +1 -0
- package/dist/tools/runtime-task-tools.d.ts +10 -0
- package/dist/tools/runtime-task-tools.d.ts.map +1 -0
- package/dist/tools/runtime-task-tools.js +116 -0
- package/dist/tools/runtime-task-tools.js.map +1 -0
- package/dist/tools/setup-tools.d.ts +0 -8
- package/dist/tools/setup-tools.d.ts.map +1 -1
- package/dist/tools/setup-tools.js +152 -65
- package/dist/tools/setup-tools.js.map +1 -1
- package/dist/tools/validation-tools.d.ts +0 -8
- package/dist/tools/validation-tools.d.ts.map +1 -1
- package/dist/tools/validation-tools.js +100 -54
- package/dist/tools/validation-tools.js.map +1 -1
- package/dist/tools/wu-tools.d.ts +1 -11
- package/dist/tools/wu-tools.d.ts.map +1 -1
- package/dist/tools/wu-tools.js +446 -250
- package/dist/tools/wu-tools.js.map +1 -1
- package/dist/tools-shared.d.ts +81 -1
- package/dist/tools-shared.d.ts.map +1 -1
- package/dist/tools-shared.js +201 -1
- package/dist/tools-shared.js.map +1 -1
- package/dist/tools.d.ts +29 -2
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +61 -32
- package/dist/tools.js.map +1 -1
- package/dist/worktree-enforcement.d.ts +32 -0
- package/dist/worktree-enforcement.d.ts.map +1 -0
- package/dist/worktree-enforcement.js +154 -0
- package/dist/worktree-enforcement.js.map +1 -0
- package/package.json +8 -5
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
1
3
|
/**
|
|
2
4
|
* @file setup-tools.ts
|
|
3
5
|
* @description Setup/LumenFlow tool implementations
|
|
@@ -5,9 +7,62 @@
|
|
|
5
7
|
* WU-1642: Extracted from tools.ts during domain decomposition.
|
|
6
8
|
* WU-1426: Setup tools
|
|
7
9
|
* WU-1457: All setup commands use shared schemas
|
|
10
|
+
* WU-1812: Migrated setup tools from CLI shell-out to executeViaPack runtime path
|
|
8
11
|
*/
|
|
9
12
|
import { lumenflowInitSchema, lumenflowDoctorSchema, lumenflowIntegrateSchema, lumenflowUpgradeSchema, lumenflowCommandsSchema, docsSyncSchema, releaseSchema, syncTemplatesSchema, } from '@lumenflow/core';
|
|
10
|
-
import { ErrorCodes, ErrorMessages, CliArgs, success, error,
|
|
13
|
+
import { ErrorCodes, ErrorMessages, CliArgs, success, error, executeViaPack, } from '../tools-shared.js';
|
|
14
|
+
import { CliCommands, MetadataKeys } from '../mcp-constants.js';
|
|
15
|
+
const SetupResultMessages = {
|
|
16
|
+
LUMENFLOW_INIT_PASSED: 'LumenFlow initialized',
|
|
17
|
+
LUMENFLOW_INIT_FAILED: 'lumenflow failed',
|
|
18
|
+
LUMENFLOW_DOCTOR_PASSED: 'LumenFlow safety: ACTIVE',
|
|
19
|
+
LUMENFLOW_DOCTOR_FAILED: 'Doctor found issues',
|
|
20
|
+
LUMENFLOW_INTEGRATE_PASSED: 'Hooks generated',
|
|
21
|
+
LUMENFLOW_INTEGRATE_FAILED: 'lumenflow:integrate failed',
|
|
22
|
+
LUMENFLOW_UPGRADE_PASSED: 'LumenFlow upgraded',
|
|
23
|
+
LUMENFLOW_UPGRADE_FAILED: 'lumenflow:upgrade failed',
|
|
24
|
+
LUMENFLOW_COMMANDS_PASSED: 'Commands listed',
|
|
25
|
+
LUMENFLOW_COMMANDS_FAILED: 'lumenflow commands failed',
|
|
26
|
+
LUMENFLOW_DOCS_SYNC_PASSED: 'Docs synced',
|
|
27
|
+
LUMENFLOW_DOCS_SYNC_FAILED: 'docs:sync failed',
|
|
28
|
+
LUMENFLOW_RELEASE_PASSED: 'Release complete',
|
|
29
|
+
LUMENFLOW_RELEASE_FAILED: 'release failed',
|
|
30
|
+
LUMENFLOW_SYNC_TEMPLATES_PASSED: 'Templates synced',
|
|
31
|
+
LUMENFLOW_SYNC_TEMPLATES_FAILED: 'sync:templates failed',
|
|
32
|
+
};
|
|
33
|
+
function isRecord(value) {
|
|
34
|
+
return typeof value === 'object' && value !== null;
|
|
35
|
+
}
|
|
36
|
+
function unwrapExecuteViaPackData(data) {
|
|
37
|
+
if (!isRecord(data) || !('success' in data)) {
|
|
38
|
+
return data;
|
|
39
|
+
}
|
|
40
|
+
const successValue = data.success;
|
|
41
|
+
if (typeof successValue !== 'boolean' || !successValue) {
|
|
42
|
+
return data;
|
|
43
|
+
}
|
|
44
|
+
return data.data ?? {};
|
|
45
|
+
}
|
|
46
|
+
function resolveMessage(value, fallbackMessage) {
|
|
47
|
+
if (typeof value === 'string') {
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
50
|
+
if (isRecord(value) && typeof value.message === 'string') {
|
|
51
|
+
return value.message;
|
|
52
|
+
}
|
|
53
|
+
return fallbackMessage;
|
|
54
|
+
}
|
|
55
|
+
function buildExecutionOptions(projectRoot, fallback) {
|
|
56
|
+
return {
|
|
57
|
+
projectRoot,
|
|
58
|
+
contextInput: {
|
|
59
|
+
metadata: {
|
|
60
|
+
[MetadataKeys.PROJECT_ROOT]: projectRoot,
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
fallback,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
11
66
|
/**
|
|
12
67
|
* lumenflow_init - Initialize LumenFlow in a project
|
|
13
68
|
*/
|
|
@@ -21,14 +76,18 @@ export const lumenflowInitTool = {
|
|
|
21
76
|
args.push('--client', input.client);
|
|
22
77
|
if (input.merge)
|
|
23
78
|
args.push('--merge');
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
79
|
+
const result = await executeViaPack(CliCommands.LUMENFLOW, input, {
|
|
80
|
+
...buildExecutionOptions(options?.projectRoot, {
|
|
81
|
+
command: CliCommands.LUMENFLOW,
|
|
82
|
+
args,
|
|
83
|
+
errorCode: ErrorCodes.LUMENFLOW_INIT_ERROR,
|
|
84
|
+
}),
|
|
85
|
+
});
|
|
86
|
+
return result.success
|
|
87
|
+
? success({
|
|
88
|
+
message: resolveMessage(unwrapExecuteViaPackData(result.data), SetupResultMessages.LUMENFLOW_INIT_PASSED),
|
|
89
|
+
})
|
|
90
|
+
: error(result.error?.message ?? SetupResultMessages.LUMENFLOW_INIT_FAILED, ErrorCodes.LUMENFLOW_INIT_ERROR);
|
|
32
91
|
},
|
|
33
92
|
};
|
|
34
93
|
/**
|
|
@@ -39,14 +98,18 @@ export const lumenflowDoctorTool = {
|
|
|
39
98
|
description: 'Diagnose LumenFlow configuration and safety components',
|
|
40
99
|
inputSchema: lumenflowDoctorSchema,
|
|
41
100
|
async execute(_input, options) {
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
101
|
+
const result = await executeViaPack(CliCommands.LUMENFLOW_DOCTOR, {}, {
|
|
102
|
+
...buildExecutionOptions(options?.projectRoot, {
|
|
103
|
+
command: CliCommands.LUMENFLOW_DOCTOR,
|
|
104
|
+
args: [],
|
|
105
|
+
errorCode: ErrorCodes.LUMENFLOW_DOCTOR_ERROR,
|
|
106
|
+
}),
|
|
107
|
+
});
|
|
108
|
+
return result.success
|
|
109
|
+
? success({
|
|
110
|
+
message: resolveMessage(unwrapExecuteViaPackData(result.data), SetupResultMessages.LUMENFLOW_DOCTOR_PASSED),
|
|
111
|
+
})
|
|
112
|
+
: error(result.error?.message ?? SetupResultMessages.LUMENFLOW_DOCTOR_FAILED, ErrorCodes.LUMENFLOW_DOCTOR_ERROR);
|
|
50
113
|
},
|
|
51
114
|
};
|
|
52
115
|
/**
|
|
@@ -61,14 +124,18 @@ export const lumenflowIntegrateTool = {
|
|
|
61
124
|
return error(ErrorMessages.CLIENT_REQUIRED, ErrorCodes.MISSING_PARAMETER);
|
|
62
125
|
}
|
|
63
126
|
const args = ['--client', input.client];
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
127
|
+
const result = await executeViaPack(CliCommands.LUMENFLOW_INTEGRATE, input, {
|
|
128
|
+
...buildExecutionOptions(options?.projectRoot, {
|
|
129
|
+
command: CliCommands.LUMENFLOW_INTEGRATE,
|
|
130
|
+
args,
|
|
131
|
+
errorCode: ErrorCodes.LUMENFLOW_INTEGRATE_ERROR,
|
|
132
|
+
}),
|
|
133
|
+
});
|
|
134
|
+
return result.success
|
|
135
|
+
? success({
|
|
136
|
+
message: resolveMessage(unwrapExecuteViaPackData(result.data), SetupResultMessages.LUMENFLOW_INTEGRATE_PASSED),
|
|
137
|
+
})
|
|
138
|
+
: error(result.error?.message ?? SetupResultMessages.LUMENFLOW_INTEGRATE_FAILED, ErrorCodes.LUMENFLOW_INTEGRATE_ERROR);
|
|
72
139
|
},
|
|
73
140
|
};
|
|
74
141
|
/**
|
|
@@ -79,14 +146,18 @@ export const lumenflowUpgradeTool = {
|
|
|
79
146
|
description: 'Upgrade LumenFlow packages to latest versions',
|
|
80
147
|
inputSchema: lumenflowUpgradeSchema,
|
|
81
148
|
async execute(_input, options) {
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
149
|
+
const result = await executeViaPack(CliCommands.LUMENFLOW_UPGRADE, {}, {
|
|
150
|
+
...buildExecutionOptions(options?.projectRoot, {
|
|
151
|
+
command: CliCommands.LUMENFLOW_UPGRADE,
|
|
152
|
+
args: [],
|
|
153
|
+
errorCode: ErrorCodes.LUMENFLOW_UPGRADE_ERROR,
|
|
154
|
+
}),
|
|
155
|
+
});
|
|
156
|
+
return result.success
|
|
157
|
+
? success({
|
|
158
|
+
message: resolveMessage(unwrapExecuteViaPackData(result.data), SetupResultMessages.LUMENFLOW_UPGRADE_PASSED),
|
|
159
|
+
})
|
|
160
|
+
: error(result.error?.message ?? SetupResultMessages.LUMENFLOW_UPGRADE_FAILED, ErrorCodes.LUMENFLOW_UPGRADE_ERROR);
|
|
90
161
|
},
|
|
91
162
|
};
|
|
92
163
|
/**
|
|
@@ -97,14 +168,18 @@ export const lumenflowCommandsTool = {
|
|
|
97
168
|
description: 'List all available LumenFlow CLI commands',
|
|
98
169
|
inputSchema: lumenflowCommandsSchema,
|
|
99
170
|
async execute(_input, options) {
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
171
|
+
const result = await executeViaPack(CliCommands.LUMENFLOW, {}, {
|
|
172
|
+
...buildExecutionOptions(options?.projectRoot, {
|
|
173
|
+
command: CliCommands.LUMENFLOW,
|
|
174
|
+
args: ['commands'],
|
|
175
|
+
errorCode: ErrorCodes.LUMENFLOW_COMMANDS_ERROR,
|
|
176
|
+
}),
|
|
177
|
+
});
|
|
178
|
+
return result.success
|
|
179
|
+
? success({
|
|
180
|
+
message: resolveMessage(unwrapExecuteViaPackData(result.data), SetupResultMessages.LUMENFLOW_COMMANDS_PASSED),
|
|
181
|
+
})
|
|
182
|
+
: error(result.error?.message ?? SetupResultMessages.LUMENFLOW_COMMANDS_FAILED, ErrorCodes.LUMENFLOW_COMMANDS_ERROR);
|
|
108
183
|
},
|
|
109
184
|
};
|
|
110
185
|
/**
|
|
@@ -115,14 +190,18 @@ export const lumenflowDocsSyncTool = {
|
|
|
115
190
|
description: 'Sync agent documentation after upgrading LumenFlow packages',
|
|
116
191
|
inputSchema: docsSyncSchema,
|
|
117
192
|
async execute(_input, options) {
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
193
|
+
const result = await executeViaPack(CliCommands.DOCS_SYNC, {}, {
|
|
194
|
+
...buildExecutionOptions(options?.projectRoot, {
|
|
195
|
+
command: CliCommands.DOCS_SYNC,
|
|
196
|
+
args: [],
|
|
197
|
+
errorCode: ErrorCodes.LUMENFLOW_DOCS_SYNC_ERROR,
|
|
198
|
+
}),
|
|
199
|
+
});
|
|
200
|
+
return result.success
|
|
201
|
+
? success({
|
|
202
|
+
message: resolveMessage(unwrapExecuteViaPackData(result.data), SetupResultMessages.LUMENFLOW_DOCS_SYNC_PASSED),
|
|
203
|
+
})
|
|
204
|
+
: error(result.error?.message ?? SetupResultMessages.LUMENFLOW_DOCS_SYNC_FAILED, ErrorCodes.LUMENFLOW_DOCS_SYNC_ERROR);
|
|
126
205
|
},
|
|
127
206
|
};
|
|
128
207
|
/**
|
|
@@ -136,14 +215,18 @@ export const lumenflowReleaseTool = {
|
|
|
136
215
|
const args = [];
|
|
137
216
|
if (input.dry_run)
|
|
138
217
|
args.push(CliArgs.DRY_RUN);
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
218
|
+
const result = await executeViaPack(CliCommands.LUMENFLOW_RELEASE, input, {
|
|
219
|
+
...buildExecutionOptions(options?.projectRoot, {
|
|
220
|
+
command: CliCommands.LUMENFLOW_RELEASE,
|
|
221
|
+
args,
|
|
222
|
+
errorCode: ErrorCodes.LUMENFLOW_RELEASE_ERROR,
|
|
223
|
+
}),
|
|
224
|
+
});
|
|
225
|
+
return result.success
|
|
226
|
+
? success({
|
|
227
|
+
message: resolveMessage(unwrapExecuteViaPackData(result.data), SetupResultMessages.LUMENFLOW_RELEASE_PASSED),
|
|
228
|
+
})
|
|
229
|
+
: error(result.error?.message ?? SetupResultMessages.LUMENFLOW_RELEASE_FAILED, ErrorCodes.LUMENFLOW_RELEASE_ERROR);
|
|
147
230
|
},
|
|
148
231
|
};
|
|
149
232
|
/**
|
|
@@ -154,14 +237,18 @@ export const lumenflowSyncTemplatesTool = {
|
|
|
154
237
|
description: 'Sync LumenFlow templates to the project',
|
|
155
238
|
inputSchema: syncTemplatesSchema,
|
|
156
239
|
async execute(_input, options) {
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
240
|
+
const result = await executeViaPack(CliCommands.SYNC_TEMPLATES, {}, {
|
|
241
|
+
...buildExecutionOptions(options?.projectRoot, {
|
|
242
|
+
command: CliCommands.SYNC_TEMPLATES,
|
|
243
|
+
args: [],
|
|
244
|
+
errorCode: ErrorCodes.LUMENFLOW_SYNC_TEMPLATES_ERROR,
|
|
245
|
+
}),
|
|
246
|
+
});
|
|
247
|
+
return result.success
|
|
248
|
+
? success({
|
|
249
|
+
message: resolveMessage(unwrapExecuteViaPackData(result.data), SetupResultMessages.LUMENFLOW_SYNC_TEMPLATES_PASSED),
|
|
250
|
+
})
|
|
251
|
+
: error(result.error?.message ?? SetupResultMessages.LUMENFLOW_SYNC_TEMPLATES_FAILED, ErrorCodes.LUMENFLOW_SYNC_TEMPLATES_ERROR);
|
|
165
252
|
},
|
|
166
253
|
};
|
|
167
254
|
//# sourceMappingURL=setup-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-tools.js","sourceRoot":"","sources":["../../src/tools/setup-tools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"setup-tools.js","sourceRoot":"","sources":["../../src/tools/setup-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file validation-tools.ts
|
|
3
|
-
* @description Validation tool implementations
|
|
4
|
-
*
|
|
5
|
-
* WU-1642: Extracted from tools.ts during domain decomposition.
|
|
6
|
-
* WU-1426: Validation tools
|
|
7
|
-
* WU-1457: All validation commands use shared schemas
|
|
8
|
-
*/
|
|
9
1
|
import { type ToolDefinition } from '../tools-shared.js';
|
|
10
2
|
/**
|
|
11
3
|
* validate - Validate WU YAML files
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-tools.d.ts","sourceRoot":"","sources":["../../src/tools/validation-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validation-tools.d.ts","sourceRoot":"","sources":["../../src/tools/validation-tools.ts"],"names":[],"mappings":"AAqBA,OAAO,EACL,KAAK,cAAc,EAMpB,MAAM,oBAAoB,CAAC;AA0B5B;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,cA2B1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAyBrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,cA0BnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cA0BrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,cA0BpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,cA2BnC,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
1
3
|
/**
|
|
2
4
|
* @file validation-tools.ts
|
|
3
5
|
* @description Validation tool implementations
|
|
@@ -5,9 +7,33 @@
|
|
|
5
7
|
* WU-1642: Extracted from tools.ts during domain decomposition.
|
|
6
8
|
* WU-1426: Validation tools
|
|
7
9
|
* WU-1457: All validation commands use shared schemas
|
|
10
|
+
* WU-1802: Migrated from CLI shell-out to executeViaPack (runtime-first)
|
|
11
|
+
* WU-1856: Fix duplicate message constants, tighten constant naming
|
|
8
12
|
*/
|
|
9
13
|
import { validateSchema, validateAgentSkillsSchema, validateAgentSyncSchema, validateBacklogSyncSchema, validateSkillsSpecSchema, } from '@lumenflow/core';
|
|
10
|
-
import { ErrorCodes, success, error,
|
|
14
|
+
import { ErrorCodes, CliArgs, success, error, executeViaPack, } from '../tools-shared.js';
|
|
15
|
+
import { CliCommands } from '../mcp-constants.js';
|
|
16
|
+
/**
|
|
17
|
+
* Fallback messages when executeViaPack returns no structured data/error.
|
|
18
|
+
*/
|
|
19
|
+
const ValidationMessages = {
|
|
20
|
+
VALIDATE_PASSED: 'Validation passed',
|
|
21
|
+
VALIDATE_FAILED: 'Validation failed',
|
|
22
|
+
AGENT_SKILLS_VALID: 'All skills valid',
|
|
23
|
+
AGENT_SKILLS_FAILED: 'validate:agent-skills failed',
|
|
24
|
+
AGENT_SYNC_VALID: 'Agent sync valid',
|
|
25
|
+
AGENT_SYNC_FAILED: 'validate:agent-sync failed',
|
|
26
|
+
BACKLOG_SYNC_VALID: 'Backlog sync valid',
|
|
27
|
+
BACKLOG_SYNC_FAILED: 'validate:backlog-sync failed',
|
|
28
|
+
SKILLS_SPEC_VALID: 'Skills spec valid',
|
|
29
|
+
SKILLS_SPEC_FAILED: 'validate:skills-spec failed',
|
|
30
|
+
LUMENFLOW_VALIDATE_FAILED: 'lumenflow-validate failed',
|
|
31
|
+
};
|
|
32
|
+
const CliFlags = {
|
|
33
|
+
STRICT: '--strict',
|
|
34
|
+
DONE_ONLY: '--done-only',
|
|
35
|
+
SKILL: '--skill',
|
|
36
|
+
};
|
|
11
37
|
/**
|
|
12
38
|
* validate - Validate WU YAML files
|
|
13
39
|
*/
|
|
@@ -18,19 +44,22 @@ export const validateTool = {
|
|
|
18
44
|
async execute(input, options) {
|
|
19
45
|
const args = [];
|
|
20
46
|
if (input.id)
|
|
21
|
-
args.push(
|
|
47
|
+
args.push(CliArgs.ID, input.id);
|
|
22
48
|
if (input.strict)
|
|
23
|
-
args.push(
|
|
49
|
+
args.push(CliFlags.STRICT);
|
|
24
50
|
if (input.done_only)
|
|
25
|
-
args.push(
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
51
|
+
args.push(CliFlags.DONE_ONLY);
|
|
52
|
+
const result = await executeViaPack(CliCommands.VALIDATE, input, {
|
|
53
|
+
projectRoot: options?.projectRoot,
|
|
54
|
+
fallback: {
|
|
55
|
+
command: CliCommands.VALIDATE,
|
|
56
|
+
args,
|
|
57
|
+
errorCode: ErrorCodes.VALIDATE_ERROR,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
return result.success
|
|
61
|
+
? success(result.data ?? { message: ValidationMessages.VALIDATE_PASSED })
|
|
62
|
+
: error(result.error?.message ?? ValidationMessages.VALIDATE_FAILED, ErrorCodes.VALIDATE_ERROR);
|
|
34
63
|
},
|
|
35
64
|
};
|
|
36
65
|
/**
|
|
@@ -43,15 +72,18 @@ export const validateAgentSkillsTool = {
|
|
|
43
72
|
async execute(input, options) {
|
|
44
73
|
const args = [];
|
|
45
74
|
if (input.skill)
|
|
46
|
-
args.push(
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
75
|
+
args.push(CliFlags.SKILL, input.skill);
|
|
76
|
+
const result = await executeViaPack(CliCommands.VALIDATE_AGENT_SKILLS, input, {
|
|
77
|
+
projectRoot: options?.projectRoot,
|
|
78
|
+
fallback: {
|
|
79
|
+
command: CliCommands.VALIDATE_AGENT_SKILLS,
|
|
80
|
+
args,
|
|
81
|
+
errorCode: ErrorCodes.VALIDATE_AGENT_SKILLS_ERROR,
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
return result.success
|
|
85
|
+
? success(result.data ?? { message: ValidationMessages.AGENT_SKILLS_VALID })
|
|
86
|
+
: error(result.error?.message ?? ValidationMessages.AGENT_SKILLS_FAILED, ErrorCodes.VALIDATE_AGENT_SKILLS_ERROR);
|
|
55
87
|
},
|
|
56
88
|
};
|
|
57
89
|
/**
|
|
@@ -62,14 +94,17 @@ export const validateAgentSyncTool = {
|
|
|
62
94
|
description: 'Validate agent synchronization state',
|
|
63
95
|
inputSchema: validateAgentSyncSchema,
|
|
64
96
|
async execute(_input, options) {
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
97
|
+
const result = await executeViaPack(CliCommands.VALIDATE_AGENT_SYNC, {}, {
|
|
98
|
+
projectRoot: options?.projectRoot,
|
|
99
|
+
fallback: {
|
|
100
|
+
command: CliCommands.VALIDATE_AGENT_SYNC,
|
|
101
|
+
args: [],
|
|
102
|
+
errorCode: ErrorCodes.VALIDATE_AGENT_SYNC_ERROR,
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
return result.success
|
|
106
|
+
? success(result.data ?? { message: ValidationMessages.AGENT_SYNC_VALID })
|
|
107
|
+
: error(result.error?.message ?? ValidationMessages.AGENT_SYNC_FAILED, ErrorCodes.VALIDATE_AGENT_SYNC_ERROR);
|
|
73
108
|
},
|
|
74
109
|
};
|
|
75
110
|
/**
|
|
@@ -80,14 +115,17 @@ export const validateBacklogSyncTool = {
|
|
|
80
115
|
description: 'Validate backlog synchronization between WU YAMLs and backlog.md',
|
|
81
116
|
inputSchema: validateBacklogSyncSchema,
|
|
82
117
|
async execute(_input, options) {
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}
|
|
118
|
+
const result = await executeViaPack(CliCommands.VALIDATE_BACKLOG_SYNC, {}, {
|
|
119
|
+
projectRoot: options?.projectRoot,
|
|
120
|
+
fallback: {
|
|
121
|
+
command: CliCommands.VALIDATE_BACKLOG_SYNC,
|
|
122
|
+
args: [],
|
|
123
|
+
errorCode: ErrorCodes.VALIDATE_BACKLOG_SYNC_ERROR,
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
return result.success
|
|
127
|
+
? success(result.data ?? { message: ValidationMessages.BACKLOG_SYNC_VALID })
|
|
128
|
+
: error(result.error?.message ?? ValidationMessages.BACKLOG_SYNC_FAILED, ErrorCodes.VALIDATE_BACKLOG_SYNC_ERROR);
|
|
91
129
|
},
|
|
92
130
|
};
|
|
93
131
|
/**
|
|
@@ -98,14 +136,17 @@ export const validateSkillsSpecTool = {
|
|
|
98
136
|
description: 'Validate skills specification files',
|
|
99
137
|
inputSchema: validateSkillsSpecSchema,
|
|
100
138
|
async execute(_input, options) {
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
139
|
+
const result = await executeViaPack(CliCommands.VALIDATE_SKILLS_SPEC, {}, {
|
|
140
|
+
projectRoot: options?.projectRoot,
|
|
141
|
+
fallback: {
|
|
142
|
+
command: CliCommands.VALIDATE_SKILLS_SPEC,
|
|
143
|
+
args: [],
|
|
144
|
+
errorCode: ErrorCodes.VALIDATE_SKILLS_SPEC_ERROR,
|
|
145
|
+
},
|
|
146
|
+
});
|
|
147
|
+
return result.success
|
|
148
|
+
? success(result.data ?? { message: ValidationMessages.SKILLS_SPEC_VALID })
|
|
149
|
+
: error(result.error?.message ?? ValidationMessages.SKILLS_SPEC_FAILED, ErrorCodes.VALIDATE_SKILLS_SPEC_ERROR);
|
|
109
150
|
},
|
|
110
151
|
};
|
|
111
152
|
/**
|
|
@@ -118,17 +159,22 @@ export const lumenflowValidateTool = {
|
|
|
118
159
|
async execute(input, options) {
|
|
119
160
|
const args = [];
|
|
120
161
|
if (input.id)
|
|
121
|
-
args.push(
|
|
162
|
+
args.push(CliArgs.ID, input.id);
|
|
122
163
|
if (input.strict)
|
|
123
|
-
args.push(
|
|
164
|
+
args.push(CliFlags.STRICT);
|
|
124
165
|
if (input.done_only)
|
|
125
|
-
args.push(
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
166
|
+
args.push(CliFlags.DONE_ONLY);
|
|
167
|
+
const result = await executeViaPack(CliCommands.LUMENFLOW_VALIDATE, input, {
|
|
168
|
+
projectRoot: options?.projectRoot,
|
|
169
|
+
fallback: {
|
|
170
|
+
command: CliCommands.VALIDATE,
|
|
171
|
+
args,
|
|
172
|
+
errorCode: ErrorCodes.LUMENFLOW_VALIDATE_ERROR,
|
|
173
|
+
},
|
|
174
|
+
});
|
|
175
|
+
return result.success
|
|
176
|
+
? success(result.data ?? { message: ValidationMessages.VALIDATE_PASSED })
|
|
177
|
+
: error(result.error?.message ?? ValidationMessages.LUMENFLOW_VALIDATE_FAILED, ErrorCodes.LUMENFLOW_VALIDATE_ERROR);
|
|
132
178
|
},
|
|
133
179
|
};
|
|
134
180
|
//# sourceMappingURL=validation-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-tools.js","sourceRoot":"","sources":["../../src/tools/validation-tools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"validation-tools.js","sourceRoot":"","sources":["../../src/tools/validation-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/wu-tools.d.ts
CHANGED
|
@@ -1,19 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file wu-tools.ts
|
|
3
|
-
* @description WU lifecycle tool implementations (create, claim, done, block, edit, etc.)
|
|
4
|
-
*
|
|
5
|
-
* WU-1642: Extracted from tools.ts during domain decomposition.
|
|
6
|
-
* WU-1412: Core WU tools: wu_status, wu_create, wu_claim, wu_done, gates_run
|
|
7
|
-
* WU-1422: Additional WU tools
|
|
8
|
-
* WU-1431: Uses shared Zod schemas from @lumenflow/core for CLI/MCP parity
|
|
9
|
-
* WU-1454: All 16 WU lifecycle commands now use shared schemas
|
|
10
|
-
*/
|
|
11
1
|
import { type ToolDefinition } from '../tools-shared.js';
|
|
12
2
|
/**
|
|
13
3
|
* wu_status - Get status of a specific WU
|
|
14
|
-
* Uses CLI shell-out for consistency
|
|
15
4
|
*
|
|
16
5
|
* WU-1431: Uses shared wuStatusSchema for parity with CLI
|
|
6
|
+
* WU-1805: Migrated from CLI shell-out to executeViaPack (runtime-first)
|
|
17
7
|
* Note: CLI allows id to be optional (auto-detect from worktree), but MCP requires it
|
|
18
8
|
* since there's no "current directory" concept for MCP clients
|
|
19
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-tools.d.ts","sourceRoot":"","sources":["../../src/tools/wu-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wu-tools.d.ts","sourceRoot":"","sources":["../../src/tools/wu-tools.ts"],"names":[],"mappings":"AAuCA,OAAO,EACL,KAAK,cAAc,EAUpB,MAAM,oBAAoB,CAAC;AAsE5B;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,cA4B1B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,cAgD1B,CAAC;AAmBF,eAAO,MAAM,WAAW,EAAE,cAkDzB,CAAC;AAcF,eAAO,MAAM,aAAa,EAAE,cA0C3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,cAyDxB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,cAoC1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,cAwCzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,cAoC3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,cAmDxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,cAmC3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,cAkC3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,cAiC1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,cA6BxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,cAoCxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,cA+B7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,cA+BzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,cAqC1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,cAmC3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,cAiCzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,cAmC5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,cA8B5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,cAgC7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAwC9B,CAAC"}
|