retestkit 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/agent-detection/index.d.ts +14 -0
  2. package/dist/agent-detection/index.d.ts.map +1 -0
  3. package/dist/agent-detection/index.js +166 -0
  4. package/dist/agent-detection/index.js.map +1 -0
  5. package/dist/agent-detection/mappings.d.ts +39 -0
  6. package/dist/agent-detection/mappings.d.ts.map +1 -0
  7. package/dist/agent-detection/mappings.js +150 -0
  8. package/dist/agent-detection/mappings.js.map +1 -0
  9. package/dist/lifecycle/index.d.ts +1 -1
  10. package/dist/lifecycle/index.d.ts.map +1 -1
  11. package/dist/lifecycle/index.js +5 -0
  12. package/dist/lifecycle/index.js.map +1 -1
  13. package/dist/prompts/index.d.ts.map +1 -1
  14. package/dist/prompts/index.js +36 -0
  15. package/dist/prompts/index.js.map +1 -1
  16. package/dist/prompts/templates/mcp/retest-setup.md +13 -0
  17. package/dist/server.d.ts.map +1 -1
  18. package/dist/server.js +2 -1
  19. package/dist/server.js.map +1 -1
  20. package/dist/setup/fs-safe.d.ts +47 -0
  21. package/dist/setup/fs-safe.d.ts.map +1 -0
  22. package/dist/setup/fs-safe.js +144 -0
  23. package/dist/setup/fs-safe.js.map +1 -0
  24. package/dist/setup/index.d.ts +46 -0
  25. package/dist/setup/index.d.ts.map +1 -0
  26. package/dist/setup/index.js +157 -0
  27. package/dist/setup/index.js.map +1 -0
  28. package/dist/setup/installers/claude-code.d.ts +11 -0
  29. package/dist/setup/installers/claude-code.d.ts.map +1 -0
  30. package/dist/setup/installers/claude-code.js +56 -0
  31. package/dist/setup/installers/claude-code.js.map +1 -0
  32. package/dist/setup/installers/cline-roo.d.ts +20 -0
  33. package/dist/setup/installers/cline-roo.d.ts.map +1 -0
  34. package/dist/setup/installers/cline-roo.js +101 -0
  35. package/dist/setup/installers/cline-roo.js.map +1 -0
  36. package/dist/setup/installers/cursor.d.ts +11 -0
  37. package/dist/setup/installers/cursor.d.ts.map +1 -0
  38. package/dist/setup/installers/cursor.js +51 -0
  39. package/dist/setup/installers/cursor.js.map +1 -0
  40. package/dist/setup/installers/gemini-cli.d.ts +11 -0
  41. package/dist/setup/installers/gemini-cli.d.ts.map +1 -0
  42. package/dist/setup/installers/gemini-cli.js +51 -0
  43. package/dist/setup/installers/gemini-cli.js.map +1 -0
  44. package/dist/setup/installers/index.d.ts +22 -0
  45. package/dist/setup/installers/index.d.ts.map +1 -0
  46. package/dist/setup/installers/index.js +43 -0
  47. package/dist/setup/installers/index.js.map +1 -0
  48. package/dist/setup/installers/types.d.ts +46 -0
  49. package/dist/setup/installers/types.d.ts.map +1 -0
  50. package/dist/setup/installers/types.js +20 -0
  51. package/dist/setup/installers/types.js.map +1 -0
  52. package/dist/setup/installers/universal.d.ts +17 -0
  53. package/dist/setup/installers/universal.d.ts.map +1 -0
  54. package/dist/setup/installers/universal.js +104 -0
  55. package/dist/setup/installers/universal.js.map +1 -0
  56. package/dist/setup/installers/vscode-copilot.d.ts +11 -0
  57. package/dist/setup/installers/vscode-copilot.d.ts.map +1 -0
  58. package/dist/setup/installers/vscode-copilot.js +51 -0
  59. package/dist/setup/installers/vscode-copilot.js.map +1 -0
  60. package/dist/setup/merge-policy.d.ts +38 -0
  61. package/dist/setup/merge-policy.d.ts.map +1 -0
  62. package/dist/setup/merge-policy.js +102 -0
  63. package/dist/setup/merge-policy.js.map +1 -0
  64. package/dist/setup/templates/claude-code.d.ts +10 -0
  65. package/dist/setup/templates/claude-code.d.ts.map +1 -0
  66. package/dist/setup/templates/claude-code.js +44 -0
  67. package/dist/setup/templates/claude-code.js.map +1 -0
  68. package/dist/setup/templates/cline-roo.d.ts +18 -0
  69. package/dist/setup/templates/cline-roo.d.ts.map +1 -0
  70. package/dist/setup/templates/cline-roo.js +79 -0
  71. package/dist/setup/templates/cline-roo.js.map +1 -0
  72. package/dist/setup/templates/core-prompt.d.ts +27 -0
  73. package/dist/setup/templates/core-prompt.d.ts.map +1 -0
  74. package/dist/setup/templates/core-prompt.js +53 -0
  75. package/dist/setup/templates/core-prompt.js.map +1 -0
  76. package/dist/setup/templates/cursor.d.ts +10 -0
  77. package/dist/setup/templates/cursor.d.ts.map +1 -0
  78. package/dist/setup/templates/cursor.js +49 -0
  79. package/dist/setup/templates/cursor.js.map +1 -0
  80. package/dist/setup/templates/gemini-cli.d.ts +10 -0
  81. package/dist/setup/templates/gemini-cli.d.ts.map +1 -0
  82. package/dist/setup/templates/gemini-cli.js +44 -0
  83. package/dist/setup/templates/gemini-cli.js.map +1 -0
  84. package/dist/setup/templates/index.d.ts +9 -0
  85. package/dist/setup/templates/index.d.ts.map +1 -0
  86. package/dist/setup/templates/index.js +8 -0
  87. package/dist/setup/templates/index.js.map +1 -0
  88. package/dist/setup/templates/universal.d.ts +19 -0
  89. package/dist/setup/templates/universal.d.ts.map +1 -0
  90. package/dist/setup/templates/universal.js +145 -0
  91. package/dist/setup/templates/universal.js.map +1 -0
  92. package/dist/setup/templates/vscode-copilot.d.ts +10 -0
  93. package/dist/setup/templates/vscode-copilot.d.ts.map +1 -0
  94. package/dist/setup/templates/vscode-copilot.js +46 -0
  95. package/dist/setup/templates/vscode-copilot.js.map +1 -0
  96. package/dist/tools/retest/index.d.ts +1 -0
  97. package/dist/tools/retest/index.d.ts.map +1 -1
  98. package/dist/tools/retest/index.js +1 -0
  99. package/dist/tools/retest/index.js.map +1 -1
  100. package/dist/tools/retest/setup.d.ts +38 -0
  101. package/dist/tools/retest/setup.d.ts.map +1 -0
  102. package/dist/tools/retest/setup.js +126 -0
  103. package/dist/tools/retest/setup.js.map +1 -0
  104. package/dist/types/agent.d.ts +134 -0
  105. package/dist/types/agent.d.ts.map +1 -0
  106. package/dist/types/agent.js +2 -0
  107. package/dist/types/agent.js.map +1 -0
  108. package/dist/types/capabilities.d.ts +5 -0
  109. package/dist/types/capabilities.d.ts.map +1 -1
  110. package/dist/types/capabilities.js.map +1 -1
  111. package/package.json +1 -1
