@agent-profile/cli 0.1.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.
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ export type CliIo = {
3
+ stdout: (text: string) => void;
4
+ stderr: (text: string) => void;
5
+ };
6
+ export type CliOptions = {
7
+ cwd?: string;
8
+ io?: Partial<CliIo>;
9
+ };
10
+ export declare function runCli(argv?: string[], options?: CliOptions): Promise<number>;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAmCA,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB,CAAC;AAkDF,wBAAsB,MAAM,CAC1B,IAAI,WAAwB,EAC5B,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CAsBjB"}
package/dist/index.js ADDED
@@ -0,0 +1,648 @@
1
+ #!/usr/bin/env node
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ // Copyright (c) 2026 Agent Profile Compiler contributors
4
+ import { lstat, readFile, realpath } from "node:fs/promises";
5
+ import path from "node:path";
6
+ import { pathToFileURL } from "node:url";
7
+ import { applyWritePlan, compileProfile, createLockfileFile, planWrites, safeOutputPath, sha256Hex, validateLockfileText, } from "@agent-profile/compiler";
8
+ import { parseProfileYaml } from "@agent-profile/core";
9
+ import { analyzeExistingArtifacts, detectStack, } from "@agent-profile/scanner";
10
+ import { runDoctor, } from "@agent-profile/doctor";
11
+ const DEFAULT_IO = {
12
+ stdout: (text) => process.stdout.write(text),
13
+ stderr: (text) => process.stderr.write(text),
14
+ };
15
+ export async function runCli(argv = process.argv.slice(2), options = {}) {
16
+ const io = { ...DEFAULT_IO, ...options.io };
17
+ const cwd = path.resolve(options.cwd ?? process.cwd());
18
+ if (argv.length === 0 || argv[0] === "--help" || argv[0] === "-h") {
19
+ io.stdout(formatHelp());
20
+ return 0;
21
+ }
22
+ const [command, ...rest] = argv;
23
+ switch (command) {
24
+ case "compile":
25
+ return runCompile(rest, cwd, io);
26
+ case "doctor":
27
+ return runDoctorCommand(rest, cwd, io);
28
+ case "init":
29
+ return runInit(rest, cwd, io);
30
+ default:
31
+ io.stderr(`Unknown command: ${command ?? ""}\n\n${formatHelp()}`);
32
+ return 2;
33
+ }
34
+ }
35
+ async function runDoctorCommand(args, cwd, io) {
36
+ const parsed = parseDoctorArgs(args);
37
+ if (!parsed.ok) {
38
+ io.stderr(`${parsed.message}\n\n${formatHelp()}`);
39
+ return 2;
40
+ }
41
+ if (parsed.help) {
42
+ io.stdout(formatHelp());
43
+ return 0;
44
+ }
45
+ const result = await runDoctor({
46
+ rootDir: path.resolve(cwd, parsed.root),
47
+ });
48
+ if (parsed.json) {
49
+ io.stdout(`${JSON.stringify(result, null, 2)}\n`);
50
+ }
51
+ else {
52
+ io.stdout(formatDoctorText(result));
53
+ }
54
+ return result.status === "fail" ? 1 : 0;
55
+ }
56
+ async function runCompile(args, cwd, io) {
57
+ const parsed = parseCompileArgs(args);
58
+ if (!parsed.ok) {
59
+ io.stderr(`${parsed.message}\n\n${formatHelp()}`);
60
+ return 2;
61
+ }
62
+ if (parsed.help) {
63
+ io.stdout(formatHelp());
64
+ return 0;
65
+ }
66
+ const rootDir = path.resolve(cwd, parsed.root);
67
+ const safeProfilePath = toSafeCliPath(parsed.profile);
68
+ if (!safeProfilePath.ok) {
69
+ io.stderr(`${safeProfilePath.message}\n`);
70
+ return 1;
71
+ }
72
+ let profileBytes;
73
+ try {
74
+ profileBytes = await readOptionalBytes(rootDir, safeProfilePath.path);
75
+ }
76
+ catch (error) {
77
+ if (!isUnsafePathError(error)) {
78
+ io.stderr(formatSimpleError(safeProfilePath.path, "readable profile file", "read error", `${safeProfilePath.path} could not be read.`));
79
+ return 1;
80
+ }
81
+ io.stderr(formatSimpleError(safeProfilePath.path, "safe repository-local readable path", "unsafe path", `${safeProfilePath.path} could not be read safely under --root.`));
82
+ return 1;
83
+ }
84
+ if (!profileBytes) {
85
+ io.stderr(formatSimpleError(safeProfilePath.path, "readable profile file", "missing", `${safeProfilePath.path} was not found.`));
86
+ return 1;
87
+ }
88
+ const profileResult = parseProfileYaml(Buffer.from(profileBytes).toString("utf8"), {
89
+ sourcePath: safeProfilePath.path,
90
+ });
91
+ if (!profileResult.ok) {
92
+ io.stderr(formatValidationIssues(profileResult.issues));
93
+ return 1;
94
+ }
95
+ const compileResult = compileProfile({
96
+ profile: profileResult.profile,
97
+ targets: parsed.targets.length > 0
98
+ ? parsed.targets
99
+ : undefined,
100
+ });
101
+ if (!compileResult.ok) {
102
+ io.stderr(formatCompileIssues(compileResult.issues));
103
+ return 1;
104
+ }
105
+ const lockfile = createLockfileFile({
106
+ profilePath: safeProfilePath.path,
107
+ profileBytes,
108
+ templates: compileResult.templates,
109
+ files: compileResult.files,
110
+ });
111
+ const writes = toPlannedWrites([...compileResult.files, lockfile]);
112
+ if (parsed.write && !parsed.force) {
113
+ let protectedPaths;
114
+ try {
115
+ protectedPaths = await getProtectedGeneratedPaths(rootDir, compileResult.files);
116
+ }
117
+ catch {
118
+ io.stderr(formatSimpleError("generated outputs", "safe repository-local readable paths", "unsafe path", "Existing generated output paths could not be safely read under --root."));
119
+ return 1;
120
+ }
121
+ if (protectedPaths.length > 0) {
122
+ io.stderr(`Refusing to replace existing generated paths without --force:\n${protectedPaths
123
+ .map((item) => `- ${item.path} (${item.reason})`)
124
+ .join("\n")}\n`);
125
+ return 3;
126
+ }
127
+ }
128
+ const plan = await createOrApplyWritePlan(rootDir, writes, parsed.write, io);
129
+ if (!plan) {
130
+ return 1;
131
+ }
132
+ io.stdout(formatWritePlan("Agent Profile Compile", parsed.write, plan));
133
+ return 0;
134
+ }
135
+ async function runInit(args, cwd, io) {
136
+ const parsed = parseInitArgs(args);
137
+ if (!parsed.ok) {
138
+ io.stderr(`${parsed.message}\n\n${formatHelp()}`);
139
+ return 2;
140
+ }
141
+ if (parsed.help) {
142
+ io.stdout(formatHelp());
143
+ return 0;
144
+ }
145
+ const rootDir = path.resolve(cwd, parsed.root);
146
+ const safeProfilePath = toSafeCliPath(parsed.profile);
147
+ if (!safeProfilePath.ok) {
148
+ io.stderr(`${safeProfilePath.message}\n`);
149
+ return 1;
150
+ }
151
+ const stackResult = await detectStack(rootDir);
152
+ const importResult = parsed.importExisting
153
+ ? await analyzeExistingArtifacts(rootDir)
154
+ : undefined;
155
+ if (stackResult.stack.languages.length === 0) {
156
+ io.stderr("No supported language metadata was detected. Add stack metadata manually or run init in a project with detectable metadata.\n");
157
+ return 1;
158
+ }
159
+ const profileText = renderInitialProfile({
160
+ rootDir,
161
+ stack: stackResult.stack,
162
+ clients: importResult?.clients ?? {
163
+ tabnine: false,
164
+ codex: false,
165
+ claude: false,
166
+ },
167
+ });
168
+ const validation = parseProfileYaml(profileText, {
169
+ sourcePath: safeProfilePath.path,
170
+ });
171
+ if (!validation.ok) {
172
+ io.stderr(formatValidationIssues(validation.issues));
173
+ return 1;
174
+ }
175
+ const writes = [
176
+ {
177
+ path: safeProfilePath.path,
178
+ bytes: profileText,
179
+ },
180
+ ];
181
+ const plan = parsed.write
182
+ ? await createOrApplyWritePlan(rootDir, writes, true, io)
183
+ : await createOrApplyWritePlan(rootDir, writes, false, io);
184
+ if (!plan) {
185
+ return 1;
186
+ }
187
+ const suggestions = await getGitignoreSuggestions(rootDir);
188
+ io.stdout(formatInitText({
189
+ plan,
190
+ wrote: parsed.write,
191
+ stackWarnings: stackResult.warnings,
192
+ importFindings: importResult?.findings ?? [],
193
+ gitignoreSuggestions: suggestions,
194
+ }));
195
+ return 0;
196
+ }
197
+ function parseDoctorArgs(args) {
198
+ let root = ".";
199
+ let json = false;
200
+ let help = false;
201
+ for (let index = 0; index < args.length; index += 1) {
202
+ const arg = args[index];
203
+ switch (arg) {
204
+ case "--root": {
205
+ const value = args[index + 1];
206
+ if (!value || value.startsWith("--")) {
207
+ return { ok: false, message: "--root requires a path." };
208
+ }
209
+ root = value;
210
+ index += 1;
211
+ break;
212
+ }
213
+ case "--json":
214
+ json = true;
215
+ break;
216
+ case "--help":
217
+ case "-h":
218
+ help = true;
219
+ break;
220
+ default:
221
+ return { ok: false, message: `Unknown option: ${arg ?? ""}` };
222
+ }
223
+ }
224
+ return { ok: true, root, json, help };
225
+ }
226
+ function parseCompileArgs(args) {
227
+ let root = ".";
228
+ let profile = "ai-profile.yaml";
229
+ const targets = [];
230
+ let dryRun = false;
231
+ let write = false;
232
+ let force = false;
233
+ let help = false;
234
+ for (let index = 0; index < args.length; index += 1) {
235
+ const arg = args[index];
236
+ switch (arg) {
237
+ case "--root": {
238
+ const value = args[index + 1];
239
+ if (!value || value.startsWith("--")) {
240
+ return { ok: false, message: "--root requires a path." };
241
+ }
242
+ root = value;
243
+ index += 1;
244
+ break;
245
+ }
246
+ case "--profile": {
247
+ const value = args[index + 1];
248
+ if (!value || value.startsWith("--")) {
249
+ return { ok: false, message: "--profile requires a path." };
250
+ }
251
+ profile = value;
252
+ index += 1;
253
+ break;
254
+ }
255
+ case "--target": {
256
+ const value = args[index + 1];
257
+ if (!value || value.startsWith("--")) {
258
+ return { ok: false, message: "--target requires a target id." };
259
+ }
260
+ targets.push(value);
261
+ index += 1;
262
+ break;
263
+ }
264
+ case "--dry-run":
265
+ dryRun = true;
266
+ break;
267
+ case "--write":
268
+ write = true;
269
+ break;
270
+ case "--force":
271
+ force = true;
272
+ break;
273
+ case "--help":
274
+ case "-h":
275
+ help = true;
276
+ break;
277
+ default:
278
+ return { ok: false, message: `Unknown option: ${arg ?? ""}` };
279
+ }
280
+ }
281
+ if (dryRun && write) {
282
+ return {
283
+ ok: false,
284
+ message: "--dry-run and --write cannot be used together.",
285
+ };
286
+ }
287
+ return { ok: true, root, profile, targets, dryRun, write, force, help };
288
+ }
289
+ function parseInitArgs(args) {
290
+ let root = ".";
291
+ let profile = "ai-profile.yaml";
292
+ let dryRun = false;
293
+ let write = false;
294
+ let importExisting = false;
295
+ let help = false;
296
+ for (let index = 0; index < args.length; index += 1) {
297
+ const arg = args[index];
298
+ switch (arg) {
299
+ case "--root": {
300
+ const value = args[index + 1];
301
+ if (!value || value.startsWith("--")) {
302
+ return { ok: false, message: "--root requires a path." };
303
+ }
304
+ root = value;
305
+ index += 1;
306
+ break;
307
+ }
308
+ case "--profile": {
309
+ const value = args[index + 1];
310
+ if (!value || value.startsWith("--")) {
311
+ return { ok: false, message: "--profile requires a path." };
312
+ }
313
+ profile = value;
314
+ index += 1;
315
+ break;
316
+ }
317
+ case "--dry-run":
318
+ dryRun = true;
319
+ break;
320
+ case "--write":
321
+ write = true;
322
+ break;
323
+ case "--import":
324
+ importExisting = true;
325
+ break;
326
+ case "--help":
327
+ case "-h":
328
+ help = true;
329
+ break;
330
+ default:
331
+ return { ok: false, message: `Unknown option: ${arg ?? ""}` };
332
+ }
333
+ }
334
+ if (dryRun && write) {
335
+ return {
336
+ ok: false,
337
+ message: "--dry-run and --write cannot be used together.",
338
+ };
339
+ }
340
+ return { ok: true, root, profile, dryRun, write, importExisting, help };
341
+ }
342
+ function renderInitialProfile(input) {
343
+ return `version: 1
344
+ profile:
345
+ name: ${slugifyProfileName(path.basename(input.rootDir))}
346
+ description: Local AI-agent setup.
347
+ stack:
348
+ languages:
349
+ ${renderYamlList(input.stack.languages)}
350
+ frameworks:${renderYamlArrayOrInlineEmpty(input.stack.frameworks)}
351
+ packageManagers:${renderYamlArrayOrInlineEmpty(input.stack.packageManagers)}
352
+ testing:${renderYamlArrayOrInlineEmpty(input.stack.testing)}
353
+ clients:
354
+ tabnine:
355
+ enabled: ${String(input.clients.tabnine)}
356
+ codex:
357
+ enabled: ${String(input.clients.codex)}
358
+ claude:
359
+ enabled: ${String(input.clients.claude)}
360
+ safety:
361
+ mode: guarded
362
+ requiresSandbox: false
363
+ workflow:
364
+ sdd: true
365
+ tdd: true
366
+ finalReview: true
367
+ permissions:
368
+ filesystem:
369
+ read: allow
370
+ write: ask
371
+ shell:
372
+ run: ask
373
+ secrets:
374
+ access: deny
375
+ dependencies:
376
+ install: ask
377
+ network:
378
+ external: ask
379
+ production:
380
+ access: deny
381
+ `;
382
+ }
383
+ function renderYamlArrayOrInlineEmpty(values) {
384
+ if (values.length === 0) {
385
+ return " []\n";
386
+ }
387
+ return `\n${renderYamlList(values)}`;
388
+ }
389
+ function renderYamlList(values) {
390
+ return values.map((value) => ` - ${value}`).join("\n") + "\n";
391
+ }
392
+ function slugifyProfileName(value) {
393
+ const slug = value
394
+ .toLowerCase()
395
+ .replace(/[^a-z0-9._-]+/gu, "-")
396
+ .replace(/^[^a-z0-9]+/u, "")
397
+ .replace(/-+/gu, "-");
398
+ return slug === "" ? "default-profile" : slug;
399
+ }
400
+ async function getProtectedGeneratedPaths(rootDir, files) {
401
+ const existingFiles = [];
402
+ for (const file of files) {
403
+ const current = await readOptionalBytes(rootDir, file.path);
404
+ if (current) {
405
+ existingFiles.push({ file, bytes: current });
406
+ }
407
+ }
408
+ if (existingFiles.length === 0) {
409
+ return [];
410
+ }
411
+ const lockfileBytes = await readOptionalBytes(rootDir, "ai-profile.lock");
412
+ if (!lockfileBytes) {
413
+ return existingFiles
414
+ .map((item) => ({
415
+ path: item.file.path,
416
+ reason: "no lockfile",
417
+ }))
418
+ .sort(compareProtectedPaths);
419
+ }
420
+ const lockfileResult = validateLockfileText(Buffer.from(lockfileBytes).toString("utf8"));
421
+ if (!lockfileResult.ok) {
422
+ return existingFiles
423
+ .map((item) => ({
424
+ path: item.file.path,
425
+ reason: "invalid lockfile",
426
+ }))
427
+ .sort(compareProtectedPaths);
428
+ }
429
+ const outputsByPath = new Map(lockfileResult.lockfile.outputs.map((output) => [output.path, output]));
430
+ const protectedPaths = [];
431
+ for (const item of existingFiles) {
432
+ const lockOutput = outputsByPath.get(item.file.path);
433
+ if (!lockOutput) {
434
+ protectedPaths.push({
435
+ path: item.file.path,
436
+ reason: "missing lockfile entry",
437
+ });
438
+ }
439
+ else if (sha256Hex(item.bytes) !== lockOutput.sha256) {
440
+ protectedPaths.push({
441
+ path: item.file.path,
442
+ reason: "hash mismatch",
443
+ });
444
+ }
445
+ }
446
+ return protectedPaths.sort(compareProtectedPaths);
447
+ }
448
+ async function getGitignoreSuggestions(rootDir) {
449
+ let gitignore;
450
+ try {
451
+ gitignore = await readOptionalText(rootDir, ".gitignore");
452
+ }
453
+ catch {
454
+ gitignore = undefined;
455
+ }
456
+ if (gitignore === undefined) {
457
+ return [".env", ".env.*"];
458
+ }
459
+ const lines = gitignore
460
+ .split(/\r?\n/u)
461
+ .map((line) => line.trim())
462
+ .filter((line) => line !== "" && !line.startsWith("#"));
463
+ const suggestions = [];
464
+ if (!lines.some((line) => line === ".env" || line === "/.env")) {
465
+ suggestions.push(".env");
466
+ }
467
+ if (!lines.some((line) => line === ".env.*" ||
468
+ line === "/.env.*" ||
469
+ line === ".env*" ||
470
+ line === "/.env*")) {
471
+ suggestions.push(".env.*");
472
+ }
473
+ return suggestions;
474
+ }
475
+ function toPlannedWrites(files) {
476
+ return files.map((file) => ({
477
+ path: file.path,
478
+ bytes: file.bytes,
479
+ }));
480
+ }
481
+ async function readOptionalBytes(rootDir, relativePath) {
482
+ const safePath = safeOutputPath(relativePath);
483
+ const rootRealPath = await realpath(path.resolve(rootDir));
484
+ const absolutePath = path.resolve(rootRealPath, ...safePath.split("/"));
485
+ try {
486
+ await assertReadPathContained(rootRealPath, absolutePath);
487
+ return await readFile(absolutePath);
488
+ }
489
+ catch (error) {
490
+ if (isNodeError(error) && error.code === "ENOENT") {
491
+ return undefined;
492
+ }
493
+ throw error;
494
+ }
495
+ }
496
+ async function createOrApplyWritePlan(rootDir, writes, write, io) {
497
+ try {
498
+ return write
499
+ ? await applyWritePlan({ rootDir, writes })
500
+ : await planWrites({ rootDir, writes });
501
+ }
502
+ catch {
503
+ io.stderr(formatSimpleError("write-plan", "safe repository-local write paths", "unsafe path", "Planned writes could not be safely resolved under --root."));
504
+ return undefined;
505
+ }
506
+ }
507
+ async function assertReadPathContained(rootRealPath, absolutePath) {
508
+ if (!isContainedBy(rootRealPath, absolutePath)) {
509
+ throw new UnsafePathError("Read path escapes root.");
510
+ }
511
+ await lstat(absolutePath);
512
+ const targetRealPath = await realpath(absolutePath);
513
+ if (!isContainedBy(rootRealPath, targetRealPath)) {
514
+ throw new UnsafePathError("Read path target escapes root.");
515
+ }
516
+ }
517
+ class UnsafePathError extends Error {
518
+ }
519
+ function isUnsafePathError(error) {
520
+ return error instanceof UnsafePathError;
521
+ }
522
+ function compareProtectedPaths(left, right) {
523
+ return (compareText(left.path, right.path) || compareText(left.reason, right.reason));
524
+ }
525
+ function isContainedBy(rootPath, candidatePath) {
526
+ const relative = path.relative(rootPath, candidatePath);
527
+ return (relative === "" ||
528
+ (!relative.startsWith("..") && !path.isAbsolute(relative)));
529
+ }
530
+ async function readOptionalText(rootDir, relativePath) {
531
+ const bytes = await readOptionalBytes(rootDir, relativePath);
532
+ return bytes ? Buffer.from(bytes).toString("utf8") : undefined;
533
+ }
534
+ function toSafeCliPath(value) {
535
+ try {
536
+ return { ok: true, path: safeOutputPath(value) };
537
+ }
538
+ catch {
539
+ return {
540
+ ok: false,
541
+ message: `${value} must be a safe repository-relative path.`,
542
+ };
543
+ }
544
+ }
545
+ function formatHelp() {
546
+ return `Agent Profile Compiler
547
+
548
+ Usage:
549
+ agent-profile compile [--root <path>] [--profile <path>] [--target <id>] [--dry-run|--write] [--force]
550
+ agent-profile doctor [--root <path>] [--json]
551
+ agent-profile init [--root <path>] [--profile <path>] [--import] [--dry-run|--write]
552
+
553
+ Commands:
554
+ compile Preview or write generated agent artifacts.
555
+ doctor Run local profile, lockfile, and permission checks.
556
+ init Create a starting ai-profile.yaml.
557
+ `;
558
+ }
559
+ function formatDoctorText(result) {
560
+ const lines = ["Agent Profile Doctor", `status: ${result.status}`, ""];
561
+ if (result.issues.length === 0) {
562
+ lines.push("No issues found.");
563
+ return `${lines.join("\n")}\n`;
564
+ }
565
+ for (const item of result.issues) {
566
+ lines.push(formatIssue(item), item.guidance, "");
567
+ }
568
+ return `${lines.join("\n").replace(/\n*$/u, "")}\n`;
569
+ }
570
+ function formatIssue(issue) {
571
+ return `[${issue.severity}] ${issue.code} ${issue.path}
572
+ ${issue.message}
573
+ expected: ${issue.expected}
574
+ actual: ${issue.actual}`;
575
+ }
576
+ function formatWritePlan(title, wrote, plan) {
577
+ const lines = [
578
+ title,
579
+ `status: ${wrote ? "written" : "dry-run"}`,
580
+ `create: ${plan.counts.create}`,
581
+ `change: ${plan.counts.change}`,
582
+ `unchanged: ${plan.counts.unchanged}`,
583
+ "",
584
+ ];
585
+ for (const action of plan.actions) {
586
+ lines.push(`[${action.action}] ${action.path} (${action.plannedBytes} bytes)`);
587
+ }
588
+ return `${lines.join("\n").replace(/\n*$/u, "")}\n`;
589
+ }
590
+ function formatInitText(input) {
591
+ const lines = [
592
+ formatWritePlan("Agent Profile Init", input.wrote, input.plan).trimEnd(),
593
+ ];
594
+ if (input.stackWarnings.length > 0) {
595
+ lines.push("", "Stack detection warnings:");
596
+ for (const warning of input.stackWarnings) {
597
+ lines.push(`- ${warning.path}: ${warning.message}`);
598
+ }
599
+ }
600
+ if (input.importFindings.length > 0) {
601
+ lines.push("", "Import findings:");
602
+ for (const finding of input.importFindings) {
603
+ lines.push(`- [${finding.kind}] ${finding.path}: ${finding.message}`);
604
+ }
605
+ }
606
+ if (input.gitignoreSuggestions.length > 0) {
607
+ lines.push("", ".gitignore suggestions:");
608
+ for (const suggestion of input.gitignoreSuggestions) {
609
+ lines.push(`- ${suggestion}`);
610
+ }
611
+ }
612
+ return `${lines.join("\n").replace(/\n*$/u, "")}\n`;
613
+ }
614
+ function formatValidationIssues(issues) {
615
+ return issues
616
+ .map((issue) => formatSimpleError(issue.path, issue.expected, issue.actual, issue.message).trimEnd())
617
+ .join("\n");
618
+ }
619
+ function formatCompileIssues(issues) {
620
+ return `${formatValidationIssues(issues)}\n`;
621
+ }
622
+ function formatSimpleError(pathValue, expected, actual, message) {
623
+ return `${pathValue}
624
+ ${message}
625
+ expected: ${expected}
626
+ actual: ${actual}
627
+ `;
628
+ }
629
+ function compareText(left, right) {
630
+ if (left < right) {
631
+ return -1;
632
+ }
633
+ if (left > right) {
634
+ return 1;
635
+ }
636
+ return 0;
637
+ }
638
+ function isNodeError(error) {
639
+ return error instanceof Error && "code" in error;
640
+ }
641
+ async function main() {
642
+ process.exitCode = await runCli();
643
+ }
644
+ if (process.argv[1] &&
645
+ import.meta.url === pathToFileURL(process.argv[1]).href) {
646
+ await main();
647
+ }
648
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@agent-profile/cli",
3
+ "version": "0.1.0",
4
+ "description": "Command-line interface for Agent Profile Compiler.",
5
+ "license": "Apache-2.0",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "bin": {
10
+ "agent-profile": "./dist/index.js"
11
+ },
12
+ "files": [
13
+ "dist"
14
+ ],
15
+ "scripts": {
16
+ "build": "tsc -p tsconfig.json",
17
+ "check": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit",
18
+ "test": "npm run build --workspace @agent-profile/core --if-present && npm run build --workspace @agent-profile/compiler --if-present && npm run build --workspace @agent-profile/scanner --if-present && npm run build --workspace @agent-profile/doctor --if-present && node --import tsx --test src/*.test.ts",
19
+ "lint": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit"
20
+ },
21
+ "dependencies": {
22
+ "@agent-profile/compiler": "0.1.0",
23
+ "@agent-profile/core": "0.1.0",
24
+ "@agent-profile/scanner": "0.1.0",
25
+ "@agent-profile/doctor": "0.1.0"
26
+ }
27
+ }