@githolon/dsl 0.97.0 → 0.97.1
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 +1 -1
- package/src/engine_entry.ts +12 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@githolon/dsl",
|
|
3
|
-
"version": "0.97.
|
|
3
|
+
"version": "0.97.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Nomos 2 domain-authoring DSL: aggregates + directives in TS, executed and encoded to the Rust kernel's wire shapes.",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.md",
|
package/src/engine_entry.ts
CHANGED
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
import { executeDirectiveToIntent } from "./wire_encode.js";
|
|
55
55
|
import { expandCapabilityExports } from "./capability_exports.js";
|
|
56
56
|
import { RelationTuple, __setDispatchContext } from "./framework/relations.js";
|
|
57
|
+
import { BIRTH_METER_AGGREGATES } from "./birth_meter.js";
|
|
57
58
|
import { namespacedAggregateIds, qualifyReadProjectionType, READ_PROJECTION_DELIMITER } from "./read_projection_namespace.js";
|
|
58
59
|
import { isRelationTypeDecl } from "./relation_schema.js";
|
|
59
60
|
import { synthesizePreconditionInvariants } from "./precondition.js";
|
|
@@ -301,6 +302,17 @@ function buildDomainSlice(mod: DomainModuleExports): DomainSlice {
|
|
|
301
302
|
if (!aggs.has(RelationTuple.id) && [...dirs.values()].some((d) => d.aggregateId === RelationTuple.id)) {
|
|
302
303
|
aggs.set(RelationTuple.id, RelationTuple);
|
|
303
304
|
}
|
|
305
|
+
// BIRTH-METER AUTO-ENSURE (RelationTuple's sibling — co2 tenant DEFECT P2-001): a law re-exporting a
|
|
306
|
+
// meter directive (`grantBirthAllowance`/`setBirthPolicy`, `.ensures(BirthGrant/BirthPolicy)`) without
|
|
307
|
+
// ALSO exporting the framework aggregate handle would fall into the silent drop below — while the
|
|
308
|
+
// COMPILE side (build_package's declaresBirth auto-inject) counts it in the manifest: a manifest-vs-
|
|
309
|
+
// engine skew that dispatches as "no directive registered". The engine mirrors the compile injection,
|
|
310
|
+
// so the two can never disagree on the meter surface.
|
|
311
|
+
for (const fw of BIRTH_METER_AGGREGATES) {
|
|
312
|
+
if (!aggs.has(fw.id) && [...dirs.values()].some((d) => d.aggregateId === fw.id)) {
|
|
313
|
+
aggs.set(fw.id, fw);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
304
316
|
for (const [dirId, directive] of dirs) {
|
|
305
317
|
const agg = aggs.get(directive.aggregateId);
|
|
306
318
|
if (agg === undefined) {
|