@paretools/python 0.3.0 → 0.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 (51) hide show
  1. package/README.md +45 -12
  2. package/dist/index.js +1 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/formatters.d.ts +89 -1
  5. package/dist/lib/formatters.d.ts.map +1 -1
  6. package/dist/lib/formatters.js +184 -0
  7. package/dist/lib/formatters.js.map +1 -1
  8. package/dist/lib/parsers.d.ts +13 -1
  9. package/dist/lib/parsers.d.ts.map +1 -1
  10. package/dist/lib/parsers.js +175 -4
  11. package/dist/lib/parsers.js.map +1 -1
  12. package/dist/lib/python-runner.d.ts +3 -0
  13. package/dist/lib/python-runner.d.ts.map +1 -1
  14. package/dist/lib/python-runner.js +9 -0
  15. package/dist/lib/python-runner.js.map +1 -1
  16. package/dist/schemas/index.d.ts +79 -195
  17. package/dist/schemas/index.d.ts.map +1 -1
  18. package/dist/schemas/index.js +49 -4
  19. package/dist/schemas/index.js.map +1 -1
  20. package/dist/tools/black.d.ts +3 -0
  21. package/dist/tools/black.d.ts.map +1 -0
  22. package/dist/tools/black.js +48 -0
  23. package/dist/tools/black.js.map +1 -0
  24. package/dist/tools/index.d.ts.map +1 -1
  25. package/dist/tools/index.js +8 -0
  26. package/dist/tools/index.js.map +1 -1
  27. package/dist/tools/mypy.d.ts.map +1 -1
  28. package/dist/tools/mypy.js +19 -6
  29. package/dist/tools/mypy.js.map +1 -1
  30. package/dist/tools/pip-audit.d.ts.map +1 -1
  31. package/dist/tools/pip-audit.js +21 -6
  32. package/dist/tools/pip-audit.js.map +1 -1
  33. package/dist/tools/pip-install.d.ts.map +1 -1
  34. package/dist/tools/pip-install.js +37 -8
  35. package/dist/tools/pip-install.js.map +1 -1
  36. package/dist/tools/pytest.d.ts +3 -0
  37. package/dist/tools/pytest.d.ts.map +1 -0
  38. package/dist/tools/pytest.js +57 -0
  39. package/dist/tools/pytest.js.map +1 -0
  40. package/dist/tools/ruff.d.ts.map +1 -1
  41. package/dist/tools/ruff.js +19 -6
  42. package/dist/tools/ruff.js.map +1 -1
  43. package/dist/tools/uv-install.d.ts +3 -0
  44. package/dist/tools/uv-install.d.ts.map +1 -0
  45. package/dist/tools/uv-install.js +66 -0
  46. package/dist/tools/uv-install.js.map +1 -0
  47. package/dist/tools/uv-run.d.ts +3 -0
  48. package/dist/tools/uv-run.d.ts.map +1 -0
  49. package/dist/tools/uv-run.js +40 -0
  50. package/dist/tools/uv-run.js.map +1 -0
  51. package/package.json +21 -9
@@ -1,4 +1,4 @@
1
- // pip install output: "Successfully installed pkg1-1.0 pkg2-2.0" or "Requirement already satisfied"
1
+ /** Parses `pip install` output into structured data with installed packages and satisfaction status. */
2
2
  export function parsePipInstall(stdout, stderr, exitCode) {
3
3
  const output = stdout + "\n" + stderr;
4
4
  const alreadySatisfied = output.includes("already satisfied");
@@ -23,8 +23,8 @@ export function parsePipInstall(stdout, stderr, exitCode) {
23
23
  total: installed.length,
24
24
  };
25
25
  }
26
- // mypy output: file:line: severity: message [code]
27
26
  const MYPY_RE = /^(.+?):(\d+)(?::(\d+))?: (error|warning|note): (.+?)(?:\s+\[([^\]]+)\])?$/;
27
+ /** Parses mypy type-checker output into structured diagnostics with file locations and error codes. */
28
28
  export function parseMypyOutput(stdout, exitCode) {
29
29
  const lines = stdout.split("\n");
30
30
  const diagnostics = [];
@@ -51,7 +51,7 @@ export function parseMypyOutput(stdout, exitCode) {
51
51
  warnings,
52
52
  };
53
53
  }
