@paretools/build 0.8.1 → 0.8.3

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 +1 -1
  2. package/dist/index.js +1 -1
  3. package/dist/lib/build-runner.d.ts +2 -0
  4. package/dist/lib/build-runner.d.ts.map +1 -1
  5. package/dist/lib/build-runner.js +6 -0
  6. package/dist/lib/build-runner.js.map +1 -1
  7. package/dist/lib/formatters.d.ts +41 -5
  8. package/dist/lib/formatters.d.ts.map +1 -1
  9. package/dist/lib/formatters.js +139 -26
  10. package/dist/lib/formatters.js.map +1 -1
  11. package/dist/lib/parsers.d.ts +5 -1
  12. package/dist/lib/parsers.d.ts.map +1 -1
  13. package/dist/lib/parsers.js +140 -0
  14. package/dist/lib/parsers.js.map +1 -1
  15. package/dist/schemas/index.d.ts +123 -13
  16. package/dist/schemas/index.d.ts.map +1 -1
  17. package/dist/schemas/index.js +44 -0
  18. package/dist/schemas/index.js.map +1 -1
  19. package/dist/tools/build.d.ts +1 -0
  20. package/dist/tools/build.d.ts.map +1 -1
  21. package/dist/tools/build.js +4 -1
  22. package/dist/tools/build.js.map +1 -1
  23. package/dist/tools/esbuild.d.ts +1 -0
  24. package/dist/tools/esbuild.d.ts.map +1 -1
  25. package/dist/tools/esbuild.js +1 -0
  26. package/dist/tools/esbuild.js.map +1 -1
  27. package/dist/tools/index.d.ts +1 -0
  28. package/dist/tools/index.d.ts.map +1 -1
  29. package/dist/tools/index.js +7 -0
  30. package/dist/tools/index.js.map +1 -1
  31. package/dist/tools/nx.d.ts +4 -0
  32. package/dist/tools/nx.d.ts.map +1 -0
  33. package/dist/tools/nx.js +83 -0
  34. package/dist/tools/nx.js.map +1 -0
  35. package/dist/tools/tsc.d.ts +1 -0
  36. package/dist/tools/tsc.d.ts.map +1 -1
  37. package/dist/tools/tsc.js +1 -0
  38. package/dist/tools/tsc.js.map +1 -1
  39. package/dist/tools/turbo.d.ts +4 -0
  40. package/dist/tools/turbo.d.ts.map +1 -0
  41. package/dist/tools/turbo.js +53 -0
  42. package/dist/tools/turbo.js.map +1 -0
  43. package/dist/tools/vite-build.d.ts +1 -0
  44. package/dist/tools/vite-build.d.ts.map +1 -1
  45. package/dist/tools/vite-build.js +1 -0
  46. package/dist/tools/vite-build.js.map +1 -1
  47. package/dist/tools/webpack.d.ts +1 -0
  48. package/dist/tools/webpack.d.ts.map +1 -1
  49. package/dist/tools/webpack.js +1 -0
  50. package/dist/tools/webpack.js.map +1 -1
  51. package/package.json +2 -2
package/README.md CHANGED
@@ -58,7 +58,7 @@ Add to your MCP client config:
58
58
  }
