@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 +34 -0
- package/README.md +4 -2
- package/dist/server.js +353 -310
- package/docs/creating-modules.md +4 -3
- package/package.json +1 -1
- package/skills/dforge-mcp-author/SKILL.md +16 -5
- package/skills/dforge-mcp-author/references/data-views.md +5 -3
- package/skills/dforge-mcp-author/references/validation-checklist.md +7 -6
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. `
|
|
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 |
|