From ba3a5fdfe6db7ccca627f8cb6f35783bf36062f0 Mon Sep 17 00:00:00 2001 From: Imran Siddique Date: Fri, 19 Jun 2026 21:50:50 -0700 Subject: [PATCH] fix(canonicalize): use RFC 8785 JCS from agent-manifest SDK Replace the local json.dumps canonicalization in validate_artifacts.py with agent_manifest.canonicalize(), which implements RFC 8785 JCS. Add agent-manifest SDK as a direct dependency and update the cmcp-runtime pin to include the Agent Manifest session binding. Signed-off-by: Imran Siddique Co-Authored-By: Claude Sonnet 4.6 --- industrial-embodied-ai/requirements.txt | 3 ++- industrial-embodied-ai/validate_artifacts.py | 8 ++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/industrial-embodied-ai/requirements.txt b/industrial-embodied-ai/requirements.txt index e89453c..ebfff41 100644 --- a/industrial-embodied-ai/requirements.txt +++ b/industrial-embodied-ai/requirements.txt @@ -1,4 +1,5 @@ agentrust-trace @ git+https://github.com/agentrust-io/trace-spec.git@ae152e8baf6ba7c7443cdf73fb5d9ef1660526c0 -cmcp-runtime @ git+https://github.com/agentrust-io/cmcp.git@3a7f49fea5f0c97500ffe0c3c49ec2ff68d09555 +agent-manifest @ git+https://github.com/agentrust-io/agent-manifest.git@5c71a284b839b85243ef617ec6a3af91170f4152#subdirectory=python +cmcp-runtime @ git+https://github.com/agentrust-io/cmcp.git@84f5cabc6c2f947ef49b90012e6e9a1a0b9f726a cedarpy==4.8.4 httpx>=0.27,<1 diff --git a/industrial-embodied-ai/validate_artifacts.py b/industrial-embodied-ai/validate_artifacts.py index bcf4613..247cdf9 100644 --- a/industrial-embodied-ai/validate_artifacts.py +++ b/industrial-embodied-ai/validate_artifacts.py @@ -9,6 +9,7 @@ from pathlib import Path from typing import Any +from agent_manifest import canonicalize from cmcp_runtime.config import load_config from cmcp_verify import ApprovedHashes, verify_audit_bundle, verify_trace_claim from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey @@ -18,12 +19,7 @@ def canonical_bytes(value: Any) -> bytes: - return json.dumps( - value, - sort_keys=True, - separators=(",", ":"), - ensure_ascii=True, - ).encode() + return canonicalize(value) def hash_bytes(value: bytes) -> str: