retestkit 1.10.0 → 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +59 -38
  2. package/dist/prompts/index.d.ts.map +1 -1
  3. package/dist/prompts/index.js +140 -169
  4. package/dist/prompts/index.js.map +1 -1
  5. package/dist/prompts/templates/mcp/retest-crawl.md +1 -1
  6. package/dist/prompts/templates/mcp/retest-describe.md +1 -1
  7. package/dist/prompts/templates/mcp/retest-discover-flows.md +1 -1
  8. package/dist/prompts/templates/mcp/retest-discover.md +2 -3
  9. package/dist/prompts/templates/mcp/retest-generate-tests.md +1 -1
  10. package/dist/prompts/templates/mcp/retest-summarize.md +1 -1
  11. package/dist/prompts/templates/mcp/retest-workflow.md +2 -2
  12. package/dist/server.d.ts.map +1 -1
  13. package/dist/server.js +7 -9
  14. package/dist/server.js.map +1 -1
  15. package/dist/setup/templates/claude-code.d.ts.map +1 -1
  16. package/dist/setup/templates/claude-code.js +4 -6
  17. package/dist/setup/templates/claude-code.js.map +1 -1
  18. package/dist/setup/templates/cline-roo.d.ts.map +1 -1
  19. package/dist/setup/templates/cline-roo.js +8 -12
  20. package/dist/setup/templates/cline-roo.js.map +1 -1
  21. package/dist/setup/templates/core-prompt.d.ts +3 -4
  22. package/dist/setup/templates/core-prompt.d.ts.map +1 -1
  23. package/dist/setup/templates/core-prompt.js +8 -11
  24. package/dist/setup/templates/core-prompt.js.map +1 -1
  25. package/dist/setup/templates/cursor.d.ts.map +1 -1
  26. package/dist/setup/templates/cursor.js +4 -6
  27. package/dist/setup/templates/cursor.js.map +1 -1
  28. package/dist/setup/templates/gemini-cli.d.ts.map +1 -1
  29. package/dist/setup/templates/gemini-cli.js +6 -8
  30. package/dist/setup/templates/gemini-cli.js.map +1 -1
  31. package/dist/setup/templates/universal.d.ts.map +1 -1
  32. package/dist/setup/templates/universal.js +9 -12
  33. package/dist/setup/templates/universal.js.map +1 -1
  34. package/dist/setup/templates/vscode-copilot.d.ts.map +1 -1
  35. package/dist/setup/templates/vscode-copilot.js +6 -8
  36. package/dist/setup/templates/vscode-copilot.js.map +1 -1
  37. package/dist/tools/retest/crawl.js +3 -3
  38. package/dist/tools/retest/crawl.js.map +1 -1
  39. package/dist/tools/retest/describe.d.ts +1 -2
  40. package/dist/tools/retest/describe.d.ts.map +1 -1
  41. package/dist/tools/retest/describe.js +1 -3
  42. package/dist/tools/retest/describe.js.map +1 -1
  43. package/dist/tools/retest/generate-tests.js +2 -2
  44. package/dist/tools/retest/generate-tests.js.map +1 -1
  45. package/dist/tools/retest/index.d.ts +1 -3
  46. package/dist/tools/retest/index.d.ts.map +1 -1
  47. package/dist/tools/retest/index.js +1 -4
  48. package/dist/tools/retest/index.js.map +1 -1
  49. package/dist/tools/retest/plan.js +1 -1
  50. package/dist/tools/retest/plan.js.map +1 -1
  51. package/dist/tools/retest/run-plan.js +1 -1
  52. package/dist/tools/retest/run-plan.js.map +1 -1
  53. package/dist/tools/retest/run-test-case.js +1 -1
  54. package/dist/tools/retest/run-test-case.js.map +1 -1
  55. package/dist/tools/retest/summarize.js +2 -2
  56. package/dist/tools/retest/summarize.js.map +1 -1
  57. package/dist/tools/retest/{update-tests.d.ts → update.d.ts} +2 -2
  58. package/dist/tools/retest/update.d.ts.map +1 -0
  59. package/dist/tools/retest/{update-tests.js → update.js} +4 -4
  60. package/dist/tools/retest/update.js.map +1 -0
  61. package/dist/workspace/types.d.ts +2 -2
  62. package/dist/workspace/types.d.ts.map +1 -1
  63. package/package.json +8 -5
  64. package/dist/prompts/templates/mcp/retest-full-workflow.md +0 -12
  65. package/dist/tools/retest/discover-features.d.ts +0 -30
  66. package/dist/tools/retest/discover-features.d.ts.map +0 -1
  67. package/dist/tools/retest/discover-features.js +0 -343
  68. package/dist/tools/retest/discover-features.js.map +0 -1
  69. package/dist/tools/retest/discover-flows.d.ts +0 -29
  70. package/dist/tools/retest/discover-flows.d.ts.map +0 -1
  71. package/dist/tools/retest/discover-flows.js +0 -341
  72. package/dist/tools/retest/discover-flows.js.map +0 -1
  73. package/dist/tools/retest/update-tests.d.ts.map +0 -1
  74. package/dist/tools/retest/update-tests.js.map +0 -1
