@mindees/cli 0.13.0 โ†’ 0.14.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
@@ -4,10 +4,12 @@
4
4
  build them with the Mindees Compiler, and diagnose your environment. Zero
5
5
  third-party dependencies (built on `node:util` `parseArgs`).
6
6
 
7
- > **Status: ๐Ÿงช Experimental (Phase 5).** `create`, `build`, `doctor`, `info`,
8
- > and the dev **rebuild orchestrator** are implemented and tested. The live
9
- > dev-server **HTTP/HMR transport** is a developer preview. On-device NLโ†’app
10
- > generation is Phase 11 (Synapse) โ€” today `--prompt` maps to a template deterministically.
7
+ > **Status: ๐Ÿงช Experimental (pre-1.0).** `create` (three templates), `build`,
8
+ > `dev` (build + watch + a real **live-reload HTTP server**), `doctor`, `info`,
9
+ > and `ai explain` are implemented and tested. The live dev-server HTTP/HMR
10
+ > transport works today; it stays a developer-preview layer (long-poll reload,
11
+ > not yet module-level HMR). On-device NLโ†’app generation is Phase 10 (Synapse) โ€”
12
+ > today `--prompt` maps to a template deterministically (offline keyword mapping).
11
13
 
12
14
  ## Install
13
15
 
@@ -20,14 +22,19 @@ npm create mindees@latest
20
22
  ## Commands
21
23
 
22
24
  ```bash
23
- mindees create <name-or-path> [--template blank|counter] [--prompt "..."] [--force]
25
+ mindees create <name-or-path> [--template blank|counter|app] [--prompt "..."] [--force]
24
26
  mindees build [--out-dir <dir>] [--no-source-map]
27
+ mindees dev # build + watch src/ + live-reload HTTP server (MINDEES_DEV_PORT, default 3000)
25
28
  mindees doctor # diagnose Node / package manager / project / deps
26
29
  mindees info # CLI + environment info
27
- mindees dev # rebuild-on-change (developer preview)
30
+ mindees ai explain <error message...> # explain an error with AI (needs MINDEES_AI_* env)
28
31
  mindees help
29
32
  ```
30
33
 
34
+ Templates: **`blank`** (one minimal screen), **`counter`** (signals + fine-grained
35
+ reactivity), and **`app`** (a polished starter wired to Atlas components, a hook,
36
+ and theming โ€” batteries included).
37
+
31
38
  ```text
32
39
  $ mindees create my-app --template counter
33
40
  Created "my-app" from the counter template (6 files).
@@ -36,6 +43,10 @@ Next: cd "my-app" && pnpm install && mindees dev
36
43
  $ mindees build
37
44
  Built 3 module(s); flattened 4/9 elements.
38
45
 
46
+ $ mindees dev
47
+ mindees dev โ€” serving http://localhost:3000 (live reload on)
48
+ rebuilt: 3 file(s) ok
49
+
39
50
  $ mindees doctor
40
51
  โœ“ Node.js: v24.7.0
41
52
  โœ“ Package manager: pnpm 11.5.0
@@ -64,14 +75,25 @@ an `EnvProbe`, and a `Writer` โ€” so the entire CLI is deterministic in tests. T
64
75
  `EnvProbe`.
65
76
  - **`startDev`** โ€” the rebuild orchestrator: builds once, rebuilds on each
66
77
  `Watcher` change, tracks build count + last result. The watcher and HMR
67
- transport are injected (the live server is the preview layer).
78
+ transport are injected, so the orchestrator stays deterministic in tests.
79
+ - **`createDevServer` / `createNodeWatcher`** โ€” the live-reload transport behind
80
+ `mindees dev`: a pure request handler that serves the app HTML with a tiny
81
+ injected poll-and-reload client plus a `/__mindees/version` endpoint, and a
82
+ debounced `node:fs.watch` adapter (one rebuild per save). The thin `bin` glue
83
+ wires them into a real `http.createServer`; the behavior (debounced change โ†’
84
+ rebuild โ†’ version bump โ†’ browser reload) is unit-tested.
85
+ - **`runAiCommand`** โ€” `mindees ai explain <error>` runs Synapse's `explainError`
86
+ (`@mindees/ai/devtools`) over a backend built from `MINDEES_AI_*` env
87
+ (`openai` or `anthropic` adapter). The backend is injected, so it's
88
+ deterministically testable with a mock.
68
89
 
69
90
  ## Library API
70
91
 
71
92
  Forge's internals are exported so other tooling (and `create-mindees`) can reuse
72
- them: `runCli`, `scaffold`, `buildProject`, `startDev`, `runDoctor`,
73
- `resolveCreateTarget`, `createMemoryFileSystem`, `TEMPLATES`,
74
- `naturalLanguageToTemplate`, and their types.
93
+ them: `runCli` / `runCliAsync`, `scaffold`, `buildProject`, `startDev`,
94
+ `createDevServer` / `createNodeWatcher` / `renderDevPage`, `runDoctor`,
95
+ `runAiCommand`, `resolveCreateTarget`, `createMemoryFileSystem`, `TEMPLATES` /
96
+ `getTemplate` / `materialize`, `naturalLanguageToTemplate`, and their types.
75
97
 
76
98
  ## License
77
99
 
package/dist/version.d.ts CHANGED
@@ -11,7 +11,7 @@
11
11
  * @module
12
12
  */
13
13
  /** The package version. All `@mindees/*` packages share one locked version line. */