54
- // ruff check --output-format json returns JSON array
54
+ /** Parses `ruff check --output-format json` output into structured lint diagnostics with fixability info. */
55
55
  export function parseRuffJson(stdout) {
56
56
  let entries;
57
57
  try {
@@ -73,7 +73,7 @@ export function parseRuffJson(stdout) {
73
73
  const fixable = diagnostics.filter((d) => d.fixable).length;
74
74
  return { diagnostics, total: diagnostics.length, fixable };
75
75
  }
76
- // pip-audit --format json
76
+ /** Parses `pip-audit --format json` output into structured vulnerability data with fix versions. */
77
77
  export function parsePipAuditJson(stdout) {
78
78
  let data;
79
79
  try {
@@ -91,4 +91,175 @@ export function parsePipAuditJson(stdout) {
91
91
  })));
92
92
  return { vulnerabilities, total: vulnerabilities.length };
93
93
  }
94
+ const PYTEST_DURATION_RE = /in ([\d.]+)s/;
95
+ function extractCount(line, label) {
96
+ const m = line.match(label);
97
+ return m ? parseInt(m[1], 10) : 0;
98
+ }
99
+ /** Parses pytest output into structured test results with pass/fail/error/skip counts and failure details. */
100
+ export function parsePytestOutput(stdout, stderr, exitCode) {
101
+ const output = stdout + "\n" + stderr;
102
+ const lines = output.split("\n");
103
+ // Find the summary line (e.g., "=== 3 passed, 1 failed in 0.52s ===")
104
+ let passed = 0;
105
+ let failed = 0;
106
+ let errors = 0;
107
+ let skipped = 0;
108
+ let duration = 0;
109
+ for (const line of lines) {
110
+ // Match lines containing pytest summary markers (== ... in Xs ==) or standalone counts
111
+ if (/\d+ (?:passed|failed|error|skipped)/.test(line) || /in [\d.]+s/.test(line)) {
112
+ passed = Math.max(passed, extractCount(line, /(\d+) passed/));
113
+ failed = Math.max(failed, extractCount(line, /(\d+) failed/));
114
+ errors = Math.max(errors, extractCount(line, /(\d+) errors?/));
115
+ skipped = Math.max(skipped, extractCount(line, /(\d+) skipped/));
116
+ const durationMatch = line.match(PYTEST_DURATION_RE);
117
+ if (durationMatch) {
118
+ duration = parseFloat(durationMatch[1]);
119
+ }
120
+ }
121
+ }
122
+ // Check for "no tests ran" case
123
+ const noTests = output.includes("no tests ran");
124
+ if (noTests && passed === 0 && failed === 0 && errors === 0) {
125
+ return {
126
+ success: exitCode === 0 || exitCode === 5,
127
+ passed: 0,
128
+ failed: 0,
129
+ errors: 0,
130
+ skipped: 0,
131
+ total: 0,
132
+ duration,
133
+ failures: [],
134
+ };
135
+ }
136
+ // Parse failure blocks from short traceback
137
+ const failures = [];
138
+ const failureBlockRe = /_{3,}\s+(.+?)\s+_{3,}/g;
139
+ let failMatch;
140
+ while ((failMatch = failureBlockRe.exec(output)) !== null) {
141
+ const testName = failMatch[1].trim();
142
+ const startIdx = failMatch.index + failMatch[0].length;
143
+ // Find the end of this failure block (next FAILED marker, next separator, or end)
144
+ const remaining = output.slice(startIdx);
145
+ const endMatch = remaining.match(/(?:_{3,}|={3,})/);
146
+ const block = endMatch ? remaining.slice(0, endMatch.index) : remaining;
147
+ // Extract the most relevant error line
148
+ const blockLines = block
149
+ .split("\n")
150
+ .map((l) => l.trim())
151
+ .filter(Boolean);
152
+ let message = "";
153
+ // Look for assertion errors, E lines, or the last meaningful line
154
+ for (const bLine of blockLines) {
155
+ if (bLine.startsWith("E ")) {
156
+ message = message ? message + "\n" + bLine.slice(2).trim() : bLine.slice(2).trim();
157
+ }
158
+ }
159
+ if (!message && blockLines.length > 0) {
160
+ message = blockLines[blockLines.length - 1];
161
+ }
162
+ failures.push({ test: testName, message });
163
+ }
164
+ const total = passed + failed + errors + skipped;
165
+ return {
166
+ success: exitCode === 0,
167
+ passed,
168
+ failed,
169
+ errors,
170
+ skipped,
171
+ total,
172
+ duration,
173
+ failures,
174
+ };
175
+ }
176
+ // Matches uv install output lines like: " + package==version" or "Installed N packages in Ns"
177
+ const UV_INSTALLED_PKG_RE = /^\s*\+\s+(\S+)==(\S+)/;
178
+ const UV_SUMMARY_RE = /Installed (\d+) packages? in ([\d.]+)/;
179
+ /** Parses uv pip install output into structured data with installed packages. */
180
+ export function parseUvInstall(stdout, stderr, exitCode) {
181
+ const output = stdout + "\n" + stderr;
182
+ const lines = output.split("\n");
183
+ const installed = [];
184
+ let duration = 0;
185
+ for (const line of lines) {
186
+ const pkgMatch = line.match(UV_INSTALLED_PKG_RE);
187
+ if (pkgMatch) {
188
+ installed.push({ name: pkgMatch[1], version: pkgMatch[2] });
189
+ }
190
+ const summaryMatch = line.match(UV_SUMMARY_RE);
191
+ if (summaryMatch) {
192
+ duration = parseFloat(summaryMatch[2]);
193
+ }
194
+ }
195
+ return {
196
+ success: exitCode === 0,
197
+ installed,
198
+ total: installed.length,
199
+ duration,
200
+ };
201
+ }
202
+ /** Parses uv run output into structured result with exit code, stdout, stderr. */
203
+ export function parseUvRun(stdout, stderr, exitCode, durationMs) {
204
+ return {
205
+ exitCode,
206
+ stdout,
207
+ stderr,
208
+ success: exitCode === 0,
209
+ duration: Math.round(durationMs) / 1000,
210
+ };
211
+ }
212
+ const BLACK_REFORMAT_RE = /^would reformat (.+)$/;
213
+ const BLACK_REFORMATTED_RE = /^reformatted (.+)$/;
214
+ const BLACK_SUMMARY_RE = /(\d+) files? (?:would be )?reformatted(?:,\s*(\d+) files? (?:would be )?left unchanged)?|(\d+) files? (?:would be )?left unchanged/;
215
+ /** Parses Black code formatter output into structured result with file counts. */
216
+ export function parseBlackOutput(stdout, stderr, exitCode) {
217
+ // Black writes most output to stderr
218
+ const output = stdout + "\n" + stderr;
219
+ const lines = output.split("\n");
220
+ const wouldReformat = [];
221
+ let filesChanged = 0;
222
+ let filesUnchanged = 0;
223
+ for (const line of lines) {
224
+ const wouldMatch = line.match(BLACK_REFORMAT_RE);
225
+ if (wouldMatch) {
226
+ wouldReformat.push(wouldMatch[1].trim());
227
+ }
228
+ const reformattedMatch = line.match(BLACK_REFORMATTED_RE);
229
+ if (reformattedMatch) {
230
+ wouldReformat.push(reformattedMatch[1].trim());
231
+ }
232
+ }
233
+ // Parse summary line
234
+ for (const line of lines) {
235
+ const summaryMatch = line.match(BLACK_SUMMARY_RE);
236
+ if (summaryMatch) {
237
+ if (summaryMatch[1]) {
238
+ filesChanged = parseInt(summaryMatch[1], 10);
239
+ filesUnchanged = summaryMatch[2] ? parseInt(summaryMatch[2], 10) : 0;
240
+ }
241
+ else if (summaryMatch[3]) {
242
+ filesChanged = 0;
243
+ filesUnchanged = parseInt(summaryMatch[3], 10);
244
+ }
245
+ }
246
+ }
247
+ // If we found "would reformat" lines but no summary, use those counts
248
+ if (filesChanged === 0 && wouldReformat.length > 0) {
249
+ filesChanged = wouldReformat.length;
250
+ }
251
+ const filesChecked = filesChanged + filesUnchanged;
252
+ // In check mode, success means no files need reformatting
253
+ // In format mode, success is always true (exitCode 0) unless black errors
254
+ // exitCode 1 in check mode = files would be reformatted
255
+ // exitCode 123 = internal error
256
+ const success = exitCode === 0;
257
+ return {
258
+ filesChanged,
259
+ filesUnchanged,
260
+ filesChecked,
261
+ success,
262
+ wouldReformat,
263
+ };
264
+ }
94
265
  //# sourceMappingURL=parsers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"AAeA,wGAAwG;AACxG,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,MAAc,EAAE,QAAgB;IAC9E,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;IACtC,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAE9D,MAAM,SAAS,GAAwC,EAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;oBAC5B,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;iBACjC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,QAAQ,KAAK,CAAC;QACvB,SAAS;QACT,gBAAgB;QAChB,KAAK,EAAE,SAAS,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,GAAG,2EAA2E,CAAC;AAE5F,uGAAuG;AACvG,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,QAAgB;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,WAAW,GAAqB,EAAE,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,KAAK,EAAE,CAAC;YACV,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACd,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC5B,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrD,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAiC;gBAClD,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBACjB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACxE,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CACzD,CAAC,MAAM,CAAC;IAET,OAAO;QACL,OAAO,EAAE,QAAQ,KAAK,CAAC;QACvB,WAAW;QACX,KAAK,EAAE,WAAW,CAAC,MAAM;QACzB,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,IAAI,OAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtC,IAAI,EAAE,CAAC,CAAC,QAAQ;QAChB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG;QACpB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM;QACzB,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,GAAG;QAC5B,SAAS,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM;QACjC,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;KACjB,CAAC,CAAC,CAAC;IAEJ,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAE5D,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7D,CAAC;AAWD,oGAAoG;AACpG,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,IAAI,IAAkB,CAAC;IACvB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAChE,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;QAChC,WAAW,EAAE,CAAC,CAAC,YAAY,IAAI,EAAE;KAClC,CAAC,CAAC,CACJ,CAAC;IAEF,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC;AAC5D,CAAC;AAcD,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAE1C,SAAS,YAAY,CAAC,IAAY,EAAE,KAAa;IAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,MAAc,EAAE,QAAgB;IAChF,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEjC,sEAAsE;IACtE,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,uFAAuF;QACvF,IAAI,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChF,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;YAC9D,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;YAC9D,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;YAC/D,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;YAEjE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACrD,IAAI,aAAa,EAAE,CAAC;gBAClB,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO;YACL,OAAO,EAAE,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC;YACzC,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;YACR,QAAQ;YACR,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,4CAA4C;IAC5C,MAAM,QAAQ,GAAwC,EAAE,CAAC;IACzD,MAAM,cAAc,GAAG,wBAAwB,CAAC;IAChD,IAAI,SAAiC,CAAC;IACtC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAEvD,kFAAkF;QAClF,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAExE,uCAAuC;QACvC,MAAM,UAAU,GAAG,KAAK;aACrB,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,kEAAkE;QAClE,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACrF,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAEjD,OAAO;QACL,OAAO,EAAE,QAAQ,KAAK,CAAC;QACvB,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,QAAQ;QACR,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,8FAA8F;AAC9F,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AACpD,MAAM,aAAa,GAAG,uCAAuC,CAAC;AAE9D,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,MAAc,EAAE,QAAgB;IAC7E,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEjC,MAAM,SAAS,GAAwC,EAAE,CAAC;IAC1D,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACjD,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,YAAY,EAAE,CAAC;YACjB,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,QAAQ,KAAK,CAAC;QACvB,SAAS;QACT,KAAK,EAAE,SAAS,CAAC,MAAM;QACvB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,UAAU,CACxB,MAAc,EACd,MAAc,EACd,QAAgB,EAChB,UAAkB;IAElB,OAAO;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO,EAAE,QAAQ,KAAK,CAAC;QACvB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAClD,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAClD,MAAM,gBAAgB,GACpB,oIAAoI,CAAC;AAEvI,kFAAkF;AAClF,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,MAAc,EAAE,QAAgB;IAC/E,qCAAqC;IACrC,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEjC,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjD,IAAI,UAAU,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC1D,IAAI,gBAAgB,EAAE,CAAC;YACrB,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAClD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7C,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC;iBAAM,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3B,YAAY,GAAG,CAAC,CAAC;gBACjB,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,IAAI,YAAY,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,MAAM,YAAY,GAAG,YAAY,GAAG,cAAc,CAAC;IAEnD,0DAA0D;IAC1D,0EAA0E;IAC1E,wDAAwD;IACxD,gCAAgC;IAChC,MAAM,OAAO,GAAG,QAAQ,KAAK,CAAC,CAAC;IAE/B,OAAO;QACL,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,OAAO;QACP,aAAa;KACd,CAAC;AACJ,CAAC"}