@@ -0,0 +1,14 @@
1
+ import type { AgentFamily, DetectionContext, DetectionResult } from "../types/agent.js";
2
+ /**
3
+ * Detect the AI coding agent from available signals.
4
+ *
5
+ * @param context Detection context with clientInfo, workspaceDir, and env
6
+ * @returns Detection result with primary agent, confidence, and signals
7
+ */
8
+ export declare function detectAgent(context: DetectionContext): DetectionResult;
9
+ /**
10
+ * Check if a specific agent is likely present based on detection.
11
+ */
12
+ export declare function isAgentLikely(result: DetectionResult, agent: AgentFamily, minConfidence?: number): boolean;
13
+ export { AGENT_METADATA } from "./mappings.js";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent-detection/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,eAAe,EAGhB,MAAM,mBAAmB,CAAC;AAuJ3B;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CA4BtE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,WAAW,EAClB,aAAa,GAAE,MAAY,GAC1B,OAAO,CAaT;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,166 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { CLIENT_INFO_PATTERNS, WORKSPACE_FINGERPRINTS, ENV_PATTERNS, } from "./mappings.js";
4
+ /**
5
+ * Detect agent from MCP client info.
6
+ */
7
+ function detectFromClientInfo(clientInfo) {
8
+ if (!clientInfo?.name) {
9
+ return [];
10
+ }
11
+ const signals = [];
12
+ const nameLower = clientInfo.name.toLowerCase();
13
+ for (const mapping of CLIENT_INFO_PATTERNS) {
14
+ if (nameLower.includes(mapping.pattern.toLowerCase())) {
15
+ signals.push({
16
+ kind: "mcpClientInfo",
17
+ key: "name",
18
+ value: clientInfo.name,
19
+ weight: mapping.weight,
20
+ agent: mapping.agent,
21
+ });
22
+ }
23
+ }
24
+ return signals;
25
+ }
26
+ /**
27
+ * Detect agent from workspace fingerprints.
28
+ */
29
+ function detectFromWorkspace(workspaceDir) {
30
+ const signals = [];
31
+ for (const fingerprint of WORKSPACE_FINGERPRINTS) {
32
+ const fullPath = path.join(workspaceDir, fingerprint.path);
33
+ try {
34
+ const stat = fs.statSync(fullPath);
35
+ const exists = fingerprint.type === "dir" ? stat.isDirectory() : stat.isFile();
36
+ if (exists) {
37
+ signals.push({
38
+ kind: "workspaceFile",
39
+ key: fingerprint.path,
40
+ value: "present",
41
+ weight: fingerprint.weight,
42
+ agent: fingerprint.agent,
43
+ });
44
+ }
45
+ }
46
+ catch {
47
+ // File/dir doesn't exist, skip
48
+ }
49
+ }
50
+ return signals;
51
+ }
52
+ /**
53
+ * Detect agent from environment variables.
54
+ */
55
+ function detectFromEnv(env) {
56
+ if (!env) {
57
+ return [];
58
+ }
59
+ const signals = [];
60
+ for (const mapping of ENV_PATTERNS) {
61
+ const value = env[mapping.variable];
62
+ if (value !== undefined) {
63
+ // If pattern is specified, check if value matches
64
+ if (mapping.pattern) {
65
+ if (value.toLowerCase().includes(mapping.pattern.toLowerCase())) {
66
+ signals.push({
67
+ kind: "env",
68
+ key: mapping.variable,
69
+ value: value,
70
+ weight: mapping.weight,
71
+ agent: mapping.agent,
72
+ });
73
+ }
74
+ }
75
+ else {
76
+ // Just presence of the variable is enough
77
+ signals.push({
78
+ kind: "env",
79
+ key: mapping.variable,
80
+ value: value,
81
+ weight: mapping.weight,
82
+ agent: mapping.agent,
83
+ });
84
+ }
85
+ }
86
+ }
87
+ return signals;
88
+ }
89
+ /**
90
+ * Compute scores per agent from signals.
91
+ */
92
+ function computeScores(signals) {
93
+ const scores = new Map();
94
+ for (const signal of signals) {
95
+ const current = scores.get(signal.agent) || 0;
96
+ scores.set(signal.agent, current + signal.weight);
97
+ }
98
+ return scores;
99
+ }
100
+ /**
101
+ * Compute confidence from scores.
102
+ */
103
+ function computeConfidence(ranked) {
104
+ if (ranked.length === 0) {
105
+ return 0;
106
+ }
107
+ const topScore = ranked[0].score;
108
+ const secondScore = ranked.length > 1 ? ranked[1].score : 0;
109
+ const totalScore = ranked.reduce((sum, r) => sum + r.score, 0);
110
+ if (totalScore === 0) {
111
+ return 0;
112
+ }
113
+ // Confidence based on ratio of top score to total and gap to second
114
+ const ratioConfidence = topScore / totalScore;
115
+ const gapConfidence = secondScore > 0 ? (topScore - secondScore) / topScore : 1;
116
+ // Weighted average
117
+ const confidence = ratioConfidence * 0.6 + gapConfidence * 0.4;
118
+ // Clamp to 0-1
119
+ return Math.min(1, Math.max(0, confidence));
120
+ }
121
+ /**
122
+ * Detect the AI coding agent from available signals.
123
+ *
124
+ * @param context Detection context with clientInfo, workspaceDir, and env
125
+ * @returns Detection result with primary agent, confidence, and signals
126
+ */
127
+ export function detectAgent(context) {
128
+ const allSignals = [];
129
+ // Collect signals from all sources
130
+ allSignals.push(...detectFromClientInfo(context.clientInfo));
131
+ allSignals.push(...detectFromWorkspace(context.workspaceDir));
132
+ allSignals.push(...detectFromEnv(context.env));
133
+ // Compute scores
134
+ const scores = computeScores(allSignals);
135
+ // Convert to ranked array
136
+ const ranked = Array.from(scores.entries())
137
+ .map(([agent, score]) => ({ agent, score }))
138
+ .sort((a, b) => b.score - a.score);
139
+ // Determine primary agent
140
+ const primary = ranked.length > 0 ? ranked[0].agent : "unknown";
141
+ // Compute confidence
142
+ const confidence = computeConfidence(ranked);
143
+ return {
144
+ primary,
145
+ confidence,
146
+ ranked,
147
+ signals: allSignals,
148
+ };
149
+ }
150
+ /**
151
+ * Check if a specific agent is likely present based on detection.
152
+ */
153
+ export function isAgentLikely(result, agent, minConfidence = 0.3) {
154
+ // If this is the primary agent, require minimum confidence
155
+ if (result.primary === agent) {
156
+ return result.confidence >= minConfidence;
157
+ }
158
+ // For non-primary agents, check if they appear in ranked with reasonable score
159
+ const rankedAgent = result.ranked.find((r) => r.agent === agent);
160
+ if (rankedAgent && rankedAgent.score > 0) {
161
+ return true;
162
+ }
163
+ return false;
164
+ }
165
+ export { AGENT_METADATA } from "./mappings.js";
166
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-detection/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { AgentFamily, AgentTier } from "../types/agent.js";
2
+ /**
3
+ * Mapping of MCP clientInfo.name patterns to agent families.
4
+ * Patterns are matched case-insensitively using includes().
5
+ */
6
+ export declare const CLIENT_INFO_PATTERNS: Array<{
7
+ pattern: string;
8
+ agent: AgentFamily;
9
+ weight: number;
10
+ }>;
11
+ /**
12
+ * Workspace fingerprint patterns for agent detection.
13
+ * These are paths relative to workspace root that indicate an agent.
14
+ */
15
+ export declare const WORKSPACE_FINGERPRINTS: Array<{
16
+ path: string;
17
+ type: "dir" | "file";
18
+ agent: AgentFamily;
19
+ weight: number;
20
+ }>;
21
+ /**
22
+ * Environment variable patterns for agent detection.
23
+ */
24
+ export declare const ENV_PATTERNS: Array<{
25
+ variable: string;
26
+ pattern?: string;
27
+ agent: AgentFamily;
28
+ weight: number;
29
+ }>;
30
+ /**
31
+ * Agent tier classification and metadata.
32
+ */
33
+ export declare const AGENT_METADATA: Record<AgentFamily, {
34
+ tier: AgentTier;
35
+ displayName: string;
36
+ shortcutPath?: string;
37
+ rulesPath?: string;
38
+ }>;
39
+ //# sourceMappingURL=mappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappings.d.ts","sourceRoot":"","sources":["../../src/agent-detection/mappings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAwCA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CA2CA,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAaA,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CACjC,WAAW,EACX;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAwDF,CAAC"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Mapping of MCP clientInfo.name patterns to agent families.
3
+ * Patterns are matched case-insensitively using includes().
4
+ */
5
+ export const CLIENT_INFO_PATTERNS = [
6
+ // Claude Code
7
+ { pattern: "claude", agent: "claude-code", weight: 100 },
8
+ { pattern: "anthropic", agent: "claude-code", weight: 80 },
9
+ // VS Code / Copilot
10
+ { pattern: "copilot", agent: "vscode-copilot", weight: 100 },
11
+ { pattern: "vs code", agent: "vscode-copilot", weight: 90 },
12
+ { pattern: "vscode", agent: "vscode-copilot", weight: 90 },
13
+ { pattern: "visual studio code", agent: "vscode-copilot", weight: 90 },
14
+ // Cursor
15
+ { pattern: "cursor", agent: "cursor", weight: 100 },
16
+ // Gemini CLI
17
+ { pattern: "gemini", agent: "gemini-cli", weight: 100 },
18
+ { pattern: "google", agent: "gemini-cli", weight: 50 },
19
+ // Cline
20
+ { pattern: "cline", agent: "cline", weight: 100 },
21
+ // Roo Code
22
+ { pattern: "roo", agent: "roo-code", weight: 100 },
23
+ // Windsurf
24
+ { pattern: "windsurf", agent: "windsurf", weight: 100 },
25
+ { pattern: "codeium", agent: "windsurf", weight: 70 },
26
+ // Continue
27
+ { pattern: "continue", agent: "continue", weight: 100 },
28
+ // Zed
29
+ { pattern: "zed", agent: "zed", weight: 100 },
30
+ // JetBrains AI
31
+ { pattern: "jetbrains", agent: "jetbrains-ai", weight: 100 },
32
+ { pattern: "intellij", agent: "jetbrains-ai", weight: 80 },
33
+ { pattern: "pycharm", agent: "jetbrains-ai", weight: 80 },
34
+ { pattern: "webstorm", agent: "jetbrains-ai", weight: 80 },
35
+ { pattern: "rider", agent: "jetbrains-ai", weight: 80 },
36
+ ];
37
+ /**
38
+ * Workspace fingerprint patterns for agent detection.
39
+ * These are paths relative to workspace root that indicate an agent.
40
+ */
41
+ export const WORKSPACE_FINGERPRINTS = [
42
+ // Claude Code
43
+ { path: ".claude", type: "dir", agent: "claude-code", weight: 60 },
44
+ { path: ".claude/commands", type: "dir", agent: "claude-code", weight: 70 },
45
+ { path: "CLAUDE.md", type: "file", agent: "claude-code", weight: 30 },
46
+ // VS Code Copilot
47
+ { path: ".github/prompts", type: "dir", agent: "vscode-copilot", weight: 60 },
48
+ { path: ".github/copilot-instructions.md", type: "file", agent: "vscode-copilot", weight: 50 },
49
+ // Cursor
50
+ { path: ".cursor", type: "dir", agent: "cursor", weight: 60 },
51
+ { path: ".cursor/rules", type: "dir", agent: "cursor", weight: 70 },
52
+ { path: ".cursorrules", type: "file", agent: "cursor", weight: 50 },
53
+ // Gemini CLI
54
+ { path: ".gemini", type: "dir", agent: "gemini-cli", weight: 60 },
55
+ { path: ".gemini/commands", type: "dir", agent: "gemini-cli", weight: 70 },
56
+ { path: "GEMINI.md", type: "file", agent: "gemini-cli", weight: 30 },
57
+ // Cline
58
+ { path: ".clinerules", type: "file", agent: "cline", weight: 60 },
59
+ { path: ".cline", type: "dir", agent: "cline", weight: 50 },
60
+ // Roo Code
61
+ { path: ".roo", type: "dir", agent: "roo-code", weight: 60 },
62
+ { path: ".roo/commands", type: "dir", agent: "roo-code", weight: 70 },
63
+ { path: ".roorules", type: "file", agent: "roo-code", weight: 50 },
64
+ // Windsurf
65
+ { path: ".windsurf", type: "dir", agent: "windsurf", weight: 60 },
66
+ { path: ".windsurfrules", type: "file", agent: "windsurf", weight: 50 },
67
+ // Continue
68
+ { path: ".continue", type: "dir", agent: "continue", weight: 60 },
69
+ { path: ".continue/config.json", type: "file", agent: "continue", weight: 70 },
70
+ // Zed
71
+ { path: ".rules", type: "file", agent: "zed", weight: 40 },
72
+ // JetBrains AI
73
+ { path: ".aiassistant", type: "dir", agent: "jetbrains-ai", weight: 60 },
74
+ { path: ".junie", type: "dir", agent: "jetbrains-ai", weight: 60 },
75
+ ];
76
+ /**
77
+ * Environment variable patterns for agent detection.
78
+ */
79
+ export const ENV_PATTERNS = [
80
+ // VS Code
81
+ { variable: "VSCODE_PID", agent: "vscode-copilot", weight: 30 },
82
+ { variable: "VSCODE_CLI", agent: "vscode-copilot", weight: 30 },
83
+ { variable: "TERM_PROGRAM", pattern: "vscode", agent: "vscode-copilot", weight: 30 },
84
+ // Cursor
85
+ { variable: "CURSOR_PID", agent: "cursor", weight: 30 },
86
+ { variable: "TERM_PROGRAM", pattern: "cursor", agent: "cursor", weight: 30 },
87
+ // JetBrains
88
+ { variable: "JETBRAINS_IDE", agent: "jetbrains-ai", weight: 30 },
89
+ { variable: "IDEA_INITIAL_DIRECTORY", agent: "jetbrains-ai", weight: 20 },
90
+ ];
91
+ /**
92
+ * Agent tier classification and metadata.
93
+ */
94
+ export const AGENT_METADATA = {
95
+ "claude-code": {
96
+ tier: "A",
97
+ displayName: "Claude Code",
98
+ shortcutPath: ".claude/commands/retest.md",
99
+ },
100
+ "vscode-copilot": {
101
+ tier: "A",
102
+ displayName: "VS Code (GitHub Copilot)",
103
+ shortcutPath: ".github/prompts/retest.prompt.md",
104
+ },
105
+ cursor: {
106
+ tier: "B",
107
+ displayName: "Cursor",
108
+ rulesPath: ".cursor/rules/retest.mdc",
109
+ },
110
+ "gemini-cli": {
111
+ tier: "A",
112
+ displayName: "Gemini CLI",
113
+ shortcutPath: ".gemini/commands/retest.toml",
114
+ },
115
+ cline: {
116
+ tier: "B",
117
+ displayName: "Cline",
118
+ rulesPath: ".clinerules",
119
+ },
120
+ "roo-code": {
121
+ tier: "A",
122
+ displayName: "Roo Code",
123
+ shortcutPath: ".roo/commands/retest.md",
124
+ },
125
+ windsurf: {
126
+ tier: "B",
127
+ displayName: "Windsurf",
128
+ rulesPath: ".windsurf/rules/retest.md",
129
+ },
130
+ continue: {
131
+ tier: "B",
132
+ displayName: "Continue",
133
+ rulesPath: ".continue/prompts/retest.md",
134
+ },
135
+ zed: {
136
+ tier: "B",
137
+ displayName: "Zed",
138
+ rulesPath: ".rules",
139
+ },
140
+ "jetbrains-ai": {
141
+ tier: "B",
142
+ displayName: "JetBrains AI",
143
+ rulesPath: ".aiassistant/rules/retest.md",
144
+ },
145
+ unknown: {
146
+ tier: "C",
147
+ displayName: "Unknown Agent",
148
+ },
149
+ };
150
+ //# sourceMappingURL=mappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappings.js","sourceRoot":"","sources":["../../src/agent-detection/mappings.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAI5B;IACH,cAAc;IACd,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE;IACxD,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE;IAE1D,oBAAoB;IACpB,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,EAAE;IAC5D,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3D,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,EAAE;IAC1D,EAAE,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,EAAE;IAEtE,SAAS;IACT,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;IAEnD,aAAa;IACb,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE;IACvD,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE;IAEtD,QAAQ;IACR,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE;IAEjD,WAAW;IACX,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE;IAElD,WAAW;IACX,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE;IACvD,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;IAErD,WAAW;IACX,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE;IAEvD,MAAM;IACN,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE;IAE7C,eAAe;IACf,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE;IAC5D,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE;IAC1D,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE;IACzD,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE;IAC1D,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE;CACxD,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAK9B;IACH,cAAc;IACd,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE;IAClE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3E,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE;IAErE,kBAAkB;IAClB,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,EAAE;IAC7E,EAAE,IAAI,EAAE,iCAAiC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,EAAE;IAE9F,SAAS;IACT,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;IAC7D,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;IACnE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;IAEnE,aAAa;IACb,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE;IACjE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE;IAC1E,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE;IAEpE,QAAQ;IACR,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;IACjE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;IAE3D,WAAW;IACX,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;IAC5D,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;IACrE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;IAElE,WAAW;IACX,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;IACjE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;IAEvE,WAAW;IACX,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;IACjE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;IAE9E,MAAM;IACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;IAE1D,eAAe;IACf,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE;IACxE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE;CACnE,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAKpB;IACH,UAAU;IACV,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,EAAE;IAC/D,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,EAAE;IAC/D,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,EAAE;IAEpF,SAAS;IACT,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;IACvD,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;IAE5E,YAAY;IACZ,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE;IAChE,EAAE,QAAQ,EAAE,wBAAwB,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE;CAC1E,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAQvB;IACF,aAAa,EAAE;QACb,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,aAAa;QAC1B,YAAY,EAAE,4BAA4B;KAC3C;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,0BAA0B;QACvC,YAAY,EAAE,kCAAkC;KACjD;IACD,MAAM,EAAE;QACN,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,QAAQ;QACrB,SAAS,EAAE,0BAA0B;KACtC;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,YAAY;QACzB,YAAY,EAAE,8BAA8B;KAC7C;IACD,KAAK,EAAE;QACL,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,OAAO;QACpB,SAAS,EAAE,aAAa;KACzB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,UAAU;QACvB,YAAY,EAAE,yBAAyB;KACxC;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,2BAA2B;KACvC;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,6BAA6B;KACzC;IACD,GAAG,EAAE;QACH,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,cAAc,EAAE;QACd,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,cAAc;QAC3B,SAAS,EAAE,8BAA8B;KAC1C;IACD,OAAO,EAAE;QACP,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,eAAe;KAC7B;CACF,CAAC"}
@@ -27,5 +27,5 @@ export declare function getServerCapabilities(): {
27
27
  prompts: {};
28
28
  logging: {};
29
29
  };
