@neocompose/cli 0.70.1 → 0.70.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neocompose/cli",
3
- "version": "0.70.1",
3
+ "version": "0.70.3",
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.70.1 -->
12
+ <!-- reviewed-through-cli: 0.70.3 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -240,6 +240,27 @@ ID when the declaration keeps its `@id`; keep the symbol aligned with the
240
240
  persisted file name, or set `@settings(name: ...)` explicitly. The name must
241
241
  end with the binary's extension, as in `@settings(name: "ClinkingCoin1.mp3")`,
242
242
  because pull rebuilds the file's path from it.
243
+
244
+ A declaration can also live in its own file, with the registry listing it by
245
+ name the way a member lists a local value. Its `@id` and `@settings` stay on
246
+ the declaration:
247
+
248
+ ```neo
249
+ // Values/Audio/SWORD_HIT.neo
250
+ @id("sword-hit-audio-file-id")
251
+ @settings(template: SoundEffect)
252
+ NeoAudioClip SWORD_HIT = new("Files/AudioClips/SwordHit.wav");
253
+
254
+ // Files/AudioClips.neo
255
+ AudioClipRegistry AudioClips = new() {
256
+ NeoAudioClip SwordHit = SWORD_HIT;
257
+ }
258
+ ```
259
+
260
+ Pull preserves unchanged registry entries, comments, and authored order. New remote
261
+ entries append to the registry; deleted entries are removed in place. Generated
262
+ entries include `@settings(name: ...)` when the persisted name differs from the
263
+ binary basename.
243
264
  Omitting `@settings(template: ...)` uses the complete built-in Unity import
244
265
  defaults for that file kind.
245
266
 
@@ -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.70.1 -->
113
+ <!-- reviewed-through-cli: 0.70.3 -->
114
114
  ```
115
115
 
116
116
  The quoted version above is checked too, so this instruction cannot go stale
@@ -267,6 +267,12 @@ different. The name must end with the binary's extension, because pull
267
267
  rebuilds the file's path from it. With no template annotation, the CLI persists the complete built-in
268
268
  Unity defaults for the file kind.
269
269
 
270
+ A top-level `NeoImage` or `NeoAudioClip` declaration in any definition file
271
+ can stand in for an inline entry. The registry lists it by name
272
+ (`NeoAudioClip SwordHit = SWORD_HIT;`), and the declaration carries the `@id`,
273
+ `@settings`, and path. Push, pull and reset keep it in its own file. Every such
274
+ declaration must be listed exactly once.
275
+
270
276
  Pull/push compare server-verified SHA-256, not storage ETags. A divergent
271
277
  binary keeps local bytes and writes the verified remote side under
272
278
  `.neo/conflicts/files/<file-id>/`. A retained declaration with a missing binary