@paretools/build 0.8.4 → 0.9.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.
@@ -4,6 +4,10 @@ import { esbuildCmd } from "../lib/build-runner.js";
4
4
  import { parseEsbuildOutput } from "../lib/parsers.js";
5
5
  import { formatEsbuild, compactEsbuildMap, formatEsbuildCompact } from "../lib/formatters.js";
6
6
  import { EsbuildResultSchema } from "../schemas/index.js";
7
+ import { readFile, unlink } from "node:fs/promises";
8
+ import { join } from "node:path";
9
+ import { randomBytes } from "node:crypto";
10
+ import { tmpdir } from "node:os";
7
11
  /** Registers the `esbuild` tool on the given MCP server. */
8
12
  export function registerEsbuildTool(server) {
9
13
  server.registerTool("esbuild", {
@@ -40,10 +44,51 @@ export function registerEsbuildTool(server) {
40
44
  .optional()
41
45
  .describe("Target platform (browser, node, neutral)"),
42
46
  sourcemap: z
47
+ .enum(["true", "linked", "inline", "external", "both"])
48
+ .optional()
49
+ .describe("Source map mode: 'true' for default, 'linked', 'inline', 'external', or 'both'"),
50
+ target: z
51
+ .string()
52
+ .max(INPUT_LIMITS.STRING_MAX)
53
+ .optional()
54
+ .describe("Target environment (e.g., 'es2020', 'node16', 'chrome90'). Maps to --target."),
55
+ external: z
56
+ .array(z.string().max(INPUT_LIMITS.STRING_MAX))
57
+ .max(INPUT_LIMITS.ARRAY_MAX)
58
+ .optional()
59
+ .describe("Packages to exclude from the bundle (e.g., ['react', 'react-dom']). Maps to --external."),
60
+ tsconfig: z
61
+ .string()
62
+ .max(INPUT_LIMITS.PATH_MAX)
63
+ .optional()
64
+ .describe("Path to tsconfig.json for TypeScript configuration (maps to --tsconfig)"),
65
+ drop: z
66
+ .array(z.enum(["console", "debugger"]))
67
+ .max(2)
68
+ .optional()
69
+ .describe("Statements to drop from output (maps to --drop:console, --drop:debugger)"),
70
+ splitting: z
43
71
  .boolean()
44
72
  .optional()
45
- .default(false)
46
- .describe("Generate source maps (default: false)"),
73
+ .describe("Enable code splitting (requires format=esm and outdir)"),
74
+ legalComments: z
75
+ .enum(["none", "inline", "eof", "linked", "external"])
76
+ .optional()
77
+ .describe("How to handle legal comments (license headers)"),
78
+ logLevel: z
79
+ .enum(["verbose", "debug", "info", "warning", "error", "silent"])
80
+ .optional()
81
+ .describe("Log level to control output verbosity"),
82
+ define: z
83
+ .record(z.string(), z.string().max(INPUT_LIMITS.STRING_MAX))
84
+ .optional()
85
+ .describe("Compile-time constant replacements (e.g., { 'process.env.NODE_ENV': '\"production\"' }). " +
86
+ "Maps to --define:KEY=VALUE for each entry."),
87
+ metafile: z
88
+ .boolean()
89
+ .optional()
90
+ .describe("Generate a metafile with bundle analysis data (inputs/outputs with byte sizes). " +
91
+ "When enabled, the metafile is included in the structured output."),
47
92
  args: z
48
93
  .array(z.string().max(INPUT_LIMITS.STRING_MAX))
49
94
  .max(INPUT_LIMITS.ARRAY_MAX)
@@ -57,7 +102,7 @@ export function registerEsbuildTool(server) {
57
102
  .describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
58
103
  },
59
104
  outputSchema: EsbuildResultSchema,
60
- }, async ({ path, entryPoints, outdir, outfile, bundle, minify, format, platform, sourcemap, args, compact, }) => {
105
+ }, async ({ path, entryPoints, outdir, outfile, bundle, minify, format, platform, sourcemap, target, external, tsconfig, drop, splitting, legalComments, logLevel, define, metafile, args, compact, }) => {
61
106
  const cwd = path || process.cwd();
62
107
  // Validate entry points to prevent flag injection
63
108
  for (const ep of entryPoints) {
@@ -76,8 +121,55 @@ export function registerEsbuildTool(server) {
76
121
  cliArgs.push(`--format=${format}`);
77
122
  if (platform)
78
123
  cliArgs.push(`--platform=${platform}`);
79
- if (sourcemap)
80
- cliArgs.push("--sourcemap");
124
+ if (sourcemap) {
125
+ if (sourcemap === "true") {
126
+ cliArgs.push("--sourcemap");
127
+ }
128
+ else {
129
+ cliArgs.push(`--sourcemap=${sourcemap}`);
130
+ }
131
+ }
132
+ if (target) {
133
+ assertNoFlagInjection(target, "target");
134
+ cliArgs.push(`--target=${target}`);
135
+ }
136
+ if (external) {
137
+ for (const ext of external) {
138
+ assertNoFlagInjection(ext, "external");
139
+ cliArgs.push(`--external:${ext}`);
140
+ }
141
+ }
142
+ if (tsconfig) {
143
+ assertNoFlagInjection(tsconfig, "tsconfig");
144
+ cliArgs.push(`--tsconfig=${tsconfig}`);
145
+ }
146
+ if (drop) {
147
+ for (const d of drop) {
148
+ cliArgs.push(`--drop:${d}`);
149
+ }
150
+ }
151
+ if (splitting)
152
+ cliArgs.push("--splitting");
153
+ if (legalComments)
154
+ cliArgs.push(`--legal-comments=${legalComments}`);
155
+ if (logLevel)
156
+ cliArgs.push(`--log-level=${logLevel}`);
157
+ // Gap #79: define parameter — compile-time constant replacements
158
+ const defineRecord = define;
159
+ if (defineRecord) {
160
+ for (const [key, value] of Object.entries(defineRecord)) {
161
+ assertNoFlagInjection(String(key), "define key");
162
+ assertNoFlagInjection(String(value), "define value");
163
+ cliArgs.push(`--define:${key}=${value}`);
164
+ }
165
+ }
166
+ // Gap #80: metafile parameter — bundle analysis data
167
+ let metafilePath;
168
+ if (metafile) {
169
+ const suffix = randomBytes(6).toString("hex");
170
+ metafilePath = join(tmpdir(), `pare-esbuild-meta-${suffix}.json`);
171
+ cliArgs.push(`--metafile=${metafilePath}`);
172
+ }
81
173
  for (const a of args ?? []) {
82
174
  assertNoFlagInjection(a, "args");
83
175
  }
@@ -88,7 +180,24 @@ export function registerEsbuildTool(server) {
88
180
  const result = await esbuildCmd(cliArgs, cwd);
89
181
  const duration = Math.round((Date.now() - start) / 100) / 10;
90
182
  const rawOutput = result.stdout + "\n" + result.stderr;
91
- const data = parseEsbuildOutput(result.stdout, result.stderr, result.exitCode, duration);
183
+ // Read metafile if it was generated
184
+ let metafileContent;
185
+ if (metafilePath) {
186
+ try {
187
+ metafileContent = await readFile(metafilePath, "utf-8");
188
+ }
189
+ catch {
190
+ // Metafile may not exist if build failed
191
+ }
192
+ // Clean up the temp metafile
193
+ try {
194
+ await unlink(metafilePath);
195
+ }
196
+ catch {
197
+ // Ignore cleanup errors
198
+ }
199
+ }
200
+ const data = parseEsbuildOutput(result.stdout, result.stderr, result.exitCode, duration, metafilePath, metafileContent);
92
201
  return compactDualOutput(data, rawOutput, formatEsbuild, compactEsbuildMap, formatEsbuildCompact, compact === false);
93
202
  });
94
203
  }
@@ -1 +1 @@
1
- {"version":3,"file":"esbuild.js","sourceRoot":"","sources":["../../src/tools/esbuild.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"esbuild.js","sourceRoot":"","sources":["../../src/tools/esbuild.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nx.d.ts","sourceRoot":"","sources":["../../src/tools/nx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,QAwF/C"}
1
+ {"version":3,"file":"nx.d.ts","sourceRoot":"","sources":["../../src/tools/nx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,QAwL/C"}
package/dist/tools/nx.js CHANGED
@@ -29,11 +29,59 @@ export function registerNxTool(server) {
29
29
  .max(INPUT_LIMITS.STRING_MAX)
30
30
  .optional()
31
31
  .describe("Base ref for affected comparison (e.g., 'main')"),
32
+ head: z
33
+ .string()
34
+ .max(INPUT_LIMITS.STRING_MAX)
35
+ .optional()
36
+ .describe("Head ref for affected comparison (maps to --head)"),
37
+ configuration: z
38
+ .string()
39
+ .max(INPUT_LIMITS.STRING_MAX)
40
+ .optional()
41
+ .describe("Build configuration to use (e.g., 'production', 'development'). Maps to --configuration."),
42
+ projects: z
43
+ .array(z.string().max(INPUT_LIMITS.STRING_MAX))
44
+ .max(INPUT_LIMITS.ARRAY_MAX)
45
+ .optional()
46
+ .describe("Specific projects to include in run-many (maps to --projects)"),
47
+ exclude: z
48
+ .array(z.string().max(INPUT_LIMITS.STRING_MAX))
49
+ .max(INPUT_LIMITS.ARRAY_MAX)
50
+ .optional()
51
+ .describe("Projects to exclude from run-many (maps to --exclude)"),
32
52
  path: z
33
53
  .string()
34
54
  .max(INPUT_LIMITS.PATH_MAX)
35
55
  .optional()
36
56
  .describe("Project root path (default: cwd)"),
57
+ parallel: z
58
+ .number()
59
+ .optional()
60
+ .describe("Max number of parallel tasks (maps to --parallel)"),
61
+ skipNxCache: z
62
+ .boolean()
63
+ .optional()
64
+ .describe("Skip the Nx cache and re-run all tasks (maps to --skip-nx-cache)"),
65
+ nxBail: z
66
+ .boolean()
67
+ .optional()
68
+ .describe("Stop task execution after the first failure (maps to --nx-bail)"),
69
+ verbose: z
70
+ .boolean()
71
+ .optional()
72
+ .describe("Enable verbose output for debugging (maps to --verbose)"),
73
+ dryRun: z
74
+ .boolean()
75
+ .optional()
76
+ .describe("Preview the task graph without executing (maps to --dry-run)"),
77
+ outputStyle: z
78
+ .enum(["dynamic", "static", "stream", "stream-without-prefixes", "compact"])
79
+ .optional()
80
+ .describe("Output style for task logs"),
81
+ graph: z
82
+ .boolean()
83
+ .optional()
84
+ .describe("Generate the task graph visualization (maps to --graph)"),
37
85
  args: z
38
86
  .array(z.string().max(INPUT_LIMITS.STRING_MAX))
39
87
  .max(INPUT_LIMITS.ARRAY_MAX)
@@ -47,13 +95,17 @@ export function registerNxTool(server) {
47
95
  .describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
48
96
  },
49
97
  outputSchema: NxResultSchema,
50
- }, async ({ target, project, affected, base, path, args, compact }) => {
98
+ }, async ({ target, project, affected, base, head, configuration, projects, exclude, path, parallel, skipNxCache, nxBail, verbose, dryRun, outputStyle, graph, args, compact, }) => {
51
99
  const cwd = path || process.cwd();
52
100
  assertNoFlagInjection(target, "target");
53
101
  if (project)
54
102
  assertNoFlagInjection(project, "project");
55
103
  if (base)
56
104
  assertNoFlagInjection(base, "base");
105
+ if (head)
106
+ assertNoFlagInjection(head, "head");
107
+ if (configuration)
108
+ assertNoFlagInjection(configuration, "configuration");
57
109
  for (const a of args ?? []) {
58
110
  assertNoFlagInjection(a, "args");
59
111
  }
@@ -62,6 +114,8 @@ export function registerNxTool(server) {
62
114
  cliArgs.push("affected", `--target=${target}`);
63
115
  if (base)
64
116
  cliArgs.push(`--base=${base}`);
117
+ if (head)
118
+ cliArgs.push(`--head=${head}`);
65
119
  }
66
120
  else if (project) {
67
121
  cliArgs.push("run", `${project}:${target}`);
@@ -69,6 +123,34 @@ export function registerNxTool(server) {
69
123
  else {
70
124
  cliArgs.push("run-many", `--target=${target}`);
71
125
  }
126
+ if (configuration)
127
+ cliArgs.push(`--configuration=${configuration}`);
128
+ if (projects && projects.length > 0) {
129
+ for (const p of projects) {
130
+ assertNoFlagInjection(p, "projects");
131
+ }
132
+ cliArgs.push(`--projects=${projects.join(",")}`);
133
+ }
134
+ if (exclude && exclude.length > 0) {
135
+ for (const e of exclude) {
136
+ assertNoFlagInjection(e, "exclude");
137
+ }
138
+ cliArgs.push(`--exclude=${exclude.join(",")}`);
139
+ }
140
+ if (parallel !== undefined)
141
+ cliArgs.push(`--parallel=${parallel}`);
142
+ if (skipNxCache)
143
+ cliArgs.push("--skip-nx-cache");
144
+ if (nxBail)
145
+ cliArgs.push("--nx-bail");
146
+ if (verbose)
147
+ cliArgs.push("--verbose");
148
+ if (dryRun)
149
+ cliArgs.push("--dry-run");
150
+ if (outputStyle)
151
+ cliArgs.push(`--output-style=${outputStyle}`);
152
+ if (graph)
153
+ cliArgs.push("--graph");
72
154
  if (args) {
73
155
  cliArgs.push(...args);
74
156
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nx.js","sourceRoot":"","sources":["../../src/tools/nx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nx.js","sourceRoot":"","sources":["../../src/tools/nx.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tsc.d.ts","sourceRoot":"","sources":["../../src/tools/tsc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QAkDhD"}
1
+ {"version":3,"file":"tsc.d.ts","sourceRoot":"","sources":["../../src/tools/tsc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QAwGhD"}
package/dist/tools/tsc.js CHANGED
@@ -8,7 +8,8 @@ import { TscResultSchema } from "../schemas/index.js";
8
8
  export function registerTscTool(server) {
9
9
  server.registerTool("tsc", {
10
10
  title: "TypeScript Check",
11
- description: "Runs the TypeScript compiler and returns structured diagnostics (file, line, column, code, message). Use instead of running `tsc` in the terminal.",
11
+ description: "Runs the TypeScript compiler and returns structured diagnostics (file, line, column, code, message). Use instead of running `tsc` in the terminal. " +
12
+ "Note: In compact mode, diagnostics are trimmed to file, line, and code — column and message fields are omitted to save tokens.",
12
13
  inputSchema: {
13
14
  path: z
14
15
  .string()
@@ -21,6 +22,31 @@ export function registerTscTool(server) {
21
22
  .default(true)
22
23
  .describe("Skip emitting output files (default: true)"),
23
24
  project: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Path to tsconfig.json"),
25
+ incremental: z
26
+ .boolean()
27
+ .optional()
28
+ .describe("Enable incremental compilation for faster repeated checks (maps to --incremental)"),
29
+ skipLibCheck: z
30
+ .boolean()
31
+ .optional()
32
+ .describe("Skip type checking of declaration files for faster feedback (maps to --skipLibCheck)"),
33
+ emitDeclarationOnly: z
34
+ .boolean()
35
+ .optional()
36
+ .describe("Only emit .d.ts declaration files without JS output (maps to --emitDeclarationOnly)"),
37
+ declaration: z
38
+ .boolean()
39
+ .optional()
40
+ .describe("Generate .d.ts declaration files (maps to --declaration)"),
41
+ declarationDir: z
42
+ .string()
43
+ .max(INPUT_LIMITS.PATH_MAX)
44
+ .optional()
45
+ .describe("Output directory for .d.ts declaration files (maps to --declarationDir). Use with --declaration."),
46
+ pretty: z
47
+ .boolean()
48
+ .optional()
49
+ .describe("Enable or disable pretty-printed output (maps to --pretty). Set false for normalized parser-friendly output."),
24
50
  compact: z
25
51
  .boolean()
26
52
  .optional()
@@ -28,15 +54,29 @@ export function registerTscTool(server) {
28
54
  .describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
29
55
  },
30
56
  outputSchema: TscResultSchema,
31
- }, async ({ path, noEmit, project, compact }) => {
57
+ }, async ({ path, noEmit, project, incremental, skipLibCheck, emitDeclarationOnly, declaration, declarationDir, pretty, compact, }) => {
32
58
  const cwd = path || process.cwd();
33
59
  if (project)
34
60
  assertNoFlagInjection(project, "project");
61
+ if (declarationDir)
62
+ assertNoFlagInjection(declarationDir, "declarationDir");
35
63
  const args = [];
36
64
  if (noEmit !== false)
37
65
  args.push("--noEmit");
38
66
  if (project)
39
67
  args.push("--project", project);
68
+ if (incremental)
69
+ args.push("--incremental");
70
+ if (skipLibCheck)
71
+ args.push("--skipLibCheck");
72
+ if (emitDeclarationOnly)
73
+ args.push("--emitDeclarationOnly");
74
+ if (declaration)
75
+ args.push("--declaration");
76
+ if (declarationDir)
77
+ args.push("--declarationDir", declarationDir);
78
+ if (pretty === false)
79
+ args.push("--pretty", "false");
40
80
  const result = await tsc(args, cwd);
41
81
  const rawOutput = result.stdout + "\n" + result.stderr;
42
82
  const data = parseTscOutput(result.stdout, result.stderr, result.exitCode);
@@ -1 +1 @@
1
- {"version":3,"file":"tsc.js","sourceRoot":"","sources":["../../src/tools/tsc.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,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,wDAAwD;AACxD,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACjB,KAAK,EACL;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,oJAAoJ;QACtJ,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CAAC,kCAAkC,CAAC;YAC/C,MAAM,EAAE,CAAC;iBACN,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CAAC,4CAA4C,CAAC;YACzD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAC3F,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CACP,kGAAkG,CACnG;SACJ;QACD,YAAY,EAAE,eAAe;KAC9B,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,OAAO;YAAE,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEvD,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,MAAM,KAAK,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE7C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACvD,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3E,OAAO,iBAAiB,CACtB,IAAI,EACJ,SAAS,EACT,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,OAAO,KAAK,KAAK,CAClB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tsc.js","sourceRoot":"","sources":["../../src/tools/tsc.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"turbo.d.ts","sourceRoot":"","sources":["../../src/tools/turbo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,QA2DlD"}
1
+ {"version":3,"file":"turbo.d.ts","sourceRoot":"","sources":["../../src/tools/turbo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,QAsIlD"}
@@ -20,6 +20,43 @@ export function registerTurboTool(server) {
20
20
  .optional()
21
21
  .describe("Package filter (e.g., '@scope/pkg' or 'pkg...')"),
22
22
  concurrency: z.number().optional().describe("Maximum number of concurrent tasks"),
23
+ force: z
24
+ .boolean()
25
+ .optional()
26
+ .describe("Bypass the turbo cache and re-run all tasks (maps to --force)"),
27
+ continue_on_error: z
28
+ .boolean()
29
+ .optional()
30
+ .describe("Continue running tasks even after failures to surface all errors (maps to --continue)"),
31
+ dryRun: z
32
+ .boolean()
33
+ .optional()
34
+ .describe("Preview the task graph without executing (maps to --dry-run)"),
35
+ affected: z
36
+ .boolean()
37
+ .optional()
38
+ .describe("Run only tasks affected by changes since the base branch (maps to --affected)"),
39
+ graph: z
40
+ .boolean()
41
+ .optional()
42
+ .describe("Generate the task graph visualization (maps to --graph)"),
43
+ logOrder: z
44
+ .enum(["stream", "grouped", "auto"])
45
+ .optional()
46
+ .describe("Order of task log output"),
47
+ profile: z
48
+ .boolean()
49
+ .optional()
50
+ .describe("Generate a performance profile (maps to --profile)"),
51
+ outputLogs: z
52
+ .enum(["full", "hash-only", "new-only", "errors-only", "none"])
53
+ .optional()
54
+ .describe("Control which task logs are shown (default: 'new-only'). Maps to --output-logs."),
55
+ args: z
56
+ .array(z.string().max(INPUT_LIMITS.STRING_MAX))
57
+ .max(INPUT_LIMITS.ARRAY_MAX)
58
+ .optional()
59
+ .describe("Additional turbo flags (e.g., ['--env-mode=strict']). Each arg is validated with assertNoFlagInjection."),
23
60
  path: z
24
61
  .string()
25
62
  .max(INPUT_LIMITS.PATH_MAX)
@@ -32,16 +69,37 @@ export function registerTurboTool(server) {
32
69
  .describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
33
70
  },
34
71
  outputSchema: TurboResultSchema,
35
- }, async ({ task, filter, concurrency, path, compact }) => {
72
+ }, async ({ task, filter, concurrency, force, continue_on_error, dryRun, affected, graph, logOrder, profile, outputLogs, args, path, compact, }) => {
36
73
  const cwd = path || process.cwd();
37
74
  assertNoFlagInjection(task, "task");
38
75
  if (filter)
39
76
  assertNoFlagInjection(filter, "filter");
40
- const cliArgs = ["run", task, "--output-logs=new-only"];
77
+ const outputLogsValue = outputLogs ?? "new-only";
78
+ const cliArgs = ["run", task, `--output-logs=${outputLogsValue}`];
41
79
  if (filter)
42
80
  cliArgs.push("--filter", filter);
43
81
  if (concurrency !== undefined)
44
82
  cliArgs.push("--concurrency", String(concurrency));
83
+ if (force)
84
+ cliArgs.push("--force");
85
+ if (continue_on_error)
86
+ cliArgs.push("--continue");
87
+ if (dryRun)
88
+ cliArgs.push("--dry-run");
89
+ if (affected)
90
+ cliArgs.push("--affected");
91
+ if (graph)
92
+ cliArgs.push("--graph");
93
+ if (logOrder)
94
+ cliArgs.push(`--log-order=${logOrder}`);
95
+ if (profile)
96
+ cliArgs.push("--profile");
97
+ if (args) {
98
+ for (const a of args) {
99
+ assertNoFlagInjection(a, "args");
100
+ }
101
+ cliArgs.push(...args);
102
+ }
45
103
  const start = Date.now();
46
104
  const result = await turboCmd(cliArgs, cwd);
47
105
  const duration = Math.round((Date.now() - start) / 100) / 10;
@@ -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;AAExD,0DAA0D;AAC1D,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,MAAM,CAAC,YAAY,CACjB,OAAO,EACP;QACE,KAAK,EAAE,OAAO;QACd,WAAW,EACT,2IAA2I;QAC7I,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC;iBAClC,QAAQ,CAAC,mDAAmD,CAAC;YAChE,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC;iBAC5B,QAAQ,EAAE;iBACV,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACjF,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CAAC,kCAAkC,CAAC;YAC/C,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CACP,kGAAkG,CACnG;SACJ;QACD,YAAY,EAAE,iBAAiB;KAChC,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QACrD,MAAM,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM;YAAE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEpD,MAAM,OAAO,GAAa,CAAC,KAAK,EAAE,IAAI,EAAE,wBAAwB,CAAC,CAAC;QAElE,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QAElF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5C,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,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACvF,OAAO,iBAAiB,CACtB,IAAI,EACJ,SAAS,EACT,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,OAAO,KAAK,KAAK,CAClB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,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,QAoEtD"}
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,QAyJtD"}
@@ -21,6 +21,50 @@ export function registerViteBuildTool(server) {
21
21
  .optional()
22
22
  .default("production")
23
23
  .describe("Build mode (default: production)"),
24
+ outDir: z
25
+ .string()
26
+ .max(INPUT_LIMITS.PATH_MAX)
27
+ .optional()
28
+ .describe("Custom output directory (maps to --outDir)"),
29
+ config: z
30
+ .string()
31
+ .max(INPUT_LIMITS.PATH_MAX)
32
+ .optional()
33
+ .describe("Path to Vite config file (maps to --config)"),
34
+ sourcemap: z
35
+ .union([z.boolean(), z.enum(["inline", "hidden"])])
36
+ .optional()
37
+ .describe("Generate source maps. true for default, 'inline' for inline, 'hidden' for hidden source maps."),
38
+ base: z
39
+ .string()
40
+ .max(INPUT_LIMITS.STRING_MAX)
41
+ .optional()
42
+ .describe("Public base path for non-root deployments (maps to --base)"),
43
+ ssr: z
44
+ .string()
45
+ .max(INPUT_LIMITS.PATH_MAX)
46
+ .optional()
47
+ .describe("SSR build entry point (maps to --ssr)"),
48
+ manifest: z
49
+ .boolean()
50
+ .optional()
51
+ .describe("Generate a manifest.json for backend-integrated builds (maps to --manifest)"),
52
+ minify: z
53
+ .enum(["esbuild", "terser", "false"])
54
+ .optional()
55
+ .describe("Minification strategy (esbuild, terser, or false to disable)"),
56
+ logLevel: z
57
+ .enum(["info", "warn", "error", "silent"])
58
+ .optional()
59
+ .describe("Log level to control output verbosity"),
60
+ emptyOutDir: z
61
+ .boolean()
62
+ .optional()
63
+ .describe("Empty the output directory before building (maps to --emptyOutDir)"),
64
+ reportCompressedSize: z
65
+ .boolean()
66
+ .optional()
67
+ .describe("Report compressed (gzip) size of output files — disable to speed up large builds"),
24
68
  args: z
25
69
  .array(z.string().max(INPUT_LIMITS.STRING_MAX))
26
70
  .max(INPUT_LIMITS.ARRAY_MAX)
@@ -34,10 +78,18 @@ export function registerViteBuildTool(server) {
34
78
  .describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
35
79
  },
36
80
  outputSchema: ViteBuildResultSchema,
37
- }, async ({ path, mode, args, compact }) => {
81
+ }, async ({ path, mode, outDir, config, sourcemap, base, ssr, manifest, minify, logLevel, emptyOutDir, reportCompressedSize, args, compact, }) => {
38
82
  const cwd = path || process.cwd();
39
83
  if (mode)
40
84
  assertNoFlagInjection(mode, "mode");
85
+ if (outDir)
86
+ assertNoFlagInjection(outDir, "outDir");
87
+ if (config)
88
+ assertNoFlagInjection(config, "config");
89
+ if (base)
90
+ assertNoFlagInjection(base, "base");
91
+ if (ssr)
92
+ assertNoFlagInjection(ssr, "ssr");
41
93
  for (const a of args ?? []) {
42
94
  assertNoFlagInjection(a, "args");
43
95
  }
@@ -45,6 +97,33 @@ export function registerViteBuildTool(server) {
45
97
  if (mode && mode !== "production") {
46
98
  cliArgs.push("--mode", mode);
47
99
  }
100
+ if (outDir)
101
+ cliArgs.push(`--outDir=${outDir}`);
102
+ if (config)
103
+ cliArgs.push(`--config=${config}`);
104
+ if (sourcemap !== undefined) {
105
+ if (typeof sourcemap === "boolean") {
106
+ cliArgs.push(sourcemap ? "--sourcemap" : "--no-sourcemap");
107
+ }
108
+ else {
109
+ cliArgs.push(`--sourcemap=${sourcemap}`);
110
+ }
111
+ }
112
+ if (base)
113
+ cliArgs.push(`--base=${base}`);
114
+ if (ssr)
115
+ cliArgs.push(`--ssr=${ssr}`);
116
+ if (manifest)
117
+ cliArgs.push("--manifest");
118
+ if (minify)
119
+ cliArgs.push(`--minify=${minify}`);
120
+ if (logLevel)
121
+ cliArgs.push(`--logLevel=${logLevel}`);
122
+ if (emptyOutDir !== undefined) {
123
+ cliArgs.push(emptyOutDir ? "--emptyOutDir" : "--no-emptyOutDir");
124
+ }
125
+ if (reportCompressedSize === false)
126
+ cliArgs.push("--no-reportCompressedSize");
48
127
  if (args) {
49
128
  cliArgs.push(...args);
50
129
  }