30
- export declare function checkCapability(caps: ClientCapabilities, capability: keyof Omit<ClientCapabilities, "protocolVersion">): boolean;
30
+ export declare function checkCapability(caps: ClientCapabilities, capability: keyof Omit<ClientCapabilities, "protocolVersion" | "clientInfo">): boolean;
31
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,0BAA0B,CAAC;AAElC,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,SAAS,CAAC,EAAE;YACV,WAAW,CAAC,EAAE,OAAO,CAAC;YACtB,SAAS,CAAC,EAAE,OAAO,CAAC;SACrB,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,MAAM,GACb,kBAAkB,CAqDpB;AAED,wBAAgB,qBAAqB;;;;;;;;EAUpC;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,kBAAkB,EACxB,UAAU,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,GAC5D,OAAO,CAET"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,0BAA0B,CAAC;AAElC,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,SAAS,CAAC,EAAE;YACV,WAAW,CAAC,EAAE,OAAO,CAAC;YACtB,SAAS,CAAC,EAAE,OAAO,CAAC;SACrB,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,MAAM,GACb,kBAAkB,CA0DpB;AAED,wBAAgB,qBAAqB;;;;;;;;EAUpC;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,kBAAkB,EACxB,UAAU,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,GAAG,YAAY,CAAC,GAC3E,OAAO,CAET"}
@@ -14,6 +14,10 @@ export function parseClientCapabilities(initResult, logger) {
14
14
  elicitation: !!caps.elicitation && protocolVersion >= REQUIRED_PROTOCOL_VERSION,
15
15
  // Progress is typically available if sampling is available
16
16
  progress: !!caps.sampling,
17
+ // Store client info for agent detection
18
+ clientInfo: initResult.clientInfo
19
+ ? { name: initResult.clientInfo.name, version: initResult.clientInfo.version }
20
+ : undefined,
17
21
  };
