@dforge-core/dforge-mcp 0.1.1 → 0.1.2

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/CHANGELOG.md CHANGED
@@ -4,6 +4,40 @@ All notable changes to `@dforge-core/dforge-mcp`. This project uses semver-ish
4
4
  `0.1.0-rc.N` pre-release tags; the published version is set at publish time via
5
5
  the release workflow, so committed `package.json` versions are placeholders.
6
6
 
7
+ ## 0.1.2
8
+
9
+ ### Fixed
10
+ - **Windows CLI resolution & argument quoting (`native-shell`).** The PATH
11
+ fallback now routes a bare command name through `cmd.exe` so `PATHEXT`
12
+ resolves the `dforge-cli.cmd` shim that `npm install -g` drops on PATH —
13
+ previously `spawnSync` without a shell matched only an exact file and
14
+ `ENOENT`'d. Arguments are now quoted before the shell sees them (`shell:true`
15
+ performs no escaping), so a path with spaces no longer splits into multiple
16
+ args and a metacharacter (`&`, `|`, `>`, …) can't inject a second command;
17
+ `quoteWinArg` follows the `CommandLineToArgvW` rules. Spawn logic is
18
+ centralized in a single `spawnCli` helper shared by `run()` and
19
+ `installModule()`, with coverage in `test/native-shell.test.ts`.
20
+
21
+ ### Changed
22
+ - **`dforge_module_install` always returns raw CLI output.** The tool now
23
+ surfaces the raw CLI output, `exitCode`, and `command` on every call so the
24
+ agent can read a server-side validation failure and fix-and-retry instead of
25
+ getting a swallowed error.
26
+ - **`dforge_module_pack` description.** Clarified that it uses the bundled
27
+ `dforge-cli` package, then the PATH fallback, then the `DFORGE_CLI_BINARY`
28
+ override (was "Requires the dforge-cli native binary on PATH").
29
+
30
+ ### Added
31
+ - **Matrix data-view support.** Data-view guidance and schemas document matrix
32
+ views with `rangeControl` and per-column select values, alongside the
33
+ register/budgeting examples.
34
+
35
+ ### Skill
36
+ - `dforge-mcp-author`: reworked the Phase 6 flow into an explicit
37
+ **validate → pack → install → fix** retry loop (SKILL.md,
38
+ `validation-checklist.md`, `docs/creating-modules.md`), and refreshed the
39
+ module naming conventions in the manifest schema.
40
+
7
41
  ## 0.1.0-rc.13
8
42
 
9
43
  Single source of truth: the authoring tools now validate against
package/README.md CHANGED
@@ -35,6 +35,8 @@ DFORGE_CLI_BINARY=/Users/me/projects/dForge-core/cli/bin/dForge.Cli
35
35
 
36
36
  (macOS / Linux: no extension. Windows: `dForge.Cli.exe`.) If the path doesn't exist or isn't executable the server reports an error at the first pack/install call.
37
37
 
38
+ For AI-assisted module repair, Phase 6 is intentionally tool-driven: the skill runs `dforge_module_validate`, `dforge_module_pack`, and `dforge_module_install` itself. If install fails because the module is invalid, the install tool returns the raw CLI/server output plus `exitCode` and `command`; the AI reads that output, fixes the referenced module files, and repeats validate → pack → install. User action is needed only for environment failures such as missing CLI, missing/expired credentials, an unreachable tenant/API, permissions, or an invalid path.
39
+
38
40
  ## Install + wire into Claude Code
39
41
 
40
42
  ### Recommended — via `claude mcp add` (writes ~/.claude.json for you)
@@ -94,8 +96,8 @@ Phase 0 (identity → requirements → design → validation) is orchestrated by
94
96
  | `dforge_module_import` | Import a normalized **table-spec** (tables → columns → relationships) into an existing module as entities. Infers `fieldTypeCd` from SQL type / sample values / name (metadata-validated, `dbDatatype` derived) and builds the FK+Reference pair per relationship. Fed by DBML/SQL, Excel/CSV, or a hand-authored spec |
95
97
  | `dforge_module_inspect` | Read current module state. Full structured data is in `files["_inspect.json"]`; `summary` is one-line stats |
96
98
  | `dforge_module_validate` | Offline cross-reference check (run before pack): dangling FK targets, missing hidden-FK columns, view/menu/role refs to non-existent things, uncovered entities. Errors + warnings in `files["_validate.json"]` |
97
- | `dforge_module_pack` | Shells to `dforge-cli module pack`. Returns tarball path + size |
98
- | `dforge_module_install` | Shells to `dforge-cli module install`. Args: `pathOrTarball`, optional `tenantUrl` / `token` / `tenantCode` — fall back to `DFORGE_URL` / `DFORGE_TOKEN` env. `tenantCode` is an optional `--code` sanity check the server cross-references against the JWT |
99
+ | `dforge_module_pack` | Shells to `dforge-cli module pack` via bundled CLI, PATH fallback, or `DFORGE_CLI_BINARY`. Returns tarball path + size |
100
+ | `dforge_module_install` | Shells to `dforge-cli module install`. Args: `pathOrTarball`, optional `tenantUrl` / `token` / `tenantCode` — fall back to `DFORGE_URL` / `DFORGE_TOKEN` env. Returns `ok`, `exitCode`, `command`, and raw CLI `output` so the AI can fix install-time module defects and retry |
99
101
 
100
102
  **Entities (Phase 1)**
101
103
  | Tool | Behavior |