@githolon/dsl 0.105.19 → 0.105.23

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/dart/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## 0.64.37
2
+
3
+ - Restaged with the current kernel candidate: regenerated vendored assets (kernel release identity is baked into them). Published pub.dev archives are immutable, so regenerated bytes ride their own version.
4
+
5
+ ## 0.64.36
6
+
7
+ - Restaged with the current kernel candidate: regenerated vendored assets (kernel release identity is baked into them). Published pub.dev archives are immutable, so regenerated bytes ride their own version.
8
+
9
+ ## 0.64.35
10
+
11
+ - Match application home birth certificates to the locally sealed parent offer's CAS-as-law verification verdict.
12
+
1
13
  ## 0.64.34
2
14
 
3
15
  - Keep the typed birth certificate on the birth offer only, so preliminary signer enrolment can settle before generated business APIs open.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // <define:__NOMOS_KERNEL_RELEASE__>
4
- var define_NOMOS_KERNEL_RELEASE_default = { production: { hash: "d37253bcefd90a180a6a1af96422a9f0724dfca9efd9ae7cff070afa2c410f09", version: "kernel-d37253bc", features: ["compoundKeys", "capturedReads", "invariantGate", "surfacedMerge", "fieldProvenance", "nullSemantics", "attestedReads", "conflictSnapshots", "ownedAudience", "temporalEnum"], protocol: 1 }, testMint: { hash: "b6bddd8d61390edbe2ee4e5f3c7f21108bdb7800af746d20f568936f63e2d517", version: "kernel-b6bddd8d", features: ["compoundKeys", "capturedReads", "invariantGate", "surfacedMerge", "fieldProvenance", "nullSemantics", "attestedReads", "conflictSnapshots", "ownedAudience", "temporalEnum"], protocol: 1 } };
4
+ var define_NOMOS_KERNEL_RELEASE_default = { production: { hash: "49e1a3d03b90d54318fabab2ec8574e211fca54310553b5cd07d546ff8d04a67", version: "kernel-49e1a3d0", features: ["compoundKeys", "capturedReads", "invariantGate", "surfacedMerge", "fieldProvenance", "nullSemantics", "attestedReads", "conflictSnapshots", "ownedAudience", "temporalEnum"], protocol: 1 }, testMint: { hash: "73e25e416b2f6a3173ae0bd3d4139db582ec32b832c38286c22b189dff8a94dd", version: "kernel-73e25e41", features: ["compoundKeys", "capturedReads", "invariantGate", "surfacedMerge", "fieldProvenance", "nullSemantics", "attestedReads", "conflictSnapshots", "ownedAudience", "temporalEnum"], protocol: 1 } };
5
5
 
6
6
  // runner/node-entry.ts
7
7
  import { createInterface } from "node:readline";
