@nexo-alpha/cli 0.1.0 → 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/README.md CHANGED
@@ -16,7 +16,9 @@ Or use it without a global install via `npx @nexo-alpha/cli`.
16
16
 
17
17
  ## How it finds an application
18
18
 
19
- Nexo has no project scaffold or config-file convention yet, so the CLI takes an explicit path to a **compiled JS module** that exports a `NexoApplication` as `app` (or `default`):
19
+ The CLI resolves a target app one of two ways:
20
+
21
+ **Explicit path** — a path to a **compiled JS module** that exports a `NexoApplication` as `app` (or `default`):
20
22
 
21
23
  ```ts
22
24
  // dist/app.js
@@ -28,15 +30,25 @@ app.module({ name: "payments", purpose: "Handle customer payments" });
28
30
  nexo inspect ./dist/app.js
29
31
  ```
30
32
 
33
+ **Project config** — omit the path and the CLI looks for a `nexo.config.json` in the current directory, or a parent directory, with the shape:
34
+
35
+ ```json
36
+ { "app": "./dist/app.js" }
37
+ ```
38
+
39
+ `app` is resolved relative to the config file's own directory, so it works the same no matter which subdirectory you run `nexo` from. Run `nexo inspect` from anywhere under a project with this config and it just works — no path needed.
40
+
31
41
  ## Commands
32
42
 
33
43
  ```bash
34
- nexo inspect <app-path> # application summary + module list
35
- nexo inspect <app-path> <moduleName> # one module's full detail
36
- nexo status <app-path> # development state
37
- nexo context <app-path> # raw JSON manifest (buildContext output)
44
+ nexo inspect [app-path] [moduleName] # application summary, or one module's full detail
45
+ nexo inspect [--module moduleName] # same, using nexo.config.json for the app path
46
+ nexo status [app-path] # development state
47
+ nexo context [app-path] # raw JSON manifest (buildContext output)
38
48
  ```
39
49
 
50
+ `app-path` is optional in every form above — when omitted, the CLI falls back to `nexo.config.json`. `--module` is only meaningful for `inspect`, and only when `app-path` is omitted (when a path is given, the module name is just the next positional argument, as before).
51
+
40
52
  Example:
41
53
 
42
54
  ```text
@@ -73,7 +85,7 @@ APIs:
73
85
 
74
86
  ## Status
75
87
 
76
- **v0.1-alpha.** No config-file convention yet (so `nexo inspect` alone doesn't work from a project root — an explicit path is required), no write commands.
88
+ **v0.1-alpha.** No write commands.
77
89
 
78
90
  ## License
79
91
 
package/dist/cli.js CHANGED
@@ -1,27 +1,60 @@
1
1
  #!/usr/bin/env node
2
2
  import { loadApplication } from "./load-application.js";
3
- import { context, inspect, status } from "./commands.js";
3
+ import { resolveConfiguredAppPath } from "./config.js";
4
+ import { context, health, inspect, status, validate } from "./commands.js";
4
5
  const USAGE = `Usage:
