@neocompose/cli 0.32.1 → 0.32.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
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.32.2] - 2026-08-18
4
+
5
+ ### Fixed
6
+
7
+ - Preserve abstract NeoScript functions as `NSFunction` declarations when
8
+ lowering prospective project candidates, so concrete overrides inherit their
9
+ signature during `neo test` and push validation.
10
+
3
11
  ## [0.32.1] - 2026-08-18
4
12
 
5
13
  ### Fixed
package/dist/neo.mjs CHANGED
@@ -57038,6 +57038,16 @@ function lowerMemberKind(context, ownerClass, declaration, id2, owner) {
57038
57038
  script: null
57039
57039
  };
57040
57040
  }
57041
+ if (declaration.modifiers.includes("abstract")) {
57042
+ return {
57043
+ ...common,
57044
+ kind: "scriptFunction",
57045
+ returnType,
57046
+ arguments: argumentsValue,
57047
+ deferred: declaration.modifiers.includes("async"),
57048
+ script: null
57049
+ };
57050
+ }
57041
57051
  return {
57042
57052
  ...common,
57043
57053
  kind: "function",
@@ -112241,7 +112251,7 @@ var init_registry2 = __esm({
112241
112251
  PROJECT_SCHEMA_CONTRACT = Object.freeze({
112242
112252
  formatVersion: 3,
112243
112253
  contractVersion: "3.13",
112244
- cliVersion: "0.32.1",
112254
+ cliVersion: "0.32.2",
112245
112255
  projectFileUploadBatchSize: 32,
112246
112256
  documentRecords: {
112247
112257
  member: {
@@ -118836,7 +118846,7 @@ There is no --keep-current: preserving current semantic state defines flatten.
118836
118846
  async function main() {
118837
118847
  const args = parseArgs(process.argv.slice(2));
118838
118848
  if (args.command === "--version") {
118839
- console.log("0.32.1");
118849
+ console.log("0.32.2");
118840
118850
  return;
118841
118851
  }
118842
118852
  if (args.command === null || args.command === "help" || args.command === "--help" || args.command === "-h") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neocompose/cli",
3
- "version": "0.32.1",
3
+ "version": "0.32.2",
4
4
  "description": "Neo Compose native project-source CLI with bidirectional sync.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -9,7 +9,7 @@ description: >-
9
9
  `@neocompose/cli` or `node cli/bin/neo.mjs` in the neo-compose repository.
10
10
  ---
11
11
 
12
- <!-- reviewed-through-cli: 0.32.1 -->
12
+ <!-- reviewed-through-cli: 0.32.2 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -83,7 +83,7 @@ wrappers.
83
83
  The marker near the top of `SKILL.md` must exactly match the package version:
84
84
 
85
85
  ```html
86
- <!-- reviewed-through-cli: 0.32.1 -->
86
+ <!-- reviewed-through-cli: 0.32.2 -->
87
87
  ```
88
88
 
89
89
  The quoted version above is checked too, so this instruction cannot go stale
@@ -24,6 +24,10 @@ Declare a setter's value type explicitly with the canonical form
24
24
  `set(int value) { ... }`. Project analysis, candidate materialization, and
25
25
  focused script commands all use the same accessor extraction.
26
26
 
27
+ Declare a bodyless NeoScript contract with `abstract`, for example
28
+ `public abstract bool Equals(Item other);`. Reserve `native` for host-provided
29
+ functions; concrete NeoScript overrides inherit the abstract signature.
30
+
27
31
  Use the shared language service through focused commands:
28
32
 
29
33
  ```sh