package/README.md CHANGED
@@ -40,6 +40,41 @@ npm install
40
40
  npm run build
41
41
  ```
42
42
 
43
+ ## Testing
44
+
45
+ The project includes multiple test tiers:
46
+
47
+ ```bash
48
+ # Unit tests (fast, uses mocks)
49
+ npm test
50
+
51
+ # Integration tests (MCP protocol, mock Playwright)
52
+ npm run test:integration
53
+
54
+ # E2E tests (real browser, real external sites)
55
+ npm run test:e2e
56
+ ```
57
+
58
+ ### E2E Testing
59
+
60
+ E2E tests exercise complete workflows with real Playwright MCP against external test sites (demo.playwright.dev/todomvc). They validate:
61
+
62
+ - **Init + Cover workflow**: Shortcut setup, workspace creation, crawl → describe → generate
63
+ - **Retest workflow**: Plan → run → summarize cycle
64
+ - **Error handling**: Budget limits, domain security, input validation
65
+
66
+ **Requirements for E2E tests:**
67
+ - Node.js 22+
68
+ - Network access to demo.playwright.dev
69
+ - Playwright browsers (installed automatically via @playwright/mcp)
70
+
71
+ **Run E2E tests:**
72
+ ```bash
73
+ npm run test:e2e
74
+ ```
75
+
76
+ E2E tests have extended timeouts (5 minutes per test) and run serially to avoid resource contention. They create isolated temporary workspaces that are cleaned up after each test.
77
+
43
78
  ## Configuration
44
79
 
45
80
  Configuration is done via environment variables:
@@ -81,7 +116,7 @@ Initialize a new web testing analysis workspace.
81
116
 
82
117
  **Output:** `analysisId` (e.g., `2025-01-15_10-30`), `workspacePath`
83
118
 
84
- ### `retest_crawl_app`
119
+ ### `retest_crawl`
85
120
 
86
121
  Perform goal-directed crawling of a web application.
87
122
 
@@ -107,15 +142,16 @@ Perform goal-directed crawling of a web application.
107
142
 
108
143
  **Output:** `crawlId` (e.g., `2025-01-15_10-30-45`), `crawlPath`, page artifacts
109
144
 
110
- ### `retest_discover_features`
145
+ ### `retest_describe`
111
146
 
112
- Discover application features and modules from crawl data.
147
+ Discover application features, modules, and user flows from crawl data.
113
148
 
114
149
  **Input:**
115
150
  ```json
116
151
  {
117
152
  "analysisId": "2025-01-15_10-30",
118
- "crawlId": "2025-01-15_10-30-45"
153
+ "crawlId": "2025-01-15_10-30-45",
154
+ "discoverFlows": true
119
155
  }
