@dahch/muninn 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +395 -2
- package/dist/cli.d.ts +23 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +186 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/check.d.ts +3 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +56 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/memory.d.ts +6 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +374 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/setup.d.ts +3 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +397 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/contracts/compiler.d.ts +71 -0
- package/dist/contracts/compiler.d.ts.map +1 -0
- package/dist/contracts/compiler.js +362 -0
- package/dist/contracts/compiler.js.map +1 -0
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +2 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/db/client.d.ts +100 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +318 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/schema.sql +99 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/indexer/ast-indexer.d.ts +55 -0
- package/dist/indexer/ast-indexer.d.ts.map +1 -0
- package/dist/indexer/ast-indexer.js +445 -0
- package/dist/indexer/ast-indexer.js.map +1 -0
- package/dist/indexer/index.d.ts +2 -0
- package/dist/indexer/index.d.ts.map +1 -0
- package/dist/indexer/index.js +2 -0
- package/dist/indexer/index.js.map +1 -0
- package/dist/mcp/index.d.ts +2 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +2 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +254 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +636 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/service/index.d.ts +2 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/service/index.js +2 -0
- package/dist/service/index.js.map +1 -0
- package/dist/service/memory-service.d.ts +320 -0
- package/dist/service/memory-service.d.ts.map +1 -0
- package/dist/service/memory-service.js +1511 -0
- package/dist/service/memory-service.js.map +1 -0
- package/dist/setup/index.d.ts +6 -0
- package/dist/setup/index.d.ts.map +1 -0
- package/dist/setup/index.js +6 -0
- package/dist/setup/index.js.map +1 -0
- package/dist/setup/json-target.d.ts +30 -0
- package/dist/setup/json-target.d.ts.map +1 -0
- package/dist/setup/json-target.js +263 -0
- package/dist/setup/json-target.js.map +1 -0
- package/dist/setup/portable.d.ts +56 -0
- package/dist/setup/portable.d.ts.map +1 -0
- package/dist/setup/portable.js +365 -0
- package/dist/setup/portable.js.map +1 -0
- package/dist/setup/registry.d.ts +54 -0
- package/dist/setup/registry.d.ts.map +1 -0
- package/dist/setup/registry.js +225 -0
- package/dist/setup/registry.js.map +1 -0
- package/dist/setup/rules-target.d.ts +31 -0
- package/dist/setup/rules-target.d.ts.map +1 -0
- package/dist/setup/rules-target.js +270 -0
- package/dist/setup/rules-target.js.map +1 -0
- package/dist/setup/toml-target.d.ts +62 -0
- package/dist/setup/toml-target.d.ts.map +1 -0
- package/dist/setup/toml-target.js +869 -0
- package/dist/setup/toml-target.js.map +1 -0
- package/dist/util/path-safety.d.ts +94 -0
- package/dist/util/path-safety.d.ts.map +1 -0
- package/dist/util/path-safety.js +162 -0
- package/dist/util/path-safety.js.map +1 -0
- package/dist/util/text.d.ts +9 -0
- package/dist/util/text.d.ts.map +1 -0
- package/dist/util/text.js +19 -0
- package/dist/util/text.js.map +1 -0
- package/package.json +87 -4
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import { getPortableStatus, setupPortable, } from "../setup/portable.js";
|
|
5
|
+
import { getJsonTargetStatus, setupJsonTarget, } from "../setup/json-target.js";
|
|
6
|
+
import { getTomlTargetStatus, setupTomlTarget, } from "../setup/toml-target.js";
|
|
7
|
+
import { AGENT_IDS, AGENT_REGISTRY, agentExecutable, parseAgentSelection, resolveMcpPaths, resolveRulesPath, } from "../setup/registry.js";
|
|
8
|
+
import { getRulesTargetStatus, setupRulesTarget, } from "../setup/rules-target.js";
|
|
9
|
+
import { sanitizeTerminalText } from "../util/text.js";
|
|
10
|
+
export function printSetupUsage() {
|
|
11
|
+
console.log(`muninn setup — Install and diagnose Muninn agent integrations
|
|
12
|
+
|
|
13
|
+
Usage:
|
|
14
|
+
muninn setup [--portable] [--no-rules] [--force] [--dry-run] [--status] [--list]
|
|
15
|
+
[--agent <id|all|id,id>] [--project <path>] [--home <path>]
|
|
16
|
+
|
|
17
|
+
Options:
|
|
18
|
+
--list List the agent catalog without modifying anything
|
|
19
|
+
--agent <ids> Configure one ID, all, or a comma-separated list
|
|
20
|
+
--project <path> Project root used by project-level agent configs
|
|
21
|
+
--portable Install the portable MCP configuration (default)
|
|
22
|
+
--no-portable Skip the portable configuration (requires --agent)
|
|
23
|
+
--no-rules Skip installing marked usage rules for selected agents
|
|
24
|
+
--home <path> Home directory to configure (default: OS home directory)
|
|
25
|
+
--force Replace a different existing Muninn entry
|
|
26
|
+
--dry-run Report intended changes without writing
|
|
27
|
+
--status Report configuration state without writing
|
|
28
|
+
`);
|
|
29
|
+
}
|
|
30
|
+
function setupError(message) {
|
|
31
|
+
console.error(chalk.red(`Error: ${sanitizeTerminalText(message)}`));
|
|
32
|
+
process.exitCode = 1;
|
|
33
|
+
}
|
|
34
|
+
function setupWarning(message) {
|
|
35
|
+
console.error(chalk.yellow(`Warning: ${sanitizeTerminalText(message)}`));
|
|
36
|
+
}
|
|
37
|
+
function isEnabled(value) {
|
|
38
|
+
return value === true || value === "true";
|
|
39
|
+
}
|
|
40
|
+
function isExecutableAvailable(binary, envPath) {
|
|
41
|
+
if (envPath === undefined || envPath.length === 0)
|
|
42
|
+
return false;
|
|
43
|
+
const extensions = process.platform === "win32"
|
|
44
|
+
? (process.env.PATHEXT ?? ".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean)
|
|
45
|
+
: [""];
|
|
46
|
+
for (const directory of envPath.split(path.delimiter)) {
|
|
47
|
+
if (directory.length === 0)
|
|
48
|
+
continue;
|
|
49
|
+
for (const extension of extensions) {
|
|
50
|
+
const suffix = process.platform === "win32" &&
|
|
51
|
+
!binary.toLowerCase().endsWith(extension.toLowerCase())
|
|
52
|
+
? extension
|
|
53
|
+
: "";
|
|
54
|
+
const candidate = path.join(directory, `${binary}${suffix}`);
|
|
55
|
+
try {
|
|
56
|
+
const stat = fs.statSync(candidate);
|
|
57
|
+
if (!stat.isFile())
|
|
58
|
+
continue;
|
|
59
|
+
fs.accessSync(candidate, fs.constants.X_OK);
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// Try the next directory or extension.
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
function warnMissingBinaries(targets) {
|
|
70
|
+
for (const target of targets) {
|
|
71
|
+
const binary = agentExecutable(target.id);
|
|
72
|
+
// Targets without a meaningful local executable (IDE/web agents) are
|
|
73
|
+
// explicitly marked as not applicable and never warn.
|
|
74
|
+
if (binary === null)
|
|
75
|
+
continue;
|
|
76
|
+
if (!isExecutableAvailable(binary, process.env.PATH)) {
|
|
77
|
+
setupWarning(`${target.label} (${target.id}) binary "${binary}" is not installed in PATH`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function resolveRulesGroups(ids, projectPath) {
|
|
82
|
+
const groups = new Map();
|
|
83
|
+
for (const id of ids) {
|
|
84
|
+
const rulesPath = resolveRulesPath(id, { projectPath });
|
|
85
|
+
const key = path.resolve(rulesPath);
|
|
86
|
+
const existing = groups.get(key);
|
|
87
|
+
if (existing === undefined) {
|
|
88
|
+
groups.set(key, { path: key, agents: [id] });
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
existing.agents.push(id);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return [...groups.values()];
|
|
95
|
+
}
|
|
96
|
+
function printRulesStatus(status) {
|
|
97
|
+
console.log(`Muninn rules (${status.agents.join(", ")})`);
|
|
98
|
+
console.log(` Path: ${status.path}`);
|
|
99
|
+
console.log(` State: ${status.state}`);
|
|
100
|
+
console.log(` Changed: false`);
|
|
101
|
+
if (status.error) {
|
|
102
|
+
console.error(chalk.red(`Error: ${sanitizeTerminalText(status.error)}`));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function printRulesReport(report) {
|
|
106
|
+
console.log(`Muninn rules (${report.agents.join(", ")})`);
|
|
107
|
+
console.log(` Path: ${report.path}`);
|
|
108
|
+
console.log(` State: ${report.state}`);
|
|
109
|
+
console.log(` Outcome: ${report.outcome}`);
|
|
110
|
+
console.log(` Changed: ${report.changed}`);
|
|
111
|
+
if (report.dryRun) {
|
|
112
|
+
console.log(" Dry run: no files were written");
|
|
113
|
+
}
|
|
114
|
+
if (report.error) {
|
|
115
|
+
console.error(chalk.red(`Error: ${sanitizeTerminalText(report.error)}`));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function printStatus(status) {
|
|
119
|
+
console.log("Portable MCP configuration");
|
|
120
|
+
console.log(` Path: ${status.path}`);
|
|
121
|
+
console.log(` State: ${status.state}`);
|
|
122
|
+
if (status.legacyPresent) {
|
|
123
|
+
console.log(` Legacy: ${status.legacyPath} (not modified)`);
|
|
124
|
+
}
|
|
125
|
+
console.log(` Changed: false`);
|
|
126
|
+
if (status.error) {
|
|
127
|
+
console.error(chalk.red(`Error: ${sanitizeTerminalText(status.error)}`));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function printReport(report) {
|
|
131
|
+
console.log("Portable MCP configuration");
|
|
132
|
+
console.log(` Path: ${report.path}`);
|
|
133
|
+
console.log(` State: ${report.state}`);
|
|
134
|
+
console.log(` Outcome: ${report.outcome}`);
|
|
135
|
+
console.log(` Changed: ${report.changed}`);
|
|
136
|
+
if (report.legacyPresent) {
|
|
137
|
+
console.log(` Legacy: ${report.legacyPath} (not modified)`);
|
|
138
|
+
}
|
|
139
|
+
if (report.dryRun) {
|
|
140
|
+
console.log(" Dry run: no files were written");
|
|
141
|
+
}
|
|
142
|
+
if (report.error) {
|
|
143
|
+
console.error(chalk.red(`Error: ${sanitizeTerminalText(report.error)}`));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
function printTomlStatus(status) {
|
|
147
|
+
console.log(`${status.target.label} (${status.target.id})`);
|
|
148
|
+
console.log(` Path: ${status.path}`);
|
|
149
|
+
console.log(` Format: ${status.target.format}`);
|
|
150
|
+
console.log(` State: ${status.state}`);
|
|
151
|
+
console.log(` Changed: false`);
|
|
152
|
+
if (status.error) {
|
|
153
|
+
console.error(chalk.red(`Error: ${sanitizeTerminalText(status.error)}`));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function printTomlReport(report) {
|
|
157
|
+
console.log(`${report.target.label} (${report.target.id})`);
|
|
158
|
+
console.log(` Path: ${report.path}`);
|
|
159
|
+
console.log(` Format: ${report.target.format}`);
|
|
160
|
+
console.log(` State: ${report.state}`);
|
|
161
|
+
console.log(` Outcome: ${report.outcome}`);
|
|
162
|
+
console.log(` Changed: ${report.changed}`);
|
|
163
|
+
if (report.dryRun) {
|
|
164
|
+
console.log(" Dry run: no files were written");
|
|
165
|
+
}
|
|
166
|
+
if (report.error) {
|
|
167
|
+
console.error(chalk.red(`Error: ${sanitizeTerminalText(report.error)}`));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
function printJsonStatus(status) {
|
|
171
|
+
console.log(`${status.target.label} (${status.target.id})`);
|
|
172
|
+
console.log(` Path: ${status.path}`);
|
|
173
|
+
console.log(` Format: ${status.target.format}`);
|
|
174
|
+
console.log(` State: ${status.state}`);
|
|
175
|
+
console.log(` Changed: false`);
|
|
176
|
+
if (status.error) {
|
|
177
|
+
console.error(chalk.red(`Error: ${sanitizeTerminalText(status.error)}`));
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
function printJsonReport(report) {
|
|
181
|
+
console.log(`${report.target.label} (${report.target.id})`);
|
|
182
|
+
console.log(` Path: ${report.path}`);
|
|
183
|
+
console.log(` Format: ${report.target.format}`);
|
|
184
|
+
console.log(` State: ${report.state}`);
|
|
185
|
+
console.log(` Outcome: ${report.outcome}`);
|
|
186
|
+
console.log(` Changed: ${report.changed}`);
|
|
187
|
+
if (report.dryRun) {
|
|
188
|
+
console.log(" Dry run: no files were written");
|
|
189
|
+
}
|
|
190
|
+
if (report.warning) {
|
|
191
|
+
setupWarning(report.warning);
|
|
192
|
+
}
|
|
193
|
+
if (report.error) {
|
|
194
|
+
console.error(chalk.red(`Error: ${sanitizeTerminalText(report.error)}`));
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
function printCatalog(projectPath, homeDir) {
|
|
198
|
+
console.log("Muninn agent setup catalog");
|
|
199
|
+
for (const id of AGENT_IDS) {
|
|
200
|
+
const target = AGENT_REGISTRY[id];
|
|
201
|
+
let mcps;
|
|
202
|
+
try {
|
|
203
|
+
mcps = resolveMcpPaths(target, { projectPath, homeDir });
|
|
204
|
+
}
|
|
205
|
+
catch (err) {
|
|
206
|
+
mcps = [`<error: ${err.message}>`];
|
|
207
|
+
}
|
|
208
|
+
console.log(`${target.id} — ${target.label}`);
|
|
209
|
+
console.log(` Format: ${target.format}`);
|
|
210
|
+
console.log(` MCP: ${mcps.join(", ")}`);
|
|
211
|
+
console.log(` Rules: ${resolveRulesPath(target, { projectPath })}`);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
function selectedTargets(selection) {
|
|
215
|
+
return (selection ?? AGENT_IDS).map((id) => AGENT_REGISTRY[id]);
|
|
216
|
+
}
|
|
217
|
+
export async function handleSetupCommand(args) {
|
|
218
|
+
if (args["--help"] || args["-h"]) {
|
|
219
|
+
printSetupUsage();
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
const homeValue = args["--home"];
|
|
223
|
+
if (homeValue !== undefined && typeof homeValue !== "string") {
|
|
224
|
+
setupError("--home requires a path value.");
|
|
225
|
+
printSetupUsage();
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
const projectValue = args["--project"];
|
|
229
|
+
if (projectValue !== undefined && typeof projectValue !== "string") {
|
|
230
|
+
setupError("--project requires a path value.");
|
|
231
|
+
printSetupUsage();
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
const list = isEnabled(args["--list"]);
|
|
235
|
+
const noPortable = isEnabled(args["--no-portable"]);
|
|
236
|
+
const noRules = isEnabled(args["--no-rules"]);
|
|
237
|
+
const status = isEnabled(args["--status"]);
|
|
238
|
+
const dryRun = isEnabled(args["--dry-run"]);
|
|
239
|
+
const force = isEnabled(args["--force"]);
|
|
240
|
+
const agentValue = args["--agent"];
|
|
241
|
+
const hasAgent = agentValue !== undefined && agentValue !== false;
|
|
242
|
+
if (list && (status || dryRun || force || noPortable || hasAgent)) {
|
|
243
|
+
setupError("--list cannot be combined with --status, --dry-run, --force, --agent, or --no-portable.");
|
|
244
|
+
printSetupUsage();
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
if (hasAgent && typeof agentValue !== "string") {
|
|
248
|
+
setupError("--agent requires an agent ID, `all`, or a comma-separated list.");
|
|
249
|
+
printSetupUsage();
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
let selection;
|
|
253
|
+
if (typeof agentValue === "string") {
|
|
254
|
+
const parsed = parseAgentSelection(agentValue);
|
|
255
|
+
if (!parsed.ok) {
|
|
256
|
+
setupError(`Unknown agent ID${parsed.unknown.length === 1 ? "" : "s"}: ${parsed.unknown.join(", ")}. ` +
|
|
257
|
+
`Valid IDs: ${parsed.valid.join(", ")}, all.`);
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
selection = parsed.ids;
|
|
261
|
+
}
|
|
262
|
+
if (noPortable && selection === undefined) {
|
|
263
|
+
setupError(noRules
|
|
264
|
+
? "--no-portable --no-rules requires --agent; there is nothing to do."
|
|
265
|
+
: "--no-portable requires --agent; there is nothing to do.");
|
|
266
|
+
printSetupUsage();
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
const home = typeof homeValue === "string" ? path.resolve(homeValue) : undefined;
|
|
270
|
+
const projectPath = typeof projectValue === "string" ? path.resolve(projectValue) : path.resolve(process.cwd());
|
|
271
|
+
const options = { homeDir: home, force, dryRun };
|
|
272
|
+
if (list) {
|
|
273
|
+
printCatalog(typeof projectValue === "string" ? projectPath : undefined, home);
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
if (status) {
|
|
277
|
+
let fatal = false;
|
|
278
|
+
const targets = selectedTargets(selection);
|
|
279
|
+
if (selection !== undefined)
|
|
280
|
+
warnMissingBinaries(targets);
|
|
281
|
+
for (const target of targets) {
|
|
282
|
+
let paths;
|
|
283
|
+
try {
|
|
284
|
+
paths = resolveMcpPaths(target, { projectPath, homeDir: home });
|
|
285
|
+
}
|
|
286
|
+
catch (err) {
|
|
287
|
+
fatal = true;
|
|
288
|
+
setupError(err.message);
|
|
289
|
+
continue;
|
|
290
|
+
}
|
|
291
|
+
for (const configPath of paths) {
|
|
292
|
+
if (target.format === "toml") {
|
|
293
|
+
const result = getTomlTargetStatus({ target, path: configPath, projectPath });
|
|
294
|
+
printTomlStatus(result);
|
|
295
|
+
if (result.error !== undefined || result.errors.length > 0)
|
|
296
|
+
fatal = true;
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
const result = getJsonTargetStatus({ target, path: configPath, projectPath });
|
|
300
|
+
printJsonStatus(result);
|
|
301
|
+
if (result.state === "malformed")
|
|
302
|
+
fatal = true;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
if (selection !== undefined && !noRules) {
|
|
307
|
+
for (const group of resolveRulesGroups(selection, projectPath)) {
|
|
308
|
+
const result = getRulesTargetStatus({
|
|
309
|
+
path: group.path,
|
|
310
|
+
agents: group.agents,
|
|
311
|
+
projectPath,
|
|
312
|
+
});
|
|
313
|
+
printRulesStatus(result);
|
|
314
|
+
if (result.state === "malformed" || result.errors.length > 0)
|
|
315
|
+
fatal = true;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
if (!noPortable) {
|
|
319
|
+
const result = getPortableStatus(options);
|
|
320
|
+
printStatus(result);
|
|
321
|
+
if (result.error !== undefined || result.errors.length > 0)
|
|
322
|
+
fatal = true;
|
|
323
|
+
}
|
|
324
|
+
if (fatal)
|
|
325
|
+
process.exitCode = 1;
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
const includePortable = selection === undefined || !noPortable;
|
|
329
|
+
if (selection !== undefined) {
|
|
330
|
+
const targets = selectedTargets(selection);
|
|
331
|
+
warnMissingBinaries(targets);
|
|
332
|
+
for (const target of targets) {
|
|
333
|
+
let paths;
|
|
334
|
+
try {
|
|
335
|
+
paths = resolveMcpPaths(target, { projectPath, homeDir: home });
|
|
336
|
+
}
|
|
337
|
+
catch (err) {
|
|
338
|
+
setupError(err.message);
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
341
|
+
for (const configPath of paths) {
|
|
342
|
+
if (target.format === "toml") {
|
|
343
|
+
const report = setupTomlTarget({
|
|
344
|
+
target,
|
|
345
|
+
path: configPath,
|
|
346
|
+
projectPath,
|
|
347
|
+
force,
|
|
348
|
+
dryRun,
|
|
349
|
+
});
|
|
350
|
+
printTomlReport(report);
|
|
351
|
+
if (report.outcome === "failed") {
|
|
352
|
+
process.exitCode = 1;
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
const report = setupJsonTarget({
|
|
358
|
+
target,
|
|
359
|
+
path: configPath,
|
|
360
|
+
projectPath,
|
|
361
|
+
force,
|
|
362
|
+
dryRun,
|
|
363
|
+
});
|
|
364
|
+
printJsonReport(report);
|
|
365
|
+
if (report.outcome === "failed") {
|
|
366
|
+
process.exitCode = 1;
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
if (!noRules) {
|
|
373
|
+
for (const group of resolveRulesGroups(selection, projectPath)) {
|
|
374
|
+
const report = setupRulesTarget({
|
|
375
|
+
path: group.path,
|
|
376
|
+
agents: group.agents,
|
|
377
|
+
projectPath,
|
|
378
|
+
force,
|
|
379
|
+
dryRun,
|
|
380
|
+
});
|
|
381
|
+
printRulesReport(report);
|
|
382
|
+
if (report.outcome === "failed") {
|
|
383
|
+
process.exitCode = 1;
|
|
384
|
+
return;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
if (!includePortable)
|
|
390
|
+
return;
|
|
391
|
+
const report = setupPortable(options);
|
|
392
|
+
printReport(report);
|
|
393
|
+
if (report.outcome === "failed") {
|
|
394
|
+
process.exitCode = 1;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,aAAa,GAGd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,eAAe,GAGhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mBAAmB,EACnB,eAAe,GAGhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,SAAS,EACT,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,gBAAgB,GAGjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GAGjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;CAiBb,CAAC,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,SAAS,CAAC,KAAmC;IACpD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC;AAC5C,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc,EAAE,OAA2B;IACxE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,MAAM,UAAU,GACd,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC1B,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3E,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACtD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACrC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GACV,OAAO,CAAC,QAAQ,KAAK,OAAO;gBAC5B,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;gBACrD,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAAE,SAAS;gBAC7B,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC5C,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,uCAAuC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAsB;IACjD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1C,qEAAqE;QACrE,sDAAsD;QACtD,IAAI,MAAM,KAAK,IAAI;YAAE,SAAS;QAC9B,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,YAAY,CAAC,GAAG,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE,aAAa,MAAM,4BAA4B,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;AACH,CAAC;AAOD,SAAS,kBAAkB,CACzB,GAAc,EACd,WAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,gBAAgB,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAyB;IACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAyB;IACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAAsB;IACzC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,UAAU,iBAAiB,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAAsB;IACzC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,UAAU,iBAAiB,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAwB;IAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAwB;IAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAwB;IAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAwB;IAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,WAA+B,EAAE,OAA2B;IAChF,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,IAAc,CAAC;QACnB,IAAI,CAAC;YACH,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,CAAC,WAAY,GAAa,CAAC,OAAO,GAAG,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,cAAc,gBAAgB,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,SAAgC;IACvD,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAkD;IAElD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,eAAe,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC7D,UAAU,CAAC,+BAA+B,CAAC,CAAC;QAC5C,eAAe,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,IAAI,YAAY,KAAK,SAAS,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACnE,UAAU,CAAC,kCAAkC,CAAC,CAAC;QAC/C,eAAe,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,KAAK,CAAC;IAElE,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,KAAK,IAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,CAAC;QAClE,UAAU,CAAC,yFAAyF,CAAC,CAAC;QACtG,eAAe,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC/C,UAAU,CAAC,iEAAiE,CAAC,CAAC;QAC9E,eAAe,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,IAAI,SAAgC,CAAC;IACrC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,UAAU,CACR,mBAAmB,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACzF,cAAc,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAChD,CAAC;YACF,OAAO;QACT,CAAC;QACD,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,UAAU,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1C,UAAU,CACR,OAAO;YACL,CAAC,CAAC,oEAAoE;YACtE,CAAC,CAAC,yDAAyD,CAC9D,CAAC;QACF,eAAe,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,MAAM,WAAW,GACf,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9F,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAEjD,IAAI,IAAI,EAAE,CAAC;QACT,YAAY,CAAC,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,SAAS;YAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC1D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,KAAe,CAAC;YACpB,IAAI,CAAC;gBACH,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,KAAK,GAAG,IAAI,CAAC;gBACb,UAAU,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;gBACnC,SAAS;YACX,CAAC;YACD,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;gBAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;oBAC9E,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;wBAAE,KAAK,GAAG,IAAI,CAAC;gBAC3E,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;oBAC9E,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxB,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW;wBAAE,KAAK,GAAG,IAAI,CAAC;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,KAAK,MAAM,KAAK,IAAI,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC/D,MAAM,MAAM,GAAG,oBAAoB,CAAC;oBAClC,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,WAAW;iBACZ,CAAC,CAAC;gBACH,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACzB,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,GAAG,IAAI,CAAC;YAC7E,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC1C,WAAW,CAAC,MAAM,CAAC,CAAC;YACpB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,GAAG,IAAI,CAAC;QAC3E,CAAC;QAED,IAAI,KAAK;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,eAAe,GAAG,SAAS,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC;IAE/D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3C,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,KAAe,CAAC;YACpB,IAAI,CAAC;gBACH,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,UAAU,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;gBAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,eAAe,CAAC;wBAC7B,MAAM;wBACN,IAAI,EAAE,UAAU;wBAChB,WAAW;wBACX,KAAK;wBACL,MAAM;qBACP,CAAC,CAAC;oBACH,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxB,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAChC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;wBACrB,OAAO;oBACT,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,eAAe,CAAC;wBAC7B,MAAM;wBACN,IAAI,EAAE,UAAU;wBAChB,WAAW;wBACX,KAAK;wBACL,MAAM;qBACP,CAAC,CAAC;oBACH,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxB,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAChC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;wBACrB,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,KAAK,MAAM,KAAK,IAAI,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC/D,MAAM,MAAM,GAAG,gBAAgB,CAAC;oBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,WAAW;oBACX,KAAK;oBACL,MAAM;iBACP,CAAC,CAAC;gBACH,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACzB,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAChC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;oBACrB,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,eAAe;QAAE,OAAO;IAE7B,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpB,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
export type DiagnosticCategoryName = "error" | "warning" | "message" | "suggestion";
|
|
3
|
+
export interface FormattedDiagnostic {
|
|
4
|
+
filePath: string;
|
|
5
|
+
line: number;
|
|
6
|
+
character: number;
|
|
7
|
+
code: string;
|
|
8
|
+
category: DiagnosticCategoryName;
|
|
9
|
+
message: string;
|
|
10
|
+
snippet?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ContractVerificationResult {
|
|
13
|
+
valid: boolean;
|
|
14
|
+
errorsCount: number;
|
|
15
|
+
diagnostics: FormattedDiagnostic[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Safe default TypeScript compiler options used when tsconfig.json is absent or invalid.
|
|
19
|
+
*/
|
|
20
|
+
export declare const DEFAULT_COMPILER_OPTIONS: ts.CompilerOptions;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a formatted visual snippet of the line of code containing the error,
|
|
23
|
+
* with a caret pointer underlining the exact error span.
|
|
24
|
+
* Clamps input positions, line lengths, and span lengths to bounded limits (SEC-006, REV-008).
|
|
25
|
+
*/
|
|
26
|
+
export declare function createVisualSnippet(sourceFile: ts.SourceFile, start: number, length?: number): string;
|
|
27
|
+
/**
|
|
28
|
+
* Formats a raw TypeScript compiler diagnostic into a structured FormattedDiagnostic.
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatDiagnostic(diagnostic: ts.Diagnostic, projectRoot: string): FormattedDiagnostic;
|
|
31
|
+
/**
|
|
32
|
+
* Loads tsconfig.json strictly from projectRoot without walking up parent directories (REV-005, SEC-007).
|
|
33
|
+
*/
|
|
34
|
+
export declare function loadProjectConfig(projectRoot: string): {
|
|
35
|
+
configPath: string | undefined;
|
|
36
|
+
options: ts.CompilerOptions;
|
|
37
|
+
fileNames: string[];
|
|
38
|
+
errors: ts.Diagnostic[];
|
|
39
|
+
};
|
|
40
|
+
export declare const TS_JS_EXTENSIONS: Set<string>;
|
|
41
|
+
/**
|
|
42
|
+
* Recursively discovers TypeScript/JavaScript source files within a directory.
|
|
43
|
+
*/
|
|
44
|
+
export declare function findSourceFilesInDir(dir: string): string[];
|
|
45
|
+
export type ResolveTargetFilesResult = {
|
|
46
|
+
success: true;
|
|
47
|
+
targetFiles?: string[];
|
|
48
|
+
} | {
|
|
49
|
+
success: false;
|
|
50
|
+
failure: ContractVerificationResult;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Validates requested file paths against path traversal and file existence (SEC-001, REV-003).
|
|
54
|
+
*/
|
|
55
|
+
export declare function resolveTargetFiles(projectRoot: string, filePaths?: string[]): ResolveTargetFilesResult;
|
|
56
|
+
/**
|
|
57
|
+
* Verifies TypeScript compilation contracts for the given project and files.
|
|
58
|
+
* Returns structured pre-emit diagnostics with line/character locations and visual code snippets.
|
|
59
|
+
*/
|
|
60
|
+
export declare function verifyTypeScriptContracts(projectRoot: string, filePaths?: string[]): ContractVerificationResult;
|
|
61
|
+
/**
|
|
62
|
+
* Formats a ContractVerificationResult into a markdown report suitable for
|
|
63
|
+
* gate evaluation and thinker fix prompts.
|
|
64
|
+
*/
|
|
65
|
+
export declare function formatDiagnosticsReport(result: ContractVerificationResult): string;
|
|
66
|
+
export declare const TypeValidator: {
|
|
67
|
+
check: typeof verifyTypeScriptContracts;
|
|
68
|
+
formatReport: typeof formatDiagnosticsReport;
|
|
69
|
+
DEFAULT_COMPILER_OPTIONS: ts.CompilerOptions;
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/contracts/compiler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,MAAM,sBAAsB,GAC9B,OAAO,GACP,SAAS,GACT,SAAS,GACT,YAAY,CAAC;AAEjB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,sBAAsB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,mBAAmB,EAAE,CAAC;CACpC;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,EAAE,CAAC,eASzC,CAAC;AAkBF;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAU,GACjB,MAAM,CA+BR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,WAAW,EAAE,MAAM,GAClB,mBAAmB,CAwCrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG;IACtD,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC;CACzB,CAuCA;AAED,eAAO,MAAM,gBAAgB,aAS3B,CAAC;AAEH;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAsB1D;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACzC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,0BAA0B,CAAA;CAAE,CAAC;AAE5D;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,wBAAwB,CAyD1B;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,0BAA0B,CAwI5B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,0BAA0B,GACjC,MAAM,CAyBR;AAED,eAAO,MAAM,aAAa;;;;CAIzB,CAAC"}
|