@@ -2,4 +2,7 @@ import { type RunResult } from "@paretools/shared";
2
2
  export declare function pip(args: string[], cwd?: string): Promise<RunResult>;
3
3
  export declare function mypy(args: string[], cwd?: string): Promise<RunResult>;
4
4
  export declare function ruff(args: string[], cwd?: string): Promise<RunResult>;
5
+ export declare function pytest(args: string[], cwd?: string): Promise<RunResult>;
6
+ export declare function uv(args: string[], cwd?: string): Promise<RunResult>;
7
+ export declare function black(args: string[], cwd?: string): Promise<RunResult>;
5
8
  //# sourceMappingURL=python-runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"python-runner.d.ts","sourceRoot":"","sources":["../../src/lib/python-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAExD,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE1E;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE3E;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE3E"}
1
+ {"version":3,"file":"python-runner.d.ts","sourceRoot":"","sources":["../../src/lib/python-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAExD,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE1E;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE3E;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE3E;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE7E;AAED,wBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAEzE;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE5E"}
@@ -8,4 +8,13 @@ export async function mypy(args, cwd) {
8
8
  export async function ruff(args, cwd) {
9
9
  return run("ruff", args, { cwd });
10
10
  }
11
+ export async function pytest(args, cwd) {
12
+ return run("pytest", args, { cwd, timeout: 300_000 });
13
+ }
14
+ export async function uv(args, cwd) {
15
+ return run("uv", args, { cwd, timeout: 120_000 });
16
+ }
17
+ export async function black(args, cwd) {
18
+ return run("black", args, { cwd });
19
+ }
11
20
  //# sourceMappingURL=python-runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"python-runner.js","sourceRoot":"","sources":["../../src/lib/python-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAkB,MAAM,mBAAmB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAc,EAAE,GAAY;IACpD,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc,EAAE,GAAY;IACrD,OAAO,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc,EAAE,GAAY;IACrD,OAAO,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"python-runner.js","sourceRoot":"","sources":["../../src/lib/python-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAkB,MAAM,mBAAmB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAc,EAAE,GAAY;IACpD,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc,EAAE,GAAY;IACrD,OAAO,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc,EAAE,GAAY;IACrD,OAAO,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc,EAAE,GAAY;IACvD,OAAO,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAc,EAAE,GAAY;IACnD,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,IAAc,EAAE,GAAY;IACtD,OAAO,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACrC,CAAC"}
@@ -1,113 +1,49 @@
1
1
  import { z } from "zod";
2
+ /** Zod schema for structured pip install output with installed packages and satisfaction status. */
2
3
  export declare const PipInstallSchema: z.ZodObject<{
3
4
  success: z.ZodBoolean;
4
5
  installed: z.ZodArray<z.ZodObject<{
5
6
  name: z.ZodString;
6
7
  version: z.ZodString;
7
- }, "strip", z.ZodTypeAny, {
8
- name: string;
9
- version: string;
10
- }, {
11
- name: string;
12
- version: string;
13
- }>, "many">;
8
+ }, z.core.$strip>>;
14
9
  alreadySatisfied: z.ZodBoolean;
15
10
  total: z.ZodNumber;
16
- }, "strip", z.ZodTypeAny, {
17
- success: boolean;
18
- installed: {
19
- name: string;
20
- version: string;
21
- }[];
22
- alreadySatisfied: boolean;
23
- total: number;
24
- }, {
25
- success: boolean;
26
- installed: {
27
- name: string;
28
- version: string;
29
- }[];
30
- alreadySatisfied: boolean;
31
- total: number;
32
- }>;
11
+ }, z.core.$strip>;
33
12
  export type PipInstall = z.infer<typeof PipInstallSchema>;