5
- nexo inspect <app-module-path> [moduleName]
6
- nexo status <app-module-path>
7
- nexo context <app-module-path>`;
6
+ nexo inspect [app-module-path] [moduleName]
7
+ nexo inspect [--module moduleName]
8
+ nexo status [app-module-path]
9
+ nexo context [app-module-path]
10
+ nexo validate [app-module-path]
11
+ nexo health [app-module-path]
12
+
13
+ If app-module-path is omitted, Nexo looks for a "nexo.config.json" in the
14
+ current directory or a parent directory, with the shape:
15
+ { "app": "./dist/app.js" }`;
8
16
  async function main() {
9
- const [command, appPath, arg] = process.argv.slice(2);
10
- if (command === undefined || appPath === undefined) {
17
+ const [command, ...rest] = process.argv.slice(2);
18
+ if (command === undefined) {
11
19
  console.error(USAGE);
12
20
  process.exitCode = 1;
13
21
  return;
14
22
  }
15
- const app = await loadApplication(appPath);
23
+ let appPath;
24
+ let moduleName;
25
+ const [first, second] = rest;
26
+ if (first !== undefined && !first.startsWith("--")) {
27
+ appPath = first;
28
+ moduleName = second;
29
+ }
30
+ else {
31
+ const moduleFlagIndex = rest.indexOf("--module");
32
+ if (moduleFlagIndex !== -1) {
33
+ moduleName = rest[moduleFlagIndex + 1];
34
+ }
35
+ appPath = await resolveConfiguredAppPath(process.cwd());
36
+ }
37
+ if (appPath === undefined) {
38
+ console.error(`No app path given and no "nexo.config.json" found.\n\n${USAGE}`);
39
+ process.exitCode = 1;
40
+ return;
41
+ }
42
+ const { app, knowledge } = await loadApplication(appPath);
16
43
  switch (command) {
17
44
  case "inspect":
18
- console.log(inspect(app, arg));
45
+ console.log(inspect(app, knowledge, moduleName));
19
46
  return;
20
47
  case "status":
21
- console.log(status(app));
48
+ console.log(status(app, knowledge));
22
49
  return;
23
50
  case "context":
24
- console.log(context(app));
51
+ console.log(context(app, knowledge));
52
+ return;
53
+ case "validate":
54
+ console.log(validate(app));
55
+ return;
56
+ case "health":
57
+ console.log(health(app));
25
58
  return;
26
59
  default:
27
60
  console.error(`Unknown command "${command}".\n\n${USAGE}`);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,KAAK,GAAG;;;iCAGmB,CAAC;AAElC,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEtD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAE3C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/B,OAAO;QACT,KAAK,QAAQ;YACX,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,OAAO;QACT,KAAK,SAAS;YACZ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,OAAO;QACT;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,SAAS,KAAK,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE3E,MAAM,KAAK,GAAG;;;;;;;;;;6BAUe,CAAC;AAE9B,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,OAA2B,CAAC;IAChC,IAAI,UAA8B,CAAC;IAEnC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAE7B,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,GAAG,KAAK,CAAC;QAChB,UAAU,GAAG,MAAM,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3B,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CACX,yDAAyD,KAAK,EAAE,CACjE,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAE1D,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;YACjD,OAAO;QACT,KAAK,QAAQ;YACX,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;YACpC,OAAO;QACT,KAAK,SAAS;YACZ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;YACrC,OAAO;QACT,KAAK,UAAU;YACb,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,OAAO;QACT,KAAK,QAAQ;YACX,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,OAAO;QACT;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,SAAS,KAAK,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -1,5 +1,8 @@
1
1
  import type { NexoApplication } from "@nexo-alpha/core";
2
- export declare function inspect(app: NexoApplication, moduleName?: string): string;
3
- export declare function status(app: NexoApplication): string;
4
- export declare function context(app: NexoApplication): string;
2
+ import { type ApplicationKnowledge } from "@nexo-alpha/context";
3
+ export declare function inspect(app: NexoApplication, knowledge: ApplicationKnowledge | undefined, moduleName?: string): string;
4
+ export declare function status(app: NexoApplication, knowledge: ApplicationKnowledge | undefined): string;
5
+ export declare function context(app: NexoApplication, knowledge: ApplicationKnowledge | undefined): string;
6
+ export declare function validate(app: NexoApplication): string;
7
+ export declare function health(app: NexoApplication): string;
5
8
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAQxD,wBAAgB,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBzE;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAEnD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAEpD"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAA+B,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAU7F,wBAAgB,OAAO,CACrB,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,oBAAoB,GAAG,SAAS,EAC3C,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAmBR;AAED,wBAAgB,MAAM,CACpB,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,oBAAoB,GAAG,SAAS,GAC1C,MAAM,CAQR;AAED,wBAAgB,OAAO,CACrB,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,oBAAoB,GAAG,SAAS,GAC1C,MAAM,CAER;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAKrD;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAGnD"}
package/dist/commands.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { buildContext, contextToJson } from "@nexo-alpha/context";
2
- import { renderApplicationSummary, renderDevelopmentState, renderModuleDetail } from "./render.js";
3
- export function inspect(app, moduleName) {
4
- const context = buildContext(app);
2
+ import { createVerificationInterface } from "@nexo-alpha/tools";
3
+ import { renderApplicationSummary, renderDevelopmentState, renderHealth, renderModuleDetail, renderValidation } from "./render.js";
4
+ export function inspect(app, knowledge, moduleName) {
5
+ const context = buildContext(app, knowledge);
5
6
  if (moduleName === undefined) {
6
7
  return renderApplicationSummary(context);
7
8
  }
@@ -15,10 +16,26 @@ export function inspect(app, moduleName) {
15
16
  }
16
17
  return renderModuleDetail(module);
17
18
  }
18
- export function status(app) {
19
- return renderDevelopmentState(app.getDevelopmentState());
19
+ export function status(app, knowledge) {
20
+ const devState = knowledge?.getDevelopmentState() ?? {
21
+ completed: [],
22
+ inProgress: [],
23
+ blocked: [],
24
+ knownIssues: []
25
+ };
26
+ return renderDevelopmentState(devState);
20
27
  }
21
- export function context(app) {
22
- return contextToJson(buildContext(app));
28
+ export function context(app, knowledge) {
29
+ return contextToJson(buildContext(app, knowledge));
30
+ }
31
+ export function validate(app) {
32
+ const verify = createVerificationInterface(app);
33
+ const archResult = verify.validateArchitecture();
34
+ const configResult = verify.validateConfiguration();
35
+ return renderValidation(archResult.issues, configResult.issues);
36
+ }
37
+ export function health(app) {
38
+ const verify = createVerificationInterface(app);
39
+ return renderHealth(verify.checkApplicationHealth());
23
40
  }
24
41
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,MAAM,UAAU,OAAO,CAAC,GAAoB,EAAE,UAAmB;IAC/D,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAElE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,UAAU,GACd,KAAK,CAAC,MAAM,GAAG,CAAC;YACd,CAAC,CAAC,yBAAyB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC9C,CAAC,CAAC,8CAA8C,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,WAAW,UAAU,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAoB;IACzC,OAAO,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAoB;IAC1C,OAAO,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAA6B,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,MAAM,UAAU,OAAO,CACrB,GAAoB,EACpB,SAA2C,EAC3C,UAAmB;IAEnB,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAE7C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAElE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,UAAU,GACd,KAAK,CAAC,MAAM,GAAG,CAAC;YACd,CAAC,CAAC,yBAAyB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC9C,CAAC,CAAC,8CAA8C,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,WAAW,UAAU,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,GAAoB,EACpB,SAA2C;IAE3C,MAAM,QAAQ,GAAG,SAAS,EAAE,mBAAmB,EAAE,IAAI;QACnD,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE;KAChB,CAAC;IACF,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,GAAoB,EACpB,SAA2C;IAE3C,OAAO,aAAa,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAoB;IAC3C,MAAM,MAAM,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IACjD,MAAM,YAAY,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IACpD,OAAO,gBAAgB,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAoB;IACzC,MAAM,MAAM,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAChD,OAAO,YAAY,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface NexoConfig {
2
+ readonly app: string;
3
+ }
4
+ export declare function findNexoConfig(startDir: string): Promise<string | undefined>;
5
+ export declare function resolveConfiguredAppPath(startDir: string): Promise<string | undefined>;
6
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkBlF;AAED,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAqB7B"}
package/dist/config.js ADDED
@@ -0,0 +1,33 @@
1
+ import { existsSync } from "node:fs";
2
+ import { readFile } from "node:fs/promises";
3
+ import { dirname, join, resolve } from "node:path";
4
+ const CONFIG_FILE_NAME = "nexo.config.json";
5
+ export async function findNexoConfig(startDir) {
6
+ let dir = resolve(startDir);
7
+ while (true) {
8
+ const candidate = join(dir, CONFIG_FILE_NAME);
9
+ if (existsSync(candidate)) {
10
+ return candidate;
11
+ }
12
+ const parent = dirname(dir);
13
+ if (parent === dir) {
14
+ return undefined;
15
+ }
16
+ dir = parent;
17
+ }
18
+ }
19
+ export async function resolveConfiguredAppPath(startDir) {
20
+ const configPath = await findNexoConfig(startDir);
21
+ if (configPath === undefined) {
22
+ return undefined;
23
+ }
24
+ const raw = await readFile(configPath, "utf8");
25
+ const parsed = JSON.parse(raw);
26
+ if (typeof parsed !== "object" ||
27
+ parsed === null ||
28
+ typeof parsed.app !== "string") {
29
+ throw new Error(`"${configPath}" must have a string "app" field, e.g. { "app": "./dist/app.js" }.`);
30
+ }
31
+ return resolve(dirname(configPath), parsed.app);
32
+ }
33
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAM5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5B,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAE9C,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAE5B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAgB;IAEhB,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IAElD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAExC,IACE,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI;QACf,OAAQ,MAA4B,CAAC,GAAG,KAAK,QAAQ,EACrD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,IAAI,UAAU,oEAAoE,CACnF,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAG,MAAqB,CAAC,GAAG,CAAC,CAAC;AAClE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export { loadApplication } from "./load-application.js";
2
+ export { findNexoConfig, resolveConfiguredAppPath } from "./config.js";
3
+ export type { NexoConfig } from "./config.js";
2
4
  export { inspect, status, context } from "./commands.js";
3
5
  export { renderApplicationSummary, renderModuleDetail, renderDevelopmentState } from "./render.js";
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACR,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,cAAc,EACd,wBAAwB,EACzB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,UAAU,EACX,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACR,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { loadApplication } from "./load-application.js";
2
+ export { findNexoConfig, resolveConfiguredAppPath } from "./config.js";
2
3
  export { inspect, status, context } from "./commands.js";
3
4
  export { renderApplicationSummary, renderModuleDetail, renderDevelopmentState } from "./render.js";
4
5
  //# 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":"AAAA,OAAO,EACL,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACR,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,cAAc,EACd,wBAAwB,EACzB,MAAM,aAAa,CAAC;AAMrB,OAAO,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACR,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,aAAa,CAAC"}
@@ -1,3 +1,8 @@
1
1
  import type { NexoApplication } from "@nexo-alpha/core";
2
- export declare function loadApplication(modulePath: string): Promise<NexoApplication>;
2
+ import type { ApplicationKnowledge } from "@nexo-alpha/context";
3
+ export interface LoadedApplication {
4
+ readonly app: NexoApplication;
5
+ readonly knowledge?: ApplicationKnowledge | undefined;
6
+ }
7
+ export declare function loadApplication(modulePath: string): Promise<LoadedApplication>;
3
8
  //# sourceMappingURL=load-application.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-application.d.ts","sourceRoot":"","sources":["../src/load-application.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAUxD,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAe1B"}
1
+ {"version":3,"file":"load-application.d.ts","sourceRoot":"","sources":["../src/load-application.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;CACvD;AAkBD,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC,CAmB5B"}
@@ -5,6 +5,11 @@ function isNexoApplication(value) {
5
5
  value !== null &&
6
6
  typeof value.getModules === "function");
7
7
  }
8
+ function isApplicationKnowledge(value) {
9
+ return (typeof value === "object" &&
10
+ value !== null &&
11
+ typeof value.getDecisions === "function");
12
+ }
8
13
  export async function loadApplication(modulePath) {
9
14
  const absolutePath = resolve(process.cwd(), modulePath);
10
15
  const imported = await import(pathToFileURL(absolutePath).href);
@@ -12,6 +17,9 @@ export async function loadApplication(modulePath) {
12
17
  if (!isNexoApplication(app)) {
13
18
  throw new Error(`"${modulePath}" does not export a Nexo application. Expected a named "app" export or default export with a Nexo application instance.`);
14
19
  }
15
- return app;
20
+ const knowledge = isApplicationKnowledge(imported.knowledge)
21
+ ? imported.knowledge
22
+ : undefined;
23
+ return { app, knowledge };
16
24
  }
17
25
  //# sourceMappingURL=load-application.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-application.js","sourceRoot":"","sources":["../src/load-application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAAkC,CAAC,UAAU,KAAK,UAAU,CACrE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB;IAElB,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,QAAQ,GAA4B,MAAM,MAAM,CACpD,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CACjC,CAAC;IAEF,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC;IAE7C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,IAAI,UAAU,yHAAyH,CACxI,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"load-application.js","sourceRoot":"","sources":["../src/load-application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AASzC,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAAkC,CAAC,UAAU,KAAK,UAAU,CACrE,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAAoC,CAAC,YAAY,KAAK,UAAU,CACzE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB;IAElB,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,QAAQ,GAA4B,MAAM,MAAM,CACpD,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CACjC,CAAC;IAEF,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC;IAE7C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,IAAI,UAAU,yHAAyH,CACxI,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1D,CAAC,CAAC,QAAQ,CAAC,SAAS;QACpB,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AAC5B,CAAC"}
package/dist/render.d.ts CHANGED
@@ -1,6 +1,27 @@
1
- import type { DevelopmentState } from "@nexo-alpha/core";
2
- import type { ApplicationContext, ModuleContext } from "@nexo-alpha/context";
1
+ import type { ApplicationContext, DevelopmentState, ModuleContext } from "@nexo-alpha/context";
3
2
  export declare function renderApplicationSummary(context: ApplicationContext): string;
4
3
  export declare function renderModuleDetail(module: ModuleContext): string;
5
4
  export declare function renderDevelopmentState(state: DevelopmentState): string;
5
+ export declare function renderValidation(archIssues: readonly {
6
+ severity: string;
7
+ message: string;
8
+ target?: string;
9
+ }[], configIssues: readonly {
10
+ severity: string;
11
+ message: string;
12
+ target?: string;
13
+ }[]): string;
14
+ export declare function renderHealth(health: {
15
+ state: string;
16
+ moduleCount: number;
17
+ apiCount: number;
18
+ serviceCount: number;
19
+ architecture: {
20
+ valid: boolean;
21
+ issues: readonly {
22
+ severity: string;
23
+ message: string;
24
+ }[];
25
+ };
26
+ }): string;
6
27
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQ7E,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAiB5E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAuChE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAwBtE"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAS/F,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAiB5E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAuChE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAwBtE;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,YAAY,EAAE,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,CAmBvM;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,SAAS;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;CAC5F,GAAG,MAAM,CAYT"}
package/dist/render.js CHANGED
@@ -37,4 +37,32 @@ export function renderDevelopmentState(state) {
37
37
  lines.push("Current objective:", state.currentObjective !== undefined ? ` ${state.currentObjective}` : " (none)", "", "Completed:", renderList(state.completed), "", "In progress:", renderList(state.inProgress), "", "Blocked:", renderList(state.blocked), "", "Known issues:", renderList(state.knownIssues), "", "Next step:", state.nextStep !== undefined ? ` ${state.nextStep}` : " (none)");
38
38
  return lines.join("\n");
39
39
  }
40
+ export function renderValidation(archIssues, configIssues) {
41
+ const all = [...archIssues, ...configIssues];
42
+ if (all.length === 0) {
43
+ return "Nexo Validation: PASSED (0 issues)";
44
+ }
45
+ const errors = all.filter((i) => i.severity === "error");
46
+ const warnings = all.filter((i) => i.severity === "warning");
47
+ const lines = [
48
+ `Nexo Validation: ${errors.length === 0 ? "PASSED WITH WARNINGS" : "FAILED"} (${errors.length} errors, ${warnings.length} warnings)`,
49
+ ""
50
+ ];
51
+ for (const issue of all) {
52
+ lines.push(`[${issue.severity.toUpperCase()}] ${issue.message}`);
53
+ }
54
+ return lines.join("\n");
55
+ }
56
+ export function renderHealth(health) {
57
+ const lines = [
58
+ "Nexo Application Health",
59
+ "",
60
+ `State: ${health.state}`,
61
+ `Modules: ${health.moduleCount}`,
62
+ `APIs: ${health.apiCount}`,
63
+ `Services: ${health.serviceCount}`,
64
+ `Architecture Valid: ${health.architecture.valid ? "YES" : "NO"} (${health.architecture.issues.length} issues)`
65
+ ];
66
+ return lines.join("\n");
67
+ }
40
68
  //# sourceMappingURL=render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexo-alpha/cli",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Command-line interface for the Nexo framework",
5
5
  "keywords": [
6
6
  "nexo",
@@ -23,12 +23,16 @@
23
23
  "import": "./dist/index.js"
24
24
  }
25
25
  },
26
+ "publishConfig": {
27
+ "access": "public"
28
+ },
26
29
  "files": [
27
30
  "dist"
28
31
  ],
29
32
  "dependencies": {
30
- "@nexo-alpha/core": "0.1.2",
31
- "@nexo-alpha/context": "0.1.0"
33
+ "@nexo-alpha/core": "0.2.0",
34
+ "@nexo-alpha/context": "0.2.0",
35
+ "@nexo-alpha/tools": "0.2.0"
32
36
  },
33
37
  "scripts": {
34
38
  "build": "tsc -p tsconfig.json",