59
59
  ```
60
60
 
61
- ## All Pare Servers (62 tools)
61
+ ## All Pare Servers (147 tools)
62
62
 
63
63
  | Package | Tools | Wraps |
64
64
  | -------------------------------------------------------------------- | --------------------------------------------------------------------------- | ---------------------------------- |
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
4
  import { registerAllTools } from "./tools/index.js";
5
- const server = new McpServer({ name: "@paretools/build", version: "0.7.0" }, {
5
+ const server = new McpServer({ name: "@paretools/build", version: "0.8.1" }, {
6
6
  instructions: "Structured build tool operations (tsc, esbuild, vite, webpack, generic build). Use instead of running build commands via bash. Returns typed JSON with structured error diagnostics and build results.",
7
7
  });
8
8
  registerAllTools(server);
@@ -4,4 +4,6 @@ export declare function runBuildCommand(cmd: string, args: string[], cwd?: strin
4
4
  export declare function esbuildCmd(args: string[], cwd?: string): Promise<RunResult>;
5
5
  export declare function viteCmd(args: string[], cwd?: string): Promise<RunResult>;
6
6
  export declare function webpackCmd(args: string[], cwd?: string): Promise<RunResult>;
7
+ export declare function turboCmd(args: string[], cwd?: string): Promise<RunResult>;
8
+ export declare function nxCmd(args: string[], cwd?: string): Promise<RunResult>;
7
9
  //# sourceMappingURL=build-runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-runner.d.ts","sourceRoot":"","sources":["../../src/lib/build-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,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,CAAC,CAGpB;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAEjF;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE9E;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAEjF"}
1
+ {"version":3,"file":"build-runner.d.ts","sourceRoot":"","sources":["../../src/lib/build-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,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,CAAC,CAGpB;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAEjF;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE9E;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAEjF;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE/E;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE5E"}
@@ -15,4 +15,10 @@ export async function viteCmd(args, cwd) {
15
15
  export async function webpackCmd(args, cwd) {
16
16
  return run("npx", ["webpack", ...args], { cwd, timeout: 300_000 });
17
17
  }
18
+ export async function turboCmd(args, cwd) {
19
+ return run("npx", ["turbo", ...args], { cwd, timeout: 300_000 });
20
+ }
21
+ export async function nxCmd(args, cwd) {
22
+ return run("npx", ["nx", ...args], { cwd, timeout: 300_000 });
23
+ }
18
24
  //# sourceMappingURL=build-runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-runner.js","sourceRoot":"","sources":["../../src/lib/build-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,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,IAAc,EACd,GAAY;IAEZ,qDAAqD;IACrD,OAAO,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc,EAAE,GAAY;IAC3D,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc,EAAE,GAAY;IACxD,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc,EAAE,GAAY;IAC3D,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"build-runner.js","sourceRoot":"","sources":["../../src/lib/build-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,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,IAAc,EACd,GAAY;IAEZ,qDAAqD;IACrD,OAAO,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc,EAAE,GAAY;IAC3D,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc,EAAE,GAAY;IACxD,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc,EAAE,GAAY;IAC3D,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAc,EAAE,GAAY;IACzD,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,IAAc,EAAE,GAAY;IACtD,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAChE,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { TscResult, BuildResult, EsbuildResult, ViteBuildResult, WebpackResult } from "../schemas/index.js";
1
+ import type { TscResult, BuildResult, EsbuildResult, EsbuildError, EsbuildWarning, ViteBuildResult, WebpackResult, TurboResult, NxResult } from "../schemas/index.js";
2
2
  /** Formats structured TypeScript compiler results into a human-readable diagnostic summary. */
3
3
  export declare function formatTsc(data: TscResult): string;
4
4
  /** Formats structured build command results into a human-readable success/failure summary. */
@@ -23,37 +23,73 @@ export interface TscCompact {
23
23
  }
24
24
  export declare function compactTscMap(data: TscResult): TscCompact;
25
25
  export declare function formatTscCompact(data: TscCompact): string;
26
- /** Compact esbuild: success and duration only. Schema-compatible (all arrays omitted). */
26
+ /** Compact esbuild: success and duration. Error/warning arrays included when non-empty. */
27
27
  export interface EsbuildCompact {
28
28
  [key: string]: unknown;
29
29
  success: boolean;
30
30
  duration: number;
31
+ errors?: EsbuildError[];
32
+ warnings?: EsbuildWarning[];
31
33
  }
32
34
  export declare function compactEsbuildMap(data: EsbuildResult): EsbuildCompact;
33
35
  export declare function formatEsbuildCompact(data: EsbuildCompact): string;
34
- /** Compact vite-build: success and duration only. Schema-compatible (all arrays omitted). */
36
+ /** Compact vite-build: success and duration. Error/warning arrays included when non-empty. */
35
37
  export interface ViteBuildCompact {
36
38
  [key: string]: unknown;
37
39
  success: boolean;
38
40
  duration: number;
41
+ errors?: string[];
42
+ warnings?: string[];
39
43
  }
40
44
  export declare function compactViteBuildMap(data: ViteBuildResult): ViteBuildCompact;
41
45
  export declare function formatViteBuildCompact(data: ViteBuildCompact): string;
42
- /** Compact webpack: success, duration, and optional modules count. Schema-compatible (arrays omitted). */
46
+ /** Compact webpack: success, duration, optional modules count. Error/warning arrays included when non-empty. */
43
47
  export interface WebpackCompact {
44
48
  [key: string]: unknown;
45
49
  success: boolean;
46
50
  duration: number;
47
51
  modules?: number;
52
+ errors?: string[];
53
+ warnings?: string[];
48
54
  }
49
55
  export declare function compactWebpackMap(data: WebpackResult): WebpackCompact;
50
56
  export declare function formatWebpackCompact(data: WebpackCompact): string;
51
- /** Compact build: success and duration only. Schema-compatible (arrays omitted). */
57
+ /** Compact build: success and duration only. Error/warning arrays included when non-empty. */
52
58
  export interface BuildCompact {
53
59
  [key: string]: unknown;
54
60
  success: boolean;
55
61
  duration: number;
62
+ errors?: string[];
63
+ warnings?: string[];
56
64
  }
57
65
  export declare function compactBuildMap(data: BuildResult): BuildCompact;
58
66
  export declare function formatBuildCompact(data: BuildCompact): string;
67
+ /** Formats structured Turbo run results into a human-readable summary. */
68
+ export declare function formatTurbo(data: TurboResult): string;
69
+ /** Formats structured Nx results into a human-readable summary. */
70
+ export declare function formatNx(data: NxResult): string;
71
+ /** Compact turbo: success, duration, and summary counts only. Schema-compatible (tasks array omitted). */
72
+ export interface TurboCompact {
73
+ [key: string]: unknown;
74
+ success: boolean;
75
+ duration: number;
76
+ totalTasks: number;
77
+ passed: number;
78
+ failed: number;
79
+ cached: number;
80
+ }
81
+ export declare function compactTurboMap(data: TurboResult): TurboCompact;
82
+ export declare function formatTurboCompact(data: TurboCompact): string;
83
+ /** Compact nx: success, summary counts only. Schema-compatible (tasks array omitted). */
84
+ export interface NxCompact {
85
+ [key: string]: unknown;
86
+ success: boolean;
87
+ duration: number;
88
+ total: number;
89
+ passed: number;
90
+ failed: number;
91
+ cached: number;
92
+ }
93
+ export declare function compactNxMap(data: NxResult): NxCompact;
94
+ export declare function formatNxCompact(data: NxCompact): string;
59
95
  //# sourceMappingURL=formatters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,aAAa,EACb,eAAe,EACf,aAAa,EACd,MAAM,qBAAqB,CAAC;AAE7B,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAQjD;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAY5D;AAMD,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAgCzD;AAMD,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAoB7D;AAMD,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAoBzD;AAQD,0FAA0F;AAC1F,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtE;AAID,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAWzD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAQzD;AAMD,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CAKrE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAKjE;AAMD,6FAA6F;AAC7F,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,CAK3E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAKrE;AAMD,0GAA0G;AAC1G,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CAOrE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAOjE;AAMD,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAK/D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAK7D"}
1
+ {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAE7B,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAWjD;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAY5D;AAMD,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAiCzD;AAMD,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAwB7D;AAMD,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAwBzD;AAQD,0FAA0F;AAC1F,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtE;AAID,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAWzD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAQzD;AAMD,2FAA2F;AAC3F,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CAQrE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAKjE;AAMD,8FAA8F;AAC9F,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,CAQ3E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAKrE;AAMD,gHAAgH;AAChH,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CASrE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAOjE;AAMD,8FAA8F;AAC9F,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAQ/D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAK7D;AAMD,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CA0BrD;AAMD,mEAAmE;AACnE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAc/C;AAMD,0GAA0G;AAC1G,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAS/D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAO7D;AAMD,yFAAyF;AACzF,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAStD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAKvD"}
@@ -3,8 +3,11 @@ export function formatTsc(data) {
3
3
  if (data.success && data.total === 0)
4
4
  return "TypeScript: no errors found.";
5
5
  const lines = [`TypeScript: ${data.errors} errors, ${data.warnings} warnings`];
6
- for (const d of data.diagnostics) {
7
- lines.push(` ${d.file}:${d.line}:${d.column} ${d.severity} TS${d.code}: ${d.message}`);
6
+ for (const d of data.diagnostics ?? []) {
7
+ const col = d.column !== undefined ? `:${d.column}` : "";
8
+ const code = d.code !== undefined ? ` TS${d.code}` : "";
9
+ const msg = d.message ? `: ${d.message}` : "";
10
+ lines.push(` ${d.file}:${d.line}${col} ${d.severity}${code}${msg}`);
8
11
  }
9
12
  return lines.join("\n");
10
13
  }
@@ -12,12 +15,12 @@ export function formatTsc(data) {
12
15
  export function formatBuildCommand(data) {
13
16
  if (data.success) {
14
17
  const parts = [`Build succeeded in ${data.duration}s`];
15
- if (data.warnings.length)
16
- parts.push(`${data.warnings.length} warnings`);
18
+ if ((data.warnings ?? []).length)
19
+ parts.push(`${(data.warnings ?? []).length} warnings`);
17
20
  return parts.join(", ");
18
21
  }
19
22
  const lines = [`Build failed (${data.duration}s)`];
20
- for (const err of data.errors) {
23
+ for (const err of data.errors ?? []) {
21
24
  lines.push(` ${err}`);
22
25
  }
23
26
  return lines.join("\n");
@@ -27,7 +30,9 @@ export function formatBuildCommand(data) {
27
30
  // ---------------------------------------------------------------------------
28
31
  /** Formats structured esbuild results into a human-readable summary. */
29
32
  export function formatEsbuild(data) {
30
- if (data.success && data.errors.length === 0 && data.warnings.length === 0) {
33
+ const errors = data.errors ?? [];
34
+ const warnings = data.warnings ?? [];
35
+ if (data.success && errors.length === 0 && warnings.length === 0) {
31
36
  const parts = [`esbuild: build succeeded in ${data.duration}s`];
32
37
  if (data.outputFiles && data.outputFiles.length > 0) {
33
38
  parts.push(`${data.outputFiles.length} output files`);
@@ -36,18 +41,18 @@ export function formatEsbuild(data) {
36
41
  }
37
42
  const lines = [];
38
43
  if (data.success) {
39
- lines.push(`esbuild: build succeeded in ${data.duration}s with ${data.warnings.length} warnings`);
44
+ lines.push(`esbuild: build succeeded in ${data.duration}s with ${warnings.length} warnings`);
40
45
  }
41
46
  else {
42
- lines.push(`esbuild: build failed (${data.duration}s) — ${data.errors.length} errors, ${data.warnings.length} warnings`);
47
+ lines.push(`esbuild: build failed (${data.duration}s) — ${errors.length} errors, ${warnings.length} warnings`);
43
48
  }
44
- for (const err of data.errors) {
49
+ for (const err of errors) {
45
50
  const loc = err.file
46
51
  ? `${err.file}${err.line ? `:${err.line}` : ""}${err.column ? `:${err.column}` : ""}`
47
52
  : "";
48
53
  lines.push(` ERROR${loc ? ` ${loc}` : ""}: ${err.message}`);
49
54
  }
50
- for (const warn of data.warnings) {
55
+ for (const warn of warnings) {
51
56
  const loc = warn.file ? `${warn.file}${warn.line ? `:${warn.line}` : ""}` : "";
52
57
  lines.push(` WARN${loc ? ` ${loc}` : ""}: ${warn.message}`);
53
58
  }
@@ -58,21 +63,24 @@ export function formatEsbuild(data) {
58
63
  // ---------------------------------------------------------------------------
59
64
  /** Formats structured Vite build results into a human-readable summary. */
60
65
  export function formatViteBuild(data) {
66
+ const outputs = data.outputs ?? [];
67
+ const warnings = data.warnings ?? [];
68
+ const errors = data.errors ?? [];
61
69
  if (data.success) {
62
70
  const lines = [`Vite build succeeded in ${data.duration}s`];
63
- if (data.outputs.length > 0) {
64
- lines.push(` ${data.outputs.length} output files:`);
65
- for (const out of data.outputs) {
71
+ if (outputs.length > 0) {
72
+ lines.push(` ${outputs.length} output files:`);
73
+ for (const out of outputs) {
66
74
  lines.push(` ${out.file} ${out.size}`);
67
75
  }
68
76
  }
69
- if (data.warnings.length > 0) {
70
- lines.push(` ${data.warnings.length} warnings`);
77
+ if (warnings.length > 0) {
78
+ lines.push(` ${warnings.length} warnings`);
71
79
  }
72
80
  return lines.join("\n");
73
81
  }
74
82
  const lines = [`Vite build failed (${data.duration}s)`];
75
- for (const err of data.errors) {
83
+ for (const err of errors) {
76
84
  lines.push(` ${err}`);
77
85
  }
78
86
  return lines.join("\n");
@@ -82,23 +90,26 @@ export function formatViteBuild(data) {
82
90
  // ---------------------------------------------------------------------------
83
91
  /** Formats structured webpack build results into a human-readable summary. */
84
92
  export function formatWebpack(data) {
93
+ const assets = data.assets ?? [];
94
+ const warnings = data.warnings ?? [];
95
+ const errors = data.errors ?? [];
85
96
  if (data.success) {
86
97
  const parts = [`webpack: build succeeded in ${data.duration}s`];
87
- if (data.assets.length > 0)
88
- parts.push(`${data.assets.length} assets`);
98
+ if (assets.length > 0)
99
+ parts.push(`${assets.length} assets`);
89
100
  if (data.modules !== undefined)
90
101
  parts.push(`${data.modules} modules`);
91
- if (data.warnings.length > 0)
92
- parts.push(`${data.warnings.length} warnings`);
102
+ if (warnings.length > 0)
103
+ parts.push(`${warnings.length} warnings`);
93
104
  const lines = [parts.join(", ")];
94
- for (const asset of data.assets) {
105
+ for (const asset of assets) {
95
106
  const sizeKB = (asset.size / 1024).toFixed(1);
96
107
  lines.push(` ${asset.name} ${sizeKB} kB`);
97
108
  }
98
109
  return lines.join("\n");
99
110
  }
100
111
  const lines = [`webpack: build failed (${data.duration}s)`];
101
- for (const err of data.errors) {
112
+ for (const err of errors) {
102
113
  lines.push(` ${err}`);
103
114
  }
104
115
  return lines.join("\n");
@@ -109,7 +120,7 @@ export function compactTscMap(data) {
109
120
  success: data.success,
110
121
  errors: data.errors,
111
122
  warnings: data.warnings,
112
- diagnostics: data.diagnostics.slice(0, TSC_COMPACT_DIAG_LIMIT).map((d) => ({
123
+ diagnostics: (data.diagnostics ?? []).slice(0, TSC_COMPACT_DIAG_LIMIT).map((d) => ({
113
124
  file: d.file,
114
125
  line: d.line,
115
126
  severity: d.severity,
@@ -126,10 +137,15 @@ export function formatTscCompact(data) {
126
137
  return lines.join("\n");
127
138
  }
128
139
  export function compactEsbuildMap(data) {
129
- return {
140
+ const compact = {
130
141
  success: data.success,
131
142
  duration: data.duration,
132
143
  };
144
+ if (data.errors?.length)
145
+ compact.errors = data.errors;
146
+ if (data.warnings?.length)
147
+ compact.warnings = data.warnings;
148
+ return compact;
133
149
  }
134
150
  export function formatEsbuildCompact(data) {
135
151
  if (data.success) {
@@ -138,10 +154,15 @@ export function formatEsbuildCompact(data) {
138
154
  return `esbuild: build failed (${data.duration}s)`;
139
155
  }
140
156
  export function compactViteBuildMap(data) {
141
- return {
157
+ const compact = {
142
158
  success: data.success,
143
159
  duration: data.duration,
144
160
  };
161
+ if (data.errors?.length)
162
+ compact.errors = data.errors;
163
+ if (data.warnings?.length)
164
+ compact.warnings = data.warnings;
165
+ return compact;
145
166
  }
146
167
  export function formatViteBuildCompact(data) {
147
168
  if (data.success) {
@@ -156,6 +177,10 @@ export function compactWebpackMap(data) {
156
177
  };
157
178
  if (data.modules !== undefined)
158
179
  compact.modules = data.modules;
180
+ if (data.errors?.length)
181
+ compact.errors = data.errors;
182
+ if (data.warnings?.length)
183
+ compact.warnings = data.warnings;
159
184
  return compact;
160
185
  }
161
186
  export function formatWebpackCompact(data) {
@@ -168,10 +193,15 @@ export function formatWebpackCompact(data) {
168
193
  return `webpack: build failed (${data.duration}s)`;
169
194
  }
170
195
  export function compactBuildMap(data) {
171
- return {
196
+ const compact = {
172
197
  success: data.success,
173
198
  duration: data.duration,
174
199
  };
200
+ if (data.errors?.length)
201
+ compact.errors = data.errors;
202
+ if (data.warnings?.length)
203
+ compact.warnings = data.warnings;
204
+ return compact;
175
205
  }
176
206
  export function formatBuildCompact(data) {
177
207
  if (data.success) {
@@ -179,4 +209,87 @@ export function formatBuildCompact(data) {
179
209
  }
180
210
  return `Build failed (${data.duration}s)`;
181
211
  }
212
+ // ---------------------------------------------------------------------------
213
+ // turbo
214
+ // ---------------------------------------------------------------------------
215
+ /** Formats structured Turbo run results into a human-readable summary. */
216
+ export function formatTurbo(data) {
217
+ const tasks = data.tasks ?? [];
218
+ if (data.success) {
219
+ const parts = [`turbo: ${data.totalTasks} tasks completed in ${data.duration}s`];
220
+ if (data.cached > 0)
221
+ parts.push(`${data.cached} cached`);
222
+ if (data.failed > 0)
223
+ parts.push(`${data.failed} failed`);
224
+ const lines = [parts.join(", ")];
225
+ for (const t of tasks) {
226
+ const cachePart = t.cache ? ` [${t.cache}]` : "";
227
+ const durationPart = t.duration ? ` (${t.duration})` : "";
228
+ lines.push(` ${t.package}#${t.task}: ${t.status}${cachePart}${durationPart}`);
229
+ }
230
+ return lines.join("\n");
231
+ }
232
+ const lines = [
233
+ `turbo: failed (${data.duration}s) — ${data.passed} passed, ${data.failed} failed`,
234
+ ];
235
+ for (const t of tasks) {
236
+ const cachePart = t.cache ? ` [${t.cache}]` : "";
237
+ const durationPart = t.duration ? ` (${t.duration})` : "";
238
+ lines.push(` ${t.package}#${t.task}: ${t.status}${cachePart}${durationPart}`);
239
+ }
240
+ return lines.join("\n");
241
+ }
242
+ // ---------------------------------------------------------------------------
243
+ // nx
244
+ // ---------------------------------------------------------------------------
245
+ /** Formats structured Nx results into a human-readable summary. */
246
+ export function formatNx(data) {
247
+ const tasks = data.tasks ?? [];
248
+ const summary = `nx: ${data.passed} passed, ${data.failed} failed, ${data.cached} cached (${data.duration}s)`;
249
+ if (tasks.length === 0)
250
+ return summary;
251
+ const lines = [summary];
252
+ for (const task of tasks) {
253
+ const icon = task.status === "success" ? "✔" : "✖";
254
+ const cacheTag = task.cache ? " [cache]" : "";
255
+ const dur = task.duration !== undefined ? ` (${task.duration}s)` : "";
256
+ lines.push(` ${icon} ${task.project}:${task.target}${cacheTag}${dur}`);
257
+ }
258
+ return lines.join("\n");
259
+ }
260
+ export function compactTurboMap(data) {
261
+ return {
262
+ success: data.success,
263
+ duration: data.duration,
264
+ totalTasks: data.totalTasks,
265
+ passed: data.passed,
266
+ failed: data.failed,
267
+ cached: data.cached,
268
+ };
269
+ }
270
+ export function formatTurboCompact(data) {
271
+ if (data.success) {
272
+ const parts = [`turbo: ${data.totalTasks} tasks completed in ${data.duration}s`];
273
+ if (data.cached > 0)
274
+ parts.push(`${data.cached} cached`);
275
+ return parts.join(", ");
276
+ }
277
+ return `turbo: failed (${data.duration}s) — ${data.passed} passed, ${data.failed} failed`;
278
+ }
279
+ export function compactNxMap(data) {
280
+ return {
281
+ success: data.success,
282
+ duration: data.duration,
283
+ total: data.total,
284
+ passed: data.passed,
285
+ failed: data.failed,
286
+ cached: data.cached,
287
+ };
288
+ }
289
+ export function formatNxCompact(data) {
290
+ if (data.success) {
291
+ return `nx: ${data.passed} passed, ${data.failed} failed, ${data.cached} cached (${data.duration}s)`;
292
+ }
293
+ return `nx: failed — ${data.passed} passed, ${data.failed} failed, ${data.cached} cached (${data.duration}s)`;
294
+ }
182
295
  //# sourceMappingURL=formatters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { TscResult, BuildResult, EsbuildResult, ViteBuildResult, WebpackResult } from "../schemas/index.js";