13
+ /** Zod schema for a single mypy diagnostic with file location, severity, message, and error code. */
34
14
  export declare const MypyDiagnosticSchema: z.ZodObject<{
35
15
  file: z.ZodString;
36
16
  line: z.ZodNumber;
37
17
  column: z.ZodOptional<z.ZodNumber>;
38
- severity: z.ZodEnum<["error", "warning", "note"]>;
18
+ severity: z.ZodEnum<{
19
+ error: "error";
20
+ warning: "warning";
21
+ note: "note";
22
+ }>;
39
23
  message: z.ZodString;
40
24
  code: z.ZodOptional<z.ZodString>;
41
- }, "strip", z.ZodTypeAny, {
42
- message: string;
43
- file: string;
44
- line: number;
45
- severity: "error" | "warning" | "note";
46
- code?: string | undefined;
47
- column?: number | undefined;
48
- }, {
49
- message: string;
50
- file: string;
51
- line: number;
52
- severity: "error" | "warning" | "note";
53
- code?: string | undefined;
54
- column?: number | undefined;
55
- }>;
25
+ }, z.core.$strip>;
26
+ /** Zod schema for structured mypy output including success status, diagnostics, and error/warning counts. */
56
27
  export declare const MypyResultSchema: z.ZodObject<{
57
28
  success: z.ZodBoolean;
58
29
  diagnostics: z.ZodArray<z.ZodObject<{
59
30
  file: z.ZodString;
60
31
  line: z.ZodNumber;
61
32
  column: z.ZodOptional<z.ZodNumber>;
62
- severity: z.ZodEnum<["error", "warning", "note"]>;
33
+ severity: z.ZodEnum<{
34
+ error: "error";
35
+ warning: "warning";
36
+ note: "note";
37
+ }>;
63
38
  message: z.ZodString;
64
39
  code: z.ZodOptional<z.ZodString>;
65
- }, "strip", z.ZodTypeAny, {
66
- message: string;
67
- file: string;
68
- line: number;
69
- severity: "error" | "warning" | "note";
70
- code?: string | undefined;
71
- column?: number | undefined;
72
- }, {
73
- message: string;
74
- file: string;
75
- line: number;
76
- severity: "error" | "warning" | "note";
77
- code?: string | undefined;
78
- column?: number | undefined;
79
- }>, "many">;
40
+ }, z.core.$strip>>;
80
41
  total: z.ZodNumber;