120
156
  ```
121
157
 
@@ -123,25 +159,10 @@ Discover application features and modules from crawl data.
123
159
  - Application purpose and type
124
160
  - Discovered features with descriptions
125
161
  - Entities and entry points per feature
162
+ - User flows within each feature
126
163
  - Security and accessibility observations
127
164
 
128
- ### `retest_discover_flows`
129
-
130
- Discover user flows within a specific feature.
131
-
132
- **Input:**
133
- ```json
134
- {
135
- "analysisId": "2025-01-15_10-30",
136
- "featureSlug": "checkout"
137
- }
138
- ```
139
-
140
- **Output:** `flowsUri`, `flowsFilePath` containing:
141
- - User flows with steps
142
- - Entry points and suggested assertions
143
-
144
- ### `retest_generate_tests`
165
+ ### `retest_generate`
145
166
 
146
167
  Generate test cases from application analysis.
147
168
 
@@ -242,12 +263,16 @@ Legacy UUID-format IDs are still supported for backwards compatibility.
242
263
 
243
264
  The server provides prompts for guided workflows:
244
265
 
245
- - **retest:init** - Initialize a new analysis
246
- - **retest:crawl** - Start or continue crawling
247
- - **retest:discover** - Discover features and flows
248
- - **retest:generate** - Generate test cases
249
- - **retest:run** - Execute a test case
250
- - **retest** - Complete end-to-end workflow
266
+ - **cover** - Expand test coverage by crawling, describing, and generating tests
267
+ - **crawl** - Start or continue crawling
268
+ - **describe** - Discover features and flows (unified discovery)
269
+ - **discover** - Discover features, or flows for a specific feature
270
+ - **generate** - Generate test cases
271
+ - **init** - Initialize a new analysis or set up shortcuts
272
+ - **kit** - Complete testing workflow (plan, run, summarize, update)
273
+ - **plan** - Create a test plan based on changes
274
+ - **run** - Execute a test case
275
+ - **summarize** - Generate test result summary with suggestions
251
276
 
252
277
  ## Example Workflow
253
278
 
@@ -257,22 +282,18 @@ The server provides prompts for guided workflows:
257
282
  → Returns analysisId
258
283
 
259
284
  2. Crawl the application:
260
- retest_crawl_app({ analysisId, goal: "Explore product catalog and checkout" })
285
+ retest_crawl({ analysisId, goal: "Explore product catalog and checkout" })
261
286
  → Returns crawlId, artifacts
262
287
 
263
- 3. Discover features:
264
- retest_discover_features({ analysisId, crawlId })
265
- → Returns discovered features
266
-
267
- 4. Discover flows for a feature:
268
- retest_discover_flows({ analysisId, featureSlug: "checkout" })
269
- → Returns user flows
288
+ 3. Describe features and flows:
289
+ retest_describe({ analysisId, crawlId, discoverFlows: true })
290
+ → Returns discovered features and flows
270
291
 
271
- 5. Generate test cases:
272
- retest_generate_tests({ analysisId })
292
+ 4. Generate test cases:
293
+ retest_generate({ analysisId })
273
294
  → Returns test cases
274
295
 
275
- 6. Run tests:
296
+ 5. Run tests:
276
297
  retest_run_test({ analysisId, testCaseId })
277
298
  → Returns test results with evidence
278
299
  ```
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAkBzD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QACvD,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAC3B,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACzC,CAAC,CAAC,CAAC;CACL;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,aAAa,GAC9B,SAAS,EAAE,CAuab"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAiBzD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QACvD,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAC3B,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACzC,CAAC,CAAC,CAAC;CACL;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,aAAa,GAC9B,SAAS,EAAE,CAwYb"}
@@ -1,80 +1,48 @@
1
1
  import { loadTemplate, interpolate } from "./loader.js";
2
- // Load templates once at module initialization
3
- const retestStartTemplate = loadTemplate("mcp", "retest-start");
2
+ // Load templates once at module initialization (alphabetically ordered)
3
+ const retestCoverTemplate = loadTemplate("mcp", "retest-cover");
4
4
  const retestCrawlTemplate = loadTemplate("mcp", "retest-crawl");
5
+ const retestDescribeTemplate = loadTemplate("mcp", "retest-describe");
5
6
  const retestDiscoverTemplate = loadTemplate("mcp", "retest-discover");
6
7
  const retestDiscoverFlowsTemplate = loadTemplate("mcp", "retest-discover-flows");
7
8
  const retestGenerateTestsTemplate = loadTemplate("mcp", "retest-generate-tests");
9
+ const retestPlanTemplate = loadTemplate("mcp", "retest-plan");
8
10
  const retestRunTestTemplate = loadTemplate("mcp", "retest-run-test");
9
- const retestFullWorkflowTemplate = loadTemplate("mcp", "retest-full-workflow");
10
11
  const retestSetupTemplate = loadTemplate("mcp", "retest-setup");
