@paretools/build 0.8.5 → 0.10.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/README.md +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/build-runner.d.ts +2 -2
- package/dist/lib/build-runner.d.ts.map +1 -1
- package/dist/lib/build-runner.js +6 -6
- package/dist/lib/build-runner.js.map +1 -1
- package/dist/lib/formatters.d.ts +1 -0
- package/dist/lib/formatters.d.ts.map +1 -1
- package/dist/lib/formatters.js +61 -9
- package/dist/lib/formatters.js.map +1 -1
- package/dist/lib/parsers.d.ts +14 -5
- package/dist/lib/parsers.d.ts.map +1 -1
- package/dist/lib/parsers.js +336 -28
- package/dist/lib/parsers.js.map +1 -1
- package/dist/schemas/index.d.ts +126 -4
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +51 -2
- package/dist/schemas/index.js.map +1 -1
- package/dist/tools/build.d.ts.map +1 -1
- package/dist/tools/build.js +29 -12
- package/dist/tools/build.js.map +1 -1
- package/dist/tools/esbuild.d.ts.map +1 -1
- package/dist/tools/esbuild.js +130 -19
- package/dist/tools/esbuild.js.map +1 -1
- package/dist/tools/nx.d.ts.map +1 -1
- package/dist/tools/nx.js +85 -14
- package/dist/tools/nx.js.map +1 -1
- package/dist/tools/tsc.d.ts.map +1 -1
- package/dist/tools/tsc.js +48 -10
- package/dist/tools/tsc.js.map +1 -1
- package/dist/tools/turbo.d.ts.map +1 -1
- package/dist/tools/turbo.js +97 -13
- package/dist/tools/turbo.js.map +1 -1
- package/dist/tools/vite-build.d.ts.map +1 -1
- package/dist/tools/vite-build.js +83 -15
- package/dist/tools/vite-build.js.map +1 -1
- package/dist/tools/webpack.d.ts.map +1 -1
- package/dist/tools/webpack.js +78 -15
- package/dist/tools/webpack.js.map +1 -1
- package/package.json +2 -2
package/dist/tools/turbo.js
CHANGED
|
@@ -4,49 +4,133 @@ import { turboCmd } from "../lib/build-runner.js";
|
|
|
4
4
|
import { parseTurboOutput } from "../lib/parsers.js";
|
|
5
5
|
import { formatTurbo, compactTurboMap, formatTurboCompact } from "../lib/formatters.js";
|
|
6
6
|
import { TurboResultSchema } from "../schemas/index.js";
|
|
7
|
+
import { readFile } from "node:fs/promises";
|
|
8
|
+
import { resolve } from "node:path";
|
|
7
9
|
/** Registers the `turbo` tool on the given MCP server. */
|
|
8
10
|
export function registerTurboTool(server) {
|
|
9
11
|
server.registerTool("turbo", {
|
|
10
12
|
title: "turbo",
|
|
11
|
-
description: "Runs Turborepo tasks and returns structured per-package results with cache hit/miss info.
|
|
13
|
+
description: "Runs Turborepo tasks and returns structured per-package results with cache hit/miss info.",
|
|
12
14
|
inputSchema: {
|
|
13
15
|
task: z
|
|
14
16
|
.string()
|
|
15
17
|
.max(INPUT_LIMITS.SHORT_STRING_MAX)
|
|
16
|
-
.
|
|
18
|
+
.optional()
|
|
19
|
+
.describe("Turbo task to run (e.g., 'build', 'test', 'lint')."),
|
|
20
|
+
tasks: z
|
|
21
|
+
.array(z.string().max(INPUT_LIMITS.SHORT_STRING_MAX))
|
|
22
|
+
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
23
|
+
.optional()
|
|
24
|
+
.describe("Multiple Turbo tasks to run in one invocation (e.g., ['build','test'])"),
|
|
17
25
|
filter: z
|
|
18
26
|
.string()
|
|
19
27
|
.max(INPUT_LIMITS.STRING_MAX)
|
|
20
28
|
.optional()
|
|
21
29
|
.describe("Package filter (e.g., '@scope/pkg' or 'pkg...')"),
|
|
22
30
|
concurrency: z.number().optional().describe("Maximum number of concurrent tasks"),
|
|
23
|
-
|
|
24
|
-
.
|
|
25
|
-
.max(INPUT_LIMITS.PATH_MAX)
|
|
31
|
+
force: z
|
|
32
|
+
.boolean()
|
|
26
33
|
.optional()
|
|
27
|
-
.describe("
|
|
28
|
-
|
|
34
|
+
.describe("Bypass the turbo cache and re-run all tasks (maps to --force)"),
|
|
35
|
+
continue_on_error: z
|
|
29
36
|
.boolean()
|
|
30
37
|
.optional()
|
|
31
|
-
.
|
|
32
|
-
|
|
38
|
+
.describe("Continue running tasks even after failures to surface all errors (maps to --continue)"),
|
|
39
|
+
dryRun: z
|
|
40
|
+
.boolean()
|
|
41
|
+
.optional()
|
|
42
|
+
.describe("Preview the task graph without executing (maps to --dry-run)"),
|
|
43
|
+
affected: z
|
|
44
|
+
.boolean()
|
|
45
|
+
.optional()
|
|
46
|
+
.describe("Run only tasks affected by changes since the base branch (maps to --affected)"),
|
|
47
|
+
graph: z
|
|
48
|
+
.boolean()
|
|
49
|
+
.optional()
|
|
50
|
+
.describe("Generate the task graph visualization (maps to --graph)"),
|
|
51
|
+
logOrder: z
|
|
52
|
+
.enum(["stream", "grouped", "auto"])
|
|
53
|
+
.optional()
|
|
54
|
+
.describe("Order of task log output"),
|
|
55
|
+
profile: z
|
|
56
|
+
.boolean()
|
|
57
|
+
.optional()
|
|
58
|
+
.describe("Generate a performance profile (maps to --profile)"),
|
|
59
|
+
summarize: z
|
|
60
|
+
.boolean()
|
|
61
|
+
.optional()
|
|
62
|
+
.describe("Generate Turbo run summary metadata and parse it into structured `summary` when available (maps to --summarize)"),
|
|
63
|
+
outputLogs: z
|
|
64
|
+
.enum(["full", "hash-only", "new-only", "errors-only", "none"])
|
|
65
|
+
.optional()
|
|
66
|
+
.describe("Control which task logs are shown (default: 'new-only'). Maps to --output-logs."),
|
|
67
|
+
args: z
|
|
68
|
+
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
69
|
+
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
70
|
+
.optional()
|
|
71
|
+
.describe("Additional turbo flags (e.g., ['--env-mode=strict']). Each arg is validated with assertNoFlagInjection."),
|
|
72
|
+
path: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Project root path"),
|
|
73
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
33
74
|
},
|
|
34
75
|
outputSchema: TurboResultSchema,
|
|
35
|
-
}, async ({ task, filter, concurrency, path, compact }) => {
|
|
76
|
+
}, async ({ task, tasks, filter, concurrency, force, continue_on_error, dryRun, affected, graph, logOrder, profile, summarize, outputLogs, args, path, compact, }) => {
|
|
36
77
|
const cwd = path || process.cwd();
|
|
37
|
-
|
|
78
|
+
const taskList = tasks && tasks.length > 0 ? tasks : task ? [task] : [];
|
|
79
|
+
if (taskList.length === 0) {
|
|
80
|
+
throw new Error("Either task or tasks must be provided.");
|
|
81
|
+
}
|
|
82
|
+
for (const selectedTask of taskList) {
|
|
83
|
+
assertNoFlagInjection(selectedTask, "tasks");
|
|
84
|
+
}
|
|
38
85
|
if (filter)
|
|
39
86
|
assertNoFlagInjection(filter, "filter");
|
|
40
|
-
const
|
|
87
|
+
const outputLogsValue = outputLogs ?? "new-only";
|
|
88
|
+
const cliArgs = ["run", ...taskList, `--output-logs=${outputLogsValue}`];
|
|
41
89
|
if (filter)
|
|
42
90
|
cliArgs.push("--filter", filter);
|
|
43
91
|
if (concurrency !== undefined)
|
|
44
92
|
cliArgs.push("--concurrency", String(concurrency));
|
|
93
|
+
if (force)
|
|
94
|
+
cliArgs.push("--force");
|
|
95
|
+
if (continue_on_error)
|
|
96
|
+
cliArgs.push("--continue");
|
|
97
|
+
if (dryRun)
|
|
98
|
+
cliArgs.push("--dry-run");
|
|
99
|
+
if (affected)
|
|
100
|
+
cliArgs.push("--affected");
|
|
101
|
+
if (graph)
|
|
102
|
+
cliArgs.push("--graph");
|
|
103
|
+
if (logOrder)
|
|
104
|
+
cliArgs.push(`--log-order=${logOrder}`);
|
|
105
|
+
if (profile)
|
|
106
|
+
cliArgs.push("--profile");
|
|
107
|
+
if (summarize)
|
|
108
|
+
cliArgs.push("--summarize");
|
|
109
|
+
if (args) {
|
|
110
|
+
cliArgs.push(...args);
|
|
111
|
+
}
|
|
45
112
|
const start = Date.now();
|
|
46
113
|
const result = await turboCmd(cliArgs, cwd);
|
|
47
114
|
const duration = Math.round((Date.now() - start) / 100) / 10;
|
|
48
115
|
const rawOutput = result.stdout + "\n" + result.stderr;
|
|
49
|
-
|
|
116
|
+
let summaryJsonContent;
|
|
117
|
+
if (summarize) {
|
|
118
|
+
const combined = `${result.stdout}\n${result.stderr}`;
|
|
119
|
+
const summaryPathMatch = combined.match(/(\S*\.turbo\S*\.json)/);
|
|
120
|
+
const summaryPath = summaryPathMatch?.[1];
|
|
121
|
+
if (summaryPath) {
|
|
122
|
+
try {
|
|
123
|
+
const resolvedPath = summaryPath.startsWith("/")
|
|
124
|
+
? summaryPath
|
|
125
|
+
: resolve(cwd, summaryPath);
|
|
126
|
+
summaryJsonContent = await readFile(resolvedPath, "utf8");
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
// Summary file is optional; ignore read/parse failures.
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
const data = parseTurboOutput(result.stdout, result.stderr, result.exitCode, duration, summaryJsonContent);
|
|
50
134
|
return compactDualOutput(data, rawOutput, formatTurbo, compactTurboMap, formatTurboCompact, compact === false);
|
|
51
135
|
});
|
|
52
136
|
}
|
package/dist/tools/turbo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turbo.js","sourceRoot":"","sources":["../../src/tools/turbo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"turbo.js","sourceRoot":"","sources":["../../src/tools/turbo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-build.d.ts","sourceRoot":"","sources":["../../src/tools/vite-build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,+DAA+D;AAC/D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"vite-build.d.ts","sourceRoot":"","sources":["../../src/tools/vite-build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,+DAA+D;AAC/D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QA2ItD"}
|
package/dist/tools/vite-build.js
CHANGED
|
@@ -8,43 +8,111 @@ import { ViteBuildResultSchema } from "../schemas/index.js";
|
|
|
8
8
|
export function registerViteBuildTool(server) {
|
|
9
9
|
server.registerTool("vite-build", {
|
|
10
10
|
title: "Vite Build",
|
|
11
|
-
description: "Runs Vite production build and returns structured output files with sizes.
|
|
11
|
+
description: "Runs Vite production build and returns structured output files with sizes.",
|
|
12
12
|
inputSchema: {
|
|
13
|
-
path: z
|
|
14
|
-
.string()
|
|
15
|
-
.max(INPUT_LIMITS.PATH_MAX)
|
|
16
|
-
.optional()
|
|
17
|
-
.describe("Project root path (default: cwd)"),
|
|
13
|
+
path: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Project root path"),
|
|
18
14
|
mode: z
|
|
19
15
|
.string()
|
|
20
16
|
.max(INPUT_LIMITS.SHORT_STRING_MAX)
|
|
21
17
|
.optional()
|
|
22
18
|
.default("production")
|
|
23
19
|
.describe("Build mode (default: production)"),
|
|
20
|
+
outDir: z
|
|
21
|
+
.string()
|
|
22
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
23
|
+
.optional()
|
|
24
|
+
.describe("Custom output directory (maps to --outDir)"),
|
|
25
|
+
config: z
|
|
26
|
+
.string()
|
|
27
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
28
|
+
.optional()
|
|
29
|
+
.describe("Path to Vite config file (maps to --config)"),
|
|
30
|
+
sourcemap: z
|
|
31
|
+
.union([z.boolean(), z.enum(["inline", "hidden"])])
|
|
32
|
+
.optional()
|
|
33
|
+
.describe("Generate source maps. true for default, 'inline' for inline, 'hidden' for hidden source maps."),
|
|
34
|
+
base: z
|
|
35
|
+
.string()
|
|
36
|
+
.max(INPUT_LIMITS.STRING_MAX)
|
|
37
|
+
.optional()
|
|
38
|
+
.describe("Public base path for non-root deployments (maps to --base)"),
|
|
39
|
+
ssr: z
|
|
40
|
+
.string()
|
|
41
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
42
|
+
.optional()
|
|
43
|
+
.describe("SSR build entry point (maps to --ssr)"),
|
|
44
|
+
manifest: z
|
|
45
|
+
.boolean()
|
|
46
|
+
.optional()
|
|
47
|
+
.describe("Generate a manifest.json for backend-integrated builds (maps to --manifest)"),
|
|
48
|
+
minify: z
|
|
49
|
+
.enum(["esbuild", "terser", "false"])
|
|
50
|
+
.optional()
|
|
51
|
+
.describe("Minification strategy (esbuild, terser, or false to disable)"),
|
|
52
|
+
logLevel: z
|
|
53
|
+
.enum(["info", "warn", "error", "silent"])
|
|
54
|
+
.optional()
|
|
55
|
+
.describe("Log level to control output verbosity"),
|
|
56
|
+
emptyOutDir: z
|
|
57
|
+
.boolean()
|
|
58
|
+
.optional()
|
|
59
|
+
.describe("Empty the output directory before building (maps to --emptyOutDir)"),
|
|
60
|
+
reportCompressedSize: z
|
|
61
|
+
.boolean()
|
|
62
|
+
.optional()
|
|
63
|
+
.describe("Report compressed (gzip) size of output files — disable to speed up large builds"),
|
|
24
64
|
args: z
|
|
25
65
|
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
26
66
|
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
27
67
|
.optional()
|
|
28
68
|
.default([])
|
|
29
69
|
.describe("Additional Vite build flags"),
|
|
30
|
-
compact: z
|
|
31
|
-
.boolean()
|
|
32
|
-
.optional()
|
|
33
|
-
.default(true)
|
|
34
|
-
.describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
|
|
70
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
35
71
|
},
|
|
36
72
|
outputSchema: ViteBuildResultSchema,
|
|
37
|
-
}, async ({ path, mode, args, compact }) => {
|
|
73
|
+
}, async ({ path, mode, outDir, config, sourcemap, base, ssr, manifest, minify, logLevel, emptyOutDir, reportCompressedSize, args, compact, }) => {
|
|
38
74
|
const cwd = path || process.cwd();
|
|
39
75
|
if (mode)
|
|
40
76
|
assertNoFlagInjection(mode, "mode");
|
|
41
|
-
|
|
42
|
-
assertNoFlagInjection(
|
|
43
|
-
|
|
77
|
+
if (outDir)
|
|
78
|
+
assertNoFlagInjection(outDir, "outDir");
|
|
79
|
+
if (config)
|
|
80
|
+
assertNoFlagInjection(config, "config");
|
|
81
|
+
if (base)
|
|
82
|
+
assertNoFlagInjection(base, "base");
|
|
83
|
+
if (ssr)
|
|
84
|
+
assertNoFlagInjection(ssr, "ssr");
|
|
44
85
|
const cliArgs = [];
|
|
45
86
|
if (mode && mode !== "production") {
|
|
46
87
|
cliArgs.push("--mode", mode);
|
|
47
88
|
}
|
|
89
|
+
if (outDir)
|
|
90
|
+
cliArgs.push(`--outDir=${outDir}`);
|
|
91
|
+
if (config)
|
|
92
|
+
cliArgs.push(`--config=${config}`);
|
|
93
|
+
if (sourcemap !== undefined) {
|
|
94
|
+
if (typeof sourcemap === "boolean") {
|
|
95
|
+
cliArgs.push(sourcemap ? "--sourcemap" : "--no-sourcemap");
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
cliArgs.push(`--sourcemap=${sourcemap}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (base)
|
|
102
|
+
cliArgs.push(`--base=${base}`);
|
|
103
|
+
if (ssr)
|
|
104
|
+
cliArgs.push(`--ssr=${ssr}`);
|
|
105
|
+
if (manifest)
|
|
106
|
+
cliArgs.push("--manifest");
|
|
107
|
+
if (minify)
|
|
108
|
+
cliArgs.push(`--minify=${minify}`);
|
|
109
|
+
if (logLevel)
|
|
110
|
+
cliArgs.push(`--logLevel=${logLevel}`);
|
|
111
|
+
if (emptyOutDir !== undefined) {
|
|
112
|
+
cliArgs.push(emptyOutDir ? "--emptyOutDir" : "--no-emptyOutDir");
|
|
113
|
+
}
|
|
114
|
+
if (reportCompressedSize === false)
|
|
115
|
+
cliArgs.push("--no-reportCompressedSize");
|
|
48
116
|
if (args) {
|
|
49
117
|
cliArgs.push(...args);
|
|
50
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-build.js","sourceRoot":"","sources":["../../src/tools/vite-build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,+DAA+D;AAC/D,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,
|
|
1
|
+
{"version":3,"file":"vite-build.js","sourceRoot":"","sources":["../../src/tools/vite-build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,+DAA+D;AAC/D,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,4EAA4E;QACzF,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACpF,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC;iBAClC,QAAQ,EAAE;iBACV,OAAO,CAAC,YAAY,CAAC;iBACrB,QAAQ,CAAC,kCAAkC,CAAC;YAC/C,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CAAC,4CAA4C,CAAC;YACzD,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CAAC,6CAA6C,CAAC;YAC1D,SAAS,EAAE,CAAC;iBACT,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAClD,QAAQ,EAAE;iBACV,QAAQ,CACP,+FAA+F,CAChG;YACH,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC;iBAC5B,QAAQ,EAAE;iBACV,QAAQ,CAAC,4DAA4D,CAAC;YACzE,GAAG,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CAAC,uCAAuC,CAAC;YACpD,QAAQ,EAAE,CAAC;iBACR,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,6EAA6E,CAAC;YAC1F,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;iBACpC,QAAQ,EAAE;iBACV,QAAQ,CAAC,8DAA8D,CAAC;YAC3E,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;iBACzC,QAAQ,EAAE;iBACV,QAAQ,CAAC,uCAAuC,CAAC;YACpD,WAAW,EAAE,CAAC;iBACX,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,oEAAoE,CAAC;YACjF,oBAAoB,EAAE,CAAC;iBACpB,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CACP,kFAAkF,CACnF;YACH,IAAI,EAAE,CAAC;iBACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;iBAC9C,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;iBAC3B,QAAQ,EAAE;iBACV,OAAO,CAAC,EAAE,CAAC;iBACX,QAAQ,CAAC,6BAA6B,CAAC;YAC1C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAChF;QACD,YAAY,EAAE,qBAAqB;KACpC,EACD,KAAK,EAAE,EACL,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,MAAM,EACN,SAAS,EACT,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,IAAI,EACJ,OAAO,GACR,EAAE,EAAE;QACH,MAAM,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,IAAI;YAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,MAAM;YAAE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,MAAM;YAAE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,IAAI;YAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,GAAG;YAAE,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,IAAI,IAAI,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC;QAC/C,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC;QAC/C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,OAAO,SAAS,KAAK,SAAS,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,eAAe,SAAS,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,IAAI,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QACzC,IAAI,GAAG;YAAE,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;QACtC,IAAI,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC;QAC/C,IAAI,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;QACrD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,oBAAoB,KAAK,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAE9E,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QAEvD,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3F,OAAO,iBAAiB,CACtB,IAAI,EACJ,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,OAAO,KAAK,KAAK,CAClB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack.d.ts","sourceRoot":"","sources":["../../src/tools/webpack.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,4DAA4D;AAC5D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"webpack.d.ts","sourceRoot":"","sources":["../../src/tools/webpack.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,4DAA4D;AAC5D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,QAwJpD"}
|
package/dist/tools/webpack.js
CHANGED
|
@@ -8,13 +8,9 @@ import { WebpackResultSchema } from "../schemas/index.js";
|
|
|
8
8
|
export function registerWebpackTool(server) {
|
|
9
9
|
server.registerTool("webpack", {
|
|
10
10
|
title: "webpack",
|
|
11
|
-
description: "Runs webpack build with JSON stats output and returns structured assets, errors, and warnings.
|
|
11
|
+
description: "Runs webpack build with JSON stats output and returns structured assets, errors, and warnings.",
|
|
12
12
|
inputSchema: {
|
|
13
|
-
path: z
|
|
14
|
-
.string()
|
|
15
|
-
.max(INPUT_LIMITS.PATH_MAX)
|
|
16
|
-
.optional()
|
|
17
|
-
.describe("Project root path (default: cwd)"),
|
|
13
|
+
path: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Project root path"),
|
|
18
14
|
config: z
|
|
19
15
|
.string()
|
|
20
16
|
.max(INPUT_LIMITS.PATH_MAX)
|
|
@@ -24,32 +20,99 @@ export function registerWebpackTool(server) {
|
|
|
24
20
|
.enum(["production", "development", "none"])
|
|
25
21
|
.optional()
|
|
26
22
|
.describe("Build mode (production, development, none)"),
|
|
23
|
+
entry: z
|
|
24
|
+
.string()
|
|
25
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
26
|
+
.optional()
|
|
27
|
+
.describe("Entry point file to build (maps to --entry)"),
|
|
28
|
+
target: z
|
|
29
|
+
.string()
|
|
30
|
+
.max(INPUT_LIMITS.STRING_MAX)
|
|
31
|
+
.optional()
|
|
32
|
+
.describe("Build target environment (e.g., 'web', 'node', 'electron-main'). Maps to --target."),
|
|
33
|
+
devtool: z
|
|
34
|
+
.string()
|
|
35
|
+
.max(INPUT_LIMITS.STRING_MAX)
|
|
36
|
+
.optional()
|
|
37
|
+
.describe("Source map strategy (e.g., 'source-map', 'eval', 'cheap-module-source-map'). Maps to --devtool."),
|
|
38
|
+
analyze: z
|
|
39
|
+
.boolean()
|
|
40
|
+
.optional()
|
|
41
|
+
.describe("Enable webpack-bundle-analyzer for bundle size analysis (maps to --analyze)"),
|
|
42
|
+
bail: z
|
|
43
|
+
.boolean()
|
|
44
|
+
.optional()
|
|
45
|
+
.describe("Fail on the first error instead of tolerating them (maps to --bail)"),
|
|
46
|
+
cache: z
|
|
47
|
+
.boolean()
|
|
48
|
+
.optional()
|
|
49
|
+
.describe("Enable or disable webpack caching (maps to --cache / --no-cache)"),
|
|
50
|
+
env: z
|
|
51
|
+
.record(z.string(), z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
52
|
+
.optional()
|
|
53
|
+
.describe("Environment variables passed to the webpack config function via --env key=value " +
|
|
54
|
+
"(e.g., { production: 'true', apiUrl: 'https://api.example.com' })."),
|
|
55
|
+
profile: z
|
|
56
|
+
.boolean()
|
|
57
|
+
.optional()
|
|
58
|
+
.describe("Enable webpack profiling to capture per-module timing data (maps to --profile). " +
|
|
59
|
+
"When enabled, profile data is included in the structured output."),
|
|
27
60
|
args: z
|
|
28
61
|
.array(z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
29
62
|
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
30
63
|
.optional()
|
|
31
64
|
.default([])
|
|
32
65
|
.describe("Additional webpack flags"),
|
|
33
|
-
compact: z
|
|
34
|
-
.boolean()
|
|
35
|
-
.optional()
|
|
36
|
-
.default(true)
|
|
37
|
-
.describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
|
|
66
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
38
67
|
},
|
|
39
68
|
outputSchema: WebpackResultSchema,
|
|
40
|
-
}, async ({ path, config, mode, args, compact }) => {
|
|
69
|
+
}, async ({ path, config, mode, entry, target, devtool, analyze, bail, cache, env, profile, args, compact, }) => {
|
|
41
70
|
const cwd = path || process.cwd();
|
|
42
71
|
if (config)
|
|
43
72
|
assertNoFlagInjection(config, "config");
|
|
44
|
-
|
|
45
|
-
assertNoFlagInjection(
|
|
73
|
+
if (entry)
|
|
74
|
+
assertNoFlagInjection(entry, "entry");
|
|
75
|
+
if (target)
|
|
76
|
+
assertNoFlagInjection(target, "target");
|
|
77
|
+
if (devtool)
|
|
78
|
+
assertNoFlagInjection(devtool, "devtool");
|
|
79
|
+
// Validate env keys and values (Gap #84)
|
|
80
|
+
const envRecord = env;
|
|
81
|
+
if (envRecord) {
|
|
82
|
+
for (const [key, value] of Object.entries(envRecord)) {
|
|
83
|
+
assertNoFlagInjection(String(key), "env key");
|
|
84
|
+
assertNoFlagInjection(String(value), "env value");
|
|
85
|
+
}
|
|
46
86
|
}
|
|
47
87
|
const cliArgs = [];
|
|
48
88
|
if (config)
|
|
49
89
|
cliArgs.push("--config", config);
|
|
50
90
|
if (mode)
|
|
51
91
|
cliArgs.push("--mode", mode);
|
|
92
|
+
if (entry)
|
|
93
|
+
cliArgs.push("--entry", entry);
|
|
94
|
+
if (target)
|
|
95
|
+
cliArgs.push("--target", target);
|
|
96
|
+
if (devtool)
|
|
97
|
+
cliArgs.push("--devtool", devtool);
|
|
98
|
+
if (analyze)
|
|
99
|
+
cliArgs.push("--analyze");
|
|
100
|
+
if (bail)
|
|
101
|
+
cliArgs.push("--bail");
|
|
102
|
+
if (cache !== undefined) {
|
|
103
|
+
cliArgs.push(cache ? "--cache" : "--no-cache");
|
|
104
|
+
}
|
|
105
|
+
// Gap #84: env parameter — pass key=value pairs to webpack config function
|
|
106
|
+
if (envRecord) {
|
|
107
|
+
for (const [key, value] of Object.entries(envRecord)) {
|
|
108
|
+
cliArgs.push("--env", `${key}=${value}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Gap #85: profile parameter — enable per-module timing data
|
|
112
|
+
if (profile)
|
|
113
|
+
cliArgs.push("--profile");
|
|
52
114
|
cliArgs.push("--json");
|
|
115
|
+
cliArgs.push("--no-color");
|
|
53
116
|
if (args) {
|
|
54
117
|
cliArgs.push(...args);
|
|
55
118
|
}
|
|
@@ -57,7 +120,7 @@ export function registerWebpackTool(server) {
|
|
|
57
120
|
const result = await webpackCmd(cliArgs, cwd);
|
|
58
121
|
const duration = Math.round((Date.now() - start) / 100) / 10;
|
|
59
122
|
const rawOutput = result.stdout + "\n" + result.stderr;
|
|
60
|
-
const data = parseWebpackOutput(result.stdout, result.stderr, result.exitCode, duration);
|
|
123
|
+
const data = parseWebpackOutput(result.stdout, result.stderr, result.exitCode, duration, profile);
|
|
61
124
|
return compactDualOutput(data, rawOutput, formatWebpack, compactWebpackMap, formatWebpackCompact, compact === false);
|
|
62
125
|
});
|
|
63
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack.js","sourceRoot":"","sources":["../../src/tools/webpack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,4DAA4D;AAC5D,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,YAAY,CACjB,SAAS,EACT;QACE,KAAK,EAAE,SAAS;QAChB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"webpack.js","sourceRoot":"","sources":["../../src/tools/webpack.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paretools/build",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"mcpName": "io.github.Dave-London/pare-build",
|
|
5
5
|
"description": "MCP server for build tools (tsc, esbuild, etc.) with structured, token-efficient output",
|
|
6
6
|
"license": "MIT",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
54
54
|
"zod": "^4.3.6",
|
|
55
|
-
"@paretools/shared": "0.
|
|
55
|
+
"@paretools/shared": "0.10.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@types/node": "^25.2.3",
|