81
42
  errors: z.ZodNumber;
82
43
  warnings: z.ZodNumber;
83
- }, "strip", z.ZodTypeAny, {
84
- success: boolean;
85
- total: number;
86
- diagnostics: {
87
- message: string;
88
- file: string;
89
- line: number;
90
- severity: "error" | "warning" | "note";
91
- code?: string | undefined;
92
- column?: number | undefined;
93
- }[];
94
- errors: number;
95
- warnings: number;
96
- }, {
97
- success: boolean;
98
- total: number;
99
- diagnostics: {
100
- message: string;
101
- file: string;
102
- line: number;
103
- severity: "error" | "warning" | "note";
104
- code?: string | undefined;
105
- column?: number | undefined;
106
- }[];
107
- errors: number;
108
- warnings: number;
109
- }>;
44
+ }, z.core.$strip>;
110
45
  export type MypyResult = z.infer<typeof MypyResultSchema>;
46
+ /** Zod schema for a single ruff diagnostic with file location, rule code, message, and fixability. */
111
47
  export declare const RuffDiagnosticSchema: z.ZodObject<{
112
48
  file: z.ZodString;
113
49
  line: z.ZodNumber;
@@ -117,25 +53,8 @@ export declare const RuffDiagnosticSchema: z.ZodObject<{
117
53
  code: z.ZodString;
118
54
  message: z.ZodString;
119
55
  fixable: z.ZodBoolean;
120
- }, "strip", z.ZodTypeAny, {
121
- code: string;
122
- message: string;
123
- file: string;
124
- line: number;
125
- column: number;
126
- fixable: boolean;
127
- endLine?: number | undefined;
128
- endColumn?: number | undefined;
129
- }, {
130
- code: string;
131
- message: string;
132
- file: string;
133
- line: number;
134
- column: number;
135
- fixable: boolean;
136
- endLine?: number | undefined;
137
- endColumn?: number | undefined;
138
- }>;
56
+ }, z.core.$strip>;
57
+ /** Zod schema for structured ruff check output with diagnostics, total count, and fixable count. */
139
58
  export declare const RuffResultSchema: z.ZodObject<{
140
59
  diagnostics: z.ZodArray<z.ZodObject<{
141
60
  file: z.ZodString;
@@ -146,113 +65,78 @@ export declare const RuffResultSchema: z.ZodObject<{
146
65
  code: z.ZodString;
147
66
  message: z.ZodString;
148
67
  fixable: z.ZodBoolean;
149
- }, "strip", z.ZodTypeAny, {
150
- code: string;
151
- message: string;
152
- file: string;
153
- line: number;
154
- column: number;
155
- fixable: boolean;
156
- endLine?: number | undefined;
157
- endColumn?: number | undefined;
158
- }, {
159
- code: string;
160
- message: string;
161
- file: string;
162
- line: number;
163
- column: number;
164
- fixable: boolean;
165
- endLine?: number | undefined;
166
- endColumn?: number | undefined;
167
- }>, "many">;
68
+ }, z.core.$strip>>;
168
69
  total: z.ZodNumber;
169
70
  fixable: z.ZodNumber;
170
- }, "strip", z.ZodTypeAny, {
171
- total: number;
172
- diagnostics: {
173
- code: string;
174
- message: string;
175
- file: string;
176
- line: number;
177
- column: number;
178
- fixable: boolean;
179
- endLine?: number | undefined;
180
- endColumn?: number | undefined;
181
- }[];
182
- fixable: number;
183
- }, {
184
- total: number;
185
- diagnostics: {
186
- code: string;
187
- message: string;
188
- file: string;
189
- line: number;
190
- column: number;
191
- fixable: boolean;
192
- endLine?: number | undefined;
193
- endColumn?: number | undefined;
194
- }[];
195
- fixable: number;
196
- }>;
71
+ }, z.core.$strip>;
197
72
  export type RuffResult = z.infer<typeof RuffResultSchema>;
