@mcptoolshop/venvkit 0.2.1 → 0.2.5

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 (57) hide show
  1. package/README.es.md +263 -0
  2. package/README.fr.md +263 -0
  3. package/README.hi.md +267 -0
  4. package/README.it.md +263 -0
  5. package/README.ja.md +263 -0
  6. package/README.md +16 -2
  7. package/README.pt-BR.md +263 -0
  8. package/README.zh.md +263 -0
  9. package/package.json +6 -5
  10. package/dist/doctorLite.d.ts +0 -75
  11. package/dist/doctorLite.d.ts.map +0 -1
  12. package/dist/doctorLite.js +0 -705
  13. package/dist/doctorLite.js.map +0 -1
  14. package/dist/doctorLite.test.d.ts +0 -2
  15. package/dist/doctorLite.test.d.ts.map +0 -1
  16. package/dist/doctorLite.test.js +0 -268
  17. package/dist/doctorLite.test.js.map +0 -1
  18. package/dist/index.d.ts +0 -6
  19. package/dist/index.d.ts.map +0 -1
  20. package/dist/index.js +0 -6
  21. package/dist/index.js.map +0 -1
  22. package/dist/mapRender.d.ts +0 -105
  23. package/dist/mapRender.d.ts.map +0 -1
  24. package/dist/mapRender.js +0 -718
  25. package/dist/mapRender.js.map +0 -1
  26. package/dist/mapRender.test.d.ts +0 -2
  27. package/dist/mapRender.test.d.ts.map +0 -1
  28. package/dist/mapRender.test.js +0 -470
  29. package/dist/mapRender.test.js.map +0 -1
  30. package/dist/map_cli.d.ts +0 -3
  31. package/dist/map_cli.d.ts.map +0 -1
  32. package/dist/map_cli.js +0 -278
  33. package/dist/map_cli.js.map +0 -1
  34. package/dist/runLog.d.ts +0 -71
  35. package/dist/runLog.d.ts.map +0 -1
  36. package/dist/runLog.js +0 -98
  37. package/dist/runLog.js.map +0 -1
  38. package/dist/runLog.test.d.ts +0 -2
  39. package/dist/runLog.test.d.ts.map +0 -1
  40. package/dist/runLog.test.js +0 -160
  41. package/dist/runLog.test.js.map +0 -1
  42. package/dist/scanEnvPaths.d.ts +0 -18
  43. package/dist/scanEnvPaths.d.ts.map +0 -1
  44. package/dist/scanEnvPaths.js +0 -174
  45. package/dist/scanEnvPaths.js.map +0 -1
  46. package/dist/taskCluster.d.ts +0 -62
  47. package/dist/taskCluster.d.ts.map +0 -1
  48. package/dist/taskCluster.js +0 -180
  49. package/dist/taskCluster.js.map +0 -1
  50. package/dist/taskCluster.test.d.ts +0 -2
  51. package/dist/taskCluster.test.d.ts.map +0 -1
  52. package/dist/taskCluster.test.js +0 -291
  53. package/dist/taskCluster.test.js.map +0 -1
  54. package/dist/vitest.config.d.ts +0 -3
  55. package/dist/vitest.config.d.ts.map +0 -1
  56. package/dist/vitest.config.js +0 -8
  57. package/dist/vitest.config.js.map +0 -1
