@devness/coverit 0.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.
Files changed (147) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +169 -0
  3. package/dist/agents/orchestrator.d.ts +21 -0
  4. package/dist/agents/orchestrator.d.ts.map +1 -0
  5. package/dist/agents/orchestrator.js +235 -0
  6. package/dist/agents/orchestrator.js.map +1 -0
  7. package/dist/agents/reporter.d.ts +13 -0
  8. package/dist/agents/reporter.d.ts.map +1 -0
  9. package/dist/agents/reporter.js +323 -0
  10. package/dist/agents/reporter.js.map +1 -0
  11. package/dist/ai/anthropic-provider.d.ts +19 -0
  12. package/dist/ai/anthropic-provider.d.ts.map +1 -0
  13. package/dist/ai/anthropic-provider.js +83 -0
  14. package/dist/ai/anthropic-provider.js.map +1 -0
  15. package/dist/ai/claude-cli-provider.d.ts +22 -0
  16. package/dist/ai/claude-cli-provider.d.ts.map +1 -0
  17. package/dist/ai/claude-cli-provider.js +197 -0
  18. package/dist/ai/claude-cli-provider.js.map +1 -0
  19. package/dist/ai/index.d.ts +15 -0
  20. package/dist/ai/index.d.ts.map +1 -0
  21. package/dist/ai/index.js +16 -0
  22. package/dist/ai/index.js.map +1 -0
  23. package/dist/ai/ollama-provider.d.ts +17 -0
  24. package/dist/ai/ollama-provider.d.ts.map +1 -0
  25. package/dist/ai/ollama-provider.js +88 -0
  26. package/dist/ai/ollama-provider.js.map +1 -0
  27. package/dist/ai/openai-provider.d.ts +20 -0
  28. package/dist/ai/openai-provider.d.ts.map +1 -0
  29. package/dist/ai/openai-provider.js +74 -0
  30. package/dist/ai/openai-provider.js.map +1 -0
  31. package/dist/ai/prompts.d.ts +36 -0
  32. package/dist/ai/prompts.d.ts.map +1 -0
  33. package/dist/ai/prompts.js +259 -0
  34. package/dist/ai/prompts.js.map +1 -0
  35. package/dist/ai/provider-factory.d.ts +26 -0
  36. package/dist/ai/provider-factory.d.ts.map +1 -0
  37. package/dist/ai/provider-factory.js +111 -0
  38. package/dist/ai/provider-factory.js.map +1 -0
  39. package/dist/ai/types.d.ts +37 -0
  40. package/dist/ai/types.d.ts.map +1 -0
  41. package/dist/ai/types.js +10 -0
  42. package/dist/ai/types.js.map +1 -0
  43. package/dist/analysis/code-scanner.d.ts +9 -0
  44. package/dist/analysis/code-scanner.d.ts.map +1 -0
  45. package/dist/analysis/code-scanner.js +409 -0
  46. package/dist/analysis/code-scanner.js.map +1 -0
  47. package/dist/analysis/dependency-graph.d.ts +9 -0
  48. package/dist/analysis/dependency-graph.d.ts.map +1 -0
  49. package/dist/analysis/dependency-graph.js +149 -0
  50. package/dist/analysis/dependency-graph.js.map +1 -0
  51. package/dist/analysis/diff-analyzer.d.ts +9 -0
  52. package/dist/analysis/diff-analyzer.d.ts.map +1 -0
  53. package/dist/analysis/diff-analyzer.js +232 -0
  54. package/dist/analysis/diff-analyzer.js.map +1 -0
  55. package/dist/analysis/index.d.ts +5 -0
  56. package/dist/analysis/index.d.ts.map +1 -0
  57. package/dist/analysis/index.js +5 -0
  58. package/dist/analysis/index.js.map +1 -0
  59. package/dist/analysis/strategy-planner.d.ts +11 -0
  60. package/dist/analysis/strategy-planner.d.ts.map +1 -0
  61. package/dist/analysis/strategy-planner.js +384 -0
  62. package/dist/analysis/strategy-planner.js.map +1 -0
  63. package/dist/cli/index.d.ts +9 -0
  64. package/dist/cli/index.d.ts.map +1 -0
  65. package/dist/cli/index.js +288 -0
  66. package/dist/cli/index.js.map +1 -0
  67. package/dist/executors/base-executor.d.ts +35 -0
  68. package/dist/executors/base-executor.d.ts.map +1 -0
  69. package/dist/executors/base-executor.js +138 -0
  70. package/dist/executors/base-executor.js.map +1 -0
  71. package/dist/executors/browser-runner.d.ts +24 -0
  72. package/dist/executors/browser-runner.d.ts.map +1 -0
  73. package/dist/executors/browser-runner.js +194 -0
  74. package/dist/executors/browser-runner.js.map +1 -0
  75. package/dist/executors/cloud-runner.d.ts +41 -0
  76. package/dist/executors/cloud-runner.d.ts.map +1 -0
  77. package/dist/executors/cloud-runner.js +153 -0
  78. package/dist/executors/cloud-runner.js.map +1 -0
  79. package/dist/executors/index.d.ts +12 -0
  80. package/dist/executors/index.d.ts.map +1 -0
  81. package/dist/executors/index.js +28 -0
  82. package/dist/executors/index.js.map +1 -0
  83. package/dist/executors/local-runner.d.ts +40 -0
  84. package/dist/executors/local-runner.d.ts.map +1 -0
  85. package/dist/executors/local-runner.js +395 -0
  86. package/dist/executors/local-runner.js.map +1 -0
  87. package/dist/executors/reporter.d.ts +6 -0
  88. package/dist/executors/reporter.d.ts.map +1 -0
  89. package/dist/executors/reporter.js +6 -0
  90. package/dist/executors/reporter.js.map +1 -0
  91. package/dist/executors/simulator-runner.d.ts +30 -0
  92. package/dist/executors/simulator-runner.d.ts.map +1 -0
  93. package/dist/executors/simulator-runner.js +339 -0
  94. package/dist/executors/simulator-runner.js.map +1 -0
  95. package/dist/generators/api-test.d.ts +22 -0
  96. package/dist/generators/api-test.d.ts.map +1 -0
  97. package/dist/generators/api-test.js +235 -0
  98. package/dist/generators/api-test.js.map +1 -0
  99. package/dist/generators/base-generator.d.ts +79 -0
  100. package/dist/generators/base-generator.d.ts.map +1 -0
  101. package/dist/generators/base-generator.js +234 -0
  102. package/dist/generators/base-generator.js.map +1 -0
  103. package/dist/generators/desktop-test.d.ts +22 -0
  104. package/dist/generators/desktop-test.d.ts.map +1 -0
  105. package/dist/generators/desktop-test.js +290 -0
  106. package/dist/generators/desktop-test.js.map +1 -0
  107. package/dist/generators/e2e-browser.d.ts +19 -0
  108. package/dist/generators/e2e-browser.d.ts.map +1 -0
  109. package/dist/generators/e2e-browser.js +233 -0
  110. package/dist/generators/e2e-browser.js.map +1 -0
  111. package/dist/generators/index.d.ts +21 -0
  112. package/dist/generators/index.d.ts.map +1 -0
  113. package/dist/generators/index.js +66 -0
  114. package/dist/generators/index.js.map +1 -0
  115. package/dist/generators/mobile-test.d.ts +22 -0
  116. package/dist/generators/mobile-test.d.ts.map +1 -0
  117. package/dist/generators/mobile-test.js +286 -0
  118. package/dist/generators/mobile-test.js.map +1 -0
  119. package/dist/generators/unit-test.d.ts +23 -0
  120. package/dist/generators/unit-test.d.ts.map +1 -0
  121. package/dist/generators/unit-test.js +282 -0
  122. package/dist/generators/unit-test.js.map +1 -0
  123. package/dist/index.d.ts +12 -0
  124. package/dist/index.d.ts.map +1 -0
  125. package/dist/index.js +13 -0
  126. package/dist/index.js.map +1 -0
  127. package/dist/mcp/server.d.ts +8 -0
  128. package/dist/mcp/server.d.ts.map +1 -0
  129. package/dist/mcp/server.js +217 -0
  130. package/dist/mcp/server.js.map +1 -0
  131. package/dist/types/index.d.ts +295 -0
  132. package/dist/types/index.d.ts.map +1 -0
  133. package/dist/types/index.js +8 -0
  134. package/dist/types/index.js.map +1 -0
  135. package/dist/utils/framework-detector.d.ts +28 -0
  136. package/dist/utils/framework-detector.d.ts.map +1 -0
  137. package/dist/utils/framework-detector.js +184 -0
  138. package/dist/utils/framework-detector.js.map +1 -0
  139. package/dist/utils/git.d.ts +33 -0
  140. package/dist/utils/git.d.ts.map +1 -0
  141. package/dist/utils/git.js +82 -0
  142. package/dist/utils/git.js.map +1 -0
  143. package/dist/utils/logger.d.ts +17 -0
  144. package/dist/utils/logger.d.ts.map +1 -0
  145. package/dist/utils/logger.js +47 -0
  146. package/dist/utils/logger.js.map +1 -0
  147. package/package.json +86 -0
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Coverit — Public API
3
+ *
4
+ * Re-exports the orchestrator, types, and utility modules
5
+ * for programmatic usage as a library.
6
+ */
7
+ // Core orchestrator
8
+ export { orchestrate } from "./agents/orchestrator.js";
9
+ // Utilities for advanced usage
10
+ export { getChangedFiles, getDiff, getCurrentBranch, getBaseBranch, isGitRepo, getStagedFiles, } from "./utils/git.js";
11
+ export { detectFramework, detectTestFramework, detectPackageManager, detectProjectInfo, } from "./utils/framework-detector.js";
12
+ export { logger } from "./utils/logger.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAoB;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAuDvD,+BAA+B;AAC/B,OAAO,EACL,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Coverit — MCP Server
3
+ *
4
+ * Exposes coverit capabilities as MCP tools for Claude Code integration.
5
+ * Each tool maps to a pipeline operation: analyze, generate, run, or full pipeline.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Coverit — MCP Server
3
+ *
4
+ * Exposes coverit capabilities as MCP tools for Claude Code integration.
5
+ * Each tool maps to a pipeline operation: analyze, generate, run, or full pipeline.
6
+ */
7
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
9
+ import { z } from "zod";
10
+ import { orchestrate } from "../agents/orchestrator.js";
11
+ import { logger } from "../utils/logger.js";
12
+ const VALID_TEST_TYPES = [
13
+ "unit",
14
+ "integration",
15
+ "api",
16
+ "e2e-browser",
17
+ "e2e-mobile",
18
+ "e2e-desktop",
19
+ "snapshot",
20
+ "performance",
21
+ ];
22
+ function parseTestTypes(raw) {
23
+ if (!raw || raw.length === 0)
24
+ return undefined;
25
+ return raw.filter((t) => VALID_TEST_TYPES.includes(t));
26
+ }
27
+ const server = new McpServer({
28
+ name: "coverit",
29
+ version: "0.1.0",
30
+ });
31
+ // ─── coverit_analyze ─────────────────────────────────────────
32
+ // Analyze codebase and return a test strategy without generating or running tests.
33
+ server.tool("coverit_analyze", "Analyze a codebase and return a test strategy including detected framework, changed files, and proposed test plans.", {
34
+ projectRoot: z.string().describe("Absolute path to the project root"),
35
+ baseBranch: z
36
+ .string()
37
+ .optional()
38
+ .describe("Git branch to diff against (defaults to main/master)"),
39
+ }, async ({ projectRoot, baseBranch }) => {
40
+ try {
41
+ const config = {
42
+ projectRoot,
43
+ targetPaths: baseBranch ? [baseBranch] : undefined,
44
+ generateOnly: true,
45
+ skipExecution: true,
46
+ };
47
+ const report = await orchestrate(config);
48
+ return {
49
+ content: [
50
+ {
51
+ type: "text",
52
+ text: JSON.stringify(report.strategy, null, 2),
53
+ },
54
+ ],
55
+ };
56
+ }
57
+ catch (err) {
58
+ const message = err instanceof Error ? err.message : String(err);
59
+ logger.error("coverit_analyze failed:", message);
60
+ return {
61
+ content: [{ type: "text", text: `Error: ${message}` }],
62
+ isError: true,
63
+ };
64
+ }
65
+ });
66
+ // ─── coverit_generate ────────────────────────────────────────
67
+ // Generate test files based on analysis, without running them.
68
+ server.tool("coverit_generate", "Generate test files for a project. Returns the list of generated file paths.", {
69
+ projectRoot: z.string().describe("Absolute path to the project root"),
70
+ testTypes: z
71
+ .array(z.string())
72
+ .optional()
73
+ .describe("Types of tests to generate (unit, api, e2e-browser, etc.). Omit for all."),
74
+ baseBranch: z
75
+ .string()
76
+ .optional()
77
+ .describe("Git branch to diff against (defaults to main/master)"),
78
+ }, async ({ projectRoot, testTypes, baseBranch }) => {
79
+ try {
80
+ const config = {
81
+ projectRoot,
82
+ testTypes: parseTestTypes(testTypes),
83
+ targetPaths: baseBranch ? [baseBranch] : undefined,
84
+ generateOnly: true,
85
+ };
86
+ const report = await orchestrate(config);
87
+ const generatedFiles = report.results.map((r) => ({
88
+ planId: r.planId,
89
+ status: r.status,
90
+ testCount: r.totalTests,
91
+ }));
92
+ return {
93
+ content: [
94
+ {
95
+ type: "text",
96
+ text: JSON.stringify({
97
+ generated: generatedFiles,
98
+ strategy: report.strategy,
99
+ }, null, 2),
100
+ },
101
+ ],
102
+ };
103
+ }
104
+ catch (err) {
105
+ const message = err instanceof Error ? err.message : String(err);
106
+ logger.error("coverit_generate failed:", message);
107
+ return {
108
+ content: [{ type: "text", text: `Error: ${message}` }],
109
+ isError: true,
110
+ };
111
+ }
112
+ });
113
+ // ─── coverit_run ─────────────────────────────────────────────
114
+ // Run previously generated tests (or generate + run).
115
+ server.tool("coverit_run", "Run generated tests and return execution results with optional coverage.", {
116
+ projectRoot: z.string().describe("Absolute path to the project root"),
117
+ testTypes: z
118
+ .array(z.string())
119
+ .optional()
120
+ .describe("Types of tests to run. Omit for all."),
121
+ environment: z
122
+ .enum(["local", "cloud-sandbox", "browser", "mobile-simulator", "desktop-app"])
123
+ .optional()
124
+ .describe("Execution environment (defaults to local)"),
125
+ coverage: z
126
+ .boolean()
127
+ .optional()
128
+ .describe("Collect coverage data (defaults to false)"),
129
+ }, async ({ projectRoot, testTypes, environment, coverage }) => {
130
+ try {
131
+ const config = {
132
+ projectRoot,
133
+ testTypes: parseTestTypes(testTypes),
134
+ environment: environment ?? "local",
135
+ coverageThreshold: coverage ? 0 : undefined,
136
+ };
137
+ const report = await orchestrate(config);
138
+ return {
139
+ content: [
140
+ {
141
+ type: "text",
142
+ text: JSON.stringify({
143
+ summary: report.summary,
144
+ results: report.results,
145
+ }, null, 2),
146
+ },
147
+ ],
148
+ };
149
+ }
150
+ catch (err) {
151
+ const message = err instanceof Error ? err.message : String(err);
152
+ logger.error("coverit_run failed:", message);
153
+ return {
154
+ content: [{ type: "text", text: `Error: ${message}` }],
155
+ isError: true,
156
+ };
157
+ }
158
+ });
159
+ // ─── coverit_full ────────────────────────────────────────────
160
+ // Full pipeline: analyze, generate, run, and report.
161
+ server.tool("coverit_full", "Run the full coverit pipeline: analyze the codebase, generate tests, execute them, and return a comprehensive report.", {
162
+ projectRoot: z.string().describe("Absolute path to the project root"),
163
+ baseBranch: z
164
+ .string()
165
+ .optional()
166
+ .describe("Git branch to diff against (defaults to main/master)"),
167
+ testTypes: z
168
+ .array(z.string())
169
+ .optional()
170
+ .describe("Types of tests to include. Omit for all."),
171
+ environment: z
172
+ .enum(["local", "cloud-sandbox", "browser", "mobile-simulator", "desktop-app"])
173
+ .optional()
174
+ .describe("Execution environment (defaults to local)"),
175
+ coverage: z
176
+ .boolean()
177
+ .optional()
178
+ .describe("Collect coverage data (defaults to false)"),
179
+ }, async ({ projectRoot, baseBranch, testTypes, environment, coverage }) => {
180
+ try {
181
+ const config = {
182
+ projectRoot,
183
+ testTypes: parseTestTypes(testTypes),
184
+ targetPaths: baseBranch ? [baseBranch] : undefined,
185
+ environment: environment ?? "local",
186
+ coverageThreshold: coverage ? 0 : undefined,
187
+ };
188
+ const report = await orchestrate(config);
189
+ return {
190
+ content: [
191
+ {
192
+ type: "text",
193
+ text: JSON.stringify(report, null, 2),
194
+ },
195
+ ],
196
+ };
197
+ }
198
+ catch (err) {
199
+ const message = err instanceof Error ? err.message : String(err);
200
+ logger.error("coverit_full failed:", message);
201
+ return {
202
+ content: [{ type: "text", text: `Error: ${message}` }],
203
+ isError: true,
204
+ };
205
+ }
206
+ });
207
+ // ─── Start Server ────────────────────────────────────────────
208
+ async function main() {
209
+ const transport = new StdioServerTransport();
210
+ await server.connect(transport);
211
+ logger.debug("MCP server connected via stdio");
212
+ }
213
+ main().catch((err) => {
214
+ logger.error("Failed to start MCP server:", err);
215
+ process.exit(1);
216
+ });
217
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,295 @@
1
+ /**
2
+ * Coverit — Core Types
3
+ *
4
+ * These types define the contracts between all modules:
5
+ * Analysis → Strategy → Generation → Execution → Reporting
6
+ */
7
+ export interface DiffResult {
8
+ files: ChangedFile[];
9
+ summary: string;
10
+ baseBranch: string;
11
+ headBranch: string;
12
+ }
13
+ export interface ChangedFile {
14
+ path: string;
15
+ status: "added" | "modified" | "deleted" | "renamed";
16
+ additions: number;
17
+ deletions: number;
18
+ hunks: DiffHunk[];
19
+ language: Language;
20
+ fileType: FileType;
21
+ }
22
+ export interface DiffHunk {
23
+ startLine: number;
24
+ endLine: number;
25
+ content: string;
26
+ }
27
+ export type Language = "typescript" | "javascript" | "python" | "go" | "rust" | "java" | "unknown";
28
+ export type FileType = "api-route" | "api-controller" | "react-component" | "react-hook" | "react-page" | "service" | "utility" | "model" | "schema" | "config" | "test" | "style" | "mobile-screen" | "mobile-component" | "desktop-window" | "desktop-component" | "middleware" | "migration" | "unknown";
29
+ export interface CodeScanResult {
30
+ file: string;
31
+ language: Language;
32
+ fileType: FileType;
33
+ exports: ExportedSymbol[];
34
+ imports: ImportedModule[];
35
+ functions: FunctionInfo[];
36
+ classes: ClassInfo[];
37
+ endpoints: EndpointInfo[];
38
+ components: ComponentInfo[];
39
+ }
40
+ export interface ExportedSymbol {
41
+ name: string;
42
+ kind: "function" | "class" | "variable" | "type" | "interface" | "enum";
43
+ isDefault: boolean;
44
+ line: number;
45
+ }
46
+ export interface ImportedModule {
47
+ source: string;
48
+ specifiers: string[];
49
+ isExternal: boolean;
50
+ }
51
+ export interface FunctionInfo {
52
+ name: string;
53
+ params: ParamInfo[];
54
+ returnType: string | null;
55
+ isAsync: boolean;
56
+ isExported: boolean;
57
+ line: number;
58
+ complexity: number;
59
+ }
60
+ export interface ParamInfo {
61
+ name: string;
62
+ type: string | null;
63
+ isOptional: boolean;
64
+ defaultValue: string | null;
65
+ }
66
+ export interface ClassInfo {
67
+ name: string;
68
+ methods: FunctionInfo[];
69
+ properties: PropertyInfo[];
70
+ isExported: boolean;
71
+ line: number;
72
+ }
73
+ export interface PropertyInfo {
74
+ name: string;
75
+ type: string | null;
76
+ isPublic: boolean;
77
+ }
78
+ export interface EndpointInfo {
79
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
80
+ path: string;
81
+ handler: string;
82
+ middleware: string[];
83
+ line: number;
84
+ }
85
+ export interface ComponentInfo {
86
+ name: string;
87
+ props: ParamInfo[];
88
+ hooks: string[];
89
+ isPage: boolean;
90
+ line: number;
91
+ }
92
+ export interface DependencyNode {
93
+ file: string;
94
+ dependsOn: string[];
95
+ dependedBy: string[];
96
+ }
97
+ export type DependencyGraph = Map<string, DependencyNode>;
98
+ export interface TestStrategy {
99
+ project: ProjectInfo;
100
+ plans: TestPlan[];
101
+ executionOrder: ExecutionPhase[];
102
+ estimatedDuration: number;
103
+ }
104
+ export interface ProjectInfo {
105
+ name: string;
106
+ root: string;
107
+ language: Language;
108
+ framework: Framework;
109
+ testFramework: TestFramework;
110
+ packageManager: PackageManager;
111
+ hasExistingTests: boolean;
112
+ existingTestPatterns: string[];
113
+ }
114
+ export type Framework = "hono" | "express" | "nestjs" | "next" | "react" | "react-native" | "expo" | "tauri" | "electron" | "fastify" | "none" | "unknown";
115
+ export type TestFramework = "vitest" | "jest" | "mocha" | "playwright" | "cypress" | "detox" | "pytest" | "go-test" | "unknown";
116
+ export type PackageManager = "bun" | "pnpm" | "npm" | "yarn";
117
+ export interface TestPlan {
118
+ id: string;
119
+ type: TestType;
120
+ target: TestTarget;
121
+ priority: "critical" | "high" | "medium" | "low";
122
+ description: string;
123
+ estimatedTests: number;
124
+ dependencies: string[];
125
+ }
126
+ export type TestType = "unit" | "integration" | "api" | "e2e-browser" | "e2e-mobile" | "e2e-desktop" | "snapshot" | "performance";
127
+ export interface TestTarget {
128
+ files: string[];
129
+ functions: string[];
130
+ endpoints: EndpointInfo[];
131
+ components: string[];
132
+ }
133
+ export interface ExecutionPhase {
134
+ phase: number;
135
+ plans: string[];
136
+ environment: ExecutionEnvironment;
137
+ }
138
+ export type ExecutionEnvironment = "local" | "cloud-sandbox" | "browser" | "mobile-simulator" | "desktop-app";
139
+ export interface GeneratedTest {
140
+ planId: string;
141
+ filePath: string;
142
+ content: string;
143
+ testType: TestType;
144
+ testCount: number;
145
+ framework: TestFramework;
146
+ }
147
+ export interface GeneratorContext {
148
+ plan: TestPlan;
149
+ project: ProjectInfo;
150
+ scanResults: CodeScanResult[];
151
+ existingTests: string[];
152
+ }
153
+ export interface GeneratorResult {
154
+ tests: GeneratedTest[];
155
+ warnings: string[];
156
+ skipped: SkippedItem[];
157
+ }
158
+ export interface SkippedItem {
159
+ target: string;
160
+ reason: string;
161
+ }
162
+ export interface ExecutionConfig {
163
+ environment: ExecutionEnvironment;
164
+ timeout: number;
165
+ retries: number;
166
+ parallel: boolean;
167
+ collectCoverage: boolean;
168
+ cloudConfig?: CloudConfig;
169
+ }
170
+ export interface CloudConfig {
171
+ provider: "e2b" | "docker" | "hetzner";
172
+ image?: string;
173
+ resources?: {
174
+ cpu: number;
175
+ memory: string;
176
+ };
177
+ }
178
+ export interface ExecutionResult {
179
+ planId: string;
180
+ status: "passed" | "failed" | "error" | "skipped" | "timeout";
181
+ totalTests: number;
182
+ passed: number;
183
+ failed: number;
184
+ skipped: number;
185
+ duration: number;
186
+ coverage: CoverageResult | null;
187
+ failures: TestFailure[];
188
+ output: string;
189
+ }
190
+ export interface CoverageResult {
191
+ lines: CoverageMetric;
192
+ branches: CoverageMetric;
193
+ functions: CoverageMetric;
194
+ statements: CoverageMetric;
195
+ }
196
+ export interface CoverageMetric {
197
+ total: number;
198
+ covered: number;
199
+ percentage: number;
200
+ }
201
+ export interface TestFailure {
202
+ testName: string;
203
+ message: string;
204
+ expected?: string;
205
+ actual?: string;
206
+ stack?: string;
207
+ }
208
+ export interface CoveritReport {
209
+ id: string;
210
+ timestamp: string;
211
+ duration: number;
212
+ project: ProjectInfo;
213
+ strategy: TestStrategy;
214
+ results: ExecutionResult[];
215
+ summary: ReportSummary;
216
+ }
217
+ export interface ReportSummary {
218
+ totalPlans: number;
219
+ totalTests: number;
220
+ passed: number;
221
+ failed: number;
222
+ skipped: number;
223
+ errorCount: number;
224
+ coverage: CoverageResult | null;
225
+ status: "all-passed" | "has-failures" | "has-errors";
226
+ testsByType: Record<TestType, TypeSummary>;
227
+ }
228
+ export interface TypeSummary {
229
+ total: number;
230
+ passed: number;
231
+ failed: number;
232
+ duration: number;
233
+ }
234
+ export interface CoveritConfig {
235
+ projectRoot: string;
236
+ targetPaths?: string[];
237
+ testTypes?: TestType[];
238
+ environment?: ExecutionEnvironment;
239
+ framework?: TestFramework;
240
+ skipExecution?: boolean;
241
+ generateOnly?: boolean;
242
+ coverageThreshold?: number;
243
+ cloudConfig?: CloudConfig;
244
+ ai?: {
245
+ provider?: "claude-cli" | "anthropic" | "openai" | "ollama" | "openai-compatible";
246
+ model?: string;
247
+ apiKey?: string;
248
+ baseUrl?: string;
249
+ };
250
+ }
251
+ export type CoveritEvent = {
252
+ type: "analysis:start";
253
+ data: {
254
+ files: number;
255
+ };
256
+ } | {
257
+ type: "analysis:complete";
258
+ data: {
259
+ strategy: TestStrategy;
260
+ };
261
+ } | {
262
+ type: "generation:start";
263
+ data: {
264
+ plan: TestPlan;
265
+ };
266
+ } | {
267
+ type: "generation:complete";
268
+ data: {
269
+ result: GeneratorResult;
270
+ };
271
+ } | {
272
+ type: "execution:start";
273
+ data: {
274
+ plan: TestPlan;
275
+ environment: ExecutionEnvironment;
276
+ };
277
+ } | {
278
+ type: "execution:complete";
279
+ data: {
280
+ result: ExecutionResult;
281
+ };
282
+ } | {
283
+ type: "report:complete";
284
+ data: {
285
+ report: CoveritReport;
286
+ };
287
+ } | {
288
+ type: "error";
289
+ data: {
290
+ message: string;
291
+ plan?: TestPlan;
292
+ };
293
+ };
294
+ export type CoveritEventHandler = (event: CoveritEvent) => void;
295
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Coverit — Core Types
3
+ *
4
+ * These types define the contracts between all modules:
5
+ * Analysis → Strategy → Generation → Execution → Reporting
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Coverit — Framework Detector
3
+ *
4
+ * Inspects package.json, lock files, and config files to determine
5
+ * the project's framework, test runner, package manager, and
6
+ * existing test infrastructure.
7
+ */
8
+ import type { Framework, TestFramework, PackageManager, ProjectInfo } from "../types/index.js";
9
+ /**
10
+ * Detects the primary application framework from package.json dependencies.
11
+ * Checks in specificity order — more specific frameworks first.
12
+ */
13
+ export declare function detectFramework(projectRoot: string): Promise<Framework>;
14
+ /**
15
+ * Detects the test framework by looking for known config files,
16
+ * then falling back to package.json dependencies.
17
+ */
18
+ export declare function detectTestFramework(projectRoot: string): Promise<TestFramework>;
19
+ /**
20
+ * Detects the package manager by checking for lock files.
21
+ */
22
+ export declare function detectPackageManager(projectRoot: string): Promise<PackageManager>;
23
+ /**
24
+ * Aggregates all detection results into a single ProjectInfo object.
25
+ * Also scans for existing test directories and patterns.
26
+ */
27
+ export declare function detectProjectInfo(projectRoot: string): Promise<ProjectInfo>;
28
+ //# sourceMappingURL=framework-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework-detector.d.ts","sourceRoot":"","sources":["../../src/utils/framework-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAW,EAEZ,MAAM,mBAAmB,CAAC;AA0B3B;;;GAGG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA4B7E;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CA8BxB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC,CAczB;AAgBD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC,CAoDtB"}