@dforge-core/dforge-mcp 0.2.2 → 0.2.4
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 +38 -0
- package/dist/server.js +383 -336
- package/package.json +46 -46
- package/resources/docs/dsl-reference.md +72 -0
- package/resources/schemas/data-views.schema.json +16 -3
- package/resources/schemas/folders.schema.json +18 -2
- package/resources/schemas/reports.schema.json +18 -2
- package/skills/dforge-mcp-author/references/action-dsl.md +44 -1
- package/skills/dforge-mcp-author/references/reports.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,44 @@ 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.2.3
|
|
8
|
+
|
|
9
|
+
Catches up with the platform's current-user work: `currentUserId()` exists now,
|
|
10
|
+
and the three ways an author can get this wrong each get their own diagnostic
|
|
11
|
+
instead of a generic "unknown function".
|
|
12
|
+
|
|
13
|
+
### Fixed — `dforge_action_check` flagged real built-ins as unknown
|
|
14
|
+
|
|
15
|
+
`DSL_BUILTINS` is a hand-maintained mirror of `DslBuiltins.FunctionNames` in
|
|
16
|
+
dForge-core, and it had drifted: `addMinutes`, `applyProfile` and
|
|
17
|
+
`getFileBase64` were missing, so a module using them was told its correct code
|
|
18
|
+
was wrong. Nothing compared the two lists, which is why it went unnoticed.
|
|
19
|
+
`test/dsl-builtins-drift.test.ts` now asserts they match in both directions,
|
|
20
|
+
parsing the authoritative list out of a sibling dForge-core checkout.
|
|
21
|
+
|
|
22
|
+
### Added — `userId()` and `CURRENT_USER_ID()` diagnostics
|
|
23
|
+
|
|
24
|
+
- **`userId()`** is now an `error` (`user-id-called-as-function`) carrying the
|
|
25
|
+
platform's own sentence: *'userId' is a value, not a function — write 'userId'
|
|
26
|
+
without parentheses, or 'currentUserId()'*. It used to draw only a generic
|
|
27
|
+
`unknown-builtin` warning that called `userId` "not a DSL host function",
|
|
28
|
+
which is misleading — it is a host value, just not callable. The platform
|
|
29
|
+
rejects this at compile time now, so the checker matches its severity.
|
|
30
|
+
- **`CURRENT_USER_ID()`** in `execute:` joins `TODAY()`/`NOW()` as formula-only.
|
|
31
|
+
The message is per-function rather than date-specific, so it points at
|
|
32
|
+
`currentUserId()` here and `now()` there.
|
|
33
|
+
- **`currentUserId()`** and bare **`userId`** both check clean.
|
|
34
|
+
|
|
35
|
+
### Changed — reference docs
|
|
36
|
+
|
|
37
|
+
`dsl-reference.md` and the skill's `action-dsl.md` gain the full built-in list,
|
|
38
|
+
the formula-vs-`execute:` split for `CURRENT_USER_ID()`, and the 64-bit id
|
|
39
|
+
contract: ids are BigInt inside `execute:` and stay exact, arithmetic mixing
|
|
40
|
+
BigInt and Number throws, and a large id written as a bare numeric literal
|
|
41
|
+
rounds before the comparison runs. The skill reference also drops
|
|
42
|
+
`IF(condition, trueVal, falseVal)`, which it listed as an `execute:` ternary
|
|
43
|
+
helper — it is formula-only and the compiler rejects it.
|
|
44
|
+
|
|
7
45
|
## 0.2.2
|
|
8
46
|
|
|
9
47
|
Mirrors the platform change that gives the `M` column flag its meaning — in the
|