@@ -1,291 +0,0 @@
1
- // taskCluster.test.ts
2
- // Unit tests for task signature clustering and flake detection
3
- import { describe, it, expect } from "vitest";
4
- import { signatureForRun, clusterRuns, isFlaky, isEnvDependentFlaky, getFailingEnvs, summarizeClusters, } from "./taskCluster.js";
5
- function makeRun(overrides = {}) {
6
- return {
7
- version: "1.0",
8
- runId: overrides.runId ?? `run_${Math.random().toString(36).slice(2, 10)}`,
9
- at: overrides.at ?? "2024-01-01T12:00:00Z",
10
- cwd: overrides.cwd ?? "C:\\repo",
11
- task: overrides.task ?? {
12
- name: overrides.taskName ?? "pytest",
13
- command: overrides.command ?? "pytest tests/",
14
- args: ["tests/"],
15
- requirements: {
16
- packages: overrides.packages ?? ["pytest"],
17
- tags: ["test"],
18
- },
19
- },
20
- selected: overrides.selected ?? {
21
- pythonPath: overrides.pythonPath ?? "C:\\repo\\.venv\\Scripts\\python.exe",
22
- score: 95,
23
- status: "good",
24
- },
25
- outcome: overrides.outcome ?? {
26
- ok: overrides.ok ?? true,
27
- exitCode: overrides.ok === false ? 1 : 0,
28
- durationMs: 1500,
29
- errorClass: overrides.ok === false ? (overrides.errorClass ?? "RUNTIME_ERROR") : undefined,
30
- },
31
- doctor: overrides.doctor,
32
- };
33
- }
34
- describe("taskCluster", () => {
35
- describe("signatureForRun", () => {
36
- it("generates stable signature for same task", () => {
37
- const run1 = makeRun({ taskName: "pytest", command: "pytest tests/" });
38
- const run2 = makeRun({ taskName: "pytest", command: "pytest tests/" });
39
- const sig1 = signatureForRun(run1);
40
- const sig2 = signatureForRun(run2);
41
- expect(sig1.sigId).toBe(sig2.sigId);
42
- expect(sig1.name).toBe("pytest");
43
- });
44
- it("generates different signatures for different tasks", () => {
45
- const run1 = makeRun({ taskName: "pytest", command: "pytest tests/" });
46
- const run2 = makeRun({ taskName: "lint", command: "ruff check ." });
47
- const sig1 = signatureForRun(run1);
48
- const sig2 = signatureForRun(run2);
49
- expect(sig1.sigId).not.toBe(sig2.sigId);
50
- });
51
- it("normalizes command whitespace", () => {
52
- const run1 = makeRun({ command: "pytest tests/" });
53
- const run2 = makeRun({ command: "pytest tests/" });
54
- const sig1 = signatureForRun(run1);
55
- const sig2 = signatureForRun(run2);
56
- expect(sig1.sigId).toBe(sig2.sigId);
57
- });
58
- it("includes requirements in signature", () => {
59
- const run1 = makeRun({ packages: ["pytest", "torch"] });
60
- const run2 = makeRun({ packages: ["pytest"] });
61
- const sig1 = signatureForRun(run1);
62
- const sig2 = signatureForRun(run2);
63
- expect(sig1.sigId).not.toBe(sig2.sigId);
64
- });
65
- });
66
- describe("clusterRuns", () => {
67
- it("clusters runs by signature", () => {
68
- const runs = [
69
- makeRun({ taskName: "pytest", ok: true }),
70
- makeRun({ taskName: "pytest", ok: true }),
71
- makeRun({ taskName: "pytest", ok: false }),
72
- makeRun({ taskName: "lint", ok: true }),
73
- ];
74
- const clusters = clusterRuns(runs);
75
- expect(clusters).toHaveLength(2);
76
- const pytestCluster = clusters.find((c) => c.sig.name === "pytest");
77
- expect(pytestCluster?.runs).toBe(3);
78
- expect(pytestCluster?.ok).toBe(2);
79
- expect(pytestCluster?.fail).toBe(1);
80
- const lintCluster = clusters.find((c) => c.sig.name === "lint");
81
- expect(lintCluster?.runs).toBe(1);
82
- expect(lintCluster?.ok).toBe(1);
83
- });
84
- it("computes success rate correctly", () => {
85
- const runs = [
86
- makeRun({ ok: true }),
87
- makeRun({ ok: true }),
88
- makeRun({ ok: false }),
89
- makeRun({ ok: false }),
90
- ];
91
- const clusters = clusterRuns(runs);
92
- expect(clusters[0]?.successRate).toBe(0.5);
93
- });
94
- it("tracks failure codes", () => {
95
- const runs = [
96
- makeRun({ ok: false, errorClass: "SSL_BROKEN" }),
97
- makeRun({ ok: false, errorClass: "SSL_BROKEN" }),
98
- makeRun({ ok: false, errorClass: "DLL_LOAD_FAIL" }),
99
- ];
100
- const clusters = clusterRuns(runs);
101
- expect(clusters[0]?.failureCounts["SSL_BROKEN"]).toBe(2);
102
- expect(clusters[0]?.failureCounts["DLL_LOAD_FAIL"]).toBe(1);
103
- expect(clusters[0]?.dominantFailure).toBe("SSL_BROKEN");
104
- });
105
- it("tracks per-env counts", () => {
106
- const runs = [
107
- makeRun({ pythonPath: "C:\\env1\\python.exe", ok: true }),
108
- makeRun({ pythonPath: "C:\\env1\\python.exe", ok: false }),
109
- makeRun({ pythonPath: "C:\\env2\\python.exe", ok: true }),
110
- ];
111
- const clusters = clusterRuns(runs);
112
- expect(clusters[0]?.envCounts["C:\\env1\\python.exe"]).toBe(2);
113
- expect(clusters[0]?.envCounts["C:\\env2\\python.exe"]).toBe(1);
114
- expect(clusters[0]?.envFailCounts["C:\\env1\\python.exe"]).toBe(1);
115
- expect(clusters[0]?.envOkCounts["C:\\env2\\python.exe"]).toBe(1);
116
- });
117
- it("uses latest timestamp", () => {
118
- const runs = [
119
- makeRun({ at: "2024-01-01T12:00:00Z" }),
120
- makeRun({ at: "2024-01-05T12:00:00Z" }),
121
- makeRun({ at: "2024-01-03T12:00:00Z" }),
122
- ];
123
- const clusters = clusterRuns(runs);
124
- expect(clusters[0]?.lastAt).toBe("2024-01-05T12:00:00Z");
125
- });
126
- it("sorts clusters by run count descending", () => {
127
- const runs = [
128
- makeRun({ taskName: "rare" }),
129
- makeRun({ taskName: "common" }),
130
- makeRun({ taskName: "common" }),
131
- makeRun({ taskName: "common" }),
132
- ];
133
- const clusters = clusterRuns(runs);
134
- expect(clusters[0]?.sig.name).toBe("common");
135
- expect(clusters[1]?.sig.name).toBe("rare");
136
- });
137
- });
138
- describe("isFlaky", () => {
139
- it("returns false if all runs succeed", () => {
140
- const cluster = {
141
- sig: { sigId: "task_abc", name: "test", command: "test", requirementsKey: "" },
142
- runs: 10,
143
- ok: 10,
144
- fail: 0,
145
- successRate: 1,
146
- lastAt: "2024-01-01T12:00:00Z",
147
- failureCounts: {},
148
- envCounts: {},
149
- envFailCounts: {},
150
- envOkCounts: {},
151
- };
152
- expect(isFlaky(cluster)).toBe(false);
153
- });
154
- it("returns false if all runs fail", () => {
155
- const cluster = {
156
- sig: { sigId: "task_abc", name: "test", command: "test", requirementsKey: "" },
157
- runs: 10,
158
- ok: 0,
159
- fail: 10,
160
- successRate: 0,
161
- lastAt: "2024-01-01T12:00:00Z",
162
- failureCounts: { RUN_FAILED: 10 },
163
- envCounts: {},
164
- envFailCounts: {},
165
- envOkCounts: {},
166
- };
167
- expect(isFlaky(cluster)).toBe(false);
168
- });
169
- it("returns true for mixed success/failure with moderate rate", () => {
170
- const cluster = {
171
- sig: { sigId: "task_abc", name: "test", command: "test", requirementsKey: "" },
172
- runs: 10,
173
- ok: 6,
174
- fail: 4,
175
- successRate: 0.6,
176
- lastAt: "2024-01-01T12:00:00Z",
177
- failureCounts: { RUN_FAILED: 4 },
178
- envCounts: {},
179
- envFailCounts: {},
180
- envOkCounts: {},
181
- };
182
- expect(isFlaky(cluster)).toBe(true);
183
- });
184
- it("returns false if success rate too low (< 20%)", () => {
185
- const cluster = {
186
- sig: { sigId: "task_abc", name: "test", command: "test", requirementsKey: "" },
187
- runs: 10,
188
- ok: 1,
189
- fail: 9,
190
- successRate: 0.1,
191
- lastAt: "2024-01-01T12:00:00Z",
192
- failureCounts: { RUN_FAILED: 9 },
193
- envCounts: {},
194
- envFailCounts: {},
195
- envOkCounts: {},
196
- };
197
- expect(isFlaky(cluster)).toBe(false);
198
- });
199
- });
200
- describe("isEnvDependentFlaky", () => {
201
- it("returns true when task succeeds on one env, fails on another", () => {
202
- const cluster = {
203
- sig: { sigId: "task_abc", name: "test", command: "test", requirementsKey: "" },
204
- runs: 4,
205
- ok: 2,
206
- fail: 2,
207
- successRate: 0.5,
208
- lastAt: "2024-01-01T12:00:00Z",
209
- failureCounts: { RUN_FAILED: 2 },
210
- envCounts: { "env1": 2, "env2": 2 },
211
- envFailCounts: { "env2": 2 },
212
- envOkCounts: { "env1": 2 },
213
- };
214
- expect(isEnvDependentFlaky(cluster)).toBe(true);
215
- });
216
- it("returns false with only one env", () => {
217
- const cluster = {
218
- sig: { sigId: "task_abc", name: "test", command: "test", requirementsKey: "" },
219
- runs: 4,
220
- ok: 2,
221
- fail: 2,
222
- successRate: 0.5,
223
- lastAt: "2024-01-01T12:00:00Z",
224
- failureCounts: { RUN_FAILED: 2 },
225
- envCounts: { "env1": 4 },
226
- envFailCounts: { "env1": 2 },
227
- envOkCounts: { "env1": 2 },
228
- };
229
- expect(isEnvDependentFlaky(cluster)).toBe(false);
230
- });
231
- });
232
- describe("getFailingEnvs", () => {
233
- it("returns envs sorted by fail count", () => {
234
- const cluster = {
235
- sig: { sigId: "task_abc", name: "test", command: "test", requirementsKey: "" },
236
- runs: 10,
237
- ok: 5,
238
- fail: 5,
239
- successRate: 0.5,
240
- lastAt: "2024-01-01T12:00:00Z",
241
- failureCounts: { RUN_FAILED: 5 },
242
- envCounts: { "env1": 4, "env2": 4, "env3": 2 },
243
- envFailCounts: { "env1": 1, "env2": 3, "env3": 1 },
244
- envOkCounts: { "env1": 3, "env2": 1, "env3": 1 },
245
- };
246
- const failing = getFailingEnvs(cluster, 2);
247
- expect(failing).toHaveLength(2);
248
- expect(failing[0]?.pythonPath).toBe("env2");
249
- expect(failing[0]?.failCount).toBe(3);
250
- expect(failing[0]?.failRate).toBe(0.75);
251
- });
252
- });
253
- describe("summarizeClusters", () => {
254
- it("aggregates totals across clusters", () => {
255
- const clusters = [
256
- {
257
- sig: { sigId: "task_1", name: "test1", command: "test", requirementsKey: "" },
258
- runs: 20,
259
- ok: 20,
260
- fail: 0,
261
- successRate: 1.0, // 100% success - NOT flaky
262
- lastAt: "2024-01-01T12:00:00Z",
263
- failureCounts: {},
264
- envCounts: {},
265
- envFailCounts: {},
266
- envOkCounts: {},
267
- },
268
- {
269
- sig: { sigId: "task_2", name: "test2", command: "test", requirementsKey: "" },
270
- runs: 5,
271
- ok: 3,
272
- fail: 2,
273
- successRate: 0.6, // 60% success - flaky (between 20% and 95%)
274
- lastAt: "2024-01-01T12:00:00Z",
275
- failureCounts: { SSL_BROKEN: 2 },
276
- envCounts: {},
277
- envFailCounts: {},
278
- envOkCounts: {},
279
- },
280
- ];
281
- const summary = summarizeClusters(clusters);
282
- expect(summary.totalTasks).toBe(2);
283
- expect(summary.totalRuns).toBe(25);
284
- expect(summary.totalOk).toBe(23);
285
- expect(summary.totalFail).toBe(2);
286
- expect(summary.overallSuccessRate).toBeCloseTo(23 / 25);
287
- expect(summary.flakyCount).toBe(1); // test2 is flaky (60% success)
288
- });
289
- });
290
- });
291
- //# sourceMappingURL=taskCluster.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taskCluster.test.js","sourceRoot":"","sources":["../taskCluster.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- declare const _default: import("vite").UserConfig;
2
- export default _default;
3
- //# sourceMappingURL=vitest.config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";AAEA,wBAKG"}
@@ -1,8 +0,0 @@
1
- import { defineConfig } from "vitest/config";
2
- export default defineConfig({
3
- test: {
4
- environment: "node",
5
- include: ["**/*.test.ts"],
6
- },
7
- });
8
- //# sourceMappingURL=vitest.config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,cAAc,CAAC;KAC1B;CACF,CAAC,CAAC"}