18
22
  // Log capability detection
19
23
  logger.info("Client capabilities detected", {
@@ -23,6 +27,7 @@ export function parseClientCapabilities(initResult, logger) {
23
27
  logging: clientCaps.logging,
24
28
  resourcesListChanged: clientCaps.resourcesListChanged,
25
29
  resourcesSubscribe: clientCaps.resourcesSubscribe,
30
+ clientInfo: clientCaps.clientInfo,
26
31
  });
27
32
  // Warn about degraded mode
28
33
  if (protocolVersion < REQUIRED_PROTOCOL_VERSION) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAAY,CAAC;AAmBtD,MAAM,UAAU,uBAAuB,CACrC,UAA4B,EAC5B,MAAc;IAEd,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC;IAC3C,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,IAAI,SAAS,CAAC;IAEhE,MAAM,UAAU,GAAuB;QACrC,GAAG,oBAAoB;QACvB,eAAe;QACf,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;QACzB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO;QACvB,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW;QACnD,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS;QAC/C,oDAAoD;QACpD,WAAW,EACT,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,eAAe,IAAI,yBAAyB;QACpE,2DAA2D;QAC3D,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;KAC1B,CAAC;IAEF,2BAA2B;IAC3B,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;QAC1C,eAAe;QACf,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;QACrD,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;KAClD,CAAC,CAAC;IAEH,2BAA2B;IAC3B,IAAI,eAAe,GAAG,yBAAyB,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,wDAAwD,EAAE;YACpE,aAAa,EAAE,eAAe;YAC9B,eAAe,EAAE,yBAAyB;YAC1C,gBAAgB,EAAE,CAAC,aAAa,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CACT,qEAAqE,EACrE;YACE,gBAAgB,EAAE,8BAA8B;SACjD,CACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,4DAA4D,EAAE;YACxE,gBAAgB,EAAE,4BAA4B;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,KAAK,EAAE,EAAE;QACT,SAAS,EAAE;YACT,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;SAChB;QACD,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAwB,EACxB,UAA6D;IAE7D,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAAY,CAAC;AAmBtD,MAAM,UAAU,uBAAuB,CACrC,UAA4B,EAC5B,MAAc;IAEd,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC;IAC3C,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,IAAI,SAAS,CAAC;IAEhE,MAAM,UAAU,GAAuB;QACrC,GAAG,oBAAoB;QACvB,eAAe;QACf,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;QACzB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO;QACvB,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW;QACnD,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS;QAC/C,oDAAoD;QACpD,WAAW,EACT,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,eAAe,IAAI,yBAAyB;QACpE,2DAA2D;QAC3D,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;QACzB,wCAAwC;QACxC,UAAU,EAAE,UAAU,CAAC,UAAU;YAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE;YAC9E,CAAC,CAAC,SAAS;KACd,CAAC;IAEF,2BAA2B;IAC3B,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;QAC1C,eAAe;QACf,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;QACrD,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;QACjD,UAAU,EAAE,UAAU,CAAC,UAAU;KAClC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,IAAI,eAAe,GAAG,yBAAyB,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,wDAAwD,EAAE;YACpE,aAAa,EAAE,eAAe;YAC9B,eAAe,EAAE,yBAAyB;YAC1C,gBAAgB,EAAE,CAAC,aAAa,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CACT,qEAAqE,EACrE;YACE,gBAAgB,EAAE,8BAA8B;SACjD,CACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,4DAA4D,EAAE;YACxE,gBAAgB,EAAE,4BAA4B;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,KAAK,EAAE,EAAE;QACT,SAAS,EAAE;YACT,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;SAChB;QACD,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAwB,EACxB,UAA4E;IAE5E,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1B,CAAC"}
@@ -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;AAYzD,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,CAyNb"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAazD,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,CAgQb"}
@@ -7,6 +7,7 @@ const retestDiscoverFlowsTemplate = loadTemplate("mcp", "retest-discover-flows")
7
7
  const retestGenerateTestsTemplate = loadTemplate("mcp", "retest-generate-tests");