73
+ /** Zod schema for a single pip-audit vulnerability with package name, version, ID, and fix versions. */
198
74
  export declare const PipAuditVulnSchema: z.ZodObject<{
199
75
  name: z.ZodString;
200
76
  version: z.ZodString;
201
77
  id: z.ZodString;
202
78
  description: z.ZodString;
203
- fixVersions: z.ZodArray<z.ZodString, "many">;
204
- }, "strip", z.ZodTypeAny, {
205
- name: string;
206
- version: string;
207
- id: string;
208
- description: string;
209
- fixVersions: string[];
210
- }, {
211
- name: string;
212
- version: string;
213
- id: string;
214
- description: string;
215
- fixVersions: string[];
216
- }>;
79
+ fixVersions: z.ZodArray<z.ZodString>;
80
+ }, z.core.$strip>;
81
+ /** Zod schema for structured pip-audit output with vulnerability list and total count. */
217
82
  export declare const PipAuditResultSchema: z.ZodObject<{
218
83
  vulnerabilities: z.ZodArray<z.ZodObject<{
219
84
  name: z.ZodString;
220
85
  version: z.ZodString;
221
86
  id: z.ZodString;
222
87
  description: z.ZodString;
223
- fixVersions: z.ZodArray<z.ZodString, "many">;
224
- }, "strip", z.ZodTypeAny, {
225
- name: string;
226
- version: string;
227
- id: string;
228
- description: string;
229
- fixVersions: string[];
230
- }, {
231
- name: string;
232
- version: string;
233
- id: string;
234
- description: string;
235
- fixVersions: string[];
236
- }>, "many">;
88
+ fixVersions: z.ZodArray<z.ZodString>;
89
+ }, z.core.$strip>>;
237
90
  total: z.ZodNumber;
