@neocompose/cli 0.57.2 → 0.57.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
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.57.3] - 2026-09-24
|
|
4
|
+
|
|
5
|
+
- Status, pull, and push no longer copy a shared row passed to a constructor when they check a stored construction. Before, a constructor argument that named a shared row, such as a schedule event's `area`, copied that row's whole graph for every construction. Once an area grid held a few placed characters, this failed with "NeoScript constructed Session row limit of 4096 exceeded."
|
|
6
|
+
- Dry run and push no longer read a shared constructor argument's current graph when they check a stored construction. Before, a push that deleted a variant still placed in that graph, such as a character in the area a schedule event names, failed with "Variant '…' does not exist in this project."
|
|
7
|
+
- `neo dialogue dryrun` evaluates conditions that have the dialogue context in scope. Before, every such condition failed with "NeoScript getter expected 1 argument(s), got 0."
|
|
8
|
+
|
|
3
9
|
## [0.57.2] - 2026-09-23
|
|
4
10
|
|
|
5
11
|
- Removing a variant's last `overrides:` argument deletes its stored override row. Dry run and push accept the edit, including variants whose initializer is an inline delegate.
|
package/dist/neo.mjs
CHANGED
|
@@ -72067,7 +72067,9 @@ function evaluateNSGetterWithEffects(getter, ctx, argumentValues = [], options =
|
|
|
72067
72067
|
const writes = runtimeCtx.__executionState?.writes ?? requestedWrites;
|
|
72068
72068
|
const creationCheckpoint = sessionCreationCheckpoint(runtimeCtx);
|
|
72069
72069
|
const scope = createTopLevelScope(runtimeCtx);
|
|
72070
|
-
const parameters = getter.parameters.slice(
|
|
72070
|
+
const parameters = getter.parameters.slice(
|
|
72071
|
+
getter.parameters[2]?.id === DIALOGUE_CONTEXT_PARAMETER_ID ? 3 : 2
|
|
72072
|
+
);
|
|
72071
72073
|
if (parameters.length !== argumentValues.length) {
|
|
72072
72074
|
throw new NSGetterRuntimeError(
|
|
72073
72075
|
`NeoScript getter expected ${parameters.length} argument(s), got ${argumentValues.length}.`
|
|
@@ -72942,7 +72944,7 @@ function createTopLevelScope(ctx) {
|
|
|
72942
72944
|
scope.setLocal("__this__", ctx.thisValue);
|
|
72943
72945
|
scope.setLocal("__root__", ctx.rootValue);
|
|
72944
72946
|
scope.setLocal(
|
|
72945
|
-
|
|
72947
|
+
DIALOGUE_CONTEXT_PARAMETER_ID,
|
|
72946
72948
|
ctx.dialogueContext ?? {
|
|
72947
72949
|
primary: null,
|
|
72948
72950
|
trigger: null
|
|
@@ -81208,7 +81210,7 @@ function collectionEntryUsesReferenceResolution(collection, key, ctx) {
|
|
|
81208
81210
|
);
|
|
81209
81211
|
return referenceIndexes === void 0 || referenceIndexes.has(key);
|
|
81210
81212
|
}
|
|
81211
|
-
var DELEGATE_LEXICAL_THIS, DELEGATE_LEXICAL_ROOT, NonCatchableNSGetterRuntimeError, NativeFunctionDelegateUnavailableError, CorruptNeoScriptIRError, NeoScriptResourceLimitError, NeoScriptWallClockTimeoutError, DEFAULT_NEO_SCRIPT_EXECUTION_BUDGET_LIMITS, liveListIndexesByProject, evaluatorOwnershipCachesByBase, MAX_CONSTRUCTION_DEPTH, MAX_LOOP_ITERATIONS, resolutionCacheByMembers, NO_SCHEMA_REVISION, LazyValueOverlay, READONLY_FOREACH_BINDING_ERROR, READONLY_CATCH_BINDING_ERROR, NS_MATH_OP_NAMES, DOUBLE_INTEGRAL_MAGNITUDE, EMPTY_SUPPLIED_CONSTRUCTOR_FIELDS;
|
|
81213
|
+
var DELEGATE_LEXICAL_THIS, DELEGATE_LEXICAL_ROOT, NonCatchableNSGetterRuntimeError, NativeFunctionDelegateUnavailableError, CorruptNeoScriptIRError, NeoScriptResourceLimitError, NeoScriptWallClockTimeoutError, DEFAULT_NEO_SCRIPT_EXECUTION_BUDGET_LIMITS, liveListIndexesByProject, evaluatorOwnershipCachesByBase, MAX_CONSTRUCTION_DEPTH, MAX_LOOP_ITERATIONS, resolutionCacheByMembers, NO_SCHEMA_REVISION, LazyValueOverlay, READONLY_FOREACH_BINDING_ERROR, READONLY_CATCH_BINDING_ERROR, DIALOGUE_CONTEXT_PARAMETER_ID, NS_MATH_OP_NAMES, DOUBLE_INTEGRAL_MAGNITUDE, EMPTY_SUPPLIED_CONSTRUCTOR_FIELDS;
|
|
81212
81214
|
var init_evaluateNSGetter = __esm({
|
|
81213
81215
|
"../src/runtime/neoscript/evaluateNSGetter.ts"() {
|
|
81214
81216
|
"use strict";
|
|
@@ -81377,6 +81379,7 @@ var init_evaluateNSGetter = __esm({
|
|
|
81377
81379
|
};
|
|
81378
81380
|
READONLY_FOREACH_BINDING_ERROR = "Cannot assign to a read-only foreach iterator binding.";
|
|
81379
81381
|
READONLY_CATCH_BINDING_ERROR = "Cannot assign to a read-only catch message binding.";
|
|
81382
|
+
DIALOGUE_CONTEXT_PARAMETER_ID = "__context__";
|
|
81380
81383
|
NS_MATH_OP_NAMES = {
|
|
81381
81384
|
min: "Min",
|
|
81382
81385
|
max: "Max",
|
|
@@ -117187,12 +117190,13 @@ function materializedInitializerReconciliationFailuresV4(args) {
|
|
|
117187
117190
|
const replay = replayRows.get(reconciliation.valueId);
|
|
117188
117191
|
const replayArgs = replay !== void 0 && isLiteralValueContent(replay) ? replay.constructorArgs : void 0;
|
|
117189
117192
|
const currentRoot = currentRows.get(reconciliation.valueId);
|
|
117193
|
+
const [storedArgs, replayedArgs] = isObjectRecord2(replayArgs) ? withoutSharedArguments(reconciliation.storedConstructorArgs, replayArgs) : [reconciliation.storedConstructorArgs, replayArgs];
|
|
117190
117194
|
const currentNormalized = currentRoot === void 0 ? void 0 : currentReader.normalizeConstructorArguments(
|
|
117191
|
-
|
|
117195
|
+
storedArgs,
|
|
117192
117196
|
currentRoot,
|
|
117193
117197
|
owner
|
|
117194
117198
|
);
|
|
117195
|
-
const replayNormalized = replay === void 0 || !isObjectRecord2(
|
|
117199
|
+
const replayNormalized = replay === void 0 || !isObjectRecord2(replayedArgs) ? void 0 : currentReader.withRowOverrides(replayRows).normalizeConstructorArguments(replayedArgs, replay, owner);
|
|
117196
117200
|
const argumentsMatch = isObjectRecord2(replayArgs) && currentRoot !== void 0 && replay !== void 0 && effectiveValuesEqual(currentNormalized, replayNormalized);
|
|
117197
117201
|
if (argumentsMatch) {
|
|
117198
117202
|
continue;
|
|
@@ -117213,6 +117217,16 @@ function materializedInitializerReconciliationFailuresV4(args) {
|
|
|
117213
117217
|
}
|
|
117214
117218
|
return failures;
|
|
117215
117219
|
}
|
|
117220
|
+
function withoutSharedArguments(stored, replayed) {
|
|
117221
|
+
const storedRest = { ...stored };
|
|
117222
|
+
const replayedRest = { ...replayed };
|
|
117223
|
+
for (const [slot, value] of Object.entries(stored)) {
|
|
117224
|
+
if (typeof value !== "string" || replayed[slot] !== value) continue;
|
|
117225
|
+
delete storedRest[slot];
|
|
117226
|
+
delete replayedRest[slot];
|
|
117227
|
+
}
|
|
117228
|
+
return [storedRest, replayedRest];
|
|
117229
|
+
}
|
|
117216
117230
|
function reconciliationRecords(workspace, changes, seeds = /* @__PURE__ */ new Map()) {
|
|
117217
117231
|
return prospectiveInitializerRecordsV4({
|
|
117218
117232
|
workspace,
|
|
@@ -127418,7 +127432,13 @@ function storedConstructorArgumentSource(context, type, value, environment, visi
|
|
|
127418
127432
|
);
|
|
127419
127433
|
}
|
|
127420
127434
|
if (cloneAggregateArguments) {
|
|
127421
|
-
return
|
|
127435
|
+
return storedAggregateReplaySource(
|
|
127436
|
+
context,
|
|
127437
|
+
type,
|
|
127438
|
+
value,
|
|
127439
|
+
environment,
|
|
127440
|
+
constructorOwnsGraph
|
|
127441
|
+
);
|
|
127422
127442
|
}
|
|
127423
127443
|
return storedTypedRowSource(
|
|
127424
127444
|
context,
|
|
@@ -127661,14 +127681,18 @@ function requiredGenericBindingMemberId(environment, genericParamId) {
|
|
|
127661
127681
|
}
|
|
127662
127682
|
return bindingId;
|
|
127663
127683
|
}
|
|
127664
|
-
function
|
|
127684
|
+
function storedAggregateReplaySource(context, type, valueId, environment, constructorOwnsGraph) {
|
|
127665
127685
|
if (!context.values.has(valueId)) {
|
|
127666
127686
|
throw new Error(
|
|
127667
127687
|
`Stored ${type.kind} constructor argument references missing value row ${valueId}.`
|
|
127668
127688
|
);
|
|
127669
127689
|
}
|
|
127670
127690
|
const typeName = storedSchemaTypeName(context, type, environment, valueId);
|
|
127671
|
-
|
|
127691
|
+
const reference2 = `Reference<${typeName}>(id: ${quote5(valueId)})`;
|
|
127692
|
+
return isSharedConstructorArgument(context, valueId, constructorOwnsGraph) ? reference2 : `${reference2}.Clone()`;
|
|
127693
|
+
}
|
|
127694
|
+
function isSharedConstructorArgument(context, valueId, constructorOwnsGraph) {
|
|
127695
|
+
return !constructorOwnsGraph && context.readMaterializedGraph().independentlyOwnedValueIds.has(valueId);
|
|
127672
127696
|
}
|
|
127673
127697
|
function storedSchemaTypeName(context, type, environment, valueId) {
|
|
127674
127698
|
switch (type.kind) {
|
|
@@ -127758,7 +127782,7 @@ function storedTypedRowSource(context, type, valueId, environment, visited, writ
|
|
|
127758
127782
|
`Stored ${type.kind} constructor argument references missing value row ${valueId}.`
|
|
127759
127783
|
);
|
|
127760
127784
|
}
|
|
127761
|
-
if (
|
|
127785
|
+
if (isSharedConstructorArgument(context, valueId, constructorOwnsGraph)) {
|
|
127762
127786
|
return `Reference<${storedSchemaTypeName(context, type, environment, valueId)}>(id: ${quote5(valueId)})`;
|
|
127763
127787
|
}
|
|
127764
127788
|
if (context.activeStoredConstructorArguments.has(valueId)) {
|
|
@@ -140421,7 +140445,7 @@ var init_registry2 = __esm({
|
|
|
140421
140445
|
"schema-contract/registry.mjs"() {
|
|
140422
140446
|
"use strict";
|
|
140423
140447
|
PROJECT_SCHEMA_CONTRACT = Object.freeze({
|
|
140424
|
-
cliVersion: "0.57.
|
|
140448
|
+
cliVersion: "0.57.3",
|
|
140425
140449
|
projectFileUploadBatchSize: 32,
|
|
140426
140450
|
documentRecords: {
|
|
140427
140451
|
member: {
|
|
@@ -148242,7 +148266,7 @@ There is no --keep-current: preserving current semantic state defines flatten.
|
|
|
148242
148266
|
async function main() {
|
|
148243
148267
|
const args = parseArgs(process.argv.slice(2));
|
|
148244
148268
|
if (args.command === "--version") {
|
|
148245
|
-
console.log("0.57.
|
|
148269
|
+
console.log("0.57.3");
|
|
148246
148270
|
return;
|
|
148247
148271
|
}
|
|
148248
148272
|
if (args.command === null || args.command === "help" || args.command === "--help" || args.command === "-h") {
|
package/package.json
CHANGED
|
@@ -97,7 +97,7 @@ wrappers.
|
|
|
97
97
|
The marker near the top of `SKILL.md` must exactly match the package version:
|
|
98
98
|
|
|
99
99
|
```html
|
|
100
|
-
<!-- reviewed-through-cli: 0.57.
|
|
100
|
+
<!-- reviewed-through-cli: 0.57.3 -->
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
The quoted version above is checked too, so this instruction cannot go stale
|