14
- declare const VERSION = "0.13.0";
14
+ declare const VERSION = "0.14.0";
15
15
  //#endregion
16
16
  export { VERSION };
17
17
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -11,7 +11,7 @@
11
11
  * @module
12
12
  */
13
13
  /** The package version. All `@mindees/*` packages share one locked version line. */
14
- const VERSION = "0.13.0";
14
+ const VERSION = "0.14.0";
15
15
  //#endregion
16
16
  export { VERSION };
17
17
 
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","names":[],"sources":["../src/version.ts"],"sourcesContent":["/**\n * Single source of truth for the `@mindees/cli` package version.\n *\n * All `@mindees/*` packages share one locked version line (Changesets, fixed\n * group). Keeping it in its own dependency-free module lets both the public\n * package metadata ({@link index}) and the scaffolder's generated\n * `package.json` ({@link templates}) pin to the same value without a circular\n * import.\n *\n * @module\n */\n\n/** The package version. All `@mindees/*` packages share one locked version line. */\nexport const VERSION = '0.13.0'\n"],"mappings":";;;;;;;;;;;;;AAaA,MAAa,UAAU"}
1
+ {"version":3,"file":"version.js","names":[],"sources":["../src/version.ts"],"sourcesContent":["/**\n * Single source of truth for the `@mindees/cli` package version.\n *\n * All `@mindees/*` packages share one locked version line (Changesets, fixed\n * group). Keeping it in its own dependency-free module lets both the public\n * package metadata ({@link index}) and the scaffolder's generated\n * `package.json` ({@link templates}) pin to the same value without a circular\n * import.\n *\n * @module\n */\n\n/** The package version. All `@mindees/*` packages share one locked version line. */\nexport const VERSION = '0.14.0'\n"],"mappings":";;;;;;;;;;;;;AAaA,MAAa,UAAU"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindees/cli",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "MindeesNative Forge โ€” the `mindees` CLI: create, build (via the compiler), dev (rebuild orchestrator), doctor, info.",
5
5
  "license": "MIT OR Apache-2.0",
6
6
  "type": "module",
@@ -27,9 +27,9 @@
27
27
  "directory": "packages/cli"
28
28
  },
29
29
  "dependencies": {
30
- "@mindees/core": "0.13.0",
31
- "@mindees/compiler": "0.13.0",
32
- "@mindees/ai": "0.13.0"
30
+ "@mindees/core": "0.14.0",
31
+ "@mindees/compiler": "0.14.0",
32
+ "@mindees/ai": "0.14.0"
33
33
  },
34
34
  "scripts": {
35
35
  "build": "tsdown",