8
8
  const retestRunTestTemplate = loadTemplate("mcp", "retest-run-test");
9
9
  const retestFullWorkflowTemplate = loadTemplate("mcp", "retest-full-workflow");
10
+ const retestSetupTemplate = loadTemplate("mcp", "retest-setup");
10
11
  export function createRetestPrompts(getContext) {
11
12
  return [
12
13
  {
@@ -202,6 +203,41 @@ export function createRetestPrompts(getContext) {
202
203
  ];
203
204
  },
204
205
  },
206
+ {
207
+ name: "retest:setup",
208
+ description: "Set up /retest shortcut for your AI coding agent. Detects your agent and installs appropriate shortcuts.",
209
+ arguments: [
210
+ {
211
+ name: "agent",
212
+ description: 'Agent selection: "auto" (detect), "all" (install all), or specific agent ID',
213
+ required: false,
214
+ },
215
+ {
216
+ name: "scope",
217
+ description: 'Installation scope: "workspace" (default), "user", or "both"',
218
+ required: false,
219
+ },
220
+ {
221
+ name: "dryRun",
222
+ description: "Preview actions without writing files (true/false)",
223
+ required: false,
224
+ },
225
+ ],
226
+ async getMessages(args) {
227
+ const agent = args.agent || "auto";
228
+ const scope = args.scope || "workspace";
229
+ const dryRun = args.dryRun === "true" ? "true" : "false";
230
+ return [
231
+ {
232
+ role: "user",
233
+ content: {
234
+ type: "text",
235
+ text: interpolate(retestSetupTemplate, { agent, scope, dryRun }),
236
+ },
237
+ },
238
+ ];
239
+ },
240
+ },
205
241
  ];