11
- const retestWorkflowTemplate = loadTemplate("mcp", "retest-workflow");
12
- const retestCoverTemplate = loadTemplate("mcp", "retest-cover");
13
- const retestDescribeTemplate = loadTemplate("mcp", "retest-describe");
14
- const retestPlanTemplate = loadTemplate("mcp", "retest-plan");
12
+ const retestStartTemplate = loadTemplate("mcp", "retest-start");
15
13
  const retestSummarizeTemplate = loadTemplate("mcp", "retest-summarize");
14
+ const retestWorkflowTemplate = loadTemplate("mcp", "retest-workflow");
16
15
  export function createRetestPrompts(getContext) {
16
+ // Prompts are alphabetically ordered by name:
17
+ // cover, crawl, describe, discover, generate, init, kit, plan, run, summarize
17
18
  return [
18
19
  {
19
- name: "init",
20
- description: "Initialize retest. With URL: creates analysis workspace for testing. Without URL: sets up /retest shortcuts for your AI coding agent.",
20
+ name: "cover",
21
+ description: "Expand test coverage by crawling, describing, and generating tests for a flow.",
21
22
  arguments: [
22
23
  {
23
- name: "url",
24
- description: "The URL of the web application to test. If omitted, runs shortcut setup instead.",
25
- required: false,
26
- },
27
- {
28
- name: "focus",
29
- description: "Optional focus area for analysis (e.g., 'checkout flow', 'user registration')",
30
- required: false,
31
- },
32
- {
33
- name: "agent",
34
- description: 'For setup mode: Agent selection ("auto", "all", or specific agent ID)',
35
- required: false,
36
- },
37
- {
38
- name: "scope",
39
- description: 'For setup mode: Installation scope ("workspace", "user", or "both")',
40
- required: false,
24
+ name: "analysisId",
25
+ description: "The ID of the analysis workspace",
26
+ required: true,
41
27
  },
42
28
  {
43
- name: "dryRun",
44
- description: "For setup mode: Preview actions without writing files (true/false)",
45
- required: false,
29
+ name: "flowFocus",
30
+ description: "Focus area for coverage (e.g., 'checkout flow', 'user registration')",
31
+ required: true,
46
32
  },
47
33
  ],
48
34
  async getMessages(args) {
49
- const url = args.url;
50
- if (url) {
51
- // Analysis workspace mode
52
- const focus = args.focus ? `\nFocus area: ${args.focus}` : "";
53
- return [
54
- {
55
- role: "user",
56
- content: {
57
- type: "text",
58
- text: interpolate(retestStartTemplate, { url, focus }),
59
- },
60
- },
61
- ];
62
- }
63
- else {
64
- // Shortcut setup mode
65
- const agent = args.agent || "auto";
66
- const scope = args.scope || "workspace";
67
- const dryRun = args.dryRun === "true" ? "true" : "false";
68
- return [
69
- {
70
- role: "user",
71
- content: {
72
- type: "text",
73
- text: interpolate(retestSetupTemplate, { agent, scope, dryRun }),
74
- },
35
+ const analysisId = args.analysisId || "[analysisId]";
36
+ const flowFocus = args.flowFocus || "main functionality";
37
+ return [
38
+ {
39
+ role: "user",
40
+ content: {
41
+ type: "text",
42
+ text: interpolate(retestCoverTemplate, { analysisId, flowFocus }),
75
43
  },
76
- ];
77
- }
44
+ },
45
+ ];
78
46
  },
79
47
  },
80
48
  {
@@ -112,6 +80,29 @@ export function createRetestPrompts(getContext) {
112
80
  ];
113
81
  },
114
82
  },
83
+ {
84
+ name: "describe",
85
+ description: "Discover features and user flows from crawl data (unified discovery).",
86
+ arguments: [
87
+ {
88
+ name: "analysisId",
89
+ description: "The ID of the analysis workspace",
90
+ required: true,
91
+ },
92
+ ],
93
+ async getMessages(args) {
94
+ const analysisId = args.analysisId || "[analysisId]";
95
+ return [
96
+ {
97
+ role: "user",
98
+ content: {
99
+ type: "text",
100
+ text: interpolate(retestDescribeTemplate, { analysisId }),
101
+ },
102
+ },
103
+ ];
104
+ },
105
+ },
115
106
  {
116
107
  name: "discover",
117
108
  description: "Discover features and flows in a web application based on crawl data.",
@@ -184,81 +175,113 @@ export function createRetestPrompts(getContext) {
184
175
  },
185
176
  },
186
177
  {
187
- name: "run",
188
- description: "Run a specific test case against the web application.",
178
+ name: "init",
179
+ description: "Initialize retest. With URL: creates analysis workspace for testing. Without URL: sets up /retest shortcuts for your AI coding agent.",
189
180
  arguments: [
190
181
  {
191
- name: "analysisId",
192
- description: "The ID of the analysis workspace",
193
- required: true,
182
+ name: "url",
183
+ description: "The URL of the web application to test. If omitted, runs shortcut setup instead.",
184
+ required: false,
194
185
  },
195
186
  {
196
- name: "testCaseId",
197
- description: "The ID of the test case to run",
198
- required: true,
187
+ name: "focus",
188
+ description: "Optional focus area for analysis (e.g., 'checkout flow', 'user registration')",
189
+ required: false,
199
190
  },
200
- ],
201
- async getMessages(args) {
202
- const analysisId = args.analysisId || "[analysisId]";
203
- const testCaseId = args.testCaseId || "[testCaseId]";
204
- return [
205
- {
206
- role: "user",
207
- content: {
208
- type: "text",
209
- text: interpolate(retestRunTestTemplate, { analysisId, testCaseId }),
210
- },
211
- },
212
- ];
213
- },
214
- },
215
- {
216
- name: "cover",
217
- description: "Expand test coverage by crawling, describing, and generating tests for a flow.",
218
- arguments: [
219
191
  {
220
- name: "analysisId",
221
- description: "The ID of the analysis workspace",
222
- required: true,
192
+ name: "agent",
193
+ description: 'For setup mode: Agent selection ("auto", "all", or specific agent ID)',
194
+ required: false,
223
195
  },
224
196
  {
225
- name: "flowFocus",
226
- description: "Focus area for coverage (e.g., 'checkout flow', 'user registration')",
227
- required: true,
197
+ name: "scope",
198
+ description: 'For setup mode: Installation scope ("workspace", "user", or "both")',
199
+ required: false,
200
+ },
201
+ {
202
+ name: "dryRun",
203
+ description: "For setup mode: Preview actions without writing files (true/false)",
204
+ required: false,
228
205
  },
229
206
  ],
230
207
  async getMessages(args) {
231
- const analysisId = args.analysisId || "[analysisId]";
232
- const flowFocus = args.flowFocus || "main functionality";
233
- return [
234
- {
235
- role: "user",
236
- content: {
237
- type: "text",
238
- text: interpolate(retestCoverTemplate, { analysisId, flowFocus }),
208
+ const url = args.url;
209
+ if (url) {
210
+ // Analysis workspace mode
211
+ const focus = args.focus ? `\nFocus area: ${args.focus}` : "";
212
+ return [
213
+ {
214
+ role: "user",
215
+ content: {
216
+ type: "text",
217
+ text: interpolate(retestStartTemplate, { url, focus }),
218
+ },
239
219
  },
240
- },
241
- ];
220
+ ];
221
+ }
222
+ else {
223
+ // Shortcut setup mode
224
+ const agent = args.agent || "auto";
225
+ const scope = args.scope || "workspace";
226
+ const dryRun = args.dryRun === "true" ? "true" : "false";
227
+ return [
228
+ {
229
+ role: "user",
230
+ content: {
231
+ type: "text",
232
+ text: interpolate(retestSetupTemplate, { agent, scope, dryRun }),
233
+ },
234
+ },
235
+ ];
236
+ }
242
237
  },
243
238
  },
244
239
  {
245
- name: "describe",
246
- description: "Discover features and user flows from crawl data (unified discovery).",
240
+ name: "kit",
241
+ description: "Run the kit workflow after code changes: ask what changed, plan tests, run, summarize, and update.",
247
242
  arguments: [
248
243
  {
249
244
  name: "analysisId",
250
- description: "The ID of the analysis workspace",
245
+ description: "The ID of the analysis workspace (required)",
251
246
  required: true,
252
247
  },
248
+ {
249
+ name: "changeDescription",
250
+ description: "Optional: Pre-provided description of changes (skips Step 1)",
251
+ required: false,
252
+ },
253
253
  ],
254
254
  async getMessages(args) {
255
255
  const analysisId = args.analysisId || "[analysisId]";
256
+ // If changeDescription is provided, modify the prompt to skip Step 1
257
+ if (args.changeDescription) {
258
+ return [
259
+ {
260
+ role: "user",
261
+ content: {
262
+ type: "text",
263
+ text: `Run the kit workflow for analysis: ${analysisId}
264
+
265
+ Changes to test: ${args.changeDescription}
266
+
267
+ Skip Step 1 (asking what changed) and proceed directly to:
268
+
269
+ ## Step 2: Create Test Plan
270
+ Call \`retest_plan\` with:
271
+ - analysisId: "${analysisId}"
272
+ - changeDescription: "${args.changeDescription}"
273
+
274
+ Then continue with Steps 3-6 as described in the kit workflow.`,
275
+ },
276
+ },
277
+ ];
278
+ }
256
279
  return [
257
280
  {
258
281
  role: "user",
259
282
  content: {
260
283
  type: "text",
261
- text: interpolate(retestDescribeTemplate, { analysisId }),
284
+ text: interpolate(retestWorkflowTemplate, { analysisId }),
262
285
  },
263
286
  },
264
287
  ];
@@ -294,104 +317,52 @@ export function createRetestPrompts(getContext) {
294
317
  },
295
318
  },
296
319
  {
297
- name: "summarize",
298
- description: "Generate a summary report from test results with suggestions.",
320
+ name: "run",
321
+ description: "Run a specific test case against the web application.",
299
322
  arguments: [
300
323
  {
301
324
  name: "analysisId",
302
325
  description: "The ID of the analysis workspace",
303
326
  required: true,
304
327
  },
305
- ],
306
- async getMessages(args) {
307
- const analysisId = args.analysisId || "[analysisId]";
308
- return [
309
- {
310
- role: "user",
311
- content: {
312
- type: "text",
313
- text: interpolate(retestSummarizeTemplate, { analysisId }),
314
- },
315
- },
316
- ];
317
- },
318
- },
319
- {
320
- name: "retest",
321
- description: "Run the retest workflow after code changes: ask what changed, plan tests, run, summarize, and update.",
322
- arguments: [
323
328
  {
324
- name: "analysisId",
325
- description: "The ID of the analysis workspace (required)",
329
+ name: "testCaseId",
330
+ description: "The ID of the test case to run",
326
331
  required: true,
327
332
  },
328
- {
329
- name: "changeDescription",
330
- description: "Optional: Pre-provided description of changes (skips Step 1)",
331
- required: false,
332
- },
333
333
  ],
334
334
  async getMessages(args) {
335
335
  const analysisId = args.analysisId || "[analysisId]";
336
- // If changeDescription is provided, modify the prompt to skip Step 1
337
- if (args.changeDescription) {
338
- return [
339
- {
340
- role: "user",
341
- content: {
342
- type: "text",
343
- text: `Run the retest workflow for analysis: ${analysisId}
344
-
345
- Changes to test: ${args.changeDescription}
346
-
347
- Skip Step 1 (asking what changed) and proceed directly to:
348
-
349
- ## Step 2: Create Test Plan
350
- Call \`retest_plan\` with:
351
- - analysisId: "${analysisId}"
352
- - changeDescription: "${args.changeDescription}"
353
-
354
- Then continue with Steps 3-6 as described in the retest workflow.`,
355
- },
356
- },
357
- ];
358
- }
336
+ const testCaseId = args.testCaseId || "[testCaseId]";
359
337
  return [
360
338
  {
361
339
  role: "user",
362
340
  content: {
363
341
  type: "text",
364
- text: interpolate(retestWorkflowTemplate, { analysisId }),
342
+ text: interpolate(retestRunTestTemplate, { analysisId, testCaseId }),
365
343
  },
366
344
  },
367
345
  ];
368
346
  },
369
347
  },
370
- // Legacy prompt for backward compatibility
371
348
  {
372
- name: "full-workflow",
373
- description: "(Legacy) Run the complete web testing workflow from scratch. Consider using 'init' + 'retest' instead.",
349
+ name: "summarize",
350
+ description: "Generate a summary report from test results with suggestions.",
374
351
  arguments: [
375
352
  {
376
- name: "url",
377
- description: "The URL of the web application to test",
353
+ name: "analysisId",
354
+ description: "The ID of the analysis workspace",
378
355
  required: true,
379
356
  },
380
- {
381
- name: "focus",
382
- description: "Focus area for testing",
383
- required: false,
384
- },
385
357
  ],
386
358
  async getMessages(args) {
387
- const url = args.url || "[URL]";
388
- const focus = args.focus || "main functionality";
359
+ const analysisId = args.analysisId || "[analysisId]";
389
360
  return [
390
361
  {
391
362
  role: "user",
392
363
  content: {
393
364
  type: "text",
394
- text: interpolate(retestFullWorkflowTemplate, { url, focus }),
365
+ text: interpolate(retestSummarizeTemplate, { analysisId }),
395
366
  },
396
367
  },
397
368
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAExD,wEAAwE;AACxE,MAAM,mBAAmB,GAAG,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAChE,MAAM,mBAAmB,GAAG,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAChE,MAAM,sBAAsB,GAAG,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AACtE,MAAM,sBAAsB,GAAG,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AACtE,MAAM,2BAA2B,GAAG,YAAY,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AACjF,MAAM,2BAA2B,GAAG,YAAY,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AACjF,MAAM,kBAAkB,GAAG,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC9D,MAAM,qBAAqB,GAAG,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AACrE,MAAM,mBAAmB,GAAG,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAChE,MAAM,mBAAmB,GAAG,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAChE,MAAM,uBAAuB,GAAG,YAAY,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;AACxE,MAAM,sBAAsB,GAAG,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAgBtE,MAAM,UAAU,mBAAmB,CACjC,UAA+B;IAE/B,8CAA8C;IAC9C,8EAA8E;IAC9E,OAAO;QACL;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EACT,gFAAgF;YAClF,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,kCAAkC;oBAC/C,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,sEAAsE;oBACnF,QAAQ,EAAE,IAAI;iBACf;aACF;YACD,KAAK,CAAC,WAAW,CAAC,IAAI;gBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC;gBACrD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,oBAAoB,CAAC;gBAEzD,OAAO;oBACL;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,WAAW,CAAC,mBAAmB,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;yBAClE;qBACF;iBACF,CAAC;YACJ,CAAC;SACF;QAED;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EACT,uGAAuG;YACzG,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,kCAAkC;oBAC/C,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,WAAW,EAAE,sCAAsC;oBACnD,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,WAAW,EACT,iEAAiE;oBACnE,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,KAAK,CAAC,WAAW,CAAC,IAAI;gBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC;gBACrD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,gCAAgC,CAAC;gBAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC;gBAElD,OAAO;oBACL;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,WAAW,CAAC,mBAAmB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;yBACvE;qBACF;iBACF,CAAC;YACJ,CAAC;SACF;QAED;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EACT,uEAAuE;YACzE,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,kCAAkC;oBAC/C,QAAQ,EAAE,IAAI;iBACf;aACF;YACD,KAAK,CAAC,WAAW,CAAC,IAAI;gBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC;gBAErD,OAAO;oBACL;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,WAAW,CAAC,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC;yBAC1D;qBACF;iBACF,CAAC;YACJ,CAAC;SACF;QAED;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EACT,uEAAuE;YACzE,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,kCAAkC;oBAC/C,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,yDAAyD;oBACtE,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,KAAK,CAAC,WAAW,CAAC,IAAI;gBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC;gBACrD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;gBAErC,IAAI,WAAW,EAAE,CAAC;oBAChB,4DAA4D;oBAC5D,OAAO;wBACL;4BACE,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE;gCACP,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,WAAW,CAAC,2BAA2B,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;6BAC5E;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAED,sBAAsB;gBACtB,OAAO;oBACL;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,WAAW,CAAC,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC;yBAC1D;qBACF;iBACF,CAAC;YACJ,CAAC;SACF;QAED;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EACT,oDAAoD;YACtD,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,kCAAkC;oBAC/C,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,WAAW,EACT,yEAAyE;oBAC3E,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,KAAK,CAAC,WAAW,CAAC,IAAI;gBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC;gBACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC;gBAElD,OAAO;oBACL;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,WAAW,CAAC,2BAA2B,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;yBACzE;qBACF;iBACF,CAAC;YACJ,CAAC;SACF;QAED;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EACT,uIAAuI;YACzI,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,KAAK;oBACX,WAAW,EAAE,kFAAkF;oBAC/F,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,WAAW,EACT,+EAA+E;oBACjF,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,WAAW,EACT,uEAAuE;oBACzE,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,qEAAqE;oBAClF,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oEAAoE;oBACjF,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,KAAK,CAAC,WAAW,CAAC,IAAI;gBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBAErB,IAAI,GAAG,EAAE,CAAC;oBACR,0BAA0B;oBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9D,OAAO;wBACL;4BACE,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE;gCACP,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,WAAW,CAAC,mBAAmB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;6BACvD;yBACF;qBACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,sBAAsB;oBACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;oBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC;oBACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;oBAEzD,OAAO;wBACL;4BACE,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE;gCACP,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,WAAW,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;6BACjE;yBACF;qBACF,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;QAED;YACE,IAAI,EAAE,KAAK;YACX,WAAW,EACT,oGAAoG;YACtG,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,6CAA6C;oBAC1D,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,mBAAmB;oBACzB,WAAW,EAAE,8DAA8D;oBAC3E,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,KAAK,CAAC,WAAW,CAAC,IAAI;gBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC;gBAErD,qEAAqE;gBACrE,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC3B,OAAO;wBACL;4BACE,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE;gCACP,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,sCAAsC,UAAU;;mBAEnD,IAAI,CAAC,iBAAiB;;;;;;iBAMxB,UAAU;wBACH,IAAI,CAAC,iBAAiB;;+DAEiB;6BAChD;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAED,OAAO;oBACL;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,WAAW,CAAC,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC;yBAC1D;qBACF;iBACF,CAAC;YACJ,CAAC;SACF;QAED;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EACT,2CAA2C;YAC7C,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,kCAAkC;oBAC/C,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,mBAAmB;oBACzB,WAAW,EAAE,iEAAiE;oBAC9E,QAAQ,EAAE,IAAI;iBACf;aACF;YACD,KAAK,CAAC,WAAW,CAAC,IAAI;gBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC;gBACrD,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,qBAAqB,CAAC;gBAE1E,OAAO;oBACL;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,WAAW,CAAC,kBAAkB,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;yBACzE;qBACF;iBACF,CAAC;YACJ,CAAC;SACF;QAED;YACE,IAAI,EAAE,KAAK;YACX,WAAW,EACT,uDAAuD;YACzD,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,kCAAkC;oBAC/C,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,gCAAgC;oBAC7C,QAAQ,EAAE,IAAI;iBACf;aACF;YACD,KAAK,CAAC,WAAW,CAAC,IAAI;gBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC;gBACrD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC;gBAErD,OAAO;oBACL;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,WAAW,CAAC,qBAAqB,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;yBACrE;qBACF;iBACF,CAAC;YACJ,CAAC;SACF;QAED;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,+DAA+D;YACjE,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,kCAAkC;oBAC/C,QAAQ,EAAE,IAAI;iBACf;aACF;YACD,KAAK,CAAC,WAAW,CAAC,IAAI;gBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC;gBAErD,OAAO;oBACL;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,WAAW,CAAC,uBAAuB,EAAE,EAAE,UAAU,EAAE,CAAC;yBAC3D;qBACF;iBACF,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -4,4 +4,4 @@ Analysis ID: ${analysisId}
4
4
  Goal: ${goal}
5
5
  Strategy: ${strategy}
6
6
 
7
- Use retest_crawl_app to explore the application. Report progress and let me know if you encounter any obstacles (cookie banners, modals, authentication).
7
+ Use retest_crawl to explore the application. Report progress and let me know if you encounter any obstacles (cookie banners, modals, authentication).
@@ -7,7 +7,7 @@ Call `retest_describe` to perform unified discovery:
7
7
  - Lists entities, entry points, and step sequences
8
8
  - Notes security and accessibility observations
9
9
 
10
- This combines the previous discover_features and discover_flows steps into a single pass.
10
+ This performs unified discovery of features and flows in a single pass.
11
11
 
12
12
  Parameters:
13
13
  - analysisId: "${analysisId}"
@@ -3,7 +3,7 @@ Please discover user flows for the "${featureSlug}" feature.
3
3
  Analysis ID: ${analysisId}
4
4
  Feature: ${featureSlug}
5
5
 
6
- Use retest_discover_flows to identify user flows within this feature, including:
6
+ Use retest_describe with featureSlug to identify user flows within this feature, including:
7
7
  - User journeys and goals
8
8
  - Entry points and step sequences
9
9
  - Assertions that should hold