@blkc-code/cli 0.1.1 → 0.1.3

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.
Files changed (43) hide show
  1. package/bin/blkc.js +24 -0
  2. package/dist/cli.js +24 -0
  3. package/dist/commands/block.d.ts +12 -1
  4. package/dist/commands/block.d.ts.map +1 -0
  5. package/dist/commands/block.js +180 -268
  6. package/dist/commands/block.js.map +1 -1
  7. package/dist/commands/circuit.d.ts +12 -1
  8. package/dist/commands/circuit.d.ts.map +1 -0
  9. package/dist/commands/circuit.js +146 -152
  10. package/dist/commands/circuit.js.map +1 -1
  11. package/dist/commands/deploy.d.ts +14 -0
  12. package/dist/commands/deploy.d.ts.map +1 -0
  13. package/dist/commands/deploy.js +332 -0
  14. package/dist/commands/deploy.js.map +1 -0
  15. package/dist/commands/kit.d.ts +12 -1
  16. package/dist/commands/kit.d.ts.map +1 -0
  17. package/dist/commands/kit.js +137 -160
  18. package/dist/commands/kit.js.map +1 -1
  19. package/dist/commands/logbook.d.ts +12 -1
  20. package/dist/commands/logbook.d.ts.map +1 -0
  21. package/dist/commands/logbook.js +150 -136
  22. package/dist/commands/logbook.js.map +1 -1
  23. package/dist/index.d.ts +19 -2
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +46 -34
  26. package/dist/index.js.map +1 -1
  27. package/package.json +59 -33
  28. package/src/__tests__/smoke.test.ts +8 -0
  29. package/src/commands/block.ts +219 -0
  30. package/src/commands/circuit.ts +182 -0
  31. package/src/commands/deploy.ts +373 -0
  32. package/src/commands/kit.ts +173 -0
  33. package/src/commands/logbook.ts +194 -0
  34. package/src/index.ts +70 -0
  35. package/LICENSE +0 -201
  36. package/NOTICE +0 -5
  37. package/README.md +0 -13
  38. package/dist/utils/filesystem.d.ts +0 -5
  39. package/dist/utils/filesystem.js +0 -21
  40. package/dist/utils/filesystem.js.map +0 -1
  41. package/dist/utils/github.d.ts +0 -23
  42. package/dist/utils/github.js +0 -66
  43. package/dist/utils/github.js.map +0 -1
@@ -1,156 +1,170 @@
1
- import { readFile } from "node:fs/promises";
2
- import os from "node:os";
3
- import path from "node:path";
1
+ /**
2
+ * BLKC CLI - Logbook Commands
3
+ *
4
+ * Commands for working with BLKC Logbook.
5
+ *
6
+ * @package @blkc-code/cli
7
+ * @license Apache-2.0
8
+ * @author Black Code Enterprises LLC
9
+ */
4
10
  import chalk from "chalk";