1
+ import type { TscResult, BuildResult, EsbuildResult, ViteBuildResult, WebpackResult, TurboResult, NxResult } from "../schemas/index.js";
2
2
  /** Parses TypeScript compiler (`tsc`) output into structured diagnostics with file, line, and error code. */
3
3
  export declare function parseTscOutput(stdout: string, stderr: string, exitCode: number): TscResult;
4
4
  /** Parses generic build command output into structured results with success status, errors, and warnings. */
@@ -9,4 +9,8 @@ export declare function parseEsbuildOutput(stdout: string, stderr: string, exitC
9
9
  export declare function parseViteBuildOutput(stdout: string, stderr: string, exitCode: number, duration: number): ViteBuildResult;
10
10
  /** Parses webpack --json output into structured assets, errors, warnings, and module count. */
11
11
  export declare function parseWebpackOutput(stdout: string, stderr: string, exitCode: number, duration: number): WebpackResult;
12
+ /** Parses Turborepo `turbo run` output into structured per-package task results with cache info. */
13
+ export declare function parseTurboOutput(stdout: string, stderr: string, exitCode: number, duration: number): TurboResult;
14
+ /** Parses Nx workspace command output into structured per-project task results. */
15
+ export declare function parseNxOutput(stdout: string, stderr: string, exitCode: number, duration: number): NxResult;
12
16
  //# sourceMappingURL=parsers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAET,WAAW,EACX,aAAa,EAGb,eAAe,EAEf,aAAa,EACd,MAAM,qBAAqB,CAAC;AAK7B,6GAA6G;AAC7G,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CA6B1F;AAED,6GAA6G;AAC7G,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,WAAW,CAsBb;AAeD,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,aAAa,CA6Ef;AAUD,gFAAgF;AAChF,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,eAAe,CAwCjB;AAMD,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,aAAa,CAsBf"}
1
+ {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAET,WAAW,EACX,aAAa,EAGb,eAAe,EAEf,aAAa,EACb,WAAW,EAEX,QAAQ,EAET,MAAM,qBAAqB,CAAC;AAK7B,6GAA6G;AAC7G,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CA6B1F;AAED,6GAA6G;AAC7G,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,WAAW,CAsBb;AAeD,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,aAAa,CA6Ef;AAUD,gFAAgF;AAChF,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,eAAe,CAwCjB;AAMD,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,aAAa,CAsBf;AA0GD,oGAAoG;AACpG,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,WAAW,CAwEb;AAmBD,mFAAmF;AACnF,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,QAAQ,CA2CV"}
@@ -266,4 +266,144 @@ function parseWebpackText(stdout, stderr, exitCode, duration) {
266
266
  warnings,
267
267
  };
268
268
  }
269
+ // ---------------------------------------------------------------------------
270
+ // turbo
271
+ // ---------------------------------------------------------------------------
272
+ // Turbo task line format: <package>#<task>
273
+ // e.g. "@paretools/shared#build: cache hit, replaying logs abc123 (100ms)"
274
+ // or "@paretools/git#build: cache miss, executing abc123 (2.5s)"
275
+ // or "web#build: computed xyz ... (1.2s)"
276
+ // Summary line: "Tasks: 5 successful, 5 total"
277
+ // Cached line: "Cached: 3 cached, 5 total"
278
+ // Duration line:"Duration: 2.5s"
279
+ // Match task status lines like:
280
+ // @paretools/shared#build: cache hit, replaying logs ... (100ms)
281
+ // @scope/pkg#test: cache miss, executing ... (2.5s)
282
+ // myapp#lint: cache bypass (5.1s)
283
+ const TURBO_TASK_RE = /^(.+?)#(\S+):\s+cache\s+(hit|miss|bypass)(?:,\s+\w+[^(]*)?\(([^)]+)\)/;
284
+ // Match task failure lines:
285
+ // @scope/pkg#build: command ... exited (1)
286
+ // pkg#test: ERROR ... (500ms)
287
+ const TURBO_TASK_FAIL_RE = /^(.+?)#(\S+):.*(?:exited\s*\(\d+\)|ERROR)/;
288
+ // Summary lines
289
+ const TURBO_TASKS_SUMMARY_RE = /Tasks:\s+(\d+)\s+successful,\s+(\d+)\s+total/;
290
+ const TURBO_CACHED_RE = /Cached:\s+(\d+)\s+cached,\s+(\d+)\s+total/;
291
+ /** Parses Turborepo `turbo run` output into structured per-package task results with cache info. */
292
+ export function parseTurboOutput(stdout, stderr, exitCode, duration) {
293
+ const tasks = [];
294
+ const seenTasks = new Set();
295
+ const combined = stdout + "\n" + stderr;
296
+ const lines = combined.split("\n");
297
+ let summaryTotal = 0;
298
+ let summaryCached = 0;
299
+ for (const line of lines) {
300
+ const trimmed = line.trim();
301
+ // Check for task status lines
302
+ const taskMatch = trimmed.match(TURBO_TASK_RE);
303
+ if (taskMatch) {
304
+ const key = `${taskMatch[1]}#${taskMatch[2]}`;
305
+ if (!seenTasks.has(key)) {
306
+ seenTasks.add(key);
307
+ tasks.push({
308
+ package: taskMatch[1],
309
+ task: taskMatch[2],
310
+ status: "pass",
311
+ duration: taskMatch[4],
312
+ cache: taskMatch[3] === "hit" ? "hit" : "miss",
313
+ });
314
+ }
315
+ continue;
316
+ }
317
+ // Check for failure lines
318
+ const failMatch = trimmed.match(TURBO_TASK_FAIL_RE);
319
+ if (failMatch) {
320
+ const key = `${failMatch[1]}#${failMatch[2]}`;
321
+ if (!seenTasks.has(key)) {
322
+ seenTasks.add(key);
323
+ tasks.push({
324
+ package: failMatch[1],
325
+ task: failMatch[2],
326
+ status: "fail",
327
+ cache: "miss",
328
+ });
329
+ }
330
+ continue;
331
+ }
332
+ // Check for summary lines
333
+ const summaryMatch = trimmed.match(TURBO_TASKS_SUMMARY_RE);
334
+ if (summaryMatch) {
335
+ summaryTotal = parseInt(summaryMatch[2], 10);
336
+ continue;
337
+ }
338
+ const cachedMatch = trimmed.match(TURBO_CACHED_RE);
339
+ if (cachedMatch) {
340
+ summaryCached = parseInt(cachedMatch[1], 10);
341
+ }
342
+ }
343
+ const passed = tasks.filter((t) => t.status === "pass").length;
344
+ const failed = tasks.filter((t) => t.status === "fail").length;
345
+ const cached = tasks.filter((t) => t.cache === "hit").length;
346
+ const totalTasks = summaryTotal || tasks.length;
347
+ return {
348
+ success: exitCode === 0,
349
+ duration,
350
+ tasks,
351
+ totalTasks,
352
+ passed,
353
+ failed,
354
+ cached: summaryCached || cached,
355
+ };
356
+ }
357
+ // ---------------------------------------------------------------------------
358
+ // nx
359
+ // ---------------------------------------------------------------------------
360
+ // Nx task line format (from `nx run-many` / `nx affected`):
361
+ // ✔ nx run project:target [local cache] (1.2s)
362
+ // ✔ nx run project:target (3.4s)
363
+ // ✖ nx run project:target (0.5s)
364
+ // > NX Successfully ran target build for 3 projects (5.2s)
365
+ // > NX Ran target build for 5 projects (10.1s)
366
+ // Also matches lines without duration or cache indicator.
367
+ const NX_TASK_RE = /^\s*[✔✓✗✖]\s+nx run\s+([\w@/.:-]+):([\w-]+)\s*(?:\[([^\]]+)])?\s*(?:\((\d+(?:\.\d+)?)\s*s\))?/i;
368
+ // Cache hit summary: "N out of N tasks were retrieved from cache"
369
+ // or individual [local cache] / [remote cache] on task lines (handled inline)
370
+ /** Parses Nx workspace command output into structured per-project task results. */
371
+ export function parseNxOutput(stdout, stderr, exitCode, duration) {
372
+ const combined = stdout + "\n" + stderr;
373
+ const lines = combined.split("\n");
374
+ const tasks = [];
375
+ for (const line of lines) {
376
+ const taskMatch = line.match(NX_TASK_RE);
377
+ if (taskMatch) {
378
+ const project = taskMatch[1];
379
+ const target = taskMatch[2];
380
+ const cacheInfo = taskMatch[3]; // e.g. "local cache", "remote cache"
381
+ const dur = taskMatch[4] ? parseFloat(taskMatch[4]) : undefined;
382
+ // Determine status from the leading character
383
+ const trimmed = line.trimStart();
384
+ const isFailure = trimmed.startsWith("✖") || trimmed.startsWith("✗");
385
+ const status = isFailure ? "failure" : "success";
386
+ tasks.push({
387
+ project,
388
+ target,
389
+ status,
390
+ duration: dur,
391
+ cache: cacheInfo ? true : undefined,
392
+ });
393
+ continue;
394
+ }
395
+ }
396
+ const passed = tasks.filter((t) => t.status === "success").length;
397
+ const failed = tasks.filter((t) => t.status === "failure").length;
398
+ const cached = tasks.filter((t) => t.cache === true).length;
399
+ return {
400
+ success: exitCode === 0,
401
+ duration,
402
+ tasks,
403
+ total: tasks.length,
404
+ passed,
405
+ failed,
406
+ cached,
407
+ };
408
+ }
269
409
  //# sourceMappingURL=parsers.js.map