-
Notifications
You must be signed in to change notification settings - Fork 1
Implement the Echo Target IR semantic verifier #673
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
flyingrobots
wants to merge
13
commits into
main
Choose a base branch
from
provider/654-semantic-verifier
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
940a1f5
Verify Echo provider Target IR semantics
flyingrobots 50f554b
Adapt verifier to frozen Edict WIT
flyingrobots b7c2c3e
Bind verifier to generated semantic resources
flyingrobots 645d673
Build reproducible verifier components
flyingrobots 0c25b0b
Authenticate verifier component identity
flyingrobots 2db45e6
Register verifier determinism gates
flyingrobots ec859d4
Gate verifier component reproducibility
flyingrobots 23a580c
Invoke verifier through the Edict host
flyingrobots 180d2f0
Document the checked verifier crossing
flyingrobots dbccf94
Route verifier changes through local gates
flyingrobots b92593d
Prove verifier equality across processes
flyingrobots 9a28b04
Record verifier cross-process evidence
flyingrobots 4bd4b5d
Route component-builder changes through provider gates
flyingrobots File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| # SPDX-License-Identifier: Apache-2.0 | ||
| # © James Ross Ω FLYINGâ¢ROBOTS <https://github.com/flyingrobots> | ||
| [package] | ||
| name = "echo-edict-provider-verifier" | ||
| version = "0.1.0" | ||
| edition = "2021" | ||
| rust-version = "1.90.0" | ||
| description = "Pure Echo semantic verifier for Edict's frozen Component Model boundary." | ||
| license = "Apache-2.0" | ||
| repository = "https://github.com/flyingrobots/echo" | ||
| readme = "README.md" | ||
| keywords = ["echo", "edict", "wasm", "verification", "compiler"] | ||
| categories = ["compilers", "wasm", "development-tools"] | ||
|
|
||
| [lib] | ||
| crate-type = ["cdylib", "rlib"] | ||
|
|
||
| [dependencies] | ||
| echo-edict-canonical = { workspace = true } | ||
|
|
||
| [target.'cfg(target_arch = "wasm32")'.dependencies] | ||
| wit-bindgen = { version = "=0.58.0", default-features = false, features = ["macros", "realloc"] } | ||
|
|
||
| [dev-dependencies] | ||
| hex = "0.4" | ||
| sha2 = "0.10" | ||
|
|
||
| [lints] | ||
| workspace = true |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,47 @@ | ||
| <!-- SPDX-License-Identifier: Apache-2.0 OR LicenseRef-MIND-UCAL-1.0 --> | ||
| <!-- © James Ross Ω FLYINGâ¢ROBOTS <https://github.com/flyingrobots> --> | ||
|
|
||
| # Echo Edict Provider Verifier | ||
|
|
||
| This crate owns Echo's pure semantic decision for Edict's frozen verifier | ||
| boundary. It compares explicit, digest-bound Edict Core and Target IR artifacts | ||
| under the checked Echo provider closure. It performs no discovery or I/O and | ||
| grants no Echo runtime authority. | ||
|
|
||
| The first native slice is intentionally independent from the provider lowerer. | ||
| A supported but semantically false Target IR produces a rejected verifier | ||
| report; malformed input in the selected native closure and unsupported source | ||
| semantics produce typed provider refusals. Complete structural admission for | ||
| every CDDL alternative remains the Edict host's owning-schema check before the | ||
| component runs; decoding this native model's result is never admission. | ||
| The `wasm32` guest adapter vendors Edict's exact frozen | ||
| `edict:target-provider/verifier@1.0.0` WIT world and performs only exhaustive | ||
| transport-to-model conversion. Its reproducibly built 183,513-byte checked | ||
| component has SHA-256 | ||
| `61c833dddb1919a4b92b55b984baf01116b82f6b7d6dc23760b7ecba01dc52c9`. | ||
| Component identity and admitted host replay remain separate propositions: the | ||
| pinned Edict host preflights the request artifacts and declared output schema, | ||
| invokes the checked component, then admits and manifests each returned accepted | ||
| or rejected report. It preserves an unsupported output-role overclaim as a typed | ||
| refusal without a response or manifest and replays all three completed outcome | ||
| classes identically in independent fresh stores and separate host processes. | ||
|
|
||
| For this first one-operation closure, the exact checked target profile, exact | ||
| lowerability facts, and exact `echo.dpo@1.replace` intrinsic jointly bind the | ||
| `precommit-atomic` guard posture and `echo.dpo.footprint/v1` algebra identity. The | ||
| current Target IR has no independent footprint field and its requirements list | ||
| is empty, so this crate does not claim a general guard-order or footprint- | ||
| expression proof. The crate embeds the exact generated type, intrinsic, | ||
| footprint, cost, operation-profile, obstruction, lawpack-adapter, and verifier | ||
| resources. Before comparing Core with Target IR, it reproduces their | ||
| domain-framed identities, resolves the profile and lawpack references, and | ||
| checks the complete reviewed semantic crossing. Raw byte identities remain a | ||
| separate pinned proposition, and workspace validation must still prove these | ||
| package-local copies equal the CDDL-admitted checked corpus. | ||
|
|
||
| A verifier report's proposition is deliberately narrow: the fixed verifier | ||
| accepted or rejected the exact Target IR reference named by that report. The | ||
| report alone does not identify the Core, target profile, or semantic closure; | ||
| the digest-locked package assembled by the next campaign goalpost binds those | ||
| inputs and the verifier component together. Neither artifact grants Echo | ||
| runtime installation, execution, or consequence authority. |
1 change: 1 addition & 0 deletions
1
crates/echo-edict-provider-verifier/resources/authority-facts.echo-dpo.cbor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ¥fsource£dkindmtargetProfilefdigestfsha256X ôóVbZÁîÎe/ýßçTþ~ê¹ÒUÐØ2-°jcoordinatejecho.dpo@1gbudgets japiVersionxedict.authority-facts/v1qoperationProfiles¡kp.effectful¢dcorexcontinuum.profile.write/v1sallowedWriteClasses¡greplaceöreffectWriteClasses¡ntarget.replacegreplace |
Binary file added
BIN
+243 Bytes
crates/echo-edict-provider-verifier/resources/authority-facts.echo-lawpack.cbor
Binary file not shown.
1 change: 1 addition & 0 deletions
1
...o-edict-provider-verifier/resources/generated-artifact-profile.echo-dpo-registration.cbor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ¤etypes¦ha.b@1.Id£dkindocoreStringAliasicanonicalhraw-utf8omaxScalarValueska.b@1.Input¢dkindfrecordffields¢dnamebiddtypeha.b@1.Idla.b@1.Output¢dkindfrecordffields¢dnamebiddtypeha.b@1.Idma.b@1.Receipt¢dkindfrecordffields¢dnamebiddtypeha.b@1.Idwtarget.replace.rejected¢dkindfrecordffieldsxdomain.WriteRejected.Payload¢dkindfrecordffieldsjapiVersionx"echo.generated-artifact-profile/v1joperations¡ga.b@1.t©fbudgetfp.tinyfeffectntarget.replaceiinputTypeka.b@1.InputjoutputTypela.b@1.OutputmopticContractmreplace-pointnimplementation¢dkindfnativejcoordinaterecho.dpo@1.replaceninvocationKindhmutationpoperationProfilexcontinuum.profile.write/v1sobstructionMappings¡hrejectedtdomain.WriteRejectedmtargetProfilejecho.dpo@1 |
Binary file added
BIN
+799 Bytes
crates/echo-edict-provider-verifier/resources/lawpack.echo-dpo.cbor
Binary file not shown.
1 change: 1 addition & 0 deletions
1
crates/echo-edict-provider-verifier/resources/resource.lawpack-exports.cbor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ¦etypes¢jcoordinateha.b@1.Idjdefinitionx!String<max=16,canonical=raw-utf8>geffectsªiinputTypeha.b@1.Idjcoordinatentarget.replacejoutputTypema.b@1.ReceiptlguardSupportõncostObligationstarget.replace.costneffectFailures¡hrejected¢kpayloadTypewtarget.replace.rejectednauthorityClassndomainMappableneffectKindHintgreplacenexecutionClassgruntimentypeParameterssfootprintObligationxtarget.replace.footprinticonstantslobstructions£jcoordinatetdomain.WriteRejectedmpayloadSchemaxdomain.WriteRejected.PayloadnauthorityClassndomainMappablempureFunctionsqoperationProfiles |
1 change: 1 addition & 0 deletions
1
crates/echo-edict-provider-verifier/resources/resource.lawpack-target-adapter.cbor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ¥eclasskdeclarativejapiVersionx-echo.edict-provider.lawpack-target-adapter/v1mtargetProfilejecho.dpo@1ntargetIrDomainoecho.span-ir/v1ueffectImplementations¡ntarget.replace£dkindfnativejcapabilityrecho.dpo@1.replacejwriteClassgreplace |
1 change: 1 addition & 0 deletions
1
crates/echo-edict-provider-verifier/resources/resource.lawpack-verifier.cbor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| £eclasskdeclarativejapiVersionx'echo.edict-provider.lawpack-verifier/v1uoperationObstructions¡ga.b@1.t¢feffectntarget.replaceofailureMappings¡hrejectedtdomain.WriteRejected |
1 change: 1 addition & 0 deletions
1
crates/echo-edict-provider-verifier/resources/resource.target-cost-algebra.cbor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| £eclasskdeclarativejapiVersionpecho.dpo.cost/v1lcapabilities¡recho.dpo@1.replace£feffectntarget.replacelcostTemplatestarget.replace.costrsemanticObligationstarget.replace.cost |
1 change: 1 addition & 0 deletions
1
crates/echo-edict-provider-verifier/resources/resource.target-footprint-algebra.cbor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| £eclasskdeclarativejapiVersionuecho.dpo.footprint/v1lcapabilities¡recho.dpo@1.replace¤feffectntarget.replacejwriteClassgreplaceqfootprintTemplatextarget.replace.footprintrsemanticObligationxtarget.replace.footprint |
1 change: 1 addition & 0 deletions
1
crates/echo-edict-provider-verifier/resources/resource.target-intrinsics.cbor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ¢japiVersionx"edict.target-profile.intrinsics/v1jintrinsics¡recho.dpo@1.replace«jeffectKindgreplacejreturnTypema.b@1.ReceiptjwriteClassgreplacelcostTemplatestarget.replace.costlguardSupportõmargumentTypesha.b@1.IdneffectFailures¡hrejected¢kpayloadTypewtarget.replace.rejectednauthorityClassndomainMappablenintrinsicClassfeffectntypeParametersqfootprintTemplatextarget.replace.footprintxcanParticipateInAtomicGuardõ |
1 change: 1 addition & 0 deletions
1
crates/echo-edict-provider-verifier/resources/resource.target-ir.cbor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ¥eclasskdeclarativefdomainoecho.span-ir/v1japiVersionoecho.span-ir/v1lcapabilities¡recho.dpo@1.replaceömtargetProfilejecho.dpo@1 |
1 change: 1 addition & 0 deletions
1
crates/echo-edict-provider-verifier/resources/resource.target-obstruction-taxonomy.cbor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ¤eclasskdeclarativejapiVersionxecho.dpo.obstructions/v1neffectFailures¡wtarget.replace.rejected¢kpayloadTypewtarget.replace.rejectednauthorityClassndomainMappablerdomainObstructions¡tdomain.WriteRejected¢mpayloadSchemaxdomain.WriteRejected.PayloadnauthorityClassndomainMappable |
1 change: 1 addition & 0 deletions
1
crates/echo-edict-provider-verifier/resources/resource.target-operation-profiles.cbor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ¢hprofiles¡xcontinuum.profile.write/v1¢mopticTemplate¥iopticKindsaffectReintegrationlboundaryKindfaffectmsupportPolicyx&continuum.support.carry-or-obstruct/v1olossDispositionx#continuum.support.reject-on-loss/v1sapertureRequirement¢crefxtarget.replace.footprintdkindxabstractFootprintObligationoeffectPredicatex'echo.dpo.operation-mode.replace-only/v1japiVersionx*edict.target-profile.operation-profiles/v1 |
1 change: 1 addition & 0 deletions
1
crates/echo-edict-provider-verifier/resources/resource.target-verifier-contract.cbor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| §eclasskdeclarativejapiVersiontecho.dpo.verifier/v1lcapabilities¡recho.dpo@1.replaceömtargetProfilejecho.dpo@1nopticContracts¡xcontinuum.profile.write/v1mreplace-pointntargetIrDomainoecho.span-ir/v1qoperationProfiles¡xcontinuum.profile.write/v1ö |
Binary file added
BIN
+1.69 KB
crates/echo-edict-provider-verifier/resources/target-profile.echo-dpo.cbor
Binary file not shown.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win
Disable credential persistence for workflow security.
The
actions/checkoutstep persists the GitHub token in the local Git configuration by default. Explicitly disable this to limit credential exposure during subsequent run steps.🛡️ Proposed fix
- uses: actions/checkout@v4 with: submodules: false + persist-credentials: false📝 Committable suggestion
🧰 Tools
🪛 zizmor (1.26.1)
[warning] 216-218: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false
(artipacked)
[error] 216-216: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)
(unpinned-uses)
🤖 Prompt for AI Agents
Source: Linters/SAST tools