@paretools/bazel 0.11.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.
- package/LICENSE +21 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/bazel-runner.d.ts +3 -0
- package/dist/lib/bazel-runner.d.ts.map +1 -0
- package/dist/lib/bazel-runner.js +5 -0
- package/dist/lib/bazel-runner.js.map +1 -0
- package/dist/lib/formatters.d.ts +88 -0
- package/dist/lib/formatters.d.ts.map +1 -0
- package/dist/lib/formatters.js +233 -0
- package/dist/lib/formatters.js.map +1 -0
- package/dist/lib/parsers.d.ts +9 -0
- package/dist/lib/parsers.d.ts.map +1 -0
- package/dist/lib/parsers.js +202 -0
- package/dist/lib/parsers.js.map +1 -0
- package/dist/schemas/index.d.ts +193 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +96 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/tools/bazel.d.ts +4 -0
- package/dist/tools/bazel.d.ts.map +1 -0
- package/dist/tools/bazel.js +156 -0
- package/dist/tools/bazel.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/index.js.map +1 -0
- package/package.json +63 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Dave London
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
|
+
import { registerAllTools } from "./tools/index.js";
|
|
5
|
+
const server = new McpServer({ name: "@paretools/bazel", version: "0.10.2" }, {
|
|
6
|
+
instructions: "Structured Bazel build system operations (build, test, query, info, run, clean, fetch). Returns typed JSON.",
|
|
7
|
+
});
|
|
8
|
+
registerAllTools(server);
|
|
9
|
+
const transport = new StdioServerTransport();
|
|
10
|
+
await server.connect(transport);
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,EAC/C;IACE,YAAY,EACV,6GAA6G;CAChH,CACF,CAAC;AAEF,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAEzB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bazel-runner.d.ts","sourceRoot":"","sources":["../../src/lib/bazel-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAExD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE/E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bazel-runner.js","sourceRoot":"","sources":["../../src/lib/bazel-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAkB,MAAM,mBAAmB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAc,EAAE,GAAY;IACzD,OAAO,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { BazelBuildResult, BazelTestResult, BazelQueryResult, BazelInfoResult, BazelRunResult, BazelCleanResult, BazelFetchResult, BazelResult } from "../schemas/index.js";
|
|
2
|
+
export declare function formatBazelBuild(data: BazelBuildResult): string;
|
|
3
|
+
export interface BazelBuildCompact {
|
|
4
|
+
[key: string]: unknown;
|
|
5
|
+
action: "build";
|
|
6
|
+
success: boolean;
|
|
7
|
+
totalTargets: number;
|
|
8
|
+
successTargets: number;
|
|
9
|
+
failedTargets: number;
|
|
10
|
+
errors?: BazelBuildResult["errors"];
|
|
11
|
+
exitCode: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function compactBazelBuildMap(data: BazelBuildResult): BazelBuildCompact;
|
|
14
|
+
export declare function formatBazelBuildCompact(data: BazelBuildCompact): string;
|
|
15
|
+
export declare function formatBazelTest(data: BazelTestResult): string;
|
|
16
|
+
export interface BazelTestCompact {
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
action: "test";
|
|
19
|
+
success: boolean;
|
|
20
|
+
totalTests: number;
|
|
21
|
+
passed: number;
|
|
22
|
+
failed: number;
|
|
23
|
+
timeout: number;
|
|
24
|
+
flaky: number;
|
|
25
|
+
failedTests?: Array<{
|
|
26
|
+
label: string;
|
|
27
|
+
durationMs?: number;
|
|
28
|
+
}>;
|
|
29
|
+
exitCode: number;
|
|
30
|
+
}
|
|
31
|
+
export declare function compactBazelTestMap(data: BazelTestResult): BazelTestCompact;
|
|
32
|
+
export declare function formatBazelTestCompact(data: BazelTestCompact): string;
|
|
33
|
+
export declare function formatBazelQuery(data: BazelQueryResult): string;
|
|
34
|
+
export interface BazelQueryCompact {
|
|
35
|
+
[key: string]: unknown;
|
|
36
|
+
action: "query";
|
|
37
|
+
success: boolean;
|
|
38
|
+
count: number;
|
|
39
|
+
results: string[];
|
|
40
|
+
exitCode: number;
|
|
41
|
+
}
|
|
42
|
+
export declare function compactBazelQueryMap(data: BazelQueryResult): BazelQueryCompact;
|
|
43
|
+
export declare function formatBazelQueryCompact(data: BazelQueryCompact): string;
|
|
44
|
+
export declare function formatBazelInfo(data: BazelInfoResult): string;
|
|
45
|
+
export interface BazelInfoCompact {
|
|
46
|
+
[key: string]: unknown;
|
|
47
|
+
action: "info";
|
|
48
|
+
success: boolean;
|
|
49
|
+
info: Record<string, string>;
|
|
50
|
+
exitCode: number;
|
|
51
|
+
}
|
|
52
|
+
export declare function compactBazelInfoMap(data: BazelInfoResult): BazelInfoCompact;
|
|
53
|
+
export declare function formatBazelInfoCompact(data: BazelInfoCompact): string;
|
|
54
|
+
export declare function formatBazelRun(data: BazelRunResult): string;
|
|
55
|
+
export interface BazelRunCompact {
|
|
56
|
+
[key: string]: unknown;
|
|
57
|
+
action: "run";
|
|
58
|
+
success: boolean;
|
|
59
|
+
target: string;
|
|
60
|
+
exitCode: number;
|
|
61
|
+
}
|
|
62
|
+
export declare function compactBazelRunMap(data: BazelRunResult): BazelRunCompact;
|
|
63
|
+
export declare function formatBazelRunCompact(data: BazelRunCompact): string;
|
|
64
|
+
export declare function formatBazelClean(data: BazelCleanResult): string;
|
|
65
|
+
export interface BazelCleanCompact {
|
|
66
|
+
[key: string]: unknown;
|
|
67
|
+
action: "clean";
|
|
68
|
+
success: boolean;
|
|
69
|
+
expunged: boolean;
|
|
70
|
+
exitCode: number;
|
|
71
|
+
}
|
|
72
|
+
export declare function compactBazelCleanMap(data: BazelCleanResult): BazelCleanCompact;
|
|
73
|
+
export declare function formatBazelCleanCompact(data: BazelCleanCompact): string;
|
|
74
|
+
export declare function formatBazelFetch(data: BazelFetchResult): string;
|
|
75
|
+
export interface BazelFetchCompact {
|
|
76
|
+
[key: string]: unknown;
|
|
77
|
+
action: "fetch";
|
|
78
|
+
success: boolean;
|
|
79
|
+
exitCode: number;
|
|
80
|
+
}
|
|
81
|
+
export declare function compactBazelFetchMap(data: BazelFetchResult): BazelFetchCompact;
|
|
82
|
+
export declare function formatBazelFetchCompact(data: BazelFetchCompact): string;
|
|
83
|
+
type CompactResult = BazelBuildCompact | BazelTestCompact | BazelQueryCompact | BazelInfoCompact | BazelRunCompact | BazelCleanCompact | BazelFetchCompact;
|
|
84
|
+
export declare function formatBazelResult(data: BazelResult): string;
|
|
85
|
+
export declare function compactBazelResultMap(data: BazelResult): CompactResult;
|
|
86
|
+
export declare function formatBazelResultCompact(data: CompactResult): string;
|
|
87
|
+
export {};
|
|
88
|
+
//# sourceMappingURL=formatters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAI7B,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAW/D;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,CAW9E;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAGvE;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAgB7D;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,CAgB3E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAGrE;AAID,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAO/D;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,CAQ9E;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAGvE;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAQ7D;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,CAO3E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAQrE;AAID,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAM3D;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe,CAOxE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAGnE;AAID,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAI/D;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,CAO9E;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAIvE;AAID,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAE/D;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,CAM9E;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAEvE;AAID,KAAK,aAAa,GACd,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,CAAC;AAEtB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAiB3D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,CAiBtE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAiBpE"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
// ── Build ────────────────────────────────────────────────────────────
|
|
2
|
+
export function formatBazelBuild(data) {
|
|
3
|
+
const status = data.success ? "success" : "failed";
|
|
4
|
+
const duration = data.durationMs ? ` (${data.durationMs}ms)` : "";
|
|
5
|
+
const lines = [
|
|
6
|
+
`bazel build: ${status}${duration} — ${data.summary.totalTargets} targets (${data.summary.successTargets} ok, ${data.summary.failedTargets} failed)`,
|
|
7
|
+
];
|
|
8
|
+
for (const e of data.errors ?? []) {
|
|
9
|
+
const loc = e.file ? `${e.file}${e.line ? `:${e.line}` : ""}` : (e.target ?? "");
|
|
10
|
+
lines.push(` ${loc ? `${loc}: ` : ""}${e.message}`);
|
|
11
|
+
}
|
|
12
|
+
return lines.join("\n");
|
|
13
|
+
}
|
|
14
|
+
export function compactBazelBuildMap(data) {
|
|
15
|
+
const compact = {
|
|
16
|
+
action: "build",
|
|
17
|
+
success: data.success,
|
|
18
|
+
totalTargets: data.summary.totalTargets,
|
|
19
|
+
successTargets: data.summary.successTargets,
|
|
20
|
+
failedTargets: data.summary.failedTargets,
|
|
21
|
+
exitCode: data.exitCode,
|
|
22
|
+
};
|
|
23
|
+
if (data.errors?.length)
|
|
24
|
+
compact.errors = data.errors;
|
|
25
|
+
return compact;
|
|
26
|
+
}
|
|
27
|
+
export function formatBazelBuildCompact(data) {
|
|
28
|
+
const status = data.success ? "success" : "failed";
|
|
29
|
+
return `bazel build: ${status} (${data.totalTargets} targets, ${data.failedTargets} failed)`;
|
|
30
|
+
}
|
|
31
|
+
// ── Test ─────────────────────────────────────────────────────────────
|
|
32
|
+
export function formatBazelTest(data) {
|
|
33
|
+
const status = data.success ? "ok" : "FAILED";
|
|
34
|
+
const duration = data.durationMs ? ` (${data.durationMs}ms)` : "";
|
|
35
|
+
const lines = [
|
|
36
|
+
`bazel test: ${status}${duration} — ${data.summary.passed} passed, ${data.summary.failed} failed, ${data.summary.timeout} timeout, ${data.summary.flaky} flaky`,
|
|
37
|
+
];
|
|
38
|
+
for (const t of data.tests) {
|
|
39
|
+
const dur = t.durationMs ? ` (${t.durationMs}ms)` : "";
|
|
40
|
+
lines.push(` ${t.status.padEnd(9)} ${t.label}${dur}`);
|
|
41
|
+
if (t.failureMessage) {
|
|
42
|
+
for (const line of t.failureMessage.split("\n")) {
|
|
43
|
+
lines.push(` ${line}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return lines.join("\n");
|
|
48
|
+
}
|
|
49
|
+
export function compactBazelTestMap(data) {
|
|
50
|
+
const failedTests = data.tests
|
|
51
|
+
.filter((t) => t.status === "failed" || t.status === "timeout")
|
|
52
|
+
.map((t) => ({ label: t.label, durationMs: t.durationMs }));
|
|
53
|
+
const compact = {
|
|
54
|
+
action: "test",
|
|
55
|
+
success: data.success,
|
|
56
|
+
totalTests: data.summary.totalTests,
|
|
57
|
+
passed: data.summary.passed,
|
|
58
|
+
failed: data.summary.failed,
|
|
59
|
+
timeout: data.summary.timeout,
|
|
60
|
+
flaky: data.summary.flaky,
|
|
61
|
+
exitCode: data.exitCode,
|
|
62
|
+
};
|
|
63
|
+
if (failedTests.length > 0)
|
|
64
|
+
compact.failedTests = failedTests;
|
|
65
|
+
return compact;
|
|
66
|
+
}
|
|
67
|
+
export function formatBazelTestCompact(data) {
|
|
68
|
+
const status = data.success ? "ok" : "FAILED";
|
|
69
|
+
return `bazel test: ${status}. ${data.passed} passed; ${data.failed} failed; ${data.timeout} timeout`;
|
|
70
|
+
}
|
|
71
|
+
// ── Query ────────────────────────────────────────────────────────────
|
|
72
|
+
export function formatBazelQuery(data) {
|
|
73
|
+
if (data.count === 0)
|
|
74
|
+
return "bazel query: no results.";
|
|
75
|
+
const lines = [`bazel query: ${data.count} results`];
|
|
76
|
+
for (const r of data.results) {
|
|
77
|
+
lines.push(` ${r}`);
|
|
78
|
+
}
|
|
79
|
+
return lines.join("\n");
|
|
80
|
+
}
|
|
81
|
+
export function compactBazelQueryMap(data) {
|
|
82
|
+
return {
|
|
83
|
+
action: "query",
|
|
84
|
+
success: data.success,
|
|
85
|
+
count: data.count,
|
|
86
|
+
results: data.results,
|
|
87
|
+
exitCode: data.exitCode,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export function formatBazelQueryCompact(data) {
|
|
91
|
+
if (data.count === 0)
|
|
92
|
+
return "bazel query: no results.";
|
|
93
|
+
return `bazel query: ${data.count} results`;
|
|
94
|
+
}
|
|
95
|
+
// ── Info ─────────────────────────────────────────────────────────────
|
|
96
|
+
export function formatBazelInfo(data) {
|
|
97
|
+
const entries = Object.entries(data.info);
|
|
98
|
+
if (entries.length === 0)
|
|
99
|
+
return "bazel info: no data.";
|
|
100
|
+
const lines = [`bazel info:`];
|
|
101
|
+
for (const [key, value] of entries) {
|
|
102
|
+
lines.push(` ${key}: ${value}`);
|
|
103
|
+
}
|
|
104
|
+
return lines.join("\n");
|
|
105
|
+
}
|
|
106
|
+
export function compactBazelInfoMap(data) {
|
|
107
|
+
return {
|
|
108
|
+
action: "info",
|
|
109
|
+
success: data.success,
|
|
110
|
+
info: data.info,
|
|
111
|
+
exitCode: data.exitCode,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
export function formatBazelInfoCompact(data) {
|
|
115
|
+
const count = Object.keys(data.info).length;
|
|
116
|
+
if (count === 0)
|
|
117
|
+
return "bazel info: no data.";
|
|
118
|
+
if (count === 1) {
|
|
119
|
+
const [key, value] = Object.entries(data.info)[0];
|
|
120
|
+
return `bazel info: ${key}=${value}`;
|
|
121
|
+
}
|
|
122
|
+
return `bazel info: ${count} keys`;
|
|
123
|
+
}
|
|
124
|
+
// ── Run ──────────────────────────────────────────────────────────────
|
|
125
|
+
export function formatBazelRun(data) {
|
|
126
|
+
const status = data.success ? "success" : "failed";
|
|
127
|
+
const lines = [`bazel run ${data.target}: ${status} (exit code ${data.exitCode})`];
|
|
128
|
+
if (data.stdout)
|
|
129
|
+
lines.push(`stdout:\n${data.stdout}`);
|
|
130
|
+
if (data.stderr)
|
|
131
|
+
lines.push(`stderr:\n${data.stderr}`);
|
|
132
|
+
return lines.join("\n");
|
|
133
|
+
}
|
|
134
|
+
export function compactBazelRunMap(data) {
|
|
135
|
+
return {
|
|
136
|
+
action: "run",
|
|
137
|
+
success: data.success,
|
|
138
|
+
target: data.target,
|
|
139
|
+
exitCode: data.exitCode,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
export function formatBazelRunCompact(data) {
|
|
143
|
+
const status = data.success ? "success" : "failed";
|
|
144
|
+
return `bazel run ${data.target}: ${status} (exit code ${data.exitCode})`;
|
|
145
|
+
}
|
|
146
|
+
// ── Clean ────────────────────────────────────────────────────────────
|
|
147
|
+
export function formatBazelClean(data) {
|
|
148
|
+
const status = data.success ? "success" : "failed";
|
|
149
|
+
const expunged = data.expunged ? " (expunged)" : "";
|
|
150
|
+
return `bazel clean: ${status}${expunged}`;
|
|
151
|
+
}
|
|
152
|
+
export function compactBazelCleanMap(data) {
|
|
153
|
+
return {
|
|
154
|
+
action: "clean",
|
|
155
|
+
success: data.success,
|
|
156
|
+
expunged: data.expunged,
|
|
157
|
+
exitCode: data.exitCode,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
export function formatBazelCleanCompact(data) {
|
|
161
|
+
const status = data.success ? "success" : "failed";
|
|
162
|
+
const expunged = data.expunged ? " (expunged)" : "";
|
|
163
|
+
return `bazel clean: ${status}${expunged}`;
|
|
164
|
+
}
|
|
165
|
+
// ── Fetch ────────────────────────────────────────────────────────────
|
|
166
|
+
export function formatBazelFetch(data) {
|
|
167
|
+
return data.success ? "bazel fetch: success" : `bazel fetch: failed (exit code ${data.exitCode})`;
|
|
168
|
+
}
|
|
169
|
+
export function compactBazelFetchMap(data) {
|
|
170
|
+
return {
|
|
171
|
+
action: "fetch",
|
|
172
|
+
success: data.success,
|
|
173
|
+
exitCode: data.exitCode,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
export function formatBazelFetchCompact(data) {
|
|
177
|
+
return data.success ? "bazel fetch: success" : `bazel fetch: failed (exit code ${data.exitCode})`;
|
|
178
|
+
}
|
|
179
|
+
export function formatBazelResult(data) {
|
|
180
|
+
switch (data.action) {
|
|
181
|
+
case "build":
|
|
182
|
+
return formatBazelBuild(data);
|
|
183
|
+
case "test":
|
|
184
|
+
return formatBazelTest(data);
|
|
185
|
+
case "query":
|
|
186
|
+
return formatBazelQuery(data);
|
|
187
|
+
case "info":
|
|
188
|
+
return formatBazelInfo(data);
|
|
189
|
+
case "run":
|
|
190
|
+
return formatBazelRun(data);
|
|
191
|
+
case "clean":
|
|
192
|
+
return formatBazelClean(data);
|
|
193
|
+
case "fetch":
|
|
194
|
+
return formatBazelFetch(data);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
export function compactBazelResultMap(data) {
|
|
198
|
+
switch (data.action) {
|
|
199
|
+
case "build":
|
|
200
|
+
return compactBazelBuildMap(data);
|
|
201
|
+
case "test":
|
|
202
|
+
return compactBazelTestMap(data);
|
|
203
|
+
case "query":
|
|
204
|
+
return compactBazelQueryMap(data);
|
|
205
|
+
case "info":
|
|
206
|
+
return compactBazelInfoMap(data);
|
|
207
|
+
case "run":
|
|
208
|
+
return compactBazelRunMap(data);
|
|
209
|
+
case "clean":
|
|
210
|
+
return compactBazelCleanMap(data);
|
|
211
|
+
case "fetch":
|
|
212
|
+
return compactBazelFetchMap(data);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
export function formatBazelResultCompact(data) {
|
|
216
|
+
switch (data.action) {
|
|
217
|
+
case "build":
|
|
218
|
+
return formatBazelBuildCompact(data);
|
|
219
|
+
case "test":
|
|
220
|
+
return formatBazelTestCompact(data);
|
|
221
|
+
case "query":
|
|
222
|
+
return formatBazelQueryCompact(data);
|
|
223
|
+
case "info":
|
|
224
|
+
return formatBazelInfoCompact(data);
|
|
225
|
+
case "run":
|
|
226
|
+
return formatBazelRunCompact(data);
|
|
227
|
+
case "clean":
|
|
228
|
+
return formatBazelCleanCompact(data);
|
|
229
|
+
case "fetch":
|
|
230
|
+
return formatBazelFetchCompact(data);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=formatters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BazelBuildResult, BazelTestResult, BazelQueryResult, BazelInfoResult, BazelRunResult, BazelCleanResult, BazelFetchResult } from "../schemas/index.js";
|
|
2
|
+
export declare function parseBazelBuildOutput(stdout: string, stderr: string, exitCode: number): BazelBuildResult;
|
|
3
|
+
export declare function parseBazelTestOutput(stdout: string, stderr: string, exitCode: number): BazelTestResult;
|
|
4
|
+
export declare function parseBazelQueryOutput(stdout: string, _stderr: string, exitCode: number): BazelQueryResult;
|
|
5
|
+
export declare function parseBazelInfoOutput(stdout: string, _stderr: string, exitCode: number, infoKey?: string): BazelInfoResult;
|
|
6
|
+
export declare function parseBazelRunOutput(stdout: string, stderr: string, exitCode: number, target: string): BazelRunResult;
|
|
7
|
+
export declare function parseBazelCleanOutput(_stdout: string, _stderr: string, exitCode: number, expunged: boolean): BazelCleanResult;
|
|
8
|
+
export declare function parseBazelFetchOutput(_stdout: string, _stderr: string, exitCode: number): BazelFetchResult;
|
|
9
|
+
//# sourceMappingURL=parsers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAI7B,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,gBAAgB,CAmElB;AAID,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,eAAe,CAuEjB;AAID,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,gBAAgB,CAclB;AAID,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,eAAe,CAyBjB;AAID,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,cAAc,CAWhB;AAID,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,GAChB,gBAAgB,CAOlB;AAID,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,gBAAgB,CAMlB"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
// ── Build ────────────────────────────────────────────────────────────
|
|
2
|
+
export function parseBazelBuildOutput(stdout, stderr, exitCode) {
|
|
3
|
+
const combined = stderr + "\n" + stdout;
|
|
4
|
+
const success = exitCode === 0;
|
|
5
|
+
// Parse target count from "INFO: Analyzed N targets"
|
|
6
|
+
const analyzedMatch = combined.match(/INFO: Analyzed (\d+) targets?/);
|
|
7
|
+
const totalTargets = analyzedMatch ? parseInt(analyzedMatch[1], 10) : 0;
|
|
8
|
+
// Parse errors with file/line info: ERROR: /path/BUILD:line:col: ...
|
|
9
|
+
const errors = [];
|
|
10
|
+
const errorLines = combined.split("\n").filter((l) => l.startsWith("ERROR:"));
|
|
11
|
+
for (const line of errorLines) {
|
|
12
|
+
const fileMatch = line.match(/^ERROR: ([^:]+):(\d+):(\d+): (.+)/);
|
|
13
|
+
if (fileMatch) {
|
|
14
|
+
errors.push({
|
|
15
|
+
file: fileMatch[1],
|
|
16
|
+
line: parseInt(fileMatch[2], 10),
|
|
17
|
+
message: fileMatch[4],
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
const msgMatch = line.match(/^ERROR: (.+)/);
|
|
22
|
+
if (msgMatch) {
|
|
23
|
+
// Try to extract a target label from error messages like "Target //src:app failed to build"
|
|
24
|
+
const targetMatch = msgMatch[1].match(/Target (\/\/\S+) failed/);
|
|
25
|
+
errors.push({
|
|
26
|
+
target: targetMatch ? targetMatch[1] : undefined,
|
|
27
|
+
message: msgMatch[1],
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Parse duration from "Elapsed time: X.XXXs"
|
|
33
|
+
const durationMatch = combined.match(/Elapsed time: ([\d.]+)s/);
|
|
34
|
+
const durationMs = durationMatch ? Math.round(parseFloat(durationMatch[1]) * 1000) : undefined;
|
|
35
|
+
// Count failed targets from errors
|
|
36
|
+
const failedTargets = errors.filter((e) => e.target).length;
|
|
37
|
+
const successTargets = success ? totalTargets : totalTargets - Math.max(failedTargets, 0);
|
|
38
|
+
// Build target list
|
|
39
|
+
const targets = [];
|
|
40
|
+
// Extract target labels that failed
|
|
41
|
+
const failedLabels = new Set(errors.filter((e) => e.target).map((e) => e.target));
|
|
42
|
+
// If we know total targets, generate success entries for the non-failed ones
|
|
43
|
+
if (totalTargets > 0) {
|
|
44
|
+
for (const label of failedLabels) {
|
|
45
|
+
targets.push({ label, status: "failed" });
|
|
46
|
+
}
|
|
47
|
+
// We don't have individual success target labels from the output,
|
|
48
|
+
// but we can still report the summary accurately
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
action: "build",
|
|
52
|
+
success,
|
|
53
|
+
targets,
|
|
54
|
+
summary: {
|
|
55
|
+
totalTargets,
|
|
56
|
+
successTargets: Math.max(0, successTargets),
|
|
57
|
+
failedTargets: failedLabels.size,
|
|
58
|
+
},
|
|
59
|
+
errors: errors.length > 0 ? errors : undefined,
|
|
60
|
+
durationMs,
|
|
61
|
+
exitCode,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
// ── Test ─────────────────────────────────────────────────────────────
|
|
65
|
+
export function parseBazelTestOutput(stdout, stderr, exitCode) {
|
|
66
|
+
const combined = stderr + "\n" + stdout;
|
|
67
|
+
const success = exitCode === 0;
|
|
68
|
+
// Parse individual test results
|
|
69
|
+
// Pattern: //label STATUS in X.Xs
|
|
70
|
+
const testPattern = /^(\/\/\S+)\s+(PASSED|FAILED|FLAKY|TIMEOUT|NO STATUS)\s+in\s+([\d.]+)s/gm;
|
|
71
|
+
const tests = [];
|
|
72
|
+
let match;
|
|
73
|
+
while ((match = testPattern.exec(combined)) !== null) {
|
|
74
|
+
const statusMap = {
|
|
75
|
+
PASSED: "passed",
|
|
76
|
+
FAILED: "failed",
|
|
77
|
+
FLAKY: "flaky",
|
|
78
|
+
TIMEOUT: "timeout",
|
|
79
|
+
"NO STATUS": "no_status",
|
|
80
|
+
};
|
|
81
|
+
tests.push({
|
|
82
|
+
label: match[1],
|
|
83
|
+
status: statusMap[match[2]] || "no_status",
|
|
84
|
+
durationMs: Math.round(parseFloat(match[3]) * 1000),
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
// Parse summary counts
|
|
88
|
+
let passed = 0;
|
|
89
|
+
let failed = 0;
|
|
90
|
+
let timeout = 0;
|
|
91
|
+
let flaky = 0;
|
|
92
|
+
let skipped = 0;
|
|
93
|
+
for (const t of tests) {
|
|
94
|
+
switch (t.status) {
|
|
95
|
+
case "passed":
|
|
96
|
+
passed++;
|
|
97
|
+
break;
|
|
98
|
+
case "failed":
|
|
99
|
+
failed++;
|
|
100
|
+
break;
|
|
101
|
+
case "timeout":
|
|
102
|
+
timeout++;
|
|
103
|
+
break;
|
|
104
|
+
case "flaky":
|
|
105
|
+
flaky++;
|
|
106
|
+
break;
|
|
107
|
+
case "skipped":
|
|
108
|
+
skipped++;
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Parse duration from "Elapsed time: X.XXXs"
|
|
113
|
+
const durationMatch = combined.match(/Elapsed time: ([\d.]+)s/);
|
|
114
|
+
const durationMs = durationMatch ? Math.round(parseFloat(durationMatch[1]) * 1000) : undefined;
|
|
115
|
+
return {
|
|
116
|
+
action: "test",
|
|
117
|
+
success,
|
|
118
|
+
tests,
|
|
119
|
+
summary: {
|
|
120
|
+
totalTests: tests.length,
|
|
121
|
+
passed,
|
|
122
|
+
failed,
|
|
123
|
+
timeout,
|
|
124
|
+
flaky,
|
|
125
|
+
skipped,
|
|
126
|
+
},
|
|
127
|
+
durationMs,
|
|
128
|
+
exitCode,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
// ── Query ────────────────────────────────────────────────────────────
|
|
132
|
+
export function parseBazelQueryOutput(stdout, _stderr, exitCode) {
|
|
133
|
+
const success = exitCode === 0;
|
|
134
|
+
const results = stdout
|
|
135
|
+
.split("\n")
|
|
136
|
+
.map((l) => l.trim())
|
|
137
|
+
.filter((l) => l.length > 0);
|
|
138
|
+
return {
|
|
139
|
+
action: "query",
|
|
140
|
+
success,
|
|
141
|
+
results,
|
|
142
|
+
count: results.length,
|
|
143
|
+
exitCode,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
// ── Info ─────────────────────────────────────────────────────────────
|
|
147
|
+
export function parseBazelInfoOutput(stdout, _stderr, exitCode, infoKey) {
|
|
148
|
+
const success = exitCode === 0;
|
|
149
|
+
const info = {};
|
|
150
|
+
if (infoKey) {
|
|
151
|
+
// Single key mode: stdout is just the value
|
|
152
|
+
info[infoKey] = stdout.trim();
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
// Multi-key mode: parse "key: value" lines
|
|
156
|
+
for (const line of stdout.split("\n")) {
|
|
157
|
+
const colonIdx = line.indexOf(": ");
|
|
158
|
+
if (colonIdx > 0) {
|
|
159
|
+
const key = line.substring(0, colonIdx).trim();
|
|
160
|
+
const value = line.substring(colonIdx + 2).trim();
|
|
161
|
+
if (key)
|
|
162
|
+
info[key] = value;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
action: "info",
|
|
168
|
+
success,
|
|
169
|
+
info,
|
|
170
|
+
exitCode,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
// ── Run ──────────────────────────────────────────────────────────────
|
|
174
|
+
export function parseBazelRunOutput(stdout, stderr, exitCode, target) {
|
|
175
|
+
const success = exitCode === 0;
|
|
176
|
+
return {
|
|
177
|
+
action: "run",
|
|
178
|
+
success,
|
|
179
|
+
target,
|
|
180
|
+
stdout: stdout.trim(),
|
|
181
|
+
stderr: stderr.trim() || undefined,
|
|
182
|
+
exitCode,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
// ── Clean ────────────────────────────────────────────────────────────
|
|
186
|
+
export function parseBazelCleanOutput(_stdout, _stderr, exitCode, expunged) {
|
|
187
|
+
return {
|
|
188
|
+
action: "clean",
|
|
189
|
+
success: exitCode === 0,
|
|
190
|
+
expunged,
|
|
191
|
+
exitCode,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
// ── Fetch ────────────────────────────────────────────────────────────
|
|
195
|
+
export function parseBazelFetchOutput(_stdout, _stderr, exitCode) {
|
|
196
|
+
return {
|
|
197
|
+
action: "fetch",
|
|
198
|
+
success: exitCode === 0,
|
|
199
|
+
exitCode,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=parsers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const BazelBuildTargetSchema: z.ZodObject<{
|
|
3
|
+
label: z.ZodString;
|
|
4
|
+
status: z.ZodEnum<{
|
|
5
|
+
success: "success";
|
|
6
|
+
failed: "failed";
|
|
7
|
+
skipped: "skipped";
|
|
8
|
+
}>;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
export declare const BazelBuildResultSchema: z.ZodObject<{
|
|
11
|
+
action: z.ZodLiteral<"build">;
|
|
12
|
+
success: z.ZodBoolean;
|
|
13
|
+
targets: z.ZodArray<z.ZodObject<{
|
|
14
|
+
label: z.ZodString;
|
|
15
|
+
status: z.ZodEnum<{
|
|
16
|
+
success: "success";
|
|
17
|
+
failed: "failed";
|
|
18
|
+
skipped: "skipped";
|
|
19
|
+
}>;
|
|
20
|
+
}, z.core.$strip>>;
|
|
21
|
+
summary: z.ZodObject<{
|
|
22
|
+
totalTargets: z.ZodNumber;
|
|
23
|
+
successTargets: z.ZodNumber;
|
|
24
|
+
failedTargets: z.ZodNumber;
|
|
25
|
+
}, z.core.$strip>;
|
|
26
|
+
errors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
27
|
+
target: z.ZodOptional<z.ZodString>;
|
|
28
|
+
message: z.ZodString;
|
|
29
|
+
file: z.ZodOptional<z.ZodString>;
|
|
30
|
+
line: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
}, z.core.$strip>>>;
|
|
32
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
33
|
+
exitCode: z.ZodNumber;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
export type BazelBuildResult = z.infer<typeof BazelBuildResultSchema>;
|
|
36
|
+
export declare const BazelTestCaseSchema: z.ZodObject<{
|
|
37
|
+
label: z.ZodString;
|
|
38
|
+
status: z.ZodEnum<{
|
|
39
|
+
timeout: "timeout";
|
|
40
|
+
failed: "failed";
|
|
41
|
+
skipped: "skipped";
|
|
42
|
+
passed: "passed";
|
|
43
|
+
flaky: "flaky";
|
|
44
|
+
no_status: "no_status";
|
|
45
|
+
}>;
|
|
46
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
failureMessage: z.ZodOptional<z.ZodString>;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
export declare const BazelTestResultSchema: z.ZodObject<{
|
|
50
|
+
action: z.ZodLiteral<"test">;
|
|
51
|
+
success: z.ZodBoolean;
|
|
52
|
+
tests: z.ZodArray<z.ZodObject<{
|
|
53
|
+
label: z.ZodString;
|
|
54
|
+
status: z.ZodEnum<{
|
|
55
|
+
timeout: "timeout";
|
|
56
|
+
failed: "failed";
|
|
57
|
+
skipped: "skipped";
|
|
58
|
+
passed: "passed";
|
|
59
|
+
flaky: "flaky";
|
|
60
|
+
no_status: "no_status";
|
|
61
|
+
}>;
|
|
62
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
63
|
+
failureMessage: z.ZodOptional<z.ZodString>;
|
|
64
|
+
}, z.core.$strip>>;
|
|
65
|
+
summary: z.ZodObject<{
|
|
66
|
+
totalTests: z.ZodNumber;
|
|
67
|
+
passed: z.ZodNumber;
|
|
68
|
+
failed: z.ZodNumber;
|
|
69
|
+
timeout: z.ZodNumber;
|
|
70
|
+
flaky: z.ZodNumber;
|
|
71
|
+
skipped: z.ZodNumber;
|
|
72
|
+
}, z.core.$strip>;
|
|
73
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
74
|
+
exitCode: z.ZodNumber;
|
|
75
|
+
}, z.core.$strip>;
|
|
76
|
+
export type BazelTestResult = z.infer<typeof BazelTestResultSchema>;
|
|
77
|
+
export declare const BazelQueryResultSchema: z.ZodObject<{
|
|
78
|
+
action: z.ZodLiteral<"query">;
|
|
79
|
+
success: z.ZodBoolean;
|
|
80
|
+
results: z.ZodArray<z.ZodString>;
|
|
81
|
+
count: z.ZodNumber;
|
|
82
|
+
exitCode: z.ZodNumber;
|
|
83
|
+
}, z.core.$strip>;
|
|
84
|
+
export type BazelQueryResult = z.infer<typeof BazelQueryResultSchema>;
|
|
85
|
+
export declare const BazelInfoResultSchema: z.ZodObject<{
|
|
86
|
+
action: z.ZodLiteral<"info">;
|
|
87
|
+
success: z.ZodBoolean;
|
|
88
|
+
info: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
89
|
+
exitCode: z.ZodNumber;
|
|
90
|
+
}, z.core.$strip>;
|
|
91
|
+
export type BazelInfoResult = z.infer<typeof BazelInfoResultSchema>;
|
|
92
|
+
export declare const BazelRunResultSchema: z.ZodObject<{
|
|
93
|
+
action: z.ZodLiteral<"run">;
|
|
94
|
+
success: z.ZodBoolean;
|
|
95
|
+
target: z.ZodString;
|
|
96
|
+
stdout: z.ZodString;
|
|
97
|
+
stderr: z.ZodOptional<z.ZodString>;
|
|
98
|
+
exitCode: z.ZodNumber;
|
|
99
|
+
}, z.core.$strip>;
|
|
100
|
+
export type BazelRunResult = z.infer<typeof BazelRunResultSchema>;
|
|
101
|
+
export declare const BazelCleanResultSchema: z.ZodObject<{
|
|
102
|
+
action: z.ZodLiteral<"clean">;
|
|
103
|
+
success: z.ZodBoolean;
|
|
104
|
+
expunged: z.ZodBoolean;
|
|
105
|
+
exitCode: z.ZodNumber;
|
|
106
|
+
}, z.core.$strip>;
|
|
107
|
+
export type BazelCleanResult = z.infer<typeof BazelCleanResultSchema>;
|
|
108
|
+
export declare const BazelFetchResultSchema: z.ZodObject<{
|
|
109
|
+
action: z.ZodLiteral<"fetch">;
|
|
110
|
+
success: z.ZodBoolean;
|
|
111
|
+
exitCode: z.ZodNumber;
|
|
112
|
+
}, z.core.$strip>;
|
|
113
|
+
export type BazelFetchResult = z.infer<typeof BazelFetchResultSchema>;
|
|
114
|
+
export declare const BazelResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
115
|
+
action: z.ZodLiteral<"build">;
|
|
116
|
+
success: z.ZodBoolean;
|
|
117
|
+
targets: z.ZodArray<z.ZodObject<{
|
|
118
|
+
label: z.ZodString;
|
|
119
|
+
status: z.ZodEnum<{
|
|
120
|
+
success: "success";
|
|
121
|
+
failed: "failed";
|
|
122
|
+
skipped: "skipped";
|
|
123
|
+
}>;
|
|
124
|
+
}, z.core.$strip>>;
|
|
125
|
+
summary: z.ZodObject<{
|
|
126
|
+
totalTargets: z.ZodNumber;
|
|
127
|
+
successTargets: z.ZodNumber;
|
|
128
|
+
failedTargets: z.ZodNumber;
|
|
129
|
+
}, z.core.$strip>;
|
|
130
|
+
errors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
131
|
+
target: z.ZodOptional<z.ZodString>;
|
|
132
|
+
message: z.ZodString;
|
|
133
|
+
file: z.ZodOptional<z.ZodString>;
|
|
134
|
+
line: z.ZodOptional<z.ZodNumber>;
|
|
135
|
+
}, z.core.$strip>>>;
|
|
136
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
137
|
+
exitCode: z.ZodNumber;
|
|
138
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
139
|
+
action: z.ZodLiteral<"test">;
|
|
140
|
+
success: z.ZodBoolean;
|
|
141
|
+
tests: z.ZodArray<z.ZodObject<{
|
|
142
|
+
label: z.ZodString;
|
|
143
|
+
status: z.ZodEnum<{
|
|
144
|
+
timeout: "timeout";
|
|
145
|
+
failed: "failed";
|
|
146
|
+
skipped: "skipped";
|
|
147
|
+
passed: "passed";
|
|
148
|
+
flaky: "flaky";
|
|
149
|
+
no_status: "no_status";
|
|
150
|
+
}>;
|
|
151
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
152
|
+
failureMessage: z.ZodOptional<z.ZodString>;
|
|
153
|
+
}, z.core.$strip>>;
|
|
154
|
+
summary: z.ZodObject<{
|
|
155
|
+
totalTests: z.ZodNumber;
|
|
156
|
+
passed: z.ZodNumber;
|
|
157
|
+
failed: z.ZodNumber;
|
|
158
|
+
timeout: z.ZodNumber;
|
|
159
|
+
flaky: z.ZodNumber;
|
|
160
|
+
skipped: z.ZodNumber;
|
|
161
|
+
}, z.core.$strip>;
|
|
162
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
163
|
+
exitCode: z.ZodNumber;
|
|
164
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
165
|
+
action: z.ZodLiteral<"query">;
|
|
166
|
+
success: z.ZodBoolean;
|
|
167
|
+
results: z.ZodArray<z.ZodString>;
|
|
168
|
+
count: z.ZodNumber;
|
|
169
|
+
exitCode: z.ZodNumber;
|
|
170
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
171
|
+
action: z.ZodLiteral<"info">;
|
|
172
|
+
success: z.ZodBoolean;
|
|
173
|
+
info: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
174
|
+
exitCode: z.ZodNumber;
|
|
175
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
176
|
+
action: z.ZodLiteral<"run">;
|
|
177
|
+
success: z.ZodBoolean;
|
|
178
|
+
target: z.ZodString;
|
|
179
|
+
stdout: z.ZodString;
|
|
180
|
+
stderr: z.ZodOptional<z.ZodString>;
|
|
181
|
+
exitCode: z.ZodNumber;
|
|
182
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
183
|
+
action: z.ZodLiteral<"clean">;
|
|
184
|
+
success: z.ZodBoolean;
|
|
185
|
+
expunged: z.ZodBoolean;
|
|
186
|
+
exitCode: z.ZodNumber;
|
|
187
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
188
|
+
action: z.ZodLiteral<"fetch">;
|
|
189
|
+
success: z.ZodBoolean;
|
|
190
|
+
exitCode: z.ZodNumber;
|
|
191
|
+
}, z.core.$strip>], "action">;
|
|
192
|
+
export type BazelResult = z.infer<typeof BazelResultSchema>;
|
|
193
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,sBAAsB;;;;;;;iBAGjC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;iBAqBjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAItE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;iBAK9B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAchC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,eAAO,MAAM,sBAAsB;;;;;;iBAMjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAItE,eAAO,MAAM,qBAAqB;;;;;iBAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,eAAO,MAAM,oBAAoB;;;;;;;iBAO/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAItE,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAItE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAQ5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
// ── Build ────────────────────────────────────────────────────────────
|
|
3
|
+
export const BazelBuildTargetSchema = z.object({
|
|
4
|
+
label: z.string(),
|
|
5
|
+
status: z.enum(["success", "failed", "skipped"]),
|
|
6
|
+
});
|
|
7
|
+
export const BazelBuildResultSchema = z.object({
|
|
8
|
+
action: z.literal("build"),
|
|
9
|
+
success: z.boolean(),
|
|
10
|
+
targets: z.array(BazelBuildTargetSchema),
|
|
11
|
+
summary: z.object({
|
|
12
|
+
totalTargets: z.number(),
|
|
13
|
+
successTargets: z.number(),
|
|
14
|
+
failedTargets: z.number(),
|
|
15
|
+
}),
|
|
16
|
+
errors: z
|
|
17
|
+
.array(z.object({
|
|
18
|
+
target: z.string().optional(),
|
|
19
|
+
message: z.string(),
|
|
20
|
+
file: z.string().optional(),
|
|
21
|
+
line: z.number().optional(),
|
|
22
|
+
}))
|
|
23
|
+
.optional(),
|
|
24
|
+
durationMs: z.number().optional(),
|
|
25
|
+
exitCode: z.number(),
|
|
26
|
+
});
|
|
27
|
+
// ── Test ─────────────────────────────────────────────────────────────
|
|
28
|
+
export const BazelTestCaseSchema = z.object({
|
|
29
|
+
label: z.string(),
|
|
30
|
+
status: z.enum(["passed", "failed", "timeout", "flaky", "skipped", "no_status"]),
|
|
31
|
+
durationMs: z.number().optional(),
|
|
32
|
+
failureMessage: z.string().optional(),
|
|
33
|
+
});
|
|
34
|
+
export const BazelTestResultSchema = z.object({
|
|
35
|
+
action: z.literal("test"),
|
|
36
|
+
success: z.boolean(),
|
|
37
|
+
tests: z.array(BazelTestCaseSchema),
|
|
38
|
+
summary: z.object({
|
|
39
|
+
totalTests: z.number(),
|
|
40
|
+
passed: z.number(),
|
|
41
|
+
failed: z.number(),
|
|
42
|
+
timeout: z.number(),
|
|
43
|
+
flaky: z.number(),
|
|
44
|
+
skipped: z.number(),
|
|
45
|
+
}),
|
|
46
|
+
durationMs: z.number().optional(),
|
|
47
|
+
exitCode: z.number(),
|
|
48
|
+
});
|
|
49
|
+
// ── Query ────────────────────────────────────────────────────────────
|
|
50
|
+
export const BazelQueryResultSchema = z.object({
|
|
51
|
+
action: z.literal("query"),
|
|
52
|
+
success: z.boolean(),
|
|
53
|
+
results: z.array(z.string()),
|
|
54
|
+
count: z.number(),
|
|
55
|
+
exitCode: z.number(),
|
|
56
|
+
});
|
|
57
|
+
// ── Info ─────────────────────────────────────────────────────────────
|
|
58
|
+
export const BazelInfoResultSchema = z.object({
|
|
59
|
+
action: z.literal("info"),
|
|
60
|
+
success: z.boolean(),
|
|
61
|
+
info: z.record(z.string(), z.string()),
|
|
62
|
+
exitCode: z.number(),
|
|
63
|
+
});
|
|
64
|
+
// ── Run ──────────────────────────────────────────────────────────────
|
|
65
|
+
export const BazelRunResultSchema = z.object({
|
|
66
|
+
action: z.literal("run"),
|
|
67
|
+
success: z.boolean(),
|
|
68
|
+
target: z.string(),
|
|
69
|
+
stdout: z.string(),
|
|
70
|
+
stderr: z.string().optional(),
|
|
71
|
+
exitCode: z.number(),
|
|
72
|
+
});
|
|
73
|
+
// ── Clean ────────────────────────────────────────────────────────────
|
|
74
|
+
export const BazelCleanResultSchema = z.object({
|
|
75
|
+
action: z.literal("clean"),
|
|
76
|
+
success: z.boolean(),
|
|
77
|
+
expunged: z.boolean(),
|
|
78
|
+
exitCode: z.number(),
|
|
79
|
+
});
|
|
80
|
+
// ── Fetch ────────────────────────────────────────────────────────────
|
|
81
|
+
export const BazelFetchResultSchema = z.object({
|
|
82
|
+
action: z.literal("fetch"),
|
|
83
|
+
success: z.boolean(),
|
|
84
|
+
exitCode: z.number(),
|
|
85
|
+
});
|
|
86
|
+
// ── Union ────────────────────────────────────────────────────────────
|
|
87
|
+
export const BazelResultSchema = z.discriminatedUnion("action", [
|
|
88
|
+
BazelBuildResultSchema,
|
|
89
|
+
BazelTestResultSchema,
|
|
90
|
+
BazelQueryResultSchema,
|
|
91
|
+
BazelInfoResultSchema,
|
|
92
|
+
BazelRunResultSchema,
|
|
93
|
+
BazelCleanResultSchema,
|
|
94
|
+
BazelFetchResultSchema,
|
|
95
|
+
]);
|
|
96
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wEAAwE;AAExE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;KAC1B,CAAC;IACF,MAAM,EAAE,CAAC;SACN,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,CAAC,CACH;SACA,QAAQ,EAAE;IACb,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAIH,wEAAwE;AAExE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAChF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC;IACF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAIH,wEAAwE;AAExE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAIH,wEAAwE;AAExE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAIH,wEAAwE;AAExE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAIH,wEAAwE;AAExE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAIH,wEAAwE;AAExE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAIH,wEAAwE;AAExE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IAC9D,sBAAsB;IACtB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;CACvB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bazel.d.ts","sourceRoot":"","sources":["../../src/tools/bazel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4BzE,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,QAkNlD"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { compactDualOutput, assertNoFlagInjection, assertAllowedByPolicy, INPUT_LIMITS, compactInput, projectPathInput, } from "@paretools/shared";
|
|
3
|
+
import { bazelCmd } from "../lib/bazel-runner.js";
|
|
4
|
+
import { parseBazelBuildOutput, parseBazelTestOutput, parseBazelQueryOutput, parseBazelInfoOutput, parseBazelRunOutput, parseBazelCleanOutput, parseBazelFetchOutput, } from "../lib/parsers.js";
|
|
5
|
+
import { formatBazelResult, compactBazelResultMap, formatBazelResultCompact, } from "../lib/formatters.js";
|
|
6
|
+
// MCP listTools requires an object-shaped outputSchema; discriminated unions are not supported.
|
|
7
|
+
const BazelOutputSchema = z.object({ action: z.string() }).passthrough();
|
|
8
|
+
/** Registers the `bazel` tool on the given MCP server. */
|
|
9
|
+
export function registerBazelTool(server) {
|
|
10
|
+
server.registerTool("bazel", {
|
|
11
|
+
title: "Bazel",
|
|
12
|
+
description: "Bazel build system operations: build, test, query, info, run, clean, fetch.",
|
|
13
|
+
inputSchema: {
|
|
14
|
+
action: z
|
|
15
|
+
.enum(["build", "test", "query", "info", "run", "clean", "fetch"])
|
|
16
|
+
.describe("Bazel action"),
|
|
17
|
+
targets: z
|
|
18
|
+
.array(z.string().max(INPUT_LIMITS.SHORT_STRING_MAX))
|
|
19
|
+
.max(50)
|
|
20
|
+
.optional()
|
|
21
|
+
.describe("Target patterns (e.g. //src:app, //...)"),
|
|
22
|
+
workDir: projectPathInput,
|
|
23
|
+
queryExpr: z
|
|
24
|
+
.string()
|
|
25
|
+
.max(INPUT_LIMITS.STRING_MAX)
|
|
26
|
+
.optional()
|
|
27
|
+
.describe("Query expression for query action"),
|
|
28
|
+
queryOutput: z
|
|
29
|
+
.enum(["label", "label_kind", "minrank", "maxrank", "package", "location", "build"])
|
|
30
|
+
.optional()
|
|
31
|
+
.default("label")
|
|
32
|
+
.describe("Query output format"),
|
|
33
|
+
keepGoing: z.boolean().optional().describe("Continue after errors (-k)"),
|
|
34
|
+
testOutput: z
|
|
35
|
+
.enum(["summary", "errors", "all", "streamed"])
|
|
36
|
+
.optional()
|
|
37
|
+
.default("errors")
|
|
38
|
+
.describe("Test output mode"),
|
|
39
|
+
verboseFailures: z.boolean().optional().default(true).describe("Verbose failure messages"),
|
|
40
|
+
infoKey: z
|
|
41
|
+
.string()
|
|
42
|
+
.max(INPUT_LIMITS.SHORT_STRING_MAX)
|
|
43
|
+
.optional()
|
|
44
|
+
.describe("Specific info key"),
|
|
45
|
+
expunge: z.boolean().optional().describe("Full clean with --expunge"),
|
|
46
|
+
compact: compactInput,
|
|
47
|
+
},
|
|
48
|
+
outputSchema: BazelOutputSchema,
|
|
49
|
+
}, async ({ action, targets, workDir, queryExpr, queryOutput, keepGoing, testOutput, verboseFailures, infoKey, expunge, compact, }) => {
|
|
50
|
+
const cwd = workDir || process.cwd();
|
|
51
|
+
// Validate targets
|
|
52
|
+
if (targets) {
|
|
53
|
+
for (const t of targets) {
|
|
54
|
+
assertNoFlagInjection(t, "targets");
|
|
55
|
+
// Validate target pattern: must start with //, @, or be ...
|
|
56
|
+
if (!t.startsWith("//") && !t.startsWith("@") && t !== "...") {
|
|
57
|
+
throw new Error(`Invalid Bazel target pattern: "${t}". Must start with //, @, or be "..."`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (queryExpr)
|
|
62
|
+
assertNoFlagInjection(queryExpr, "queryExpr");
|
|
63
|
+
if (infoKey)
|
|
64
|
+
assertNoFlagInjection(infoKey, "infoKey");
|
|
65
|
+
// Policy gates
|
|
66
|
+
if (action === "run")
|
|
67
|
+
assertAllowedByPolicy("bazel", "bazel");
|
|
68
|
+
if (action === "clean" && expunge)
|
|
69
|
+
assertAllowedByPolicy("bazel", "bazel");
|
|
70
|
+
// Common flags
|
|
71
|
+
const baseFlags = ["--nocolor", "--curses=no"];
|
|
72
|
+
switch (action) {
|
|
73
|
+
case "build": {
|
|
74
|
+
if (!targets?.length)
|
|
75
|
+
throw new Error("targets required for build");
|
|
76
|
+
const args = ["build", ...baseFlags];
|
|
77
|
+
if (keepGoing)
|
|
78
|
+
args.push("-k");
|
|
79
|
+
if (verboseFailures)
|
|
80
|
+
args.push("--verbose_failures");
|
|
81
|
+
args.push(...targets);
|
|
82
|
+
const result = await bazelCmd(args, cwd);
|
|
83
|
+
const data = parseBazelBuildOutput(result.stdout, result.stderr, result.exitCode);
|
|
84
|
+
const rawOutput = (result.stdout + "\n" + result.stderr).trim();
|
|
85
|
+
return compactDualOutput(data, rawOutput, formatBazelResult, compactBazelResultMap, formatBazelResultCompact, compact === false);
|
|
86
|
+
}
|
|
87
|
+
case "test": {
|
|
88
|
+
if (!targets?.length)
|
|
89
|
+
throw new Error("targets required for test");
|
|
90
|
+
const args = ["test", ...baseFlags];
|
|
91
|
+
if (keepGoing)
|
|
92
|
+
args.push("-k");
|
|
93
|
+
if (verboseFailures)
|
|
94
|
+
args.push("--verbose_failures");
|
|
95
|
+
if (testOutput)
|
|
96
|
+
args.push(`--test_output=${testOutput}`);
|
|
97
|
+
args.push(...targets);
|
|
98
|
+
const result = await bazelCmd(args, cwd);
|
|
99
|
+
const data = parseBazelTestOutput(result.stdout, result.stderr, result.exitCode);
|
|
100
|
+
const rawOutput = (result.stdout + "\n" + result.stderr).trim();
|
|
101
|
+
return compactDualOutput(data, rawOutput, formatBazelResult, compactBazelResultMap, formatBazelResultCompact, compact === false);
|
|
102
|
+
}
|
|
103
|
+
case "query": {
|
|
104
|
+
if (!queryExpr)
|
|
105
|
+
throw new Error("queryExpr required for query");
|
|
106
|
+
const args = ["query", ...baseFlags];
|
|
107
|
+
if (queryOutput)
|
|
108
|
+
args.push(`--output=${queryOutput}`);
|
|
109
|
+
if (keepGoing)
|
|
110
|
+
args.push("-k");
|
|
111
|
+
args.push(queryExpr);
|
|
112
|
+
const result = await bazelCmd(args, cwd);
|
|
113
|
+
const data = parseBazelQueryOutput(result.stdout, result.stderr, result.exitCode);
|
|
114
|
+
const rawOutput = (result.stdout + "\n" + result.stderr).trim();
|
|
115
|
+
return compactDualOutput(data, rawOutput, formatBazelResult, compactBazelResultMap, formatBazelResultCompact, compact === false);
|
|
116
|
+
}
|
|
117
|
+
case "info": {
|
|
118
|
+
const args = ["info", ...baseFlags];
|
|
119
|
+
if (infoKey)
|
|
120
|
+
args.push(infoKey);
|
|
121
|
+
const result = await bazelCmd(args, cwd);
|
|
122
|
+
const data = parseBazelInfoOutput(result.stdout, result.stderr, result.exitCode, infoKey);
|
|
123
|
+
const rawOutput = (result.stdout + "\n" + result.stderr).trim();
|
|
124
|
+
return compactDualOutput(data, rawOutput, formatBazelResult, compactBazelResultMap, formatBazelResultCompact, compact === false);
|
|
125
|
+
}
|
|
126
|
+
case "run": {
|
|
127
|
+
if (!targets?.length || targets.length !== 1)
|
|
128
|
+
throw new Error("exactly one target required for run");
|
|
129
|
+
const args = ["run", ...baseFlags, ...targets];
|
|
130
|
+
const result = await bazelCmd(args, cwd);
|
|
131
|
+
const data = parseBazelRunOutput(result.stdout, result.stderr, result.exitCode, targets[0]);
|
|
132
|
+
const rawOutput = (result.stdout + "\n" + result.stderr).trim();
|
|
133
|
+
return compactDualOutput(data, rawOutput, formatBazelResult, compactBazelResultMap, formatBazelResultCompact, compact === false);
|
|
134
|
+
}
|
|
135
|
+
case "clean": {
|
|
136
|
+
const args = ["clean", ...baseFlags];
|
|
137
|
+
if (expunge)
|
|
138
|
+
args.push("--expunge");
|
|
139
|
+
const result = await bazelCmd(args, cwd);
|
|
140
|
+
const data = parseBazelCleanOutput(result.stdout, result.stderr, result.exitCode, !!expunge);
|
|
141
|
+
const rawOutput = (result.stdout + "\n" + result.stderr).trim();
|
|
142
|
+
return compactDualOutput(data, rawOutput, formatBazelResult, compactBazelResultMap, formatBazelResultCompact, compact === false);
|
|
143
|
+
}
|
|
144
|
+
case "fetch": {
|
|
145
|
+
if (!targets?.length)
|
|
146
|
+
throw new Error("targets required for fetch");
|
|
147
|
+
const args = ["fetch", ...baseFlags, ...targets];
|
|
148
|
+
const result = await bazelCmd(args, cwd);
|
|
149
|
+
const data = parseBazelFetchOutput(result.stdout, result.stderr, result.exitCode);
|
|
150
|
+
const rawOutput = (result.stdout + "\n" + result.stderr).trim();
|
|
151
|
+
return compactDualOutput(data, rawOutput, formatBazelResult, compactBazelResultMap, formatBazelResultCompact, compact === false);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=bazel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bazel.js","sourceRoot":"","sources":["../../src/tools/bazel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,QAGjD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { shouldRegisterTool } from "@paretools/shared";
|
|
2
|
+
import { registerBazelTool } from "./bazel.js";
|
|
3
|
+
export function registerAllTools(server) {
|
|
4
|
+
const s = (name) => shouldRegisterTool("bazel", name);
|
|
5
|
+
if (s("bazel"))
|
|
6
|
+
registerBazelTool(server);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9D,IAAI,CAAC,CAAC,OAAO,CAAC;QAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@paretools/bazel",
|
|
3
|
+
"version": "0.11.0",
|
|
4
|
+
"mcpName": "io.github.Dave-London/pare-bazel",
|
|
5
|
+
"description": "MCP server for Bazel build system operations with structured, token-efficient output",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"mcp",
|
|
9
|
+
"mcp-server",
|
|
10
|
+
"model-context-protocol",
|
|
11
|
+
"structured-output",
|
|
12
|
+
"ai",
|
|
13
|
+
"bazel",
|
|
14
|
+
"bazelisk",
|
|
15
|
+
"build-system"
|
|
16
|
+
],
|
|
17
|
+
"homepage": "https://github.com/Dave-London/Pare/tree/main/packages/server-bazel",
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=20"
|
|
20
|
+
},
|
|
21
|
+
"type": "module",
|
|
22
|
+
"bin": {
|
|
23
|
+
"pare-bazel": "./dist/index.js"
|
|
24
|
+
},
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"default": "./dist/index.js"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public"
|
|
33
|
+
},
|
|
34
|
+
"repository": {
|
|
35
|
+
"type": "git",
|
|
36
|
+
"url": "https://github.com/Dave-London/Pare.git",
|
|
37
|
+
"directory": "packages/server-bazel"
|
|
38
|
+
},
|
|
39
|
+
"bugs": {
|
|
40
|
+
"url": "https://github.com/Dave-London/Pare/issues"
|
|
41
|
+
},
|
|
42
|
+
"files": [
|
|
43
|
+
"dist"
|
|
44
|
+
],
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
47
|
+
"zod": "^4.3.6",
|
|
48
|
+
"@paretools/shared": "0.11.0"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@types/node": "^25.2.3",
|
|
52
|
+
"typescript": "^5.7.0",
|
|
53
|
+
"vitest": "^4.0.18",
|
|
54
|
+
"@paretools/tsconfig": "0.0.0"
|
|
55
|
+
},
|
|
56
|
+
"scripts": {
|
|
57
|
+
"build": "tsc",
|
|
58
|
+
"test": "vitest run",
|
|
59
|
+
"test:watch": "vitest",
|
|
60
|
+
"coverage": "vitest run --coverage",
|
|
61
|
+
"lint": "eslint src/"
|
|
62
|
+
}
|
|
63
|
+
}
|