@@ -8515,6 +8515,37 @@ function createSerializedScheduler() {
8515
8515
  // src/intent_offer_codec.ts
8516
8516
  var encoder = new TextEncoder();
8517
8517
 
8518
+ // src/domain_readiness.ts
8519
+ async function prepareDomainUntilReady({
8520
+ domain,
8521
+ packageHash,
8522
+ directiveId,
8523
+ warm,
8524
+ timeoutMs = 3e4,
8525
+ yieldEvery = 32,
8526
+ now = Date.now,
8527
+ yieldHost = () => new Promise((resolve) => setTimeout(resolve, 0)),
8528
+ onQuantum
8529
+ }) {
8530
+ if (!domain || !packageHash) return { prepared: false, reason: "invalid-target", quanta: 0 };
8531
+ const selector = directiveId ? `plan:offer:${domain}:${directiveId}` : `plan:domain:${domain}`;
8532
+ const deadlineAt = now() + timeoutMs;
8533
+ let quanta = 0;
8534
+ while (now() <= deadlineAt) {
8535
+ quanta += 1;
8536
+ const progress = await warm();
8537
+ onQuantum?.(progress);
8538
+ if (progress.preparedCommandDomain === domain && progress.preparedCommandPackage === packageHash && progress.preparedCommandSelector === selector) {
8539
+ return { prepared: true, quanta };
8540
+ }
8541
+ if (progress.maintenancePending !== true) {
8542
+ return { prepared: false, reason: "maintenance-exhausted", quanta };
8543
+ }
8544
+ if (quanta % Math.max(1, yieldEvery) === 0) await yieldHost();
8545
+ }
8546
+ return { prepared: false, reason: "deadline-exceeded", quanta };
8547
+ }
8548
+
8518
8549
  // src/index.ts
8519
8550
  var enc4 = new TextEncoder();
8520
8551
  var dec4 = new TextDecoder();
@@ -9083,30 +9114,31 @@ ${String(commit).toLowerCase()}`;
9083
9114
  scheduleMaintenanceSoon();
9084
9115
  };
9085
9116
  const prepareDomainReady = async (domain, packageHash, directiveId) => {
9086
- if (!domain || !packageHash) return { prepared: false };
9087
9117
  requestDomainMaintenance(domain, packageHash, directiveId);
9088
- const selector = directiveId ? `plan:offer:${domain}:${directiveId}` : `plan:domain:${domain}`;
9089
- for (let quantum = 0; quantum < 64; quantum += 1) {
9090
- const result = await serialize(async () => JSON.parse(call("query", { queryBytes: qBytes({
9118
+ const readiness = await prepareDomainUntilReady({
9119
+ domain,
9120
+ packageHash,
9121
+ directiveId,
9122
+ warm: () => serialize(async () => JSON.parse(call("query", { queryBytes: qBytes({
9091
9123
  op: "warm",
9092
9124
  interactiveOnly: true,
9093
9125
  requestedDomain: domain,
9094
9126
  ...directiveId ? { requestedDirective: directiveId } : {},
9095
9127
  requestedPackage: packageHash
9096
- }) })), "prepare generated domain", false);
9097
- if (typeof process !== "undefined" && process.env?.NOMOS_DEBUG_RAW) {
9098
- console.error("[nomos] generated domain readiness quantum", result);
9099
- }
9100
- if (result?.preparedCommandDomain === domain && result?.preparedCommandPackage === packageHash && result?.preparedCommandSelector === selector) {
9101
- const index = _maintenanceTargets.findIndex(
9102
- (target) => target.domain === domain && target.packageHash === packageHash && target.directiveId === directiveId
9103
- );
9104
- if (index >= 0) _maintenanceTargets.splice(index, 1);
9105
- return { prepared: true };
9128
+ }) })), "prepare generated domain", false),
9129
+ onQuantum: (result) => {
9130
+ if (typeof process !== "undefined" && process.env?.NOMOS_DEBUG_RAW) {
9131
+ console.error("[nomos] generated domain readiness quantum", result);
9132
+ }
9106
9133
  }
9107
- if (result?.maintenancePending !== true) break;
9134
+ });
9135
+ if (readiness.prepared) {
9136
+ const index = _maintenanceTargets.findIndex(
9137
+ (target) => target.domain === domain && target.packageHash === packageHash && target.directiveId === directiveId
9138
+ );
9139
+ if (index >= 0) _maintenanceTargets.splice(index, 1);
9108
9140
  }
9109
- return { prepared: false };
9141
+ return readiness;
9110
9142
  };
9111
9143
  const scheduleMaintenanceSoon = (delayMs = 0) => {
9112
9144
  if (_disposed || _maintenanceTimer !== null || _maintenanceInFlight) return;
@@ -10225,7 +10257,9 @@ ${String(commit).toLowerCase()}`;
10225
10257
  try {
10226
10258
  const readiness = await prepareDomainReady(domain, candidateHash);
10227
10259
  if (readiness.prepared !== true) {
10228
- throw new Error(`the current model '${candidateHash}' has no authenticated '${domain}' USDA slice`);
10260
+ throw new Error(
10261
+ `the current model '${candidateHash}' authenticated '${domain}' USDA slice did not become ready (${readiness.reason} after ${readiness.quanta} maintenance quanta)`
10262
+ );
10229
10263
  }
10230
10264
  return { ok: true, stage: "promoted" };
10231
10265
  } catch (error) {
@@ -10273,7 +10307,9 @@ ${String(commit).toLowerCase()}`;
10273
10307
  const readiness = await prepareDomainReady(domain, candidateHash);
10274
10308
  if (readiness.prepared !== true) {
10275
10309
  throw Object.assign(
10276
- new Error(`the promoted model '${candidateHash}' is active but its authenticated '${domain}' USDA slice is not ready`),
10310
+ new Error(
10311
+ `the promoted model '${candidateHash}' is active but its authenticated '${domain}' USDA slice did not become ready (${readiness.reason} after ${readiness.quanta} maintenance quanta)`
10312
+ ),
10277
10313
  { code: "nomos.model.readiness_failed" }
10278
10314
  );
10279
10315
  }
@@ -6,7 +6,7 @@ var __export = (target, all) => {
6
6
  };
7
7
 
8
8
  // <define:__NOMOS_KERNEL_RELEASE__>
9
- var define_NOMOS_KERNEL_RELEASE_default = { production: { hash: "d37253bcefd90a180a6a1af96422a9f0724dfca9efd9ae7cff070afa2c410f09", version: "kernel-d37253bc", features: ["compoundKeys", "capturedReads", "invariantGate", "surfacedMerge", "fieldProvenance", "nullSemantics", "attestedReads", "conflictSnapshots", "ownedAudience", "temporalEnum"], protocol: 1 }, testMint: { hash: "b6bddd8d61390edbe2ee4e5f3c7f21108bdb7800af746d20f568936f63e2d517", version: "kernel-b6bddd8d", features: ["compoundKeys", "capturedReads", "invariantGate", "surfacedMerge", "fieldProvenance", "nullSemantics", "attestedReads", "conflictSnapshots", "ownedAudience", "temporalEnum"], protocol: 1 } };
9
+ var define_NOMOS_KERNEL_RELEASE_default = { production: { hash: "49e1a3d03b90d54318fabab2ec8574e211fca54310553b5cd07d546ff8d04a67", version: "kernel-49e1a3d0", features: ["compoundKeys", "capturedReads", "invariantGate", "surfacedMerge", "fieldProvenance", "nullSemantics", "attestedReads", "conflictSnapshots", "ownedAudience", "temporalEnum"], protocol: 1 }, testMint: { hash: "73e25e416b2f6a3173ae0bd3d4139db582ec32b832c38286c22b189dff8a94dd", version: "kernel-73e25e41", features: ["compoundKeys", "capturedReads", "invariantGate", "surfacedMerge", "fieldProvenance", "nullSemantics", "attestedReads", "conflictSnapshots", "ownedAudience", "temporalEnum"], protocol: 1 } };
10
10
 
11
11
  // runner/offline-install.ts
12
12
  import { readFileSync as readFileSync2, writeFileSync as writeFileSync2, existsSync } from "node:fs";
package/dart/pubspec.yaml CHANGED
@@ -7,7 +7,7 @@ repository: https://github.com/Captain-App/nomos2
7
7
  description: >-
8
8
  Nomos 2 Dart client — generated domain values, intent payloads and application
9
9
  lifecycle types over the typed Nomos kernel protocol and USDA custody model.
10
- version: 0.64.34
10
+ version: 0.64.37
11
11
 
12
12
  environment:
13
13
  sdk: ^3.5.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@githolon/dsl",
3
- "version": "0.105.19",
3
+ "version": "0.105.23",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "description": "Nomos 2 domain-authoring DSL: aggregates + directives in TS, executed and encoded to the Rust kernel's wire shapes.",
@@ -7546,6 +7546,37 @@ function createSerializedScheduler() {
7546
7546
  // ../cloud/web-client/src/intent_offer_codec.ts
7547
7547
  var encoder = new TextEncoder();
7548
7548
 
7549
+ // ../cloud/web-client/src/domain_readiness.ts
7550
+ async function prepareDomainUntilReady({
7551
+ domain,
7552
+ packageHash,
7553
+ directiveId,
7554
+ warm,
7555
+ timeoutMs = 3e4,
7556
+ yieldEvery = 32,
7557
+ now = Date.now,
7558
+ yieldHost = () => new Promise((resolve) => setTimeout(resolve, 0)),
7559
+ onQuantum
7560
+ }) {
7561
+ if (!domain || !packageHash) return { prepared: false, reason: "invalid-target", quanta: 0 };
7562
+ const selector = directiveId ? `plan:offer:${domain}:${directiveId}` : `plan:domain:${domain}`;
7563
+ const deadlineAt = now() + timeoutMs;
7564
+ let quanta = 0;
7565
+ while (now() <= deadlineAt) {
7566
+ quanta += 1;
7567
+ const progress = await warm();
7568
+ onQuantum?.(progress);
7569
+ if (progress.preparedCommandDomain === domain && progress.preparedCommandPackage === packageHash && progress.preparedCommandSelector === selector) {
7570
+ return { prepared: true, quanta };
7571
+ }
7572
+ if (progress.maintenancePending !== true) {
7573
+ return { prepared: false, reason: "maintenance-exhausted", quanta };
7574
+ }
7575
+ if (quanta % Math.max(1, yieldEvery) === 0) await yieldHost();
7576
+ }
7577
+ return { prepared: false, reason: "deadline-exceeded", quanta };
7578
+ }
7579
+
7549
7580
  // ../cloud/web-client/src/index.ts
7550
7581
  var enc4 = new TextEncoder();
7551
7582
  var dec4 = new TextDecoder();
@@ -8114,30 +8145,31 @@ ${String(commit).toLowerCase()}`;
8114
8145
  scheduleMaintenanceSoon();
8115
8146
  };
8116
8147
  const prepareDomainReady = async (domain, packageHash, directiveId) => {
8117
- if (!domain || !packageHash) return { prepared: false };
8118
8148
  requestDomainMaintenance(domain, packageHash, directiveId);
8119
- const selector = directiveId ? `plan:offer:${domain}:${directiveId}` : `plan:domain:${domain}`;
8120
- for (let quantum = 0; quantum < 64; quantum += 1) {
8121
- const result = await serialize(async () => JSON.parse(call("query", { queryBytes: qBytes({
8149
+ const readiness = await prepareDomainUntilReady({
8150
+ domain,
8151
+ packageHash,
8152
+ directiveId,
8153
+ warm: () => serialize(async () => JSON.parse(call("query", { queryBytes: qBytes({
8122
8154
  op: "warm",
8123
8155
  interactiveOnly: true,
8124
8156
  requestedDomain: domain,
8125
8157
  ...directiveId ? { requestedDirective: directiveId } : {},
8126
8158
  requestedPackage: packageHash
8127
- }) })), "prepare generated domain", false);
8128
- if (typeof process !== "undefined" && process.env?.NOMOS_DEBUG_RAW) {
8129
- console.error("[nomos] generated domain readiness quantum", result);
8130
- }
8131
- if (result?.preparedCommandDomain === domain && result?.preparedCommandPackage === packageHash && result?.preparedCommandSelector === selector) {
8132
- const index = _maintenanceTargets.findIndex(
8133
- (target) => target.domain === domain && target.packageHash === packageHash && target.directiveId === directiveId
8134
- );
8135
- if (index >= 0) _maintenanceTargets.splice(index, 1);
8136
- return { prepared: true };
8159
+ }) })), "prepare generated domain", false),
8160
+ onQuantum: (result) => {
8161
+ if (typeof process !== "undefined" && process.env?.NOMOS_DEBUG_RAW) {
8162
+ console.error("[nomos] generated domain readiness quantum", result);
8163
+ }
8137
8164
  }
8138
- if (result?.maintenancePending !== true) break;
8165
+ });
8166
+ if (readiness.prepared) {
8167
+ const index = _maintenanceTargets.findIndex(
8168
+ (target) => target.domain === domain && target.packageHash === packageHash && target.directiveId === directiveId
8169
+ );
8170
+ if (index >= 0) _maintenanceTargets.splice(index, 1);
8139
8171
  }
8140
- return { prepared: false };
8172
+ return readiness;
8141
8173
  };
8142
8174
  const scheduleMaintenanceSoon = (delayMs = 0) => {
8143
8175
  if (_disposed || _maintenanceTimer !== null || _maintenanceInFlight) return;
@@ -9256,7 +9288,9 @@ ${String(commit).toLowerCase()}`;
9256
9288
  try {
9257
9289
  const readiness = await prepareDomainReady(domain, candidateHash);
9258
9290
  if (readiness.prepared !== true) {
9259
- throw new Error(`the current model '${candidateHash}' has no authenticated '${domain}' USDA slice`);
9291
+ throw new Error(
9292
+ `the current model '${candidateHash}' authenticated '${domain}' USDA slice did not become ready (${readiness.reason} after ${readiness.quanta} maintenance quanta)`
9293
+ );
9260
9294
  }
9261
9295
  return { ok: true, stage: "promoted" };
9262
9296
  } catch (error) {
@@ -9304,7 +9338,9 @@ ${String(commit).toLowerCase()}`;
9304
9338
  const readiness = await prepareDomainReady(domain, candidateHash);
9305
9339
  if (readiness.prepared !== true) {
9306
9340
  throw Object.assign(
9307
- new Error(`the promoted model '${candidateHash}' is active but its authenticated '${domain}' USDA slice is not ready`),
9341
+ new Error(
9342
+ `the promoted model '${candidateHash}' is active but its authenticated '${domain}' USDA slice did not become ready (${readiness.reason} after ${readiness.quanta} maintenance quanta)`
9343
+ ),
9308
9344
  { code: "nomos.model.readiness_failed" }
9309
9345
  );
9310
9346
  }
@@ -13910,6 +13946,7 @@ async function nomosInternalOpenGeneratedApplication(options, bind, internals =
13910
13946
  throw applicationError("Sign in changed authority while preparing this application device.", "nomos.authority.changed_during_open");
13911
13947
  }
13912
13948
  authToken = deviceToken;
13949
+ authorityHolon = await measureOpen("bind attested application device", () => mountAuthority(secret, authToken));
13913
13950
  const birthOrRepeat = async () => {
13914
13951
  const birth = await measureOpen("establish private application custody", () => authorityHolon.nomosInternalBirthReceivingGroup({
13915
13952
  parent: application,
@@ -1664,8 +1664,8 @@ const NOMOS_TYPES_DEP = "^0.8.7";
1664
1664
  // 0.48.x: session-bound clients (XClient.bind/NomosClientInterface/DomainClientSessionMismatch/
1665
1665
  // DomainNotInstalledForSession, engine.follow, pendingConflicts lanes) — the generated client
1666
1666
  // REQUIRES this surface. 0.48.1 fixes NomosSession.watchPendingConflicts delegation.
1667
- const NOMOS_CLIENT_DEP = "^0.64.34";
1668
- const NOMOS_FLUTTER_DEP = "^0.63.58";
1667
+ const NOMOS_CLIENT_DEP = "^0.64.37";
1668
+ const NOMOS_FLUTTER_DEP = "^0.63.62";
1669
1669
  // DRIFT TRIPWIRE: pubspec_pins.test.ts asserts these equal the CURRENT versions in dsl/dart/pubspec.yaml
1670
1670
  // and dsl/dart_types/pubspec.yaml — a Dart release without this bump fails the suite, so tenants never
1671
1671
  // land back in dependency_overrides (the exact co2 report this closes, third occurrence).