206
242
  }
207
243
  //# sourceMappingURL=index.js.map
@@ -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":"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"}
@@ -0,0 +1,13 @@
1
+ Set up Retest Kit shortcuts for your AI coding agent.
2
+
3
+ This will:
4
+ 1. Detect which AI coding agent you're using
5
+ 2. Install the appropriate /retest shortcut (if supported)
6
+ 3. Create universal documentation for fallback
7
+
8
+ Call the retest_setup tool with the following options:
9
+ - agent: "${agent}" (auto, all, or specific agent ID)
10
+ - scope: "${scope}" (workspace, user, or both)
11
+ - dryRun: ${dryRun} (preview without writing)
12
+
13
+ After setup completes, you can use /retest to start testing workflows.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAyBlD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAiL7E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA0BlD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAkL7E"}
package/dist/server.js CHANGED
@@ -10,7 +10,7 @@ import { createElicitationClient } from "./elicitation/index.js";
10
10
  import { createCancellationRegistry, createProgressEmitter } from "./progress/index.js";
11
11
  import { createSecurityValidator } from "./security/index.js";
12
12
  import { createRetestPrompts } from "./prompts/index.js";
13
- import { createStartAnalysisTool, createCrawlTool, createDiscoverFeaturesTool, createDiscoverFlowsTool, createGenerateTestsTool, createRunTestCaseTool, } from "./tools/retest/index.js";
13
+ import { createStartAnalysisTool, createCrawlTool, createDiscoverFeaturesTool, createDiscoverFlowsTool, createGenerateTestsTool, createRunTestCaseTool, createSetupTool, } from "./tools/retest/index.js";
14
14
  const SERVER_NAME = "retestkit";
