@paretools/go 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/formatters.d.ts +33 -9
- package/dist/lib/formatters.d.ts.map +1 -1
- package/dist/lib/formatters.js +291 -34
- package/dist/lib/formatters.js.map +1 -1
- package/dist/lib/go-runner.d.ts +1 -1
- package/dist/lib/go-runner.d.ts.map +1 -1
- package/dist/lib/go-runner.js +3 -3
- package/dist/lib/go-runner.js.map +1 -1
- package/dist/lib/parsers.d.ts +47 -12
- package/dist/lib/parsers.d.ts.map +1 -1
- package/dist/lib/parsers.js +653 -45
- package/dist/lib/parsers.js.map +1 -1
- package/dist/schemas/index.d.ts +218 -4
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +142 -5
- package/dist/schemas/index.js.map +1 -1
- package/dist/tools/build.d.ts.map +1 -1
- package/dist/tools/build.js +97 -12
- package/dist/tools/build.js.map +1 -1
- package/dist/tools/env.d.ts.map +1 -1
- package/dist/tools/env.js +15 -13
- package/dist/tools/env.js.map +1 -1
- package/dist/tools/fmt.d.ts.map +1 -1
- package/dist/tools/fmt.js +28 -12
- package/dist/tools/fmt.js.map +1 -1
- package/dist/tools/generate.d.ts.map +1 -1
- package/dist/tools/generate.js +77 -12
- package/dist/tools/generate.js.map +1 -1
- package/dist/tools/get.d.ts.map +1 -1
- package/dist/tools/get.js +91 -11
- package/dist/tools/get.js.map +1 -1
- package/dist/tools/golangci-lint.d.ts.map +1 -1
- package/dist/tools/golangci-lint.js +145 -13
- package/dist/tools/golangci-lint.js.map +1 -1
- package/dist/tools/list.d.ts.map +1 -1
- package/dist/tools/list.js +77 -13
- package/dist/tools/list.js.map +1 -1
- package/dist/tools/mod-tidy.d.ts.map +1 -1
- package/dist/tools/mod-tidy.js +119 -12
- package/dist/tools/mod-tidy.js.map +1 -1
- package/dist/tools/run.d.ts.map +1 -1
- package/dist/tools/run.js +108 -16
- package/dist/tools/run.js.map +1 -1
- package/dist/tools/test.d.ts.map +1 -1
- package/dist/tools/test.js +112 -11
- package/dist/tools/test.js.map +1 -1
- package/dist/tools/vet.d.ts.map +1 -1
- package/dist/tools/vet.js +55 -13
- package/dist/tools/vet.js.map +1 -1
- package/package.json +2 -2
package/dist/schemas/index.js
CHANGED
|
@@ -10,35 +10,61 @@ export const GoBuildErrorSchema = z.object({
|
|
|
10
10
|
export const GoBuildResultSchema = z.object({
|
|
11
11
|
success: z.boolean(),
|
|
12
12
|
errors: z.array(GoBuildErrorSchema).optional(),
|
|
13
|
+
/** Non-file errors (package-level, linker, build constraint) that don't match file:line:col format. */
|
|
14
|
+
rawErrors: z.array(z.string()).optional(),
|
|
15
|
+
buildCache: z
|
|
16
|
+
.object({
|
|
17
|
+
estimatedHits: z.number(),
|
|
18
|
+
estimatedMisses: z.number(),
|
|
19
|
+
totalPackages: z.number(),
|
|
20
|
+
})
|
|
21
|
+
.optional()
|
|
22
|
+
.describe("Best-effort build cache estimate derived from go list stale metadata"),
|
|
13
23
|
total: z.number(),
|
|
14
24
|
});
|
|
15
25
|
/** Zod schema for a single go test case with package, name, status, and optional elapsed time. */
|
|
16
26
|
export const GoTestCaseSchema = z.object({
|
|
17
27
|
package: z.string(),
|
|
18
28
|
name: z.string(),
|
|
29
|
+
parent: z
|
|
30
|
+
.string()
|
|
31
|
+
.optional()
|
|
32
|
+
.describe("Parent test name for subtests (e.g., parent of TestA/Sub1 is TestA)"),
|
|
19
33
|
status: z.enum(["pass", "fail", "skip"]),
|
|
20
34
|
elapsed: z.number().optional(),
|
|
21
35
|
output: z.string().optional(),
|
|
22
36
|
});
|
|
37
|
+
/** Zod schema for a package-level test failure (build error, missing dependency, etc.). */
|
|
38
|
+
export const GoTestPackageFailureSchema = z.object({
|
|
39
|
+
package: z.string(),
|
|
40
|
+
output: z.string().optional(),
|
|
41
|
+
});
|
|
23
42
|
/** Zod schema for structured go test output with test list and pass/fail/skip counts. */
|
|
24
43
|
export const GoTestResultSchema = z.object({
|
|
25
44
|
success: z.boolean(),
|
|
26
45
|
tests: z.array(GoTestCaseSchema).optional(),
|
|
46
|
+
/** Package-level failures (build errors, missing dependencies) where no individual test ran. */
|
|
47
|
+
packageFailures: z.array(GoTestPackageFailureSchema).optional(),
|
|
27
48
|
total: z.number(),
|
|
28
49
|
passed: z.number(),
|
|
29
50
|
failed: z.number(),
|
|
30
51
|
skipped: z.number(),
|
|
31
52
|
});
|
|
32
|
-
/** Zod schema for a single go vet diagnostic with file location and
|
|
53
|
+
/** Zod schema for a single go vet diagnostic with file location, message, and analyzer name. */
|
|
33
54
|
export const GoVetDiagnosticSchema = z.object({
|
|
34
55
|
file: z.string(),
|
|
35
56
|
line: z.number(),
|
|
36
57
|
column: z.number().optional(),
|
|
37
58
|
message: z.string(),
|
|
59
|
+
/** The analyzer that produced this diagnostic (e.g., "printf", "shadow", "unusedresult"). */
|
|
60
|
+
analyzer: z.string().optional(),
|
|
38
61
|
});
|
|
39
|
-
/** Zod schema for structured go vet output with diagnostic list and
|
|
62
|
+
/** Zod schema for structured go vet output with diagnostic list, total count, and success status. */
|
|
40
63
|
export const GoVetResultSchema = z.object({
|
|
64
|
+
success: z.boolean(),
|
|
41
65
|
diagnostics: z.array(GoVetDiagnosticSchema).optional(),
|
|
66
|
+
/** Compilation/build errors encountered while running go vet (separate from vet diagnostics). */
|
|
67
|
+
compilationErrors: z.array(z.string()).optional(),
|
|
42
68
|
total: z.number(),
|
|
43
69
|
});
|
|
44
70
|
/** Zod schema for structured go run output with stdout, stderr, and exit code. */
|
|
@@ -46,32 +72,71 @@ export const GoRunResultSchema = z.object({
|
|
|
46
72
|
exitCode: z.number(),
|
|
47
73
|
stdout: z.string().optional(),
|
|
48
74
|
stderr: z.string().optional(),
|
|
75
|
+
timedOut: z.boolean().optional(),
|
|
76
|
+
signal: z.string().optional(),
|
|
77
|
+
/** Whether stdout was truncated due to maxOutput limit. */
|
|
78
|
+
stdoutTruncated: z.boolean().optional(),
|
|
79
|
+
/** Whether stderr was truncated due to maxOutput limit. */
|
|
80
|
+
stderrTruncated: z.boolean().optional(),
|
|
49
81
|
success: z.boolean(),
|
|
50
82
|
});
|
|
51
83
|
/** Zod schema for structured go mod tidy output with success status and summary. */
|
|
52
84
|
export const GoModTidyResultSchema = z.object({
|
|
53
85
|
success: z.boolean(),
|
|
54
86
|
summary: z.string().optional(),
|
|
87
|
+
addedModules: z.array(z.string()).optional(),
|
|
88
|
+
removedModules: z.array(z.string()).optional(),
|
|
89
|
+
errorType: z.enum(["network", "checksum", "syntax", "unknown"]).optional(),
|
|
90
|
+
/** Whether go mod tidy actually changed go.mod/go.sum (true) or they were already tidy (false). */
|
|
91
|
+
madeChanges: z.boolean().optional(),
|
|
92
|
+
});
|
|
93
|
+
/** Zod schema for a gofmt parse error from stderr. */
|
|
94
|
+
export const GoFmtParseErrorSchema = z.object({
|
|
95
|
+
file: z.string(),
|
|
96
|
+
line: z.number(),
|
|
97
|
+
column: z.number().optional(),
|
|
98
|
+
message: z.string(),
|
|
55
99
|
});
|
|
56
100
|
/** Zod schema for structured gofmt output with file list and count. */
|
|
57
101
|
export const GoFmtResultSchema = z.object({
|
|
58
102
|
success: z.boolean(),
|
|
59
103
|
filesChanged: z.number(),
|
|
60
104
|
files: z.array(z.string()).optional(),
|
|
105
|
+
changes: z
|
|
106
|
+
.array(z.object({
|
|
107
|
+
file: z.string(),
|
|
108
|
+
diff: z.string(),
|
|
109
|
+
}))
|
|
110
|
+
.optional()
|
|
111
|
+
.describe("Per-file diff snippets when -d output is available"),
|
|
112
|
+
/** Parse errors reported on stderr (e.g., syntax errors in Go files). */
|
|
113
|
+
parseErrors: z.array(GoFmtParseErrorSchema).optional(),
|
|
114
|
+
});
|
|
115
|
+
/** Zod schema for a single go generate directive. */
|
|
116
|
+
export const GoGenerateDirectiveSchema = z.object({
|
|
117
|
+
file: z.string(),
|
|
118
|
+
line: z.number().optional(),
|
|
119
|
+
command: z.string(),
|
|
120
|
+
status: z.enum(["running", "completed", "failed"]).optional(),
|
|
61
121
|
});
|
|
62
122
|
/** Zod schema for structured go generate output with success status and output text. */
|
|
63
123
|
export const GoGenerateResultSchema = z.object({
|
|
64
124
|
success: z.boolean(),
|
|
65
125
|
output: z.string().optional(),
|
|
126
|
+
timedOut: z.boolean().optional(),
|
|
127
|
+
/** Parsed per-directive status from -v or -x output. */
|
|
128
|
+
directives: z.array(GoGenerateDirectiveSchema).optional(),
|
|
66
129
|
});
|
|
67
130
|
/** Zod schema for structured go env output with environment variables and key fields. */
|
|
68
131
|
export const GoEnvResultSchema = z.object({
|
|
132
|
+
success: z.boolean(),
|
|
69
133
|
vars: z.record(z.string(), z.string()).optional(),
|
|
70
134
|
goroot: z.string(),
|
|
71
135
|
gopath: z.string(),
|
|
72
136
|
goversion: z.string(),
|
|
73
137
|
goos: z.string(),
|
|
74
138
|
goarch: z.string(),
|
|
139
|
+
cgoEnabled: z.boolean().optional(),
|
|
75
140
|
});
|
|
76
141
|
/** Zod schema for a single Go package from go list output. */
|
|
77
142
|
export const GoListPackageSchema = z.object({
|
|
@@ -79,16 +144,82 @@ export const GoListPackageSchema = z.object({
|
|
|
79
144
|
importPath: z.string(),
|
|
80
145
|
name: z.string(),
|
|
81
146
|
goFiles: z.array(z.string()).optional(),
|
|
82
|
-
|
|
83
|
-
|
|
147
|
+
testGoFiles: z.array(z.string()).optional(),
|
|
148
|
+
imports: z.array(z.string()).optional(),
|
|
149
|
+
standard: z.boolean().optional(),
|
|
150
|
+
stale: z.boolean().optional(),
|
|
151
|
+
module: z
|
|
152
|
+
.object({
|
|
153
|
+
path: z.string().optional(),
|
|
154
|
+
version: z.string().optional(),
|
|
155
|
+
})
|
|
156
|
+
.optional(),
|
|
157
|
+
/** Error information when the package has issues (e.g., missing imports, build errors). */
|
|
158
|
+
error: z.object({ err: z.string() }).optional(),
|
|
159
|
+
});
|
|
160
|
+
/** Zod schema for a single Go module from go list -m output. */
|
|
161
|
+
export const GoListModuleSchema = z.object({
|
|
162
|
+
path: z.string(),
|
|
163
|
+
version: z.string().optional(),
|
|
164
|
+
dir: z.string().optional(),
|
|
165
|
+
goMod: z.string().optional(),
|
|
166
|
+
goVersion: z.string().optional(),
|
|
167
|
+
main: z.boolean().optional(),
|
|
168
|
+
indirect: z.boolean().optional(),
|
|
169
|
+
});
|
|
170
|
+
/** Zod schema for structured go list output with package/module list and total count. */
|
|
84
171
|
export const GoListResultSchema = z.object({
|
|
172
|
+
success: z.boolean(),
|
|
85
173
|
packages: z.array(GoListPackageSchema).optional(),
|
|
174
|
+
/** Module list (populated when modules mode is used). */
|
|
175
|
+
modules: z.array(GoListModuleSchema).optional(),
|
|
86
176
|
total: z.number(),
|
|
87
177
|
});
|
|
88
|
-
/** Zod schema for
|
|
178
|
+
/** Zod schema for a per-package status entry from go get output. */
|
|
179
|
+
export const GoGetPackageStatusSchema = z.object({
|
|
180
|
+
/** The module/package path. */
|
|
181
|
+
path: z.string(),
|
|
182
|
+
/** The resolved version, if available. */
|
|
183
|
+
version: z.string().optional(),
|
|
184
|
+
/** Error message if this package failed. */
|
|
185
|
+
error: z.string().optional(),
|
|
186
|
+
errorType: z.enum(["timeout", "dns", "authentication", "network", "unknown"]).optional(),
|
|
187
|
+
});
|
|
188
|
+
/** Zod schema for a resolved package from go get output. */
|
|
189
|
+
export const GoGetResolvedPackageSchema = z.object({
|
|
190
|
+
/** The module/package path. */
|
|
191
|
+
package: z.string(),
|
|
192
|
+
/** The version the package was at before this operation, if upgraded. */
|
|
193
|
+
previousVersion: z.string().optional(),
|
|
194
|
+
/** The newly resolved version. */
|
|
195
|
+
newVersion: z.string(),
|
|
196
|
+
});
|
|
197
|
+
/** Zod schema for structured go get output with success status, output text, and resolved packages. */
|
|
89
198
|
export const GoGetResultSchema = z.object({
|
|
90
199
|
success: z.boolean(),
|
|
91
200
|
output: z.string().optional(),
|
|
201
|
+
/** Packages resolved/upgraded by go get with version information. */
|
|
202
|
+
resolvedPackages: z.array(GoGetResolvedPackageSchema).optional(),
|
|
203
|
+
/** Per-package status showing success/failure for each requested package. */
|
|
204
|
+
packages: z.array(GoGetPackageStatusSchema).optional(),
|
|
205
|
+
goModChanges: z
|
|
206
|
+
.object({
|
|
207
|
+
added: z.array(z.string()),
|
|
208
|
+
removed: z.array(z.string()),
|
|
209
|
+
})
|
|
210
|
+
.optional(),
|
|
211
|
+
});
|
|
212
|
+
/** Zod schema for a fix/replacement suggestion from golangci-lint. */
|
|
213
|
+
export const GolangciLintFixSchema = z.object({
|
|
214
|
+
/** The replacement text. */
|
|
215
|
+
text: z.string(),
|
|
216
|
+
/** The range in the file to replace. */
|
|
217
|
+
range: z
|
|
218
|
+
.object({
|
|
219
|
+
start: z.object({ line: z.number(), column: z.number().optional() }),
|
|
220
|
+
end: z.object({ line: z.number(), column: z.number().optional() }),
|
|
221
|
+
})
|
|
222
|
+
.optional(),
|
|
92
223
|
});
|
|
93
224
|
/** Zod schema for a single golangci-lint diagnostic with file location, linter, severity, and message. */
|
|
94
225
|
export const GolangciLintDiagnosticSchema = z.object({
|
|
@@ -96,9 +227,14 @@ export const GolangciLintDiagnosticSchema = z.object({
|
|
|
96
227
|
line: z.number(),
|
|
97
228
|
column: z.number().optional(),
|
|
98
229
|
linter: z.string(),
|
|
230
|
+
category: z
|
|
231
|
+
.enum(["bug-risk", "style", "performance", "security", "complexity", "other"])
|
|
232
|
+
.optional(),
|
|
99
233
|
severity: z.enum(["error", "warning", "info"]),
|
|
100
234
|
message: z.string(),
|
|
101
235
|
sourceLine: z.string().optional(),
|
|
236
|
+
/** Fix/replacement suggestion from the linter, if available. */
|
|
237
|
+
fix: GolangciLintFixSchema.optional(),
|
|
102
238
|
});
|
|
103
239
|
/** Zod schema for linter-level summary counts. */
|
|
104
240
|
export const GolangciLintLinterSummarySchema = z.object({
|
|
@@ -111,6 +247,7 @@ export const GolangciLintResultSchema = z.object({
|
|
|
111
247
|
total: z.number(),
|
|
112
248
|
errors: z.number(),
|
|
113
249
|
warnings: z.number(),
|
|
250
|
+
resultsTruncated: z.boolean().optional(),
|
|
114
251
|
byLinter: z.array(GolangciLintLinterSummarySchema).optional(),
|
|
115
252
|
});
|
|
116
253
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAEH,oFAAoF;AACpF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAIH,kGAAkG;AAClG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,yFAAyF;AACzF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAIH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/tools/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,QA+
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/tools/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,QA+GlD"}
|
package/dist/tools/build.js
CHANGED
|
@@ -1,42 +1,127 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { compactDualOutput, assertNoFlagInjection, INPUT_LIMITS } from "@paretools/shared";
|
|
3
3
|
import { goCmd } from "../lib/go-runner.js";
|
|
4
|
-
import { parseGoBuildOutput } from "../lib/parsers.js";
|
|
4
|
+
import { parseGoBuildOutput, parseGoListOutput } from "../lib/parsers.js";
|
|
5
5
|
import { formatGoBuild, compactBuildMap, formatBuildCompact } from "../lib/formatters.js";
|
|
6
6
|
import { GoBuildResultSchema } from "../schemas/index.js";
|
|
7
7
|
/** Registers the `build` tool on the given MCP server. */
|
|
8
8
|
export function registerBuildTool(server) {
|
|
9
9
|
server.registerTool("build", {
|
|
10
10
|
title: "Go Build",
|
|
11
|
-
description: "Runs go build and returns structured error list (file, line, column, message).
|
|
11
|
+
description: "Runs go build and returns structured error list (file, line, column, message).",
|
|
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
|
packages: z
|
|
19
15
|
.array(z.string().max(INPUT_LIMITS.SHORT_STRING_MAX))
|
|
20
16
|
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
21
17
|
.optional()
|
|
22
18
|
.default(["./..."])
|
|
23
19
|
.describe("Packages to build (default: ./...)"),
|
|
24
|
-
|
|
20
|
+
race: z.boolean().optional().default(false).describe("Enable data race detection (-race)"),
|
|
21
|
+
trimpath: z
|
|
22
|
+
.boolean()
|
|
23
|
+
.optional()
|
|
24
|
+
.default(false)
|
|
25
|
+
.describe("Remove all file system paths from the resulting binary (-trimpath). Needed for reproducible builds."),
|
|
26
|
+
verbose: z
|
|
25
27
|
.boolean()
|
|
26
28
|
.optional()
|
|
27
|
-
.default(
|
|
28
|
-
.describe("
|
|
29
|
+
.default(false)
|
|
30
|
+
.describe("Print the names of packages as they are compiled (-v)"),
|
|
31
|
+
tags: z
|
|
32
|
+
.array(z.string().max(INPUT_LIMITS.SHORT_STRING_MAX))
|
|
33
|
+
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
34
|
+
.optional()
|
|
35
|
+
.describe("Build tags for conditional compilation (-tags). Example: ['integration', 'linux']"),
|
|
36
|
+
ldflags: z
|
|
37
|
+
.string()
|
|
38
|
+
.max(INPUT_LIMITS.STRING_MAX)
|
|
39
|
+
.optional()
|
|
40
|
+
.describe('Linker flags (-ldflags). Commonly used for version injection, e.g. "-X main.version=1.0.0"'),
|
|
41
|
+
output: z
|
|
42
|
+
.string()
|
|
43
|
+
.max(INPUT_LIMITS.PATH_MAX)
|
|
44
|
+
.optional()
|
|
45
|
+
.describe("Output binary name or path (-o)"),
|
|
46
|
+
buildmode: z
|
|
47
|
+
.enum(["default", "archive", "c-archive", "c-shared", "shared", "exe", "pie", "plugin"])
|
|
48
|
+
.optional()
|
|
49
|
+
.describe("Build mode (-buildmode). Controls the type of output artifact."),
|
|
50
|
+
gcflags: z
|
|
51
|
+
.string()
|
|
52
|
+
.max(INPUT_LIMITS.STRING_MAX)
|
|
53
|
+
.optional()
|
|
54
|
+
.describe('Arguments to pass to the Go compiler (-gcflags). Example: "-N -l" to disable optimizations.'),
|
|
55
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
29
56
|
},
|
|
30
57
|
outputSchema: GoBuildResultSchema,
|
|
31
|
-
}, async ({ path, packages, compact }) => {
|
|
58
|
+
}, async ({ path, packages, race, trimpath, verbose, tags, ldflags, output, buildmode, gcflags, compact, }) => {
|
|
32
59
|
const cwd = path || process.cwd();
|
|
33
60
|
for (const p of packages ?? []) {
|
|
34
61
|
assertNoFlagInjection(p, "packages");
|
|
35
62
|
}
|
|
36
|
-
|
|
63
|
+
if (output)
|
|
64
|
+
assertNoFlagInjection(output, "output");
|
|
65
|
+
const args = ["build"];
|
|
66
|
+
if (race)
|
|
67
|
+
args.push("-race");
|
|
68
|
+
if (trimpath)
|
|
69
|
+
args.push("-trimpath");
|
|
70
|
+
if (verbose)
|
|
71
|
+
args.push("-v");
|
|
72
|
+
if (tags && tags.length > 0) {
|
|
73
|
+
for (const t of tags) {
|
|
74
|
+
assertNoFlagInjection(t, "tags");
|
|
75
|
+
}
|
|
76
|
+
args.push("-tags", tags.join(","));
|
|
77
|
+
}
|
|
78
|
+
if (ldflags)
|
|
79
|
+
args.push("-ldflags", ldflags);
|
|
80
|
+
if (output)
|
|
81
|
+
args.push("-o", output);
|
|
82
|
+
if (buildmode)
|
|
83
|
+
args.push(`-buildmode=${buildmode}`);
|
|
84
|
+
if (gcflags)
|
|
85
|
+
args.push("-gcflags", gcflags);
|
|
86
|
+
args.push(...(packages || ["./..."]));
|
|
87
|
+
const cacheEstimate = await estimateBuildCache(cwd, packages || ["./..."], tags);
|
|
88
|
+
const result = await goCmd(args, cwd);
|
|
37
89
|
const data = parseGoBuildOutput(result.stdout, result.stderr, result.exitCode);
|
|
90
|
+
if (cacheEstimate) {
|
|
91
|
+
data.buildCache = cacheEstimate;
|
|
92
|
+
}
|
|
38
93
|
const rawOutput = (result.stdout + "\n" + result.stderr).trim();
|
|
39
94
|
return compactDualOutput(data, rawOutput, formatGoBuild, compactBuildMap, formatBuildCompact, compact === false);
|
|
40
95
|
});
|
|
41
96
|
}
|
|
97
|
+
async function estimateBuildCache(cwd, packages, tags) {
|
|
98
|
+
const args = ["list", "-json", "-deps"];
|
|
99
|
+
if (tags && tags.length > 0) {
|
|
100
|
+
args.push("-tags", tags.join(","));
|
|
101
|
+
}
|
|
102
|
+
args.push(...packages);
|
|
103
|
+
try {
|
|
104
|
+
const result = await goCmd(args, cwd);
|
|
105
|
+
const listed = parseGoListOutput(result.stdout, result.exitCode);
|
|
106
|
+
const pkgs = listed.packages ?? [];
|
|
107
|
+
if (pkgs.length === 0)
|
|
108
|
+
return undefined;
|
|
109
|
+
let estimatedHits = 0;
|
|
110
|
+
let estimatedMisses = 0;
|
|
111
|
+
for (const pkg of pkgs) {
|
|
112
|
+
if (pkg.stale === true)
|
|
113
|
+
estimatedMisses++;
|
|
114
|
+
else if (pkg.stale === false)
|
|
115
|
+
estimatedHits++;
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
estimatedHits,
|
|
119
|
+
estimatedMisses,
|
|
120
|
+
totalPackages: pkgs.length,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
42
127
|
//# sourceMappingURL=build.js.map
|
package/dist/tools/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/tools/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,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/tools/build.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/tools/env.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/tools/env.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QAiDhD"}
|
package/dist/tools/env.js
CHANGED
|
@@ -8,35 +8,37 @@ import { GoEnvResultSchema } from "../schemas/index.js";
|
|
|
8
8
|
export function registerEnvTool(server) {
|
|
9
9
|
server.registerTool("env", {
|
|
10
10
|
title: "Go Env",
|
|
11
|
-
description: "Returns Go environment variables as structured JSON. Optionally request specific variables.
|
|
11
|
+
description: "Returns Go environment variables as structured JSON. Optionally request specific variables.",
|
|
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
|
vars: z
|
|
19
15
|
.array(z.string().max(INPUT_LIMITS.SHORT_STRING_MAX))
|
|
20
16
|
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
21
17
|
.optional()
|
|
22
18
|
.describe("Specific environment variables to query (e.g., ['GOROOT', 'GOPATH'])"),
|
|
23
|
-
|
|
19
|
+
changed: z
|
|
24
20
|
.boolean()
|
|
25
21
|
.optional()
|
|
26
|
-
.default(
|
|
27
|
-
.describe("
|
|
22
|
+
.default(false)
|
|
23
|
+
.describe("Show only variables whose effective value differs from the default (-changed)"),
|
|
24
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
28
25
|
},
|
|
29
26
|
outputSchema: GoEnvResultSchema,
|
|
30
|
-
}, async ({ path, vars, compact }) => {
|
|
27
|
+
}, async ({ path, vars, changed, compact }) => {
|
|
31
28
|
for (const v of vars || []) {
|
|
32
29
|
assertNoFlagInjection(v, "vars");
|
|
33
30
|
}
|
|
34
31
|
const cwd = path || process.cwd();
|
|
35
|
-
const args = ["env", "-json"
|
|
32
|
+
const args = ["env", "-json"];
|
|
33
|
+
if (changed)
|
|
34
|
+
args.push("-changed");
|
|
35
|
+
args.push(...(vars || []));
|
|
36
36
|
const result = await goCmd(args, cwd);
|
|
37
|
-
const data = parseGoEnvOutput(result.stdout);
|
|
37
|
+
const data = parseGoEnvOutput(result.stdout, vars);
|
|
38
38
|
const rawOutput = result.stdout.trim();
|
|
39
|
-
|
|
39
|
+
// Pass queriedVars to compactEnvMap so compact mode includes queried variables (Gap #150)
|
|
40
|
+
const queriedVars = vars;
|
|
41
|
+
return compactDualOutput(data, rawOutput, formatGoEnv, (d) => compactEnvMap(d, queriedVars), formatEnvCompact, compact === false);
|
|
40
42
|
});
|
|
41
43
|
}
|
|
42
44
|
//# sourceMappingURL=env.js.map
|
package/dist/tools/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/tools/env.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,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/tools/env.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,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,wDAAwD;AACxD,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACjB,KAAK,EACL;QACE,KAAK,EAAE,QAAQ;QACf,WAAW,EACT,6FAA6F;QAC/F,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,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;iBACpD,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;iBAC3B,QAAQ,EAAE;iBACV,QAAQ,CAAC,sEAAsE,CAAC;YACnF,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CACP,+EAA+E,CAChF;YACH,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAChF;QACD,YAAY,EAAE,iBAAiB;KAChC,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QACzC,KAAK,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YAC3B,qBAAqB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAEvC,0FAA0F;QAC1F,MAAM,WAAW,GAAG,IAAI,CAAC;QACzB,OAAO,iBAAiB,CACtB,IAAI,EACJ,SAAS,EACT,WAAW,EACX,CAAC,CAAc,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC,EACjD,gBAAgB,EAChB,OAAO,KAAK,KAAK,CAClB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/fmt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fmt.d.ts","sourceRoot":"","sources":["../../src/tools/fmt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"fmt.d.ts","sourceRoot":"","sources":["../../src/tools/fmt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QAiEhD"}
|
package/dist/tools/fmt.js
CHANGED
|
@@ -8,13 +8,9 @@ import { GoFmtResultSchema } from "../schemas/index.js";
|
|
|
8
8
|
export function registerFmtTool(server) {
|
|
9
9
|
server.registerTool("fmt", {
|
|
10
10
|
title: "Go Fmt",
|
|
11
|
-
description: "Checks or fixes Go source formatting using gofmt. In check mode (-l), lists unformatted files. In fix mode (-w), rewrites files.
|
|
11
|
+
description: "Checks or fixes Go source formatting using gofmt. In check mode (-l), lists unformatted files. In fix mode (-w), rewrites files.",
|
|
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
|
patterns: z
|
|
19
15
|
.array(z.string().max(INPUT_LIMITS.PATH_MAX))
|
|
20
16
|
.max(INPUT_LIMITS.ARRAY_MAX)
|
|
@@ -26,20 +22,40 @@ export function registerFmtTool(server) {
|
|
|
26
22
|
.optional()
|
|
27
23
|
.default(false)
|
|
28
24
|
.describe("Check mode: list unformatted files without fixing (default: false)"),
|
|
29
|
-
|
|
25
|
+
diff: z
|
|
26
|
+
.boolean()
|
|
27
|
+
.optional()
|
|
28
|
+
.default(false)
|
|
29
|
+
.describe("Display diffs instead of rewriting files (-d)"),
|
|
30
|
+
simplify: z
|
|
30
31
|
.boolean()
|
|
31
32
|
.optional()
|
|
32
|
-
.default(
|
|
33
|
-
.describe("
|
|
33
|
+
.default(false)
|
|
34
|
+
.describe("Try to simplify code in addition to formatting (-s)"),
|
|
35
|
+
allErrors: z
|
|
36
|
+
.boolean()
|
|
37
|
+
.optional()
|
|
38
|
+
.default(false)
|
|
39
|
+
.describe("Report all errors, not just the first 10 per file (-e)"),
|
|
40
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
34
41
|
},
|
|
35
42
|
outputSchema: GoFmtResultSchema,
|
|
36
|
-
}, async ({ path, patterns, check, compact }) => {
|
|
43
|
+
}, async ({ path, patterns, check, diff, simplify, allErrors, compact }) => {
|
|
37
44
|
const cwd = path || process.cwd();
|
|
38
45
|
for (const p of patterns ?? []) {
|
|
39
46
|
assertNoFlagInjection(p, "patterns");
|
|
40
47
|
}
|
|
41
|
-
|
|
42
|
-
|
|
48
|
+
// In fix mode, pass -l -w -d so gofmt lists changed files, rewrites them,
|
|
49
|
+
// and emits per-file diffs for structured `changes` output.
|
|
50
|
+
// In check mode, only pass -l to list files that need formatting.
|
|
51
|
+
const args = check ? ["-l"] : ["-l", "-w", "-d"];
|
|
52
|
+
if (diff)
|
|
53
|
+
args.push("-d");
|
|
54
|
+
if (simplify)
|
|
55
|
+
args.push("-s");
|
|
56
|
+
if (allErrors)
|
|
57
|
+
args.push("-e");
|
|
58
|
+
args.push(...(patterns || ["."]));
|
|
43
59
|
const result = await gofmtCmd(args, cwd);
|
|
44
60
|
const data = parseGoFmtOutput(result.stdout, result.stderr, result.exitCode, !!check);
|
|
45
61
|
const rawOutput = (result.stdout + "\n" + result.stderr).trim();
|
package/dist/tools/fmt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fmt.js","sourceRoot":"","sources":["../../src/tools/fmt.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,qBAAqB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,wDAAwD;AACxD,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACjB,KAAK,EACL;QACE,KAAK,EAAE,QAAQ;QACf,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"fmt.js","sourceRoot":"","sources":["../../src/tools/fmt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/tools/generate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,6DAA6D;AAC7D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/tools/generate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,6DAA6D;AAC7D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,QAuHrD"}
|