@paretools/make 0.9.0 → 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/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/formatters.d.ts +2 -0
- package/dist/lib/formatters.d.ts.map +1 -1
- package/dist/lib/formatters.js +22 -3
- package/dist/lib/formatters.js.map +1 -1
- package/dist/lib/parsers.d.ts +35 -1
- package/dist/lib/parsers.d.ts.map +1 -1
- package/dist/lib/parsers.js +116 -2
- package/dist/lib/parsers.js.map +1 -1
- package/dist/schemas/index.d.ts +18 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +9 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/tools/list.d.ts.map +1 -1
- package/dist/tools/list.js +18 -14
- package/dist/tools/list.js.map +1 -1
- package/dist/tools/run.d.ts.map +1 -1
- package/dist/tools/run.js +3 -14
- package/dist/tools/run.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
3
3
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
4
|
import { registerAllTools } from "./tools/index.js";
|
|
5
5
|
const server = new McpServer({ name: "@paretools/make", version: "0.8.1" }, {
|
|
6
|
-
instructions: "Structured Make/Just task runner operations (run, list). Auto-detects make vs just. Returns typed JSON.
|
|
6
|
+
instructions: "Structured Make/Just task runner operations (run, list). Auto-detects make vs just. Returns typed JSON.",
|
|
7
7
|
});
|
|
8
8
|
registerAllTools(server);
|
|
9
9
|
const transport = new StdioServerTransport();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +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,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC7C;IACE,YAAY,EACV,
|
|
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,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC7C;IACE,YAAY,EACV,yGAAyG;CAC5G,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"}
|
package/dist/lib/formatters.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export interface MakeRunCompact {
|
|
|
12
12
|
duration: number;
|
|
13
13
|
tool: "make" | "just";
|
|
14
14
|
timedOut: boolean;
|
|
15
|
+
errorType?: "missing-target" | "recipe-failure" | "parse-error";
|
|
15
16
|
}
|
|
16
17
|
export declare function compactRunMap(data: MakeRunResult): MakeRunCompact;
|
|
17
18
|
export declare function formatRunCompact(data: MakeRunCompact): string;
|
|
@@ -19,6 +20,7 @@ export declare function formatRunCompact(data: MakeRunCompact): string;
|
|
|
19
20
|
export interface MakeListCompact {
|
|
20
21
|
[key: string]: unknown;
|
|
21
22
|
total: number;
|
|
23
|
+
patternRuleCount: number;
|
|
22
24
|
tool: "make" | "just";
|
|
23
25
|
}
|
|
24
26
|
export declare function compactListMap(data: MakeListResult): MakeListCompact;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIzE,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIzE,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAiBrD;AAED,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CA4BvD;AAID,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,aAAa,CAAC;CACjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CAUjE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAM7D;AAED,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe,CAMpE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAG/D"}
|
package/dist/lib/formatters.js
CHANGED
|
@@ -11,6 +11,9 @@ export function formatRun(data) {
|
|
|
11
11
|
else {
|
|
12
12
|
lines.push(`${data.tool} ${data.target}: exit code ${data.exitCode} (${data.duration}ms).`);
|
|
13
13
|
}
|
|
14
|
+
if (data.errorType) {
|
|
15
|
+
lines.push(`errorType: ${data.errorType}`);
|
|
16
|
+
}
|
|
14
17
|
if (data.stdout)
|
|
15
18
|
lines.push(data.stdout);
|
|
16
19
|
if (data.stderr)
|
|
@@ -32,6 +35,19 @@ export function formatList(data) {
|
|
|
32
35
|
if (t.description)
|
|
33
36
|
parts.push(`# ${t.description}`);
|
|
34
37
|
lines.push(parts.join(" "));
|
|
38
|
+
for (const cmd of t.recipe ?? []) {
|
|
39
|
+
lines.push(` $ ${cmd}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if ((data.patternRules ?? []).length > 0) {
|
|
43
|
+
lines.push(`pattern rules: ${data.patternRules?.length ?? 0}`);
|
|
44
|
+
for (const r of data.patternRules ?? []) {
|
|
45
|
+
const deps = (r.dependencies ?? []).length > 0 ? ` -> ${r.dependencies?.join(", ")}` : "";
|
|
46
|
+
lines.push(` ${r.pattern}${deps}`);
|
|
47
|
+
for (const cmd of r.recipe ?? []) {
|
|
48
|
+
lines.push(` $ ${cmd}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
35
51
|
}
|
|
36
52
|
return lines.join("\n");
|
|
37
53
|
}
|
|
@@ -43,24 +59,27 @@ export function compactRunMap(data) {
|
|
|
43
59
|
duration: data.duration,
|
|
44
60
|
tool: data.tool,
|
|
45
61
|
timedOut: data.timedOut,
|
|
62
|
+
errorType: data.errorType,
|
|
46
63
|
};
|
|
47
64
|
}
|
|
48
65
|
export function formatRunCompact(data) {
|
|
49
|
-
if (data.timedOut)
|
|
66
|
+
if (data.timedOut) {
|
|
50
67
|
return `${data.tool} ${data.target}: TIMED OUT after ${data.duration}ms (exit code ${data.exitCode}).`;
|
|
68
|
+
}
|
|
51
69
|
if (data.success)
|
|
52
70
|
return `${data.tool} ${data.target}: success (${data.duration}ms).`;
|
|
53
|
-
return `${data.tool} ${data.target}: exit code ${data.exitCode} (${data.duration}ms).`;
|
|
71
|
+
return `${data.tool} ${data.target}: exit code ${data.exitCode} (${data.duration}ms)${data.errorType ? ` [${data.errorType}]` : ""}.`;
|
|
54
72
|
}
|
|
55
73
|
export function compactListMap(data) {
|
|
56
74
|
return {
|
|
57
75
|
total: data.total,
|
|
76
|
+
patternRuleCount: (data.patternRules ?? []).length,
|
|
58
77
|
tool: data.tool,
|
|
59
78
|
};
|
|
60
79
|
}
|
|
61
80
|
export function formatListCompact(data) {
|
|
62
81
|
if (data.total === 0)
|
|
63
82
|
return `${data.tool}: no targets found.`;
|
|
64
|
-
return `${data.tool}: ${data.total} targets`;
|
|
83
|
+
return `${data.tool}: ${data.total} targets (${data.patternRuleCount} pattern rules)`;
|
|
65
84
|
}
|
|
66
85
|
//# sourceMappingURL=formatters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"AAEA,wEAAwE;AAExE,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CAAC,IAAmB;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,qBAAqB,IAAI,CAAC,QAAQ,iBAAiB,IAAI,CAAC,QAAQ,IAAI,CAChG,CAAC;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,cAAc,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,eAAe,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,IAAI,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CAAC,IAAoB;IAC7C,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO,GAAG,IAAI,CAAC,IAAI,qBAAqB,CAAC;IAE/D,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACnC,MAAM,KAAK,GAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/parsers.d.ts
CHANGED
|
@@ -47,12 +47,15 @@ export interface JustDump {
|
|
|
47
47
|
* The JSON dump includes recipe names, parameters, dependencies, and docs.
|
|
48
48
|
* All just recipes are inherently phony (no file targets).
|
|
49
49
|
*/
|
|
50
|
-
export declare function parseJustDumpJson(jsonOutput: string
|
|
50
|
+
export declare function parseJustDumpJson(jsonOutput: string, opts?: {
|
|
51
|
+
showRecipe?: boolean;
|
|
52
|
+
}): {
|
|
51
53
|
targets: {
|
|
52
54
|
name: string;
|
|
53
55
|
description?: string;
|
|
54
56
|
isPhony?: boolean;
|
|
55
57
|
dependencies?: string[];
|
|
58
|
+
recipe?: string[];
|
|
56
59
|
}[];
|
|
57
60
|
total: number;
|
|
58
61
|
};
|
|
@@ -96,6 +99,7 @@ export declare function enrichPhonyFlags(targets: {
|
|
|
96
99
|
description?: string;
|
|
97
100
|
isPhony?: boolean;
|
|
98
101
|
dependencies?: string[];
|
|
102
|
+
recipe?: string[];
|
|
99
103
|
}[], phonySet: Set<string>): void;
|
|
100
104
|
/**
|
|
101
105
|
* Enriches parsed make targets with descriptions extracted from the Makefile source.
|
|
@@ -111,9 +115,11 @@ export declare function enrichPhonyFlags(targets: {
|
|
|
111
115
|
export declare function enrichMakeTargetDescriptions(targets: {
|
|
112
116
|
name: string;
|
|
113
117
|
description?: string;
|
|
118
|
+
recipe?: string[];
|
|
114
119
|
}[], makefileSource: string): {
|
|
115
120
|
name: string;
|
|
116
121
|
description?: string;
|
|
122
|
+
recipe?: string[];
|
|
117
123
|
}[];
|
|
118
124
|
/**
|
|
119
125
|
* Parses dependency lists from Makefile source for best-effort dependency enrichment.
|
|
@@ -121,6 +127,28 @@ export declare function enrichMakeTargetDescriptions(targets: {
|
|
|
121
127
|
* (not the make database output), providing cleaner results for user-defined rules.
|
|
122
128
|
*/
|
|
123
129
|
export declare function parseMakeDependencies(makefileSource: string): Map<string, string[]>;
|
|
130
|
+
/**
|
|
131
|
+
* Parses explicit target recipe bodies from Makefile source.
|
|
132
|
+
*
|
|
133
|
+
* Captures tab-indented command lines that immediately follow target rules.
|
|
134
|
+
* Pattern rules (`%.o: %.c`) are excluded here and returned via parsePatternRules.
|
|
135
|
+
*/
|
|
136
|
+
export declare function parseMakeRecipes(makefileSource: string): Map<string, string[]>;
|
|
137
|
+
/**
|
|
138
|
+
* Parses Makefile pattern rules (e.g., `%.o: %.c`) with optional recipes.
|
|
139
|
+
*/
|
|
140
|
+
export declare function parsePatternRules(makefileSource: string): {
|
|
141
|
+
pattern: string;
|
|
142
|
+
dependencies?: string[];
|
|
143
|
+
recipe?: string[];
|
|
144
|
+
}[];
|
|
145
|
+
/**
|
|
146
|
+
* Adds parsed recipe bodies to already-discovered make targets.
|
|
147
|
+
*/
|
|
148
|
+
export declare function enrichTargetRecipes(targets: {
|
|
149
|
+
name: string;
|
|
150
|
+
recipe?: string[];
|
|
151
|
+
}[], recipeMap: Map<string, string[]>): void;
|
|
124
152
|
/**
|
|
125
153
|
* Builds a full MakeListResult from parsed target data and the detected tool.
|
|
126
154
|
*/
|
|
@@ -130,6 +158,12 @@ export declare function buildListResult(parsed: {
|
|
|
130
158
|
description?: string;
|
|
131
159
|
isPhony?: boolean;
|
|
132
160
|
dependencies?: string[];
|
|
161
|
+
recipe?: string[];
|
|
162
|
+
}[];
|
|
163
|
+
patternRules?: {
|
|
164
|
+
pattern: string;
|
|
165
|
+
dependencies?: string[];
|
|
166
|
+
recipe?: string[];
|
|
133
167
|
}[];
|
|
134
168
|
total: number;
|
|
135
169
|
}, tool: MakeTool): MakeListResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAqCjD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,EACd,QAAQ,GAAE,OAAe,GACxB,aAAa,CAaf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG;IAC7C,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClD,KAAK,EAAE,MAAM,CAAC;CACf,CAiBA;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC9D,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9C;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9B;IACD,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,EAAE,CAAC;IACJ,KAAK,EAAE,MAAM,CAAC;CACf,CAwCA;AAgBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG;IAChD,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAC3E,KAAK,EAAE,MAAM,CAAC;CACf,CAgCA;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAgBrE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE;IACP,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,EAAE,EACH,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GACpB,IAAI,CAMN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,EACpE,cAAc,EAAE,MAAM,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,CA0B7D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAoBnF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAoC9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,EAAE,CAwCF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,EAC9C,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC/B,IAAI,CAON;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE;IACN,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,EAAE,CAAC;IACJ,YAAY,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACjF,KAAK,EAAE,MAAM,CAAC;CACf,EACD,IAAI,EAAE,QAAQ,GACb,cAAc,CAOhB"}
|
package/dist/lib/parsers.js
CHANGED
|
@@ -1,16 +1,38 @@
|
|
|
1
|
+
function detectRunErrorType(tool, stdout, stderr) {
|
|
2
|
+
const text = `${stderr}\n${stdout}`.toLowerCase();
|
|
3
|
+
if (text.includes("no rule to make target") ||
|
|
4
|
+
text.includes("justfile does not contain recipe") ||
|
|
5
|
+
text.includes("unknown recipe")) {
|
|
6
|
+
return "missing-target";
|
|
7
|
+
}
|
|
8
|
+
if (text.includes("missing separator") ||
|
|
9
|
+
text.includes("makefile parse error") ||
|
|
10
|
+
text.includes("error parsing")) {
|
|
11
|
+
return "parse-error";
|
|
12
|
+
}
|
|
13
|
+
if (text.includes("recipe for target") ||
|
|
14
|
+
text.includes("error ") ||
|
|
15
|
+
text.includes("recipe failed") ||
|
|
16
|
+
(tool === "just" && text.includes("exited with status code"))) {
|
|
17
|
+
return "recipe-failure";
|
|
18
|
+
}
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
1
21
|
/**
|
|
2
22
|
* Parses the output of a `make` or `just` run into structured result data.
|
|
3
23
|
*/
|
|
4
24
|
export function parseRunOutput(target, stdout, stderr, exitCode, duration, tool, timedOut = false) {
|
|
25
|
+
const success = exitCode === 0 && !timedOut;
|
|
5
26
|
return {
|
|
6
27
|
target,
|
|
7
|
-
success
|
|
28
|
+
success,
|
|
8
29
|
exitCode,
|
|
9
30
|
stdout: stdout.trimEnd() || undefined,
|
|
10
31
|
stderr: stderr.trimEnd() || undefined,
|
|
11
32
|
duration,
|
|
12
33
|
tool,
|
|
13
34
|
timedOut,
|
|
35
|
+
errorType: !success ? detectRunErrorType(tool, stdout, stderr) : undefined,
|
|
14
36
|
};
|
|
15
37
|
}
|
|
16
38
|
/**
|
|
@@ -46,7 +68,7 @@ export function parseJustList(stdout) {
|
|
|
46
68
|
* The JSON dump includes recipe names, parameters, dependencies, and docs.
|
|
47
69
|
* All just recipes are inherently phony (no file targets).
|
|
48
70
|
*/
|
|
49
|
-
export function parseJustDumpJson(jsonOutput) {
|
|
71
|
+
export function parseJustDumpJson(jsonOutput, opts) {
|
|
50
72
|
const dump = JSON.parse(jsonOutput);
|
|
51
73
|
const targets = [];
|
|
52
74
|
if (dump.recipes) {
|
|
@@ -67,6 +89,9 @@ export function parseJustDumpJson(jsonOutput) {
|
|
|
67
89
|
description: recipe.doc?.trim() || undefined,
|
|
68
90
|
isPhony: true,
|
|
69
91
|
dependencies: deps.length > 0 ? deps : undefined,
|
|
92
|
+
recipe: opts?.showRecipe && Array.isArray(recipe.body)
|
|
93
|
+
? recipe.body.filter((line) => typeof line === "string")
|
|
94
|
+
: undefined,
|
|
70
95
|
});
|
|
71
96
|
}
|
|
72
97
|
}
|
|
@@ -227,6 +252,94 @@ export function parseMakeDependencies(makefileSource) {
|
|
|
227
252
|
}
|
|
228
253
|
return depMap;
|
|
229
254
|
}
|
|
255
|
+
/**
|
|
256
|
+
* Parses explicit target recipe bodies from Makefile source.
|
|
257
|
+
*
|
|
258
|
+
* Captures tab-indented command lines that immediately follow target rules.
|
|
259
|
+
* Pattern rules (`%.o: %.c`) are excluded here and returned via parsePatternRules.
|
|
260
|
+
*/
|
|
261
|
+
export function parseMakeRecipes(makefileSource) {
|
|
262
|
+
const recipeMap = new Map();
|
|
263
|
+
const lines = makefileSource.split("\n");
|
|
264
|
+
const targetRe = /^([a-zA-Z0-9_][a-zA-Z0-9_.\-/]*):\s*([^#\n]*)/;
|
|
265
|
+
let currentTarget;
|
|
266
|
+
for (const line of lines) {
|
|
267
|
+
const match = line.match(targetRe);
|
|
268
|
+
if (match && !line.trimStart().startsWith(".PHONY")) {
|
|
269
|
+
currentTarget = match[1];
|
|
270
|
+
if (!recipeMap.has(currentTarget)) {
|
|
271
|
+
recipeMap.set(currentTarget, []);
|
|
272
|
+
}
|
|
273
|
+
continue;
|
|
274
|
+
}
|
|
275
|
+
if (line.startsWith("\t") && currentTarget) {
|
|
276
|
+
const cmd = line.trim();
|
|
277
|
+
if (cmd.length > 0) {
|
|
278
|
+
recipeMap.get(currentTarget)?.push(cmd);
|
|
279
|
+
}
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
if (line.trim().length > 0) {
|
|
283
|
+
currentTarget = undefined;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
for (const [target, recipe] of recipeMap.entries()) {
|
|
287
|
+
if (recipe.length === 0) {
|
|
288
|
+
recipeMap.delete(target);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return recipeMap;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Parses Makefile pattern rules (e.g., `%.o: %.c`) with optional recipes.
|
|
295
|
+
*/
|
|
296
|
+
export function parsePatternRules(makefileSource) {
|
|
297
|
+
const lines = makefileSource.split("\n");
|
|
298
|
+
const patternRe = /^([^\s:#]*%[^\s:#]*):\s*([^#\n]*)/;
|
|
299
|
+
const rules = [];
|
|
300
|
+
let currentRule;
|
|
301
|
+
for (const line of lines) {
|
|
302
|
+
const match = line.match(patternRe);
|
|
303
|
+
if (match) {
|
|
304
|
+
const depsStr = match[2].trim();
|
|
305
|
+
const deps = depsStr ? stripOrderOnlyDeps(depsStr.split(/\s+/)) : [];
|
|
306
|
+
currentRule = {
|
|
307
|
+
pattern: match[1],
|
|
308
|
+
dependencies: deps.length > 0 ? deps : undefined,
|
|
309
|
+
recipe: [],
|
|
310
|
+
};
|
|
311
|
+
rules.push(currentRule);
|
|
312
|
+
continue;
|
|
313
|
+
}
|
|
314
|
+
if (line.startsWith("\t") && currentRule) {
|
|
315
|
+
const cmd = line.trim();
|
|
316
|
+
if (cmd.length > 0) {
|
|
317
|
+
currentRule.recipe?.push(cmd);
|
|
318
|
+
}
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
321
|
+
if (line.trim().length > 0) {
|
|
322
|
+
currentRule = undefined;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
for (const rule of rules) {
|
|
326
|
+
if ((rule.recipe ?? []).length === 0) {
|
|
327
|
+
delete rule.recipe;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
return rules;
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Adds parsed recipe bodies to already-discovered make targets.
|
|
334
|
+
*/
|
|
335
|
+
export function enrichTargetRecipes(targets, recipeMap) {
|
|
336
|
+
for (const target of targets) {
|
|
337
|
+
const recipe = recipeMap.get(target.name);
|
|
338
|
+
if (recipe && recipe.length > 0) {
|
|
339
|
+
target.recipe = recipe;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
230
343
|
/**
|
|
231
344
|
* Builds a full MakeListResult from parsed target data and the detected tool.
|
|
232
345
|
*/
|
|
@@ -235,6 +348,7 @@ export function buildListResult(parsed, tool) {
|
|
|
235
348
|
targets: parsed.targets,
|
|
236
349
|
total: parsed.total,
|
|
237
350
|
tool,
|
|
351
|
+
...(parsed.patternRules ? { patternRules: parsed.patternRules } : {}),
|
|
238
352
|
};
|
|
239
353
|
}
|
|
240
354
|
//# sourceMappingURL=parsers.js.map
|
package/dist/lib/parsers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,MAAc,EACd,MAAc,EACd,QAAgB,EAChB,QAAgB,EAChB,IAAc,EACd,WAAoB,KAAK;IAEzB,
|
|
1
|
+
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas/index.d.ts
CHANGED
|
@@ -12,6 +12,11 @@ export declare const MakeRunResultSchema: z.ZodObject<{
|
|
|
12
12
|
just: "just";
|
|
13
13
|
}>;
|
|
14
14
|
timedOut: z.ZodBoolean;
|
|
15
|
+
errorType: z.ZodOptional<z.ZodEnum<{
|
|
16
|
+
"missing-target": "missing-target";
|
|
17
|
+
"recipe-failure": "recipe-failure";
|
|
18
|
+
"parse-error": "parse-error";
|
|
19
|
+
}>>;
|
|
15
20
|
}, z.core.$strip>;
|
|
16
21
|
export type MakeRunResult = z.infer<typeof MakeRunResultSchema>;
|
|
17
22
|
/** Zod schema for a single target entry with name, optional description, phony flag, and dependencies. */
|
|
@@ -20,6 +25,13 @@ export declare const MakeTargetSchema: z.ZodObject<{
|
|
|
20
25
|
description: z.ZodOptional<z.ZodString>;
|
|
21
26
|
isPhony: z.ZodOptional<z.ZodBoolean>;
|
|
22
27
|
dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
28
|
+
recipe: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
/** Zod schema for a Make pattern rule entry (e.g., `%.o: %.c`). */
|
|
31
|
+
export declare const MakePatternRuleSchema: z.ZodObject<{
|
|
32
|
+
pattern: z.ZodString;
|
|
33
|
+
dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
34
|
+
recipe: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
23
35
|
}, z.core.$strip>;
|
|
24
36
|
/** Zod schema for structured make/just list output with targets and total count. */
|
|
25
37
|
export declare const MakeListResultSchema: z.ZodObject<{
|
|
@@ -28,6 +40,12 @@ export declare const MakeListResultSchema: z.ZodObject<{
|
|
|
28
40
|
description: z.ZodOptional<z.ZodString>;
|
|
29
41
|
isPhony: z.ZodOptional<z.ZodBoolean>;
|
|
30
42
|
dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
43
|
+
recipe: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
44
|
+
}, z.core.$strip>>>;
|
|
45
|
+
patternRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
46
|
+
pattern: z.ZodString;
|
|
47
|
+
dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
48
|
+
recipe: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
31
49
|
}, z.core.$strip>>>;
|
|
32
50
|
total: z.ZodNumber;
|
|
33
51
|
tool: z.ZodEnum<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,mGAAmG;AACnG,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,mGAAmG;AACnG,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;iBAU9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,0GAA0G;AAC1G,eAAO,MAAM,gBAAgB;;;;;;iBAM3B,CAAC;AAEH,mEAAmE;AACnE,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAC;AAEH,oFAAoF;AACpF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;iBAK/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
package/dist/schemas/index.js
CHANGED
|
@@ -9,6 +9,7 @@ export const MakeRunResultSchema = z.object({
|
|
|
9
9
|
duration: z.number(),
|
|
10
10
|
tool: z.enum(["make", "just"]),
|
|
11
11
|
timedOut: z.boolean(),
|
|
12
|
+
errorType: z.enum(["missing-target", "recipe-failure", "parse-error"]).optional(),
|
|
12
13
|
});
|
|
13
14
|
/** Zod schema for a single target entry with name, optional description, phony flag, and dependencies. */
|
|
14
15
|
export const MakeTargetSchema = z.object({
|
|
@@ -16,10 +17,18 @@ export const MakeTargetSchema = z.object({
|
|
|
16
17
|
description: z.string().optional(),
|
|
17
18
|
isPhony: z.boolean().optional(),
|
|
18
19
|
dependencies: z.array(z.string()).optional(),
|
|
20
|
+
recipe: z.array(z.string()).optional(),
|
|
21
|
+
});
|
|
22
|
+
/** Zod schema for a Make pattern rule entry (e.g., `%.o: %.c`). */
|
|
23
|
+
export const MakePatternRuleSchema = z.object({
|
|
24
|
+
pattern: z.string(),
|
|
25
|
+
dependencies: z.array(z.string()).optional(),
|
|
26
|
+
recipe: z.array(z.string()).optional(),
|
|
19
27
|
});
|
|
20
28
|
/** Zod schema for structured make/just list output with targets and total count. */
|
|
21
29
|
export const MakeListResultSchema = z.object({
|
|
22
30
|
targets: z.array(MakeTargetSchema).optional(),
|
|
31
|
+
patternRules: z.array(MakePatternRuleSchema).optional(),
|
|
23
32
|
total: z.number(),
|
|
24
33
|
tool: z.enum(["make", "just"]),
|
|
25
34
|
});
|
|
@@ -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,mGAAmG;AACnG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,mGAAmG;AACnG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE;CAClF,CAAC,CAAC;AAIH,0GAA0G;AAC1G,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH,oFAAoF;AACpF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;IAC7C,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IACvD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B,CAAC,CAAC"}
|
package/dist/tools/list.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/tools/list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/tools/list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgDzE,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,QAqKjD"}
|
package/dist/tools/list.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { compactDualOutput, assertNoFlagInjection, INPUT_LIMITS } from "@paretools/shared";
|
|
3
3
|
import { makeCmd, justCmd, resolveTool } from "../lib/make-runner.js";
|
|
4
|
-
import { parseJustList, parseJustDumpJson, parseMakeTargets, enrichMakeTargetDescriptions, parsePhonyTargets, enrichPhonyFlags, buildListResult, } from "../lib/parsers.js";
|
|
4
|
+
import { parseJustList, parseJustDumpJson, parseMakeTargets, enrichMakeTargetDescriptions, parsePhonyTargets, enrichPhonyFlags, parseMakeRecipes, enrichTargetRecipes, parsePatternRules, buildListResult, } from "../lib/parsers.js";
|
|
5
5
|
import { formatList, compactListMap, formatListCompact } from "../lib/formatters.js";
|
|
6
6
|
import { MakeListResultSchema } from "../schemas/index.js";
|
|
7
7
|
import { readFile } from "node:fs/promises";
|
|
8
8
|
import { join } from "node:path";
|
|
9
9
|
/** Attempts to use `just --dump-format json` for structured recipe parsing. */
|
|
10
|
-
async function tryJustJsonDump(cwd, file) {
|
|
10
|
+
async function tryJustJsonDump(cwd, file, showRecipe) {
|
|
11
11
|
try {
|
|
12
12
|
const jsonArgs = ["--dump-format", "json"];
|
|
13
13
|
if (file)
|
|
14
14
|
jsonArgs.push("--justfile", file);
|
|
15
15
|
const jsonResult = await justCmd(jsonArgs, cwd);
|
|
16
16
|
if (jsonResult.exitCode === 0 && jsonResult.stdout.trim()) {
|
|
17
|
-
return parseJustDumpJson(jsonResult.stdout);
|
|
17
|
+
return parseJustDumpJson(jsonResult.stdout, { showRecipe });
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
catch {
|
|
@@ -26,13 +26,9 @@ async function tryJustJsonDump(cwd, file) {
|
|
|
26
26
|
export function registerListTool(server) {
|
|
27
27
|
server.registerTool("list", {
|
|
28
28
|
title: "Make/Just List Targets",
|
|
29
|
-
description: "Lists available make or just targets with optional descriptions. Auto-detects make vs just.
|
|
29
|
+
description: "Lists available make or just targets with optional descriptions. Auto-detects make vs just.",
|
|
30
30
|
inputSchema: {
|
|
31
|
-
path: z
|
|
32
|
-
.string()
|
|
33
|
-
.max(INPUT_LIMITS.PATH_MAX)
|
|
34
|
-
.optional()
|
|
35
|
-
.describe("Project root path (default: cwd)"),
|
|
31
|
+
path: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Project root path"),
|
|
36
32
|
tool: z
|
|
37
33
|
.enum(["auto", "make", "just"])
|
|
38
34
|
.optional()
|
|
@@ -56,14 +52,14 @@ export function registerListTool(server) {
|
|
|
56
52
|
.boolean()
|
|
57
53
|
.optional()
|
|
58
54
|
.describe("List targets in definition order instead of alphabetical (just --unsorted, just only)"),
|
|
59
|
-
|
|
55
|
+
showRecipe: z
|
|
60
56
|
.boolean()
|
|
61
57
|
.optional()
|
|
62
|
-
.
|
|
63
|
-
|
|
58
|
+
.describe("Include recipe command bodies per target where available (from just JSON dump or Makefile source)"),
|
|
59
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
64
60
|
},
|
|
65
61
|
outputSchema: MakeListResultSchema,
|
|
66
|
-
}, async ({ path, tool, file, filter, includeSubmodules, unsorted, compact }) => {
|
|
62
|
+
}, async ({ path, tool, file, filter, includeSubmodules, unsorted, showRecipe, compact }) => {
|
|
67
63
|
if (file)
|
|
68
64
|
assertNoFlagInjection(file, "file");
|
|
69
65
|
if (filter)
|
|
@@ -74,7 +70,7 @@ export function registerListTool(server) {
|
|
|
74
70
|
let rawOutput;
|
|
75
71
|
if (resolved === "just") {
|
|
76
72
|
// Try JSON dump first for more reliable parsing (Gap #171)
|
|
77
|
-
const jsonParsed = await tryJustJsonDump(cwd, file);
|
|
73
|
+
const jsonParsed = await tryJustJsonDump(cwd, file, showRecipe);
|
|
78
74
|
if (jsonParsed) {
|
|
79
75
|
parsed = jsonParsed;
|
|
80
76
|
// Get --list output for raw display and optional ordering
|
|
@@ -141,6 +137,14 @@ export function registerListTool(server) {
|
|
|
141
137
|
// Gap #172: Extract .PHONY declarations
|
|
142
138
|
const phonySet = parsePhonyTargets(makefileSource);
|
|
143
139
|
enrichPhonyFlags(parsed.targets, phonySet);
|
|
140
|
+
if (showRecipe) {
|
|
141
|
+
const recipes = parseMakeRecipes(makefileSource);
|
|
142
|
+
enrichTargetRecipes(parsed.targets, recipes);
|
|
143
|
+
}
|
|
144
|
+
parsed = {
|
|
145
|
+
...parsed,
|
|
146
|
+
patternRules: parsePatternRules(makefileSource),
|
|
147
|
+
};
|
|
144
148
|
}
|
|
145
149
|
catch {
|
|
146
150
|
// Makefile not readable (e.g. generated targets only) — skip enrichment
|
package/dist/tools/list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/tools/list.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,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,4BAA4B,EAC5B,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,+EAA+E;AAC/E,KAAK,UAAU,eAAe,CAC5B,GAAW,EACX,IAAa;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/tools/list.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/tools/run.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":"run.d.ts","sourceRoot":"","sources":["../../src/tools/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QAkKhD"}
|
package/dist/tools/run.js
CHANGED
|
@@ -8,7 +8,7 @@ import { MakeRunResultSchema } from "../schemas/index.js";
|
|
|
8
8
|
export function registerRunTool(server) {
|
|
9
9
|
server.registerTool("run", {
|
|
10
10
|
title: "Make/Just Run",
|
|
11
|
-
description: "Runs a make or just target and returns structured output (stdout, stderr, exit code, duration). Auto-detects make vs just.
|
|
11
|
+
description: "Runs a make or just target and returns structured output (stdout, stderr, exit code, duration). Auto-detects make vs just.",
|
|
12
12
|
inputSchema: {
|
|
13
13
|
target: z.string().max(INPUT_LIMITS.SHORT_STRING_MAX).describe("Target to run"),
|
|
14
14
|
args: z
|
|
@@ -17,11 +17,7 @@ export function registerRunTool(server) {
|
|
|
17
17
|
.optional()
|
|
18
18
|
.default([])
|
|
19
19
|
.describe("Additional arguments to pass to the target"),
|
|
20
|
-
path: z
|
|
21
|
-
.string()
|
|
22
|
-
.max(INPUT_LIMITS.PATH_MAX)
|
|
23
|
-
.optional()
|
|
24
|
-
.describe("Project root path (default: cwd)"),
|
|
20
|
+
path: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Project root path"),
|
|
25
21
|
tool: z
|
|
26
22
|
.enum(["auto", "make", "just"])
|
|
27
23
|
.optional()
|
|
@@ -62,11 +58,7 @@ export function registerRunTool(server) {
|
|
|
62
58
|
.boolean()
|
|
63
59
|
.optional()
|
|
64
60
|
.describe("Check if target is up to date without executing (make -q, make only). Exit code 0 = up to date."),
|
|
65
|
-
compact: z
|
|
66
|
-
.boolean()
|
|
67
|
-
.optional()
|
|
68
|
-
.default(true)
|
|
69
|
-
.describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
|
|
61
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
70
62
|
},
|
|
71
63
|
outputSchema: MakeRunResultSchema,
|
|
72
64
|
}, async ({ target, args, path, tool, file, env, dryRun, jobs, silent, keepGoing, alwaysMake, verbose, trace, question, compact, }) => {
|
|
@@ -74,9 +66,6 @@ export function registerRunTool(server) {
|
|
|
74
66
|
assertNoFlagInjection(target, "target");
|
|
75
67
|
if (file)
|
|
76
68
|
assertNoFlagInjection(file, "file");
|
|
77
|
-
for (const a of args ?? []) {
|
|
78
|
-
assertNoFlagInjection(a, "args");
|
|
79
|
-
}
|
|
80
69
|
const resolved = resolveTool(tool || "auto", cwd);
|
|
81
70
|
// Build flags before the target
|
|
82
71
|
const flags = [];
|
package/dist/tools/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/tools/run.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,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,wDAAwD;AACxD,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACjB,KAAK,EACL;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/tools/run.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,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,wDAAwD;AACxD,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACjB,KAAK,EACL;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,4HAA4H;QAC9H,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC/E,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,4CAA4C,CAAC;YACzD,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,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;iBAC9B,QAAQ,EAAE;iBACV,OAAO,CAAC,MAAM,CAAC;iBACf,QAAQ,CAAC,uEAAuE,CAAC;YACpF,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CACP,0FAA0F,CAC3F;YACH,GAAG,EAAE,CAAC;iBACH,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;iBAC9B,QAAQ,EAAE;iBACV,QAAQ,CAAC,yEAAyE,CAAC;YACtF,MAAM,EAAE,CAAC;iBACN,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,+DAA+D,CAAC;YAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;YACtF,MAAM,EAAE,CAAC;iBACN,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;YAChE,SAAS,EAAE,CAAC;iBACT,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,mEAAmE,CAAC;YAChF,UAAU,EAAE,CAAC;iBACV,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,6DAA6D,CAAC;YAC1E,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;YAChE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;YACzF,QAAQ,EAAE,CAAC;iBACR,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CACP,iGAAiG,CAClG;YACH,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAChF;QACD,YAAY,EAAE,mBAAmB;KAClC,EACD,KAAK,EAAE,EACL,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,MAAM,EACN,IAAI,EACJ,MAAM,EACN,SAAS,EACT,UAAU,EACV,OAAO,EACP,KAAK,EACL,QAAQ,EACR,OAAO,GACR,EAAE,EAAE;QACH,MAAM,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxC,IAAI,IAAI;YAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC;QAElD,gCAAgC;QAChC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpC,IAAI,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,IAAI,OAAO;gBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,OAAO;YACP,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,IAAI,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,IAAI,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACvD,IAAI,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,UAAU;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,IAAI,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,uCAAuC;QACvC,8CAA8C;QAC9C,yFAAyF;QACzF,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,GAAG,EAAE,CAAC;YACR,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC;QAEhE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,MAA4D,CAAC;QAEjE,IAAI,CAAC;YACH,MAAM,GAAG,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC3F,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEhE,yDAAyD;YACzD,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,GAAG;oBACP,QAAQ,EAAE,GAAG,EAAE,6BAA6B;oBAC5C,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,MAAM;iBACf,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,8BAA8B;gBAC9B,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QAEpC,MAAM,IAAI,GAAG,cAAc,CACzB,MAAM,EACN,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,EACf,QAAQ,EACR,QAAQ,EACR,QAAQ,CACT,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,iBAAiB,CACtB,IAAI,EACJ,SAAS,EACT,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,OAAO,KAAK,KAAK,CAClB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paretools/make",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"mcpName": "io.github.Dave-London/pare-make",
|
|
5
5
|
"description": "MCP server for Make/Just task runners with structured, token-efficient output",
|
|
6
6
|
"license": "MIT",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
53
53
|
"zod": "^4.3.6",
|
|
54
|
-
"@paretools/shared": "0.
|
|
54
|
+
"@paretools/shared": "0.10.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@types/node": "^25.2.3",
|