@mimir-labs/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.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +498 -0
  3. package/dist/cli.d.ts +1 -0
  4. package/dist/cli.js +45 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/context.d.ts +2 -0
  7. package/dist/commands/context.js +54 -0
  8. package/dist/commands/context.js.map +1 -0
  9. package/dist/commands/discover.d.ts +2 -0
  10. package/dist/commands/discover.js +64 -0
  11. package/dist/commands/discover.js.map +1 -0
  12. package/dist/commands/doctor.d.ts +2 -0
  13. package/dist/commands/doctor.js +69 -0
  14. package/dist/commands/doctor.js.map +1 -0
  15. package/dist/commands/generate.d.ts +2 -0
  16. package/dist/commands/generate.js +94 -0
  17. package/dist/commands/generate.js.map +1 -0
  18. package/dist/commands/governance.d.ts +2 -0
  19. package/dist/commands/governance.js +58 -0
  20. package/dist/commands/governance.js.map +1 -0
  21. package/dist/commands/init.d.ts +2 -0
  22. package/dist/commands/init.js +68 -0
  23. package/dist/commands/init.js.map +1 -0
  24. package/dist/commands/sync.d.ts +2 -0
  25. package/dist/commands/sync.js +72 -0
  26. package/dist/commands/sync.js.map +1 -0
  27. package/dist/commands/validate.d.ts +2 -0
  28. package/dist/commands/validate.js +59 -0
  29. package/dist/commands/validate.js.map +1 -0
  30. package/dist/dx/about/command.d.ts +2 -0
  31. package/dist/dx/about/command.js +69 -0
  32. package/dist/dx/about/command.js.map +1 -0
  33. package/dist/dx/branding/constants.d.ts +6 -0
  34. package/dist/dx/branding/constants.js +13 -0
  35. package/dist/dx/branding/constants.js.map +1 -0
  36. package/dist/dx/command-registry/index.d.ts +25 -0
  37. package/dist/dx/command-registry/index.js +234 -0
  38. package/dist/dx/command-registry/index.js.map +1 -0
  39. package/dist/dx/completion/command.d.ts +2 -0
  40. package/dist/dx/completion/command.js +45 -0
  41. package/dist/dx/completion/command.js.map +1 -0
  42. package/dist/dx/completion/scripts.d.ts +4 -0
  43. package/dist/dx/completion/scripts.js +143 -0
  44. package/dist/dx/completion/scripts.js.map +1 -0
  45. package/dist/dx/help/attach-command-help.d.ts +2 -0
  46. package/dist/dx/help/attach-command-help.js +13 -0
  47. package/dist/dx/help/attach-command-help.js.map +1 -0
  48. package/dist/dx/help/command.d.ts +2 -0
  49. package/dist/dx/help/command.js +75 -0
  50. package/dist/dx/help/command.js.map +1 -0
  51. package/dist/dx/help/formatter.d.ts +2 -0
  52. package/dist/dx/help/formatter.js +52 -0
  53. package/dist/dx/help/formatter.js.map +1 -0
  54. package/dist/dx/output/cli-output.d.ts +11 -0
  55. package/dist/dx/output/cli-output.js +62 -0
  56. package/dist/dx/output/cli-output.js.map +1 -0
  57. package/dist/dx/runtime/options.d.ts +10 -0
  58. package/dist/dx/runtime/options.js +31 -0
  59. package/dist/dx/runtime/options.js.map +1 -0
  60. package/dist/index.d.ts +2 -0
  61. package/dist/index.js +6 -0
  62. package/dist/index.js.map +1 -0
  63. package/package.json +56 -0
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatDetailedHelp = formatDetailedHelp;
4
+ const constants_1 = require("../branding/constants");
5
+ function formatFlags(flags) {
6
+ if (flags.length === 0) {
7
+ return ["Flags:", "- none", ""];
8
+ }
9
+ return [
10
+ "Flags:",
11
+ ...flags.map((flag) => `- ${flag.name}: ${flag.description}`),
12
+ ""
13
+ ];
14
+ }
15
+ function formatExamples(examples) {
16
+ if (examples.length === 0) {
17
+ return ["Examples:", "- none", ""];
18
+ }
19
+ return ["Examples:", ...examples.map((example) => `- ${example}`), ""];
20
+ }
21
+ function formatExitCodes(exitCodes) {
22
+ if (exitCodes.length === 0) {
23
+ return ["Exit codes:", "- not defined", ""];
24
+ }
25
+ return [
26
+ "Exit codes:",
27
+ ...exitCodes.map((exitCode) => `- ${exitCode.code}: ${exitCode.meaning}`),
28
+ ""
29
+ ];
30
+ }
31
+ function formatNotes(notes) {
32
+ if (notes.length === 0) {
33
+ return ["Notes:", "- none", ""];
34
+ }
35
+ return ["Notes:", ...notes.map((note) => `- ${note}`), ""];
36
+ }
37
+ function formatDetailedHelp(meta) {
38
+ const lines = [
39
+ "",
40
+ `Name: ${constants_1.CLI_BINARY_NAME} ${meta.name}`,
41
+ `Usage: ${meta.usage}`,
42
+ "",
43
+ `Description: ${meta.description}`,
44
+ "",
45
+ ...formatFlags(meta.flags),
46
+ ...formatExamples(meta.examples),
47
+ ...formatExitCodes(meta.exitCodes),
48
+ ...formatNotes(meta.notes)
49
+ ];
50
+ return lines.join("\n").trimEnd();
51
+ }
52
+ //# sourceMappingURL=formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/dx/help/formatter.ts"],"names":[],"mappings":";;AA2CA,gDAeC;AAzDD,qDAAwD;AAExD,SAAS,WAAW,CAAC,KAA6B;IAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,OAAO;QACL,QAAQ;QACR,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7D,EAAE;KACH,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAAkB;IACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,eAAe,CAAC,SAAqC;IAC5D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,aAAa,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,aAAa;QACb,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzE,EAAE;KACH,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAe;IAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAmB;IACpD,MAAM,KAAK,GAAa;QACtB,EAAE;QACF,SAAS,2BAAe,IAAI,IAAI,CAAC,IAAI,EAAE;QACvC,UAAU,IAAI,CAAC,KAAK,EAAE;QACtB,EAAE;QACF,gBAAgB,IAAI,CAAC,WAAW,EAAE;QAClC,EAAE;QACF,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChC,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;KAC3B,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const EXIT_CODES: {
2
+ readonly OK: 0;
3
+ readonly GENERAL_ERROR: 1;
4
+ readonly USAGE_ERROR: 2;
5
+ };
6
+ export declare function printJson(payload: unknown): void;
7
+ export declare function info(message: string): void;
8
+ export declare function warn(message: string): void;
9
+ export declare function success(message: string): void;
10
+ export declare function errorMessage(message: string): void;
11
+ export declare function setExitCode(code: number): void;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EXIT_CODES = void 0;
4
+ exports.printJson = printJson;
5
+ exports.info = info;
6
+ exports.warn = warn;
7
+ exports.success = success;
8
+ exports.errorMessage = errorMessage;
9
+ exports.setExitCode = setExitCode;
10
+ const options_1 = require("../runtime/options");
11
+ exports.EXIT_CODES = {
12
+ OK: 0,
13
+ GENERAL_ERROR: 1,
14
+ USAGE_ERROR: 2
15
+ };
16
+ function stableJson(value) {
17
+ if (value === null) {
18
+ return null;
19
+ }
20
+ if (Array.isArray(value)) {
21
+ return value.map((item) => stableJson(item));
22
+ }
23
+ if (typeof value === "object") {
24
+ const obj = value;
25
+ const keys = Object.keys(obj).sort((a, b) => a.localeCompare(b));
26
+ const normalized = {};
27
+ for (const key of keys) {
28
+ normalized[key] = stableJson(obj[key]);
29
+ }
30
+ return normalized;
31
+ }
32
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
33
+ return value;
34
+ }
35
+ return String(value);
36
+ }
37
+ function printJson(payload) {
38
+ const normalized = stableJson(payload);
39
+ console.log(JSON.stringify(normalized, null, 2));
40
+ }
41
+ function info(message) {
42
+ if (!(0, options_1.getRuntimeOptions)().quiet) {
43
+ console.log(message);
44
+ }
45
+ }
46
+ function warn(message) {
47
+ if (!(0, options_1.getRuntimeOptions)().quiet) {
48
+ console.warn(`WARN: ${message}`);
49
+ }
50
+ }
51
+ function success(message) {
52
+ if (!(0, options_1.getRuntimeOptions)().quiet) {
53
+ console.log(`OK: ${message}`);
54
+ }
55
+ }
56
+ function errorMessage(message) {
57
+ console.error(`ERROR: ${message}`);
58
+ }
59
+ function setExitCode(code) {
60
+ process.exitCode = code;
61
+ }
62
+ //# sourceMappingURL=cli-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-output.js","sourceRoot":"","sources":["../../../src/dx/output/cli-output.ts"],"names":[],"mappings":";;;AAsCA,8BAGC;AAED,oBAIC;AAED,oBAIC;AAED,0BAIC;AAED,oCAEC;AAED,kCAEC;AAnED,gDAAuD;AAE1C,QAAA,UAAU,GAAG;IACxB,EAAE,EAAE,CAAC;IACL,aAAa,EAAE,CAAC;IAChB,WAAW,EAAE,CAAC;CACN,CAAC;AAIX,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,UAAU,GAA8B,EAAE,CAAC;QAEjD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACzF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAgB,SAAS,CAAC,OAAgB;IACxC,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,SAAgB,IAAI,CAAC,OAAe;IAClC,IAAI,CAAC,IAAA,2BAAiB,GAAE,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAgB,IAAI,CAAC,OAAe;IAClC,IAAI,CAAC,IAAA,2BAAiB,GAAE,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,SAAgB,OAAO,CAAC,OAAe;IACrC,IAAI,CAAC,IAAA,2BAAiB,GAAE,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,SAAgB,YAAY,CAAC,OAAe;IAC1C,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,SAAgB,WAAW,CAAC,IAAY;IACtC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,10 @@
1
+ export type RuntimeOptions = {
2
+ json: boolean;
3
+ verbose: boolean;
4
+ quiet: boolean;
5
+ dryRun: boolean;
6
+ };
7
+ export declare function configureRuntimeOptions(argv: string[]): void;
8
+ export declare function getRuntimeOptions(): RuntimeOptions;
9
+ export declare function shouldEmitJson(localJson?: boolean): boolean;
10
+ export declare function isDryRun(): boolean;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.configureRuntimeOptions = configureRuntimeOptions;
4
+ exports.getRuntimeOptions = getRuntimeOptions;
5
+ exports.shouldEmitJson = shouldEmitJson;
6
+ exports.isDryRun = isDryRun;
7
+ const state = {
8
+ json: false,
9
+ verbose: false,
10
+ quiet: false,
11
+ dryRun: false
12
+ };
13
+ function configureRuntimeOptions(argv) {
14
+ state.json = argv.includes("--json");
15
+ state.verbose = argv.includes("--verbose");
16
+ state.quiet = argv.includes("--quiet");
17
+ state.dryRun = argv.includes("--dry-run");
18
+ if (state.verbose && state.quiet) {
19
+ state.quiet = false;
20
+ }
21
+ }
22
+ function getRuntimeOptions() {
23
+ return { ...state };
24
+ }
25
+ function shouldEmitJson(localJson) {
26
+ return Boolean(localJson) || state.json;
27
+ }
28
+ function isDryRun() {
29
+ return state.dryRun;
30
+ }
31
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/dx/runtime/options.ts"],"names":[],"mappings":";;AAcA,0DASC;AAED,8CAEC;AAED,wCAEC;AAED,4BAEC;AA5BD,MAAM,KAAK,GAAmB;IAC5B,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,KAAK;CACd,CAAC;AAEF,SAAgB,uBAAuB,CAAC,IAAc;IACpD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC3C,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE1C,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB;IAC/B,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,SAAgB,cAAc,CAAC,SAAmB;IAChD,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,SAAgB,QAAQ;IACtB,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const cli_1 = require("./cli");
5
+ void (0, cli_1.runCli)(process.argv);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,+BAA+B;AAE/B,KAAK,IAAA,YAAM,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@mimir-labs/cli",
3
+ "version": "0.1.0",
4
+ "description": "Mimir CLI, the reference implementation for the APS Protocol",
5
+ "files": [
6
+ "dist"
7
+ ],
8
+ "main": "dist/index.js",
9
+ "bin": {
10
+ "mimir": "dist/index.js"
11
+ },
12
+ "engines": {
13
+ "node": ">=18"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
18
+ "types": "dist/index.d.ts",
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.ts",
22
+ "default": "./dist/index.js"
23
+ }
24
+ },
25
+ "license": "MIT",
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/SeaBassLab/mimir.git",
29
+ "directory": "packages/cli"
30
+ },
31
+ "homepage": "https://github.com/SeaBassLab/mimir#readme",
32
+ "bugs": {
33
+ "url": "https://github.com/SeaBassLab/mimir/issues"
34
+ },
35
+ "dependencies": {
36
+ "commander": "^12.1.0",
37
+ "@mimir-labs/core": "0.1.0"
38
+ },
39
+ "devDependencies": {
40
+ "@types/node": "^22.10.1",
41
+ "typescript": "^5.7.2"
42
+ },
43
+ "keywords": [
44
+ "mimir",
45
+ "aps",
46
+ "protocol",
47
+ "cli",
48
+ "ai",
49
+ "software-knowledge"
50
+ ],
51
+ "scripts": {
52
+ "build": "tsc -p tsconfig.json",
53
+ "start": "node dist/index.js",
54
+ "mimir": "node dist/index.js"
55
+ }
56
+ }