15
15
  const SERVER_VERSION = "0.0.1";
16
16
  export function createServer(config, logger) {
@@ -61,6 +61,7 @@ export function createServer(config, logger) {
61
61
  createDiscoverFlowsTool(getContext),
62
62
  createGenerateTestsTool(getContext),
63
63
  createRunTestCaseTool(getContext),
64
+ createSetupTool(getContext),
64
65
  ];
65
66
  // Create MCP server
66
67
  const server = new McpServer({
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Result of a safe write operation.
3
+ */
4
+ export interface SafeWriteResult {
5
+ success: boolean;
6
+ path: string;
7
+ status: "created" | "updated" | "skipped";
8
+ reason?: string;
9
+ backup?: string;
10
+ }
11
+ /**
12
+ * Check if a path is safe (no path traversal).
13
+ */
14
+ export declare function isPathSafe(filePath: string, rootDir: string): boolean;
15
+ /**
16
+ * Ensure a directory exists, creating it if necessary.
17
+ */
18
+ export declare function ensureDir(dirPath: string): void;
19
+ /**
20
+ * Check if a file exists.
21
+ */
22
+ export declare function fileExists(filePath: string): boolean;
23
+ /**
24
+ * Check if a directory exists.
25
+ */
26
+ export declare function dirExists(dirPath: string): boolean;
27
+ /**
28
+ * Read a file if it exists, return null otherwise.
29
+ */
30
+ export declare function readFileSafe(filePath: string): string | null;
31
+ /**
32
+ * Compute content hash for comparison.
33
+ */
34
+ export declare function contentHash(content: string): string;
35
+ /**
36
+ * Create a backup of a file if it exists and no backup exists yet.
37
+ * Returns the backup path if created, null otherwise.
38
+ */
39
+ export declare function createBackup(filePath: string): string | null;
40
+ /**
41
+ * Safely write content to a file with backup and path validation.
42
+ */
43
+ export declare function safeWriteFile(filePath: string, content: string, rootDir: string, options?: {
44
+ createBackup?: boolean;
45
+ createDirs?: boolean;
46
+ }): SafeWriteResult;
47
+ //# sourceMappingURL=fs-safe.d.ts.map