@neocompose/cli 0.21.4 → 0.21.5
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,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.21.5] - 2026-08-03
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Non-empty `neo push` rehearsals compile only the code-only member defaults
|
|
8
|
+
actually reached by canonical constructor replay, so stored animation graphs
|
|
9
|
+
no longer fail on dependencies such as `Down` that correctly omit derived IR
|
|
10
|
+
from the trusted source bundle.
|
|
11
|
+
|
|
3
12
|
## [0.21.4] - 2026-08-03
|
|
4
13
|
|
|
5
14
|
### Fixed
|
package/dist/neo.mjs
CHANGED
|
@@ -55412,7 +55412,7 @@ var init_constructor_argument_ownership = __esm({
|
|
|
55412
55412
|
});
|
|
55413
55413
|
|
|
55414
55414
|
// ../src/view-models/neoscript-evaluator/NSGetterRuntimeError.ts
|
|
55415
|
-
var NSGetterRuntimeError;
|
|
55415
|
+
var NSGetterRuntimeError, UncompiledInitializerRuntimeError;
|
|
55416
55416
|
var init_NSGetterRuntimeError = __esm({
|
|
55417
55417
|
"../src/view-models/neoscript-evaluator/NSGetterRuntimeError.ts"() {
|
|
55418
55418
|
"use strict";
|
|
@@ -55422,6 +55422,16 @@ var init_NSGetterRuntimeError = __esm({
|
|
|
55422
55422
|
this.name = "NSGetterRuntimeError";
|
|
55423
55423
|
}
|
|
55424
55424
|
};
|
|
55425
|
+
UncompiledInitializerRuntimeError = class extends NSGetterRuntimeError {
|
|
55426
|
+
constructor(memberId, memberName) {
|
|
55427
|
+
super(
|
|
55428
|
+
`Initializer for '${memberName}' has no compiled body; push the project so the server compiles it.`
|
|
55429
|
+
);
|
|
55430
|
+
this.memberId = memberId;
|
|
55431
|
+
this.name = "UncompiledInitializerRuntimeError";
|
|
55432
|
+
}
|
|
55433
|
+
memberId;
|
|
55434
|
+
};
|
|
55425
55435
|
}
|
|
55426
55436
|
});
|
|
55427
55437
|
|
|
@@ -56344,7 +56354,7 @@ var init_project2 = __esm({
|
|
|
56344
56354
|
|
|
56345
56355
|
// ../src/view-models/neoscript-evaluator/evaluateNSGetter.ts
|
|
56346
56356
|
function isCatchableNSRuntimeError(error) {
|
|
56347
|
-
return error instanceof NSGetterRuntimeError && !(error instanceof NonCatchableNSGetterRuntimeError);
|
|
56357
|
+
return error instanceof NSGetterRuntimeError && !(error instanceof UncompiledInitializerRuntimeError) && !(error instanceof NonCatchableNSGetterRuntimeError);
|
|
56348
56358
|
}
|
|
56349
56359
|
function makeEvaluatorLookups(members, values, options = {}) {
|
|
56350
56360
|
const attrMap = /* @__PURE__ */ new Map();
|
|
@@ -61094,8 +61104,10 @@ function evaluateInitializerInContext(init, member, ctx, createdValues, argument
|
|
|
61094
61104
|
ctx.__constructedArgumentsByValue ??= /* @__PURE__ */ new WeakMap();
|
|
61095
61105
|
const compiled = init.compiled;
|
|
61096
61106
|
if (compiled === void 0) {
|
|
61097
|
-
|
|
61098
|
-
|
|
61107
|
+
const memberId = Reflect.get(member, "id");
|
|
61108
|
+
throw new UncompiledInitializerRuntimeError(
|
|
61109
|
+
typeof memberId === "string" ? memberId : null,
|
|
61110
|
+
member.name
|
|
61099
61111
|
);
|
|
61100
61112
|
}
|
|
61101
61113
|
const closeFrame = pushConstructionFrame(ctx, `${member.name} initializer`);
|
|
@@ -62525,8 +62537,9 @@ function buildInitializerRootValue(document) {
|
|
|
62525
62537
|
function evaluateMemberInitializer(args) {
|
|
62526
62538
|
const compiled = args.init.compiled;
|
|
62527
62539
|
if (compiled === void 0) {
|
|
62528
|
-
throw new
|
|
62529
|
-
|
|
62540
|
+
throw new UncompiledInitializerRuntimeError(
|
|
62541
|
+
typeof Reflect.get(args.member, "id") === "string" ? Reflect.get(args.member, "id") : null,
|
|
62542
|
+
args.member.name
|
|
62530
62543
|
);
|
|
62531
62544
|
}
|
|
62532
62545
|
const ctx = {
|
|
@@ -75432,24 +75445,7 @@ var init_server_preparation_preflight = __esm({
|
|
|
75432
75445
|
function replayStoredConstructionV4(args) {
|
|
75433
75446
|
const document = args.document ?? readPulledProjectDocumentV4(args.records);
|
|
75434
75447
|
if (args.compileDocumentBodies === true) {
|
|
75435
|
-
|
|
75436
|
-
project: document.project,
|
|
75437
|
-
projectFiles: document.projectFiles,
|
|
75438
|
-
members: document.members,
|
|
75439
|
-
classes: document.classes,
|
|
75440
|
-
enums: document.enums,
|
|
75441
|
-
interfaces: document.interfaces,
|
|
75442
|
-
constructors: document.constructors ?? []
|
|
75443
|
-
};
|
|
75444
|
-
for (const constructor2 of compileArgs.constructors) {
|
|
75445
|
-
compileConstructorRecord({ ...compileArgs, constructor: constructor2 });
|
|
75446
|
-
}
|
|
75447
|
-
for (const member of compileArgs.members) {
|
|
75448
|
-
const thisClass = compileArgs.classes.find(
|
|
75449
|
-
(schemaClass2) => Object.values(schemaClass2.schema).includes(member.id)
|
|
75450
|
-
) ?? null;
|
|
75451
|
-
compileAuthoredMemberBodies({ ...compileArgs, member, thisClass });
|
|
75452
|
-
}
|
|
75448
|
+
compilePulledProjectDocumentBodiesV4(document);
|
|
75453
75449
|
}
|
|
75454
75450
|
const root = document.values.find((value) => value.id === args.valueId);
|
|
75455
75451
|
if (root === void 0) {
|
|
@@ -75508,13 +75504,26 @@ function replayStoredConstructionV4(args) {
|
|
|
75508
75504
|
);
|
|
75509
75505
|
}
|
|
75510
75506
|
if (args.evaluate === false) return /* @__PURE__ */ new Map();
|
|
75511
|
-
const
|
|
75512
|
-
|
|
75513
|
-
|
|
75514
|
-
|
|
75515
|
-
|
|
75516
|
-
|
|
75517
|
-
|
|
75507
|
+
const compiledDependencies = /* @__PURE__ */ new Set();
|
|
75508
|
+
let materialized;
|
|
75509
|
+
for (; ; ) {
|
|
75510
|
+
try {
|
|
75511
|
+
materialized = materializeInitializerValue({
|
|
75512
|
+
document,
|
|
75513
|
+
// Constructor-only rows have no structural member owner. Use the same
|
|
75514
|
+
// explicit typed descriptor for evaluation that compiled the replay.
|
|
75515
|
+
member: compileMember,
|
|
75516
|
+
row: candidate
|
|
75517
|
+
});
|
|
75518
|
+
break;
|
|
75519
|
+
} catch (error) {
|
|
75520
|
+
if (!(error instanceof UncompiledInitializerRuntimeError) || error.memberId === null || compiledDependencies.has(error.memberId)) {
|
|
75521
|
+
throw error;
|
|
75522
|
+
}
|
|
75523
|
+
compilePulledMemberInitializerBodyV4(document, error.memberId);
|
|
75524
|
+
compiledDependencies.add(error.memberId);
|
|
75525
|
+
}
|
|
75526
|
+
}
|
|
75518
75527
|
return new Map(
|
|
75519
75528
|
[materialized.root, ...materialized.createdValues].map((row) => [
|
|
75520
75529
|
row.id,
|
|
@@ -75522,6 +75531,59 @@ function replayStoredConstructionV4(args) {
|
|
|
75522
75531
|
])
|
|
75523
75532
|
);
|
|
75524
75533
|
}
|
|
75534
|
+
function compilePulledProjectDocumentBodiesV4(document) {
|
|
75535
|
+
const compileArgs = {
|
|
75536
|
+
project: document.project,
|
|
75537
|
+
projectFiles: document.projectFiles,
|
|
75538
|
+
members: document.members,
|
|
75539
|
+
classes: document.classes,
|
|
75540
|
+
enums: document.enums,
|
|
75541
|
+
interfaces: document.interfaces,
|
|
75542
|
+
constructors: document.constructors ?? []
|
|
75543
|
+
};
|
|
75544
|
+
for (const constructor2 of compileArgs.constructors) {
|
|
75545
|
+
compileConstructorRecord({ ...compileArgs, constructor: constructor2 });
|
|
75546
|
+
}
|
|
75547
|
+
const ownerClassByMemberId = new Map(
|
|
75548
|
+
compileArgs.classes.flatMap(
|
|
75549
|
+
(schemaClass2) => Object.values(schemaClass2.schema).map(
|
|
75550
|
+
(memberId) => [memberId, schemaClass2]
|
|
75551
|
+
)
|
|
75552
|
+
)
|
|
75553
|
+
);
|
|
75554
|
+
for (const member of compileArgs.members) {
|
|
75555
|
+
compileAuthoredMemberBodies({
|
|
75556
|
+
...compileArgs,
|
|
75557
|
+
member,
|
|
75558
|
+
thisClass: ownerClassByMemberId.get(member.id) ?? null
|
|
75559
|
+
});
|
|
75560
|
+
}
|
|
75561
|
+
}
|
|
75562
|
+
function compilePulledMemberInitializerBodyV4(document, memberId) {
|
|
75563
|
+
const compileArgs = {
|
|
75564
|
+
project: document.project,
|
|
75565
|
+
projectFiles: document.projectFiles,
|
|
75566
|
+
members: document.members,
|
|
75567
|
+
classes: document.classes,
|
|
75568
|
+
enums: document.enums,
|
|
75569
|
+
interfaces: document.interfaces,
|
|
75570
|
+
constructors: document.constructors ?? []
|
|
75571
|
+
};
|
|
75572
|
+
const member = compileArgs.members.find((entry) => entry.id === memberId);
|
|
75573
|
+
if (member === void 0) {
|
|
75574
|
+
throw new Error(
|
|
75575
|
+
`Cannot compile initializer dependency for missing member "${memberId}".`
|
|
75576
|
+
);
|
|
75577
|
+
}
|
|
75578
|
+
const thisClass = compileArgs.classes.find(
|
|
75579
|
+
(schemaClass2) => Object.values(schemaClass2.schema).includes(memberId)
|
|
75580
|
+
) ?? null;
|
|
75581
|
+
compileMemberInitializerBody({
|
|
75582
|
+
...compileArgs,
|
|
75583
|
+
member,
|
|
75584
|
+
thisClass
|
|
75585
|
+
});
|
|
75586
|
+
}
|
|
75525
75587
|
function readPulledProjectDocumentV4(records2) {
|
|
75526
75588
|
return readProjectDocument(
|
|
75527
75589
|
pulledProjectDocumentRaw(replayWorkspace(records2))
|
|
@@ -75564,6 +75626,7 @@ var init_initializer_replay = __esm({
|
|
|
75564
75626
|
init_project_document_read();
|
|
75565
75627
|
init_server_preparation_preflight();
|
|
75566
75628
|
init_projection();
|
|
75629
|
+
init_neoscript_evaluator();
|
|
75567
75630
|
}
|
|
75568
75631
|
});
|
|
75569
75632
|
|
package/package.json
CHANGED
|
@@ -73,7 +73,7 @@ wrappers.
|
|
|
73
73
|
The marker near the top of `SKILL.md` must exactly match the package version:
|
|
74
74
|
|
|
75
75
|
```html
|
|
76
|
-
<!-- reviewed-through-cli: 0.21.
|
|
76
|
+
<!-- reviewed-through-cli: 0.21.5 -->
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
The quoted version above is checked too, so this instruction cannot go stale
|