5
- import { DEFAULT_ALGORITHM } from "@blkc-code/core";
6
- import { DEFAULT_LOGBOOK_PATH, Logbook, } from "@blkc-code/logbook";
7
- const parseJson = (value, source) => {
8
- try {
9
- return JSON.parse(value);
10
- }
11
- catch (error) {
12
- throw new Error(`Failed to parse JSON from ${source}: ${error.message}`);
13
- }
14
- };
15
- const parseJsonFile = async (filePath) => {
16
- const buffer = await readFile(filePath, { encoding: "utf8" });
17
- return parseJson(buffer, filePath);
18
- };
19
- const mergeRecords = (records) => records.reduce((acc, record) => ({ ...acc, ...record }), {});
20
- const cleanRecord = (record) => Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined && value !== null));
21
- const buildDataPayload = async (options) => {
22
- const dataAggregates = [];
23
- if (options.data && typeof options.data === "string") {
24
- dataAggregates.push(parseJson(options.data, "--data"));
25
- }
26
- if (options.dataFile && typeof options.dataFile === "string") {
27
- const resolved = path.resolve(options.dataFile);
28
- dataAggregates.push(await parseJsonFile(resolved));
29
- }
30
- if (options.message && typeof options.message === "string") {
31
- dataAggregates.push({ message: options.message });
32
- }
33
- if (dataAggregates.length === 0) {
34
- return {};
35
- }
36
- return mergeRecords(dataAggregates);
37
- };
38
- const defaultActorName = () => process.env.BLKC_ACTOR_NAME ?? os.userInfo().username;
39
- const resolveLogbook = (options) => new Logbook({
40
- filePath: path.resolve(options.file ?? DEFAULT_LOGBOOK_PATH),
41
- algorithm: options.algorithm ?? DEFAULT_ALGORITHM,
42
- });
43
- const printVerification = (result) => {
44
- if (result.valid) {
45
- console.log(chalk.green(`✔ Logbook verified (${result.entries.length} entries)`));
46
- if (result.lastHash) {
47
- console.log(chalk.dim(`Last hash: ${result.lastHash}`));
48
- }
49
- return;
50
- }
51
- console.error(chalk.red("✖ Logbook verification failed"));
52
- result.issues.forEach((issue) => {
53
- const context = issue.entry ? chalk.dim(` ${JSON.stringify(issue.entry)}`) : "";
54
- console.error(chalk.red(` • [${issue.index + 1}] ${issue.message}${context}`));
55
- });
56
- };
57
- export const registerLogbookCommands = (program) => {
58
- const logbook = program
59
- .command("logbook")
60
- .description("Inspect and update the BLKC logbook")
61
- .option("-f, --file <path>", "Path to logbook JSONL file", DEFAULT_LOGBOOK_PATH)
62
- .option("-a, --algorithm <hash>", "Hash algorithm", DEFAULT_ALGORITHM);
63
- logbook
64
- .command("append")
65
- .description("Append a new entry to the logbook")
66
- .requiredOption("-e, --event <event>", "Event identifier")
67
- .option("-m, --message <message>", "Optional message stored under data.message")
68
- .option("-d, --data <json>", "JSON payload merged into entry data")
69
- .option("--data-file <path>", "Path to JSON file merged into entry data")
70
- .option("--actor-name <name>", "Actor display name")
71
- .option("--actor-email <email>", "Actor email")
72
- .option("--actor-role <role>", "Actor role")
73
- .option("--timestamp <iso>", "Override timestamp (ISO-8601)")
74
- .action(async (options, command) => {
75
- const parentOpts = (command.parent?.opts() ?? {});
76
- const logbookInstance = resolveLogbook(parentOpts);
77
- const data = await buildDataPayload(options);
78
- const actor = cleanRecord({
79
- name: options.actorName ?? defaultActorName(),
80
- email: options.actorEmail,
81
- role: options.actorRole,
82
- });
83
- const entry = {
84
- event: options.event,
85
- actor: actor,
86
- data,
87
- timestamp: options.timestamp,
88
- };
11
+ import ora from "ora";
12
+ import { stat } from "node:fs/promises";
13
+ import path from "node:path";
14
+ import { Logbook, verifyLogbook, readLogbook } from "@blkc-code/logbook";
15
+ // ============================================================================
16
+ // Command: logbook verify
17
+ // ============================================================================
18
+ function setupVerifyCommand(program) {
19
+ program
20
+ .command("verify <file-path>")
21
+ .description("Verify Logbook chain integrity")
22
+ .option("--algorithm <algo>", "Hash algorithm", "sha256")
23
+ .action(async (filePath, options) => {
24
+ const spinner = ora("Verifying Logbook...").start();
89
25
  try {
90
- const appended = await logbookInstance.append(entry);
91
- console.log(chalk.green(`✔ Appended ${appended.event}`));
92
- console.log(chalk.dim(`Hash: ${appended.hash}`));
26
+ const absolutePath = path.resolve(process.cwd(), filePath);
27
+ // Check if file exists
28
+ try {
29
+ await stat(absolutePath);
30
+ }
31
+ catch {
32
+ spinner.fail(`File not found: ${absolutePath}`);
33
+ process.exit(1);
34
+ }
35
+ const result = await verifyLogbook(absolutePath, options.algorithm);
36
+ if (result.valid) {
37
+ spinner.succeed("Logbook verification passed");
38
+ console.log(chalk.green("\n✓ Chain is valid"));
39
+ console.log(chalk.gray(` Entries: ${result.entries.length}`));
40
+ console.log(chalk.gray(` Last hash: ${result.lastHash?.substring(0, 16)}...`));
41
+ }
42
+ else {
43
+ spinner.fail("Logbook verification failed");
44
+ console.error(chalk.red("\n✗ Chain is invalid"));
45
+ console.error(chalk.red(` Issues: ${result.issues.length}`));
46
+ for (const issue of result.issues) {
47
+ console.error(chalk.red(`\n Entry ${issue.index}:`));
48
+ console.error(chalk.red(` ${issue.message}`));
49
+ }
50
+ process.exit(1);
51
+ }
93
52
  }
94
53
  catch (error) {
95
- console.error(chalk.red(`✖ Failed to append entry: ${error.message}`));
96
- process.exitCode = 1;
54
+ spinner.fail(`Failed to verify: ${error}`);
55
+ process.exit(1);
97
56
  }
98
57
  });
99
- logbook
100
- .command("verify")
101
- .description("Verify integrity of the logbook hash chain")
102
- .action(async (_options, command) => {
103
- const parentOpts = (command.parent?.opts() ?? {});
104
- const logbookInstance = resolveLogbook(parentOpts);
58
+ }
59
+ // ============================================================================
60
+ // Command: logbook check
61
+ // ============================================================================
62
+ function setupCheckCommand(program) {
63
+ program
64
+ .command("check <file-path>")
65
+ .description("Check Logbook for issues (alias for verify)")
66
+ .action(async (filePath) => {
67
+ // Delegate to verify
68
+ const verifyCmd = program.commands.find((c) => c.name() === "verify");
69
+ if (verifyCmd) {
70
+ await verifyCmd.action(filePath, {});
71
+ }
72
+ });
73
+ }
74
+ // ============================================================================
75
+ // Command: logbook info
76
+ // ============================================================================
77
+ function setupInfoCommand(program) {
78
+ program
79
+ .command("info <file-path>")
80
+ .description("Show Logbook information")
81
+ .action(async (filePath) => {
82
+ const spinner = ora("Loading Logbook info...").start();
105
83
  try {
106
- const result = await logbookInstance.verify();
107
- printVerification(result);
108
- if (!result.valid) {
109
- process.exitCode = 1;
84
+ const absolutePath = path.resolve(process.cwd(), filePath);
85
+ // Check if file exists
86
+ try {
87
+ await stat(absolutePath);
88
+ }
89
+ catch {
90
+ spinner.fail(`File not found: ${absolutePath}`);
91
+ process.exit(1);
92
+ }
93
+ const logbook = new Logbook({ filePath: absolutePath });
94
+ const info = await logbook.info();
95
+ spinner.succeed(`Logbook: ${info.filePath}`);
96
+ console.log(chalk.bold("\nLogbook Information"));
97
+ console.log(chalk.gray("─".repeat(40)));
98
+ console.log(chalk.gray(`File: ${info.filePath}`));
99
+ console.log(chalk.gray(`Entry count: ${info.entryCount}`));
100
+ if (info.firstEntry) {
101
+ console.log(chalk.gray(`\nFirst Entry:`));
102
+ console.log(chalk.gray(` Timestamp: ${info.firstEntry.timestamp}`));
103
+ console.log(chalk.gray(` Actor: ${info.firstEntry.actor.name}`));
104
+ console.log(chalk.gray(` Event: ${info.firstEntry.event}`));
105
+ }
106
+ if (info.lastEntry) {
107
+ console.log(chalk.gray(`\nLast Entry:`));
108
+ console.log(chalk.gray(` Timestamp: ${info.lastEntry.timestamp}`));
109
+ console.log(chalk.gray(` Actor: ${info.lastEntry.actor.name}`));
110
+ console.log(chalk.gray(` Event: ${info.lastEntry.event}`));
111
+ console.log(chalk.gray(` Hash: ${info.lastHash?.substring(0, 16)}...`));
110
112
  }
111
113
  }
112
114
  catch (error) {
113
- console.error(chalk.red(`✖ Verification failed: ${error.message}`));
114
- process.exitCode = 1;
115
+ spinner.fail(`Failed to show info: ${error}`);
116
+ process.exit(1);
115
117
  }
116
118
  });
117
- logbook
118
- .command("show")
119
- .description("Display logbook entries")
120
- .option("-l, --limit <count>", "Limit number of entries returned", (value) => parseInt(value, 10))
121
- .option("--json", "Output as JSON", false)
122
- .action(async (options, command) => {
123
- const parentOpts = (command.parent?.opts() ?? {});
124
- const logbookInstance = resolveLogbook(parentOpts);
119
+ }
120
+ // ============================================================================
121
+ // Command: logbook tail
122
+ // ============================================================================
123
+ function setupTailCommand(program) {
124
+ program
125
+ .command("tail <file-path>")
126
+ .description("Show the last N entries from Logbook")
127
+ .option("--lines <n>", "Number of lines to show", "10")
128
+ .action(async (filePath, options) => {
129
+ const spinner = ora("Reading Logbook...").start();
125
130
  try {
126
- const entries = await logbookInstance.entries();
127
- const limit = typeof options.limit === "number" && !Number.isNaN(options.limit)
128
- ? options.limit
129
- : entries.length;
130
- const subset = entries.slice(Math.max(0, entries.length - limit));
131
- if (options.json) {
132
- console.log(JSON.stringify(subset, null, 2));
133
- return;
134
- }
135
- subset.forEach((entry, index) => {
136
- const idx = entries.length - subset.length + index + 1;
137
- console.log(chalk.cyan(`#${idx} ${entry.event}`));
138
- console.log(` actor: ${entry.actor.name}${entry.actor.role ? ` (${entry.actor.role})` : ""}`);
139
- console.log(` timestamp: ${entry.timestamp}`);
140
- console.log(` hash: ${entry.hash}`);
141
- if (entry.prevHash) {
142
- console.log(` prevHash: ${entry.prevHash}`);
131
+ const absolutePath = path.resolve(process.cwd(), filePath);
132
+ const lines = parseInt(options.lines, 10) || 10;
133
+ const entries = await readLogbook(absolutePath);
134
+ const tailEntries = entries.slice(-lines);
135
+ spinner.succeed(`Showing last ${tailEntries.length} entries`);
136
+ for (const entry of tailEntries) {
137
+ console.log(chalk.gray(`\n[${entry.timestamp}] ${entry.event}`));
138
+ console.log(chalk.gray(` Actor: ${entry.actor.name}`));
139
+ if (entry.subject) {
140
+ console.log(chalk.gray(` Subject: ${entry.subject.type}:${entry.subject.id}`));
143
141
  }
144
- if (entry.data && Object.keys(entry.data).length > 0) {
145
- console.log(` data: ${JSON.stringify(entry.data)}`);
142
+ if (entry.hash) {
143
+ console.log(chalk.gray(` Hash: ${entry.hash.substring(0, 16)}...`));
146
144
  }
147
- console.log("");
148
- });
145
+ }
146
+ if (tailEntries.length === 0) {
147
+ console.log(chalk.gray("\nNo entries found"));
148
+ }
149
149
  }
150
150
  catch (error) {
151
- console.error(chalk.red(`✖ Failed to read logbook: ${error.message}`));
152
- process.exitCode = 1;
151
+ spinner.fail(`Failed to tail: ${error}`);
152
+ process.exit(1);
153
153
  }
154
154
  });
155
- };
155
+ }
156
+ // ============================================================================
157
+ // Register Commands
158
+ // ============================================================================
159
+ /** Register all logbook commands with the program */
160
+ export function registerLogbookCommands(program) {
161
+ const logbookProgram = program
162
+ .command("logbook")
163
+ .description("Logbook commands")
164
+ .alias("l");
165
+ setupVerifyCommand(logbookProgram);
166
+ setupCheckCommand(logbookProgram);
167
+ setupInfoCommand(logbookProgram);
168
+ setupTailCommand(logbookProgram);
169
+ }
156
170
  //# sourceMappingURL=logbook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logbook.js","sourceRoot":"","sources":["../../src/commands/logbook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logbook.js","sourceRoot":"","sources":["../../src/commands/logbook.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,21 @@
1
- #!/usr/bin/env bun
1
+ /**
2
+ * BLKC CLI - Developer tools for BLKC
3
+ *
4
+ * This package provides command-line tools for working with BLKC Blocks, Kits, Circuits, and Logbook.
5
+ *
6
+ * @package @blkc-code/cli
7
+ * @version 0.1.0
8
+ * @license Apache-2.0
9
+ * @author Black Code Enterprises LLC
10
+ */
2
11
  import { Command } from "commander";
12
+ /**
13
+ * The main BLKC CLI program.
14
+ */
3
15
  export declare const program: Command;
4
- export declare const run: () => Promise<void>;
16
+ /**
17
+ * Run the CLI.
18
+ */
19
+ export declare function run(): Promise<void>;
20
+ export default program;
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;GAEG;AACH,eAAO,MAAM,OAAO,SAAgB,CAAC;AA+BrC;;GAEG;AACH,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAWzC;AAGD,eAAe,OAAO,CAAC"}
package/dist/index.js CHANGED
@@ -1,52 +1,64 @@
1
- #!/usr/bin/env bun
2
- import { realpathSync } from "node:fs";
3
- import path from "node:path";
4
- import { fileURLToPath } from "node:url";
1
+ /**
2
+ * BLKC CLI - Developer tools for BLKC
3
+ *
4
+ * This package provides command-line tools for working with BLKC Blocks, Kits, Circuits, and Logbook.
5
+ *
6
+ * @package @blkc-code/cli
7
+ * @version 0.1.0
8
+ * @license Apache-2.0
9
+ * @author Black Code Enterprises LLC
10
+ */
5
11
  import { Command } from "commander";
6
- import { registerBlockCommands } from "./commands/block";
7
- import { registerCircuitCommands } from "./commands/circuit";
8
- import { registerKitCommands } from "./commands/kit";
9
- import { registerLogbookCommands } from "./commands/logbook";
12
+ import { registerBlockCommands } from "./commands/block.js";
13
+ import { registerKitCommands } from "./commands/kit.js";
14
+ import { registerCircuitCommands } from "./commands/circuit.js";
15
+ import { registerLogbookCommands } from "./commands/logbook.js";
16
+ import { registerDeployCommands } from "./commands/deploy.js";
17
+ /**
18
+ * The main BLKC CLI program.
19
+ */
10
20
  export const program = new Command();
21
+ // Configure the CLI
11
22
  program
12
23
  .name("blkc")
13
- .description("BLKC developer CLI")
24
+ .description("BLKC developer CLI - Tools for working with Blocks, Kits, Circuits, and Logbook")
14
25
  .version("0.1.0");
26
+ // Show help after errors
15
27
  program.showHelpAfterError();
28
+ // Configure output to prevent duplicate errors
16
29
  program.configureOutput({
17
30
  outputError: (str) => {
18
- // eslint-disable-next-line no-console
19
- console.error(str.trim());
31
+ // Only print the error if it's not already been handled
32
+ if (str && !str.includes("error:")) {
33
+ console.error(str.trim());
34
+ }
20
35
  },
21
36
  });
37
+ // Register all command groups
22
38
  registerBlockCommands(program);
23
- registerCircuitCommands(program);
24
39
  registerKitCommands(program);
40
+ registerCircuitCommands(program);
25
41
  registerLogbookCommands(program);
26
- const isDirectExecution = () => {
27
- const entryPoint = process.argv[1];
28
- if (!entryPoint) {
29
- return false;
42
+ registerDeployCommands(program);
43
+ // Add a global --help flag
44
+ program.option("--debug", "Enable debug mode");
45
+ /**
46
+ * Run the CLI.
47
+ */
48
+ export async function run() {
49
+ try {
50
+ await program.parseAsync(process.argv);
30
51
  }
31
- // npm/bun install the bin as a symlink, so compare real paths.
32
- const resolve = (file) => {
33
- try {
34
- return realpathSync(file);
52
+ catch (error) {
53
+ if (error instanceof Error) {
54
+ console.error(`Error: ${error.message}`);
35
55
  }
36
- catch {
37
- return path.resolve(file);
56
+ else {
57
+ console.error("An unknown error occurred");
38
58
  }
39
- };
40
- return resolve(fileURLToPath(import.meta.url)) === resolve(entryPoint);
41
- };
42
- export const run = async () => {
43
- await program.parseAsync(process.argv);
44
- };
45
- if (isDirectExecution()) {
46
- run().catch((error) => {
47
- // eslint-disable-next-line no-console
48
- console.error(error instanceof Error ? error.message : error);
49
- process.exitCode = 1;
50
- });
59
+ process.exit(1);
60
+ }
51
61
  }
62
+ // Export for bin usage
63
+ export default program;
52
64
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAErC,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,oBAAoB,CAAC;KACjC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,kBAAkB,EAAE,CAAC;AAC7B,OAAO,CAAC,eAAe,CAAC;IACtB,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE;QACnB,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC,CAAC;AAEH,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEjC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+DAA+D;IAC/D,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE;QAC/B,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;IACF,OAAO,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;IAC5B,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,IAAI,iBAAiB,EAAE,EAAE,CAAC;IACxB,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACpB,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAErC,oBAAoB;AACpB,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,iFAAiF,CAAC;KAC9F,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,yBAAyB;AACzB,OAAO,CAAC,kBAAkB,EAAE,CAAC;AAE7B,+CAA+C;AAC/C,OAAO,CAAC,eAAe,CAAC;IACtB,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE;QACnB,wDAAwD;QACxD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,8BAA8B;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAEhC,2BAA2B;AAC3B,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG;IACvB,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,uBAAuB;AACvB,eAAe,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,49 +1,75 @@
1
1
  {
2
2
  "name": "@blkc-code/cli",
3
- "version": "0.1.1",
4
- "license": "Apache-2.0",
3
+ "version": "0.1.3",
5
4
  "type": "module",
6
- "bin": {
7
- "blkc": "dist/index.js"
8
- },
5
+ "description": "BLKC developer CLI tools",
9
6
  "main": "dist/index.js",
7
+ "module": "dist/index.mjs",
10
8
  "types": "dist/index.d.ts",
9
+ "bin": {
10
+ "blkc": "dist/cli.js"
11
+ },
12
+ "exports": {
13
+ ".": {
14
+ "require": "./dist/index.js",
15
+ "import": "./dist/index.mjs",
16
+ "types": "./dist/index.d.ts"
17
+ }
18
+ },
11
19
  "files": [
12
20
  "dist",
13
- "LICENSE",
14
- "NOTICE",
15
- "README.md"
21
+ "src",
22
+ "bin"
16
23
  ],
17
24
  "scripts": {
18
- "build": "tsc -p tsconfig.json",
19
- "clean": "rimraf dist tsconfig.tsbuildinfo",
20
- "typecheck": "tsc --noEmit -p tsconfig.json",
21
- "lint": "eslint \"src/**/*.{ts,tsx}\"",
22
- "test": "vitest",
23
- "prepublishOnly": "bun run clean && bun run build"
25
+ "build": "tsc && cp bin/blkc.js dist/cli.js",
26
+ "build:watch": "tsc -w",
27
+ "typecheck": "tsc --noEmit",
28
+ "lint": "eslint src --ext .ts",
29
+ "test": "vitest run",
30
+ "test:watch": "vitest",
31
+ "test:coverage": "vitest run --coverage",
32
+ "clean": "rm -rf dist"
24
33
  },
25
34
  "dependencies": {
26
- "@blkc-code/core": "0.1.1",
27
- "@blkc-code/logbook": "0.1.1",
28
- "@commander-js/extra-typings": "^12.1.0",
35
+ "@blkc-code/cli": "^0.1.2",
36
+ "@blkc-code/core": "^0.1.0",
37
+ "@blkc-code/logbook": "^0.1.0",
38
+ "@modelcontextprotocol/sdk": "^1.32.0",
29
39
  "chalk": "^5.3.0",
30
40
  "commander": "^12.1.0",
31
- "fs-extra": "^11.2.0",
32
- "inquirer": "^12.3.0",
33
- "ora": "^8.0.1"
41
+ "dotenv": "^16.6.1",
42
+ "inquirer": "^12.0.0",
43
+ "ora": "^8.1.0"
34
44
  },
35
45
  "devDependencies": {
36
- "@types/node": "^20.14.9",
37
- "@typescript-eslint/eslint-plugin": "^8.44.0",
38
- "@typescript-eslint/parser": "^8.44.0",
39
- "eslint": "^9.16.0",
40
- "eslint-config-prettier": "^10.1.1",
41
- "rimraf": "^6.0.1",
42
- "typescript": "^5.6.3",
43
- "vitest": "^3.2.4"
44
- },
45
- "homepage": "https://github.com/blkc-community",
46
- "publishConfig": {
47
- "access": "public"
48
- }
46
+ "@types/inquirer": "^9.0.7",
47
+ "@types/node": "^22.9.0",
48
+ "@types/react": "^19.3.0",
49
+ "typescript": "^5.9.3",
50
+ "vitest": "^5.1.0"
51
+ },
52
+ "peerDependencies": {
53
+ "typescript": "^5.9.3"
54
+ },
55
+ "engines": {
56
+ "node": ">=22.0.0"
57
+ },
58
+ "keywords": [
59
+ "blkc",
60
+ "cli",
61
+ "developer-tools",
62
+ "command-line"
63
+ ],
64
+ "author": "Black Code Enterprises LLC",
65
+ "license": "Apache-2.0",
66
+ "repository": {
67
+ "type": "git",
68
+ "url": "git+https://github.com/blkc-community/blkc.git",
69
+ "directory": "packages/cli"
70
+ },
71
+ "bugs": {
72
+ "url": "https://github.com/blkc-community/blkc/issues"
73
+ },
74
+ "homepage": "https://blkc.community"
49
75
  }
@@ -0,0 +1,8 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { program } from '../index';
3
+
4
+ describe('BLKC CLI smoke', () => {
5
+ it('exposes the blkc program', () => {
6
+ expect(program.name()).toBe('blkc');
7
+ });
8
+ });