wopee-mcp 1.13.0 → 1.15.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/README.md
CHANGED
|
@@ -175,6 +175,11 @@ Fetch all existing analysis suites for my project
|
|
|
175
175
|
|
|
176
176
|
Creates and dispatches a new analysis/crawling suite for your project. Use this to start a fresh analysis session.
|
|
177
177
|
|
|
178
|
+
- **Parameters:**
|
|
179
|
+
- `additionalInstructions` _(optional)_ - Additional instructions to guide the agent during the analysis/crawling phase (e.g. focus areas, things to ignore, login steps, etc.)
|
|
180
|
+
- `additionalVariables` _(optional)_ - Additional environment variables to pass to the analysis. Array of objects, each with:
|
|
181
|
+
- `key` - Variable name, must be uppercase with underscores only (e.g. `MY_VAR`, `BASE_URL`)
|
|
182
|
+
- `value` - Variable value (non-empty string)
|
|
178
183
|
- **Returns:** Success message with the created suite information
|
|
179
184
|
|
|
180
185
|
**Example Usage:**
|
|
@@ -183,6 +188,14 @@ Creates and dispatches a new analysis/crawling suite for your project. Use this
|
|
|
183
188
|
Dispatch a new analysis suite
|
|
184
189
|
```
|
|
185
190
|
|
|
191
|
+
```
|
|
192
|
+
Dispatch a new analysis suite and focus on the checkout flow
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
Dispatch a new analysis suite with additional variables CARD_FILAMENT=123321123 and AUTH_TOKEN=abc123
|
|
197
|
+
```
|
|
198
|
+
|
|
186
199
|
#### `wopee_create_blank_suite`
|
|
187
200
|
|
|
188
201
|
Creates a blank analysis suite for your project. Use this when you want to manually configure and populate a suite rather than having it automatically analyzed.
|
|
@@ -278,12 +291,10 @@ Dispatch agent for my latest suite's user story US001 and test case TC003
|
|
|
278
291
|
## Typical Workflow
|
|
279
292
|
|
|
280
293
|
1. **Start with a suite:**
|
|
281
|
-
|
|
282
294
|
- Use `wopee_fetch_analysis_suites` to see existing suites, OR
|
|
283
295
|
- Use `wopee_dispatch_analysis` to create a new suite
|
|
284
296
|
|
|
285
297
|
2. **Generate artifacts:**
|
|
286
|
-
|
|
287
298
|
- Generate app context: `wopee_generate_artifact` with `APP_CONTEXT` and specific `suiteUuid`
|
|
288
299
|
- Generate general user stories: `wopee_generate_artifact` with `GENERAL_USER_STORIES` and specific `suiteUuid`
|
|
289
300
|
- Generate user stories with test cases: `wopee_generate_artifact` with `USER_STORIES_WITH_TEST_CASES` and specific `suiteUuid`
|
|
@@ -292,7 +303,6 @@ Dispatch agent for my latest suite's user story US001 and test case TC003
|
|
|
292
303
|
- Generate test case steps: `wopee_generate_artifact` with `TEST_CASE_STEPS` and specific `suiteUuid`
|
|
293
304
|
|
|
294
305
|
3. **Fetch generated content:**
|
|
295
|
-
|
|
296
306
|
- Use the fetch tools to retrieve generated markdown/JSON files
|
|
297
307
|
|
|
298
308
|
4. **Run tests:**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getConfig } from "../../utils/getConfig.js";
|
|
2
|
-
export const createDispatchAnalysisInput = () => {
|
|
2
|
+
export const createDispatchAnalysisInput = (input) => {
|
|
3
3
|
const { WOPEE_PROJECT_UUID } = getConfig();
|
|
4
4
|
if (!WOPEE_PROJECT_UUID)
|
|
5
5
|
throw new Error("WOPEE_PROJECT_UUID is not set");
|
|
@@ -10,8 +10,10 @@ export const createDispatchAnalysisInput = () => {
|
|
|
10
10
|
username: null,
|
|
11
11
|
password: null,
|
|
12
12
|
cookiesPreference: null,
|
|
13
|
-
additionalInstructions: null,
|
|
14
|
-
additionalVariables:
|
|
13
|
+
additionalInstructions: input.additionalInstructions ?? null,
|
|
14
|
+
additionalVariables: input.additionalVariables?.length
|
|
15
|
+
? JSON.stringify(input.additionalVariables)
|
|
16
|
+
: null,
|
|
15
17
|
},
|
|
16
18
|
rerun: null,
|
|
17
19
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { _parseError } from "../shared/helpers.js";
|
|
2
|
-
import { DispatchAnalysisInputSchema } from "./schema.js";
|
|
2
|
+
import { DispatchAnalysisInputSchema, WopeeDispatchAnalysisInputSchema, } from "./schema.js";
|
|
3
3
|
import { createDispatchAnalysisInput } from "./factory.js";
|
|
4
4
|
import { DispatchAnalysis } from "../shared/gql-queries.js";
|
|
5
5
|
import { requestClient } from "../../utils/requestClient.js";
|
|
@@ -9,11 +9,12 @@ export const wopeeDispatchAnalysis = {
|
|
|
9
9
|
config: {
|
|
10
10
|
title: "Dispatch analysis",
|
|
11
11
|
description: "Create and dispatch analysis/crawling suite for a project",
|
|
12
|
+
inputSchema: WopeeDispatchAnalysisInputSchema.shape,
|
|
12
13
|
},
|
|
13
|
-
handler: async () => {
|
|
14
|
+
handler: async (input) => {
|
|
14
15
|
try {
|
|
15
|
-
const
|
|
16
|
-
const parsedInput = DispatchAnalysisInputSchema.parse(
|
|
16
|
+
const rawInput = createDispatchAnalysisInput(input);
|
|
17
|
+
const parsedInput = DispatchAnalysisInputSchema.parse(rawInput);
|
|
17
18
|
const result = await requestClient(DispatchAnalysis, {
|
|
18
19
|
input: parsedInput,
|
|
19
20
|
});
|
|
@@ -15,3 +15,23 @@ export const DispatchAnalysisInputSchema = z.object({
|
|
|
15
15
|
suiteAnalysisConfig: SuiteAnalysisConfigSchema,
|
|
16
16
|
rerun: RerunOptionsSchema.nullable().default(null),
|
|
17
17
|
});
|
|
18
|
+
const AdditionalVariableSchema = z.object({
|
|
19
|
+
key: z
|
|
20
|
+
.string({
|
|
21
|
+
description: "Variable name. Must be uppercase with underscores only (e.g. MY_VAR, BASE_URL).",
|
|
22
|
+
})
|
|
23
|
+
.regex(/^[A-Z_][A-Z0-9_]*$/, "Key must be uppercase alphanumeric with underscores, starting with a letter or underscore"),
|
|
24
|
+
value: z
|
|
25
|
+
.string({ description: "Variable value. Must be a non-empty string." })
|
|
26
|
+
.min(1, "Value must be a non-empty string"),
|
|
27
|
+
});
|
|
28
|
+
export const WopeeDispatchAnalysisInputSchema = z.object({
|
|
29
|
+
additionalInstructions: z
|
|
30
|
+
.string({ description: "Additional instructions for the agent" })
|
|
31
|
+
.nullish(),
|
|
32
|
+
additionalVariables: z
|
|
33
|
+
.array(AdditionalVariableSchema, {
|
|
34
|
+
description: "Additional environment variables for the analysis. Each variable needs a key (uppercase, e.g. BASE_URL) and a non-empty value.",
|
|
35
|
+
})
|
|
36
|
+
.nullish(),
|
|
37
|
+
});
|