238
- }, "strip", z.ZodTypeAny, {
239
- total: number;
240
- vulnerabilities: {
241
- name: string;
242
- version: string;
243
- id: string;
244
- description: string;
245
- fixVersions: string[];
246
- }[];
247
- }, {
248
- total: number;
249
- vulnerabilities: {
250
- name: string;
251
- version: string;
252
- id: string;
253
- description: string;
254
- fixVersions: string[];
255
- }[];
256
- }>;
91
+ }, z.core.$strip>;
257
92
  export type PipAuditResult = z.infer<typeof PipAuditResultSchema>;
93
+ /** Zod schema for a single pytest failure with test name and failure message. */
94
+ export declare const PytestFailureSchema: z.ZodObject<{
95
+ test: z.ZodString;
96
+ message: z.ZodString;
97
+ }, z.core.$strip>;
98
+ /** Zod schema for structured pytest output with pass/fail/error/skip counts and failure details. */
99
+ export declare const PytestResultSchema: z.ZodObject<{
100
+ success: z.ZodBoolean;
101
+ passed: z.ZodNumber;
102
+ failed: z.ZodNumber;
103
+ errors: z.ZodNumber;
104
+ skipped: z.ZodNumber;
105
+ total: z.ZodNumber;
106
+ duration: z.ZodNumber;
107
+ failures: z.ZodArray<z.ZodObject<{
108
+ test: z.ZodString;
109
+ message: z.ZodString;
110
+ }, z.core.$strip>>;
111
+ }, z.core.$strip>;
112
+ export type PytestResult = z.infer<typeof PytestResultSchema>;
113
+ /** Zod schema for structured uv install output with installed packages and count. */
114
+ export declare const UvInstallSchema: z.ZodObject<{
115
+ success: z.ZodBoolean;
116
+ installed: z.ZodArray<z.ZodObject<{
117
+ name: z.ZodString;
118
+ version: z.ZodString;
119
+ }, z.core.$strip>>;
120
+ total: z.ZodNumber;
121
+ duration: z.ZodNumber;
122
+ }, z.core.$strip>;
123
+ export type UvInstall = z.infer<typeof UvInstallSchema>;
124
+ /** Zod schema for structured uv run output with exit code and stdout/stderr. */
125
+ export declare const UvRunSchema: z.ZodObject<{
126
+ exitCode: z.ZodNumber;
127
+ stdout: z.ZodString;
128
+ stderr: z.ZodString;
129
+ success: z.ZodBoolean;
130
+ duration: z.ZodNumber;
131
+ }, z.core.$strip>;
132
+ export type UvRun = z.infer<typeof UvRunSchema>;
133
+ /** Zod schema for structured Black formatter output with file counts and reformat list. */
134
+ export declare const BlackResultSchema: z.ZodObject<{
135
+ filesChanged: z.ZodNumber;
136
+ filesUnchanged: z.ZodNumber;
137
+ filesChecked: z.ZodNumber;
138
+ success: z.ZodBoolean;
139
+ wouldReformat: z.ZodArray<z.ZodString>;
140
+ }, z.core.$strip>;
141
+ export type BlackResult = z.infer<typeof BlackResultSchema>;
258
142
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAO/B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS/B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAM7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oGAAoG;AACpG,eAAO,MAAM,gBAAgB;;;;;;;;iBAU3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,qGAAqG;AACrG,eAAO,MAAM,oBAAoB;;;;;;;;;;;iBAO/B,CAAC;AAEH,6GAA6G;AAC7G,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;iBAM3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,sGAAsG;AACtG,eAAO,MAAM,oBAAoB;;;;;;;;;iBAS/B,CAAC;AAEH,oGAAoG;AACpG,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;iBAI3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,wGAAwG;AACxG,eAAO,MAAM,kBAAkB;;;;;;iBAM7B,CAAC;AAEH,0FAA0F;AAC1F,eAAO,MAAM,oBAAoB;;;;;;;;;iBAG/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,iFAAiF;AACjF,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AAEH,oGAAoG;AACpG,eAAO,MAAM,kBAAkB;;;;;;;;;;;;iBAS7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,qFAAqF;AACrF,eAAO,MAAM,eAAe;;;;;;;;iBAU1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,gFAAgF;AAChF,eAAO,MAAM,WAAW;;;;;;iBAMtB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB;;;;;;iBAM5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}