Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,12 @@

### Changed

- Provider semantic declarations now support explicitly bounded Core byte
aliases, including exact 32-byte identifiers. Byte aliases participate in
bounded record graphs and generate canonical lawpack type definitions.
Inverted ranges, malformed bounds, recursive records and claims on Edict
Core type identities refuse before artifact generation.

- An engine keeps the state root's working memory across commits. Once that
memory has grown to the reachable graph, a commit's state-root hash
allocates nothing, except when the membership table falls back to the
Expand Down
4 changes: 2 additions & 2 deletions crates/echo-edict-provider-lowerer/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -823,7 +823,7 @@ pub mod echo_dpo {
pub const PROVIDER_SCHEMA_COORDINATE: &str = "echo.provider-artifacts.cddl@1";
/// Raw SHA-256 of the exact self-contained provider CDDL bytes.
pub const PROVIDER_SCHEMA_SHA256_HEX: &str =
"139ac50b29f4a6b524febd37e1735e9de3c905fe4b234779b705d68a19cd29e7";
"0a4e7ddf2f4087ef53fd3116db1623097c0df08658d9ddc7a80e02da04fba111";
/// Exact generated-artifact profile coordinate owning operation schemas.
pub const GENERATED_ARTIFACT_PROFILE: &str = "echo.dpo.registration/v1";
/// Digest-framing domain for the generated-artifact profile.
Expand Down Expand Up @@ -860,7 +860,7 @@ pub mod echo_dpo {

const MUTATION_RULE_NAME: &str = concat!(
"cmd/contract/",
"139ac50b29f4a6b524febd37e1735e9de3c905fe4b234779b705d68a19cd29e7",
"0a4e7ddf2f4087ef53fd3116db1623097c0df08658d9ddc7a80e02da04fba111",
"/3389142194/a.b@1.t"
);
const PROVIDER_OPERATIONS: [ProviderOperationV1<'static>; 1] = [ProviderOperationV1 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ pub mod echo_dpo {
pub const PROVIDER_SCHEMA_COORDINATE: &str = "echo.provider-artifacts.cddl@1";
/// Raw SHA-256 of the exact self-contained provider CDDL bytes.
pub const PROVIDER_SCHEMA_SHA256_HEX: &str =
"139ac50b29f4a6b524febd37e1735e9de3c905fe4b234779b705d68a19cd29e7";
"0a4e7ddf2f4087ef53fd3116db1623097c0df08658d9ddc7a80e02da04fba111";
/// Exact generated-artifact profile coordinate owning operation schemas.
pub const GENERATED_ARTIFACT_PROFILE: &str = "echo.dpo.registration/v1";
/// Digest-framing domain for the generated-artifact profile.
Expand Down Expand Up @@ -108,7 +108,7 @@ pub mod echo_dpo {

const MUTATION_RULE_NAME: &str = concat!(
"cmd/contract/",
"139ac50b29f4a6b524febd37e1735e9de3c905fe4b234779b705d68a19cd29e7",
"0a4e7ddf2f4087ef53fd3116db1623097c0df08658d9ddc7a80e02da04fba111",
"/3389142194/a.b@1.t"
);
const PROVIDER_OPERATIONS: [ProviderOperationV1<'static>; 1] = [ProviderOperationV1 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ const REVIEW_MEDIA_TYPE: &str = "application/json";
const GENERATED_SOURCE_PATH: &str = "generated/echo_dpo.rs";
const REVIEW_PATH: &str = "review/echo_dpo.json";
const EXPECTED_PROVIDER_SCHEMA_SHA256_HEX: &str =
"139ac50b29f4a6b524febd37e1735e9de3c905fe4b234779b705d68a19cd29e7";
"0a4e7ddf2f4087ef53fd3116db1623097c0df08658d9ddc7a80e02da04fba111";
const EXPECTED_OPERATION_ID_LAW: &str = "echo.semantic-operation-id.fnv1-32/v1";
const EXPECTED_OPERATION_ID: u32 = 3_389_142_194;

Expand Down Expand Up @@ -949,6 +949,11 @@ fn generated_source_exposes_explicit_post_assembly_bundle_binding() {
fn generated_source_binds_the_expected_provider_schema_identity() {
let source = generated_source();

let current_schema = include_bytes!(
"../../../schemas/edict-provider/generated/v1/primary/schema.echo-provider-artifacts.cddl"
);
let current_schema_sha256 = hex::encode(sha2::Sha256::digest(current_schema));
assert_eq!(EXPECTED_PROVIDER_SCHEMA_SHA256_HEX, current_schema_sha256);
assert!(
source.contains(&format!("\"{EXPECTED_PROVIDER_SCHEMA_SHA256_HEX}\"")),
"generated source did not bind expected provider schema SHA-256 \
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"apiVersion":"wesley.generation-provenance-manifest/v1","contractVersions":{"generatorAbi":"wesley.extension-generator/v1","inputSchema":"wesley.extension-generation-input/v1","provenanceSchema":"wesley.generation-provenance-manifest/v1"},"emittedArtifacts":[{"coordinate":"echo.dpo-authority-facts@1","digest":"sha256:e2a6a539a7156296c18ff1bc02f80dcabf62b42bb4314d0737527869e43986d6"},{"coordinate":"echo.dpo-lawpack-authority-facts@1","digest":"sha256:ce1af559551f8b8242c4b290b620c5a28323b9e43f8bc6bb161a191001b6f4b9"},{"coordinate":"echo.dpo-lawpack@1","digest":"sha256:8c570362671a0b1cd1a992d8210e4a90ffd153ad06dcdf1e0cb36033cc971e2c"},{"coordinate":"echo.dpo.registration/v1","digest":"sha256:4ef3aaad0d2131ba7129a3e2ae178d10c44f7e9b062af2c1fe211de781462f34"},{"coordinate":"echo.dpo@1","digest":"sha256:1b105d1b1f6cdf5fecdef98b7adeb238525047d43581fe9fd8c44fd213e1788e"},{"coordinate":"echo.provider-artifacts.cddl@1","digest":"sha256:139ac50b29f4a6b524febd37e1735e9de3c905fe4b234779b705d68a19cd29e7"}],"generationInputDigest":"sha256:0c07274803d465ec212c313f74dd46396851f43019fa0f97da9571a167c84587","generator":{"coordinate":"echo-wesley-gen.provider-artifact-generator@1","digest":"sha256:7f16189048b2dcd0a7a15f32ed1f3ee9d3ac0ba5f6ea03af9baa3cabcb8727e5","version":"0.1.0"},"settingsDigest":"sha256:0f708e76898de6fdb8186352e81d0f5c445adf94bb6c7de9204952d9fe913d4a","sourceArtifacts":[{"coordinate":"echo.semantic-schema@1","digest":"sha256:322d9eb5eb8273108eaa602f2eb58ba591efcf829fecb10bb705717efae18852"},{"coordinate":"edict.provider-contract-pack.cddl@1","digest":"sha256:8d77c84ecbd7d7e38496479b2f8346c15504a56f076170d79c0eca2a57fdb3a5"},{"coordinate":"edict.provider-contract-pack.manifest@1","digest":"sha256:bc222c4a669b888a60df6f398412bae232967c11841b9a27c7ba6c18eb41e362"}]}
{"apiVersion":"wesley.generation-provenance-manifest/v1","contractVersions":{"generatorAbi":"wesley.extension-generator/v1","inputSchema":"wesley.extension-generation-input/v1","provenanceSchema":"wesley.generation-provenance-manifest/v1"},"emittedArtifacts":[{"coordinate":"echo.dpo-authority-facts@1","digest":"sha256:e2a6a539a7156296c18ff1bc02f80dcabf62b42bb4314d0737527869e43986d6"},{"coordinate":"echo.dpo-lawpack-authority-facts@1","digest":"sha256:ce1af559551f8b8242c4b290b620c5a28323b9e43f8bc6bb161a191001b6f4b9"},{"coordinate":"echo.dpo-lawpack@1","digest":"sha256:8c570362671a0b1cd1a992d8210e4a90ffd153ad06dcdf1e0cb36033cc971e2c"},{"coordinate":"echo.dpo.registration/v1","digest":"sha256:4ef3aaad0d2131ba7129a3e2ae178d10c44f7e9b062af2c1fe211de781462f34"},{"coordinate":"echo.dpo@1","digest":"sha256:1b105d1b1f6cdf5fecdef98b7adeb238525047d43581fe9fd8c44fd213e1788e"},{"coordinate":"echo.provider-artifacts.cddl@1","digest":"sha256:0a4e7ddf2f4087ef53fd3116db1623097c0df08658d9ddc7a80e02da04fba111"}],"generationInputDigest":"sha256:0c07274803d465ec212c313f74dd46396851f43019fa0f97da9571a167c84587","generator":{"coordinate":"echo-wesley-gen.provider-artifact-generator@1","digest":"sha256:b3b575626164e4639545e3d25b31602274f9458e9dafc4f8076c832a72aa262b","version":"0.1.0"},"settingsDigest":"sha256:0f708e76898de6fdb8186352e81d0f5c445adf94bb6c7de9204952d9fe913d4a","sourceArtifacts":[{"coordinate":"echo.semantic-schema@1","digest":"sha256:322d9eb5eb8273108eaa602f2eb58ba591efcf829fecb10bb705717efae18852"},{"coordinate":"edict.provider-contract-pack.cddl@1","digest":"sha256:8d77c84ecbd7d7e38496479b2f8346c15504a56f076170d79c0eca2a57fdb3a5"},{"coordinate":"edict.provider-contract-pack.manifest@1","digest":"sha256:bc222c4a669b888a60df6f398412bae232967c11841b9a27c7ba6c18eb41e362"}]}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"apiVersion":"wesley.generation-review/v1","authoritative":false,"emittedArtifacts":[{"coordinate":"echo.dpo-authority-facts@1","digest":"sha256:e2a6a539a7156296c18ff1bc02f80dcabf62b42bb4314d0737527869e43986d6"},{"coordinate":"echo.dpo-lawpack-authority-facts@1","digest":"sha256:ce1af559551f8b8242c4b290b620c5a28323b9e43f8bc6bb161a191001b6f4b9"},{"coordinate":"echo.dpo-lawpack@1","digest":"sha256:8c570362671a0b1cd1a992d8210e4a90ffd153ad06dcdf1e0cb36033cc971e2c"},{"coordinate":"echo.dpo.registration/v1","digest":"sha256:4ef3aaad0d2131ba7129a3e2ae178d10c44f7e9b062af2c1fe211de781462f34"},{"coordinate":"echo.dpo@1","digest":"sha256:1b105d1b1f6cdf5fecdef98b7adeb238525047d43581fe9fd8c44fd213e1788e"},{"coordinate":"echo.provider-artifacts.cddl@1","digest":"sha256:139ac50b29f4a6b524febd37e1735e9de3c905fe4b234779b705d68a19cd29e7"}],"generationInputDigest":"sha256:0c07274803d465ec212c313f74dd46396851f43019fa0f97da9571a167c84587","generator":{"coordinate":"echo-wesley-gen.provider-artifact-generator@1","digest":"sha256:7f16189048b2dcd0a7a15f32ed1f3ee9d3ac0ba5f6ea03af9baa3cabcb8727e5","version":"0.1.0"},"projectionRoles":["authority-facts.echo-dpo","authority-facts.echo-lawpack","generated-artifact-profile.echo-dpo-registration","lawpack.echo-dpo","schema.echo-provider-artifacts","target-profile.echo-dpo"],"provenanceManifestDigest":"sha256:c94c42b8205a0a3b82d85c88290a875c1158a96e579a70d52eb1607b1bbdc035","sourceArtifacts":[{"coordinate":"echo.semantic-schema@1","digest":"sha256:322d9eb5eb8273108eaa602f2eb58ba591efcf829fecb10bb705717efae18852"},{"coordinate":"edict.provider-contract-pack.cddl@1","digest":"sha256:8d77c84ecbd7d7e38496479b2f8346c15504a56f076170d79c0eca2a57fdb3a5"},{"coordinate":"edict.provider-contract-pack.manifest@1","digest":"sha256:bc222c4a669b888a60df6f398412bae232967c11841b9a27c7ba6c18eb41e362"}]}
{"apiVersion":"wesley.generation-review/v1","authoritative":false,"emittedArtifacts":[{"coordinate":"echo.dpo-authority-facts@1","digest":"sha256:e2a6a539a7156296c18ff1bc02f80dcabf62b42bb4314d0737527869e43986d6"},{"coordinate":"echo.dpo-lawpack-authority-facts@1","digest":"sha256:ce1af559551f8b8242c4b290b620c5a28323b9e43f8bc6bb161a191001b6f4b9"},{"coordinate":"echo.dpo-lawpack@1","digest":"sha256:8c570362671a0b1cd1a992d8210e4a90ffd153ad06dcdf1e0cb36033cc971e2c"},{"coordinate":"echo.dpo.registration/v1","digest":"sha256:4ef3aaad0d2131ba7129a3e2ae178d10c44f7e9b062af2c1fe211de781462f34"},{"coordinate":"echo.dpo@1","digest":"sha256:1b105d1b1f6cdf5fecdef98b7adeb238525047d43581fe9fd8c44fd213e1788e"},{"coordinate":"echo.provider-artifacts.cddl@1","digest":"sha256:0a4e7ddf2f4087ef53fd3116db1623097c0df08658d9ddc7a80e02da04fba111"}],"generationInputDigest":"sha256:0c07274803d465ec212c313f74dd46396851f43019fa0f97da9571a167c84587","generator":{"coordinate":"echo-wesley-gen.provider-artifact-generator@1","digest":"sha256:b3b575626164e4639545e3d25b31602274f9458e9dafc4f8076c832a72aa262b","version":"0.1.0"},"projectionRoles":["authority-facts.echo-dpo","authority-facts.echo-lawpack","generated-artifact-profile.echo-dpo-registration","lawpack.echo-dpo","schema.echo-provider-artifacts","target-profile.echo-dpo"],"provenanceManifestDigest":"sha256:ae741baed96ec6121aa06e366319d88cc8be6966e01a85f57a652173ce59b8a7","sourceArtifacts":[{"coordinate":"echo.semantic-schema@1","digest":"sha256:322d9eb5eb8273108eaa602f2eb58ba591efcf829fecb10bb705717efae18852"},{"coordinate":"edict.provider-contract-pack.cddl@1","digest":"sha256:8d77c84ecbd7d7e38496479b2f8346c15504a56f076170d79c0eca2a57fdb3a5"},{"coordinate":"edict.provider-contract-pack.manifest@1","digest":"sha256:bc222c4a669b888a60df6f398412bae232967c11841b9a27c7ba6c18eb41e362"}]}
Original file line number Diff line number Diff line change
Expand Up @@ -994,12 +994,17 @@ generated-artifact-profile = {
operations: { * tstr => generated-operation },
}

echo-generated-type = echo-generated-string-alias / echo-generated-record
echo-generated-type = echo-generated-string-alias / echo-generated-bytes-alias / echo-generated-record
echo-generated-string-alias = {
kind: "coreStringAlias",
maxScalarValues: uint,
canonical: "raw-utf8",
}
echo-generated-bytes-alias = {
kind: "coreBytesAlias",
minBytes: uint,
maxBytes: uint,
}
echo-generated-record = {
kind: "record",
fields: [* echo-generated-record-field],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"providerAbi": "edict:target-provider@1.0.0",
"provider": {
"coordinate": "echo.edict-provider@1",
"digest": "sha256:2083dd7057574b040fb9c043b17990e34012004fbed39bdeda253dbb0a522bcc"
"digest": "sha256:36ce20c612c8c46bbe450c93e6fb2235f38e4ec2b14f04f128eee91805cdb26a"
},
"artifacts": [
{
Expand All @@ -21,7 +21,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:7f16189048b2dcd0a7a15f32ed1f3ee9d3ac0ba5f6ea03af9baa3cabcb8727e5"
"digest": "sha256:b3b575626164e4639545e3d25b31602274f9458e9dafc4f8076c832a72aa262b"
}
}
},
Expand All @@ -40,7 +40,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:7f16189048b2dcd0a7a15f32ed1f3ee9d3ac0ba5f6ea03af9baa3cabcb8727e5"
"digest": "sha256:b3b575626164e4639545e3d25b31602274f9458e9dafc4f8076c832a72aa262b"
}
}
},
Expand All @@ -59,7 +59,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:7f16189048b2dcd0a7a15f32ed1f3ee9d3ac0ba5f6ea03af9baa3cabcb8727e5"
"digest": "sha256:b3b575626164e4639545e3d25b31602274f9458e9dafc4f8076c832a72aa262b"
}
}
},
Expand All @@ -78,7 +78,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:7f16189048b2dcd0a7a15f32ed1f3ee9d3ac0ba5f6ea03af9baa3cabcb8727e5"
"digest": "sha256:b3b575626164e4639545e3d25b31602274f9458e9dafc4f8076c832a72aa262b"
}
}
},
Expand All @@ -87,13 +87,13 @@
"artifactKind": "lowerer",
"resource": {
"coordinate": "echo.dpo.lowerer/component@1",
"digest": "sha256:04d5162202ca2ce9b4496c3eff5b7b249d31b33d72e97a23f2e2a86f8d4ed93e"
"digest": "sha256:cd81874f971f290f74987b39479ef89ddb5060e56df54044d2359e6e89b2430c"
},
"source": {
"kind": "component",
"component": {
"coordinate": "echo.dpo.lowerer/component@1",
"digest": "sha256:04d5162202ca2ce9b4496c3eff5b7b249d31b33d72e97a23f2e2a86f8d4ed93e"
"digest": "sha256:cd81874f971f290f74987b39479ef89ddb5060e56df54044d2359e6e89b2430c"
}
}
},
Expand All @@ -102,7 +102,7 @@
"artifactKind": "generationProvenance",
"resource": {
"coordinate": "echo.edict-provider-generation-provenance@1",
"digest": "sha256:a1a25c26e70c0d48d2b0e7e9643807077eab113f873a168468a460211d6ab4e2"
"digest": "sha256:2bc9bf98d4f3ff91b31359afe60b30bbf6670c94ba2d36d04baecb686eec4d38"
},
"source": {
"kind": "generated",
Expand All @@ -112,7 +112,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:7f16189048b2dcd0a7a15f32ed1f3ee9d3ac0ba5f6ea03af9baa3cabcb8727e5"
"digest": "sha256:b3b575626164e4639545e3d25b31602274f9458e9dafc4f8076c832a72aa262b"
}
}
},
Expand All @@ -121,7 +121,7 @@
"artifactKind": "reviewArtifact",
"resource": {
"coordinate": "echo.edict-provider-generation-review@1",
"digest": "sha256:a298384754bc53136c592316aa9728cd95d3c0c4bf51c92cee7d96adbab2e2a6"
"digest": "sha256:29612fb0642a1fea047e9d348e21abb776e3467ccad61fa9e07194e945f39191"
},
"source": {
"kind": "generated",
Expand All @@ -131,7 +131,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:7f16189048b2dcd0a7a15f32ed1f3ee9d3ac0ba5f6ea03af9baa3cabcb8727e5"
"digest": "sha256:b3b575626164e4639545e3d25b31602274f9458e9dafc4f8076c832a72aa262b"
}
}
},
Expand All @@ -140,7 +140,7 @@
"artifactKind": "artifactSchema",
"resource": {
"coordinate": "echo.provider-artifacts.cddl@1",
"digest": "sha256:139ac50b29f4a6b524febd37e1735e9de3c905fe4b234779b705d68a19cd29e7"
"digest": "sha256:0a4e7ddf2f4087ef53fd3116db1623097c0df08658d9ddc7a80e02da04fba111"
Comment thread
flyingrobots marked this conversation as resolved.
},
"source": {
"kind": "generated",
Expand All @@ -150,7 +150,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:7f16189048b2dcd0a7a15f32ed1f3ee9d3ac0ba5f6ea03af9baa3cabcb8727e5"
"digest": "sha256:b3b575626164e4639545e3d25b31602274f9458e9dafc4f8076c832a72aa262b"
}
}
},
Expand All @@ -169,7 +169,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:7f16189048b2dcd0a7a15f32ed1f3ee9d3ac0ba5f6ea03af9baa3cabcb8727e5"
"digest": "sha256:b3b575626164e4639545e3d25b31602274f9458e9dafc4f8076c832a72aa262b"
}
}
},
Expand Down
7 changes: 6 additions & 1 deletion crates/echo-wesley-gen/src/provider_artifacts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,17 @@ generated-artifact-profile = {
operations: { * tstr => generated-operation },
}

echo-generated-type = echo-generated-string-alias / echo-generated-record
echo-generated-type = echo-generated-string-alias / echo-generated-bytes-alias / echo-generated-record
echo-generated-string-alias = {
kind: "coreStringAlias",
maxScalarValues: uint,
canonical: "raw-utf8",
}
echo-generated-bytes-alias = {
kind: "coreBytesAlias",
minBytes: uint,
maxBytes: uint,
}
echo-generated-record = {
kind: "record",
fields: [* echo-generated-record-field],
Expand Down
Loading
Loading