@neocompose/cli 0.68.1 → 0.68.3
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 +17 -0
- package/dist/neo.mjs +8961 -8090
- package/dist/test-worker.mjs +6 -0
- package/package.json +1 -1
- package/skills/neocompose-cli/SKILL.md +4 -3
- package/skills/neocompose-cli/references/cli-development.md +2 -2
- package/skills/neocompose-cli/references/values-identities-and-references.md +29 -3
package/dist/test-worker.mjs
CHANGED
|
@@ -49549,6 +49549,12 @@ var SOURCE_TYPE_NAME_BY_MEMBER_KIND_NUMBER = new Map(
|
|
|
49549
49549
|
])
|
|
49550
49550
|
);
|
|
49551
49551
|
|
|
49552
|
+
// src/project-source/value-sources.ts
|
|
49553
|
+
var INITIALIZER_KEY_PLACEHOLDER = new RegExp(
|
|
49554
|
+
`${PENDING_ID_PREFIX}reference-key:init:\\d+`,
|
|
49555
|
+
"g"
|
|
49556
|
+
);
|
|
49557
|
+
|
|
49552
49558
|
// src/project-manifest/record-adapters/enum.ts
|
|
49553
49559
|
var ENUM_SCHEMA_RECORD_ADAPTER = {
|
|
49554
49560
|
recordKind: "enum",
|
package/package.json
CHANGED
|
@@ -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.68.
|
|
12
|
+
<!-- reviewed-through-cli: 0.68.3 -->
|
|
13
13
|
|
|
14
14
|
# Neo Compose CLI
|
|
15
15
|
|
|
@@ -63,8 +63,9 @@ opaque JSON or guessed syntax.
|
|
|
63
63
|
values, files, or other records. `@system` is reserved for platform-owned
|
|
64
64
|
system records; authoring it can make the record uneditable.
|
|
65
65
|
- Preserve existing `@id` annotations through rename, reorder, and file moves.
|
|
66
|
-
A
|
|
67
|
-
|
|
66
|
+
A copy must get a new ID. A stored nested class value may keep its UUID-v4
|
|
67
|
+
when moved between compatible empty fields on existing parents, provided
|
|
68
|
+
its old parent no longer declares it. See the identity reference for limits.
|
|
68
69
|
- Omit `@id` on new ordinary declarations and nested rows unless a same-push
|
|
69
70
|
structural reference genuinely requires an explicit UUID. A successful push
|
|
70
71
|
assigns the durable IDs and rewrites source.
|
|
@@ -78,7 +78,7 @@ run with `npm run lint:architecture`.
|
|
|
78
78
|
|
|
79
79
|
Keep project context refreshable without accumulating stale Monaco providers or
|
|
80
80
|
LSP state. Preserve diagnostics, completion, hover, signatures, definition,
|
|
81
|
-
references, rename, symbols, semantic tokens, code actions, and formatting
|
|
81
|
+
references, implementations, rename, symbols, semantic tokens, code actions, and formatting
|
|
82
82
|
parity for `.neo` and `.neoflow`.
|
|
83
83
|
|
|
84
84
|
The CLI prepares every push with the server's own preparation code: it
|
|
@@ -110,7 +110,7 @@ wrappers.
|
|
|
110
110
|
The marker near the top of `SKILL.md` must exactly match the package version:
|
|
111
111
|
|
|
112
112
|
```html
|
|
113
|
-
<!-- reviewed-through-cli: 0.68.
|
|
113
|
+
<!-- reviewed-through-cli: 0.68.3 -->
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
The quoted version above is checked too, so this instruction cannot go stale
|
|
@@ -57,12 +57,33 @@ keys as quoted IDs when their option has been deleted.
|
|
|
57
57
|
|
|
58
58
|
## Identity rules
|
|
59
59
|
|
|
60
|
-
Preserve every existing ID through rename, reorder, and file moves. A
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
Preserve every existing ID through rename, reorder, and file moves. A copy
|
|
61
|
+
must get a new ID. A stored nested class value may keep its UUID-v4 when moved
|
|
62
|
+
to an empty, compatible class field on another existing parent. Remove its
|
|
63
|
+
old owning declaration in the same push. Both fields must declare the same
|
|
64
|
+
non-generic class and storage rules. The move must leave exactly one owning
|
|
65
|
+
path to the same root or static binding through ordinary class fields.
|
|
66
|
+
Both ownership paths must use inherited storage and automatic distribution;
|
|
67
|
+
member overrides are not supported for moves. Moving
|
|
68
|
+
projected values, constructor-owned slots, partitioned values, generic
|
|
69
|
+
instances, or unordered-list entries is refused. Moves into newly constructed
|
|
70
|
+
parents are also refused; omit the ID to create a new value there.
|
|
71
|
+
|
|
72
|
+
For a new ordinary record, omit
|
|
63
73
|
`@id` and let a successful real push assign and insert it. Dry-run and failed pushes
|
|
64
74
|
leave tracked source unchanged.
|
|
65
75
|
|
|
76
|
+
A local initializer's existing row ID may precede its variable declaration:
|
|
77
|
+
|
|
78
|
+
```neo
|
|
79
|
+
@id("existing-quest-row-id")
|
|
80
|
+
Quest HardAsStone = new Quest() { Name = "Hard as stone" };
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
This names the initializer row. It does not create a stored global. The inline
|
|
84
|
+
`Quest HardAsStone = @id("...") new Quest();` spelling is also accepted, and
|
|
85
|
+
formatting moves its ID above the declaration. Do not put an ID in both places.
|
|
86
|
+
|
|
66
87
|
Nested class/list rows remain independently addressable and keep inline IDs:
|
|
67
88
|
|
|
68
89
|
```neo
|
|
@@ -80,6 +101,11 @@ form, an author may assign a previously unseen UUID-v4 with `@id` to the new
|
|
|
80
101
|
row and reference it in the same edit. Reusing an existing ID means update, not
|
|
81
102
|
create. The server validates authored new IDs for UUID-v4 shape and uniqueness.
|
|
82
103
|
Prefer generated IDs unless the structural reference needs an ID immediately.
|
|
104
|
+
Dry-run preserves a valid authored UUID-v4 ID on a new nested member or dictionary
|
|
105
|
+
value, including one declared as a local initializer. An unknown malformed member
|
|
106
|
+
value ID is an error at its annotation; remove `@id` to let push assign the ID,
|
|
107
|
+
or supply an unused UUID v4. This does not change the derived identity of a
|
|
108
|
+
root/static binding or an existing projected value.
|
|
83
109
|
|
|
84
110
|
Do not invent IDs for structural rows whose identities derive from an owner
|
|
85
111
|
role. Do not add a separate root/static initializer ID. A constructor argument
|