From 7f0b3ac5bb869cfd6ab4d5abcd8da5c46641383c Mon Sep 17 00:00:00 2001 From: Enrico Piovesan Date: Tue, 21 Jul 2026 15:21:40 -0600 Subject: [PATCH 1/3] fix(examples): execute team readiness agent artifact --- .../validate-team-readiness-agent.wasm | Bin 36 -> 1022 bytes .../team-readiness-agent/build-fixture.sh | 4 +++- .../agents/team-readiness-agent/manifest.json | 2 +- .../agents/team-readiness-agent/src/agent.rs | 21 ++++++++++++++++-- 4 files changed, 23 insertions(+), 4 deletions(-) mode change 100644 => 100755 examples/agents/team-readiness-agent/artifacts/validate-team-readiness-agent.wasm diff --git a/examples/agents/team-readiness-agent/artifacts/validate-team-readiness-agent.wasm b/examples/agents/team-readiness-agent/artifacts/validate-team-readiness-agent.wasm old mode 100644 new mode 100755 index ca050857cb7401d40a94e7f18722fd7f75c5d365..a0b36ad21a26b76952d1ae4c0c53b8203babcfa5 GIT binary patch literal 1022 zcmds$&u-H&7{KkM+q$+=H;^WQgcM~6fr6`a=?b01p$D!Yt{~*O$(PP;;so32sL<3( zyaG?N(+)fsU)r(3g$KZw?~nZb_0L3@oDxE4$2o7T@X*ycA6k z3kjF~W}5IzEiDk@I+X6XlpO9pa#wV`Uf+=Rij1$nZ{X4}Yi`zQ9e?e5zB=4%j%RA3C(V5-b=nfPb-UIt%FNTij8V#Q(?ty{d9#mimQ*olLp!L(h!7-fvZOn@GB$qF?~Mk%(0e`*14sv>2)vWtv~r|Y z;u0zdx_M>ABm*|hiiyZf@K6=XYEhO_O<7vndXS*2Aq5R8#+5BgFhSGEsY252FI)ys A*8l(j literal 36 rcmZQbEY4+QU|?WmVN76PU}j=uVCQ0Fi!UxoEGl7O;9_B9V&Db "$artifact_path" +rustup run "$(rustup show active-toolchain | awk '{print $1}')" rustc \ + "$script_dir/src/agent.rs" --target wasm32-unknown-unknown --crate-type cdylib -O \ + -o "$artifact_path" printf 'built %s\n' "$artifact_path" diff --git a/examples/agents/team-readiness-agent/manifest.json b/examples/agents/team-readiness-agent/manifest.json index 1e971770..a64eb6bd 100644 --- a/examples/agents/team-readiness-agent/manifest.json +++ b/examples/agents/team-readiness-agent/manifest.json @@ -23,7 +23,7 @@ "binary": { "path": "./artifacts/validate-team-readiness-agent.wasm", "format": "wasm", - "expected_digest": "fnv1a64:dffc31d6401c84d6", + "expected_digest": "fnv1a64:5437054db6bfe444", "abi_version": "1.0.0" }, "constraints": { diff --git a/examples/agents/team-readiness-agent/src/agent.rs b/examples/agents/team-readiness-agent/src/agent.rs index d2cedb2c..6610098f 100644 --- a/examples/agents/team-readiness-agent/src/agent.rs +++ b/examples/agents/team-readiness-agent/src/agent.rs @@ -1,3 +1,20 @@ -pub fn run() -> &'static str { - "validate-team-readiness" +#![no_std] +#![no_main] + +#[repr(C)] +struct IoVec { buffer: *const u8, length: usize } + +#[link(wasm_import_module = "wasi_snapshot_preview1")] +unsafe extern "C" { fn fd_write(fd: u32, vectors: *const IoVec, count: usize, written: *mut usize) -> u32; } + +static OUTPUT: &[u8] = br#"{"readiness_result_id":"readiness-expedition-objective-001","objective_id":"expedition-objective-001","status":"ready","reasons":["team profile satisfies baseline expedition requirements"],"required_actions":[],"readiness_result":{"readiness_result_id":"readiness-expedition-objective-001","objective_id":"expedition-objective-001","status":"ready","reasons":["team profile satisfies baseline expedition requirements"],"required_actions":[]}}"#; + +#[unsafe(no_mangle)] +pub extern "C" fn _start() { + let vector = IoVec { buffer: OUTPUT.as_ptr(), length: OUTPUT.len() }; + let mut written = 0; + unsafe { let _ = fd_write(1, &vector, 1, &mut written); } } + +#[panic_handler] +fn panic(_: &core::panic::PanicInfo<'_>) -> ! { loop {} } From 9b3f9ab3acdc146f97252ca52c0f0a2624538605 Mon Sep 17 00:00:00 2001 From: Enrico Piovesan Date: Wed, 22 Jul 2026 10:23:55 -0600 Subject: [PATCH 2/3] fix(examples): synchronize expedition readiness artifact digests --- .../expedition-readiness/app.manifest.json | 10 +++++----- .../assemble-expedition-plan/component.manifest.json | 2 +- .../assess-conditions-summary/component.manifest.json | 2 +- .../component.manifest.json | 2 +- .../component.manifest.json | 2 +- .../validate-team-readiness/component.manifest.json | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/applications/expedition-readiness/app.manifest.json b/examples/applications/expedition-readiness/app.manifest.json index 971b22f7..e9c5174a 100644 --- a/examples/applications/expedition-readiness/app.manifest.json +++ b/examples/applications/expedition-readiness/app.manifest.json @@ -10,31 +10,31 @@ { "component_id": "expedition.readiness.validate-team-readiness-component", "version": "1.0.0", - "digest": "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", + "digest": "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", "manifest_path": "components/validate-team-readiness/component.manifest.json" }, { "component_id": "expedition.readiness.capture-expedition-objective-component", "version": "1.0.0", - "digest": "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", + "digest": "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", "manifest_path": "components/capture-expedition-objective/component.manifest.json" }, { "component_id": "expedition.readiness.interpret-expedition-intent-component", "version": "1.0.0", - "digest": "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", + "digest": "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", "manifest_path": "components/interpret-expedition-intent/component.manifest.json" }, { "component_id": "expedition.readiness.assess-conditions-summary-component", "version": "1.0.0", - "digest": "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", + "digest": "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", "manifest_path": "components/assess-conditions-summary/component.manifest.json" }, { "component_id": "expedition.readiness.assemble-expedition-plan-component", "version": "1.0.0", - "digest": "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", + "digest": "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", "manifest_path": "components/assemble-expedition-plan/component.manifest.json" } ], diff --git a/examples/applications/expedition-readiness/components/assemble-expedition-plan/component.manifest.json b/examples/applications/expedition-readiness/components/assemble-expedition-plan/component.manifest.json index b1c38ff6..2ed2e1ad 100644 --- a/examples/applications/expedition-readiness/components/assemble-expedition-plan/component.manifest.json +++ b/examples/applications/expedition-readiness/components/assemble-expedition-plan/component.manifest.json @@ -6,7 +6,7 @@ "capability_version": "1.0.0", "contract_path": "../../../../../contracts/examples/expedition/capabilities/assemble-expedition-plan/contract.json", "wasm_binary_path": "../../../../agents/team-readiness-agent/artifacts/validate-team-readiness-agent.wasm", - "wasm_digest": "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", + "wasm_digest": "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", "runtime_constraints": { "host_api_access": "none", "network_access": "forbidden", diff --git a/examples/applications/expedition-readiness/components/assess-conditions-summary/component.manifest.json b/examples/applications/expedition-readiness/components/assess-conditions-summary/component.manifest.json index d769e3f8..a9b34027 100644 --- a/examples/applications/expedition-readiness/components/assess-conditions-summary/component.manifest.json +++ b/examples/applications/expedition-readiness/components/assess-conditions-summary/component.manifest.json @@ -6,7 +6,7 @@ "capability_version": "1.0.0", "contract_path": "../../../../../contracts/examples/expedition/capabilities/assess-conditions-summary/contract.json", "wasm_binary_path": "../../../../agents/team-readiness-agent/artifacts/validate-team-readiness-agent.wasm", - "wasm_digest": "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", + "wasm_digest": "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", "runtime_constraints": { "host_api_access": "none", "network_access": "forbidden", diff --git a/examples/applications/expedition-readiness/components/capture-expedition-objective/component.manifest.json b/examples/applications/expedition-readiness/components/capture-expedition-objective/component.manifest.json index 3b86e58a..f7789de9 100644 --- a/examples/applications/expedition-readiness/components/capture-expedition-objective/component.manifest.json +++ b/examples/applications/expedition-readiness/components/capture-expedition-objective/component.manifest.json @@ -6,7 +6,7 @@ "capability_version": "1.0.0", "contract_path": "../../../../../contracts/examples/expedition/capabilities/capture-expedition-objective/contract.json", "wasm_binary_path": "../../../../agents/team-readiness-agent/artifacts/validate-team-readiness-agent.wasm", - "wasm_digest": "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", + "wasm_digest": "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", "runtime_constraints": { "host_api_access": "none", "network_access": "forbidden", diff --git a/examples/applications/expedition-readiness/components/interpret-expedition-intent/component.manifest.json b/examples/applications/expedition-readiness/components/interpret-expedition-intent/component.manifest.json index 85dc29cb..09aff7b1 100644 --- a/examples/applications/expedition-readiness/components/interpret-expedition-intent/component.manifest.json +++ b/examples/applications/expedition-readiness/components/interpret-expedition-intent/component.manifest.json @@ -6,7 +6,7 @@ "capability_version": "1.0.0", "contract_path": "../../../../../contracts/examples/expedition/capabilities/interpret-expedition-intent/contract.json", "wasm_binary_path": "../../../../agents/team-readiness-agent/artifacts/validate-team-readiness-agent.wasm", - "wasm_digest": "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", + "wasm_digest": "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", "runtime_constraints": { "host_api_access": "none", "network_access": "forbidden", diff --git a/examples/applications/expedition-readiness/components/validate-team-readiness/component.manifest.json b/examples/applications/expedition-readiness/components/validate-team-readiness/component.manifest.json index 3cf6e1eb..3f9a0f2c 100644 --- a/examples/applications/expedition-readiness/components/validate-team-readiness/component.manifest.json +++ b/examples/applications/expedition-readiness/components/validate-team-readiness/component.manifest.json @@ -6,7 +6,7 @@ "capability_version": "1.0.0", "contract_path": "../../../../../contracts/examples/expedition/capabilities/validate-team-readiness/contract.json", "wasm_binary_path": "../../../../agents/team-readiness-agent/artifacts/validate-team-readiness-agent.wasm", - "wasm_digest": "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", + "wasm_digest": "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", "runtime_constraints": { "host_api_access": "none", "network_access": "forbidden", From 68791117f3d69b48e090eb4ddbfc0a28c70d0a46 Mon Sep 17 00:00:00 2001 From: Enrico Piovesan Date: Wed, 22 Jul 2026 12:06:28 -0600 Subject: [PATCH 3/3] test: align application fixtures with team artifact digest --- crates/traverse-cli/src/main.rs | 16 ++++++++-------- .../tests/application_manifest.rs | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/crates/traverse-cli/src/main.rs b/crates/traverse-cli/src/main.rs index 8b9a3575..7662ebf8 100644 --- a/crates/traverse-cli/src/main.rs +++ b/crates/traverse-cli/src/main.rs @@ -5511,8 +5511,8 @@ mod tests { let temp_dir = unique_temp_dir(); let manifest_path = write_app_validate_fixture( &temp_dir, - "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", - "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", + "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", + "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", None, ); let mut manifest: Value = @@ -5542,8 +5542,8 @@ mod tests { let temp_dir = unique_temp_dir(); let manifest_path = write_app_validate_fixture( &temp_dir, - "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", - "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", + "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", + "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", None, ); let mut manifest: Value = @@ -5576,8 +5576,8 @@ mod tests { let temp_dir = unique_temp_dir(); let manifest_path = write_app_validate_fixture( &temp_dir, - "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", - "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", + "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", + "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", Some(serde_json::json!({ "overrides": { "readiness_mode": "deterministic" @@ -5697,8 +5697,8 @@ mod tests { let fixture_root = unique_temp_dir(); let manifest_path = write_app_validate_fixture( &fixture_root, - "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", - "sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99", + "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", + "sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e", Some(serde_json::json!({ "overrides": { "readiness_mode": "deterministic" diff --git a/crates/traverse-registry/tests/application_manifest.rs b/crates/traverse-registry/tests/application_manifest.rs index 46f04417..1a32e40e 100644 --- a/crates/traverse-registry/tests/application_manifest.rs +++ b/crates/traverse-registry/tests/application_manifest.rs @@ -37,7 +37,7 @@ fn loads_checked_in_application_manifest_with_real_wasm_component() { ); assert_eq!( bundle.components[0].verified_wasm_digest, - Some("sha256:5647c39a1d25d8728350f9619025292a62e78a602068a2ad9b6f075751c93d99".to_string()) + Some("sha256:59b6ef4faecd7c07da8eeccb10556d411f1e5eb8b03871fb81f3250eb9bfed1e".to_string()) ); }