diff --git a/.github/workflows/alakris-authority-comparison.yml b/.github/workflows/alakris-authority-comparison.yml new file mode 100644 index 0000000..d7c1e90 --- /dev/null +++ b/.github/workflows/alakris-authority-comparison.yml @@ -0,0 +1,32 @@ +name: Alakris authority comparison evidence checks + +on: + pull_request: + paths: + - "integrations/alakris-authority-comparison/**" + - ".github/workflows/alakris-authority-comparison.yml" + push: + branches: [main] + paths: + - "integrations/alakris-authority-comparison/**" + - ".github/workflows/alakris-authority-comparison.yml" + workflow_dispatch: + +permissions: + contents: read + +jobs: + evidence-checks: + runs-on: ubuntu-24.04 + timeout-minutes: 15 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 + - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 + with: + python-version: "3.12" + - name: Install released packages + working-directory: integrations/alakris-authority-comparison + run: python -m pip install --require-hashes -r requirements.lock + - name: Check fixtures, boundaries and reference shape + working-directory: integrations/alakris-authority-comparison + run: python check_package.py --fetch diff --git a/README.md b/README.md index b8a3471..60fc14a 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ TRACE only works as a standard if it is genuinely neutral. Integrations are list | [Agent Passport System](integrations/aeoess-aps/) | aeoess | trace | verified | | [cA2A Cross-Operator Delegation](integrations/agentrust-ca2a-cross-operator/) | agentrust-io | ca2a | community | | [Confidential Workflow Acceptance Harness](integrations/agentrust-confidential-workflow-harness/) | agentrust-io | cmcp, ca2a | community | +| [AAIF Authority Comparison Runner](integrations/alakris-authority-comparison/) | Alakris Research | trace | community | | [Agent Replay](integrations/altrudev-agent-replay/) | Altru.dev | trace | verified | | [Frequency Agent Execution Assurance](integrations/altrudev-frequency-agent-execution-assurance/) | Altru.dev | trace | community | | [Bernstein MCP verifier](integrations/bernstein-mcp/) | Bernstein | trace | verified | diff --git a/integrations/alakris-authority-comparison/.gitattributes b/integrations/alakris-authority-comparison/.gitattributes new file mode 100644 index 0000000..3405631 --- /dev/null +++ b/integrations/alakris-authority-comparison/.gitattributes @@ -0,0 +1,2 @@ +# Retain original vendor-generated logs and summaries byte-for-byte. +results/native-mintid/** -whitespace diff --git a/integrations/alakris-authority-comparison/.gitignore b/integrations/alakris-authority-comparison/.gitignore new file mode 100644 index 0000000..c60ba3b --- /dev/null +++ b/integrations/alakris-authority-comparison/.gitignore @@ -0,0 +1,4 @@ +.venv/ +__pycache__/ +fixtures/ +.venv312/ diff --git a/integrations/alakris-authority-comparison/LICENSE b/integrations/alakris-authority-comparison/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/integrations/alakris-authority-comparison/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/integrations/alakris-authority-comparison/PORTABLE_ENVELOPE_LICENSE b/integrations/alakris-authority-comparison/PORTABLE_ENVELOPE_LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/integrations/alakris-authority-comparison/PORTABLE_ENVELOPE_LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/integrations/alakris-authority-comparison/PORTABLE_ENVELOPE_NOTICE.txt b/integrations/alakris-authority-comparison/PORTABLE_ENVELOPE_NOTICE.txt new file mode 100644 index 0000000..6bc1e8b --- /dev/null +++ b/integrations/alakris-authority-comparison/PORTABLE_ENVELOPE_NOTICE.txt @@ -0,0 +1 @@ +portable_envelope.py is vendored unchanged from probityai/agent-evidence-observer PR #88, commit 2b54ee47491f0d1a86c7d9f47d434f8f02622043, interop/authority-unreachable-2026-10-03/portable_envelope.py. Apache-2.0; license retained in PORTABLE_ENVELOPE_LICENSE. Historical EIP-191 receipt integrity only; no current freshness or universal CAIP-380 conformance. diff --git a/integrations/alakris-authority-comparison/PUBLICATION.md b/integrations/alakris-authority-comparison/PUBLICATION.md new file mode 100644 index 0000000..a37ca78 --- /dev/null +++ b/integrations/alakris-authority-comparison/PUBLICATION.md @@ -0,0 +1,23 @@ +# Publication status + +Alakris tracking issue: https://git.elibot.ru/agent-bot/aaif-publication-reference/issues/2 + +Imran requested an issue in `agentrust-io/integrations`, a linked PR containing the shared runner/adapters/reproducible fixtures, and links from https://github.com/aaif/wg-identity-and-trust/issues/13. + +**Published 2026-10-07.** + +- Tracking issue: https://github.com/agentrust-io/integrations/issues/287 +- Linked PR: https://github.com/agentrust-io/integrations/pull/288 (base `main`, upstream base commit `0966a565e538fdcdd831389b6c843b327b09ab18`; head `codex/aaif-authority-comparison` on fork `wlad232/integrations`) +- WG #13 comment linking both: https://github.com/aaif/wg-identity-and-trust/issues/13#issuecomment-6036876175 + +GitHub CLI authentication was verified as `wlad232` on 2026-10-07. The previously saved browser restriction on github.com did not reproduce on the standard route: direct HTTPS and authenticated `gh` API requests succeed, so the issue, PR and WG comment were published through the regular GitHub CLI from the human submitter account. No alternate browser, unofficial posting route or network rerouting was used. The final manifest names the verified human GitHub maintainer `wlad232`. + +Published review material: + +- `UPSTREAM-ISSUE.md`: requested scope, actual findings, review requests and evidence checklist (published as issue #287). +- `UPSTREAM-PR.md`: implementation summary and exact validation scope (published as the PR #288 body with the real tracking URL). +- `WG13-COMMENT.md`: posted to WG #13 with the verified issue/PR URLs. +- `integration.yaml`: manifest naming `wlad232`, validated locally before upstream publication. +- `upstream-workflow.yml.in`: shipped in the PR as `.github/workflows/alakris-authority-comparison.yml`. + +Final manifest validation and index/catalog generation were performed locally before publication; `results/upstream-manifest-checks.txt` retains the output. The upstream contribution is human-directed by Vladislav Kostitsyn and retains truthful submitter identity and the project's no-bot-spam policy. Merge of the upstream PR is left to the repository maintainers. diff --git a/integrations/alakris-authority-comparison/README.md b/integrations/alakris-authority-comparison/README.md new file mode 100644 index 0000000..d6302b0 --- /dev/null +++ b/integrations/alakris-authority-comparison/README.md @@ -0,0 +1,77 @@ +# AAIF authority comparison evidence runner + +A shared evidence-appraisal runner and executable synthetic boundary fixtures for AAIF Identity & Trust [WG issue 13](https://github.com/aaif/wg-identity-and-trust/issues/13). + +## Run + +Python 3.12 and published `agentrust-trace==0.11.0` are supported for this contribution. + +```sh +cd integrations/alakris-authority-comparison +python3.12 -m venv .venv +.venv/bin/pip install --require-hashes -r requirements.lock +.venv/bin/python check_package.py --fetch +``` + +The single check command downloads pinned fixtures, runs the tests, writes author appraisals, verifies the corrected Proofable packet, preserves the historical Proofable hash failure, and validates TRACE reference shapes. To rerun individual stages: + +```sh +.venv/bin/python fetch_fixtures.py --out fixtures +.venv/bin/python -m unittest -v +.venv/bin/python reference_adapter.py > results/synthetic-reference.json +.venv/bin/python runner.py mintid --evidence fixtures/mintid \ + --record revocation-trace-testnet-20261006T073712Z --output results/mintid-author-testnet.json +.venv/bin/python runner.py mintid --evidence fixtures/mintid \ + --record revocation-trace-local-20261005T094532Z --output results/mintid-author-local.json +.venv/bin/python runner.py proofable --evidence fixtures/proofable --output results/proofable-author-oct8.json +.venv/bin/python create_references.py --lock fixtures/download-lock.json --output results/trace-reference-shapes.json +``` + +The corrected Proofable command exits **0** only when the checksums, trace inventory and offline envelope appraisal pass. The separate historical packet at `fixtures/proofable-historical` still exits **1** for its published-byte checksum mismatch. `results/proofable-author.json` retains the failing digest and LF/CRLF diagnostic. Never update an expected publisher digest to make a run green. + +`fetch_fixtures.py` downloads immutable source URLs and emits a download lock. Vendor evidence remains in its source repository; downloaded fixtures are not redistributed by this integration. + +## Contract + +This case-level appraisal complements [Sankalp's per-attempt comparison contract](https://github.com/probityai/agent-evidence-observer/blob/fb8cabc5c9c54459743497f2325bfef49b137a1a/interop/authority-unreachable-2026-10-03/CONTRACT.md). It does not replace native records, exact action/target identities, retained committed-effect evidence or terminal/recovery appraisal. Media bytes, destination and packaging need their own bindings; the original Alakris source snapshot is not a complete runnable provider deployment. + +Four cases: binding veto; revoked authority with stale evidence and valid control; authority unavailable; revocation after dispatch. Each comparison keeps authority, decision, dispatch, committed effect, task outcome and receipt distinct. Evidence custody names the producer, artifact scope and appraiser separately. Each field has `state`, `value`, and `reason`: + +- `measured`: the cited source has an observation; it can still be author-operated. +- `not_applicable`: this implementation/path has no equivalent. +- `not_emitted`: the public evidence does not expose the field. +- `not_measured`: the requested appraisal or measurement was not performed. + +The evidence basis is separate (`author_record`, `synthetic_fixture`; actual native execution provenance is kept separately). A publisher's `SUPPORTED` result is retained as `publisher_claim`; it is not promoted to independent validation. Reference fixtures exercise a synthetic counter, not an Alakris production deployment or a completed matched scientific experiment. + +MintID root epoch/height, root age, freshness limits, t0 definition, observed refusal and bound remain distinct. First-refusal observations are single-run measurements, not an end-to-end revocation SLA. Emergency bounds remain block-based and are never interpreted as a zero-second deadline. Original source revision, published evidence commit and live service build are separate pins. Old `public-v2026-10-05.5` outage evidence is not a result for the current `public-v2026-10-06.2` verifier. Refusal of a presentation does not establish that an external executor suppresses an effect. A post-dispatch accepted decision is not retroactively revoked by MintID; the relying party owns that boundary. + +The synthetic executor rechecks expiry and revocation at commit, binds issued dispatch tokens to the action digest, refuses a veto, and deduplicates committed effects. Late recovery cannot reopen the original expired request. Its valid-control test must commit exactly once. + +## TRACE bridge + +`trace_references.behavior_reference()` uses released `agentrust-trace`'s `Reference.model_validate` with `rel: behavior-trace` and a raw-byte SHA-256 digest. It validates pointer shape only. No Trust Record or attestation is issued. A reference digest proves byte identity, not enforcement, effect, freshness or a signature. The contribution is an `external-evidence-source` and claims no TRACE conformance level. + +The corrected Proofable Oct 8 packet discloses 11 portable envelopes. The adapter recomputes qHashes, recovers EIP-191 signers with DID/chain binding, and requires exact qHash-set equality across trace, manifest references and envelopes. This measures historical receipt integrity; current freshness remains unappraised. The unreachable case has no applicable receipt to verify. Revocation latency remains unmeasured and target-side effects lack an independent witness. + +The verifier is vendored unchanged from the reviewed reader revision `2b54ee47491f0d1a86c7d9f47d434f8f02622043`; see `PORTABLE_ENVELOPE_NOTICE.txt` and its retained Apache-2.0 license. `fixtures/proofable` uses docs commit `9851059900e29ba701bb0f4df2bf89a2107f430c`. `fixtures/proofable-historical` preserves the earlier `3a45f026` packet, and `results/proofable-author.json` preserves its checksum FAIL. New results are written separately to `results/proofable-author-oct8.json`. + +## Native implementation runs + +Use the vendor's pinned release and official sandbox only, with synthetic identities. The MintID public command is: + +```sh +uv run python test-harness/trace/revocation_trace.py \ + --target testnet --paths issuer,kill_switch,cascade --out +``` + +This exercises presentation refusal, refresh and control paths; it does not execute a payment. Emergency credentials are operator-only and excluded. Unavailability requires an isolated local stack and is not independently reproduced by the public testnet run. Native results, exact revisions, commands and environment are recorded in `RESULTS.md`; an attempted or blocked run is not a pass. + +## Review requests + +- Chris: corrected public digests and offline envelopes are appraised for the Oct 8 packet. Independent live reproduction remains open; retain sanitized trace, author custody, unmeasured latency and absent target witness. +- Marc: rerun the disconnected-authority case on the current verifier; publish veto evidence and keep unavailable/protected-effect boundaries explicit. +- Sankalp and other reviewers: review field states and propose an observer adapter for actual committed effects. +- Imran: review runner/adapter placement and the pointer bridge. Maintainers set listing tier; no verification badge is requested before review/reproduction. + +Further work: implementation-side dispatch/effect adapters, an independent observer, a matched same-input run, independent live reproduction, and the current-build outage run. This initial PR exposes those gaps rather than marking them complete. diff --git a/integrations/alakris-authority-comparison/REPLY-IMRAN.txt b/integrations/alakris-authority-comparison/REPLY-IMRAN.txt new file mode 100644 index 0000000..5584b18 --- /dev/null +++ b/integrations/alakris-authority-comparison/REPLY-IMRAN.txt @@ -0,0 +1,11 @@ +DRAFT — not sent; fill the final upstream links before sending. + +Hi Imran, Marc, Chris and Sankalp, + +The shared runner, pinned adapters, reproducible fixtures and execution record are prepared at https://git.elibot.ru/agent-bot/aaif-publication-reference/src/branch/main/integrations/alakris-authority-comparison, with delivery tracked in issue #2; the integrations issue/PR and WG #13 links are still pending GitHub access. +The packet preserves the four cases and the separate authority, decision, dispatch, committed effect, task outcome and receipt fields, including not applicable, not emitted and not measured; 27 automated checks pass, while Proofable's public trace digest mismatch remains a visible integrity failure. +We independently exercised MintID's issuer/control path on the public sandbox and retained the native HTTP 503 failure separately; these client observations do not establish a matched effect-level comparison or independently validated chain state. +Chris, please correct the LF/CRLF hashes and provide verifiable public receipt material; Marc, please help reproduce the current-build outage/veto paths and review the native failure; Sankalp, could you review the committed-effect observer adapter? + +Best, +Vladislav diff --git a/integrations/alakris-authority-comparison/RESULTS.md b/integrations/alakris-authority-comparison/RESULTS.md new file mode 100644 index 0000000..afe9772 --- /dev/null +++ b/integrations/alakris-authority-comparison/RESULTS.md @@ -0,0 +1,65 @@ +# Execution and appraisal record — 2026-10-06 + +## Scope + +This contribution is an evidence appraiser and synthetic boundary fixture, with separate independently executed MintID client runs. It does not establish a matched end-to-end comparison between Alakris, MintID and Proofable. A field marked `measured` in an author appraisal means that an observation is present in the cited author record; it does not mean independent verification. + +## Package checks + +- Environment: isolated Frankfurt Linux task checkout, Python 3.12.15. +- Released dependency: `agentrust-trace==0.11.0`. Inputs are `requirements.txt`; reproducible dependency versions and distribution hashes are in `requirements.lock`. Actual installed versions are in `results/python-packages.txt`. +- Command: `python check_package.py --fetch` (or without `--fetch` to reuse pinned downloaded bytes). +- **27 tests passed**, including a positive control that commits once, forged dispatch rejection, action tampering, a late veto invalidating an earlier token, duplicate suppression, expiry closure, manifest coverage, missing-case handling, emergency bound units and credential-bearing URL rejection. +- **12 TRACE Reference shapes validated** with the released SDK. These are unsigned external evidence pointers, not Trust Records, signature verification or a conformance-level claim. +- The integration manifest names the authenticated human GitHub maintainer `wlad232`. Final schema/compatibility and generated integration index/marketplace catalog checks are retained in `results/upstream-manifest-checks.txt`. These local checks do not imply upstream acceptance or a Verified tier. + +## Pinned author evidence + +| Artifact | Exact pin | Result and limits | +|---|---|---| +| MintID public evidence | `b678e5cd6b5736e1795fd18d497fd8e501272dcd` (`public-v2026-10-07`) | Operator JSONL and summary hashes pass. Current service release and old local outage release remain separate. | +| MintID current service | Public `044f6888874ede33186310b9ec86fbcb1ee83ad7`; source `497509ebf0c3bbc9c1a924996018b67db6ca949f` | Build-info reports source prefix `497509ebf0c3`, release `public-v2026-10-06.2`. Evidence-only publication 10-07 does not change the service code. | +| Proofable public evidence | Docs `3a45f026fd0c06b9d1d411c053597584b6b1c3dc`; deployed source claimed `f92faf39a4bae480cca3e5c07ce2c95d6ab68411` | Strict public byte integrity **FAIL** for `trace.jsonl`. Other four payload digests pass. No independent production execution was performed. | + +Proofable's actual LF trace SHA-256 is `8df7ed9d49d1d6fb696a05661fd11db194db7c808719a66cadbf0f0a562cc1e2`; the published expected digest is `d749cf16fe8dd599f528e21e95863b930004a0b3f0a9882695e3d3b03e8c2183`. Converting LF to CRLF produces the expected digest. This diagnoses a byte-format mismatch; it does not modify the validation input or allege alteration of scenario content. The same mismatch occurs in SHA256SUMS and the manifest. + +The sanitized Proofable trace contains publisher observations and receipt references, with no full public portable envelope, signature or signer material. Receipt signature verification and revocation latency remain unperformed; independent target-side effects are absent. Its `SUPPORTED` labels remain publisher claims. The unavailable-authority case is inapplicable to its current locally evaluated path. An allowlist/policy refusal alone does not establish a structurally independent oversight veto. + +MintID's published outage record `revocation-trace-local-20261005T094532Z` belongs to `public-v2026-10-05.5`, before the remote-RPC change. The operator reports a 40.2-second pause, a pre-cut presentation refused `state_unproven` after 10.1 seconds, three 503 challenges during the outage, and acceptance 0.9 seconds after restoration. Those are author observations and are not current-build reproduction. MintID has no executor; dispatch, external committed effect and task outcome are outside its implementation. Full delegated scope is intentionally not emitted. + +## Independently executed MintID public client run — attempt 1 + +Artifacts: `results/native-mintid/attempt-1/`; exact command, environment, pre/postflight build information and SHA-256 values are recorded in `run-result.json` and `partial-findings.json`. + +- Source: `b678e5cd6b5736e1795fd18d497fd8e501272dcd`, clean tracked source; uv 0.12.23, Python 3.12.15, Rust 1.97.0. Native source was not patched. +- Requested paths: issuer, kill switch, cascade; public vendor sandbox with newly created synthetic principals/credentials. No operator credentials or payments. +- UTC interval: 2026-10-06 19:59:34–20:02:17. Exit **1**, partial run. +- Issuer path: positive baseline accepted; t0 is the revoke response at 20:00:35.705Z. A forced proof with the old witness was last accepted at +11.6 seconds and first refused at +23.8 seconds with `status_root_stale`. These are polling observations, not an exact transition time or end-to-end effect latency. +- The revoked agent's refresh returned `credential_revoked`. A never-revoked control also encountered a stale-root refusal (+33.5 seconds), then refreshed and was accepted. That contrast separates a stale-evidence refusal from the revoked credential's inability to refresh. +- Kill switch was triggered and some old-witness proofs were accepted; a hosted challenge returned HTTP 503 `state_unavailable`. The native harness raised an uncaught `ServiceRefusal` (`revocation_trace.py:627`, through `service_client.py:64` and `force_until_refused:698`) and did not reach cascade or write its final manifest. No complete kill-switch refusal/bound result is inferred from this attempt. +- This incidental error is not a controlled outage injection or a proof of fail-closed enforcement. The failed attempt is retained instead of replaced by retry evidence. + +Operator-only decision logs were unavailable, so actual consulted root identity/age and deciding condition remain **not emitted** for this independent client run. A public client chain read after a decision cannot establish which root the verifier used. The relying service and chain RPC remain vendor-operated; this is not independent chain validation, target-side effect observation or hardware assurance. + +## Bounded retry for remaining paths + +Artifacts: `results/native-mintid/retry-remaining/`; native JSONL, summary and manifest are preserved unchanged. Exact commands, pre/postflight builds and hashes are in `run-result.json`; `independent-audit.json` records the appraisal. UTC interval: 2026-10-06 20:03:20–20:07:58. Native exit **0**, completed with a baseline qualification. + +| Path / agent | First observed refusal after path t0 | Revoked refresh refusal after path t0 | Publisher seconds bound | +|---|---:|---:|---:| +| Kill switch | 8.4 s | 37.1 s | 245 s | +| Cascade agent 1 | 66.8 s | 150.1 s | 395 s | +| Cascade agent 2 | 42.7 s | 95.9 s | 395 s | + +All three refresh failures are `credential_revoked`. The first-refusal figures are single-run polling observations tied to each path's t0, not exact transition timestamps, protected-effect latency or a general service guarantee. Eleven artifact/observation consistency checks pass. **Not every positive baseline passed:** `cascade_agent_1` was refused `status_root_stale` before revocation; a subsequent forced proof was accepted after the trigger. The native harness logs baselines without asserting or retrying their acceptance (`revocation_trace.py:857–859`). This record is not labeled a clean conformance PASS. + +Retry raw JSONL SHA-256: `e0618e6fca7322f7e8168ce48b6ebbe8fc9a5a7b8dfdf6bc3052544266fc9076`; summary: `b339a82972c83b2d98dafed6cf0840e8eda115e1780dd921165233c692a89397`; manifest: `4f5fa6cce83f1122d597523ff91b1f7fa87534c9160c81014c45f915f3316e27`. Collector digest checks pass for both attempts. The failed first attempt is retained separately; no results are combined into a fictitious clean four-case run. + +## Open evidence work + +- Current-build controlled outage run and published MintID scope/veto trace. +- Robust native harness handling of transient challenge errors, and explicit positive-baseline checks. +- Corrected Proofable raw-byte digests plus complete public receipt verification material or a public sandbox reproduction procedure. +- Implementation-side dispatch/effect adapters and an independent committed-effect observer, including lost response after a committed write. +- Same-input matched runs, original deadlines/fallback scope, retries/duplicates and useful work lost. +- Maintainer review, upstream issue/PR publication and links from AAIF WG #13. No Verified badge is requested by this packet. diff --git a/integrations/alakris-authority-comparison/UPSTREAM-ISSUE.md b/integrations/alakris-authority-comparison/UPSTREAM-ISSUE.md new file mode 100644 index 0000000..2bbce6a --- /dev/null +++ b/integrations/alakris-authority-comparison/UPSTREAM-ISSUE.md @@ -0,0 +1,33 @@ +# AAIF #13: shared authority-at-dispatch runner, adapters and reproducible evidence fixtures + +Human-directed contribution for Vladislav Kostitsyn, following Imran's request in the AAIF Identity & Trust discussion. This is a shared evidence-appraisal runner, not a comparative certification. + +Scope: +- Four common cases: binding veto; revoked/stale authority plus a valid control; unavailable authority; revocation after dispatch. +- Separate authority, decision, dispatch, committed effect, receipt and relying-party appraisal. +- Preserve `not_applicable`, `not_emitted` and `not_measured`, public evidence commit vs source/deployed build, root epoch/height vs age, custody, exact commands and known gaps. +- Adapters for pinned MintID and Proofable public records; a synthetic effect boundary fixture with veto, final authorization recheck, action binding, deadline and duplicate checks. +- Released TRACE 0.11.0 reference shape validation only; no invented Trust Records, signatures or attestation/conformance claim. + +Evidence: +- MintID public evidence commit `b678e5cd6b5736e1795fd18d497fd8e501272dcd` / `public-v2026-10-07`; testnet runs 10-06.2 (public `044f6888874ede33186310b9ec86fbcb1ee83ad7`, internal build `497509ebf0c3`). Existing disconnected-authority record is from 10-05.5 and must not become a current-build result. +- Proofable docs commit `3a45f026fd0c06b9d1d411c053597584b6b1c3dc`. Strict raw trace checksum mismatch: actual LF bytes `8df7ed9d49d1d6fb696a05661fd11db194db7c808719a66cadbf0f0a562cc1e2`; published `d749cf16fe8dd599f528e21e95863b930004a0b3f0a9882695e3d3b03e8c2183`. The latter equals LF-to-CRLF conversion. This is a byte-format diagnostic, not an allegation about the record contents. Four other payload checks pass. +- Full Proofable envelopes remain private, revocation latency unmeasured, independent target-side effects absent. Publisher `SUPPORTED` labels are not independent validation. + +Review/action requests: +- Imran: confirm placement and shared field contract; review linked PR. +- Chris: correct the public trace hashes and provide a complete verifiable envelope/public sandbox reproduction path. +- Marc: rerun unavailability with the current verifier; publish veto observations; keep decision vs executor-effect limitations. +- Sankalp: review an independent observer/committed-effect adapter and the matching inputs. + +Sources remain vendor-owned. Fixtures download from immutable URLs; exact results and commands are in the linked contribution. Link this issue/PR to [AAIF WG #13](https://github.com/aaif/wg-identity-and-trust/issues/13); TRACE semantics gaps should be raised separately in trace-spec only when a concrete gap is established. + +Acceptance checklist: +- [x] Runnable shared evidence runner, immutable source pins and machine-readable output. +- [x] Distinct missing-value states and field boundaries. +- [x] Positive controls and tamper/forged-token/duplicate/deadline negative checks. +- [x] Strict fixture hashes and explicit known integrity failure. +- [ ] Current-build MintID unavailable-authority reproduction. +- [ ] Public offline Proofable envelope verification and corrected checksum. +- [ ] Independent target-side effect adapter and matched end-to-end comparative run. +- [ ] Maintainer review and integration tier decision. diff --git a/integrations/alakris-authority-comparison/UPSTREAM-PR.md b/integrations/alakris-authority-comparison/UPSTREAM-PR.md new file mode 100644 index 0000000..12a000f --- /dev/null +++ b/integrations/alakris-authority-comparison/UPSTREAM-PR.md @@ -0,0 +1,11 @@ +DRAFT — not published; replace placeholders with verified upstream URLs. + +# Add shared AAIF authority comparison evidence runner + +Closes TRACKING_ISSUE_URL_TO_BE_FILLED. + +Adds pinned public-evidence adapters for MintID and Proofable, an executable synthetic executor fixture, and released TRACE reference shape validation. Reports keep publisher observations, absent fields, unperformed appraisals and actual execution provenance distinct; external evidence does not become attestation or an independently verified effect. + +Validation: Python 3.12.15, 27 tests including valid control, forged dispatch, action tampering, duplicate suppression, deadline closure, manifest coverage and missing-case rejection. MintID operator-record hashes pass. The pinned Proofable trace intentionally fails the strict publisher digest check; the diagnostic identifies LF/CRLF equivalence without altering expected hashes. Native client runs reproduced issuer/control and remaining revocation observations, but retain an initial HTTP 503 abort and a failed positive baseline in the bounded retry. Native reproduction scope and artifact hashes are recorded in RESULTS.md. + +No Verified tier or conformance level is requested. Original vendor sources/evidence remain in their repositories. GitHub maintainer is the authenticated human submitting account `wlad232`; the source/evidence and author-run limitations remain explicit. diff --git a/integrations/alakris-authority-comparison/WG13-COMMENT.md b/integrations/alakris-authority-comparison/WG13-COMMENT.md new file mode 100644 index 0000000..ae3b1a7 --- /dev/null +++ b/integrations/alakris-authority-comparison/WG13-COMMENT.md @@ -0,0 +1,11 @@ +DRAFT — not published; replace placeholders with verified upstream URLs. + +The shared authority comparison review package requested by Imran is ready for review: + +- Integrations tracking issue: TRACKING_ISSUE_URL_TO_BE_FILLED +- Linked PR: PR_URL_TO_BE_FILLED +- Exact commands, source pins, field contract, byte-integrity checks and native run scope: see the PR's RESULTS.md. + +The package preserves authority → decision → dispatch → effect → receipt and keeps not applicable, not emitted and not measured separate. MintID's old unavailable-state record remains tied to its original build; a presentation refusal alone is not an executor veto. Proofable's public trace digest does not match the published LF bytes; the stated digest matches CRLF normalization, so a corrected manifest is requested. Private envelopes and unmeasured revocation latency remain explicit limitations. + +The synthetic fixtures and author records do not establish an independently validated matched comparison. The current-build outage run, public receipt verification and independent committed-effect observer remain open review items. diff --git a/integrations/alakris-authority-comparison/check_package.py b/integrations/alakris-authority-comparison/check_package.py new file mode 100644 index 0000000..3d21d32 --- /dev/null +++ b/integrations/alakris-authority-comparison/check_package.py @@ -0,0 +1,53 @@ +"""Reproduce bounded checks; a known publisher hash failure stays a failure.""" +import argparse +import json +from pathlib import Path +import subprocess +import sys + +from runner import mintid, proofable + +ROOT = Path(__file__).resolve().parent + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--fetch', action='store_true', help='download pinned public fixtures') + args = parser.parse_args() + if args.fetch: + subprocess.run([sys.executable, 'fetch_fixtures.py', '--out', 'fixtures'], cwd=ROOT, check=True) + for path in ('fixtures/download-lock.json', 'fixtures/proofable/manifest.json', 'fixtures/mintid'): + if not (ROOT / path).exists(): + parser.error('fixtures are required; rerun with --fetch') + results = ROOT / 'results' + results.mkdir(exist_ok=True) + with (results / 'tests.txt').open('w') as output: + subprocess.run([sys.executable, '-m', 'unittest', '-v'], cwd=ROOT, stdout=output, stderr=subprocess.STDOUT, check=True) + with (results / 'synthetic-reference.json').open('w') as output: + subprocess.run([sys.executable, 'reference_adapter.py'], cwd=ROOT, stdout=output, check=True) + records = [('revocation-trace-testnet-20261006T073712Z', 'mintid-author-testnet.json'), + ('revocation-trace-local-20261005T094532Z', 'mintid-author-local.json')] + for name, filename in records: + report = mintid(ROOT / 'fixtures/mintid', name) + (results / filename).write_text(json.dumps(report, indent=2) + '\n') + if report['integrity'] != 'PASS': + raise RuntimeError('MintID publisher bytes changed: ' + name) + report = proofable(ROOT / 'fixtures/proofable-historical') + (results / 'proofable-author.json').write_text(json.dumps(report, indent=2) + '\n') + mismatches = [c for c in report['checks'] if not c['match']] + # Both SHA256SUMS and manifest assert the same trace hash. Preserve both failures. + expected = 'd749cf16fe8dd599f528e21e95863b930004a0b3f0a9882695e3d3b03e8c2183' + actual = '8df7ed9d49d1d6fb696a05661fd11db194db7c808719a66cadbf0f0a562cc1e2' + known = len(mismatches) == 2 and all(c['file'] == 'trace.jsonl' and c['expected'] == expected and c['actual'] == actual for c in mismatches) + if report['integrity'] != 'FAIL' or not known or not report['record_count_consistent']: + raise RuntimeError('Pinned Proofable evidence changed; review rather than replace expected hashes') + corrected = proofable(ROOT / 'fixtures/proofable') + (results / 'proofable-author-oct8.json').write_text(json.dumps(corrected, indent=2) + '\n') + if corrected['integrity'] != 'PASS' or corrected['envelope_appraisal']['valid'] is not True: + raise RuntimeError('Corrected Proofable appraisal failed') + subprocess.run([sys.executable, 'create_references.py', '--lock', 'fixtures/download-lock.json', '--output', 'results/trace-reference-shapes.json'], cwd=ROOT, check=True) + print(json.dumps({'package_checks': 'PASS', 'mintid_author_bytes': 'PASS', + 'proofable_author_bytes': 'FAIL', 'known_failure_preserved': True, 'proofable_oct8_bytes_and_envelopes': 'PASS', + 'independent_comparison_completed': False})) + +if __name__ == '__main__': + main() diff --git a/integrations/alakris-authority-comparison/comparison-contract.json b/integrations/alakris-authority-comparison/comparison-contract.json new file mode 100644 index 0000000..da3f094 --- /dev/null +++ b/integrations/alakris-authority-comparison/comparison-contract.json @@ -0,0 +1,44 @@ +{ + "schema": "aaif-authority-comparison/v1", + "cases": [ + "binding_veto", + "revoked_stale", + "unreachable", + "post_dispatch_revoke" + ], + "pins": { + "integrations_base": "0966a565e538fdcdd831389b6c843b327b09ab18", + "mintid_evidence_public": "b678e5cd6b5736e1795fd18d497fd8e501272dcd", + "mintid_deployed_public": "044f6888874ede33186310b9ec86fbcb1ee83ad7", + "mintid_deployed_internal": "497509ebf0c3bbc9c1a924996018b67db6ca949f", + "proofable_evidence": "3a45f026fd0c06b9d1d411c053597584b6b1c3dc", + "proofable_deployed_claim": "f92faf39a4bae480cca3e5c07ce2c95d6ab68411", + "sankalp_comparison_contract": "fb8cabc5c9c54459743497f2325bfef49b137a1a", + "original_alakris_source": "68054425873b9b373ce07359f8e994b817bee210" + }, + "evidence_states": [ + "measured", + "not_applicable", + "not_emitted", + "not_measured" + ], + "required_fields": [ + "authority", + "decision", + "dispatch", + "committed_effect", + "task_outcome", + "receipt", + "policy_digest", + "action_digest", + "target_identity", + "original_deadline", + "fallback_scope", + "independent_effect_witness", + "retry_count", + "duplicate_count" + ], + "native_provenance": "Recorded separately; an importer flag cannot establish independent execution", + "fixture_source_policy": "Fetch immutable vendor URLs, keep original bytes and declared hashes", + "record_scope": "Case-level appraisal only; per-attempt native records and the upstream authority/effect/terminal contract remain separate." +} diff --git a/integrations/alakris-authority-comparison/create_references.py b/integrations/alakris-authority-comparison/create_references.py new file mode 100644 index 0000000..5bd7376 --- /dev/null +++ b/integrations/alakris-authority-comparison/create_references.py @@ -0,0 +1,31 @@ +"""Validate TRACE pointer shape for immutable source artifacts without attesting them.""" + +import argparse +import json +from pathlib import Path +from trace_references import behavior_reference +from runner import relative_file + +if __name__ == "__main__": + p = argparse.ArgumentParser() + p.add_argument("--lock", type=Path, required=True) + p.add_argument("--output", type=Path, required=True) + a = p.parse_args() + lock = json.loads(a.lock.read_text()) + items = [] + for item in lock["files"]: + path = relative_file(a.lock.parent, item["path"]) + ref = behavior_reference(path, item["url"]) + items.append( + { + "file": item["path"], + "reference": ref.model_dump(exclude_none=True), + "reference_shape_validated": True, + "signature_verification": "not_measured", + "assurance": "public_vendor_log", + "trace_record_emitted": False, + } + ) + a.output.parent.mkdir(parents=True, exist_ok=True) + a.output.write_text(json.dumps(items, indent=2) + "\n") + print(len(items), "reference shapes validated; no signatures or effects attested") diff --git a/integrations/alakris-authority-comparison/fetch_fixtures.py b/integrations/alakris-authority-comparison/fetch_fixtures.py new file mode 100644 index 0000000..7f1cf80 --- /dev/null +++ b/integrations/alakris-authority-comparison/fetch_fixtures.py @@ -0,0 +1,39 @@ +"""Fetch immutable public bytes; nothing executes and no publisher hashes are edited.""" +import argparse +import hashlib +import json +from pathlib import Path +import urllib.request + +PROOFABLE = '9851059900e29ba701bb0f4df2bf89a2107f430c' +HISTORICAL_PROOFABLE = '3a45f026fd0c06b9d1d411c053597584b6b1c3dc' +MINTID = 'b678e5cd6b5736e1795fd18d497fd8e501272dcd' +RECORDS = ['revocation-trace-testnet-20261006T073712Z', 'revocation-trace-local-20261005T094532Z'] + +def fetch(out): + files = {} + proof_path = 'public/evidence/aaif/authority-at-dispatch/2026-10-08/' + for name in ['README.md', 'SHA256SUMS', 'manifest.json', 'trace.jsonl', 'authority-effect-results.json', 'authority-effect-results.md']: + files['proofable/' + name] = f'https://raw.githubusercontent.com/proofable/docs/{PROOFABLE}/{proof_path}{name}' + for name in ['portable-proofs.json', 'verify-portable-proofs.mjs']: + files['proofable/' + name] = f'https://raw.githubusercontent.com/proofable/docs/{PROOFABLE}/{proof_path}{name}' + for name in ['README.md', 'SHA256SUMS', 'manifest.json', 'trace.jsonl', 'authority-effect-results.json', 'authority-effect-results.md']: + files['proofable-historical/' + name] = f'https://raw.githubusercontent.com/proofable/docs/{HISTORICAL_PROOFABLE}/public/evidence/aaif/authority-at-dispatch/2026-10-06/{name}' + for record in RECORDS: + for suffix in ['.jsonl', '.md', '.manifest.json']: + files['mintid/' + record + suffix] = f'https://gitlab.com/mintid/mintid/-/raw/{MINTID}/test-harness/trace/records/{record}{suffix}' + lock = {'proofable_docs_commit': PROOFABLE, 'mintid_public_commit': MINTID, 'files': []} + for name, url in files.items(): + with urllib.request.urlopen(url, timeout=60) as response: + content = response.read() + path = out / name + path.parent.mkdir(parents=True, exist_ok=True) + path.write_bytes(content) + lock['files'].append({'path': name, 'url': url, 'sha256': hashlib.sha256(content).hexdigest(), 'bytes': len(content)}) + (out / 'download-lock.json').write_text(json.dumps(lock, indent=2) + '\n') + print('Fetched', len(files), 'immutable public artifacts') + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--out', type=Path, required=True) + fetch(parser.parse_args().out) diff --git a/integrations/alakris-authority-comparison/integration.yaml b/integrations/alakris-authority-comparison/integration.yaml new file mode 100644 index 0000000..e568a22 --- /dev/null +++ b/integrations/alakris-authority-comparison/integration.yaml @@ -0,0 +1,17 @@ +name: AAIF Authority Comparison Runner +vendor: Alakris Research +integrates_with: [trace] +description: Appraises pinned public authority/revocation evidence, preserves evidence gaps, and validates TRACE behavior-trace reference shape. +maintainer: + github: wlad232 + email: v.kostitsyn@alakris.ai +repository: https://git.elibot.ru/agent-bot/aaif-publication-reference +license: Apache-2.0 +tier: community +marketplace: + category: Evidence & receipts + mark: AC + keywords: [authority, revocation, evidence, reproducibility] +trace_roles: [external-evidence-source] +tested_against: + agentrust-trace: "0.11.0" diff --git a/integrations/alakris-authority-comparison/portable_envelope.py b/integrations/alakris-authority-comparison/portable_envelope.py new file mode 100644 index 0000000..8469e5a --- /dev/null +++ b/integrations/alakris-authority-comparison/portable_envelope.py @@ -0,0 +1,157 @@ +"""Verify the EIP-191 CAIP-380 profile used by this packet, from the published bytes alone. + +Independent of Proofable's runtime and its published SDK. It re-derives the canonical JSON subset +(Unicode code-point key order, NFC), recomputes the SHAKE-256 qHash, rebuilds the signer message and +recovers the EIP-191 signer, then requires the recovered signer to equal the envelope's own +`walletAddress`. + +Scope, stated precisely: + +- This implements the **EIP-191 / did:pkh-eip155** signature profile that this packet uses. It is + not a universal CAIP-380 verifier: it does not handle Ed25519/Solana, EIP-1271 contract wallets, + or other signature profiles a CAIP-380 envelope may carry. +- It enforces the CAIP-380 EVM binding: the DID must be `did:pkh:eip155::
`, the + DID chain must equal the envelope `chainId`, the DID address must equal `walletAddress` + (case-insensitive), and the recovered EIP-191 signer must be that same address. +- It checks **historical receipt integrity** — the bytes hash and the signature binds the signer. + It does **not** appraise freshness or validity *now*; envelope age, revocation state and expiry + are a separate appraisal question this verifier does not answer. +- A passing check means the envelope is internally consistent and bound to its signer. It is not a + claim that any off-chain fact, effect or authority decision behind the statement is true. + +CAIP-380 profile: https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-380.md +""" + +from __future__ import annotations + +import json +import unicodedata +from hashlib import shake_256 +from typing import Any + +SIGNER_HEADER = "Portable Proof Verification Request" + + +def _string(value: str) -> str: + """Serialise a string as JavaScript JSON.stringify does (no ASCII escaping).""" + return json.dumps(unicodedata.normalize("NFC", value), ensure_ascii=False) + + +def _canonical(value: Any) -> str: + """Return the canonical JSON of a value: object keys sorted by Unicode code point.""" + if value is None: + return "null" + if isinstance(value, bool): + return "true" if value else "false" + if isinstance(value, (int, float)): + if isinstance(value, float): + if not value.is_integer(): + raise ValueError("canonical JSON requires a finite JSON number") + return str(int(value)) + return str(value) + if isinstance(value, str): + return _string(value) + if isinstance(value, list): + return "[" + ",".join(_canonical(item) for item in value) + "]" + if isinstance(value, dict): + entries = sorted(((unicodedata.normalize("NFC", key), item) + for key, item in value.items()), + key=lambda pair: [ord(character) for character in pair[0]]) + return "{" + ",".join(f"{_string(key)}:{_canonical(item)}" for key, item in entries) + "}" + raise ValueError("value is not valid canonical JSON") + + +def canonical_subset(envelope: dict[str, Any]) -> dict[str, Any]: + """The CAIP-380 canonical subset: exactly one of chain / chainId is present.""" + has_chain = isinstance(envelope.get("chain"), str) and bool(envelope["chain"].strip()) + has_chain_id = isinstance(envelope.get("chainId"), int) and envelope["chainId"] > 0 + if has_chain == has_chain_id: + raise ValueError("envelope must contain exactly one of chain or chainId") + subset = { + "did": envelope["did"], + "verifierIds": envelope["verifierIds"], + "data": envelope["data"], + "signedTimestamp": envelope["signedTimestamp"], + } + if has_chain: + subset["chain"] = envelope["chain"].strip() + else: + subset["chainId"] = envelope["chainId"] + return subset + + +def qhash(envelope: dict[str, Any]) -> str: + """Recompute the CAIP-380 qHash from the canonical subset.""" + digest = shake_256(_canonical(canonical_subset(envelope)).encode("utf-8")).hexdigest(32) + return "0x" + digest + + +def message(envelope: dict[str, Any]) -> str: + """Rebuild the exact signer message the envelope's signature commits to.""" + subset = canonical_subset(envelope) + chain = subset.get("chain") if subset.get("chain") is not None else subset["chainId"] + components = [ + SIGNER_HEADER, + "Wallet: " + str(envelope["walletAddress"]).lower(), + "Chain: " + str(chain), + "Verifiers: " + ",".join(str(entry) for entry in envelope["verifierIds"]), + "Data: " + _canonical(envelope["data"]), + "Timestamp: " + str(envelope["signedTimestamp"]), + ] + return unicodedata.normalize("NFC", "\n".join(components)) + + +def _did_parts(did: Any) -> tuple[int, str] | None: + """Parse did:pkh:eip155::
into (chainId, address); None if malformed.""" + if not isinstance(did, str): + return None + parts = did.split(":") + if len(parts) != 5 or parts[0] != "did" or parts[1] != "pkh" or parts[2] != "eip155": + return None + try: + chain_id = int(parts[3]) + except ValueError: + return None + address = parts[4] + if chain_id <= 0 or not address: + return None + return chain_id, address + + +def verify(envelope: dict[str, Any]) -> dict[str, Any]: + """Return the qHash and signature verdict for one envelope, with every failure named.""" + errors: list[str] = [] + signer = None + try: + if envelope.get("qHash") != qhash(envelope): + errors.append("qHash does not match the canonical subset") + except (KeyError, ValueError) as error: + errors.append("qHash could not be recomputed: " + str(error)) + # CAIP-380 binds the signer DID to the chain and the EVM address: the did:pkh-eip155 CAIP-10 + # form carries the chainId, its address is the signing EOA, and the recovered EIP-191 signer + # must be that same address. Check the binding from the published fields, not just the + # address/signature pair. + did_parts = _did_parts(envelope.get("did")) + chain_id = envelope.get("chainId") + wallet = str(envelope.get("walletAddress", "")) + if did_parts is None: + errors.append("did is not a did:pkh:eip155 CAIP-10 identifier") + else: + did_chain, did_address = did_parts + if chain_id is not None and did_chain != chain_id: + errors.append(f"DID chain {did_chain} does not equal envelope chainId {chain_id}") + if wallet and did_address.lower() != wallet.lower(): + errors.append("DID address does not equal walletAddress") + try: + from eth_account import Account + from eth_account.messages import encode_defunct + signer = Account.recover_message(encode_defunct(text=message(envelope)), + signature=envelope["signature"]) + except Exception as error: # recovery failure is a failing check, never a pass + errors.append("signature recovery failed: " + str(error)) + if signer is not None: + if wallet.lower() != signer.lower(): + errors.append("recovered signer does not equal the envelope walletAddress") + if did_parts is not None and did_parts[1].lower() != signer.lower(): + errors.append("recovered signer does not equal the DID address") + return {"valid": not errors, "signer": signer, "errors": errors} diff --git a/integrations/alakris-authority-comparison/reference_adapter.py b/integrations/alakris-authority-comparison/reference_adapter.py new file mode 100644 index 0000000..0f06ed5 --- /dev/null +++ b/integrations/alakris-authority-comparison/reference_adapter.py @@ -0,0 +1,57 @@ +"""Executable synthetic executor fixture. This is not an Alakris product result.""" +import hashlib +import json + +class Executor: + def __init__(self): + self.effects = [] + self.revoked = False + self.online = True + self.seen = set() + self.issued = {} + + def dispatch(self, action, now, veto=False): + canonical = json.dumps(action, sort_keys=True, separators=(',', ':')).encode() + action_hash = hashlib.sha256(canonical).hexdigest() + allowed = self.online and not self.revoked and not veto and now <= action['deadline'] + decision = {'allowed': allowed, 'utc_seconds': now, 'action_hash': action_hash} + dispatch = {'token': action['id'], 'action_hash': action_hash} if allowed else None + if dispatch: + self.issued[action['id']] = action_hash + else: + # A later denial invalidates an earlier dispatch for this request. + self.issued.pop(action['id'], None) + return decision, dispatch + + def commit(self, action, dispatch, now): + action_hash = hashlib.sha256(json.dumps(action, sort_keys=True, separators=(',', ':')).encode()).hexdigest() + allowed = dispatch is not None and self.issued.get(action['id']) == action_hash and dispatch.get('token') == action['id'] and dispatch['action_hash'] == action_hash and not self.revoked and self.online and now <= action['deadline'] and action['id'] not in self.seen + if allowed: + self.seen.add(action['id']) + self.effects.append(action['id']) + return {'committed': allowed, 'utc_seconds': now, 'total_effects': len(self.effects)} + +def run_cases(): + records = [] + for case in ('binding_veto', 'revoked_stale', 'unreachable', 'post_dispatch_revoke'): + executor = Executor() + action = {'id': case, 'target': 'synthetic-counter', 'deadline': 20, 'operation': 'increment'} + if case == 'revoked_stale': + executor.revoked = True + if case == 'unreachable': + executor.online = False + decision, dispatch = executor.dispatch(action, 10, veto=case == 'binding_veto') + if case == 'post_dispatch_revoke': + executor.revoked = True + effect = executor.commit(action, dispatch, 11) + executor.revoked = False + executor.online = True + expired_decision, expired_dispatch = executor.dispatch(action, 21) + expired_effect = executor.commit(action, expired_dispatch, 21) + records.append({'case_id': case, 'basis': 'synthetic_fixture', 'decision': decision, 'dispatch': dispatch, + 'effect': effect, 'after_deadline': {'decision': expired_decision, 'effect': expired_effect}, + 'independent_vendor_reproduction': False}) + return records + +if __name__ == '__main__': + print(json.dumps(run_cases(), indent=2)) diff --git a/integrations/alakris-authority-comparison/requirements.lock b/integrations/alakris-authority-comparison/requirements.lock new file mode 100644 index 0000000..d2e570e --- /dev/null +++ b/integrations/alakris-authority-comparison/requirements.lock @@ -0,0 +1,1182 @@ +# This file was autogenerated by uv via the following command: +# uv pip compile --python-version 3.12 --generate-hashes --output-file requirements.lock requirements.txt +agentrust-trace==0.11.0 \ + --hash=sha256:7de621eaf795449e365d04967a82a551a18d75c99d248b4a0923f6d593bdb09e \ + --hash=sha256:8b76de58ec74fad57417093bf7977fe826ce6ade5859b4d5be8ce3938f9fcb35 + # via -r requirements.txt +annotated-types==0.8.0 \ + --hash=sha256:13b2beaad985e05e2d6407ee4c4f35590b11f8d693a258a561055cac8f64cab7 \ + --hash=sha256:f072f4d804ea359e4eaf198b1af7a8b0943881a87f31bb764f8bf219bb9419e0 + # via pydantic +attrs==26.1.0 \ + --hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \ + --hash=sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32 + # via + # jsonschema + # referencing +bitarray==3.11.0 \ + --hash=sha256:00430df302dd0367e0aeae7dc71c0d250166e67514f828c853050560ebbaa782 \ + --hash=sha256:027766e71da6063cb51fcd4c51f031ac14d5088ecb55e4500ffd692d78630dd3 \ + --hash=sha256:04eb0d6c554e8769c492da71ef503fa955c1b078676b6a44d7e8d5e0808e53a8 \ + --hash=sha256:051e0868e0b5ca53f2365b8840fe2ff54a68ae54ed2ff4e1e521db68c3d3f1df \ + --hash=sha256:0d868d83f34ee084ef18187e1ccfcff309550cf997a0c35ec2a13a4ec1d9b537 \ + --hash=sha256:116a23f655f394f80f41fdc03368862485ac05534a56991eefb9f18f72e17f17 \ + --hash=sha256:12249fecc687925e29a7879d8705a0af49305e5e3c7d5fe694586a2e6704ec0c \ + --hash=sha256:1382beba2a8c190c242f4251460c40348f5b1a7d125d93cd89f4e502fc6d4a72 \ + --hash=sha256:155205159f3c38180a705253341b8200414c0198e86a9b9e2db49010236ff785 \ + --hash=sha256:18e93f9822deca48eaa584b2bd3b165bb6e217f7e9b9538a3fb048ac1ae13ba2 \ + --hash=sha256:1c49fc5f57eea2e859a3f2936a1fed84510af6f7464572b641485de2d22148cb \ + --hash=sha256:1de25e4714402ccb461a66ea5cee2229818b6cf6aaed420690dae32979ed7b3d \ + --hash=sha256:22befa4557bddcc4bbb9e565ae73635b6d7abdefc35a3fa784b9d534f86e6605 \ + --hash=sha256:23ff70ee2f2a36ae089f769baeabe05753e02dd42b25aec20c78cd237af968ce \ + --hash=sha256:24122b069859bf99d50ae785f56deb0e97dd53d60bf2b47db5954d48cce84e97 \ + --hash=sha256:260e31096fd8c833d3f39b6134fe9f87954f2482964e0aa377457d5649028906 \ + --hash=sha256:301763ffde9d288c5a58dda51c5290bc1081c2bc0faf266c4aef227ca59004d5 \ + --hash=sha256:30597fa6f4116eb6e374568d4f4de7e220462368ec7ce37d93403871bdf27a8c \ + --hash=sha256:31c06680231d37da8f4222c1d924d60f7c6809aa83797312b9697a127979fa7f \ + --hash=sha256:32e9fcd8fdeb1ca4e12a538a3e3a8ea50581bb1fcb3262cc67fe110bdb765580 \ + --hash=sha256:36da946f64e10e28b23f345fde90f4d14e9c2e9013364fe04d9b2013e7291285 \ + --hash=sha256:37f387c0cc9c63ab566551a819f2fbbc552a1d215f8d933ee285624eb3af6c83 \ + --hash=sha256:386503399eec57cbfa73d63509315e557460ac20e2e12efb29c4163f171bdae6 \ + --hash=sha256:387b64dc54be3732a0988bf3731fc06d7d4f52dc9470d1a5479e8ce2b67d368b \ + --hash=sha256:3889cf12ae0c04076772c8be66655bfe5925003b44dec056b569a68a121f7e93 \ + --hash=sha256:3a1093eb1a756f08c7bdeb22969fb463aa62f036dc191ad371af5e292108c611 \ + --hash=sha256:3d7a61fe396f14bc5435521ebbbcc7971ab4ae0b3523df5341d6dc9693f29f2d \ + --hash=sha256:3f87ce5c81d7f4a54b360731f8816c0106e9dc64ef4a2c4b9821840cf3e90791 \ + --hash=sha256:403800cb9108b215b409c41b1c29be75c291813f40ba5db9099ca10294cc7648 \ + --hash=sha256:41545b21384fd91767d294a5b3526c6306f7db577cf59ba72b51498e90bd52a7 \ + --hash=sha256:470940879d8553fecddc3cf306b7d4b69fa0f5b7a6e3790b238fe553578061c1 \ + --hash=sha256:4809eac58bcbef01915bc29e214f86ea70b52fab1a436af2c2f862709bd68b11 \ + --hash=sha256:4b38439576ba0074ee454f1289396f51ffe1713b8a1077820be555bd5de0b737 \ + --hash=sha256:4bddbc76e619a36d2abad14713c4dd970a8fa46a75a85ebbb626a2f26f1821d8 \ + --hash=sha256:52741a1d24a3723a8151259906cf1befeaf3d4ccf7d3e27e8be4334590b59bcd \ + --hash=sha256:52b3101ea72ffe0433487dad46cc12b796c2c0546558682fc309a2828903afae \ + --hash=sha256:52e3cfb4fb883a81c80b14e9286030e9417627223d30e81e1397cd39f338aaf4 \ + --hash=sha256:55370f00c52b5e46800fee0218a27a1b99db6e09113c1b804190c039e4350ea1 \ + --hash=sha256:5605c8e74f95f77dd1b93c8c83d6fefe0d41d2704683d4a72152ca5284e2546d \ + --hash=sha256:56a2aa49e900aa927c147328e571da8a38a50ae99277ed093290845498dedefc \ + --hash=sha256:5db38c0a36d07190c3629c65dab2504233a56b1c35d8b1cc3d7369943d028711 \ + --hash=sha256:5f2578852b9280291a1b3484930587be9604af6495feb218b86aeee995f4d6ff \ + --hash=sha256:664f02e6e2c63fcc1c02718d2daa21b04f77a18ef3850a9b348597c0c8a0f222 \ + --hash=sha256:769d93669a90e33282eaccb33537a4a80b314e476ed16fc986e0148bcc72ceb3 \ + --hash=sha256:7ad6b6cd9558529a9e51ef981cef5b3439acd0a913d25562dc56220078bd4968 \ + --hash=sha256:7b16df7ddef03e30622d894cce86a560b7888415ddcac470eb99940a5adf1a35 \ + --hash=sha256:7d1c46e15d426d88420877a8a56aeb70fa5487c53c42185937254bbc076d3af8 \ + --hash=sha256:819341386eb8a031eba8471ca72723e1bcdc56e35e79f9faa04e265cf64368a3 \ + --hash=sha256:823638d0a900cea53c173fb31f5f1f4b913065a92fa3406d9b20eb7b7ebf189d \ + --hash=sha256:86dfaab663a2ad16ed2f6252116cf034cfc84282aa744f19a9a66542e85c9ca9 \ + --hash=sha256:8b77aa18131418b869be882df1c5e229fb02f90861783bbe638d9ebe296e9209 \ + --hash=sha256:8d3763f5061d890c522ee7a16c42c7fedbd114d8a031f6121471504704a70253 \ + --hash=sha256:8e799c9eaa4f10b14fa34430e5bd0d8668bbbe5c4eb0f59697ecde902304842f \ + --hash=sha256:903a9a62521fe84b4126ecfefbb2755ce50a6dbd8be96a021c5e8990883b234a \ + --hash=sha256:93a7f9f9f848ec79f19fdd39f3b8f750d9abf8e65cd6fb3a045df192de23855d \ + --hash=sha256:962dc3e5622a08bb1c1ad429a9f7dace7efadd7fef1fcdf1628a6db142333256 \ + --hash=sha256:9767500d7c180eac5f6bb08819fcfa6630b609d52d51b3396a3c9f9809f78743 \ + --hash=sha256:97cd5913000e4e56d211f7db053284d1f753aed34838368769bf084474a76f0a \ + --hash=sha256:9808734d1e5fd2839660a9db1abfe93e9d64b2aa9ed59aa480193ad93e8d620e \ + --hash=sha256:9aafe7dc6d568470f5c297d0b15acddd3afc1677c983f0460b28f8cac4e9360c \ + --hash=sha256:9ba6f68d39a160b9175ba3710e45ba560731805f10bfcd716184c9bfd3d60cf4 \ + --hash=sha256:9db61968efb834dacda6bcd7ef1f8a033253a53ac31426a684a28a7e4c9f2f29 \ + --hash=sha256:aac6b951d9f50280728a61e5edadb0d109930dff9b42c6ad45aad7a4f2df1503 \ + --hash=sha256:ab0988829e4ed10fa971842e9fbf77595b8a4557a078a3589b0754f06417ddff \ + --hash=sha256:ac322a81c3c938c13093d8d77c419093f50118c29fbfa9eb80813d93af1a2d95 \ + --hash=sha256:ae83b41711788b7c2b0ea2230176e1caf3349119c1dd62c8e35e62809e0f7893 \ + --hash=sha256:afe8ee837c085eeeaead62429f260a2de3a0602d1a34bcdead8b9f0388ef6114 \ + --hash=sha256:b0d57b41cd5d91d9ebe4cbf88c58455f235b119fa7c43cd3b87d79d161a4c731 \ + --hash=sha256:b1f90eb79230a2d2407b7c08857634f0868c67fd5ab849eb812c75c496fa7e40 \ + --hash=sha256:b1fb6d974e70eb5d4b5845fb890024154a85017f2101d11681c3836332cc0cbb \ + --hash=sha256:b22b4df5f5e76e4c9b033570ce13b750d8209e198bc8e1c7bf012a4688e42bee \ + --hash=sha256:b2e67fb3527d15b32b641dd2c3bd15eceb3407877d717e06ef98b60792606e1d \ + --hash=sha256:b313dec833e8ca77068d8bcc983d2ce09a97304dd715a80a4d7e50b5b030fd1e \ + --hash=sha256:b4afbb464a1db2d37858bd3b87bd59a76b4aae5e29ec007a9fd00bf5a911e1da \ + --hash=sha256:bca7decc355277a7bc4fb315e90d557341c1e0558488f6dcd2101fd410db6307 \ + --hash=sha256:be64657bf842bea37790ef304f88a6465e566355a42c04f3767635b92b35beb2 \ + --hash=sha256:bf19437ec00ec3d40aef82eaeedc14cf4000be9b635c4f5049796506e6630dd8 \ + --hash=sha256:c1019995c19fdfbf53226d8c8af95523fbd9c74f5c375ccc0673ccf39eb14c31 \ + --hash=sha256:c143d28bee6473186f8a76c18937ec84bdc3cd4cb8d5350766481143aa7706a3 \ + --hash=sha256:c231217ef0ec0352d9327eaa61c0ab26252ad6b9a90002365f603470869a48d2 \ + --hash=sha256:c4cabc2439ab3ce76881037741bf41e9fafda217ff721fdee92701e5fe3c8b9c \ + --hash=sha256:c54a7b5fa924f016d725b6056d9e4a97ab2ef6ad8c049e916c532d723187a5d5 \ + --hash=sha256:c56b9a61235fae422c670835ac36eb70e20582d1956401b38fd25c3291af9378 \ + --hash=sha256:c5bdd4531df12676d19bdfcce4d773c1f790448a7e1db3a2710fb674428987ef \ + --hash=sha256:cccc658d26c464409c46b9c41028a1c3c5da90bec6e7330c69a646f34199451a \ + --hash=sha256:cfbbb23d8db2abe2cd098157ea35e1e9860d1c26e2487422b5a39ef6eb85c549 \ + --hash=sha256:d084fa59c94d3fec7eac6793e08162fa697aa4e70b9f519618c29d3e54eda752 \ + --hash=sha256:d62e73fcdd273d07b1e9699de0e66e4d367b28c554c86bfe7c92029337c2a414 \ + --hash=sha256:d66597cdffaffe106f057874c9e95e4f84c4ee701a271b6213325ebd423ce13b \ + --hash=sha256:db35aa7cc2f236d8bef09da1a67fe145e376b7ca5f95195dd6fc9dcd82cc4ce2 \ + --hash=sha256:de25b8c76fe9fe7d9c6bce2832096f020133e1d21e2841abd7280937bf90e56e \ + --hash=sha256:e5efe99e2525d288eeeb5f71a026a2d5280702f73c835a2bac58f2932adf6af9 \ + --hash=sha256:e9beee2047addf3e404eaeeb0da785b43fe91b942a0e5416dc821de5bb9349ef \ + --hash=sha256:ec3d8b99a92220bdba382acf4eff370d6a6cda34a5ce936726cb9e8cf2427c47 \ + --hash=sha256:ece8caff2fb31d6c69430d3dfc0efff70083e66b012f7f5de60cfe5dca98ba87 \ + --hash=sha256:ed14ff0c75ca56b6bcb51443f3dfb7743414159538c1bbaa3b73b8228372b096 \ + --hash=sha256:f0df7eadda7086bf8ebf0a9bc7b5b8386ba5061d3f888f1f088ab8d877c33144 \ + --hash=sha256:f23601f400323c7a8b57d271f6b841c40630afe24ddffd0c5be99ce3dec486e9 \ + --hash=sha256:f5c5f9b79689a6826a4d4dd912506028538b672fc93533d0b2b6247406751e54 \ + --hash=sha256:fb7ad4e6ee69cf53f12bdb7b306964dcdf8d58c20180c8d841eba029fc7b4847 \ + --hash=sha256:fbd3da71fcc23143f901a2c7698f3a10017ec8f1d0f7740b6854e907f860cb04 \ + --hash=sha256:fc08c36ac282866d44325aaa778892394087ce88a64475d48abe52b564da85b1 \ + --hash=sha256:fcc8d9723956af19afb215ffb82a39ab810bc8bca2000640b3fd8c884307a6f3 \ + --hash=sha256:ff7cd750397eb61cb43bd368a4e1f7ce8897ab3bd26e7e5b90a60ec339588df0 + # via eth-account +cffi==2.1.1 \ + --hash=sha256:046bfc24911b37851ee1b51aab8bffe713d89c68c6a057b09484ce9fd5f69b4e \ + --hash=sha256:06c72bb76605a4b0cd0aad6930b69d4baf7dd5d806cfc409b824191099700e66 \ + --hash=sha256:0beceaabe56af686895136a2de78db54ecd8e4046b236b8fd6d6cb61389e9bf2 \ + --hash=sha256:154852545011f779917b11c78db2358d095da62a9a172b78ad0a583ee5adc0d0 \ + --hash=sha256:194cffa889098ced9976c3fc6340305e43f6303657d298da55366907c05c22d6 \ + --hash=sha256:19ee6127ee34de7d83ce3d371ebc5ed91addbdcc39f9ab15ce4eb35a4e534971 \ + --hash=sha256:1a18a57b58cfb21fc28d72e876acf10eaed67a1ed96226f92af4df681d571c4c \ + --hash=sha256:1aa5645c30469b09530c4ebca77ebf8f17618293c58f8549cb1a543a50236e7d \ + --hash=sha256:1dea0e4d7d4f11f619fe8c1d76caf49e24405b4b5743c0e3be16a500ecd930c9 \ + --hash=sha256:208f941bb9d18e768138677f0a6d2ce01f590df56043dda1df1535ac57c88517 \ + --hash=sha256:210019b6c7cf07f081b4c54635c8cf744377001350e29cc0f81c4377b4797735 \ + --hash=sha256:246fa40ce8645a614ff682e0b70f37134e460eaf93a775e0cbe3cca585a67a80 \ + --hash=sha256:25792eac27877609e7bb06d42ff88278a6624fff2ba9bbb523c09616b117e80f \ + --hash=sha256:27350daa11d4f10c540e6e89dada4c54feb7256ad03e9a4dc075ebad7ba360d1 \ + --hash=sha256:28907ab9bfb6aa13184cfc17c6b8e1023c5ab6fd7076d8c20a35e59fe04f8f29 \ + --hash=sha256:2ae64be792b8966f2c69538199728b290e34726562896df1e5dc8ffd8d8188e8 \ + --hash=sha256:31348097ff5bbe827ccc41795d4dd099d9f0625e7def00ee653c137a490c2a6c \ + --hash=sha256:3143d81e29e1e20a9ce10901ec369012947876596f75a222235965f2b7ae832e \ + --hash=sha256:3222ba5d678f80a030e6afbcc33dc1ae5cb45facabb61cee2c7016b8432fde48 \ + --hash=sha256:3311ed60d36f83378794e1009ac6258bafbf81f7888b4caa7b35a521e3f95813 \ + --hash=sha256:334644fbac4eff73d985a17a91226df55d0f394160c4cfb880e084c8f7161cac \ + --hash=sha256:34e261f78cb6ceaaa36f42f2613f4380d94d9c759a9c73c769ee6e0247364632 \ + --hash=sha256:363e05fa78e15116c3c32c210ee36884fd6b9afa6d440e47112c3bd511d64cb6 \ + --hash=sha256:398aff33cee2767e3e781d2554c54bd0dff386bb437581e0d8011fde1a942ec1 \ + --hash=sha256:3d22a20b1fb1632cc72c22f95f7b0d2961c3e1c235f245ba4c606c4771035659 \ + --hash=sha256:42a494cee34437f05546455144f2b5d9ac09b1face62bcfce597d2e521066688 \ + --hash=sha256:42e2f76b9455f5a9a844f770bf3e200ed3da0e15f5df3db9c31fe80b04b3d004 \ + --hash=sha256:42f6930c31dc7f50732c9ae793c2786c7b6b044195967bbdde40bb9be81c4cc0 \ + --hash=sha256:456a61fa52d579ebf9df2e9552ead5129855dbaff6c1e5a9b1bc408809bdc062 \ + --hash=sha256:471cee653ae88de62096552e6d24ccb4a5adb8c8c9f10b5054d0122c15bf2779 \ + --hash=sha256:49cbc70e6542d4ccccb936558d1064a8012541e78f821f955cff24e357776c94 \ + --hash=sha256:4a7c934f7360e8cd64fe9efadcbd10c7c6364f531e432b9a4bf5ccbc9e0e8b50 \ + --hash=sha256:4be96343e422f2dfcd12ab5c9f5aebe03f82f737c6bffeca6830b3875cb44aab \ + --hash=sha256:4f42141fc14250de6dde5ee7ea4432be017252d91f19c5ad043c084cea629cac \ + --hash=sha256:507a24c282e0f42f8ed737cf048572cbf580468da5555764a8331735e9c736b6 \ + --hash=sha256:51b31d1c98274844cfd7838ce00bfc27c7423a4dc00fc0772fc3331c2cc90676 \ + --hash=sha256:58acb8ab8e295e6c5ea12f888cbb13cf21511ef2a3303a23f4325c29d17fe5c1 \ + --hash=sha256:5a59cc1c4442bc3d5c703bf720b51138d0bfc173618807c9ee2490a7541dd3d9 \ + --hash=sha256:5bb4e7ea95dcd6a014a6fef62e62467d67d8e582326443f3d68e71d6320a9fcf \ + --hash=sha256:5c58fe613dc5e5336357eff555824a314d8e43282600435c8d1cb6a7a2fedd13 \ + --hash=sha256:5e7cecbaadb83884793e05828cee59b210b24583b9c7425d0ba6a754fe22eb4e \ + --hash=sha256:616f097f2fe415bc92a247f02e11f634e1f9e9a83d327e3c915c15089c87869e \ + --hash=sha256:63bbfd5ded17c4840ac07cd8f1c21ba9d9708141f840b324f422f41b207e3973 \ + --hash=sha256:64faea20f4e2613363a1a9b9c7dd73058f3ecd00133a511e72ad7c511658f527 \ + --hash=sha256:661c298b4821edebead0c91edd2b00374d67ad7c5a1f7a91d4442633b79d6a72 \ + --hash=sha256:68e62fe11f30d5ca8289242866f0a5291402d8529ca2178ab8afc5c9694ae890 \ + --hash=sha256:6a8dddef476fab96d066d578fc88526767b836ab5ab21754e1d5bf3879c31c7c \ + --hash=sha256:6e192623c49c94421616a5778fba35cf0d5a8d000650c1967ef4448ee5cdd990 \ + --hash=sha256:7225e4514edb64eb6740324353e0da0711954fd8d7da4576755b1c6e09b697cd \ + --hash=sha256:75f80557d1389eddbd0de2681f6a390a0c5338c31ddaa821381c203fc3fd50d9 \ + --hash=sha256:770de9db11e84213beec501cfcaa013b019820ca881e03344dea5844f7876d94 \ + --hash=sha256:7750c6449dff7864bb9bb27ddfb0267756189201a3afc911d82b3caacd70dfc3 \ + --hash=sha256:7bde5e4cc5c10140859842b9d383af292b22639a4dffb725314baf45968cef80 \ + --hash=sha256:7ce713ace7c0e4520535b42b77eaa742c16dab813978064913e5a3cf82973b41 \ + --hash=sha256:7da0c5eff80f0197f3b3d1232ec5a682a9325f4ae9016a78f5f5ca35f9ced1f5 \ + --hash=sha256:7dbb61fe3a7699468030f71bbe5f8a0e326a151daa91beb11a6fc1f980c55e1c \ + --hash=sha256:811bd1e21d32de12efca32393a0ab3f5133b54fce9bd44b8bd77ab07da14bf6a \ + --hash=sha256:8ef53b2de9bcb9197d31854256575d59dbac0cba72ac627bb291ef5eceb74be4 \ + --hash=sha256:937c0052c05a31ca1daf18de3158eed4dbfcb9cc107adbea227728d647be701e \ + --hash=sha256:9d2055050ea716bd38b7f7f1579c275386646b4894c155a3e2f3cd62ed41b7c6 \ + --hash=sha256:9f8d177621de5cb38ee3e731eda45d421db093ec0739f46a5594babda7987a98 \ + --hash=sha256:a2d7755bef5a12ed488f4ef1f1b69ee9191d7396083b755a5d2295f6edb4768b \ + --hash=sha256:a48d62ab9d6f4f98c983223a547af44be6ca3691074c31cecced6facd3ba2dc1 \ + --hash=sha256:a4f00aa42f75d6e4595e8866e748cc1705adc0cddfeb2ca86d0d03993d63ba03 \ + --hash=sha256:a6e721d4b0e45d5b65e87534470e67b18dcd092c83f68fba09f152b9cbc061af \ + --hash=sha256:a730a083190634c65cca36ba5f489531576ebd79bcd5c8e172130f6453127231 \ + --hash=sha256:a931079504ecc49efed7744c476a5c343a92fabf66dec2db95edb1b2fdc770e2 \ + --hash=sha256:aa9511c62d14da7aacc9b4bf51f3f697a621e83b2d6919008243c3aad168eea3 \ + --hash=sha256:ab36d55f9ed2d067327667c2fea18dda018eb628dd6347aa01dda6cf1f5d3836 \ + --hash=sha256:ad2c86c495b899d862ea0f4b42891b8713a3bd45dd4105c7fd51c2a72f39f3a5 \ + --hash=sha256:aeae0e330c9f6acd681f647d46cefd30c29f93e3392882e792e82080c9691399 \ + --hash=sha256:b0431303acaea1089ad4b3e9ce4e6518193def1118d4073ca848635ee4ea2e96 \ + --hash=sha256:b5bdfd1c873d4e093aabc0ca84c4ca6dbc4f752afb5c86f146d9742580c9da2e \ + --hash=sha256:baed1e86cc735622097354b9d1281406caf42ff42a886d29faa8e8d1630333be \ + --hash=sha256:c1453022f490d2459a11819d83ad1d586e9ff65a12ac3e705ffebd46d3685dcf \ + --hash=sha256:c26608d2222fb1e94487e4a387d85f13eb55d5ed725cb25a0c589ac4ee60e7bc \ + --hash=sha256:c7659f22557c5a0bc4855cd635f55edec690cc008a40768527762cb9fb263455 \ + --hash=sha256:c8c69575568085ba0b1b10c0249d779a214aea6f6522e949a0fc9fb0fcb449d0 \ + --hash=sha256:c8d2c9fd1f2d16f780d15127abb050d13d1a76c03a4bd87d7e4980e45e511e12 \ + --hash=sha256:ca82be1a1d406ecfe1d25dc16cb33488e5a16bf4438c9fb590484ea29d92478b \ + --hash=sha256:cc572dace3f60ef98d7b12ff411d20f5362feb31a0439eab0085bbfd349982d7 \ + --hash=sha256:d18e5ac0f2f03f4f518d3e23db0f0cad7faa1da8620e9c09461d443bbf6e6692 \ + --hash=sha256:d28630f5854ab07ab1fd4aba756de52326c82e6be15d414b12793f1975048b54 \ + --hash=sha256:d9c275eaacd24aa73f94ffd6de08fc3f932424d8b6c376f4bed7cde376fe7bc3 \ + --hash=sha256:da0e573f9f97159390c89d9f1a9e41908b66d408cc5b58d08cf3847d844c531b \ + --hash=sha256:dd31f52ea1086513bb9df30f8fcee9b8918323ae067a3d5b78bc826a000712be \ + --hash=sha256:dddad92b554513a31f272570678ba307fb9f618f05e3d4a5eacafff9eae03e1d \ + --hash=sha256:df423d40ee8654634421812bc3b196da3f9bd7d32929da813f8394c4348a5358 \ + --hash=sha256:df913725b79db7bcf03448f36b7bf8815363417d5b58deecf9305e3e30f0f21a \ + --hash=sha256:e0bcb7e0f677f543555d2adff3bf19c05f66cdb4796e5ff602442ab2fe3c4ef7 \ + --hash=sha256:e2d65b31f36619cda3999b78b2aa9632e76b78448e7a56fc4240824200e7c4fc \ + --hash=sha256:e6e8cff14d6fb0be70a09c0bdc58096f501952d04624ebf867e0e56da2df8960 \ + --hash=sha256:f16c709686a78c727bbbf059f92b0bf41c6fc60deec706d2dc19f529175a6125 \ + --hash=sha256:f24fb43132a4c6b4cb4eb029492919b2db645be6808d738f244fd146c03c32cb \ + --hash=sha256:f53e442b08449d42821fa4a4fba000095af9f62742a500f978a9f557ec44339a \ + --hash=sha256:f5cfbc5fe74540d335175b656c725d74d90e3730c626d92575eea35029d9afaa \ + --hash=sha256:f81b3b8f3d4e343550fa4baa0e479bba9f2d29ce9c2e9b51d1ce1718d7442fcf \ + --hash=sha256:f8ec5e643a9a937f64e1999eb9f75d072263751912dc5cd06d3c85f8f44be7c3 \ + --hash=sha256:fb92203a88b3d3053034db775110081c49d28be6551923805e039924093761e4 \ + --hash=sha256:fcd22650c908d7b7da162bbfaab594a1227a15d1643a98c68b122ac642fa2264 + # via cryptography +ckzg==2.1.8 \ + --hash=sha256:036b8de43a07340609a3a4445d4da542cb9487c58dc0752c2d419c7be1f3dbdb \ + --hash=sha256:0580e8a1780d44a85c6edaa44e30a6a85565ad26593becb320d7353bc05e8627 \ + --hash=sha256:10339d23e36b8a0a4e6fda7f6c72d6b2fd4e1506f7b64a661ba8c706ee33f335 \ + --hash=sha256:10b483ad6937878f03d556d120a43d323dcb3891eb83313aa71087b54559594b \ + --hash=sha256:1f2737534458547ba8ce89663f833041925b104f7906f17b2338d1b36e6c7c4d \ + --hash=sha256:1f27d7d16be9debf173369248ff06e97fc45826bfb0a743519b49b38539ab6c7 \ + --hash=sha256:23bef3d98c905152f4ff497a6243b6a14e916deef2d8a1d342175be90f6e6425 \ + --hash=sha256:26ed4c4d3acbfdb4bfdf1ab1029219657d4565e1c63d36f2695cdfdb5ec0b569 \ + --hash=sha256:2f3e4a3ae1ff3ec811b6d2aac7a246524f72a750af95fe7a01550cdd68677d6f \ + --hash=sha256:2fe01dad7c968bcdf3c063c5192bc7d7d59f66358afb5c99554e5ce2435a95aa \ + --hash=sha256:369af9ec31248a942f2b249bee9f60dccfe6c8ac944095ad26c8083c9df04186 \ + --hash=sha256:37eecbce59271040dfab736db490a28c0e59f189b404e5820e65531dadf84ddb \ + --hash=sha256:3db1ca21685d567eea668925c9f85ebd723db41d24bbecaa2f78d8256e1ba9c6 \ + --hash=sha256:40e6e33672e474331519b7d07b8c8e0cbec3d817b6341e00fa728a94141fa8e8 \ + --hash=sha256:50f6281f5c55240f1be254041e0c06d6348c91e21fccd0ed108151f880b6d087 \ + --hash=sha256:5e42a07899e62cf8888bdefe1fa200e3248190953bacc1d872e13825b0b91a7f \ + --hash=sha256:5eb3b5327dd0cbaaa6551e01a42af9780e998640c57236e460830bf9a6e6f9b4 \ + --hash=sha256:5ecbcd887fa97988ddfc3ac4d1951367fa4f6bb25a6f72d449550ea4be45b938 \ + --hash=sha256:697f5c4016a9f091bdf7e646be0d71e625b5106a9f78c6ab53e93e5f425aa513 \ + --hash=sha256:70b67a92373b834e910bc527d538c170757ebc70bc8f99beedbfd64d1913dc80 \ + --hash=sha256:71e0e6d84a268c23c29d546a7ef4720a9d2aea597efe4def75205b6ef436900c \ + --hash=sha256:88cbec7e2010f64988c249ebb5679b73ccae1c536f4c130d4708bf7b06a8cd69 \ + --hash=sha256:8ccabbd5aea9cf98ae5301ec8b16119720d93f8f155a567e041e2f16b1fafc87 \ + --hash=sha256:8d511e410956aa2fcde7d19f40cefcc166fa84ef3387b3c96083e3798bd21a44 \ + --hash=sha256:8dc23b189b5e061b5a2fcf609b6dc1f62098dd72cf9116e4721f995eb144b0ee \ + --hash=sha256:9290e8d128921f1906ffa8e6229a878a9e967ea9937697bf90c894fe523e9d11 \ + --hash=sha256:9371ac89c420beb6f6d236ce808c7990174dc21bde61032c39235982e4e65697 \ + --hash=sha256:98abe138d79886e3e1fbbaf05cdf0702a4351f242ad1a8b4802343c7ba149faa \ + --hash=sha256:9afe50a28d8d6f130797f0861d4753f76294d983f1e6ead9c17dfa14f8118ad4 \ + --hash=sha256:9bdb7f51ee3cf8e45451bee8c6dce975fddadfe231174d8de9c27a3aa27741b8 \ + --hash=sha256:a1dee4ec1d8e6702e6008a4d489638027cd640b5d9e5adca48a8c16aa193c6c7 \ + --hash=sha256:a30f2b980929e898f0b28aa6bf9ae35e7afd5884e354376ad3744669b7cacf3e \ + --hash=sha256:a4456c9027f2edcb50a2279d6035ca971a511d8b0025e6659ff407b87ad841ba \ + --hash=sha256:a4d2581df10bdfaec00fec6daefdeaa438e66582364e1d1b705710e9d749fc47 \ + --hash=sha256:a6899908ca3a41e6d2aa19973b398de101a6d64b5189894077ea09a3f508d3fd \ + --hash=sha256:acc5d33e42ac852fec08ad1991020a958e2534ac6af346a83f579b553bd0bdfd \ + --hash=sha256:ad90fe4e55aea73e3df744b97043c43cd3227725c3f8715fbae07b4eb0acbab0 \ + --hash=sha256:adb4868ec73547d040d8551538dc00ebc3822a758a7fb2b762735e097556c13b \ + --hash=sha256:b84d698c81569381a3dd18a9848f8fca03273ae62045494cee5669a885697d8d \ + --hash=sha256:bc8a259bc3cc321413c3c8eb0789cbe35919f4f4bb32946b0e1a484d4303629c \ + --hash=sha256:c1f0f8e7a14bb4348f3ecaee92d929df3428be1f706034c961e11239d398bcdb \ + --hash=sha256:c4ec8234a72cebe419330e13d580048fec25e63d9526a0a9bf65ed134b6ffa9a \ + --hash=sha256:c56f588a57d419ac314880931122796e4331be395368c8887ca3ade5c27f539c \ + --hash=sha256:cde13789188b7bac6d5bee308532a7bd60ab5c2feeccdef2f1da41be761c7e04 \ + --hash=sha256:d2e709e9701d6085d79cf5d2ed12d373beffae1d93d61b0387055a14818973c0 \ + --hash=sha256:d7bef6b425dca6995457fc59fc5b30211d9b28cbbeee0e7a7bef1372e13f29ca \ + --hash=sha256:da197eef7014997b976ae7bc6e0ad42c02a9faa3a4221d6699e8b777761422f1 \ + --hash=sha256:dac8202240347c4af5cee9a3ebc62560ae629c8bac2b1ee313fa57cf1c9e4f0a \ + --hash=sha256:dadf0cd0c3c19611e8a1188a2a10316b88fbae56d806f75a67cbe846b8b7ec86 \ + --hash=sha256:dbd7021cdc5616df5902ec04876b9af25d17facc39851b4d6630c9c2b209e30a \ + --hash=sha256:e1030903bf9989957b73fe30a96516e75a8bc27efb65e1b6e9d3507447bfee06 \ + --hash=sha256:e523457f3a463214e2ae8aa37f8b35d519e1a51d772734d381dd090cf7391b5c \ + --hash=sha256:eaeaed98d7be94f7c215373f90cd06536237d6ec08d48d2be74c630e03edf73c \ + --hash=sha256:eff52513b32bc83e3b978cae991289cc932d801b6c08aa002d29e44a4290b2f0 \ + --hash=sha256:f41377a2a63330df64ae6f7cd806a288b21c52aa346151fd8f0551b9e0742289 \ + --hash=sha256:fef164b9a0c7ed57935bf78bd23e701ba82efcca180e9b29814a94928a2d5880 \ + --hash=sha256:ff48587f541b625dd0e471ecc866cf91462100a4429e3c21cf4f099e7dff9150 + # via eth-account +cryptography==50.0.2 \ + --hash=sha256:0ddc924c04591c2811ca024d62ecad4f7f6f08af8939c211438f48a16bd23602 \ + --hash=sha256:0ec5f09541743261e66e291b4a0cbf0fb2997aeaab6d9e9c740b9dba1b58d1c2 \ + --hash=sha256:0ecbc5652bdb6fc9eaf89a7d196e20941adfe812f43bc4ca05d9150496821047 \ + --hash=sha256:1981f1db4630889b9ef7803fadef12b056f428cb6b85c27ba57b774793b6093c \ + --hash=sha256:1ba34f04897fcdaa73f74145c25f3ec146fbd56593853e88adc2e811303c5f42 \ + --hash=sha256:241449bf940a5d27309bd317e6f9a2af6932113818bb2b8f5c59ddc7ef16da18 \ + --hash=sha256:25784ce8b9621c90c643efb9e1e2162ab3b0224cae446ad5e70e7fcb1ce18b51 \ + --hash=sha256:3dc4fd8058cea1644971207d530e1a03a184a805ffc8ebdddf0599d78a331b81 \ + --hash=sha256:4061c0079120205fb760c58acab6443e217307dcf05e3702cf970e0689972856 \ + --hash=sha256:4a20ce1e5cb4284a86692fdcba7cb8754185c6b2e5c56fcef3751cf451d3cdc2 \ + --hash=sha256:4e81d95e5bafc2d6e34e4bed780e53e4d5b9a2f928573428aa4d35fbec1eb0de \ + --hash=sha256:58a0c478eeca76fe5e07993c5a0703def34a6dc6a0cda4f5564639b33112ffe7 \ + --hash=sha256:58ddb5a8e3179d12f19e4ea34d2d32e9d63a4baa142c875c1eb59f41b7243acd \ + --hash=sha256:630ebfea3bf689d075f82316324ff7433dc447fe6bc1bfc76524b74b4a9567d2 \ + --hash=sha256:6f8700550aa1474a91e5dc07049c46f98b423b5b1ddd0483e0b51362eeeaf5be \ + --hash=sha256:78198641e5be9521beea5aa782bb551a58068d10e6eb04c9c680c1b69f2e7d45 \ + --hash=sha256:79def8d059362e7831389ed3be0ecdf58a89386e1271e35dd9f5af84e81bffd0 \ + --hash=sha256:7a8701d6b584d76e909e3d305b7d126b41439876a5aaf76cddc67fc230eafa2e \ + --hash=sha256:7afa5a6602a9f29af1f3a2965f831bae7c9d5d597b7cbb716d41ab3b7d89879c \ + --hash=sha256:7b46165bb56eb4704e2eaaf86f3c940d19154535d9b0ca7d6d590b04060e00d5 \ + --hash=sha256:7b75de3c8b3be1cdb1052747c929440c3eea46c1bc2cb8a6e3a48388e9b7b452 \ + --hash=sha256:7c6d0330c472d96f6a6afe24d80dfdf15176c33096f0a4397ae4c60f3dd3be48 \ + --hash=sha256:828d49b0ff5a0e3975865571c5d91dbbdd0d38d8289b249a163e9425413a5e05 \ + --hash=sha256:84f964e537f916e2cc85199e5a88742e964939b575ac8598b3f9d6cc416cdaf1 \ + --hash=sha256:85d0d9a31b9098e98534226d5686b47264b95e62ce459dc2e62fdfc809f9fe93 \ + --hash=sha256:87e9ce85beb6b328ba370cc6e6aea483c92617b4c95b1d33a49297eb662bfb04 \ + --hash=sha256:8c71ba2cd31fc93748c38e1b613200ff1c2665cbfd5341fe3a61cfde35a1430e \ + --hash=sha256:92e665960f25fcdc73725b9cec7a3824f279ba97a98653afe9ffac2e43668f67 \ + --hash=sha256:94e5e9f108ee10471288214d3d233fbfbb492840a8457eb85178d643ddeb32c7 \ + --hash=sha256:9c8402a82ea0dc4ceeab793db05f0fafa8ca139ca34fcde5df0f596103c74107 \ + --hash=sha256:9dab55f57c74c3cad24c323bacbbd04be4705ba6eb0d92e920b1fc4837ed5079 \ + --hash=sha256:a582ab2ae1d34f67112cadc86702774c9ea4374df6bca6afe672817203c99134 \ + --hash=sha256:a6557e5f38e065ca9fbdaf7cfc7435ecb1d113aa81a022d1b51921ee7432e227 \ + --hash=sha256:a9f7355e6fab51f6c369b86fb7571cffa05edee2c2121e0380a37fb9ac1cd5c1 \ + --hash=sha256:ab50ee449bf968271e820086f10a33d101dd060370abc10bcd22279be2656539 \ + --hash=sha256:ac9ed99d81760c62fe89d5f0815cdfa1ba9a35141cf30f1c2d044f04b4803d2e \ + --hash=sha256:b13478603dcd0a2479ff8e87e2c19a7d525734686fe3c49542472293a204212d \ + --hash=sha256:c423ab384a46c4dff7217b2ea5ba2e11cffdeab6441acd04cf65a369caf0366c \ + --hash=sha256:c5e67125c7dca78d199ec4e116aa93dbb83494808ecbb8211a2cb09b1bf41dbd \ + --hash=sha256:c71be1cbfa5cd9a41ee452acf1eccd82b2c05950358b106ec8ceb83411d1a020 \ + --hash=sha256:cbc8738fd8526d80f35cb3a40d41f41a2e7030bb3b18b09a6778ef63d291c2fd \ + --hash=sha256:ce47f66801c20ec6c6632453bb5960fe38939e9306970b48b3a5a26de7745d94 \ + --hash=sha256:d370b8d1dfcdf7130178137f6fbee6140774a1acc6cacefc4b42643ec11d0a3a \ + --hash=sha256:d38cdff612d06fa6a32840d5e1b1f7a27cee4a349aa9085d94a67789d6bfd408 \ + --hash=sha256:d8947001be83df1394050758ce0e745dd74fb134eef0a4b5124208dfc3a68c37 \ + --hash=sha256:deb9fde5c60e437ee4821bc9bc39ff31b42135c27e1dc61ef0a629389c1de62e \ + --hash=sha256:dfe9763530994147d9af1def057a5b9658b00e8f8fe8743d144d1e0911c2e454 \ + --hash=sha256:e105ab60406787da31fccc883fc0f733af1efd78f0136a4599692c4083a73d0c \ + --hash=sha256:e275096ea1e60cc595cda2836fd4a6c725d1125108b868be17f53684d164e2cc \ + --hash=sha256:edc3342adf8f697fc5f59c887a304356f147b397809440ed64e2fa6af2f50f37 \ + --hash=sha256:ee247f5c245c9a2fe7c8e2214e295918838e44e00a45a6718451e4004219e767 \ + --hash=sha256:eef4c2f3423810b3070ab391f85436d2f8bbfcb286ac15cbc73190b3563b1f1a \ + --hash=sha256:f21e8a22c8605750c7af886bab299a363721264061b4ac0a30efb73cfd58efc5 \ + --hash=sha256:f265528741e048bce55c3463ed721fb0aa45a5888d8add8cfeccb3035451bbdc \ + --hash=sha256:f2f9bd7f90c64fe89253f0a2c05e3c4856072660429ce8831b4235bf29403a67 \ + --hash=sha256:f785f6161f202ab04d8ca194158968798e480ca058943907972da5f12e2881e8 \ + --hash=sha256:f9f6143a8c75945eb960d9eb98905a441394abfa24afaae239d514ffb2586480 \ + --hash=sha256:fa8f5efb344d6908a1ce62f4a24e2e5780f825d6f53f5f50ec5ffacac72936cb \ + --hash=sha256:fdd28f912fccfec1846a94e2e1e8f9b0012f557f0c46fe4f3eb0d7a87afcf90b + # via agentrust-trace +cytoolz==1.2.0 \ + --hash=sha256:014accc95d06d7ef5040f482567dd4833d8ecfc99c2c3503594d860d80b4e055 \ + --hash=sha256:018ac56c3263b1d258c5f2be0473494a2a3cc6e3c1568a609adedfb28d93bf41 \ + --hash=sha256:023f62bd5cc9324da6f837386a8e5f960b576063ebaa75ebd2ec54a5c8e9f9d1 \ + --hash=sha256:0240efe4710e274b76594c1a04c47819ace3cc6c0a8281d6c885562bd52aa1da \ + --hash=sha256:0298a3eb3b6f9b441cab463cc8273dbb99c6acd79491bcccf48a195f55a9e9f5 \ + --hash=sha256:040bc9f38b3867428884cb902503032b312fc5d3306fa4689ac2b114fa981341 \ + --hash=sha256:047a1a54d58718738e4bd79a11ca83989129e0b2ec997311e6d15b8ebe2d5a16 \ + --hash=sha256:0544835a24a4239aa221fec3e49e35f05c775ba7ac1e20b2a6a2064c297b0418 \ + --hash=sha256:059117147f90646dc99958bb7875531e8d7cf2ec7b39f9ee3d23fac1300b9730 \ + --hash=sha256:08a9cb2d25e40919bc5f49857da044300bf4fb7c7fb0280c125669cbe34115b6 \ + --hash=sha256:092701b9c1fcc5169156fadd393db1a1ed0473e86475fd402241cd843df7b037 \ + --hash=sha256:09296d0aaca108c89323e8301558bddf8ac4c1e85ac572633c2852474329dc76 \ + --hash=sha256:0b3f663bfa65d4d38acd3b98b8cfc82b0ca2914ccb8285d60435d5f7d7e7727e \ + --hash=sha256:0d8b5b0e9af57a9ee253cf7f29775e1eabbacad4e6ad41a2e30498f9054835cf \ + --hash=sha256:0f88b60393636ce8f6801d11335cfd9213725c89efd46b8fe788f16f7d1a8657 \ + --hash=sha256:101633cfee814f6d9a5e2d5f3ff16019db9697d55d149e3436e7316c5a19f8ec \ + --hash=sha256:102a293f27a49a20b0f7f205e3a4915d55e9c31c2c540ed0c83ca424bff2374e \ + --hash=sha256:10389a0711f4a00630bece585da224c115be81ea7bef1d38c4a8529b0a631c00 \ + --hash=sha256:117c3a8c154b56e95c3cc0d96e8febaf727bdf846fe5fed28280ed6a6d8b2b36 \ + --hash=sha256:11ed7cb04e0ff4d777698d19ea7e7d3aa247f300a6c86d942b88a4e05108b5fa \ + --hash=sha256:12796227b954cd8fd9e264b4a4a3bc4036b4ca73fe35b5737481e78879d9cbaf \ + --hash=sha256:132ef98602b3d4ec2d83bb0e073de280ca69538841e4b2ff1079fedb07882324 \ + --hash=sha256:1842d175dddbbb14bf7ef7a06e9f39907db60d9d41dcc13366f51af128717606 \ + --hash=sha256:1a819a4f512944b364b86dc551c391aaab901e890f41d65f0aecc7e7e7b8a2e3 \ + --hash=sha256:1b5bc4bf6af65af7039276ab701abf09f1f1f1ee66b7059f2377c64d4faeef56 \ + --hash=sha256:1c967cb0073aee5c6c4c46534d7591a7a2ba4d8b1387a1ddc353f97cc9a11d5e \ + --hash=sha256:20339e9aadcc20fa6b9a64063d92978b36fa338a444dc0657f54f0ccaa649d3b \ + --hash=sha256:20fee7dc262a3b49fea974efb3ca6c5523b8bebcd3942cb9bb8ef34e60f07f9b \ + --hash=sha256:21724ba0e21b92289122ec84185b5c3b1882395958de505e5aa2b95a2e967966 \ + --hash=sha256:22c060a3de0c3628fcb7f9e7690ba7b5164e8cd78d831628046a33657715afa6 \ + --hash=sha256:243d533c949c334286cb06080ae0d94f7efbdc64218d05f7f0f9acb754f5efc9 \ + --hash=sha256:26726524d5348adbecdec799aed4a1cb277ceac9fb0df042cb0979abce8c19c4 \ + --hash=sha256:2a83a4c8d2274fa28b9445b973e25965314b852a0c0a29ba5fb70f7416a839ff \ + --hash=sha256:2c4badd009e02702f3e410ac7e8bcfd37c40699526ed2814bcf73c5795e8db57 \ + --hash=sha256:2d0164d7d418e7099501de66bb40068e53585e35341469dc7548a39f320c7ab1 \ + --hash=sha256:2e76017e5ebdcf803eb3f313eee5afd696701e129a31b0d169e2f55816712714 \ + --hash=sha256:2ef10773f9a41baceec29432ce5dabfd9267bdc7608cd0c28ce53b0e354434be \ + --hash=sha256:30134d21ae4c5319bede38ce153bb906585be78d168bfd77a050ffd5bf5c6bfa \ + --hash=sha256:30f5987bd84f2743bee69b5b776b3d39613228d7779a44fdf14b77b199cc35f6 \ + --hash=sha256:34fab06d105869b48af8bb8316c4293bfa165f2a07cefbd18f550ec2ec03d536 \ + --hash=sha256:3546b76c00cdf4ed9c37a6a39426f35e05435b5c9f288a6d074c42c93e3055c5 \ + --hash=sha256:386f26bbde26e87b76ccc68daabb6ca50dc73e87e144690a9240bac1a5325114 \ + --hash=sha256:3afe377ed8dd31174f0457bb641e05df12b50fd5981c69e8801aae1cd6ed9155 \ + --hash=sha256:3b04cbb776ab4a996cf6b61c03af931c4b62b4b0ff9e0cc20e26a64155631e74 \ + --hash=sha256:3d1b76bf267b59fe437beb5fa1013cc56efd0e84ce04cbfa6d077940426f3980 \ + --hash=sha256:3d77764cca1a097b738e0ea5969bcfdae513441c3a34724a9ba59769b5efe910 \ + --hash=sha256:3ee7c5dddee7cdfd1fbacce06d2c6bb9c1d9041f4920809ca5100a0ff18c8ab7 \ + --hash=sha256:3eebe9e05af65052c168a204551a7bd2db61a38bfda9e512688bfd939878630b \ + --hash=sha256:3f2b78d40376094216e15969afeccb0aa6730bd8e2237f9ef9c978bca080d2bb \ + --hash=sha256:3faf310d09b98e6e53c85f84f7705ebf24a903b672219d5510880ab7be92cff3 \ + --hash=sha256:3fcecd2000087515d19cb6abfab26e58078059bc204b6d3839976a08868dd56f \ + --hash=sha256:3fefc24a365673fa77c0bc10c4314d8761a1d4153edc912d834f3abfa0928eea \ + --hash=sha256:407e3111d7ad2f4120aca06682a36f12e920819bee73225b81bd9eb1e8c01cc8 \ + --hash=sha256:4279744ddcdd751085488abc3cb3c32e35e301e625f9cc1120d679017dcaec39 \ + --hash=sha256:430e22e81900a714da93a69ef02c4c326b85717b1d9346e316ef1a36401321cc \ + --hash=sha256:4397cf6bb88fd202ba57c5d3d9bb474edebc758d3564c6b60a6cad4c4a6dbf06 \ + --hash=sha256:44eb992772bac234a43a6c5345d7748e21643762a9a26612934bb387515912e6 \ + --hash=sha256:46078aae6e4d55962a7e331ca12bac637b0eeea7c4d7ba27763b7ac7561ac9f7 \ + --hash=sha256:473c769c5886141bdd1b5de9806f0992f4ca512a692ee65ce05f78ae1bef5b2a \ + --hash=sha256:4815f2cf3d2b5ff40c8f1edb9089e6e479fd81b0eef107fe494e28e12c1f81ed \ + --hash=sha256:484211d4732bd9b587c7422e5043e00775e3327017519f81d8ff166b00c85af7 \ + --hash=sha256:49093863e870e79a158c189ed11485bd63a7c7f5b7b12eb87f627f64fcc5366b \ + --hash=sha256:496d4e8e3586bbcef58f42f51784a679ed3bababd9f19e7ddb7adaa3de1ddf1a \ + --hash=sha256:4d4078d0b9860b0e0a07cf82dee774a8ca7baaffa343e607732b77fdbec28157 \ + --hash=sha256:50997f36106a784831fb8a39a8adba274040382e85e74c96598f69f9f13333a1 \ + --hash=sha256:517cd4efc345df2a8eb146e65f002934e24b7b9245af8ea74ed1b3611d7df6f2 \ + --hash=sha256:51e389999d225f092ec660011c307e14d9de0a5ad8b14963d7ee18ea9d0ad59b \ + --hash=sha256:529165b178b7bea732e40d8122fbe04339948ac79188a58c72c64bfc19a54e56 \ + --hash=sha256:53c81e501d35affceedbb810ac43de56eafa45cd45b45a2970396da746587597 \ + --hash=sha256:5418e99f53aa0be404cf7fa2f1f1915bd0bd6340bcba38cdde6d2164cebaf0ac \ + --hash=sha256:558889d8cc6c6c9da71c4c3219d8ce83f0b64346e5a9822454ddb5410312e82e \ + --hash=sha256:59c8b1f59fd36dcf6eade8a54031804ea4a81bca004ae5c89c0ca19348e52782 \ + --hash=sha256:5a5567b397218529989c492fb646d7484b754d3ba1c8e50d7baced86b878aa63 \ + --hash=sha256:5a67a1ae9746a2942448743a097d836a4567b7119be93e01ec962b605a16cac2 \ + --hash=sha256:602b7f6f081f89bbd115ef255572ffa204480163d23ffb6e6529c778bc7d7359 \ + --hash=sha256:60870e904fde37aaa7aaf57eaaa287fa574d3b721d1c4913284984236f10fe44 \ + --hash=sha256:662ba3e27eeb9662e258f9d8e3f17ce55a3e4c6484bfcdc8dff9ae754f0f4099 \ + --hash=sha256:66fad0e07f0ab568030db93298d583b204cba7123b7728a64a20260ec4ca40ca \ + --hash=sha256:6721c3bac1a2c1fc0a151f2d0e41b152aacb0ecb79c66cae624641bf1b695df0 \ + --hash=sha256:68028b49df3fa5b1126f0f266085bed81aeabe726dc13659875d0953da92df60 \ + --hash=sha256:69b74289052caf6f892d85b3bf36f53e63fbbeb34cb4e9e3d6f5eb509917527a \ + --hash=sha256:6aa47e523ebebddf4c8da475985befc30470cc908cafa41fdb25bd3db5373baf \ + --hash=sha256:6b17ac998160b59d9ad31f8337078c663971a473ac17b4570739a938b2b8b298 \ + --hash=sha256:6c1f4ea53877632c92b7b0471b8ce128dcba2ecaa40d13c051bee715ecdca255 \ + --hash=sha256:6e6c3c2815ade563a496c7f4dc29630c16ba1f76547542c948bf2d46bb53736a \ + --hash=sha256:6ebe99f69fb9854ab956d4c066bb82833ee09401977cfd6a5a1274171e27c310 \ + --hash=sha256:6f468aa68a751d254d3f6159cfa99c273c3c08196dd796ba0fe913ff2dc7e267 \ + --hash=sha256:718248bab4d91dc28d3fa7b9bb77b89ab8d48c4c1dee89e3d411dde5cb4d0a4a \ + --hash=sha256:72eeb2b32bcbacefbed82b236386ade1867fff1da261e2b030cc703ffeea0feb \ + --hash=sha256:73ffb4e056217328269aa12e1932726cd2839353fa47100ff3e441a339495a47 \ + --hash=sha256:756442c6b537af09b07b58aa2596b036e558a82ec257de7dcfde1624c1ebd6d5 \ + --hash=sha256:762aff004c487e0ed24d6de2ce6791ca688cf76b2364e7a679872b82fec8c96a \ + --hash=sha256:76b344d42f34d89e8ddd175b8918aad3216b93de0c224ecff022afdc6bb95e74 \ + --hash=sha256:788ef782e107781be3d5e26f139723330efe2501e3af7311d00ff0c95eb6d948 \ + --hash=sha256:79029525176cdb3890a5c646a464d6ea760bdf4c7a046735ef50c5d79e953d09 \ + --hash=sha256:795285dc9baa51c6b96ab34c3769f85ef6f8d991b498f265d873a7871126beab \ + --hash=sha256:7b5b620748488cfc379e5376b845dbd5116429882ca0d1aa954afaa636ffb9d9 \ + --hash=sha256:7e479e89b13fa41a4fa3d70cbe94265df197a0b1a6b9e3497dba61cf02f101d5 \ + --hash=sha256:808cd21ccbd11a861e3d71757b7e2bb3077bb43e217f777302a1962a5271249e \ + --hash=sha256:80f25953abfd097e9426e852d0ee5af91013b38203c3b7686fca008774d79151 \ + --hash=sha256:84784c3ba3a6676f4498c85eac60ba4be90b3afd5a292e2664024e105055d436 \ + --hash=sha256:85eac212c9c371ab0e67d5167a0679427c9a914482368276bf3398d9a45e1f8d \ + --hash=sha256:8750d01346b2daee5084766b5b0e306c105e877b8bbe74a8e68682c4c29bbebc \ + --hash=sha256:87cefa6e471672802630bab22fb808bdda41c58b50a2ab0b1cdc8f507ae2f950 \ + --hash=sha256:87d56e129b50e69df8321c804f614ce7681324da03226802ee5da4884a81ab52 \ + --hash=sha256:883cef4cc648e3506121b77e486ee4abdaf7819a8f4264345c7b39accbd52d48 \ + --hash=sha256:88636d4e3f722f38943560f7ed581807acbe9d88790c8f20a251660127b9c02c \ + --hash=sha256:89f4d870d53cbf0a8876ced47aed11da66757bf93b523af309c1bbb5dc695eb4 \ + --hash=sha256:8a46ee8f86cc9644f60d440633a71a304d987f88ad62cd7f97418d08a7317a7a \ + --hash=sha256:8b67af224d2d5530abf5dcfc5b869628d8cabd69d969ba7efbb03495cf157160 \ + --hash=sha256:8dcd865382e37ff11c95b74144d4b2a14b87e840c4d3e9ca0b41aaa4b16b0648 \ + --hash=sha256:8f0f1c48e204ba3ea4a5adbc0de12f09b440e4d88f50da5512e42a580d774366 \ + --hash=sha256:91817f4bee837996ce9d623210cf8da8d1ad0876672c088ab14b8ae96c60dd33 \ + --hash=sha256:91da85729205c16877fa6e9631c9e8f141677b7a9986473f718b39c8fc4c0ba9 \ + --hash=sha256:91fba29f49057375ade7622c98eeb3fc4f718c809b2f2b16bfbdbaeada442250 \ + --hash=sha256:921e256e70436a719ea9887fd07ece4adbd54f5d19a9d0131f6789743af62686 \ + --hash=sha256:9424e82acf7001ad5fcc7b3346a239967022b1f4b7a1b057dbaaebd746cf168f \ + --hash=sha256:958b793f01a4ab5d9df91aba30dbde225b8acf1d83dd0394b159030b2ad82972 \ + --hash=sha256:979217911f7a6749a225c84fe642b3357476d4f723a94557bd9ce9d4f106daa3 \ + --hash=sha256:994c39a0fc47498927beedf7b50aa45f3a16ad2d2fe4358cf06c2e77874eded3 \ + --hash=sha256:9ba345986e31edc60276061c33533f839b0f5b165a160b7e0235dc019fe3eaa4 \ + --hash=sha256:9bb93d6cc39708daf4ac6d91b5ac92a1955c2f3bef54f8e51c7ab664a88c0d62 \ + --hash=sha256:9e1dff3d8e2c6020d239e4ecfad5b9ed46b04e2aeafb395ed8e6c011c1d394cc \ + --hash=sha256:9e99002216c0fc79e544297677641031b48fc03c84b0d39f4364fc5a49730c46 \ + --hash=sha256:9f37c629ffe37c82e08946e9171a23f2e33cfd8aaf2d982fdbdc9a066994e648 \ + --hash=sha256:9f4cf9332500cb990f5076403f8e7f69391823dbab4ea9b3ecefc277a7169794 \ + --hash=sha256:9f725efd5755af042ce91b7f25ccfd91fcb45eecdc9cfb9d8225c0d4ce805822 \ + --hash=sha256:a088a9c2922ce596a6e4d971e6781f23f594ded8399f143328d406da2f03b8a4 \ + --hash=sha256:a0a7867e88c87f7c5a7ae44b00f70ae088053c1a3b2203b0fb5ca47c14f5b744 \ + --hash=sha256:a129044d3ab46c1229fd41281dc1241b8c9433baf08b5bc0d555718ff7be98a5 \ + --hash=sha256:a4b26666d525ad638863e5231905e742f1217234a48ed8fbc0286716e87bbfcb \ + --hash=sha256:a7128d458a724d9c8cbb9dc21af51308234ff6a6ccb235ea7098e18343b3597c \ + --hash=sha256:a7e06dc453dbdce1d15ff74f1609d1f750ba4f23c9feac208d53310be77aea79 \ + --hash=sha256:a91588f87c8b11759d85597de96e64ca52208461ad5f066b7a6e2b8227427fee \ + --hash=sha256:aada80b66f628c77f01c5f10e70639476eddfe350de8e56bfb7b958a6453b39f \ + --hash=sha256:ad70512f0c2abd9e209efe479b123dfdd775c77ace703f414445f0a640ef7b1f \ + --hash=sha256:ae87173e2e064fedd939cfdc712946b56fefeede8065437792dbe592746b0f51 \ + --hash=sha256:afb91aa6cba01311e2ad16c5e707c8f4db08fad78d95d19b30c59eb659039d7a \ + --hash=sha256:b092364312772f2eb525f6690b9726ecc27afd2378127246e21636fb4db8bf28 \ + --hash=sha256:b1920ffb98a70403f9e25268badeecef2dce5de0ea430534f19b3da44d5e4ecd \ + --hash=sha256:b244b33f99e66342665566cac09d3c69e0573c8864015fc9e2482229cb1ef17d \ + --hash=sha256:b2ef6e50f18f49f894b5fea22b8599928c8d6dbfbc0e2818d3117fa228a47672 \ + --hash=sha256:b3b0716b3f7e2f42029fcae249cf9885b4f612165ea02302f12e7ff0d23a8035 \ + --hash=sha256:b3ebfdc9abb0c3b7170353bdfbc2a4e404581bace4a32c6941362f039363990b \ + --hash=sha256:b7bb3afc573cd848bbf647a29f0b71b867346a5c572f99dbad5050e320e53c11 \ + --hash=sha256:b9c213a8e100c4a89eb9c2166c030e0e1be13e18dd46616b075f1d3005b5af15 \ + --hash=sha256:ba71ece8a063ee71af70b3ec3c084d2b1328ac5c54fdfd35d16c0316028f5f56 \ + --hash=sha256:bb854a744dc7fed783dd1a20731c1c0eeccde747260c5591e4265daa435b3148 \ + --hash=sha256:bbccc7c9593afe50a4463cb6c594a6375999d15ef31f28bfe0493177a531ef6f \ + --hash=sha256:c007ab8317b4005ccbde5c744d9e862264fd503a8aa2635f456215bb16abacba \ + --hash=sha256:c0d774707b2630688b3b3009ab621da65b3d913c5e56354d150dad62044ccd19 \ + --hash=sha256:c243a175f5767299e3a0c5b1d08b229e4c1f1be4b7491d0a0cfc3526ee213ccc \ + --hash=sha256:c2b0b668e3f6ca38306a77d94be6e659c8d49e441e09174dbbb9c55b73a0157a \ + --hash=sha256:c3a5ab8905b0d01c0077dd28786efa7128908edcdcabe29935a3c45dcbae3128 \ + --hash=sha256:c6bfa292551f40ed36633a2a15e53f3aa07ac7ec584ecc04b7fb86fd45458f1c \ + --hash=sha256:c72bec295c681485e15562f87b104d90ce28cb75f800c48a60af8cb605b10cf8 \ + --hash=sha256:c8d6a9e3441cbe2d4a1ad45bf41071f8a8287d58a2ef84bed8d629524adaaaeb \ + --hash=sha256:c8da085fe30af35a184a74f70cd551fc30ac12eb06fdbb94825459db6baefa7f \ + --hash=sha256:cc21da21983be662ce185069a150bbb17cc00d46785ee63ef427baa250ac495d \ + --hash=sha256:cd2a1e188c6968aa2cc639073c10eda88b03798a2e09e3b2724be370065b35a7 \ + --hash=sha256:cd6df6b95a4c115d71104fe1aa84cbcb8c263f83de940725652c4bd9403b4716 \ + --hash=sha256:cf8144bf363b31fcb1b4e766ac181c5128e38469aee1f37a666fad9867c4e5f6 \ + --hash=sha256:d0e8b96fdf3201cb30fdf0037ceec516eac4eb3289696f3ca73e99f5cbd792af \ + --hash=sha256:d113195501ee883e22708653f89958b231a6acce76dbd9c69b5210a8f01d4132 \ + --hash=sha256:d1ef13738b7241439a5f514a87568e9b9696384078500b510612e615c2435ac0 \ + --hash=sha256:d251e040c91fe15f732ee829d9f4b94d8b8d7efdb04671b912288dfd95657b27 \ + --hash=sha256:d2729207b36de62871d987e1a2325806adc2044b37f352c812d36f95c092ed34 \ + --hash=sha256:d6d6f7eb24d3e4cffb44f973ed55c4ef895fbe5913323365b782b627e0971d7f \ + --hash=sha256:d9003634a330deec2fd475499ca447546c1e82c7076883926ef0d9ef5b934344 \ + --hash=sha256:da923ff6ec226925f901b8e59c50c7e8a011827deb9aaa9143bfde51a2ca1474 \ + --hash=sha256:db5c8885138f1789a1316f341bf643ac23626a1530005db0e5b30b425b3140d1 \ + --hash=sha256:dcaa296cec85c8654fdd95beff236c3b6db227361136dc16287e3f1a9420e21d \ + --hash=sha256:dd0c7c7cbba43a498a05c26f349b88f50513232d9f3ac9c2722494a8102d0321 \ + --hash=sha256:de697334697ca13c89bb544753c28301e309ac312c347b3029605ed0a1eca278 \ + --hash=sha256:de81bb9875723d1d8dff275df49045e7c51b9192948fc65c3f297c4efddcc1a7 \ + --hash=sha256:df5ac6f78b50a7aa7b497fd8a02d6503d9ff9d3825afbfb16cd8e8098bf2c48f \ + --hash=sha256:e2b2e2dbd74d64159bd7d8df19bb1e7f9f17fbc0e960ebf22107f41b0cd71682 \ + --hash=sha256:e2ca6c753b160cf67cc8a32666f9f8cdb6b387e480e2e27f1ba079b90c81aac9 \ + --hash=sha256:e4a7ffe2e7c3602df8b23e03ee0e501c782e4a810c9671cbf6cacc9dea6ca51c \ + --hash=sha256:e5a1b7790ec8ab8e226b599a39fcf5170a022354c245b29d7cf615bd5cb1c5ee \ + --hash=sha256:e76bf3aa13fa58cb358082314c76be315a155598d3209ad0cb6ee7c74c4eec1b \ + --hash=sha256:e786ff4d376e54db46da4eef66abd4f6b61f5db1bda0276a8ca02c79b9206ef9 \ + --hash=sha256:e816d321906868190df9ad83520bdf7bc1a9ac23be521ef55eacbc185987e9c4 \ + --hash=sha256:e8eaaa893ec327cdb170a1da48438108f4de2bbc319c2ae52fd76ba96d57e947 \ + --hash=sha256:e9445048a3ddf363f49ace4cdb8341461b623930849cbf59cc66ef20c139064e \ + --hash=sha256:ea77262e4ff9c27cbc9c2ca077b46e03a3d8af5ca6b5e88f1ac4d97d811f2e61 \ + --hash=sha256:eb457a27a7bff3ceff2690f421f848d3f92054c5c80f02460675ce95fea6470f \ + --hash=sha256:ed62012c6717cf33cc179c6a9ce15bd875253e75cfadc19b32a7b88d963533d1 \ + --hash=sha256:ef3f757e2381a8b28541bbb60d966938baf1d3f26dcea7eb6e4e51f4b3bcfbf5 \ + --hash=sha256:ef469b837877b1cc067ef5e24833bc3545a3ea34614be5b4c0b2cff3dec9e9ad \ + --hash=sha256:f022df618f8cbd902a1aabbcad6b6320248da7b0f3e901247fee3d438bc1a6f7 \ + --hash=sha256:f0e9b425255b228e1e960ac053b9355b2d41c33e4c24a3065aec689dc83648ed \ + --hash=sha256:f464a0505cf3e0b18bb23494a25f19f7550f90f53ad1b61f7fa5bdae12f0d48e \ + --hash=sha256:f4c7d2d7db6ed6b6b9a11beb198ef60689d2b085a625b50906f612c5f67b3a77 \ + --hash=sha256:f76d0e5f0afc81afd46d31c052002873f32bb77d01bd00fa59ee1645fe004029 \ + --hash=sha256:f7e8d6c2af4b02157c0dec3d17aca222ce314030ecf8fd12e21210ec294c6a1c \ + --hash=sha256:f7ed31a13159fa2fbad8a1548f3ebc4f826810d89c6b1ce63939003445a26bcd \ + --hash=sha256:f871459b311f33119766b6ecd07e89509b12e004dc2c29a210cf9e1584352e48 \ + --hash=sha256:f89a57f79f4647b220d947e4612b24a12f5bec3613e2eb965aecdc29873576a5 \ + --hash=sha256:f99e8e1f1e84522257c4c762ed194106b6b40eeca5a5d181b180fdeb3e927ef5 \ + --hash=sha256:f9dee6caeb80aafb9c2519481249dcc2f2ea7cf96c36ac49293bcd3ceb2fe152 \ + --hash=sha256:fab21ca27e20e63ed9878447dd2ef11c4be4a0ca04a3523f559ded0e612d349e \ + --hash=sha256:fafe98bb24c3e271937d62bce13378be09a208afcf1d15a5553338b0d5fa0138 \ + --hash=sha256:fb13f3904a2bd4c0712e39a85f7ae8825322b202bfd0fc2cc313cb1fafc21ae5 \ + --hash=sha256:fba475df3ffdbb28f1f84c99169c1ec1b54e5faddf96502f65a0debe850f8989 \ + --hash=sha256:fbe3036e47d4389e55482a7dfc6207b5b298373bead77f371e0bc18a3fbb6061 \ + --hash=sha256:fdd8ded8a93e1be009577fccddaacf78aa21cbe7dc6ec53c229def0198a1ffa5 \ + --hash=sha256:fe02199daecf1f4d7cdc4351bc451b590f4574ef4aff30f04d630a5c0cc327ea + # via eth-utils +eth-abi==6.0.0 \ + --hash=sha256:05ad63b50bd5448cfac0079b3cc5464de7464b4336a2496bf368d5808c7f9e9f \ + --hash=sha256:e83a0ed91f2dadeeb50236d673736fe2edc6fcc0a1c1e13d461192d4b23d5bcc + # via eth-account +eth-account==0.14.0 \ + --hash=sha256:2c8291b1a8fcbd29a55b07f75f0a0aaffd04704d3ec28d1396587f18a5541c6d \ + --hash=sha256:efdcb57f32f133e9152510e44772a4bcfe519317dfd8f7e7c5ead8189f73a2b6 + # via -r requirements.txt +eth-hash==0.8.0 \ + --hash=sha256:523718a51b369ab89866b929a5c93c52978cd866ea309192ad980dd8271f9fac \ + --hash=sha256:b009752b620da2e9c7668014849d1f5fadbe4f138603f1871cc5d4ca706896b1 + # via eth-utils +eth-keyfile==0.10.0 \ + --hash=sha256:3003b20000d68203e8fbf45456851a524f859a7432d2fae73be4a9aebeb4b8e1 \ + --hash=sha256:6b8b1e2528ecd3c53f9f733c061a8ddc7aa40b689f15c2f38b73ee6fc5d274fd + # via eth-account +eth-keys==0.8.0 \ + --hash=sha256:11549b251876fccd7caedd6905e494ea2309aec352ec2579b00ef9978017a964 \ + --hash=sha256:a7b94222638cccbdf2b5dae5c365d883a96826d82bb0faeb56baa65375f514ae + # via + # eth-account + # eth-keyfile +eth-rlp==3.0.0 \ + --hash=sha256:32f355261c36ad2c369db098170f873123795667e50d496b034f369e2c9d2346 \ + --hash=sha256:9663e54a4a1c1c847d2d328c1d07e4174ec1c082953fbb42b60e61c501c4931c + # via eth-account +eth-typing==6.0.0 \ + --hash=sha256:315dd460dc0b71c15a6cd51e3c0b70d237eec8771beb844144f3a1fb4adb2392 \ + --hash=sha256:ee74fb641eb36dd885e1c42c2a3055314efa532b3e71480816df70a94d35cfb9 + # via + # eth-abi + # eth-keys + # eth-utils + # py-ecc +eth-utils==6.0.0 \ + --hash=sha256:63cf48ee32c45541cb5748751909a8345c470432fb6f0fed4bd7c53fd6400469 \ + --hash=sha256:eb54b2f82dd300d3142c49a89da195e823f5e5284d43203593f87c67bad92a96 + # via + # eth-abi + # eth-account + # eth-keyfile + # eth-keys + # eth-rlp + # py-ecc + # rlp +hexbytes==2.0.0 \ + --hash=sha256:01312fcd5c57e8a8d2d7dd3274dcf84ea50422aff2abcc2d9fd89ad6a32498e5 \ + --hash=sha256:5425bd7ac83cdd9791c13a5bf97cfe9b9609a304b1ef3ab146adfd50de06cf0e + # via + # eth-account + # eth-rlp +jsonschema==4.26.0 \ + --hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \ + --hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce + # via + # -r requirements.txt + # agentrust-trace +jsonschema-specifications==2025.9.1 \ + --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ + --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d + # via jsonschema +packaging==26.3 \ + --hash=sha256:94edc256424af38762eb31306eed28beb9f0efc50a8837492c9d6fd6004aed79 \ + --hash=sha256:d7193f7c8e4e93f444fde0262bf90af30e16fa0ad0ad44cb553c87339b23cd1c + # via -r requirements.txt +parsimonious==0.10.0 \ + --hash=sha256:8281600da180ec8ae35427a4ab4f7b82bfec1e3d1e52f80cb60ea82b9512501c \ + --hash=sha256:982ab435fabe86519b57f6b35610aa4e4e977e9f02a14353edf4bbc75369fc0f + # via eth-abi +py-ecc==8.0.0 \ + --hash=sha256:56aca19e5dc37294f60c1cc76666c03c2276e7666412b9a559fa0145d099933d \ + --hash=sha256:c0b2dfc4bde67a55122a392591a10e851a986d5128f680628c80b405f7663e13 + # via eth-keyfile +pycparser==3.0 \ + --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ + --hash=sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992 + # via cffi +pycryptodome==3.24.0 \ + --hash=sha256:016a309085a2bce464ca622f5d115a877a4da7cecf35caeeebfadc1573ce5c8c \ + --hash=sha256:04abdcc32afbed3e9a64615793d09d95929491c2f3bd7d9beb23a8702a118277 \ + --hash=sha256:0b26310cfa9ca1b8504f316fe0c534e5be614f2c5147de3ae7431ce51f5a7245 \ + --hash=sha256:0c06fa466de3d274c44734ef7280f1048c0726bf0b21071257632fd0ce5f628f \ + --hash=sha256:118b2be7dd82b639492623a6b2bda545fbb470eed9fa1c31ccd56340aa6cc9a6 \ + --hash=sha256:26c06f99ed10ba12e8b9fb69b466eaab9b7a1f01d1279f8b4a93c067c0979cfa \ + --hash=sha256:27cb8fbe6ba84ba508b3e94ef22e3fd496d91be2e5f624fa8f827ff23d1f455c \ + --hash=sha256:38d60b7da71e4936194a2f1cea646c5059bb3f1b93d2741c72568d2b140d5f2f \ + --hash=sha256:4839a0d796755e2e9c85e890a80f4077c18a661eb4aba2ba8bd0c3fe9f23887f \ + --hash=sha256:4b0f27c55bcc9b8923e97ab56b0bf0efe27fa0a6e54775d9a5666836bfcf3e39 \ + --hash=sha256:4c56912453dda840f2efb3a18e175607e2827a635f4433fd1b49777c648fa885 \ + --hash=sha256:4ded554286a961b262a576c7417abf70d2f9017ce9c87f5eba200e696ae48f49 \ + --hash=sha256:585b8eaffb7acb1db161de9c7579687ea6dae493663392fc4016a0e329526c56 \ + --hash=sha256:64b2f24507d38ba489a89d7b41b1a31ffe468fccfb9bea5c94f7e04a2aca93d6 \ + --hash=sha256:67d5d77da36bffd405b3cb1d75a83db749dadd62255b4e72bcce56808de4ce7b \ + --hash=sha256:68a6e52e2efeea81c840ddf44f985cd58351cf97b1b954dea70cb6a950368837 \ + --hash=sha256:6f78fc0b4d9b3f24864aa54ea55e9854a4245620eef1523b401985672a12c871 \ + --hash=sha256:83d4f5e21bc638c09a5d1e1201c61cb4bbcef7ad7756f103deb9dd5f941d385b \ + --hash=sha256:891a1eb7a31c6dd23b00d614ad9b5e978d17969cfab2abb8c974e83006ff876f \ + --hash=sha256:89a9c14b18f43491d7bec4440c7179eb51a56891c3070e41ae726cb3734c6b9b \ + --hash=sha256:8e420b2b36877272db44e211cc278e6c80d4a1c05e0440863e00e42ebe0a270b \ + --hash=sha256:8f65c105867799f5b49b85d092247bdb645a564d3a050b4e9a39420afa931489 \ + --hash=sha256:9140779b40405476a799305b9ac1bcaab4ee6791dc3d38b12a9aa84ffbd6aabf \ + --hash=sha256:988ba7d2374ea7ac0318a4b2345bb52daee36ca386eec703101b9c38dce7950a \ + --hash=sha256:98d4efe5ee7fba703591b82b5c2c3f5f3b82a61c7807db4c7be2ab5ece07729c \ + --hash=sha256:9eacc321c920184b09558f1f0a0bbcf32849b94720c57b5b0d04b88ea7573f81 \ + --hash=sha256:9f265dddd46892f77a63b3878b9193c2f8da7a3930105e885eb2062d845704f2 \ + --hash=sha256:a6bfd33b3cea155446aabe682f61c6c7518581df7a97546327b824c3f8309005 \ + --hash=sha256:a8b459b0f5b874bf657ef6f7d5c83e5cda9ca6e9d0e578dd798dce60c756277e \ + --hash=sha256:ab093fcae708a43aa28170c10084ecd48aee9509ca6dfcce266a3da7d282c217 \ + --hash=sha256:b5c5fecc6232d71ea66a2d40db6b4169302f6f9f4803903809db1e2869977905 \ + --hash=sha256:ce37669ec6a71d76defc5403bfc3cebd78949ce269f63fc305c0c5c1900b5e1a \ + --hash=sha256:cf975cc3a0822a662ec2cdae85b38ad6f67654f9b48fbe02c5baae5999a6c18d \ + --hash=sha256:d219974e7855dc901a49ea87aa6a24af029b17e6f2122fc79734777d44361914 \ + --hash=sha256:d3e1adb7f1a298eeb70c8632bda031b4d4e484292e84ee3f305e20f9544aa1dd \ + --hash=sha256:d9d8c5a84de826bda6190d37d3a9f7ad404ea16c32718a5935a6d7cd1adbc6e6 \ + --hash=sha256:df855e0a99ac7e223a4e4e620a32daaa5aa48c0ce9b4b4333bebe562efd99ebf \ + --hash=sha256:e00162d4ae4c68d533294103ea3a60dee9c89d75a1281e0e4e3e064986cc7388 \ + --hash=sha256:e6870f15ecbc61c25058bc5d163189af5c81a2ac42574bac4f2e927720b89c34 \ + --hash=sha256:e8b9090197bca609a07ef9226ca2b8de99fed5ecd521d5c35d5cb9e6db861c8c \ + --hash=sha256:ee4d849fc4301a0d9aee27ea70e6c4c26b8ca9ce3bda6be04b62cd3ef96561a6 \ + --hash=sha256:f83fb5a5c95a888d0ee3542890a113b98fd871e45758902845721894c99ea028 \ + --hash=sha256:ff59a473afa6dbde1a3566569d68d8ce55e43cb7d3fc2e868cc4a7a08c2e8469 + # via eth-keyfile +pydantic==2.13.5 \ + --hash=sha256:346a034f080da3755d8e9cb5e00e8b07de1d39e4f6e2c87d8ab7cafa0b269a73 \ + --hash=sha256:51a9c5f7b2f8e636f04c6cada605d9b6a3bf1348fdf945a3d8869b19bba0ee08 + # via + # agentrust-trace + # eth-account + # eth-utils +pydantic-core==2.46.5 \ + --hash=sha256:013d6f3483d81e02e7c328831808f336c8596ee33b4bd4026b9ffb1e960b8942 \ + --hash=sha256:03b9666e41e35d8909852ba191a0607520f81b74eaf12ccf8737005dbb313821 \ + --hash=sha256:045ab3b6d308439e32b81cc173bba5b9018bc6ed896afd0c65b3b009b1699af5 \ + --hash=sha256:0bddb4020d8f04175865ccd17eff3040874fc11fb593f424edb452653b4b947c \ + --hash=sha256:0cdbada856a1c69a7624a64d3d9aefe79300bd6ef827b43a4f265010b9b55184 \ + --hash=sha256:0fc5be0abd4a407e200d844b404e33639a554e7bd0d448e7b9ae181be4789ac2 \ + --hash=sha256:10416c15b8839ecc4ef4d0885da76da6fd0f67333a0eb8aff6d93c4b8f2910fc \ + --hash=sha256:15f4a94963c95accac15b7b657bb177d3ad82bb90b0d0526d9a9b85079925db5 \ + --hash=sha256:18a09e1e1011b462f2e32774f25859ef1223d5c2b0546a633cf56654710721e0 \ + --hash=sha256:193375f3548919d3f0b60936ca113ada3e38f264f91b9b8e0508efaad57be931 \ + --hash=sha256:1a353f84de772f423b5ffb11d7ae352fbbef0f446f3c0b0af0f8236d7233606e \ + --hash=sha256:1e449def1945a462c464331254e5a44fca7c3b4f9aedf59ec2f50f8066dd8e25 \ + --hash=sha256:1e5aad1220a1192c42341c8fd4a8686657e73ab2a920c970bdc4de334fe3193d \ + --hash=sha256:200aa3dc9f8d54f0754f43247c0bad0999fdcfbfd2488384dd44f37279271fe6 \ + --hash=sha256:2471fd51c61c610e1dcf7de44d7299283661654d11264ab4802b303368d69c47 \ + --hash=sha256:24922243639cbdac66c75fcb6fd6495a9cb52b213d62f9a0d16f0310b1ff8038 \ + --hash=sha256:28a6a556cd3b6066bea827857f9d9cce027c96f776e512f544a581f9e42161f8 \ + --hash=sha256:2bc9419666990c06d7397831f2126a1ecc3594aaa3ff7de5bf2d066802f4e07b \ + --hash=sha256:2cbd9a5eff05e51c447c34dfa4632145b26b09120cf04bd0c871e44c1a5e1c9a \ + --hash=sha256:2d330aaba8621b1edcec8ae2c4050f63b84ccf6d98723a8f212e9684713abf0e \ + --hash=sha256:2d5d76654becf5efd62c9e51c3756c67b49498b0c9a40884934c40807adbd074 \ + --hash=sha256:337639ba62a11acde6ef3aeb08c8ea755f8ef1fe5e513356c0f36a2b0d7568b0 \ + --hash=sha256:347ec774390c87326a2e4929d58d3f7e8763a104d5d35f4cd595a4c952366433 \ + --hash=sha256:356c8368cbc321050b169595683a2e1d63413b1e0e2868b330af9fc14c616d3f \ + --hash=sha256:37ae34309d7bd8c0d61ab839668058f2a7962ea1fc51d105d2db228fe0618034 \ + --hash=sha256:37ea7b83c935e5b0d68c9449b82651accf78a10828b2c02b2f2d9e9496446c21 \ + --hash=sha256:3a3e26b6a8274211bddee2d0e4d0d42778f17a34510f49d2ec44b58abfc41736 \ + --hash=sha256:3aa166e99c4f2985407fb8714aebede877ecb5455cf321b606adca926d30d5a0 \ + --hash=sha256:3d2652072b2d774947ba5cf78a9e59644ac62ee572daf6dd2e1dfe905e15b2b7 \ + --hash=sha256:40375c2d05acec10323e45dfe2077ac44bc74659008614af5069034e2cfc781c \ + --hash=sha256:413a717a410d0c817ef5b786a059415550b3794e1d0c2abffd9efb93a3d9f7b4 \ + --hash=sha256:46c25dda9d092a06c08db76ffe0a197107904d0dfac653f7d5306bbcd6d6119c \ + --hash=sha256:49776eab08766a08dfff7012f8b422dcd7e25e43b316eedf0477c24fcfa84b7c \ + --hash=sha256:4d44cf99ddebf875f9b68cc267aa684c99b7b44fe63ee1cac4ec163807290069 \ + --hash=sha256:4dedce55295becb61921e386b99d4f2706045306e7fa52249a33004c837379fb \ + --hash=sha256:4f8507560a9284e1370bb048ed4282012fbef4e8d109875b95e884d228552061 \ + --hash=sha256:4fdc8b93a41521988916eeaa271173fcca7fa0803d62f87675aac8dcec1c8e29 \ + --hash=sha256:5086029a57366b8cf81b130a43908738095c270c21a8d7f0e8bdfdb89718e2f3 \ + --hash=sha256:52e24eacdb536cade636aa90fb851835222becff8484b7001fdc78cb0290f2aa \ + --hash=sha256:53feb344243bb9510a9dec7bf3cf1b64d88a98af5dc7872a5160465f8b198c8e \ + --hash=sha256:545f26c504b27c3758439a5e6d9349931f0a04f855668d5fe323c89e82300a38 \ + --hash=sha256:54d510bac3ee52247af28ed4bb18a1e799f040ac60fd2bf5ccd4c92f1fbe786f \ + --hash=sha256:5cb482e9e84c851f4e623fe4acc1ced89168cf1fe18f7089db4548c8f5bbb65b \ + --hash=sha256:5e81740c09e310f5aa5cbd3e434a01c154d4bef93241c7877b39f211d2b78ba8 \ + --hash=sha256:5ee239d575f80b08eca11f6e20f90c4c695de7825c67eefe6091fbf20dda648e \ + --hash=sha256:5f194189415698233dd1114a093a9b56e61e2c57e11b469be3b0506f46f0771c \ + --hash=sha256:5f93c5fe914d75fbec9a49209b00da5f08e9e467d69da2b1510c81940cfd10be \ + --hash=sha256:657b40d6240c0a7b6a64b30f22d1e3aa631c7e846c621b0c0f6d1d75e2e15ea6 \ + --hash=sha256:6d30e1a4f138b8951063e9a394752a9179b51da288ffa507b1e659222f4c1793 \ + --hash=sha256:6f7b393a8b3da82f5c1fc0751e6d01ac6c55b93c18226a60bdfba4a724efafd1 \ + --hash=sha256:701b2e04b560eeb4bddf7a25ab8ca476176e34fdbd9a0e18196f0d12d4685f0b \ + --hash=sha256:771cf63ae0b1b50dd22e5f3e3549fab5f3f4ff1635d352a9e1a97fe01c7b2e64 \ + --hash=sha256:79bdfa52f843137045b2d081cc05c120ba6665d29b7559c2c47690906f39279f \ + --hash=sha256:7ac031912d54f3d83ef3b3eb98dfabc1608802e2202263d25957eeed40b94761 \ + --hash=sha256:7b0fc826b16c55e561e5d2a0c5c77b051ba1d92808118c4e4b5390f5e0cf191d \ + --hash=sha256:7c6be839a5a8312626b32029a415644a0846b420bc8b52b95b28cd92da162168 \ + --hash=sha256:816ff0a6550ffc06c098ccd2e0698600f9aa7da192a79eaa6f9af504a35db869 \ + --hash=sha256:82a36973cf8a2ef5406f4fe2edbf8ed0c99629535d959e0b100c76a32535a111 \ + --hash=sha256:837b396ca3d7b74091ca623f6cbd8351bd42d670a79c2683e79fb089f06a2de5 \ + --hash=sha256:850a08d167dde16db8702c274f320c7be9d7da6f6dff2b58b18f9e815bd94f5b \ + --hash=sha256:8816f3d218beb4b787de5c9759c259b8fa61f9dec42dc7811f320a33771778b7 \ + --hash=sha256:892a881d5f68c2b9ea304b7a6c2c60d9343df578a311b0f86b94bc8f1ffe8129 \ + --hash=sha256:895395f8918627b04efb1ad2a4cf605387143300ba03304cd1dfa6d03f5e095e \ + --hash=sha256:8b10e3e8fd7ddc2bd915848a2768e44c15b22936f1cc54c462ad1164deb02655 \ + --hash=sha256:8e24d8f05fa2d28513d94e877e9c75ad66175376209b3977f916e240e623193c \ + --hash=sha256:8feeac04b5794e513e710af2f9c87d49f31a6dc47967bb264a1fed61a8989bec \ + --hash=sha256:9432f3598db432cb51c5b37fdbf29a60fcccc79e30d37a05022776a6bc4ab689 \ + --hash=sha256:976e1128455aa595ea04c79ccfedff1aaeab96ee013fcc916bed120c4f0ad94f \ + --hash=sha256:978e7b97d4824b5be09c69fb70507cbde3b0323fc147332ca40a94d9a6a0ebbf \ + --hash=sha256:97bf8de4d541598c94a59344eeb988a94c08ff76b5723c41f6567ec18c7892ea \ + --hash=sha256:97cf3eb53a8cccacf9d46686a0926186c9bfb5574f2ed66d3639d5fe117cd3a9 \ + --hash=sha256:9b68938dd5b0c783d88ff8e2dcc69451b5eb936fe212d516b21b9d5567f6d464 \ + --hash=sha256:9c4b71f10dd532fb7a5cbc8f58707779e64f03a258c2bf8bfbaecfcd9970b519 \ + --hash=sha256:9f47b8a949e60f027f0aa0a6f6c7b7e9c55cbf4380d10b344e282fa4e7ab1e1b \ + --hash=sha256:a1dee1b804ff4d11c663636cf15d2ea47e9f79cd56c033fb1cbf08924842a48f \ + --hash=sha256:a2468d93d181667a7abd66e1b64bb9f76f361b0fef8faddf687456453576f5ee \ + --hash=sha256:a2a5e1d0ff29adddc9f6d6821a66302e4493f8ca898b715b6b1182c2c201ea0a \ + --hash=sha256:a39ac25a9a2fa4072efdb429833c4a4c8009a51ff9eea3eeae131713cd27991e \ + --hash=sha256:a445486499897b88a7d6c310c88ed64dd37b1b59bfd7ae9107490bbb362f47d6 \ + --hash=sha256:a91c17edf6eea2402cb5457b4c89e99bc5ed1004aa34c4adf1d4258c1a5c22c2 \ + --hash=sha256:ab4b66edffb32d9e951efb3814bd104b8367a7501b81b955cacb5726d897389f \ + --hash=sha256:aca6c767f552b21b10f774aeac128e828eafb796adfa1b666a18bf6321453c3a \ + --hash=sha256:acf8a67ba51f4ca9ddbd0e6b3000a65ac51ab734661778b3e7ba64d99a710f2f \ + --hash=sha256:b10ec717381bdbfafef34607824db4c91de69ff085e4fca3b2af91b4fa17e68a \ + --hash=sha256:b49924c73a235e969511bf2aabdff3beebf9820931f646c80274d5d780010c47 \ + --hash=sha256:b6acfb46a814762367fb7ba0828b0a17d441b92ce249a0e007474c9072662dda \ + --hash=sha256:b7ca9034437b6022f941f4857459562ee00a560b97e7cce8a0ec5a74fc6766e0 \ + --hash=sha256:b98134087d9de723658d17a42c7d0da8d6e2ef08015dee7dc93889047315f5e4 \ + --hash=sha256:b9fe6fb92520e3fd61f2e49000b6911b188824f089b75973ea06d6267f0b476d \ + --hash=sha256:bce57638e08ac148e5778cce7feb968307a727d66f8e2274a543d0cf0c9ad6a3 \ + --hash=sha256:c14ad3bdc85ee7f318742c457ca3968a92126d144b15721c759033bfb06296c2 \ + --hash=sha256:c1c43ad4339643d70ebb8124e1305a7dab423001eff58bb41a0f731adbc98355 \ + --hash=sha256:c3471e5c4a949c26ec00a77f01df59096aa9495877de76fd60a980f8ee6be461 \ + --hash=sha256:c583b927a8838dab890706a6fa7573fbb8b70e24000ef9f7238e2d6f6435a5ed \ + --hash=sha256:c76fe65e607be28c7fd4d56fc3c42b1583aa058ce3408b7ad0fd540171d31f9f \ + --hash=sha256:c7ea57fc63aa7da93a1bd2d644e6577befae10c52c4e36377635eea1056a74f5 \ + --hash=sha256:cd5214352ae68f3b5e9af7768bdc5253695ee069675db3480518420b3be881f2 \ + --hash=sha256:cdbb78909f52b981d3b2d56b97328d71eb0b974c36bd77c920123a7ebb192829 \ + --hash=sha256:cdc8b74ecc48c0cb1e9607a05ec4e9e88db60a19ffcc9a1d5f9088ede40c8dc0 \ + --hash=sha256:d0a24b40877af2de4950252be9d21eaf7fb07660f3c2cae1f56c6b599ada5266 \ + --hash=sha256:d22a945598fb91236b4dd793a6e42e4f3dd7740bb5aace5ebd7d4c08d13bb575 \ + --hash=sha256:d2f9fc07a8042a8f95925b35c4f04f469707c981fc33245b6ca187cf5d2dd290 \ + --hash=sha256:d625a186a65201c23a9e3b8ed9c47e90a026e03256608cc91851c6709096844f \ + --hash=sha256:d925f3d9afd05a8c0fb3a1031463a8d59ebe5e2afad297e29c78be19e13b4e62 \ + --hash=sha256:e64e88d5585bea9ce95861079de72006c7fa6d3df4e3a3b65ba31eb979c15c9f \ + --hash=sha256:e652ab17569c94bff5475520f907b7148b8c24036a8ebbe5cf7cf7493d28579a \ + --hash=sha256:e7b891faeedeafba41b2983e5001a81b6a915b69544c7e7570d1989ce1c36ac7 \ + --hash=sha256:e80675d75ae2cd14372cb65cad5400d9347a3d3f6c13000183f22dfd027283ed \ + --hash=sha256:e9c134bb666dd54b778b9fc0d2b50cbb7f979b9e3716f26a88c9ab3b6fc1dd0f \ + --hash=sha256:eb7d8d0e5886a89a55d2eef490e272fa965a9d57c6b29a5b5088a7997ec2cad1 \ + --hash=sha256:ecb42011e12ee19cafbc312887cbf3546959fe02fbad44f272d4be5baa997615 \ + --hash=sha256:ef3fbbf161dc9351a2fe0422e51b129f9e97e42385bd0320b309c15f7d287dd8 \ + --hash=sha256:efd62a42486f1bda5d24cb4f63d15a3c7768375fe83d36f9417b4ad7a2fb20b3 \ + --hash=sha256:f077d0b97ab11fa7dcc633fca53515f290bca8a8a633e966d5b6d1879d9ed01a \ + --hash=sha256:f332f0e72a5a0400141f830744e141bf9f97917878dbe968669e8a7fefea78ff \ + --hash=sha256:f7b0ec93a2893de856652154d73b7ba622f26fa97726487dcac373de5f4c6084 \ + --hash=sha256:fa10ef4112775900e7a0661068635eb67b2ab824fbde764de6e0e21982a93db0 \ + --hash=sha256:fc5d783bd4a2387e97b8a2d5ec781cfb92b3d893bf82370548e99db5915935d3 \ + --hash=sha256:fc8515076c11f3cfdf4fb142dcca0fe384b1230a3b5415458ac84f3e0903ec13 \ + --hash=sha256:ff218293c9c806138dca139765e3b067621be52bcd93cdc14c7711be7ddc90a9 + # via pydantic +pyyaml==6.0.3 \ + --hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \ + --hash=sha256:0150219816b6a1fa26fb4699fb7daa9caf09eb1999f3b70fb6e786805e80375a \ + --hash=sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3 \ + --hash=sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956 \ + --hash=sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6 \ + --hash=sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c \ + --hash=sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65 \ + --hash=sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a \ + --hash=sha256:1ebe39cb5fc479422b83de611d14e2c0d3bb2a18bbcb01f229ab3cfbd8fee7a0 \ + --hash=sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b \ + --hash=sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1 \ + --hash=sha256:22ba7cfcad58ef3ecddc7ed1db3409af68d023b7f940da23c6c2a1890976eda6 \ + --hash=sha256:27c0abcb4a5dac13684a37f76e701e054692a9b2d3064b70f5e4eb54810553d7 \ + --hash=sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e \ + --hash=sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007 \ + --hash=sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310 \ + --hash=sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4 \ + --hash=sha256:3c5677e12444c15717b902a5798264fa7909e41153cdf9ef7ad571b704a63dd9 \ + --hash=sha256:3ff07ec89bae51176c0549bc4c63aa6202991da2d9a6129d7aef7f1407d3f295 \ + --hash=sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea \ + --hash=sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0 \ + --hash=sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e \ + --hash=sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac \ + --hash=sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9 \ + --hash=sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7 \ + --hash=sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35 \ + --hash=sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb \ + --hash=sha256:5cf4e27da7e3fbed4d6c3d8e797387aaad68102272f8f9752883bc32d61cb87b \ + --hash=sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69 \ + --hash=sha256:5ed875a24292240029e4483f9d4a4b8a1ae08843b9c54f43fcc11e404532a8a5 \ + --hash=sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b \ + --hash=sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c \ + --hash=sha256:6344df0d5755a2c9a276d4473ae6b90647e216ab4757f8426893b5dd2ac3f369 \ + --hash=sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd \ + --hash=sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824 \ + --hash=sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198 \ + --hash=sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065 \ + --hash=sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c \ + --hash=sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c \ + --hash=sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764 \ + --hash=sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196 \ + --hash=sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b \ + --hash=sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00 \ + --hash=sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac \ + --hash=sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8 \ + --hash=sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e \ + --hash=sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28 \ + --hash=sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3 \ + --hash=sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5 \ + --hash=sha256:9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4 \ + --hash=sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b \ + --hash=sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf \ + --hash=sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5 \ + --hash=sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702 \ + --hash=sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8 \ + --hash=sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788 \ + --hash=sha256:b865addae83924361678b652338317d1bd7e79b1f4596f96b96c77a5a34b34da \ + --hash=sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d \ + --hash=sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc \ + --hash=sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c \ + --hash=sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba \ + --hash=sha256:c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f \ + --hash=sha256:c3355370a2c156cffb25e876646f149d5d68f5e0a3ce86a5084dd0b64a994917 \ + --hash=sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5 \ + --hash=sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26 \ + --hash=sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f \ + --hash=sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b \ + --hash=sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be \ + --hash=sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c \ + --hash=sha256:efd7b85f94a6f21e4932043973a7ba2613b059c4a000551892ac9f1d11f5baf3 \ + --hash=sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6 \ + --hash=sha256:fa160448684b4e94d80416c0fa4aac48967a969efe22931448d853ada8baf926 \ + --hash=sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0 + # via -r requirements.txt +referencing==0.37.0 \ + --hash=sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231 \ + --hash=sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8 + # via + # agentrust-trace + # jsonschema + # jsonschema-specifications +regex==2026.9.29 \ + --hash=sha256:01000ddf0e3ffef97f2413ceb514f6313040106b6d18a03ee00a4fe35c1eb1db \ + --hash=sha256:0166844493626c5015c6088ee15c9ca2fd060ca15b7641d1657da6a58432ae33 \ + --hash=sha256:044265d77d94f5e3cb2fd72c76723807c429cb8c533e9d4672d0334a6f14f588 \ + --hash=sha256:0476e5bcbe6e1ba3d1c4cc7bbb1c3ba78e3b979b5c8a88d0a6a8cdd4992b8c84 \ + --hash=sha256:066d0e3dbfdd739bce2bf8c2a41dd16f73e3d8adc2eb06dd803a36a307f56075 \ + --hash=sha256:0b65c72739f981377c9c22e0c5c3cd7f42da7bd8a3c9209330fac772c7d893ed \ + --hash=sha256:0c992c19cd45058a4b92f68f139c93db168b48fb1f322c9a7cd620806afb6b51 \ + --hash=sha256:0cc63b5e47c12a48d90c7e9d7de6a035dd14f62868aaedbb4e0ff8ba2b8bfe7b \ + --hash=sha256:0dd8af32e9f7b56b7f95cc1fd79b23054c3bdc172392ae560acc24d57b7ffe71 \ + --hash=sha256:0def9fb6abac55492d6d51cddb7225d07d6f279e774e0adc08569a54a5fc8d46 \ + --hash=sha256:0fd2c901cc307a745ad4bc87f20060d7a0825a3371d1e93488af22e7a387f78f \ + --hash=sha256:1043aedf5917caa861bcb25a9c11460049656bdf0017a90a309fa8f255467725 \ + --hash=sha256:121a76a0985db80ceae9e171c337f8c927868e37d01b54e3ce87bc87f9c6a208 \ + --hash=sha256:143533cc4b6fbc5b95aca0a5b8d541088d374831593def000ec89322c220221d \ + --hash=sha256:14e953ff3607c92d7675bf79c4d4509ef6782aa8c08509f179f9b3d6d0679e86 \ + --hash=sha256:18ae8eed4526e35bdb754d61562b90bf5c00a67fdcf3cc1380dd59597486631b \ + --hash=sha256:19959129885356df0e97556856f77eb2888380dac18bed075a7c05c5128c618d \ + --hash=sha256:1ba8c6a416569ce0d37e83e28a254a61dc99a419084dfb6476cea02d997f74fa \ + --hash=sha256:1c2a0026062abcc321a53db4a185ceba0b59a66b5d37b0808917a88b55a5257f \ + --hash=sha256:1d9fe8091b2e89d470df68a9331111ed008ae8aae6bf1e8e1fba4086a495c84e \ + --hash=sha256:2089fe39c406784d90101c726755ffa1497bb74638fd434300d2b88006186de8 \ + --hash=sha256:23ae6fdad9e63e54038f5ef78aba2933faca61e24d432786589e737bc5522ebb \ + --hash=sha256:26ec4ccce55aa533fbd603d08911b01101a8fcfec987845ac3ae2c7087b2bde3 \ + --hash=sha256:2f7f7aa47b229f2b39a2ae2596d2ad5625d77b5eb9856fac2dab3eb506cdd0a0 \ + --hash=sha256:31b003f9a070335e2a8233ee9b14a3ca8e6d792012ae011f741bf0aaf11744c5 \ + --hash=sha256:32ab11df9677ca80bcbb5fe4eb1da9109a5019239a054836efc6fa1c64e683cf \ + --hash=sha256:33026515aebc0e70d1c89978e53e8d695d35d9e472f8d5b34465ba3c74028650 \ + --hash=sha256:34b6925af9853bf461950e6508910f179fd6e9b1a7ec8548e069606b7e51a26b \ + --hash=sha256:352cf115a810b357caa35193ab656ecf5ef41056855e82f292c99e8514f8d954 \ + --hash=sha256:39ab5894d971f9ac68baa6eca5c50387db579cfcacf36ae8df3feceb1815e6d0 \ + --hash=sha256:3a21a9509d0ee88e7a70e1ad228cd2f0e0fd1e187458db132e8a8d18c97daf9d \ + --hash=sha256:3c5c2ef13797466aa64170cbb66ad98a32351dd4127694cea7199f80f213750d \ + --hash=sha256:3e778bfccd63075167709136afbc251c1f683758d5bf49c803c60ac3f894ce6b \ + --hash=sha256:3f1e6cb402a89457582cd696f982559217d13484a193202c394015297968c86d \ + --hash=sha256:42e82e578c904445d4c8a35b8f28052cf567593215fa5db06266fbc6f77aaa2e \ + --hash=sha256:4408b2b27a95ca8cc48b7411945753773353b5c93b307754781086c99d3a576f \ + --hash=sha256:446654b29bfaa30500d80947eda42cef1449dc8a87f4e3cf061cc8485d3a1f0b \ + --hash=sha256:45010bcfe66df41522d56c9b6114e87ecc597a08970ff6a2ced24415c141ae5f \ + --hash=sha256:49ee178ca31c94621294bf9b8b676a92a2e6bba8af0529591753719e57edb621 \ + --hash=sha256:4d7d93613b01b0199961330e49cfc52d479b3d5776c56c691db31130c0a07d91 \ + --hash=sha256:4fb41211d2333eb930a51e0546a65999761cf1f572a4da56ef9b8a62966c06f2 \ + --hash=sha256:4fe97894d1b306c919b4e50def1e6f6c522f4d03a7283811f4d108f1ce5d3ac2 \ + --hash=sha256:554bffadcbcb6d5f4e5fb10a61cc52084b9a63d1dab5f10bcd2c4343972e8e2c \ + --hash=sha256:59b49507f47479e299a9e1bc41b5cb83a7afda0540625f1dbae886615978acbf \ + --hash=sha256:5eeb8edc6110d9194a4d0d54610f64c37a31c605b5dbb7e407fc6ec7fa34a4a1 \ + --hash=sha256:612b709381c0355b70d89cdb51b7f670591ed5cbbc0e3b5337488019dc667b65 \ + --hash=sha256:61956f074ecd123f55adca68ee3eab46e6a07ad3f8e64e6db95dfacb444f55c4 \ + --hash=sha256:6398d5145689503412cc1748895242598d8846b8967b851133b20dc2ed1e21e8 \ + --hash=sha256:65b408d8fcb273e3499e7ef2ce796810da1becd208c7fb4373692a242d79d461 \ + --hash=sha256:686ac5350fceae63830bb98805fcb8039325bf4c06d9f6f048ff65229d5bffa5 \ + --hash=sha256:6a1a824fbed817e0a891103886b68f063b1e83cc51bc97192a90a60195a9291f \ + --hash=sha256:6abb75ab16bc3281714a5b99548a2225db70dba1f995f6d7f7419b76eb5a8fbe \ + --hash=sha256:6f7121a8914ed13fcfe2099f895341bfb789f004d4c5a0bdece8fa667da10849 \ + --hash=sha256:7020ed44df30b3aa492c00ee3b52d0548c1f30c2c6c5bb13ae897680900d3413 \ + --hash=sha256:720537c7ea6f80dc61913184edb0ce2497a306b39ef19f28505b322553d52bdb \ + --hash=sha256:724184b4aafed865e4f13ca313fdcb43024300c028ec67319cfa16847d84685e \ + --hash=sha256:7c03031610e3e6ed1768a2b7a8fc84637c1257b50c5eacaf094c6e17a84fc563 \ + --hash=sha256:80a5ea3b4fd9d6a5b9a44f7976a9acaaab35aa3c1f6b29e5bd857dfabaded223 \ + --hash=sha256:80c7cadd3fd2bfde5df8aa0787e315812cad0c313a753095d02f4c2b6c01677b \ + --hash=sha256:80ea96f5c1a30bf09007d48466521d9c294bebe197c708c3359096e3e3691632 \ + --hash=sha256:864e9b87ac33c3fb9fb4ad48166d4fdb579c351d5c77deb0d34bccb36a775cd9 \ + --hash=sha256:87fb80cbe3557e27e7b28b995c2b2eedf689b8886f941ab93e0e288f0976518a \ + --hash=sha256:8873c4a11c50b9989168881aeb3f08859f469d809941866aa1feefd8be5431f6 \ + --hash=sha256:888d60953908dcf761aa320c3e390ab8556efbdb551ace63921de90f6ae0848d \ + --hash=sha256:8b5fcc4771732191b2b7d1dd68d8f0353f47f8d90b6150f6dce58bf1112442cb \ + --hash=sha256:8f39588af4731c8923c26810eb3b33f76f17633985e40f59c3cd45a33805a895 \ + --hash=sha256:9173db3be74a35cb6731701094b98120f7ee4876a287882a59cdea1fa7da342f \ + --hash=sha256:92f05c9c42bde5785dc48770bc2194d9f7442544156f951e19cd31b096cec562 \ + --hash=sha256:951733b1bbdb71e377cec567b409f1a7881b47cfcad84121aa74cb575fa425ea \ + --hash=sha256:957bb708e8057ab1649ba566456429d691ec9b90d1c9ad1af1ba7ffbbeaf05f2 \ + --hash=sha256:9916fda742cd4eede63b286f58c06718324265d727ce0856eb1aac86d0d150d6 \ + --hash=sha256:9e1d3a4cb7993b708f0ada8d0c84590efd853f169e7147d2202c9da503180242 \ + --hash=sha256:9e4482589065c8ecd761cff522dcd85f2d39e62f551e37e025d1c7d54772def3 \ + --hash=sha256:a5300757f8a68f5b6cc33f57338d72a0e3589c5cc9ad5f8504ea06f028be582a \ + --hash=sha256:a540abfab208e1b7ef2df231c40ef3b6cbb30a0aad6204e9b6a81c10a6794628 \ + --hash=sha256:a5758353650079898dc1b2b0e95aa51fa23a30d020e06f62c430dd08ee56cdd8 \ + --hash=sha256:a64b85a4760337cfefdb27d42da6ed8b58e8cde3f2d57b6ef43e76ef6ea9ef47 \ + --hash=sha256:a655d34b2a6943af32401f3d94f72e9d731f6ad16285815550bf2b4ee69d420a \ + --hash=sha256:a714befaacbd10092ffe4cea0d3c5f008fb9efe9bc322c715bcdfdee414b9a3d \ + --hash=sha256:a760da040b47767b4b873adfb7c3b691e9ba2fc60f113f9d0b88f1a62f323e85 \ + --hash=sha256:addd736a0547d553283adaf4e05d7104e7f2c7b0b092e9b4d28756825f14531f \ + --hash=sha256:ae4613d7d9dda60fcba95f846cc6f808017f1843f392cf9daad14a6534493d71 \ + --hash=sha256:b11b589e00095ec69cf79841a76360f9b079e95b0368a25b5ebb951ab0c157ff \ + --hash=sha256:b3e445b66c80b4eb4234e855ce94d9adc183eedbd632816228d89930b91b2c5b \ + --hash=sha256:b7b893976e7fe42053da64f2aa27239c24252fd2ec6df471e1be197c0addc3b1 \ + --hash=sha256:b84f186a7f0536fe4ff9a9fa12d06d007b9b71d4b5352ddcc41f59ad6522a312 \ + --hash=sha256:b89efc38431793d28b7cd91227e2f952ad7c48df19132b17f43a5fec3c14143b \ + --hash=sha256:b97a38fb4c732b6832db6bf108963adbcd82ef1268ba2025dce390f45af75efa \ + --hash=sha256:b9d74e4eee9ddb64c2e92d5d61472c59c21684c059eb7b68767be9628e977859 \ + --hash=sha256:bb90e7177944b6684738c1fc36aabd2dd00d1de3be7dbe09f91e196f1bc0dc81 \ + --hash=sha256:bec37990e3d6121f29ecfb594bd8f1bf009e9f7926daba2e50e3b27d3892a783 \ + --hash=sha256:bf3c49863c23a1ad6da9c30351aed6cff8d5ddbeb63c5c8420ae54e98c7d0138 \ + --hash=sha256:bf48516e35cf848390ea68850aba53e7c333720d2945b4d2c25b69fc5171723f \ + --hash=sha256:bfc71e6d970419c1309b3640305298643e2a734cad3f7cfb6d2ddee4175ab53d \ + --hash=sha256:c0094897d7d01f184b2d7fe8c56c66d64efe01b31f4b7d34205b391387df1111 \ + --hash=sha256:c03c6eb6ece86dfdcbb34799efaa339b093132e1aceed491ba5e08fe06cdf699 \ + --hash=sha256:c1a9a6651197fbed6f0212591418b9def774fc3f8324f78d1bf0e6a63e5f8aa1 \ + --hash=sha256:c3589f40749acce747510bf5d589d54e376cb0930ea58b35effac97e5312b0c1 \ + --hash=sha256:c4e38dd8f39c43a91d2410ad2b85610701b0979342c3df1d69eaf8e838c757d8 \ + --hash=sha256:c6c8fabf1dafc1f1ddcbb67896d3f93efb092e8c4b6322d7389b944e76a484e5 \ + --hash=sha256:c90fcf7804ea0a54b896ce0f2b9565350220b8d4890fd0db461a476a4c687963 \ + --hash=sha256:c9b602fae1e00b7c035d661ce85575365719192a7b46784bd71cf64c68053aa0 \ + --hash=sha256:ccb64d887a9db1cd76dbc0f92051a1a478a2a67e7f56c62d915cb881d7734704 \ + --hash=sha256:d06fcdecc10fc7954d7c8f27a03c96055fe525274dc84a7b0dbdc3d6b9e03dab \ + --hash=sha256:d0c3082bf79bcd6a614d55916590ad4b8f93200e10b97f463ea5d9d07c9b5f23 \ + --hash=sha256:d49c18f1ea294cf4adde2e5ac256e98c82ea9d708462ce4bf799dffa7cfe8a2c \ + --hash=sha256:d60030baaa7bfbb02d650c126cdcddcb6e33dbff14d819434c8fa2fdcaeeeba5 \ + --hash=sha256:d7cab119d0df0b9413f106b4d7fc34f2872d3574ed3806fb48959c830b1537da \ + --hash=sha256:d9b77b25b4f395f92de6099ab08e8ae2bc7e51dfe157f22900902243a5cc90c7 \ + --hash=sha256:dabee8f4935e731fb46b2a3091bdda0d3d94b3bbfb907d2b4f12eefce4009619 \ + --hash=sha256:db5e82ba15c142425b8406690032df89e39cca4a2e8afbbb9a3d84edc2373ac3 \ + --hash=sha256:dc79d36d0618752265f0d575915bdc5c5130ecb9c9f6b3bcefeae32e4bdfafcf \ + --hash=sha256:ddfa987262763c3c22a8367d2a49c244b018a74c3a8e3ab1a864119ad45c5633 \ + --hash=sha256:e1172147d28d8fbcf8cb8d26c41506169f5ad8fe9ec969cb116835a19d4d8eca \ + --hash=sha256:e11edba5bc344a32b029a7af9d4b3173982dd79eeafa0b9dbd787364414b0509 \ + --hash=sha256:e2c89e9b762c57f59d5e99ee8b20202adb892e35f8d3485741340999ca55058e \ + --hash=sha256:e31f72490b7c12f7790e1e25c3afffd20503ee1bfb43461d7838b871ff244b19 \ + --hash=sha256:e8c65ef3862a8ad6e86492b6ed9327805dd66904c012bd3649dc67d822ed6c34 \ + --hash=sha256:ebb8912f565b8cdbbf27debfe00df04202c20e2f651b9e32767930c5eace3621 \ + --hash=sha256:ed511a0708e2297e1d6431e7fb217e3402791e491e02da800658ace4973df1bb \ + --hash=sha256:edf06545875f3efa31560d94121e95c7fd70d98b1dfedc0157097d79b13b52ea \ + --hash=sha256:f0fe9834e5aeccaf19a0d8feb296d66a24be1a7c9922002f842a682cd5abb787 \ + --hash=sha256:f1a0d5117230dd46b399a30a38afa44f79c99f3168988fdc4f425c3f928b39df \ + --hash=sha256:f37964e4a5e993d2fd45147741e9dff7f34a2d8c00ab94c4ea0514a4677f959e \ + --hash=sha256:f57dc6b8fef170f105d2cf5cdce254f47b137d7755086cf7050f47e16582abba \ + --hash=sha256:f93bc1c3486ef3747e07c9d7c1d0a147b8fbaab975f80e348aed6f71309dfaca \ + --hash=sha256:fb00027a09a8f9f08028b40dce4c933cf73e4833240ed356583fdc9cfa721566 \ + --hash=sha256:fb99cc9d45f48895d9d67f6a0b8a57f08d39c174d9f25ad97a313e0470267b1c \ + --hash=sha256:fdd88ed5e20b1bcdd234421e454962c971aa44b653bdb7f1ea9ef683e90fb649 \ + --hash=sha256:fe3fa1dd453ed5c7f5ea23a26218329790ed7197a99b90e94330e313959a7f52 + # via parsimonious +rfc3986-validator==0.1.1 \ + --hash=sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9 \ + --hash=sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055 + # via agentrust-trace +rfc8785==0.1.4 \ + --hash=sha256:520d690b448ecf0703691c76e1a34a24ddcd4fc5bc41d589cb7c58ec651bcd48 \ + --hash=sha256:e545841329fe0eee4f6a3b44e7034343100c12b4ec566dc06ca9735681deb4da + # via agentrust-trace +rlp==5.0.0 \ + --hash=sha256:9525fb895d3a6540b7401eadd11c1b64740a5eccb82e543ac7e9735d319b0977 \ + --hash=sha256:ae8ac791160c160e270f9c7df76e68f4d42bb86a13726d807b9357c312d0bac4 + # via + # eth-account + # eth-rlp +rpds-py==2026.9.1 \ + --hash=sha256:00ba2d8c7dd4ee537978ddf4b3fbd712bef2d8751603f7f3146b3f4287768e25 \ + --hash=sha256:01445c8d194aa032a08e944f16567672da1c62dbdbefd8b6d0693032e290cf68 \ + --hash=sha256:028ad274ea951dac64491b5d1e65712a4aeabfdbdb9fccf797b57bd899b0c495 \ + --hash=sha256:0483515261947e4e8b8e1375bf7463e7eb6ccfb3d86e7b554d90cd5285f20f32 \ + --hash=sha256:068c37bba854ec2fe42f7365c640af11dd9895890ccbf2df5070d0c059bd7f96 \ + --hash=sha256:074a4d198bc34d9a8ea425114fc3ded6d11ec01f6a314a8db67454a5152d8834 \ + --hash=sha256:07deecbfce94c78473018bc7d10b337cc651d12df87a1eb2cb3e4024bc9c33d0 \ + --hash=sha256:08dae4a4095150a7c4545a1fb40b98e1ab1744fbc2770d92c977b9dadaa49ab6 \ + --hash=sha256:0da298fb372dc192610a4b9ecbc68a0cd8b675bbbd1fc519d01b41cfd658333e \ + --hash=sha256:0f045bb053c9057720d72c56dffe30dffdc05997b2897a827b9325f0ab6623fa \ + --hash=sha256:10e208f2425d973938afcd56e28a7c4be32e27b6a60b5d381f49fb9d8acf9759 \ + --hash=sha256:136a1c3fe4402b7008bc81cb62ee538481795b61a7e83df88dff3b3f02b726ff \ + --hash=sha256:159a7aab5c5e8b112c8830f54717ce56da1252ebdbb526f5be2df2309280b9e7 \ + --hash=sha256:172e47169583f46ce118cbec68e6795d0da0f4606b488b6434f8276bca0a058c \ + --hash=sha256:1c2d1f6da5128eabf34e963d7163a818846075a52568250d006c4c953b40f903 \ + --hash=sha256:1d55198263bb51f557550c6ed2e6d1cb6a6fed6eb5c9120b741c5926bef8a45d \ + --hash=sha256:1d77b649e6f7cdf12ca5c2a98dad0ad37f9ea9b6f960408a92f0cb12bb3d04d9 \ + --hash=sha256:1e8d4d79d828299bf44a55db22a9388ab967b49d17132c88eab0f4360b48da8e \ + --hash=sha256:22ffd29a63d71fb1b81552c21f2c2b734949b7ac751a9be70675a939a900839b \ + --hash=sha256:2693b2728bbcc48d09a981a356954b0c47c53ff25b545856f28a889ea619f69a \ + --hash=sha256:270bdcdaac5d5b6f73c5e22e7e135c7f2a50e789f71d9e241d5be8d90026e19a \ + --hash=sha256:2711d29b653b3bce48a63d18b9c6b53274669e6d6c4094dddeb4d9a0e45128b2 \ + --hash=sha256:2c16ab111bc27c646ba8aa005d0527754edc538ebb636f0b1bf8e244b48d1945 \ + --hash=sha256:306ee1850d8105b5baf977e78d45fcadd12c1a54678d614c9baf217708446e91 \ + --hash=sha256:3231c4c0e521dafa5be0c9f114ee2c2ad46650836f2d72caa86801950c3e7044 \ + --hash=sha256:3890a6aa36e6baa53d5258a2a25d3ef8b37ad165a6ab27a892d7c3e3a432cd69 \ + --hash=sha256:3a72c11530d71abfb66c8d7696a2f86c43e63fca8b948f1a784ac490f4ec688e \ + --hash=sha256:3b5a6f40f0a1486b4b36c888123afc67acdbd9f33235927acf5ff295429a0ba3 \ + --hash=sha256:3c91c210ae7645626c608400e3519b4a642f837cce09ca830db3beb2e9f274d4 \ + --hash=sha256:3cd182d7291d29b92c521a0069d9c01ba6193628a9a105531d11b40a6d731a33 \ + --hash=sha256:3e524c7874ac72884d28e16dd5b8d839fd09e0fe76b020d3fbca23212a7b8c52 \ + --hash=sha256:3e93b2cd69a9830be33e03945cd7cda940a0a8bfcfbff41d6144f0cb0d3d8bd9 \ + --hash=sha256:3edae8c5ddfdb6985d49ae9d150516e5076888879022f91a26c2de9276ce0bdb \ + --hash=sha256:3f0e9ac28fc067d4d34b88ae43c48e9489455c97fee9633d851f7eeed5a05d35 \ + --hash=sha256:42e75466f83cd43f6026c81eab74246efb2bdadafb307b85700632d06c68f299 \ + --hash=sha256:44b32a7c4f0da3d28af31c259e38ddcff096f855e205ed0671d02fcf44f1ea1c \ + --hash=sha256:457866b85daf5034296666168b84a69e0b2e89dc4f1af102b46f6448a60b9063 \ + --hash=sha256:45bc6bccf78b20fd834237d18db64965d7ee68ba7f60440a26c7ab71e7b8d51a \ + --hash=sha256:46d80bc76b51a6c24f9944368c28d38b8bcbcea1da4f2f8d3ebc31a67e8c6ec6 \ + --hash=sha256:4793ef7f78268b124b73fa933440f01d258bbae01de9fa53e9080c9ab0425a12 \ + --hash=sha256:492e5e428cbe126221611f47e068f01660352feec4ad18bc0f5ea9b2ae88fb14 \ + --hash=sha256:4b26b03d9d2658ee2fa234f8f4f19f38a09773fe5261028025032e26d4d35af0 \ + --hash=sha256:4c0d2cb595a420b34d5086db0add011e26e2c09d6a024afbac4228bf8f863a30 \ + --hash=sha256:4cfaf02209061880210819934de2f4f6aa83dc04dafe6770276acc240a56da31 \ + --hash=sha256:501909f2e4a1e2dee528ef766fe3c469060ebc17e54a8383d404ba07a81a6f02 \ + --hash=sha256:50906f5aea24b5a865cbd0a589698288631d9f3a54c3a937c83aefa95a0d14af \ + --hash=sha256:54ac2158a6f96cfbabff0b2eedaf94b90c5ec7ca8317fcadc61e1c2b2e0ff6ef \ + --hash=sha256:56c6952a9b15047466d0c2347c446a761d4527f89976156341e68f0ce5cc08b0 \ + --hash=sha256:56cd8b3f77d7b6812f533b662186a1f28316931166ddc00fb893b1b0db7e9888 \ + --hash=sha256:57492a550a1d88d29d003247e5f78dd8cf04a701fac0e4c8db8745a6d2504e0a \ + --hash=sha256:5943980471829f6de242a20b109de3111ba6b77e3af0ffc587028ac854b05e6c \ + --hash=sha256:5c6ee90dee3e85e055ddfd502d611643d9b0fd94c818220bda84ec3dacd9b27b \ + --hash=sha256:5c90e7fa02e8f5de0d10c17595c568ada48c5302e749462c0ea1a4c362111a86 \ + --hash=sha256:5ce8943f79c2210f7abcc28e86367b03b28d95027fd01c46d2472373ae70c86f \ + --hash=sha256:617f59cde379b4f648a09797b7f683d04b90a46344cddab85639da5aff0f5531 \ + --hash=sha256:6307a0da524939decb8ca4a3933b8ab62525794411d6984fca6726e732804af6 \ + --hash=sha256:684fd492fff4fead00587544e059be2bbcb6f93454f21fa2a91b66fc7508be82 \ + --hash=sha256:6b5b393eda5ea42cca1c1a6665f2a4882b4fd5d1777e41ce0545a107fb008c9d \ + --hash=sha256:6b723eb406dec5bc9ec516c73ab9c3239a3284e017f7eb89ee2b3258bd504fb7 \ + --hash=sha256:6b9bf3135b4ad5981df9a73d71a35272d650a2985ae9c2746357b24d59de2448 \ + --hash=sha256:6beb738155fe8ab8091afdfa5a3226b21c2b1593f1e50ebb90eb25b44dbc0391 \ + --hash=sha256:6c0dbbcc19735fe5f8b0a54c07659d154a9e69f47e15d0a6ab7299215daf62cb \ + --hash=sha256:6cdc537c8633d7fd92a82e2e0d2ab74320a3f63d5e59fb9cf08711e08fe151c4 \ + --hash=sha256:6eae33003518fd4cb4f83a218d5371469dd3001aa3b87128c005b07762f7fe5e \ + --hash=sha256:740d0a99cf9de0b17a3943388e9294a59becf75e7c43421f387bd3c7a9901f7c \ + --hash=sha256:75c38c50ab9aca840225d9a9a3810bf11d04bd5c1f186cabbb8aee56db3e9b15 \ + --hash=sha256:761fdae6728ceb99ab182fad2f0cc1e262f610834dc891aea1d1a2a2e634776f \ + --hash=sha256:7664419f27db41d4f1c43a78dccda7dd6e8ef2428df3ee01d0c2a07a6b071297 \ + --hash=sha256:76d3af9732d2dab69f28179b40ba2d87e2f1d5824b4a694780aa787d685e8f36 \ + --hash=sha256:78326f4cb4427a56ba4996c0762b63be45f06b85f086526420d2b3a66e40f84d \ + --hash=sha256:7868b85224291c6cb6759f9b5adb9745f486d226f62b16a614dd5a2a5ab2b35b \ + --hash=sha256:815d26356930846a40c7bc1366e7b1b0320ab8a063e66c11298a208bed0fd237 \ + --hash=sha256:8171b44a054e5c67fd748ada04187f1250bf35b95f85e52ab64bcf3331a923bb \ + --hash=sha256:821b2755db9194409254012f429c56643416fb96ef9be090be82ec8826b7f477 \ + --hash=sha256:837c6b305e26fe0f75b15c92cf3b2ba29e0ae19dc40b1c557b026cb426347d0c \ + --hash=sha256:839dde845559254f34885267c6878f60d61d5205180226d976fe488d45fa128e \ + --hash=sha256:84a6ecc0c940169190d2c23bd969debd48c94dbc855acd60188a68d71d421608 \ + --hash=sha256:8601470267d938bcb7f3ab1a336100af51a4fd5b6ed030ef52461bb3ef5e7e07 \ + --hash=sha256:88b5268892fde430d5531f95bc560b6efbbd67c929662c586afd729a96e7461c \ + --hash=sha256:8aa5dda18d39b6143eb24809d158f9252c88f402749b6f1b62a506cc7d96cc35 \ + --hash=sha256:926bdd3e3b5998ddf70cc64bc8cf57209571f9044542913afb673799fec77dd0 \ + --hash=sha256:96beca19ec79de272e8668585380ff9092c47077c1d7a1e098e00bbd921f4785 \ + --hash=sha256:9a0460d43603d1fd9ef59c30278531e15d78581721ddb538fa560aa7817ea4ad \ + --hash=sha256:a03d57b86d2a51d0a66c92177e2be154ad015f357791d306e714569999cdb4cc \ + --hash=sha256:a36b70596407634ca82d4b989a3729074a008537a0522e4c8046a67c729103e9 \ + --hash=sha256:a3a52a3ba86436ab3aef510fbe21512abc2ddd1993005dfe50514bd2284ef025 \ + --hash=sha256:a3dbc5ed9514908d5046107d7b1346bde71eea61de6e0e4919c19354f97e769f \ + --hash=sha256:a431156bb41865fc14cd5d79bb9d7bbed83110b0159e34e62ae30951f96c0009 \ + --hash=sha256:a575404ebc9cf2e91edd32eaf570ec1430eb900d4f56724ba7dd4bc1fc9c176d \ + --hash=sha256:a5cf77eb04f20b720be95265a3e00eb2a14814074255cc27069c551b2db53118 \ + --hash=sha256:a8763f20692da7df39b0afdd1ba3042b004c50a45994f76c2d9a25641f7673db \ + --hash=sha256:ab4b2fda7c2b542f7f9d886cc6a838c5079d2b76f72e6081411faba11adde2c9 \ + --hash=sha256:addeda51556dac7c1a2f14cda62db8b621cd12afba3091d03a96c72932387eab \ + --hash=sha256:b242c27c8f836305a4a72df9cdd564386ac57b807bd252a063223331c9316b37 \ + --hash=sha256:b4f062343e7ad3fa94f2c66e5ae667dee47ee74dd41a9057c4fbe163236a123d \ + --hash=sha256:b5b8b0753718d258fd454283fbd57e14545d3b40583fa672e27cb4f987626bcc \ + --hash=sha256:be3e47e2d91aa3942ff9bf4077a505226005abfc39b6f7554a91c1b9393986b9 \ + --hash=sha256:befc2d6a953e563f8a7bfd87a42c22ebf8a3e980dcb7b6a4d17b70b0e914e8a3 \ + --hash=sha256:bf35d0568abda97233239ce32896d3ad53fccc537832c104e30c94aa5fb93569 \ + --hash=sha256:c933c6678c6f116ff8af47a4c6db0868b8ace74af0343016c0ef00f00272ea69 \ + --hash=sha256:c9d1aca01f49170fdcf5c92761b1fafe97f554b721ca4570c5949fff778f0d4b \ + --hash=sha256:cdeaa99ce822dca76cfb1b993e9120c5ea212f2eb66d48950ad63c349668a018 \ + --hash=sha256:ce4d4f52e2a4324396caddbd45a97d8d7be5f42edd25d2355282a9c34f9b2f7f \ + --hash=sha256:d1028417bb44037eb3069c1009bd7b7277212876cda22fbe565b0bca9fab6d2c \ + --hash=sha256:d151e148117294133bf8af7eeace085e7e87432db15ab6adf640330298a47f6f \ + --hash=sha256:d7841166b7fa64c9c56404617ae4341448847482d45933b13135d26c130519e5 \ + --hash=sha256:d7fca4eb6df565e2a928f1c7dad92d27db8f9df0f449e76423ed5d7e713ed445 \ + --hash=sha256:d95a354e02393eada6d7351184671aced9d4cce109dabf927cb7aa99624352a1 \ + --hash=sha256:d9edf30457d74eebfd76b045535e36f1cd89062566a128a0db2145ca042d787e \ + --hash=sha256:dbc2673f9223d420c91145599b3ba45a8a50c207d1976908e5fb5ddb0c9b9429 \ + --hash=sha256:e01b3c878c8641913e688edd1b3f08658c6783d29cf6b826bd3c0d1ae7a1ffaa \ + --hash=sha256:e21c1429e205828ea886a2293a4a2c8e01f4c25d9893ca330e97a6cf73f52e7b \ + --hash=sha256:e43d4a1f673e8a1cbd8533e809e02b4bf9d4f2280269bb640436556312121250 \ + --hash=sha256:e6d198bad4e49dd6732fbd636e2fc5c082f45c8cad0b4acb756b00c82c76072e \ + --hash=sha256:e6ea1cda8d8c688278430e4268a42f5e5da3bdd74578dfadc0820c3f1766ce83 \ + --hash=sha256:ea394a937f17a54c51239348bdbe2e3518124c8d4a8951ba04a311d3095bd18f \ + --hash=sha256:eac2f5dbafd585dfe31f86a23ebf0d3ba480a9d49ebc87947267b5608d4ea0cd \ + --hash=sha256:eb61be926bb81567c1f48bdc8aa22b9855048dc2efd53871f9f7e6e9a5632346 \ + --hash=sha256:eba5d173f7d5708b22a93815017a4611873ed54db9f268077c0dd1ed99cfc858 \ + --hash=sha256:ec450527cbf485e13c8d3602a54f428ab0432fdade0ede75efd74b735421c871 \ + --hash=sha256:eef6a03b0b6d08d0835ccfa8ec8d1bc70525e3801387567137b50c557695e6da \ + --hash=sha256:ef0d8c843e2827d6c120ab4687e9423fb1d893db1df27b7c1506615bcb9734a0 \ + --hash=sha256:ef6b65b03247c54692ad4fd9ee97cb772781927db72e3cb05e70b3db6d1ff14f \ + --hash=sha256:f3d6ed6a98cfd19155996605474982cc470d7601746a6439078f1a5a3fa8b050 \ + --hash=sha256:fce4b85234a0cbad67bf8e6e1201ee815d172c9aebad75f25645bc4d834f8e31 \ + --hash=sha256:fda1d96e542c37b6c804547dbf489c129fe7c97183a76a5ec275909ba1a063df \ + --hash=sha256:fdcd198979b4ecffcc1beba366a7fbcf4eb41243691a82fe52ceb0b902f09c12 \ + --hash=sha256:fe5ad0664ec772b02c45859041aa17655709cced7a31005817fbbbd988c25567 + # via + # jsonschema + # referencing +toolz==1.2.0 \ + --hash=sha256:890f820b1cb8152785aaf9386d8707770110809035800985ca65cb24ce1120ef \ + --hash=sha256:9667a038e9d6ecba37995e26cb2f59ec6420b6ad8dd9677de59db9b956b08490 + # via cytoolz +typing-extensions==4.16.0 \ + --hash=sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8 \ + --hash=sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5 + # via + # eth-typing + # pydantic + # pydantic-core + # referencing + # typing-inspection +typing-inspection==0.4.4 \ + --hash=sha256:547274fa6b0a561ccf549cc9524b999a578e737d015d8709d021f9d0d13bea47 \ + --hash=sha256:65b8397ba37ccbce054456aaccddfc91e6e3083c92824df348d96ca832f3f147 + # via pydantic diff --git a/integrations/alakris-authority-comparison/requirements.txt b/integrations/alakris-authority-comparison/requirements.txt new file mode 100644 index 0000000..afa666c --- /dev/null +++ b/integrations/alakris-authority-comparison/requirements.txt @@ -0,0 +1,5 @@ +agentrust-trace==0.11.0 +PyYAML==6.0.3 +jsonschema==4.26.0 +packaging==26.3 +eth-account==0.14.0 diff --git a/integrations/alakris-authority-comparison/results/mintid-author-local.json b/integrations/alakris-authority-comparison/results/mintid-author-local.json new file mode 100644 index 0000000..09294ce --- /dev/null +++ b/integrations/alakris-authority-comparison/results/mintid-author-local.json @@ -0,0 +1,1342 @@ +{ + "implementation": "MintID", + "run_id": "revocation-trace-local-20261005T094532Z", + "integrity": "PASS", + "evidence_custody": { + "producer": "MintID author/operator", + "public_artifact": "operator trace and summary", + "appraiser": "Alakris evidence runner", + "independent_target_observer": false + }, + "record_revision": { + "revision": "fda00c06c34189637fc1aad5ba5f44bbdb9879c0", + "public_tags": [ + "public-v2026-10-05.5" + ], + "tracked_changes": false, + "services_revision_stated": "fda00c06c341" + }, + "deployment": { + "target": "local", + "chain_id": "mintid-anchor-local", + "issuer_id": "860bc22e30e395a8d212ba40b242977113d4cf9a4466c766d9f8be270a8a606f", + "verifier_id": "fe70f0d05c0ca3c586279dcddccfbde1f6c23bc7b3913645802e1271ef759acb", + "kyc_provider": "simulated", + "endpoints": { + "issuer_url": "http://127.0.0.1:8472", + "verifier_url": "http://127.0.0.1:8471", + "rpc": "http://127.0.0.1:26657", + "relay": "http://127.0.0.1:8479" + }, + "build": { + "issuer_revision": "bc172b91b6295b73", + "verifier": { + "engine_pin": "proof-core 0.4.0", + "sdk_version": "0.2.0", + "spec_revision": "SPEC-1 v3.2", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "conformance_suite_version": "1.0.0" + } + }, + "parameters": { + "A": 180, + "H": 30, + "K": 5, + "G": 60, + "cascade_spread_beats": 8 + }, + "max_root_age_seconds": 180, + "heartbeat_seconds": 30, + "max_height_lag": 100 + }, + "checks": [ + { + "file": "revocation-trace-local-20261005T094532Z.jsonl", + "expected": "06b5f1e88b39890dc62bacb8ce5c1234c69b942a909bdcc4993ba1073789a0b7", + "actual": "06b5f1e88b39890dc62bacb8ce5c1234c69b942a909bdcc4993ba1073789a0b7", + "match": true + }, + { + "file": "revocation-trace-local-20261005T094532Z.md", + "expected": "849acd8efa87931f5f68ea5e7e8ed2967acea711d57aff5b9fefaa587bc1e18f", + "actual": "849acd8efa87931f5f68ea5e7e8ed2967acea711d57aff5b9fefaa587bc1e18f", + "match": true + } + ], + "cases": [ + { + "case_id": "binding_veto", + "basis": "author_record", + "independent_live_reproduction": false, + "fields": { + "dispatch": { + "state": "not_applicable", + "value": null, + "reason": "MintID has no executor" + }, + "committed_effect": { + "state": "not_applicable", + "value": null, + "reason": "relying-party boundary" + }, + "task_outcome": { + "state": "not_applicable", + "value": null, + "reason": "relying-party task outcome is outside MintID" + }, + "receipt": { + "state": "not_emitted", + "value": null, + "reason": "not present in the public adapter input" + }, + "receipt_signature_verification": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "policy_digest": { + "state": "measured", + "value": "bf1b0c281001d1c998d4d54ec33d260f1cb0734b7cd0a99836bd2d42853f9323", + "reason": null + }, + "authority": { + "state": "measured", + "value": [ + { + "claim": "human_backed", + "value": true + }, + { + "claim": "pairwise_pseudonym", + "value": "fe70f0d05c0ca3c586279dcddccfbde1f6c23bc7b3913645802e1271ef759acb" + }, + { + "claim": "assurance_grade", + "operator": ">=", + "value": "A2" + }, + { + "claim": "counterparty_includes", + "value": "eip155:8453:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + { + "claim": "delegated_scope_includes", + "value": "payments.initiate" + }, + { + "claim": "category_in", + "value": "mcc:5812" + }, + { + "claim": "geo_in", + "value": "iso3166-1:ES" + }, + { + "claim": "transaction_limit", + "operator": ">=", + "value": "5000000 USDC" + }, + { + "claim": "key_custody_class", + "operator": ">=", + "value": "tpm" + }, + { + "claim": "unexpired", + "value": true + }, + { + "claim": "credential_active", + "value": true + } + ], + "reason": null + }, + "full_delegated_scope": { + "state": "not_emitted", + "value": null, + "reason": "privacy-preserving predicate disclosure" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "decision": { + "state": "not_emitted", + "value": null, + "reason": "no published observation for this case in this record" + }, + "evidence_identity": { + "state": "not_emitted", + "value": null, + "reason": "not present in the public adapter input" + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "root_age_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + }, + { + "case_id": "revoked_stale", + "basis": "author_record", + "independent_live_reproduction": false, + "fields": { + "dispatch": { + "state": "not_applicable", + "value": null, + "reason": "MintID has no executor" + }, + "committed_effect": { + "state": "not_applicable", + "value": null, + "reason": "relying-party boundary" + }, + "task_outcome": { + "state": "not_applicable", + "value": null, + "reason": "relying-party task outcome is outside MintID" + }, + "receipt": { + "state": "not_emitted", + "value": null, + "reason": "not present in the public adapter input" + }, + "receipt_signature_verification": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "policy_digest": { + "state": "measured", + "value": "bf1b0c281001d1c998d4d54ec33d260f1cb0734b7cd0a99836bd2d42853f9323", + "reason": null + }, + "authority": { + "state": "measured", + "value": [ + { + "claim": "human_backed", + "value": true + }, + { + "claim": "pairwise_pseudonym", + "value": "fe70f0d05c0ca3c586279dcddccfbde1f6c23bc7b3913645802e1271ef759acb" + }, + { + "claim": "assurance_grade", + "operator": ">=", + "value": "A2" + }, + { + "claim": "counterparty_includes", + "value": "eip155:8453:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + { + "claim": "delegated_scope_includes", + "value": "payments.initiate" + }, + { + "claim": "category_in", + "value": "mcc:5812" + }, + { + "claim": "geo_in", + "value": "iso3166-1:ES" + }, + { + "claim": "transaction_limit", + "operator": ">=", + "value": "5000000 USDC" + }, + { + "claim": "key_custody_class", + "operator": ">=", + "value": "tpm" + }, + { + "claim": "unexpired", + "value": true + }, + { + "claim": "credential_active", + "value": true + } + ], + "reason": null + }, + "full_delegated_scope": { + "state": "not_emitted", + "value": null, + "reason": "privacy-preserving predicate disclosure" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "decision": { + "state": "measured", + "value": [ + { + "path": "issuer", + "t0_unix": 1791193554.810805, + "t0_definition": "the issuer's removal of the agent (revoke response)", + "bound_seconds": 185, + "bound_formula": "t0 + A + K", + "last_accepted": { + "utc": "2026-10-05T09:46:23.179Z", + "seconds_after_t0": 28.4, + "session_id": "cc21ec5d9e356e42e0b8001a37053733", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 107561, + "decision_log": { + "condition": 9, + "root_epoch": 7233, + "root_height": 107546, + "root_age_seconds": 34 + } + }, + "first_refused": { + "utc": "2026-10-05T09:46:26.309Z", + "seconds_after_t0": 31.5, + "session_id": "706b1cb30bed3ef32045cefa6c16822d", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 107563, + "decision_log": { + "condition": 5, + "root_epoch": 7234, + "root_height": 107561, + "root_age_seconds": 7 + } + }, + "root_at_denial": { + "status_epoch": 7234, + "finalized_height": 107561, + "generated_at_unix": 1791193579, + "finalized_at_utc": null, + "emergency": false + }, + "root_carrying_revocation": { + "status_epoch": 7234, + "finalized_height": 107561, + "generated_at_unix": 1791193579, + "finalized_at_utc": "2026-10-05T09:46:19.248Z", + "emergency": false + }, + "refresh_refused_seconds_after_t0": 0.9, + "control_never_revoked": { + "last_accepted": { + "utc": "2026-10-05T09:46:22.289Z", + "seconds_after_t0": 27.5, + "session_id": "d1146c1001b983765f9169359a0611ab", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 107561, + "decision_log": { + "condition": 9, + "root_epoch": 7233, + "root_height": 107546, + "root_age_seconds": 33 + } + }, + "first_refused": { + "utc": "2026-10-05T09:46:25.509Z", + "seconds_after_t0": 30.7, + "session_id": "78dc83f64f81a29d631607aa153be56f", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 107563, + "decision_log": { + "condition": 5, + "root_epoch": 7234, + "root_height": 107561, + "root_age_seconds": 6 + } + }, + "after_refresh": { + "utc": "2026-10-05T09:46:29.557Z", + "seconds_after_t0": 34.7, + "session_id": "7187b00fe04137fc06fa8cd17ca3cca2", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 107565, + "decision_log": { + "condition": 9, + "root_epoch": 7234, + "root_height": 107561, + "root_age_seconds": 10 + } + } + }, + "attribution": { + "revoked": { + "agent": "agent_issuer", + "refresh": { + "observation": "refused", + "outcome": "credential_revoked", + "utc": "2026-10-05T09:45:55.734Z", + "seconds_after_t0": 0.9 + } + }, + "control": { + "agent": "sibling_control", + "refused": { + "utc": "2026-10-05T09:46:25.509Z", + "seconds_after_t0": 30.7, + "session_id": "78dc83f64f81a29d631607aa153be56f", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 107563, + "decision_log": { + "condition": 5, + "root_epoch": 7234, + "root_height": 107561, + "root_age_seconds": 6 + } + }, + "refresh": { + "observation": "not_recorded", + "outcome": null, + "utc": null, + "seconds_after_t0": null + }, + "after_refresh": { + "utc": "2026-10-05T09:46:29.557Z", + "seconds_after_t0": 34.7, + "session_id": "7187b00fe04137fc06fa8cd17ca3cca2", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 107565, + "decision_log": { + "condition": 9, + "root_epoch": 7234, + "root_height": 107561, + "root_age_seconds": 10 + } + } + } + } + }, + { + "path": "kill_switch", + "t0_unix": 1791193595.354082, + "t0_definition": "the recording of the nullifier on chain (block time of the relay's tx)", + "bound_seconds": 245, + "bound_formula": "t0 + G + A + K", + "last_accepted": { + "utc": "2026-10-05T09:46:51.219Z", + "seconds_after_t0": 15.9, + "session_id": "6dfdfb8418c7441ed2c5dc4cad119195", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 107575, + "decision_log": { + "condition": 9, + "root_epoch": 7234, + "root_height": 107561, + "root_age_seconds": 32 + } + }, + "first_refused": { + "utc": "2026-10-05T09:46:53.570Z", + "seconds_after_t0": 18.2, + "session_id": "17eaf301171f7159c8a4c7e91c61be19", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 107577, + "decision_log": { + "condition": 5, + "root_epoch": 7235, + "root_height": 107576, + "root_age_seconds": 4 + } + }, + "root_at_denial": { + "status_epoch": 7235, + "finalized_height": 107576, + "generated_at_unix": 1791193609, + "finalized_at_utc": null, + "emergency": false + }, + "root_carrying_revocation": { + "status_epoch": 7235, + "finalized_height": 107576, + "generated_at_unix": 1791193609, + "finalized_at_utc": "2026-10-05T09:46:49.477Z", + "emergency": false + }, + "refresh_refused_seconds_after_t0": 14.9, + "attribution": { + "revoked": { + "agent": "agent_kill_switch", + "refresh": { + "observation": "refused", + "outcome": "credential_revoked", + "utc": "2026-10-05T09:46:50.287Z", + "seconds_after_t0": 14.9 + } + }, + "control": null + } + }, + { + "path": "cascade", + "agent": "cascade_agent_1", + "t0_unix": 1791193639, + "t0_definition": "generation of the trigger root (the root carrying the principal's revocation)", + "bound_seconds": 395, + "bound_formula": "t_T + 7\u00b7H + A + K", + "last_accepted": { + "utc": "2026-10-05T09:47:48.638Z", + "seconds_after_t0": 29.6, + "session_id": "0b578e806872637918a3b0f3736de753", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 107604, + "decision_log": { + "condition": 9, + "root_epoch": 7236, + "root_height": 107591, + "root_age_seconds": 29 + } + }, + "first_refused": { + "utc": "2026-10-05T09:47:52.455Z", + "seconds_after_t0": 33.5, + "session_id": "987db88ae833085635d7c5ceb5db4c95", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 107606, + "decision_log": { + "condition": 5, + "root_epoch": 7237, + "root_height": 107605, + "root_age_seconds": 3 + } + }, + "root_at_denial": { + "status_epoch": 7237, + "finalized_height": 107605, + "generated_at_unix": 1791193669, + "finalized_at_utc": null, + "emergency": false + }, + "root_carrying_revocation": { + "status_epoch": 7236, + "finalized_height": 107591, + "generated_at_unix": 1791193639, + "finalized_at_utc": "2026-10-05T09:47:19.780Z", + "emergency": false + }, + "refresh_refused_seconds_after_t0": null, + "attribution": { + "revoked": { + "agent": "cascade_agent_1", + "refresh": { + "observation": "not_recorded", + "outcome": null, + "utc": null, + "seconds_after_t0": null + } + }, + "control": null + } + }, + { + "path": "cascade", + "agent": "cascade_agent_2", + "t0_unix": 1791193639, + "t0_definition": "generation of the trigger root (the root carrying the principal's revocation)", + "bound_seconds": 395, + "bound_formula": "t_T + 7\u00b7H + A + K", + "last_accepted": { + "utc": "2026-10-05T09:48:50.423Z", + "seconds_after_t0": 91.4, + "session_id": "81604606da730913ba0ae43944df4ce2", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 107634, + "decision_log": { + "condition": 9, + "root_epoch": 7238, + "root_height": 107620, + "root_age_seconds": 31 + } + }, + "first_refused": { + "utc": "2026-10-05T09:48:53.297Z", + "seconds_after_t0": 94.3, + "session_id": "380f75688aa7bc8443eab86ebfbe2dc5", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 107636, + "decision_log": { + "condition": 5, + "root_epoch": 7239, + "root_height": 107635, + "root_age_seconds": 4 + } + }, + "root_at_denial": { + "status_epoch": 7239, + "finalized_height": 107635, + "generated_at_unix": 1791193729, + "finalized_at_utc": null, + "emergency": false + }, + "root_carrying_revocation": { + "status_epoch": 7236, + "finalized_height": 107591, + "generated_at_unix": 1791193639, + "finalized_at_utc": "2026-10-05T09:47:19.780Z", + "emergency": false + }, + "refresh_refused_seconds_after_t0": null, + "attribution": { + "revoked": { + "agent": "cascade_agent_2", + "refresh": { + "observation": "not_recorded", + "outcome": null, + "utc": null, + "seconds_after_t0": null + } + }, + "control": null + } + }, + { + "path": "emergency", + "t0_unix": 1791193737.107734, + "t0_definition": "the emergency root's submission (the issuer's answer; the bound itself is block-based)", + "bound_seconds": 0, + "bound_formula": "the emergency root's finalisation: measured in blocks below", + "last_accepted": { + "utc": "2026-10-05T09:48:59.963Z", + "seconds_after_t0": 2.9, + "session_id": "da1386095fb9832bb15064d149d93225", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 107639, + "decision_log": { + "condition": 9, + "root_epoch": 7239, + "root_height": 107635, + "root_age_seconds": 10 + } + }, + "first_refused": { + "utc": "2026-10-05T09:49:01.816Z", + "seconds_after_t0": 4.7, + "session_id": "c685de82d2ca6e31ae3e52cd4fc0f17a", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 107640, + "decision_log": { + "condition": 5, + "root_epoch": 7240, + "root_height": 107639, + "root_age_seconds": 4 + } + }, + "root_at_denial": { + "status_epoch": 7240, + "finalized_height": 107639, + "generated_at_unix": 1791193737, + "finalized_at_utc": null, + "emergency": true + }, + "root_carrying_revocation": { + "status_epoch": 7240, + "finalized_height": 107639, + "generated_at_unix": 1791193737, + "finalized_at_utc": "2026-10-05T09:48:56.560Z", + "emergency": true + }, + "refresh_refused_seconds_after_t0": 0.0, + "attribution": { + "revoked": { + "agent": "agent_emergency", + "refresh": { + "observation": "refused", + "outcome": "credential_revoked", + "utc": "2026-10-05T09:48:57.112Z", + "seconds_after_t0": 0.0 + } + }, + "control": null + } + } + ], + "reason": null + }, + "first_refusal_observations": { + "state": "measured", + "value": [ + { + "path": "issuer", + "agent": null, + "observed_seconds_after_t0": { + "state": "measured", + "value": 31.5, + "reason": null + }, + "seconds_bound": { + "state": "measured", + "value": 185, + "reason": null + }, + "bound_unit": "seconds", + "bound_formula": "t0 + A + K", + "t0_definition": "the issuer's removal of the agent (revoke response)", + "block_observations": { + "state": "measured", + "value": { + "refusal_chain_height_after": 107563, + "root_carrying_revocation_finalized_height": 107561 + }, + "reason": null + } + }, + { + "path": "kill_switch", + "agent": null, + "observed_seconds_after_t0": { + "state": "measured", + "value": 18.2, + "reason": null + }, + "seconds_bound": { + "state": "measured", + "value": 245, + "reason": null + }, + "bound_unit": "seconds", + "bound_formula": "t0 + G + A + K", + "t0_definition": "the recording of the nullifier on chain (block time of the relay's tx)", + "block_observations": { + "state": "measured", + "value": { + "refusal_chain_height_after": 107577, + "root_carrying_revocation_finalized_height": 107576 + }, + "reason": null + } + }, + { + "path": "cascade", + "agent": "cascade_agent_1", + "observed_seconds_after_t0": { + "state": "measured", + "value": 33.5, + "reason": null + }, + "seconds_bound": { + "state": "measured", + "value": 395, + "reason": null + }, + "bound_unit": "seconds", + "bound_formula": "t_T + 7\u00b7H + A + K", + "t0_definition": "generation of the trigger root (the root carrying the principal's revocation)", + "block_observations": { + "state": "measured", + "value": { + "refusal_chain_height_after": 107606, + "root_carrying_revocation_finalized_height": 107591 + }, + "reason": null + } + }, + { + "path": "cascade", + "agent": "cascade_agent_2", + "observed_seconds_after_t0": { + "state": "measured", + "value": 94.3, + "reason": null + }, + "seconds_bound": { + "state": "measured", + "value": 395, + "reason": null + }, + "bound_unit": "seconds", + "bound_formula": "t_T + 7\u00b7H + A + K", + "t0_definition": "generation of the trigger root (the root carrying the principal's revocation)", + "block_observations": { + "state": "measured", + "value": { + "refusal_chain_height_after": 107636, + "root_carrying_revocation_finalized_height": 107591 + }, + "reason": null + } + }, + { + "path": "emergency", + "agent": null, + "observed_seconds_after_t0": { + "state": "measured", + "value": 4.7, + "reason": null + }, + "seconds_bound": { + "state": "not_applicable", + "value": null, + "reason": "publisher defines this emergency bound in blocks" + }, + "bound_unit": "blocks", + "bound_formula": "the emergency root's finalisation: measured in blocks below", + "t0_definition": "the emergency root's submission (the issuer's answer; the bound itself is block-based)", + "block_observations": { + "state": "measured", + "value": { + "refusal_chain_height_after": 107640, + "root_carrying_revocation_finalized_height": 107639 + }, + "reason": null + } + } + ], + "reason": null + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "first presentation refusal is not an end-to-end revocation latency or general SLA" + }, + "evidence_identity": { + "state": "measured", + "value": [ + { + "path": "issuer", + "epoch": 7234, + "height": 107561 + }, + { + "path": "kill_switch", + "epoch": 7235, + "height": 107576 + }, + { + "path": "cascade", + "epoch": 7237, + "height": 107605 + }, + { + "path": "cascade", + "epoch": 7239, + "height": 107635 + }, + { + "path": "emergency", + "epoch": 7240, + "height": 107639 + } + ], + "reason": null + }, + "root_age_seconds": { + "state": "measured", + "value": [ + { + "path": "issuer", + "seconds": 7 + }, + { + "path": "kill_switch", + "seconds": 4 + }, + { + "path": "cascade", + "seconds": 3 + }, + { + "path": "cascade", + "seconds": 4 + }, + { + "path": "emergency", + "seconds": 4 + } + ], + "reason": null + }, + "freshness_limit_seconds": { + "state": "measured", + "value": 180, + "reason": null + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + }, + { + "case_id": "unreachable", + "basis": "author_record", + "independent_live_reproduction": false, + "fields": { + "dispatch": { + "state": "not_applicable", + "value": null, + "reason": "MintID has no executor" + }, + "committed_effect": { + "state": "not_applicable", + "value": null, + "reason": "relying-party boundary" + }, + "task_outcome": { + "state": "not_applicable", + "value": null, + "reason": "relying-party task outcome is outside MintID" + }, + "receipt": { + "state": "not_emitted", + "value": null, + "reason": "not present in the public adapter input" + }, + "receipt_signature_verification": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "policy_digest": { + "state": "measured", + "value": "bf1b0c281001d1c998d4d54ec33d260f1cb0734b7cd0a99836bd2d42853f9323", + "reason": null + }, + "authority": { + "state": "measured", + "value": [ + { + "claim": "human_backed", + "value": true + }, + { + "claim": "pairwise_pseudonym", + "value": "fe70f0d05c0ca3c586279dcddccfbde1f6c23bc7b3913645802e1271ef759acb" + }, + { + "claim": "assurance_grade", + "operator": ">=", + "value": "A2" + }, + { + "claim": "counterparty_includes", + "value": "eip155:8453:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + { + "claim": "delegated_scope_includes", + "value": "payments.initiate" + }, + { + "claim": "category_in", + "value": "mcc:5812" + }, + { + "claim": "geo_in", + "value": "iso3166-1:ES" + }, + { + "claim": "transaction_limit", + "operator": ">=", + "value": "5000000 USDC" + }, + { + "claim": "key_custody_class", + "operator": ">=", + "value": "tpm" + }, + { + "claim": "unexpired", + "value": true + }, + { + "claim": "credential_active", + "value": true + } + ], + "reason": null + }, + "full_delegated_scope": { + "state": "not_emitted", + "value": null, + "reason": "privacy-preserving predicate disclosure" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "decision": { + "state": "measured", + "value": [ + { + "path": "unreachable", + "t0_unix": 1791193745.2510989, + "t0_definition": "the node paused: the verifier cannot prove chain state", + "restored_seconds_after_t0": 40.2, + "decided_during_outage": [ + { + "utc": "2026-10-05T09:49:15.309Z", + "seconds_after_t0": 10.1, + "session_id": "f3e499163e3b385ddb1cffc8d096c9be", + "accepted": false, + "reason_code": "state_unproven", + "chain_height_after": null, + "decision_log": { + "condition": 1, + "root_epoch": null, + "root_height": null, + "root_age_seconds": null + } + } + ], + "challenges_during_outage": [ + { + "utc": "2026-10-05T09:49:25.329Z", + "seconds_after_t0": 20.1, + "http": 503, + "error": "state_unavailable" + }, + { + "utc": "2026-10-05T09:49:35.354Z", + "seconds_after_t0": 30.1, + "http": 503, + "error": "state_unavailable" + }, + { + "utc": "2026-10-05T09:49:45.379Z", + "seconds_after_t0": 40.1, + "http": 503, + "error": "state_unavailable" + } + ], + "first_accepted_after_restore": { + "utc": "2026-10-05T09:49:46.356Z", + "seconds_after_t0": 0.9, + "session_id": "4a1af395d38e1b1243e994ebb346b48e", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 107643, + "decision_log": { + "condition": 9, + "root_epoch": 7240, + "root_height": 107639, + "root_age_seconds": 49 + } + } + } + ], + "reason": null + }, + "recovery": { + "state": "measured", + "value": [ + { + "utc": "2026-10-05T09:49:46.356Z", + "seconds_after_t0": 0.9, + "session_id": "4a1af395d38e1b1243e994ebb346b48e", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 107643, + "decision_log": { + "condition": 9, + "root_epoch": 7240, + "root_height": 107639, + "root_age_seconds": 49 + } + } + ], + "reason": null + }, + "evidence_identity": { + "state": "not_applicable", + "value": null, + "reason": "no root behind unavailable-state refusal" + }, + "revocation_latency_seconds": { + "state": "not_applicable", + "value": null, + "reason": "no equivalent on this implementation path" + }, + "root_age_seconds": { + "state": "not_applicable", + "value": null, + "reason": "no decision root on disconnected path" + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + }, + { + "case_id": "post_dispatch_revoke", + "basis": "author_record", + "independent_live_reproduction": false, + "fields": { + "dispatch": { + "state": "not_applicable", + "value": null, + "reason": "MintID has no executor" + }, + "committed_effect": { + "state": "not_applicable", + "value": null, + "reason": "relying-party boundary" + }, + "task_outcome": { + "state": "not_applicable", + "value": null, + "reason": "relying-party task outcome is outside MintID" + }, + "receipt": { + "state": "not_emitted", + "value": null, + "reason": "not present in the public adapter input" + }, + "receipt_signature_verification": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "policy_digest": { + "state": "measured", + "value": "bf1b0c281001d1c998d4d54ec33d260f1cb0734b7cd0a99836bd2d42853f9323", + "reason": null + }, + "authority": { + "state": "measured", + "value": [ + { + "claim": "human_backed", + "value": true + }, + { + "claim": "pairwise_pseudonym", + "value": "fe70f0d05c0ca3c586279dcddccfbde1f6c23bc7b3913645802e1271ef759acb" + }, + { + "claim": "assurance_grade", + "operator": ">=", + "value": "A2" + }, + { + "claim": "counterparty_includes", + "value": "eip155:8453:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + { + "claim": "delegated_scope_includes", + "value": "payments.initiate" + }, + { + "claim": "category_in", + "value": "mcc:5812" + }, + { + "claim": "geo_in", + "value": "iso3166-1:ES" + }, + { + "claim": "transaction_limit", + "operator": ">=", + "value": "5000000 USDC" + }, + { + "claim": "key_custody_class", + "operator": ">=", + "value": "tpm" + }, + { + "claim": "unexpired", + "value": true + }, + { + "claim": "credential_active", + "value": true + } + ], + "reason": null + }, + "full_delegated_scope": { + "state": "not_emitted", + "value": null, + "reason": "privacy-preserving predicate disclosure" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "decision": { + "state": "not_emitted", + "value": null, + "reason": "no published observation for this case in this record" + }, + "evidence_identity": { + "state": "not_emitted", + "value": null, + "reason": "not present in the public adapter input" + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "root_age_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + } + ] +} diff --git a/integrations/alakris-authority-comparison/results/mintid-author-testnet.json b/integrations/alakris-authority-comparison/results/mintid-author-testnet.json new file mode 100644 index 0000000..5a1d1ed --- /dev/null +++ b/integrations/alakris-authority-comparison/results/mintid-author-testnet.json @@ -0,0 +1,1244 @@ +{ + "implementation": "MintID", + "run_id": "revocation-trace-testnet-20261006T073712Z", + "integrity": "PASS", + "evidence_custody": { + "producer": "MintID author/operator", + "public_artifact": "operator trace and summary", + "appraiser": "Alakris evidence runner", + "independent_target_observer": false + }, + "record_revision": { + "revision": "497509ebf0c3bbc9c1a924996018b67db6ca949f", + "public_tags": [ + "public-v2026-10-06.2" + ], + "tracked_changes": false, + "services_revision_stated": null + }, + "deployment": { + "target": "testnet", + "chain_id": "mintid-testnet-2", + "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", + "verifier_id": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661", + "kyc_provider": "sandbox", + "endpoints": { + "issuer_url": "https://issuer.testnet.mintid.net", + "verifier_url": "https://verifier.testnet.mintid.net", + "rpc": "https://rpc.testnet.mintid.net", + "relay": "https://relay.testnet.mintid.net" + }, + "build": { + "issuer": { + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "signing_key_id": "9ddd3b08a70e35065788ca08d5f22761df22f77611755ccae13fe8809ac3a6cd" + }, + "verifier": { + "engine_pin": "proof-core 0.4.0", + "sdk_version": "0.3.0", + "spec_revision": "SPEC-1 v3.2", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2" + } + }, + "services": { + "verifier": { + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "basis": "build-info" + }, + "issuer": { + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "basis": "build-info" + } + }, + "parameters": { + "A": 180, + "H": 30, + "K": 5, + "G": 60, + "cascade_spread_beats": 8 + }, + "max_root_age_seconds": 180, + "heartbeat_seconds": 30, + "max_height_lag": 100 + }, + "checks": [ + { + "file": "revocation-trace-testnet-20261006T073712Z.jsonl", + "expected": "509a5047f3f52730c340314d82a0f4c3968db7b41c4cdca21f438fe70d1563d7", + "actual": "509a5047f3f52730c340314d82a0f4c3968db7b41c4cdca21f438fe70d1563d7", + "match": true + }, + { + "file": "revocation-trace-testnet-20261006T073712Z.md", + "expected": "e984c1d8b0555298bb18057bfd8e04089eb012e980f842a593eb07be7e4b6852", + "actual": "e984c1d8b0555298bb18057bfd8e04089eb012e980f842a593eb07be7e4b6852", + "match": true + } + ], + "cases": [ + { + "case_id": "binding_veto", + "basis": "author_record", + "independent_live_reproduction": false, + "fields": { + "dispatch": { + "state": "not_applicable", + "value": null, + "reason": "MintID has no executor" + }, + "committed_effect": { + "state": "not_applicable", + "value": null, + "reason": "relying-party boundary" + }, + "task_outcome": { + "state": "not_applicable", + "value": null, + "reason": "relying-party task outcome is outside MintID" + }, + "receipt": { + "state": "not_emitted", + "value": null, + "reason": "not present in the public adapter input" + }, + "receipt_signature_verification": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "policy_digest": { + "state": "measured", + "value": "9f02f1c77044017c9b411a7d069cbc4fd5311087fc09c91e4cfd1ec5e29c3577", + "reason": null + }, + "authority": { + "state": "measured", + "value": [ + { + "claim": "human_backed", + "value": true + }, + { + "claim": "pairwise_pseudonym", + "value": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661" + }, + { + "claim": "assurance_grade", + "operator": ">=", + "value": "A2" + }, + { + "claim": "counterparty_includes", + "value": "eip155:8453:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + { + "claim": "delegated_scope_includes", + "value": "payments.initiate" + }, + { + "claim": "category_in", + "value": "mcc:5812" + }, + { + "claim": "geo_in", + "value": "iso3166-1:ES" + }, + { + "claim": "transaction_limit", + "operator": ">=", + "value": "5000000 USDC" + }, + { + "claim": "key_custody_class", + "operator": ">=", + "value": "tpm" + }, + { + "claim": "unexpired", + "value": true + }, + { + "claim": "credential_active", + "value": true + } + ], + "reason": null + }, + "full_delegated_scope": { + "state": "not_emitted", + "value": null, + "reason": "privacy-preserving predicate disclosure" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "decision": { + "state": "not_emitted", + "value": null, + "reason": "no published observation for this case in this record" + }, + "evidence_identity": { + "state": "not_emitted", + "value": null, + "reason": "not present in the public adapter input" + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "root_age_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + }, + { + "case_id": "revoked_stale", + "basis": "author_record", + "independent_live_reproduction": false, + "fields": { + "dispatch": { + "state": "not_applicable", + "value": null, + "reason": "MintID has no executor" + }, + "committed_effect": { + "state": "not_applicable", + "value": null, + "reason": "relying-party boundary" + }, + "task_outcome": { + "state": "not_applicable", + "value": null, + "reason": "relying-party task outcome is outside MintID" + }, + "receipt": { + "state": "not_emitted", + "value": null, + "reason": "not present in the public adapter input" + }, + "receipt_signature_verification": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "policy_digest": { + "state": "measured", + "value": "9f02f1c77044017c9b411a7d069cbc4fd5311087fc09c91e4cfd1ec5e29c3577", + "reason": null + }, + "authority": { + "state": "measured", + "value": [ + { + "claim": "human_backed", + "value": true + }, + { + "claim": "pairwise_pseudonym", + "value": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661" + }, + { + "claim": "assurance_grade", + "operator": ">=", + "value": "A2" + }, + { + "claim": "counterparty_includes", + "value": "eip155:8453:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + { + "claim": "delegated_scope_includes", + "value": "payments.initiate" + }, + { + "claim": "category_in", + "value": "mcc:5812" + }, + { + "claim": "geo_in", + "value": "iso3166-1:ES" + }, + { + "claim": "transaction_limit", + "operator": ">=", + "value": "5000000 USDC" + }, + { + "claim": "key_custody_class", + "operator": ">=", + "value": "tpm" + }, + { + "claim": "unexpired", + "value": true + }, + { + "claim": "credential_active", + "value": true + } + ], + "reason": null + }, + "full_delegated_scope": { + "state": "not_emitted", + "value": null, + "reason": "privacy-preserving predicate disclosure" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "decision": { + "state": "measured", + "value": [ + { + "path": "issuer", + "t0_unix": 1791272329.5303512, + "t0_definition": "the issuer's removal of the agent (revoke response)", + "bound_seconds": 185, + "bound_formula": "t0 + A + K", + "last_accepted": null, + "first_refused": { + "utc": "2026-10-06T07:38:58.870Z", + "seconds_after_t0": 9.3, + "session_id": "3ed1a8cce5646a51f6912daa29d54a7a", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 67947, + "decision_log": { + "condition": 5, + "root_epoch": 4796, + "root_height": 67942, + "root_age_seconds": 13 + } + }, + "root_at_denial": { + "status_epoch": 4796, + "finalized_height": 67942, + "generated_at_unix": 1791272325, + "finalized_at_utc": null, + "emergency": false + }, + "root_carrying_revocation": { + "status_epoch": 4797, + "finalized_height": 67956, + "generated_at_unix": 1791272355, + "finalized_at_utc": "2026-10-06T07:39:13.643Z", + "emergency": false + }, + "refresh_refused_seconds_after_t0": 5.5, + "control_never_revoked": { + "last_accepted": null, + "first_refused": { + "utc": "2026-10-06T07:38:54.151Z", + "seconds_after_t0": 4.6, + "session_id": "c0c89d0927107ce71b67073905ada8c3", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 67945, + "decision_log": { + "condition": 5, + "root_epoch": 4796, + "root_height": 67942, + "root_age_seconds": 8 + } + }, + "after_refresh": { + "utc": "2026-10-06T07:39:27.146Z", + "seconds_after_t0": 37.6, + "session_id": "34160cbfb3c9bb23bc09f1e48252abd6", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 67961, + "decision_log": { + "condition": 9, + "root_epoch": 4797, + "root_height": 67956, + "root_age_seconds": 10 + } + } + }, + "attribution": { + "revoked": { + "agent": "agent_issuer", + "refresh": { + "observation": "refused", + "outcome": "credential_revoked", + "utc": "2026-10-06T07:38:55.007Z", + "seconds_after_t0": 5.5 + } + }, + "control": { + "agent": "sibling_control", + "refused": { + "utc": "2026-10-06T07:38:54.151Z", + "seconds_after_t0": 4.6, + "session_id": "c0c89d0927107ce71b67073905ada8c3", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 67945, + "decision_log": { + "condition": 5, + "root_epoch": 4796, + "root_height": 67942, + "root_age_seconds": 8 + } + }, + "refresh": { + "observation": "refreshed", + "outcome": null, + "utc": "2026-10-06T07:39:21.567Z", + "seconds_after_t0": 32.0 + }, + "after_refresh": { + "utc": "2026-10-06T07:39:27.146Z", + "seconds_after_t0": 37.6, + "session_id": "34160cbfb3c9bb23bc09f1e48252abd6", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 67961, + "decision_log": { + "condition": 9, + "root_epoch": 4797, + "root_height": 67956, + "root_age_seconds": 10 + } + } + } + } + }, + { + "path": "kill_switch", + "t0_unix": 1791272385.428598, + "t0_definition": "the recording of the nullifier on chain (block time of the relay's tx)", + "bound_seconds": 245, + "bound_formula": "t0 + G + A + K", + "last_accepted": { + "utc": "2026-10-06T07:40:15.852Z", + "seconds_after_t0": 30.4, + "session_id": "b8d1202919776312672b0cb4e8c3104b", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 67984, + "decision_log": { + "condition": 9, + "root_epoch": 4798, + "root_height": 67970, + "root_age_seconds": 28 + } + }, + "first_refused": { + "utc": "2026-10-06T07:40:22.210Z", + "seconds_after_t0": 36.8, + "session_id": "c4eec972c7b6642ed98eb849ceecca46", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 67987, + "decision_log": { + "condition": 5, + "root_epoch": 4799, + "root_height": 67985, + "root_age_seconds": 6 + } + }, + "root_at_denial": { + "status_epoch": 4799, + "finalized_height": 67985, + "generated_at_unix": 1791272415, + "finalized_at_utc": null, + "emergency": false + }, + "root_carrying_revocation": { + "status_epoch": 4799, + "finalized_height": 67985, + "generated_at_unix": 1791272415, + "finalized_at_utc": "2026-10-06T07:40:15.056Z", + "emergency": false + }, + "refresh_refused_seconds_after_t0": 32.9, + "attribution": { + "revoked": { + "agent": "agent_kill_switch", + "refresh": { + "observation": "refused", + "outcome": "credential_revoked", + "utc": "2026-10-06T07:40:18.367Z", + "seconds_after_t0": 32.9 + } + }, + "control": null + } + }, + { + "path": "cascade", + "agent": "cascade_agent_1", + "t0_unix": 1791272475, + "t0_definition": "generation of the trigger root (the root carrying the principal's revocation)", + "bound_seconds": 395, + "bound_formula": "t_T + 7\u00b7H + A + K", + "last_accepted": { + "utc": "2026-10-06T07:43:44.533Z", + "seconds_after_t0": 149.5, + "session_id": "3b0ae18682f984549f071dea36284bfa", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 68082, + "decision_log": { + "condition": 9, + "root_epoch": 4805, + "root_height": 68070, + "root_age_seconds": 27 + } + }, + "first_refused": { + "utc": "2026-10-06T07:43:51.071Z", + "seconds_after_t0": 156.1, + "session_id": "05e960bb9df69e7002946f312d2b2dbf", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 68085, + "decision_log": { + "condition": 5, + "root_epoch": 4806, + "root_height": 68084, + "root_age_seconds": 5 + } + }, + "root_at_denial": { + "status_epoch": 4806, + "finalized_height": 68084, + "generated_at_unix": 1791272625, + "finalized_at_utc": null, + "emergency": false + }, + "root_carrying_revocation": { + "status_epoch": 4801, + "finalized_height": 68013, + "generated_at_unix": 1791272475, + "finalized_at_utc": "2026-10-06T07:41:14.459Z", + "emergency": false + }, + "refresh_refused_seconds_after_t0": 152.3, + "attribution": { + "revoked": { + "agent": "cascade_agent_1", + "refresh": { + "observation": "refused", + "outcome": "credential_revoked", + "utc": "2026-10-06T07:43:47.333Z", + "seconds_after_t0": 152.3 + } + }, + "control": null + } + }, + { + "path": "cascade", + "agent": "cascade_agent_2", + "t0_unix": 1791272475, + "t0_definition": "generation of the trigger root (the root carrying the principal's revocation)", + "bound_seconds": 395, + "bound_formula": "t_T + 7\u00b7H + A + K", + "last_accepted": { + "utc": "2026-10-06T07:41:35.851Z", + "seconds_after_t0": 20.9, + "session_id": "9086bdb5ca9aad5ad64f4ad57c42f402", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 68022, + "decision_log": { + "condition": 9, + "root_epoch": 4801, + "root_height": 68013, + "root_age_seconds": 18 + } + }, + "first_refused": { + "utc": "2026-10-06T07:41:50.138Z", + "seconds_after_t0": 35.1, + "session_id": "02480177a8188880dfb4b1fed20c7811", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 68028, + "decision_log": { + "condition": 5, + "root_epoch": 4802, + "root_height": 68027, + "root_age_seconds": 4 + } + }, + "root_at_denial": { + "status_epoch": 4802, + "finalized_height": 68027, + "generated_at_unix": 1791272505, + "finalized_at_utc": null, + "emergency": false + }, + "root_carrying_revocation": { + "status_epoch": 4801, + "finalized_height": 68013, + "generated_at_unix": 1791272475, + "finalized_at_utc": "2026-10-06T07:41:14.459Z", + "emergency": false + }, + "refresh_refused_seconds_after_t0": 122.5, + "attribution": { + "revoked": { + "agent": "cascade_agent_2", + "refresh": { + "observation": "refused", + "outcome": "credential_revoked", + "utc": "2026-10-06T07:43:17.535Z", + "seconds_after_t0": 122.5 + } + }, + "control": null + } + }, + { + "path": "emergency", + "t0_unix": 1791272647.40383, + "t0_definition": "the emergency root's submission (the issuer's answer; the bound itself is block-based)", + "bound_seconds": 0, + "bound_formula": "the emergency root's finalisation: measured in blocks below", + "last_accepted": null, + "first_refused": { + "utc": "2026-10-06T07:44:11.903Z", + "seconds_after_t0": 4.5, + "session_id": "b6a4eb844311b33980c8aa4cd79bbd1f", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 68095, + "decision_log": { + "condition": 5, + "root_epoch": 4807, + "root_height": 68094, + "root_age_seconds": 5 + } + }, + "root_at_denial": { + "status_epoch": 4807, + "finalized_height": 68094, + "generated_at_unix": 1791272646, + "finalized_at_utc": null, + "emergency": true + }, + "root_carrying_revocation": { + "status_epoch": 4807, + "finalized_height": 68094, + "generated_at_unix": 1791272646, + "finalized_at_utc": "2026-10-06T07:44:05.874Z", + "emergency": true + }, + "refresh_refused_seconds_after_t0": 0.7, + "attribution": { + "revoked": { + "agent": "agent_emergency", + "refresh": { + "observation": "refused", + "outcome": "credential_revoked", + "utc": "2026-10-06T07:44:08.142Z", + "seconds_after_t0": 0.7 + } + }, + "control": null + } + } + ], + "reason": null + }, + "first_refusal_observations": { + "state": "measured", + "value": [ + { + "path": "issuer", + "agent": null, + "observed_seconds_after_t0": { + "state": "measured", + "value": 9.3, + "reason": null + }, + "seconds_bound": { + "state": "measured", + "value": 185, + "reason": null + }, + "bound_unit": "seconds", + "bound_formula": "t0 + A + K", + "t0_definition": "the issuer's removal of the agent (revoke response)", + "block_observations": { + "state": "measured", + "value": { + "refusal_chain_height_after": 67947, + "root_carrying_revocation_finalized_height": 67956 + }, + "reason": null + } + }, + { + "path": "kill_switch", + "agent": null, + "observed_seconds_after_t0": { + "state": "measured", + "value": 36.8, + "reason": null + }, + "seconds_bound": { + "state": "measured", + "value": 245, + "reason": null + }, + "bound_unit": "seconds", + "bound_formula": "t0 + G + A + K", + "t0_definition": "the recording of the nullifier on chain (block time of the relay's tx)", + "block_observations": { + "state": "measured", + "value": { + "refusal_chain_height_after": 67987, + "root_carrying_revocation_finalized_height": 67985 + }, + "reason": null + } + }, + { + "path": "cascade", + "agent": "cascade_agent_1", + "observed_seconds_after_t0": { + "state": "measured", + "value": 156.1, + "reason": null + }, + "seconds_bound": { + "state": "measured", + "value": 395, + "reason": null + }, + "bound_unit": "seconds", + "bound_formula": "t_T + 7\u00b7H + A + K", + "t0_definition": "generation of the trigger root (the root carrying the principal's revocation)", + "block_observations": { + "state": "measured", + "value": { + "refusal_chain_height_after": 68085, + "root_carrying_revocation_finalized_height": 68013 + }, + "reason": null + } + }, + { + "path": "cascade", + "agent": "cascade_agent_2", + "observed_seconds_after_t0": { + "state": "measured", + "value": 35.1, + "reason": null + }, + "seconds_bound": { + "state": "measured", + "value": 395, + "reason": null + }, + "bound_unit": "seconds", + "bound_formula": "t_T + 7\u00b7H + A + K", + "t0_definition": "generation of the trigger root (the root carrying the principal's revocation)", + "block_observations": { + "state": "measured", + "value": { + "refusal_chain_height_after": 68028, + "root_carrying_revocation_finalized_height": 68013 + }, + "reason": null + } + }, + { + "path": "emergency", + "agent": null, + "observed_seconds_after_t0": { + "state": "measured", + "value": 4.5, + "reason": null + }, + "seconds_bound": { + "state": "not_applicable", + "value": null, + "reason": "publisher defines this emergency bound in blocks" + }, + "bound_unit": "blocks", + "bound_formula": "the emergency root's finalisation: measured in blocks below", + "t0_definition": "the emergency root's submission (the issuer's answer; the bound itself is block-based)", + "block_observations": { + "state": "measured", + "value": { + "refusal_chain_height_after": 68095, + "root_carrying_revocation_finalized_height": 68094 + }, + "reason": null + } + } + ], + "reason": null + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "first presentation refusal is not an end-to-end revocation latency or general SLA" + }, + "evidence_identity": { + "state": "measured", + "value": [ + { + "path": "issuer", + "epoch": 4796, + "height": 67942 + }, + { + "path": "kill_switch", + "epoch": 4799, + "height": 67985 + }, + { + "path": "cascade", + "epoch": 4806, + "height": 68084 + }, + { + "path": "cascade", + "epoch": 4802, + "height": 68027 + }, + { + "path": "emergency", + "epoch": 4807, + "height": 68094 + } + ], + "reason": null + }, + "root_age_seconds": { + "state": "measured", + "value": [ + { + "path": "issuer", + "seconds": 13 + }, + { + "path": "kill_switch", + "seconds": 6 + }, + { + "path": "cascade", + "seconds": 5 + }, + { + "path": "cascade", + "seconds": 4 + }, + { + "path": "emergency", + "seconds": 5 + } + ], + "reason": null + }, + "freshness_limit_seconds": { + "state": "measured", + "value": 180, + "reason": null + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + }, + { + "case_id": "unreachable", + "basis": "author_record", + "independent_live_reproduction": false, + "fields": { + "dispatch": { + "state": "not_applicable", + "value": null, + "reason": "MintID has no executor" + }, + "committed_effect": { + "state": "not_applicable", + "value": null, + "reason": "relying-party boundary" + }, + "task_outcome": { + "state": "not_applicable", + "value": null, + "reason": "relying-party task outcome is outside MintID" + }, + "receipt": { + "state": "not_emitted", + "value": null, + "reason": "not present in the public adapter input" + }, + "receipt_signature_verification": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "policy_digest": { + "state": "measured", + "value": "9f02f1c77044017c9b411a7d069cbc4fd5311087fc09c91e4cfd1ec5e29c3577", + "reason": null + }, + "authority": { + "state": "measured", + "value": [ + { + "claim": "human_backed", + "value": true + }, + { + "claim": "pairwise_pseudonym", + "value": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661" + }, + { + "claim": "assurance_grade", + "operator": ">=", + "value": "A2" + }, + { + "claim": "counterparty_includes", + "value": "eip155:8453:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + { + "claim": "delegated_scope_includes", + "value": "payments.initiate" + }, + { + "claim": "category_in", + "value": "mcc:5812" + }, + { + "claim": "geo_in", + "value": "iso3166-1:ES" + }, + { + "claim": "transaction_limit", + "operator": ">=", + "value": "5000000 USDC" + }, + { + "claim": "key_custody_class", + "operator": ">=", + "value": "tpm" + }, + { + "claim": "unexpired", + "value": true + }, + { + "claim": "credential_active", + "value": true + } + ], + "reason": null + }, + "full_delegated_scope": { + "state": "not_emitted", + "value": null, + "reason": "privacy-preserving predicate disclosure" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "decision": { + "state": "not_emitted", + "value": null, + "reason": "no published observation for this case in this record" + }, + "evidence_identity": { + "state": "not_emitted", + "value": null, + "reason": "not present in the public adapter input" + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "root_age_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + }, + { + "case_id": "post_dispatch_revoke", + "basis": "author_record", + "independent_live_reproduction": false, + "fields": { + "dispatch": { + "state": "not_applicable", + "value": null, + "reason": "MintID has no executor" + }, + "committed_effect": { + "state": "not_applicable", + "value": null, + "reason": "relying-party boundary" + }, + "task_outcome": { + "state": "not_applicable", + "value": null, + "reason": "relying-party task outcome is outside MintID" + }, + "receipt": { + "state": "not_emitted", + "value": null, + "reason": "not present in the public adapter input" + }, + "receipt_signature_verification": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "policy_digest": { + "state": "measured", + "value": "9f02f1c77044017c9b411a7d069cbc4fd5311087fc09c91e4cfd1ec5e29c3577", + "reason": null + }, + "authority": { + "state": "measured", + "value": [ + { + "claim": "human_backed", + "value": true + }, + { + "claim": "pairwise_pseudonym", + "value": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661" + }, + { + "claim": "assurance_grade", + "operator": ">=", + "value": "A2" + }, + { + "claim": "counterparty_includes", + "value": "eip155:8453:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + { + "claim": "delegated_scope_includes", + "value": "payments.initiate" + }, + { + "claim": "category_in", + "value": "mcc:5812" + }, + { + "claim": "geo_in", + "value": "iso3166-1:ES" + }, + { + "claim": "transaction_limit", + "operator": ">=", + "value": "5000000 USDC" + }, + { + "claim": "key_custody_class", + "operator": ">=", + "value": "tpm" + }, + { + "claim": "unexpired", + "value": true + }, + { + "claim": "credential_active", + "value": true + } + ], + "reason": null + }, + "full_delegated_scope": { + "state": "not_emitted", + "value": null, + "reason": "privacy-preserving predicate disclosure" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "decision": { + "state": "not_emitted", + "value": null, + "reason": "no published observation for this case in this record" + }, + "evidence_identity": { + "state": "not_emitted", + "value": null, + "reason": "not present in the public adapter input" + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "root_age_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + } + ] +} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/collector-digests.json b/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/collector-digests.json new file mode 100644 index 0000000..0099b97 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/collector-digests.json @@ -0,0 +1,17 @@ +{ + "original_run_artifact_hashes_all_match": true, + "original_run_artifact_checks": { + "revocation-trace-testnet-20261006T195934Z.jsonl": true, + "stdout.log": true, + "preflight.json": true, + "postflight.json": true + }, + "files": { + "postflight.json": "345878bdbab4c7901c9a00792a9465761914639182f044b42130852f6519f906", + "stdout.log": "b7403c28f8a63eb63dbf772eb235049b399b7d7da07427a77efcc7fd31e8e584", + "revocation-trace-testnet-20261006T195934Z.jsonl": "4c307495de0697e57a0d48898d9b00d90642f523c80893f2af31b31e20a317f4", + "preflight.json": "22caff0f2eb52462e2a0cb542e00c16cff62ac436f975565bab7a48a7ec8f012", + "run-result.json": "a64f0b390710562c342c834786ea4502f1363e2ac387f3e3ab13f55b1759447a", + "partial-findings.json": "ecf1c653e143067f73f2424c2e6d5fec8b09cbdfdd96265774871efd0a72707e" + } +} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/partial-findings.json b/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/partial-findings.json new file mode 100644 index 0000000..32a741b --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/partial-findings.json @@ -0,0 +1,66 @@ +{ + "status": "failed_partial_run", + "exit_code": 1, + "source": { + "utc": "2026-10-06T19:59:34.826Z", + "unix": 1791316774.827, + "t": 0.0, + "kind": "source", + "revision": "b678e5cd6b5736e1795fd18d497fd8e501272dcd", + "public_tags": [ + "public-v2026-10-07" + ], + "tracked_changes": false, + "services_revision_stated": null + }, + "services": { + "issuer": { + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "signing_key_id": "9ddd3b08a70e35065788ca08d5f22761df22f77611755ccae13fe8809ac3a6cd" + }, + "verifier": { + "engine_pin": "proof-core 0.4.0", + "sdk_version": "0.3.0", + "spec_revision": "SPEC-1 v3.2", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2" + } + }, + "completed_path": "issuer", + "issuer_observation": { + "trigger_t0_definition": "issuer revoke response", + "t0_utc": "2026-10-06T20:00:35.705Z", + "baseline_accepted": true, + "last_accepted_seconds_after_t0": 11.6, + "first_refused_seconds_after_t0": 23.8, + "first_refused_utc": "2026-10-06T20:00:59.513Z", + "reason_code": "status_root_stale", + "declared_bound_seconds": 185, + "revoked_refresh": "credential_revoked", + "control_first_refused_seconds_after_t0": 33.5, + "control_refresh_outcome": "refreshed", + "control_after_refresh_accepted": true, + "decision_condition": "not_recorded", + "authority_root_consulted_at_decision": "not_recorded", + "protected_side_effects": "not_measured" + }, + "kill_switch": "triggered, accepted proofs recorded, then challenge HTTP503 state_unavailable; no completed denial observation", + "cascade": "not_run_due_to_previous_path_failure", + "cause": "upstream native runner raised uncaught ServiceRefusal on hosted challenge HTTP503 state_unavailable", + "security_inference": "No deny bound or fail-closed property is inferred from a challenge request error; no controlled authority outage injected. Native run failure is not reported as a security conformance failure.", + "sensitive_material_check": { + "private_key_or_authorization_pattern_found": false, + "raw_trace_retained_unchanged": true + }, + "files": { + "postflight.json": "345878bdbab4c7901c9a00792a9465761914639182f044b42130852f6519f906", + "stdout.log": "b7403c28f8a63eb63dbf772eb235049b399b7d7da07427a77efcc7fd31e8e584", + "revocation-trace-testnet-20261006T195934Z.jsonl": "4c307495de0697e57a0d48898d9b00d90642f523c80893f2af31b31e20a317f4", + "preflight.json": "22caff0f2eb52462e2a0cb542e00c16cff62ac436f975565bab7a48a7ec8f012", + "run-result.json": "a64f0b390710562c342c834786ea4502f1363e2ac387f3e3ab13f55b1759447a" + } +} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/postflight.json b/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/postflight.json new file mode 100644 index 0000000..2836cc0 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/postflight.json @@ -0,0 +1,175 @@ +{ + "checked_utc": "2026-10-06T20:02:17.559910+00:00", + "responses": { + "issuer_build": { + "service": "issuer-agent", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "rail": "classical-seller-v0", + "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", + "signing_key_id": "9ddd3b08a70e35065788ca08d5f22761df22f77611755ccae13fe8809ac3a6cd", + "chain_id": "mintid-testnet-2", + "chain_generation": 1, + "kyc_provider": "sandbox", + "session_ttl_seconds": 86400, + "permitted_grades": [ + 1, + 2, + 3, + 4 + ], + "heartbeat_seconds": 30, + "validity_window_seconds": 180, + "chain_max_root_age_seconds": 180, + "status_sign_doc_version": 2, + "emergency_sign_doc_version": 2, + "status_epoch": 6282, + "current_root": "c996965d925f032d350f88d6a2a7a0319b5e54a05e8cd73cea2dd78a54c77ad4", + "last_heartbeat_unix": 1791316882, + "entries": 0, + "pending_since_root": true, + "linkage": "in_sync", + "linkage_detail": "", + "chain_finalized_epoch": 6282, + "chain_finalized_root": "c996965d925f032d350f88d6a2a7a0319b5e54a05e8cd73cea2dd78a54c77ad4", + "chain_finalized_height": 88975, + "chain_checked_unix": 1791316912, + "unfinalized_epochs": 0, + "discarded_heartbeats": 0, + "emergency_key_id": "9df5d5558b50752f46a74368520557905a02a3e5ca255b8aa443c2441519b474", + "emergency_roots": 3, + "last_emergency": { + "status_epoch": 4807, + "root": "bb241080642a7f0f7af2927a77618a7254cfc26c69f394c9941cd9cda2d9298a", + "previous_root": "40b488a22e1bc5a38b6b2688661b77c37c44b92c7e4a76a68972783bffa58155", + "reason_code": 2, + "emergency_key_id": "9df5d5558b50752f46a74368520557905a02a3e5ca255b8aa443c2441519b474", + "tx_hash": "AF26C1BE51028EA434F4C9F5646374CA3960B24F8A5B1D69006A0F5F6F633A13", + "requested_at_unix": 1791272646, + "entries": 0, + "finalized": true + }, + "credential_rail": { + "mounted": true, + "core": "proof-core 0.4.0", + "accumulator_leaf": "a196a8d189ebfd424c1b56916894dd9c4f46d1dac8a83970f9fcd4d52d65e097", + "credentials_issued": 43, + "credentials_revoked": 15, + "finalized": { + "status_epoch": 6282, + "height": 88975, + "root": "c996965d925f032d350f88d6a2a7a0319b5e54a05e8cd73cea2dd78a54c77ad4" + }, + "scope_sets": 5, + "agent_accumulator_leaf": "e61e9db7a6f5ea1202efeeedc311e2fce732a595dd8d60c141e13933ce59aeb6", + "agent_minting": "on", + "escrow_sealer": "kms", + "agent_mint_policy": { + "max_active_agents": 10, + "max_mints": 5, + "window_seconds": 3600, + "max_lease_seconds": 7776000, + "bundles_only": false + }, + "agent_bundles": { + "catalogue_version": "mintid.agent-bundles.v1", + "catalogue_digest": "b18bb15862ca89d0c6e7f479276eb0f6aa46e41ffdcce8b699ee8d7206328895", + "catalogue_source": "reference", + "bundles": [ + "payments", + "procurement", + "data-read" + ] + } + }, + "agent_fee_schedule": { + "source": "chain_rpc_unproven", + "mint_fee": { + "amount": "1000000", + "denom": "utestmint" + }, + "lease_fee_per_year": { + "amount": "1000000", + "denom": "utestmint" + }, + "reference_currency": "USD", + "mint_fee_reference_minor": 300, + "lease_fee_per_year_reference_minor": 1200, + "sybil_floor_reference_minor": 400, + "protocol_cut_bps": 1200, + "burn_share_bps": 3000, + "validator_share_bps": 4500, + "foundation_share_bps": 2500 + }, + "selfrevoke": { + "fold": "on", + "acked": 16, + "chain_acked": 15, + "pending": 0, + "last_fold_unix": 1791316913, + "blocked_at_version": null, + "fold_mode": "external", + "waiting_at_version": null, + "cascade_spread_beats": 8, + "agent_cover_traffic": true + } + }, + "verifier_build": { + "sdk_version": "0.3.0", + "engine_pin": "proof-core 0.4.0", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "spec_revision": "SPEC-1 v3.2", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "recognition": { + "enabled": true, + "retention_days": 90 + } + }, + "verifier_status": { + "substrate": "ok", + "checked_unix": 1791316934, + "detail": "", + "chain": { + "chain_id": "mintid-testnet-2", + "latest_height": 88987, + "latest_block_time_unix": 1791316910, + "block_age_seconds": 24 + }, + "issuers": [ + { + "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", + "reason": "ok", + "root_state": null, + "active": true, + "bond_ok": true, + "root_epoch": 6282, + "root_height": 88975, + "root_age_seconds": 52, + "fresh": true + } + ], + "promise": { + "heartbeat_seconds": 30, + "max_root_age_seconds": 180, + "note": "roots are published every heartbeat_seconds and stay fresh up to max_root_age_seconds; a revocation lands in the next root" + }, + "verifier": { + "verifier_id": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661", + "origin": "https://verifier.testnet.mintid.net", + "max_height_lag": 100, + "presentation_rail": "configured", + "sdk_version": "0.3.0", + "engine_pin": "proof-core 0.4.0", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "spec_revision": "SPEC-1 v3.2", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2" + } + } + } +} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/preflight.json b/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/preflight.json new file mode 100644 index 0000000..4b4f74b --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/preflight.json @@ -0,0 +1,175 @@ +{ + "checked_utc": "2026-10-06T19:59:34.026475+00:00", + "responses": { + "issuer_build": { + "service": "issuer-agent", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "rail": "classical-seller-v0", + "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", + "signing_key_id": "9ddd3b08a70e35065788ca08d5f22761df22f77611755ccae13fe8809ac3a6cd", + "chain_id": "mintid-testnet-2", + "chain_generation": 1, + "kyc_provider": "sandbox", + "session_ttl_seconds": 86400, + "permitted_grades": [ + 1, + 2, + 3, + 4 + ], + "heartbeat_seconds": 30, + "validity_window_seconds": 180, + "chain_max_root_age_seconds": 180, + "status_sign_doc_version": 2, + "emergency_sign_doc_version": 2, + "status_epoch": 6278, + "current_root": "cc911170b021e9ee65af865f3677bcad5332d01f72fdaab25fa70ebc2360de90", + "last_heartbeat_unix": 1791316763, + "entries": 0, + "pending_since_root": true, + "linkage": "in_sync", + "linkage_detail": "", + "chain_finalized_epoch": 6277, + "chain_finalized_root": "5803604c714040b16205dfff1b39559d8b61eb20c58635ebb1be50285887ce68", + "chain_finalized_height": 88907, + "chain_checked_unix": 1791316762, + "unfinalized_epochs": 1, + "discarded_heartbeats": 0, + "emergency_key_id": "9df5d5558b50752f46a74368520557905a02a3e5ca255b8aa443c2441519b474", + "emergency_roots": 3, + "last_emergency": { + "status_epoch": 4807, + "root": "bb241080642a7f0f7af2927a77618a7254cfc26c69f394c9941cd9cda2d9298a", + "previous_root": "40b488a22e1bc5a38b6b2688661b77c37c44b92c7e4a76a68972783bffa58155", + "reason_code": 2, + "emergency_key_id": "9df5d5558b50752f46a74368520557905a02a3e5ca255b8aa443c2441519b474", + "tx_hash": "AF26C1BE51028EA434F4C9F5646374CA3960B24F8A5B1D69006A0F5F6F633A13", + "requested_at_unix": 1791272646, + "entries": 0, + "finalized": true + }, + "credential_rail": { + "mounted": true, + "core": "proof-core 0.4.0", + "accumulator_leaf": "a196a8d189ebfd424c1b56916894dd9c4f46d1dac8a83970f9fcd4d52d65e097", + "credentials_issued": 41, + "credentials_revoked": 15, + "finalized": { + "status_epoch": 6277, + "height": 88907, + "root": "5803604c714040b16205dfff1b39559d8b61eb20c58635ebb1be50285887ce68" + }, + "scope_sets": 5, + "agent_accumulator_leaf": "bc6c2480976edb2f79855a1301a3cc0dff138f43712f1e5eac7b52669ba034b7", + "agent_minting": "on", + "escrow_sealer": "kms", + "agent_mint_policy": { + "max_active_agents": 10, + "max_mints": 5, + "window_seconds": 3600, + "max_lease_seconds": 7776000, + "bundles_only": false + }, + "agent_bundles": { + "catalogue_version": "mintid.agent-bundles.v1", + "catalogue_digest": "b18bb15862ca89d0c6e7f479276eb0f6aa46e41ffdcce8b699ee8d7206328895", + "catalogue_source": "reference", + "bundles": [ + "payments", + "procurement", + "data-read" + ] + } + }, + "agent_fee_schedule": { + "source": "chain_rpc_unproven", + "mint_fee": { + "amount": "1000000", + "denom": "utestmint" + }, + "lease_fee_per_year": { + "amount": "1000000", + "denom": "utestmint" + }, + "reference_currency": "USD", + "mint_fee_reference_minor": 300, + "lease_fee_per_year_reference_minor": 1200, + "sybil_floor_reference_minor": 400, + "protocol_cut_bps": 1200, + "burn_share_bps": 3000, + "validator_share_bps": 4500, + "foundation_share_bps": 2500 + }, + "selfrevoke": { + "fold": "on", + "acked": 15, + "chain_acked": 15, + "pending": 0, + "last_fold_unix": 1791272415, + "blocked_at_version": null, + "fold_mode": "external", + "waiting_at_version": null, + "cascade_spread_beats": 8, + "agent_cover_traffic": true + } + }, + "verifier_build": { + "sdk_version": "0.3.0", + "engine_pin": "proof-core 0.4.0", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "spec_revision": "SPEC-1 v3.2", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "recognition": { + "enabled": true, + "retention_days": 90 + } + }, + "verifier_status": { + "substrate": "ok", + "checked_unix": 1791316773, + "detail": "", + "chain": { + "chain_id": "mintid-testnet-2", + "latest_height": 88924, + "latest_block_time_unix": 1791316770, + "block_age_seconds": 3 + }, + "issuers": [ + { + "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", + "reason": "ok", + "root_state": null, + "active": true, + "bond_ok": true, + "root_epoch": 6278, + "root_height": 88920, + "root_age_seconds": 10, + "fresh": true + } + ], + "promise": { + "heartbeat_seconds": 30, + "max_root_age_seconds": 180, + "note": "roots are published every heartbeat_seconds and stay fresh up to max_root_age_seconds; a revocation lands in the next root" + }, + "verifier": { + "verifier_id": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661", + "origin": "https://verifier.testnet.mintid.net", + "max_height_lag": 100, + "presentation_rail": "configured", + "sdk_version": "0.3.0", + "engine_pin": "proof-core 0.4.0", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "spec_revision": "SPEC-1 v3.2", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2" + } + } + } +} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/revocation-trace-testnet-20261006T195934Z.jsonl b/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/revocation-trace-testnet-20261006T195934Z.jsonl new file mode 100644 index 0000000..1671015 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/revocation-trace-testnet-20261006T195934Z.jsonl @@ -0,0 +1,30 @@ +{"utc": "2026-10-06T19:59:34.826Z", "unix": 1791316774.827, "t": 0.0, "kind": "source", "revision": "b678e5cd6b5736e1795fd18d497fd8e501272dcd", "public_tags": ["public-v2026-10-07"], "tracked_changes": false, "services_revision_stated": null} +{"utc": "2026-10-06T19:59:35.315Z", "unix": 1791316775.316, "t": 0.489, "kind": "stack", "chain_id": "mintid-testnet-2", "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", "verifier_id": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661", "kyc_provider": "sandbox", "issuer_url": "https://issuer.testnet.mintid.net", "verifier_url": "https://verifier.testnet.mintid.net", "rpc": "https://rpc.testnet.mintid.net", "relay": "https://relay.testnet.mintid.net"} +{"utc": "2026-10-06T19:59:35.513Z", "unix": 1791316775.514, "t": 0.687, "kind": "build", "issuer": {"source_revision": "497509ebf0c3", "release": "public-v2026-10-06.2", "signing_key_id": "9ddd3b08a70e35065788ca08d5f22761df22f77611755ccae13fe8809ac3a6cd"}, "verifier": {"engine_pin": "proof-core 0.4.0", "sdk_version": "0.3.0", "spec_revision": "SPEC-1 v3.2", "state_vectors_version": "mintid-proofvector-1/h2", "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", "conformance_suite_version": "1.0.0", "source_revision": "497509ebf0c3", "release": "public-v2026-10-06.2"}} +{"utc": "2026-10-06T19:59:35.513Z", "unix": 1791316775.514, "t": 0.687, "kind": "policy", "claim_policy": [{"claim": "human_backed", "value": true}, {"claim": "pairwise_pseudonym", "value": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661"}, {"claim": "assurance_grade", "operator": ">=", "value": "A2"}, {"claim": "counterparty_includes", "value": "eip155:8453:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"}, {"claim": "delegated_scope_includes", "value": "payments.initiate"}, {"claim": "category_in", "value": "mcc:5812"}, {"claim": "geo_in", "value": "iso3166-1:ES"}, {"claim": "transaction_limit", "operator": ">=", "value": "5000000 USDC"}, {"claim": "key_custody_class", "operator": ">=", "value": "tpm"}, {"claim": "unexpired", "value": true}, {"claim": "credential_active", "value": true}], "issuer_policy": {"accepted_issuer_ids": ["3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b"]}, "sha256": "9f02f1c77044017c9b411a7d069cbc4fd5311087fc09c91e4cfd1ec5e29c3577"} +{"utc": "2026-10-06T19:59:35.774Z", "unix": 1791316775.775, "t": 0.948, "kind": "verifier_status", "when": "before", "observed_unix": 1791316775, "substrate": "ok", "chain_height": 88925, "root_epoch": 6278, "root_height": 88920, "root_age_seconds": 12, "fresh": true, "max_root_age_seconds": 180, "heartbeat_seconds": 30, "max_height_lag": 100} +{"utc": "2026-10-06T19:59:36.817Z", "unix": 1791316776.818, "t": 1.991, "kind": "kyc_session", "principal": "principal1", "driver": "sandbox", "hint": "sandbox:approved:g3", "outcome": "approved", "grade": 3} +{"utc": "2026-10-06T19:59:37.885Z", "unix": 1791316777.886, "t": 3.059, "kind": "identity_credential", "principal": "principal1", "credential": "656dc97cb5e6\u2026"} +{"utc": "2026-10-06T19:59:48.033Z", "unix": 1791316788.033, "t": 13.207, "kind": "kyc_session", "principal": "principal2", "driver": "sandbox", "hint": "sandbox:approved:g3", "outcome": "approved", "grade": 3} +{"utc": "2026-10-06T19:59:55.002Z", "unix": 1791316795.002, "t": 20.175, "kind": "agents_minted", "count": 5} +{"utc": "2026-10-06T20:00:25.801Z", "unix": 1791316825.801, "t": 50.975, "kind": "wait", "what": "a finalized root committing the agents and their scope", "seconds": 30.5} +{"utc": "2026-10-06T20:00:28.340Z", "unix": 1791316828.341, "t": 53.514, "kind": "wait", "what": "every agent usable", "seconds": 2.5} +{"utc": "2026-10-06T20:00:28.732Z", "unix": 1791316828.732, "t": 53.905, "kind": "parameters", "A": 180, "H": 30, "K": 5, "G": 60, "cascade_spread_beats": 8} +{"utc": "2026-10-06T20:00:35.468Z", "unix": 1791316835.468, "t": 60.642, "kind": "decision", "path": "issuer", "agent": "agent_issuer", "attempt": "baseline", "session_id": "ff8fbd9273db2fefdae521934cacfaaa", "accepted": true, "reason_code": "accepted", "presented_root": "a5a13b59c78a9d8cf08f843c638d9b6a6ebddd1399beff5bcefb4def16d4849f", "present_seconds": 3.807, "validate_seconds": 2.038, "chain_height_after": 88952, "verified": {}} +{"utc": "2026-10-06T20:00:35.994Z", "unix": 1791316835.995, "t": 61.168, "kind": "trigger", "path": "issuer", "action": "POST /v1/agent-credentials/{id}/revoke", "http": 200, "status": "revoked", "request_utc": "2026-10-06T20:00:35.573Z", "response_utc": "2026-10-06T20:00:35.705Z", "response_seconds": 0.133, "issuer_built_epoch": 6280} +{"utc": "2026-10-06T20:00:41.713Z", "unix": 1791316841.714, "t": 66.887, "kind": "decision", "path": "issuer", "agent": "sibling_control", "attempt": "control_stale", "session_id": "b1e650930fd0cc1acd972234e08c8b0d", "accepted": true, "reason_code": "accepted", "presented_root": "a5a13b59c78a9d8cf08f843c638d9b6a6ebddd1399beff5bcefb4def16d4849f", "present_seconds": 3.624, "validate_seconds": 1.963, "chain_height_after": 88955, "verified": {}} +{"utc": "2026-10-06T20:00:41.858Z", "unix": 1791316841.859, "t": 67.032, "kind": "holder_refresh", "path": "issuer", "agent": "agent_issuer", "outcome": "credential_revoked", "note": "an honest client stops presenting here"} +{"utc": "2026-10-06T20:00:47.312Z", "unix": 1791316847.313, "t": 72.486, "kind": "decision", "path": "issuer", "agent": "agent_issuer", "attempt": "forced", "session_id": "7934b936fc7f97a873b870e17f426cc8", "accepted": true, "reason_code": "accepted", "presented_root": "a5a13b59c78a9d8cf08f843c638d9b6a6ebddd1399beff5bcefb4def16d4849f", "present_seconds": 3.588, "validate_seconds": 1.719, "chain_height_after": 88957, "verified": {}} +{"utc": "2026-10-06T20:00:54.813Z", "unix": 1791316854.814, "t": 79.987, "kind": "decision", "path": "issuer", "agent": "sibling_control", "attempt": "control_stale", "session_id": "8032bbccefa62dbfdb33fc0d9dfbd055", "accepted": true, "reason_code": "accepted", "presented_root": "a5a13b59c78a9d8cf08f843c638d9b6a6ebddd1399beff5bcefb4def16d4849f", "present_seconds": 3.617, "validate_seconds": 2.247, "chain_height_after": 88961, "verified": {}} +{"utc": "2026-10-06T20:00:59.513Z", "unix": 1791316859.513, "t": 84.687, "kind": "decision", "path": "issuer", "agent": "agent_issuer", "attempt": "forced", "session_id": "eaec17e7251c3c14b759f34a904ae981", "accepted": false, "reason_code": "status_root_stale", "presented_root": "a5a13b59c78a9d8cf08f843c638d9b6a6ebddd1399beff5bcefb4def16d4849f", "present_seconds": 3.668, "validate_seconds": 0.894, "chain_height_after": 88963, "verified": {}} +{"utc": "2026-10-06T20:01:03.616Z", "unix": 1791316863.616, "t": 88.789, "kind": "decision", "path": "issuer", "agent": "agent_issuer", "attempt": "forced_confirm", "session_id": "ea22df1d436c450a817a9250c90e0d02", "accepted": false, "reason_code": "status_root_stale", "presented_root": "a5a13b59c78a9d8cf08f843c638d9b6a6ebddd1399beff5bcefb4def16d4849f", "present_seconds": 3.623, "validate_seconds": 0.358, "chain_height_after": 88965, "verified": {}} +{"utc": "2026-10-06T20:01:03.671Z", "unix": 1791316863.672, "t": 88.845, "kind": "ring_at_denial", "path": "issuer", "agent": "agent_issuer", "ring": [{"status_epoch": 6274, "root": "61114a6f75f92ac0b89bef6effee61648dc657ad9e4ececebfbac0112565689a", "finalized_height": 88866, "generated_at_unix": 1791316642, "valid_until_unix": 1791316822, "ack": 15, "emergency": false}, {"status_epoch": 6275, "root": "753fa1cfa844a02bd1e605492c6e64442a41e15b4f20ffedfe656d49ca0c3446", "finalized_height": 88879, "generated_at_unix": 1791316673, "valid_until_unix": 1791316853, "ack": 15, "emergency": false}, {"status_epoch": 6276, "root": "f3f08d949c11d71b5c0e4a65b48bbb2d5f5ae2b292869a161cacf7066ef3e1c3", "finalized_height": 88893, "generated_at_unix": 1791316703, "valid_until_unix": 1791316883, "ack": 15, "emergency": false}, {"status_epoch": 6277, "root": "5803604c714040b16205dfff1b39559d8b61eb20c58635ebb1be50285887ce68", "finalized_height": 88907, "generated_at_unix": 1791316732, "valid_until_unix": 1791316912, "ack": 15, "emergency": false}, {"status_epoch": 6278, "root": "cc911170b021e9ee65af865f3677bcad5332d01f72fdaab25fa70ebc2360de90", "finalized_height": 88920, "generated_at_unix": 1791316763, "valid_until_unix": 1791316943, "ack": 15, "emergency": false}, {"status_epoch": 6279, "root": "8486c9f8969fac9539acb2732233fbf8775d465a98e8517444bb08305c886cbc", "finalized_height": 88934, "generated_at_unix": 1791316792, "valid_until_unix": 1791316972, "ack": 15, "emergency": false}, {"status_epoch": 6280, "root": "a5a13b59c78a9d8cf08f843c638d9b6a6ebddd1399beff5bcefb4def16d4849f", "finalized_height": 88947, "generated_at_unix": 1791316823, "valid_until_unix": 1791317003, "ack": 15, "emergency": false}, {"status_epoch": 6281, "root": "3c81eeb69e7021097ee8fec7f66721ee273fa8db6d3d5c52a0e276a63c939e6a", "finalized_height": 88961, "generated_at_unix": 1791316852, "valid_until_unix": 1791317032, "ack": 15, "emergency": false}]} +{"utc": "2026-10-06T20:01:09.216Z", "unix": 1791316869.217, "t": 94.39, "kind": "decision", "path": "issuer", "agent": "sibling_control", "attempt": "control_stale", "session_id": "3681d51cda715ecf54111295de017e89", "accepted": false, "reason_code": "status_root_stale", "presented_root": "a5a13b59c78a9d8cf08f843c638d9b6a6ebddd1399beff5bcefb4def16d4849f", "present_seconds": 3.555, "validate_seconds": 0.346, "chain_height_after": 88967, "verified": {}} +{"utc": "2026-10-06T20:01:11.170Z", "unix": 1791316871.17, "t": 96.343, "kind": "holder_refresh", "path": "issuer", "agent": "sibling_control", "outcome": "refreshed"} +{"utc": "2026-10-06T20:01:16.508Z", "unix": 1791316876.508, "t": 101.682, "kind": "decision", "path": "issuer", "agent": "sibling_refreshed", "attempt": "control_refreshed", "session_id": "78139407a22800331d80a22df5e7ca79", "accepted": true, "reason_code": "accepted", "presented_root": "3c81eeb69e7021097ee8fec7f66721ee273fa8db6d3d5c52a0e276a63c939e6a", "present_seconds": 3.456, "validate_seconds": 1.74, "chain_height_after": 88971, "verified": {}} +{"utc": "2026-10-06T20:01:16.942Z", "unix": 1791316876.943, "t": 102.116, "kind": "path_done", "path": "issuer", "deny": ["2026-10-06T20:00:59.513Z"]} +{"utc": "2026-10-06T20:01:22.839Z", "unix": 1791316882.839, "t": 108.012, "kind": "decision", "path": "kill_switch", "agent": "agent_kill_switch", "attempt": "baseline", "session_id": "ca06d987069811d1720538326c457af8", "accepted": true, "reason_code": "accepted", "presented_root": "3c81eeb69e7021097ee8fec7f66721ee273fa8db6d3d5c52a0e276a63c939e6a", "present_seconds": 3.578, "validate_seconds": 1.833, "chain_height_after": 88974, "verified": {}} +{"utc": "2026-10-06T20:01:29.479Z", "unix": 1791316889.479, "t": 114.653, "kind": "trigger", "path": "kill_switch", "action": "self_revoke \u2192 privacy relay", "receipt": "pending", "recorded_height": 88977, "recorded_utc": "2026-10-06T20:01:26.764Z", "request_utc": "2026-10-06T20:01:23.643Z", "response_utc": "2026-10-06T20:01:29.452Z", "response_seconds": 5.809, "unconfirmed": null} +{"utc": "2026-10-06T20:01:35.721Z", "unix": 1791316895.721, "t": 120.895, "kind": "decision", "path": "kill_switch", "agent": "agent_kill_switch", "attempt": "forced", "session_id": "8b4b6f669e3d1f57bc6631b82ce2ecfd", "accepted": true, "reason_code": "accepted", "presented_root": "c996965d925f032d350f88d6a2a7a0319b5e54a05e8cd73cea2dd78a54c77ad4", "present_seconds": 3.548, "validate_seconds": 1.908, "chain_height_after": 88980, "verified": {}} +{"utc": "2026-10-06T20:01:43.516Z", "unix": 1791316903.517, "t": 128.69, "kind": "decision", "path": "kill_switch", "agent": "agent_kill_switch", "attempt": "forced", "session_id": "c2d37ac1a8bf5cc2e80ae06c92eead04", "accepted": true, "reason_code": "accepted", "presented_root": "c996965d925f032d350f88d6a2a7a0319b5e54a05e8cd73cea2dd78a54c77ad4", "present_seconds": 3.623, "validate_seconds": 1.719, "chain_height_after": 88982, "verified": {}} +{"utc": "2026-10-06T20:01:50.711Z", "unix": 1791316910.712, "t": 135.885, "kind": "decision", "path": "kill_switch", "agent": "agent_kill_switch", "attempt": "forced", "session_id": "c8f625a6beadd1832f6a4dd0c1f9df3c", "accepted": true, "reason_code": "accepted", "presented_root": "c996965d925f032d350f88d6a2a7a0319b5e54a05e8cd73cea2dd78a54c77ad4", "present_seconds": 3.421, "validate_seconds": 1.722, "chain_height_after": 88986, "verified": {}} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/run-result.json b/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/run-result.json new file mode 100644 index 0000000..0549668 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/run-result.json @@ -0,0 +1,180 @@ +{ + "source_revision": "b678e5cd6b5736e1795fd18d497fd8e501272dcd", + "source_public_release": "public-v2026-10-07", + "working_tree_tracked_changes": false, + "run_type": "independent_public_testnet_synthetic", + "command": [ + "timeout", + "--signal=TERM", + "--kill-after=30", + "1800", + "uv", + "run", + "--locked", + "--python", + "3.12", + "python", + "test-harness/trace/revocation_trace.py", + "--target", + "testnet", + "--paths", + "issuer,kill_switch,cascade", + "--out", + "/home/ubuntu/worktrees/aaif-mintid-run-20261006/results" + ], + "cwd": "/home/ubuntu/worktrees/aaif-mintid-run-20261006/source", + "started_utc": "2026-10-06T19:59:34.026996+00:00", + "finished_utc": "2026-10-06T20:02:17.700607+00:00", + "exit_code": 1, + "operator_credentials_used": false, + "requested_paths": [ + "issuer", + "kill_switch", + "cascade" + ], + "emergency": "not_run_operator_access_required", + "unreachable": "not_run_public_host_disruption_excluded", + "decision_log": "not_recorded_operator_only", + "external_protected_side_effects": "not_measured", + "versions": { + "uv": "uv 0.12.23 (x86_64-unknown-linux-gnu)", + "rustc": "rustc 1.97.0 (2d8144b78 2026-07-07)", + "python": "Python 3.12.15" + }, + "service_pins_before": { + "issuer_build": { + "service": "issuer-agent", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "rail": "classical-seller-v0", + "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", + "signing_key_id": "9ddd3b08a70e35065788ca08d5f22761df22f77611755ccae13fe8809ac3a6cd", + "chain_id": "mintid-testnet-2", + "chain_generation": 1, + "kyc_provider": "sandbox", + "session_ttl_seconds": 86400, + "permitted_grades": [ + 1, + 2, + 3, + 4 + ], + "heartbeat_seconds": 30, + "validity_window_seconds": 180, + "chain_max_root_age_seconds": 180, + "status_sign_doc_version": 2, + "emergency_sign_doc_version": 2, + "status_epoch": 6278, + "current_root": "cc911170b021e9ee65af865f3677bcad5332d01f72fdaab25fa70ebc2360de90", + "last_heartbeat_unix": 1791316763, + "entries": 0, + "pending_since_root": true, + "linkage": "in_sync", + "linkage_detail": "", + "chain_finalized_epoch": 6277, + "chain_finalized_root": "5803604c714040b16205dfff1b39559d8b61eb20c58635ebb1be50285887ce68", + "chain_finalized_height": 88907, + "chain_checked_unix": 1791316762, + "unfinalized_epochs": 1, + "discarded_heartbeats": 0, + "emergency_key_id": "9df5d5558b50752f46a74368520557905a02a3e5ca255b8aa443c2441519b474", + "emergency_roots": 3, + "last_emergency": { + "status_epoch": 4807, + "root": "bb241080642a7f0f7af2927a77618a7254cfc26c69f394c9941cd9cda2d9298a", + "previous_root": "40b488a22e1bc5a38b6b2688661b77c37c44b92c7e4a76a68972783bffa58155", + "reason_code": 2, + "emergency_key_id": "9df5d5558b50752f46a74368520557905a02a3e5ca255b8aa443c2441519b474", + "tx_hash": "AF26C1BE51028EA434F4C9F5646374CA3960B24F8A5B1D69006A0F5F6F633A13", + "requested_at_unix": 1791272646, + "entries": 0, + "finalized": true + }, + "credential_rail": { + "mounted": true, + "core": "proof-core 0.4.0", + "accumulator_leaf": "a196a8d189ebfd424c1b56916894dd9c4f46d1dac8a83970f9fcd4d52d65e097", + "credentials_issued": 41, + "credentials_revoked": 15, + "finalized": { + "status_epoch": 6277, + "height": 88907, + "root": "5803604c714040b16205dfff1b39559d8b61eb20c58635ebb1be50285887ce68" + }, + "scope_sets": 5, + "agent_accumulator_leaf": "bc6c2480976edb2f79855a1301a3cc0dff138f43712f1e5eac7b52669ba034b7", + "agent_minting": "on", + "escrow_sealer": "kms", + "agent_mint_policy": { + "max_active_agents": 10, + "max_mints": 5, + "window_seconds": 3600, + "max_lease_seconds": 7776000, + "bundles_only": false + }, + "agent_bundles": { + "catalogue_version": "mintid.agent-bundles.v1", + "catalogue_digest": "b18bb15862ca89d0c6e7f479276eb0f6aa46e41ffdcce8b699ee8d7206328895", + "catalogue_source": "reference", + "bundles": [ + "payments", + "procurement", + "data-read" + ] + } + }, + "agent_fee_schedule": { + "source": "chain_rpc_unproven", + "mint_fee": { + "amount": "1000000", + "denom": "utestmint" + }, + "lease_fee_per_year": { + "amount": "1000000", + "denom": "utestmint" + }, + "reference_currency": "USD", + "mint_fee_reference_minor": 300, + "lease_fee_per_year_reference_minor": 1200, + "sybil_floor_reference_minor": 400, + "protocol_cut_bps": 1200, + "burn_share_bps": 3000, + "validator_share_bps": 4500, + "foundation_share_bps": 2500 + }, + "selfrevoke": { + "fold": "on", + "acked": 15, + "chain_acked": 15, + "pending": 0, + "last_fold_unix": 1791272415, + "blocked_at_version": null, + "fold_mode": "external", + "waiting_at_version": null, + "cascade_spread_beats": 8, + "agent_cover_traffic": true + } + }, + "verifier_build": { + "sdk_version": "0.3.0", + "engine_pin": "proof-core 0.4.0", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "spec_revision": "SPEC-1 v3.2", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "recognition": { + "enabled": true, + "retention_days": 90 + } + } + }, + "postflight_error": null, + "artifact_hashes": { + "revocation-trace-testnet-20261006T195934Z.jsonl": "4c307495de0697e57a0d48898d9b00d90642f523c80893f2af31b31e20a317f4", + "stdout.log": "b7403c28f8a63eb63dbf772eb235049b399b7d7da07427a77efcc7fd31e8e584", + "preflight.json": "22caff0f2eb52462e2a0cb542e00c16cff62ac436f975565bab7a48a7ec8f012", + "postflight.json": "345878bdbab4c7901c9a00792a9465761914639182f044b42130852f6519f906" + } +} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/stdout.log b/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/stdout.log new file mode 100644 index 0000000..8f1aa78 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/attempt-1/stdout.log @@ -0,0 +1,49 @@ +[ 0.0s] source revision=b678e5cd6b5736e1795fd18d497fd8e501272dcd tracked_changes=False services_revision_stated=None +[ 0.5s] stack chain_id=mintid-testnet-2 issuer_id=3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b verifier_id=6f4c5d1becd3c47e56efcbfc950fc5d845eff +[ 0.7s] build +[ 0.7s] policy sha256=9f02f1c77044017c9b411a7d069cbc4fd5311087fc09c91e4cfd1ec5e29c3577 +[ 0.9s] verifier_status when=before observed_unix=1791316775 substrate=ok chain_height=88925 root_epoch=6278 root_height=88920 root_age_seconds=12 fresh=True max_root_age_sec +[ 2.0s] kyc_session principal=principal1 driver=sandbox hint=sandbox:approved:g3 outcome=approved grade=3 +[ 3.1s] identity_credential principal=principal1 credential=656dc97cb5e6… +[ 13.2s] kyc_session principal=principal2 driver=sandbox hint=sandbox:approved:g3 outcome=approved grade=3 +[ 20.2s] agents_minted count=5 +[ 51.0s] wait what=a finalized root committing the agents and their scope seconds=30.5 +[ 53.5s] wait what=every agent usable seconds=2.5 +[ 53.9s] parameters A=180 H=30 K=5 G=60 cascade_spread_beats=8 +[ 60.6s] decision issuer agent=agent_issuer attempt=baseline session_id=ff8fbd9273db2fefdae521934cacfaaa accepted=True reason_code=accepted presented_root=a5a13b59c78a9d8cf08f +[ 61.2s] trigger issuer action=POST /v1/agent-credentials/{id}/revoke http=200 status=revoked request_utc=2026-10-06T20:00:35.573Z response_utc=2026-10-06T20:00:35.705Z respo +[ 66.9s] decision issuer agent=sibling_control attempt=control_stale session_id=b1e650930fd0cc1acd972234e08c8b0d accepted=True reason_code=accepted presented_root=a5a13b59c78a +[ 67.0s] holder_refresh issuer agent=agent_issuer outcome=credential_revoked note=an honest client stops presenting here +[ 72.5s] decision issuer agent=agent_issuer attempt=forced session_id=7934b936fc7f97a873b870e17f426cc8 accepted=True reason_code=accepted presented_root=a5a13b59c78a9d8cf08f84 +[ 80.0s] decision issuer agent=sibling_control attempt=control_stale session_id=8032bbccefa62dbfdb33fc0d9dfbd055 accepted=True reason_code=accepted presented_root=a5a13b59c78a +[ 84.7s] decision issuer agent=agent_issuer attempt=forced session_id=eaec17e7251c3c14b759f34a904ae981 accepted=False reason_code=status_root_stale presented_root=a5a13b59c78a +[ 88.8s] decision issuer agent=agent_issuer attempt=forced_confirm session_id=ea22df1d436c450a817a9250c90e0d02 accepted=False reason_code=status_root_stale presented_root=a5a1 +[ 88.8s] ring_at_denial issuer agent=agent_issuer +[ 94.4s] decision issuer agent=sibling_control attempt=control_stale session_id=3681d51cda715ecf54111295de017e89 accepted=False reason_code=status_root_stale presented_root=a5 +[ 96.3s] holder_refresh issuer agent=sibling_control outcome=refreshed +[ 101.7s] decision issuer agent=sibling_refreshed attempt=control_refreshed session_id=78139407a22800331d80a22df5e7ca79 accepted=True reason_code=accepted presented_root=3c81ee +[ 102.1s] path_done issuer +[ 108.0s] decision kill_switch agent=agent_kill_switch attempt=baseline session_id=ca06d987069811d1720538326c457af8 accepted=True reason_code=accepted presented_root=3c81eeb69e70210 +[ 114.7s] trigger kill_switch action=self_revoke → privacy relay receipt=pending recorded_height=88977 recorded_utc=2026-10-06T20:01:26.764Z request_utc=2026-10-06T20:01:23.643Z re +[ 120.9s] decision kill_switch agent=agent_kill_switch attempt=forced session_id=8b4b6f669e3d1f57bc6631b82ce2ecfd accepted=True reason_code=accepted presented_root=c996965d925f032d3 +[ 128.7s] decision kill_switch agent=agent_kill_switch attempt=forced session_id=c2d37ac1a8bf5cc2e80ae06c92eead04 accepted=True reason_code=accepted presented_root=c996965d925f032d3 +[ 135.9s] decision kill_switch agent=agent_kill_switch attempt=forced session_id=c8f625a6beadd1832f6a4dd0c1f9df3c accepted=True reason_code=accepted presented_root=c996965d925f032d3 +Traceback (most recent call last): + File "/home/ubuntu/worktrees/aaif-mintid-run-20261006/source/test-harness/trace/revocation_trace.py", line 1783, in + sys.exit(main()) + ^^^^^^ + File "/home/ubuntu/worktrees/aaif-mintid-run-20261006/source/test-harness/trace/revocation_trace.py", line 1748, in main + r = runners[p](stack, trace, fx) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/ubuntu/worktrees/aaif-mintid-run-20261006/source/test-harness/trace/revocation_trace.py", line 830, in path_kill_switch + last_ok, first_no, _ = force_until_refused( + ^^^^^^^^^^^^^^^^^^^^ + File "/home/ubuntu/worktrees/aaif-mintid-run-20261006/source/test-harness/trace/revocation_trace.py", line 698, in force_until_refused + ev = attempt(stack, trace, path, adv.label, adv.client, "forced") + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/ubuntu/worktrees/aaif-mintid-run-20261006/source/test-harness/trace/revocation_trace.py", line 627, in attempt + c = stack.service.challenge( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/ubuntu/worktrees/aaif-mintid-run-20261006/source/verifier-core/src/verifier_core/x402/service_client.py", line 64, in challenge + raise ServiceRefusal(status, payload) +verifier_core.x402.facilitator.ServiceRefusal: HTTP 503: {'error': 'state_unavailable'} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/collector-digests.json b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/collector-digests.json new file mode 100644 index 0000000..1d67bcf --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/collector-digests.json @@ -0,0 +1,23 @@ +{ + "original_run_artifact_hashes_all_match": true, + "original_run_artifact_checks": { + "preflight-second.json": true, + "stdout.log": true, + "revocation-trace-testnet-20261006T200321Z.manifest.json": true, + "preflight.json": true, + "postflight.json": true, + "revocation-trace-testnet-20261006T200321Z.jsonl": true, + "revocation-trace-testnet-20261006T200321Z.md": true + }, + "files": { + "preflight-second.json": "4e41ec9699b2a3e30a0fec548347115f1c140e8375f1b9d5e3ad16e55565ae33", + "revocation-trace-testnet-20261006T200321Z.md": "b339a82972c83b2d98dafed6cf0840e8eda115e1780dd921165233c692a89397", + "postflight.json": "86915a475d57a73befa9856d38f6853c87ed2bd5c46c0cea00a3b5a1cdd4070c", + "revocation-trace-testnet-20261006T200321Z.jsonl": "e0618e6fca7322f7e8168ce48b6ebbe8fc9a5a7b8dfdf6bc3052544266fc9076", + "stdout.log": "962a3b45299e2310bdcc77a1ecbe28aeb93f037b9f1c3a90a62eb8288d081c37", + "revocation-trace-testnet-20261006T200321Z.manifest.json": "4f5fa6cce83f1122d597523ff91b1f7fa87534c9160c81014c45f915f3316e27", + "independent-audit.json": "8cbeac5cac072a8627fa650ad74c5e34031a840a3e0cb872adc36ab69296a1d9", + "preflight.json": "f4b764829b14c4b8dace00c175bba0bfd760dd786f1ba865d2c731f2f59535b7", + "run-result.json": "8fa328a352eeefd40a127a9f75281b6409874c687654650d34ab7f70aa096329" + } +} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/independent-audit.json b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/independent-audit.json new file mode 100644 index 0000000..531c8f1 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/independent-audit.json @@ -0,0 +1,112 @@ +{ + "status": "completed_with_baseline_qualification", + "native_record": "revocation-trace-testnet-20261006T200321Z", + "schema": "mintid-trace-manifest/2", + "native_exit_code": 0, + "source": { + "revision": "b678e5cd6b5736e1795fd18d497fd8e501272dcd", + "public_tags": [ + "public-v2026-10-07" + ], + "tracked_changes": false, + "services_revision_stated": null + }, + "deployment_services": { + "verifier": { + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "basis": "build-info" + }, + "issuer": { + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "basis": "build-info" + } + }, + "consistency_and_observation_checks": { + "native_exit_code_zero": true, + "manifest_rebuild_matches_raw": true, + "all_record_file_hashes_match": true, + "client_source_pinned_and_clean": true, + "only_requested_remaining_paths": true, + "three_agent_path_records": true, + "first_denial_observed_every_agent_path": true, + "revoked_refresh_attribution_every_agent_path": true, + "first_denial_within_declared_observation_bound": true, + "unread_condition_and_root_not_inferred": true, + "policy_digest_matches": true + }, + "all_consistency_and_observation_checks_passed": true, + "experimental_preconditions": { + "baselines": { + "agent_kill_switch": { + "accepted": true, + "reason_code": "accepted", + "utc": "2026-10-06T20:04:17.823Z" + }, + "cascade_agent_1": { + "accepted": false, + "reason_code": "status_root_stale", + "utc": "2026-10-06T20:05:06.820Z" + }, + "cascade_agent_2": { + "accepted": true, + "reason_code": "accepted", + "utc": "2026-10-06T20:05:16.917Z" + } + }, + "all_baselines_accepted": false + }, + "observations": [ + { + "path": "kill_switch", + "agent": null, + "first_refused_seconds_after_t0": 8.4, + "last_accepted_seconds_after_t0": null, + "bound_seconds": 245, + "revoked_refresh_seconds_after_t0": 37.1, + "revoked_refresh_outcome": "credential_revoked", + "decision_condition": "not_recorded", + "authority_root_consulted_at_decision": "not_recorded", + "protected_side_effects": "not_measured" + }, + { + "path": "cascade", + "agent": "cascade_agent_1", + "first_refused_seconds_after_t0": 66.8, + "last_accepted_seconds_after_t0": 56.6, + "bound_seconds": 395, + "revoked_refresh_seconds_after_t0": 150.1, + "revoked_refresh_outcome": "credential_revoked", + "decision_condition": "not_recorded", + "authority_root_consulted_at_decision": "not_recorded", + "protected_side_effects": "not_measured" + }, + { + "path": "cascade", + "agent": "cascade_agent_2", + "first_refused_seconds_after_t0": 42.7, + "last_accepted_seconds_after_t0": 24.3, + "bound_seconds": 395, + "revoked_refresh_seconds_after_t0": 95.9, + "revoked_refresh_outcome": "credential_revoked", + "decision_condition": "not_recorded", + "authority_root_consulted_at_decision": "not_recorded", + "protected_side_effects": "not_measured" + } + ], + "qualification": "cascade_agent_1 baseline was refused status_root_stale before revocation; later forced proof was accepted after trigger. Native harness does not assert/retry its baseline. Do not report a clean full conformance PASS. Root rollover can cause first refusal before revoked witness refresh fails.", + "trust_scope": "Independent execution of unchanged upstream client against one-operator hosted testnet/verifier. Public RPC supplies anchor headers; no independent validator/chain anchor. Exact root/condition at hosted verifier decision not recorded, external protected side effects not measured.", + "controlled_unreachable_authority_test": "not_run", + "sensitive_material_pattern_check_found": false, + "files": { + "preflight-second.json": "4e41ec9699b2a3e30a0fec548347115f1c140e8375f1b9d5e3ad16e55565ae33", + "revocation-trace-testnet-20261006T200321Z.md": "b339a82972c83b2d98dafed6cf0840e8eda115e1780dd921165233c692a89397", + "postflight.json": "86915a475d57a73befa9856d38f6853c87ed2bd5c46c0cea00a3b5a1cdd4070c", + "revocation-trace-testnet-20261006T200321Z.jsonl": "e0618e6fca7322f7e8168ce48b6ebbe8fc9a5a7b8dfdf6bc3052544266fc9076", + "stdout.log": "962a3b45299e2310bdcc77a1ecbe28aeb93f037b9f1c3a90a62eb8288d081c37", + "revocation-trace-testnet-20261006T200321Z.manifest.json": "4f5fa6cce83f1122d597523ff91b1f7fa87534c9160c81014c45f915f3316e27", + "preflight.json": "f4b764829b14c4b8dace00c175bba0bfd760dd786f1ba865d2c731f2f59535b7", + "run-result.json": "8fa328a352eeefd40a127a9f75281b6409874c687654650d34ab7f70aa096329" + } +} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/postflight.json b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/postflight.json new file mode 100644 index 0000000..eb90418 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/postflight.json @@ -0,0 +1,175 @@ +{ + "checked_utc": "2026-10-06T20:07:58.111666+00:00", + "responses": { + "issuer_build": { + "service": "issuer-agent", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "rail": "classical-seller-v0", + "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", + "signing_key_id": "9ddd3b08a70e35065788ca08d5f22761df22f77611755ccae13fe8809ac3a6cd", + "chain_id": "mintid-testnet-2", + "chain_generation": 1, + "kyc_provider": "sandbox", + "session_ttl_seconds": 86400, + "permitted_grades": [ + 1, + 2, + 3, + 4 + ], + "heartbeat_seconds": 30, + "validity_window_seconds": 180, + "chain_max_root_age_seconds": 180, + "status_sign_doc_version": 2, + "emergency_sign_doc_version": 2, + "status_epoch": 6294, + "current_root": "bf859403f2c15cca1f8a2a3467c0c08872b30ff6e60f47334ff898650c4196cb", + "last_heartbeat_unix": 1791317273, + "entries": 0, + "pending_since_root": true, + "linkage": "in_sync", + "linkage_detail": "", + "chain_finalized_epoch": 6293, + "chain_finalized_root": "f87dbd70e4db961ba56d7cf7e40989dd8cd9a59b45067275aff20f767de25ed7", + "chain_finalized_height": 89087, + "chain_checked_unix": 1791317272, + "unfinalized_epochs": 1, + "discarded_heartbeats": 0, + "emergency_key_id": "9df5d5558b50752f46a74368520557905a02a3e5ca255b8aa443c2441519b474", + "emergency_roots": 3, + "last_emergency": { + "status_epoch": 4807, + "root": "bb241080642a7f0f7af2927a77618a7254cfc26c69f394c9941cd9cda2d9298a", + "previous_root": "40b488a22e1bc5a38b6b2688661b77c37c44b92c7e4a76a68972783bffa58155", + "reason_code": 2, + "emergency_key_id": "9df5d5558b50752f46a74368520557905a02a3e5ca255b8aa443c2441519b474", + "tx_hash": "AF26C1BE51028EA434F4C9F5646374CA3960B24F8A5B1D69006A0F5F6F633A13", + "requested_at_unix": 1791272646, + "entries": 0, + "finalized": true + }, + "credential_rail": { + "mounted": true, + "core": "proof-core 0.4.0", + "accumulator_leaf": "4e6a15f654aae2fda705e2b2c0c22cf92ecb6c32b4ecee1540d4f1bacf53972e", + "credentials_issued": 45, + "credentials_revoked": 16, + "finalized": { + "status_epoch": 6293, + "height": 89087, + "root": "f87dbd70e4db961ba56d7cf7e40989dd8cd9a59b45067275aff20f767de25ed7" + }, + "scope_sets": 5, + "agent_accumulator_leaf": "6b30509a6c8806bc6897809001f0b3491b1d23371c63e3af79d15db8a15e2ad0", + "agent_minting": "on", + "escrow_sealer": "kms", + "agent_mint_policy": { + "max_active_agents": 10, + "max_mints": 5, + "window_seconds": 3600, + "max_lease_seconds": 7776000, + "bundles_only": false + }, + "agent_bundles": { + "catalogue_version": "mintid.agent-bundles.v1", + "catalogue_digest": "b18bb15862ca89d0c6e7f479276eb0f6aa46e41ffdcce8b699ee8d7206328895", + "catalogue_source": "reference", + "bundles": [ + "payments", + "procurement", + "data-read" + ] + } + }, + "agent_fee_schedule": { + "source": "chain_rpc_unproven", + "mint_fee": { + "amount": "1000000", + "denom": "utestmint" + }, + "lease_fee_per_year": { + "amount": "1000000", + "denom": "utestmint" + }, + "reference_currency": "USD", + "mint_fee_reference_minor": 300, + "lease_fee_per_year_reference_minor": 1200, + "sybil_floor_reference_minor": 400, + "protocol_cut_bps": 1200, + "burn_share_bps": 3000, + "validator_share_bps": 4500, + "foundation_share_bps": 2500 + }, + "selfrevoke": { + "fold": "on", + "acked": 17, + "chain_acked": 17, + "pending": 0, + "last_fold_unix": 1791317093, + "blocked_at_version": null, + "fold_mode": "external", + "waiting_at_version": null, + "cascade_spread_beats": 8, + "agent_cover_traffic": true + } + }, + "verifier_build": { + "sdk_version": "0.3.0", + "engine_pin": "proof-core 0.4.0", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "spec_revision": "SPEC-1 v3.2", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "recognition": { + "enabled": true, + "retention_days": 90 + } + }, + "verifier_status": { + "substrate": "ok", + "checked_unix": 1791317277, + "detail": "", + "chain": { + "chain_id": "mintid-testnet-2", + "latest_height": 89098, + "latest_block_time_unix": 1791317272, + "block_age_seconds": 5 + }, + "issuers": [ + { + "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", + "reason": "ok", + "root_state": null, + "active": true, + "bond_ok": true, + "root_epoch": 6293, + "root_height": 89087, + "root_age_seconds": 34, + "fresh": true + } + ], + "promise": { + "heartbeat_seconds": 30, + "max_root_age_seconds": 180, + "note": "roots are published every heartbeat_seconds and stay fresh up to max_root_age_seconds; a revocation lands in the next root" + }, + "verifier": { + "verifier_id": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661", + "origin": "https://verifier.testnet.mintid.net", + "max_height_lag": 100, + "presentation_rail": "configured", + "sdk_version": "0.3.0", + "engine_pin": "proof-core 0.4.0", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "spec_revision": "SPEC-1 v3.2", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2" + } + } + } +} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/preflight-second.json b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/preflight-second.json new file mode 100644 index 0000000..7194008 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/preflight-second.json @@ -0,0 +1,175 @@ +{ + "checked_utc": "2026-10-06T20:03:20.973435+00:00", + "responses": { + "issuer_build": { + "service": "issuer-agent", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "rail": "classical-seller-v0", + "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", + "signing_key_id": "9ddd3b08a70e35065788ca08d5f22761df22f77611755ccae13fe8809ac3a6cd", + "chain_id": "mintid-testnet-2", + "chain_generation": 1, + "kyc_provider": "sandbox", + "session_ttl_seconds": 86400, + "permitted_grades": [ + 1, + 2, + 3, + 4 + ], + "heartbeat_seconds": 30, + "validity_window_seconds": 180, + "chain_max_root_age_seconds": 180, + "status_sign_doc_version": 2, + "emergency_sign_doc_version": 2, + "status_epoch": 6284, + "current_root": "d0e99a9aab1661623e55a493f92ffb15ec274bd2870e00ae536507291ab201bf", + "last_heartbeat_unix": 1791316973, + "entries": 0, + "pending_since_root": true, + "linkage": "in_sync", + "linkage_detail": "", + "chain_finalized_epoch": 6283, + "chain_finalized_root": "c2e4e284bfd1e8cbca4cad1415202fa35d8a790e47563a2f4bb939d5075daf7e", + "chain_finalized_height": 88989, + "chain_checked_unix": 1791316972, + "unfinalized_epochs": 1, + "discarded_heartbeats": 0, + "emergency_key_id": "9df5d5558b50752f46a74368520557905a02a3e5ca255b8aa443c2441519b474", + "emergency_roots": 3, + "last_emergency": { + "status_epoch": 4807, + "root": "bb241080642a7f0f7af2927a77618a7254cfc26c69f394c9941cd9cda2d9298a", + "previous_root": "40b488a22e1bc5a38b6b2688661b77c37c44b92c7e4a76a68972783bffa58155", + "reason_code": 2, + "emergency_key_id": "9df5d5558b50752f46a74368520557905a02a3e5ca255b8aa443c2441519b474", + "tx_hash": "AF26C1BE51028EA434F4C9F5646374CA3960B24F8A5B1D69006A0F5F6F633A13", + "requested_at_unix": 1791272646, + "entries": 0, + "finalized": true + }, + "credential_rail": { + "mounted": true, + "core": "proof-core 0.4.0", + "accumulator_leaf": "a196a8d189ebfd424c1b56916894dd9c4f46d1dac8a83970f9fcd4d52d65e097", + "credentials_issued": 43, + "credentials_revoked": 15, + "finalized": { + "status_epoch": 6283, + "height": 88989, + "root": "c2e4e284bfd1e8cbca4cad1415202fa35d8a790e47563a2f4bb939d5075daf7e" + }, + "scope_sets": 5, + "agent_accumulator_leaf": "be34a3e3ae86399a9a200a0d2c992e5b45596ceb05815657ade7feb69146848b", + "agent_minting": "on", + "escrow_sealer": "kms", + "agent_mint_policy": { + "max_active_agents": 10, + "max_mints": 5, + "window_seconds": 3600, + "max_lease_seconds": 7776000, + "bundles_only": false + }, + "agent_bundles": { + "catalogue_version": "mintid.agent-bundles.v1", + "catalogue_digest": "b18bb15862ca89d0c6e7f479276eb0f6aa46e41ffdcce8b699ee8d7206328895", + "catalogue_source": "reference", + "bundles": [ + "payments", + "procurement", + "data-read" + ] + } + }, + "agent_fee_schedule": { + "source": "chain_rpc_unproven", + "mint_fee": { + "amount": "1000000", + "denom": "utestmint" + }, + "lease_fee_per_year": { + "amount": "1000000", + "denom": "utestmint" + }, + "reference_currency": "USD", + "mint_fee_reference_minor": 300, + "lease_fee_per_year_reference_minor": 1200, + "sybil_floor_reference_minor": 400, + "protocol_cut_bps": 1200, + "burn_share_bps": 3000, + "validator_share_bps": 4500, + "foundation_share_bps": 2500 + }, + "selfrevoke": { + "fold": "on", + "acked": 16, + "chain_acked": 16, + "pending": 0, + "last_fold_unix": 1791316913, + "blocked_at_version": null, + "fold_mode": "external", + "waiting_at_version": null, + "cascade_spread_beats": 8, + "agent_cover_traffic": true + } + }, + "verifier_build": { + "sdk_version": "0.3.0", + "engine_pin": "proof-core 0.4.0", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "spec_revision": "SPEC-1 v3.2", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "recognition": { + "enabled": true, + "retention_days": 90 + } + }, + "verifier_status": { + "substrate": "ok", + "checked_unix": 1791316998, + "detail": "", + "chain": { + "chain_id": "mintid-testnet-2", + "latest_height": 89003, + "latest_block_time_unix": 1791316994, + "block_age_seconds": 4 + }, + "issuers": [ + { + "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", + "reason": "ok", + "root_state": null, + "active": true, + "bond_ok": true, + "root_epoch": 6284, + "root_height": 88998, + "root_age_seconds": 25, + "fresh": true + } + ], + "promise": { + "heartbeat_seconds": 30, + "max_root_age_seconds": 180, + "note": "roots are published every heartbeat_seconds and stay fresh up to max_root_age_seconds; a revocation lands in the next root" + }, + "verifier": { + "verifier_id": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661", + "origin": "https://verifier.testnet.mintid.net", + "max_height_lag": 100, + "presentation_rail": "configured", + "sdk_version": "0.3.0", + "engine_pin": "proof-core 0.4.0", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "spec_revision": "SPEC-1 v3.2", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2" + } + } + } +} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/preflight.json b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/preflight.json new file mode 100644 index 0000000..0c47417 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/preflight.json @@ -0,0 +1,175 @@ +{ + "checked_utc": "2026-10-06T20:03:15.352454+00:00", + "responses": { + "issuer_build": { + "service": "issuer-agent", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "rail": "classical-seller-v0", + "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", + "signing_key_id": "9ddd3b08a70e35065788ca08d5f22761df22f77611755ccae13fe8809ac3a6cd", + "chain_id": "mintid-testnet-2", + "chain_generation": 1, + "kyc_provider": "sandbox", + "session_ttl_seconds": 86400, + "permitted_grades": [ + 1, + 2, + 3, + 4 + ], + "heartbeat_seconds": 30, + "validity_window_seconds": 180, + "chain_max_root_age_seconds": 180, + "status_sign_doc_version": 2, + "emergency_sign_doc_version": 2, + "status_epoch": 6284, + "current_root": "d0e99a9aab1661623e55a493f92ffb15ec274bd2870e00ae536507291ab201bf", + "last_heartbeat_unix": 1791316973, + "entries": 0, + "pending_since_root": true, + "linkage": "in_sync", + "linkage_detail": "", + "chain_finalized_epoch": 6283, + "chain_finalized_root": "c2e4e284bfd1e8cbca4cad1415202fa35d8a790e47563a2f4bb939d5075daf7e", + "chain_finalized_height": 88989, + "chain_checked_unix": 1791316972, + "unfinalized_epochs": 1, + "discarded_heartbeats": 0, + "emergency_key_id": "9df5d5558b50752f46a74368520557905a02a3e5ca255b8aa443c2441519b474", + "emergency_roots": 3, + "last_emergency": { + "status_epoch": 4807, + "root": "bb241080642a7f0f7af2927a77618a7254cfc26c69f394c9941cd9cda2d9298a", + "previous_root": "40b488a22e1bc5a38b6b2688661b77c37c44b92c7e4a76a68972783bffa58155", + "reason_code": 2, + "emergency_key_id": "9df5d5558b50752f46a74368520557905a02a3e5ca255b8aa443c2441519b474", + "tx_hash": "AF26C1BE51028EA434F4C9F5646374CA3960B24F8A5B1D69006A0F5F6F633A13", + "requested_at_unix": 1791272646, + "entries": 0, + "finalized": true + }, + "credential_rail": { + "mounted": true, + "core": "proof-core 0.4.0", + "accumulator_leaf": "a196a8d189ebfd424c1b56916894dd9c4f46d1dac8a83970f9fcd4d52d65e097", + "credentials_issued": 43, + "credentials_revoked": 15, + "finalized": { + "status_epoch": 6283, + "height": 88989, + "root": "c2e4e284bfd1e8cbca4cad1415202fa35d8a790e47563a2f4bb939d5075daf7e" + }, + "scope_sets": 5, + "agent_accumulator_leaf": "be34a3e3ae86399a9a200a0d2c992e5b45596ceb05815657ade7feb69146848b", + "agent_minting": "on", + "escrow_sealer": "kms", + "agent_mint_policy": { + "max_active_agents": 10, + "max_mints": 5, + "window_seconds": 3600, + "max_lease_seconds": 7776000, + "bundles_only": false + }, + "agent_bundles": { + "catalogue_version": "mintid.agent-bundles.v1", + "catalogue_digest": "b18bb15862ca89d0c6e7f479276eb0f6aa46e41ffdcce8b699ee8d7206328895", + "catalogue_source": "reference", + "bundles": [ + "payments", + "procurement", + "data-read" + ] + } + }, + "agent_fee_schedule": { + "source": "chain_rpc_unproven", + "mint_fee": { + "amount": "1000000", + "denom": "utestmint" + }, + "lease_fee_per_year": { + "amount": "1000000", + "denom": "utestmint" + }, + "reference_currency": "USD", + "mint_fee_reference_minor": 300, + "lease_fee_per_year_reference_minor": 1200, + "sybil_floor_reference_minor": 400, + "protocol_cut_bps": 1200, + "burn_share_bps": 3000, + "validator_share_bps": 4500, + "foundation_share_bps": 2500 + }, + "selfrevoke": { + "fold": "on", + "acked": 16, + "chain_acked": 16, + "pending": 0, + "last_fold_unix": 1791316913, + "blocked_at_version": null, + "fold_mode": "external", + "waiting_at_version": null, + "cascade_spread_beats": 8, + "agent_cover_traffic": true + } + }, + "verifier_build": { + "sdk_version": "0.3.0", + "engine_pin": "proof-core 0.4.0", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "spec_revision": "SPEC-1 v3.2", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "recognition": { + "enabled": true, + "retention_days": 90 + } + }, + "verifier_status": { + "substrate": "ok", + "checked_unix": 1791316995, + "detail": "", + "chain": { + "chain_id": "mintid-testnet-2", + "latest_height": 89002, + "latest_block_time_unix": 1791316988, + "block_age_seconds": 7 + }, + "issuers": [ + { + "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", + "reason": "ok", + "root_state": null, + "active": true, + "bond_ok": true, + "root_epoch": 6284, + "root_height": 88998, + "root_age_seconds": 22, + "fresh": true + } + ], + "promise": { + "heartbeat_seconds": 30, + "max_root_age_seconds": 180, + "note": "roots are published every heartbeat_seconds and stay fresh up to max_root_age_seconds; a revocation lands in the next root" + }, + "verifier": { + "verifier_id": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661", + "origin": "https://verifier.testnet.mintid.net", + "max_height_lag": 100, + "presentation_rail": "configured", + "sdk_version": "0.3.0", + "engine_pin": "proof-core 0.4.0", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "spec_revision": "SPEC-1 v3.2", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2" + } + } + } +} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/revocation-trace-testnet-20261006T200321Z.jsonl b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/revocation-trace-testnet-20261006T200321Z.jsonl new file mode 100644 index 0000000..8de8f33 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/revocation-trace-testnet-20261006T200321Z.jsonl @@ -0,0 +1,38 @@ +{"utc": "2026-10-06T20:03:21.462Z", "unix": 1791317001.462, "t": 0.0, "kind": "source", "revision": "b678e5cd6b5736e1795fd18d497fd8e501272dcd", "public_tags": ["public-v2026-10-07"], "tracked_changes": false, "services_revision_stated": null} +{"utc": "2026-10-06T20:03:21.995Z", "unix": 1791317001.996, "t": 0.534, "kind": "stack", "chain_id": "mintid-testnet-2", "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", "verifier_id": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661", "kyc_provider": "sandbox", "issuer_url": "https://issuer.testnet.mintid.net", "verifier_url": "https://verifier.testnet.mintid.net", "rpc": "https://rpc.testnet.mintid.net", "relay": "https://relay.testnet.mintid.net"} +{"utc": "2026-10-06T20:03:22.073Z", "unix": 1791317002.073, "t": 0.611, "kind": "build", "issuer": {"source_revision": "497509ebf0c3", "release": "public-v2026-10-06.2", "signing_key_id": "9ddd3b08a70e35065788ca08d5f22761df22f77611755ccae13fe8809ac3a6cd"}, "verifier": {"engine_pin": "proof-core 0.4.0", "sdk_version": "0.3.0", "spec_revision": "SPEC-1 v3.2", "state_vectors_version": "mintid-proofvector-1/h2", "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", "conformance_suite_version": "1.0.0", "source_revision": "497509ebf0c3", "release": "public-v2026-10-06.2"}} +{"utc": "2026-10-06T20:03:22.073Z", "unix": 1791317002.073, "t": 0.611, "kind": "policy", "claim_policy": [{"claim": "human_backed", "value": true}, {"claim": "pairwise_pseudonym", "value": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661"}, {"claim": "assurance_grade", "operator": ">=", "value": "A2"}, {"claim": "counterparty_includes", "value": "eip155:8453:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"}, {"claim": "delegated_scope_includes", "value": "payments.initiate"}, {"claim": "category_in", "value": "mcc:5812"}, {"claim": "geo_in", "value": "iso3166-1:ES"}, {"claim": "transaction_limit", "operator": ">=", "value": "5000000 USDC"}, {"claim": "key_custody_class", "operator": ">=", "value": "tpm"}, {"claim": "unexpired", "value": true}, {"claim": "credential_active", "value": true}], "issuer_policy": {"accepted_issuer_ids": ["3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b"]}, "sha256": "9f02f1c77044017c9b411a7d069cbc4fd5311087fc09c91e4cfd1ec5e29c3577"} +{"utc": "2026-10-06T20:03:23.616Z", "unix": 1791317003.616, "t": 2.154, "kind": "verifier_status", "when": "before", "observed_unix": 1791317002, "substrate": "ok", "chain_height": 89004, "root_epoch": 6284, "root_height": 88998, "root_age_seconds": 29, "fresh": true, "max_root_age_seconds": 180, "heartbeat_seconds": 30, "max_height_lag": 100} +{"utc": "2026-10-06T20:03:24.686Z", "unix": 1791317004.686, "t": 3.224, "kind": "kyc_session", "principal": "principal1", "driver": "sandbox", "hint": "sandbox:approved:g3", "outcome": "approved", "grade": 3} +{"utc": "2026-10-06T20:03:25.490Z", "unix": 1791317005.491, "t": 4.029, "kind": "identity_credential", "principal": "principal1", "credential": "6229a024fea3\u2026"} +{"utc": "2026-10-06T20:03:39.775Z", "unix": 1791317019.775, "t": 18.313, "kind": "kyc_session", "principal": "principal2", "driver": "sandbox", "hint": "sandbox:approved:g3", "outcome": "approved", "grade": 3} +{"utc": "2026-10-06T20:03:49.191Z", "unix": 1791317029.191, "t": 27.729, "kind": "agents_minted", "count": 5} +{"utc": "2026-10-06T20:04:01.484Z", "unix": 1791317041.484, "t": 40.022, "kind": "wait", "what": "a finalized root committing the agents and their scope", "seconds": 12.1} +{"utc": "2026-10-06T20:04:10.749Z", "unix": 1791317050.749, "t": 49.287, "kind": "wait", "what": "every agent usable", "seconds": 9.3} +{"utc": "2026-10-06T20:04:11.601Z", "unix": 1791317051.601, "t": 50.139, "kind": "parameters", "A": 180, "H": 30, "K": 5, "G": 60, "cascade_spread_beats": 8} +{"utc": "2026-10-06T20:04:17.823Z", "unix": 1791317057.823, "t": 56.361, "kind": "decision", "path": "kill_switch", "agent": "agent_kill_switch", "attempt": "baseline", "session_id": "465fd655589c31952ba125bb8400c74b", "accepted": true, "reason_code": "accepted", "presented_root": "2d10c58381f9b74e4db15e3ea05e24f90cd92032f94716d7878bcd4ddcf8b8dc", "present_seconds": 3.609, "validate_seconds": 1.964, "chain_height_after": 89020, "verified": {}} +{"utc": "2026-10-06T20:04:23.729Z", "unix": 1791317063.73, "t": 62.268, "kind": "trigger", "path": "kill_switch", "action": "self_revoke \u2192 privacy relay", "receipt": "pending", "recorded_height": 89023, "recorded_utc": "2026-10-06T20:04:20.518Z", "request_utc": "2026-10-06T20:04:18.786Z", "response_utc": "2026-10-06T20:04:23.704Z", "response_seconds": 4.918, "unconfirmed": null} +{"utc": "2026-10-06T20:04:28.918Z", "unix": 1791317068.919, "t": 67.457, "kind": "decision", "path": "kill_switch", "agent": "agent_kill_switch", "attempt": "forced", "session_id": "3d68c34cadd06ca480c8985553dd7c87", "accepted": false, "reason_code": "status_root_stale", "presented_root": "2d10c58381f9b74e4db15e3ea05e24f90cd92032f94716d7878bcd4ddcf8b8dc", "present_seconds": 3.423, "validate_seconds": 0.742, "chain_height_after": 89025, "verified": {}} +{"utc": "2026-10-06T20:04:34.216Z", "unix": 1791317074.216, "t": 72.754, "kind": "decision", "path": "kill_switch", "agent": "agent_kill_switch", "attempt": "forced_confirm", "session_id": "9e5c5b46a67c8f6326d9d933957e8e9c", "accepted": false, "reason_code": "status_root_stale", "presented_root": "2d10c58381f9b74e4db15e3ea05e24f90cd92032f94716d7878bcd4ddcf8b8dc", "present_seconds": 3.614, "validate_seconds": 1.572, "chain_height_after": 89027, "verified": {}} +{"utc": "2026-10-06T20:04:34.267Z", "unix": 1791317074.268, "t": 72.806, "kind": "ring_at_denial", "path": "kill_switch", "agent": "agent_kill_switch", "ring": [{"status_epoch": 6280, "root": "a5a13b59c78a9d8cf08f843c638d9b6a6ebddd1399beff5bcefb4def16d4849f", "finalized_height": 88947, "generated_at_unix": 1791316823, "valid_until_unix": 1791317003, "ack": 15, "emergency": false}, {"status_epoch": 6281, "root": "3c81eeb69e7021097ee8fec7f66721ee273fa8db6d3d5c52a0e276a63c939e6a", "finalized_height": 88961, "generated_at_unix": 1791316852, "valid_until_unix": 1791317032, "ack": 15, "emergency": false}, {"status_epoch": 6282, "root": "c996965d925f032d350f88d6a2a7a0319b5e54a05e8cd73cea2dd78a54c77ad4", "finalized_height": 88975, "generated_at_unix": 1791316882, "valid_until_unix": 1791317062, "ack": 15, "emergency": false}, {"status_epoch": 6283, "root": "c2e4e284bfd1e8cbca4cad1415202fa35d8a790e47563a2f4bb939d5075daf7e", "finalized_height": 88989, "generated_at_unix": 1791316944, "valid_until_unix": 1791317124, "ack": 16, "emergency": false}, {"status_epoch": 6284, "root": "d0e99a9aab1661623e55a493f92ffb15ec274bd2870e00ae536507291ab201bf", "finalized_height": 88998, "generated_at_unix": 1791316973, "valid_until_unix": 1791317153, "ack": 16, "emergency": false}, {"status_epoch": 6285, "root": "c113cf6fb2c1845a4cfeb37cb3fc0b36be4d4c04e79aae8840171bce8c3b79ff", "finalized_height": 89006, "generated_at_unix": 1791317003, "valid_until_unix": 1791317183, "ack": 16, "emergency": false}, {"status_epoch": 6286, "root": "2d10c58381f9b74e4db15e3ea05e24f90cd92032f94716d7878bcd4ddcf8b8dc", "finalized_height": 89014, "generated_at_unix": 1791317032, "valid_until_unix": 1791317212, "ack": 16, "emergency": false}, {"status_epoch": 6287, "root": "dd141ec03d7c5b7c39008c324a1485dd7d03ca9246fe540ad7a128245952d1fb", "finalized_height": 89024, "generated_at_unix": 1791317063, "valid_until_unix": 1791317243, "ack": 16, "emergency": false}]} +{"utc": "2026-10-06T20:04:57.586Z", "unix": 1791317097.586, "t": 96.124, "kind": "holder_refresh", "path": "kill_switch", "agent": "agent_kill_switch", "outcome": "credential_revoked", "note": "an honest client stops presenting here"} +{"utc": "2026-10-06T20:04:59.282Z", "unix": 1791317099.283, "t": 97.821, "kind": "path_done", "path": "kill_switch", "deny": ["2026-10-06T20:04:28.918Z"]} +{"utc": "2026-10-06T20:05:06.820Z", "unix": 1791317106.82, "t": 105.358, "kind": "decision", "path": "cascade", "agent": "cascade_agent_1", "attempt": "baseline", "session_id": "c90d37e615ae922ab4b05226478589ab", "accepted": false, "reason_code": "status_root_stale", "presented_root": "dd141ec03d7c5b7c39008c324a1485dd7d03ca9246fe540ad7a128245952d1fb", "present_seconds": 3.581, "validate_seconds": 0.391, "chain_height_after": 89039, "verified": {}} +{"utc": "2026-10-06T20:05:16.917Z", "unix": 1791317116.918, "t": 115.456, "kind": "decision", "path": "cascade", "agent": "cascade_agent_2", "attempt": "baseline", "session_id": "fe8a99a259400a8307b84cfec589e2bf", "accepted": true, "reason_code": "accepted", "presented_root": "9c7f255baa4bf89c9b9d3ca40909e9a645df5cf905aab6964423eab52a7f79db", "present_seconds": 6.34, "validate_seconds": 3.643, "chain_height_after": 89042, "verified": {}} +{"utc": "2026-10-06T20:05:17.411Z", "unix": 1791317117.412, "t": 115.95, "kind": "trigger", "path": "cascade", "action": "POST /v1/credentials/{principal}/revoke", "http": 200, "status": "revoked", "request_utc": "2026-10-06T20:05:17.035Z", "response_utc": "2026-10-06T20:05:17.173Z", "response_seconds": 0.138, "issuer_built_epoch": 6288, "cascade_spread_beats": 8} +{"utc": "2026-10-06T20:05:39.510Z", "unix": 1791317139.511, "t": 138.049, "kind": "decision", "path": "cascade", "agent": "cascade_agent_1", "attempt": "forced", "session_id": "70cd3ab0dc6dda2baa198158acd51934", "accepted": true, "reason_code": "accepted", "presented_root": "9a20b72edb2104517c5c2d8f297d83ddddaa63d2cde47852cf5dd4335f934186", "present_seconds": 3.539, "validate_seconds": 2.778, "chain_height_after": 89050, "verified": {}} +{"utc": "2026-10-06T20:05:48.320Z", "unix": 1791317148.321, "t": 146.859, "kind": "decision", "path": "cascade", "agent": "cascade_agent_2", "attempt": "forced", "session_id": "78e601d5fabca2396e46c1fae6eb8501", "accepted": true, "reason_code": "accepted", "presented_root": "9a20b72edb2104517c5c2d8f297d83ddddaa63d2cde47852cf5dd4335f934186", "present_seconds": 3.643, "validate_seconds": 2.406, "chain_height_after": 89052, "verified": {}} +{"utc": "2026-10-06T20:05:57.416Z", "unix": 1791317157.416, "t": 155.954, "kind": "decision", "path": "cascade", "agent": "cascade_agent_1", "attempt": "forced", "session_id": "d773cb8e6366afbf148355186bbf5f03", "accepted": true, "reason_code": "accepted", "presented_root": "9a20b72edb2104517c5c2d8f297d83ddddaa63d2cde47852cf5dd4335f934186", "present_seconds": 3.615, "validate_seconds": 1.951, "chain_height_after": 89055, "verified": {}} +{"utc": "2026-10-06T20:06:06.705Z", "unix": 1791317166.706, "t": 165.244, "kind": "decision", "path": "cascade", "agent": "cascade_agent_2", "attempt": "forced", "session_id": "eab182f0e859c9b9a7f386e6810fadf3", "accepted": false, "reason_code": "status_root_stale", "presented_root": "9a20b72edb2104517c5c2d8f297d83ddddaa63d2cde47852cf5dd4335f934186", "present_seconds": 3.925, "validate_seconds": 2.291, "chain_height_after": 89058, "verified": {}} +{"utc": "2026-10-06T20:06:11.338Z", "unix": 1791317171.338, "t": 169.876, "kind": "decision", "path": "cascade", "agent": "cascade_agent_2", "attempt": "forced_confirm", "session_id": "fe31ae10913db0c0a44490d105aed5eb", "accepted": false, "reason_code": "status_root_stale", "presented_root": "9a20b72edb2104517c5c2d8f297d83ddddaa63d2cde47852cf5dd4335f934186", "present_seconds": 3.731, "validate_seconds": 0.769, "chain_height_after": 89060, "verified": {}} +{"utc": "2026-10-06T20:06:11.389Z", "unix": 1791317171.39, "t": 169.928, "kind": "ring_at_denial", "path": "cascade", "agent": "cascade_agent_2", "ring": [{"status_epoch": 6283, "root": "c2e4e284bfd1e8cbca4cad1415202fa35d8a790e47563a2f4bb939d5075daf7e", "finalized_height": 88989, "generated_at_unix": 1791316944, "valid_until_unix": 1791317124, "ack": 16, "emergency": false}, {"status_epoch": 6284, "root": "d0e99a9aab1661623e55a493f92ffb15ec274bd2870e00ae536507291ab201bf", "finalized_height": 88998, "generated_at_unix": 1791316973, "valid_until_unix": 1791317153, "ack": 16, "emergency": false}, {"status_epoch": 6285, "root": "c113cf6fb2c1845a4cfeb37cb3fc0b36be4d4c04e79aae8840171bce8c3b79ff", "finalized_height": 89006, "generated_at_unix": 1791317003, "valid_until_unix": 1791317183, "ack": 16, "emergency": false}, {"status_epoch": 6286, "root": "2d10c58381f9b74e4db15e3ea05e24f90cd92032f94716d7878bcd4ddcf8b8dc", "finalized_height": 89014, "generated_at_unix": 1791317032, "valid_until_unix": 1791317212, "ack": 16, "emergency": false}, {"status_epoch": 6287, "root": "dd141ec03d7c5b7c39008c324a1485dd7d03ca9246fe540ad7a128245952d1fb", "finalized_height": 89024, "generated_at_unix": 1791317063, "valid_until_unix": 1791317243, "ack": 16, "emergency": false}, {"status_epoch": 6288, "root": "9c7f255baa4bf89c9b9d3ca40909e9a645df5cf905aab6964423eab52a7f79db", "finalized_height": 89036, "generated_at_unix": 1791317093, "valid_until_unix": 1791317273, "ack": 17, "emergency": false}, {"status_epoch": 6289, "root": "9a20b72edb2104517c5c2d8f297d83ddddaa63d2cde47852cf5dd4335f934186", "finalized_height": 89047, "generated_at_unix": 1791317124, "valid_until_unix": 1791317304, "ack": 17, "emergency": false}, {"status_epoch": 6290, "root": "b6a163d5e8a0edf501b0b57c5ed0aee7eb0062bb80ef591633158e40b92868d4", "finalized_height": 89055, "generated_at_unix": 1791317153, "valid_until_unix": 1791317333, "ack": 17, "emergency": false}]} +{"utc": "2026-10-06T20:06:20.617Z", "unix": 1791317180.618, "t": 179.156, "kind": "decision", "path": "cascade", "agent": "cascade_agent_1", "attempt": "forced", "session_id": "01f51947d4cde3f0832ebf70cbdacf3e", "accepted": true, "reason_code": "accepted", "presented_root": "b6a163d5e8a0edf501b0b57c5ed0aee7eb0062bb80ef591633158e40b92868d4", "present_seconds": 3.714, "validate_seconds": 2.036, "chain_height_after": 89063, "verified": {}} +{"utc": "2026-10-06T20:06:30.824Z", "unix": 1791317190.825, "t": 189.363, "kind": "decision", "path": "cascade", "agent": "cascade_agent_1", "attempt": "forced", "session_id": "be02017f1cd76cb4172e2fe1a1e5ddd1", "accepted": false, "reason_code": "status_root_stale", "presented_root": "b6a163d5e8a0edf501b0b57c5ed0aee7eb0062bb80ef591633158e40b92868d4", "present_seconds": 4.336, "validate_seconds": 1.192, "chain_height_after": 89067, "verified": {}} +{"utc": "2026-10-06T20:06:35.113Z", "unix": 1791317195.114, "t": 193.652, "kind": "decision", "path": "cascade", "agent": "cascade_agent_1", "attempt": "forced_confirm", "session_id": "86f53523b2c4d28174fe95bbf7f33dc0", "accepted": false, "reason_code": "status_root_stale", "presented_root": "b6a163d5e8a0edf501b0b57c5ed0aee7eb0062bb80ef591633158e40b92868d4", "present_seconds": 3.706, "validate_seconds": 0.47, "chain_height_after": 89069, "verified": {}} +{"utc": "2026-10-06T20:06:35.166Z", "unix": 1791317195.167, "t": 193.705, "kind": "ring_at_denial", "path": "cascade", "agent": "cascade_agent_1", "ring": [{"status_epoch": 6284, "root": "d0e99a9aab1661623e55a493f92ffb15ec274bd2870e00ae536507291ab201bf", "finalized_height": 88998, "generated_at_unix": 1791316973, "valid_until_unix": 1791317153, "ack": 16, "emergency": false}, {"status_epoch": 6285, "root": "c113cf6fb2c1845a4cfeb37cb3fc0b36be4d4c04e79aae8840171bce8c3b79ff", "finalized_height": 89006, "generated_at_unix": 1791317003, "valid_until_unix": 1791317183, "ack": 16, "emergency": false}, {"status_epoch": 6286, "root": "2d10c58381f9b74e4db15e3ea05e24f90cd92032f94716d7878bcd4ddcf8b8dc", "finalized_height": 89014, "generated_at_unix": 1791317032, "valid_until_unix": 1791317212, "ack": 16, "emergency": false}, {"status_epoch": 6287, "root": "dd141ec03d7c5b7c39008c324a1485dd7d03ca9246fe540ad7a128245952d1fb", "finalized_height": 89024, "generated_at_unix": 1791317063, "valid_until_unix": 1791317243, "ack": 16, "emergency": false}, {"status_epoch": 6288, "root": "9c7f255baa4bf89c9b9d3ca40909e9a645df5cf905aab6964423eab52a7f79db", "finalized_height": 89036, "generated_at_unix": 1791317093, "valid_until_unix": 1791317273, "ack": 17, "emergency": false}, {"status_epoch": 6289, "root": "9a20b72edb2104517c5c2d8f297d83ddddaa63d2cde47852cf5dd4335f934186", "finalized_height": 89047, "generated_at_unix": 1791317124, "valid_until_unix": 1791317304, "ack": 17, "emergency": false}, {"status_epoch": 6290, "root": "b6a163d5e8a0edf501b0b57c5ed0aee7eb0062bb80ef591633158e40b92868d4", "finalized_height": 89055, "generated_at_unix": 1791317153, "valid_until_unix": 1791317333, "ack": 17, "emergency": false}, {"status_epoch": 6291, "root": "ab777c9ec2fe73443dec1145771fb5e4afff74034df0a8f5a9737d2b5448e222", "finalized_height": 89066, "generated_at_unix": 1791317183, "valid_until_unix": 1791317363, "ack": 17, "emergency": false}]} +{"utc": "2026-10-06T20:06:59.945Z", "unix": 1791317219.945, "t": 218.483, "kind": "holder_refresh", "path": "cascade", "agent": "cascade_agent_2", "outcome": "credential_revoked", "note": "an honest client stops presenting here"} +{"utc": "2026-10-06T20:07:54.123Z", "unix": 1791317274.124, "t": 272.662, "kind": "holder_refresh", "path": "cascade", "agent": "cascade_agent_1", "outcome": "credential_revoked", "note": "an honest client stops presenting here"} +{"utc": "2026-10-06T20:07:56.465Z", "unix": 1791317276.466, "t": 275.004, "kind": "path_done", "path": "cascade", "deny": ["2026-10-06T20:06:30.824Z", "2026-10-06T20:06:06.705Z"]} +{"utc": "2026-10-06T20:07:56.552Z", "unix": 1791317276.552, "t": 275.09, "kind": "verifier_status", "when": "after", "observed_unix": 1791317276, "substrate": "ok", "chain_height": 89098, "root_epoch": 6293, "root_height": 89087, "root_age_seconds": 33, "fresh": true, "max_root_age_seconds": 180, "heartbeat_seconds": 30, "max_height_lag": 100} +{"utc": "2026-10-06T20:07:56.552Z", "unix": 1791317276.553, "t": 275.091, "kind": "decision_log", "source": "not read (operator only: MINTID_VERIFIER_CONSOLE_PASSWORD)", "lines_read": 0} +{"utc": "2026-10-06T20:07:56.552Z", "unix": 1791317276.553, "t": 275.091, "kind": "summary", "results": [{"path": "kill_switch", "t0": 1791317060.5184927, "t0_def": "the recording of the nullifier on chain (block time of the relay's tx)", "bound_seconds": 245, "bound_formula": "t0 + G + A + K", "last_ok": null, "first_no": {"utc": "2026-10-06T20:04:28.918Z", "unix": 1791317068.919, "t": 67.457, "kind": "decision", "path": "kill_switch", "agent": "agent_kill_switch", "attempt": "forced", "session_id": "3d68c34cadd06ca480c8985553dd7c87", "accepted": false, "reason_code": "status_root_stale", "presented_root": "2d10c58381f9b74e4db15e3ea05e24f90cd92032f94716d7878bcd4ddcf8b8dc", "present_seconds": 3.423, "validate_seconds": 0.742, "chain_height_after": 89025, "verified": {}, "confirmed_by": "status_root_stale", "ring_at_denial": [{"status_epoch": 6280, "root": "a5a13b59c78a9d8cf08f843c638d9b6a6ebddd1399beff5bcefb4def16d4849f", "finalized_height": 88947, "generated_at_unix": 1791316823, "valid_until_unix": 1791317003, "ack": 15, "emergency": false}, {"status_epoch": 6281, "root": "3c81eeb69e7021097ee8fec7f66721ee273fa8db6d3d5c52a0e276a63c939e6a", "finalized_height": 88961, "generated_at_unix": 1791316852, "valid_until_unix": 1791317032, "ack": 15, "emergency": false}, {"status_epoch": 6282, "root": "c996965d925f032d350f88d6a2a7a0319b5e54a05e8cd73cea2dd78a54c77ad4", "finalized_height": 88975, "generated_at_unix": 1791316882, "valid_until_unix": 1791317062, "ack": 15, "emergency": false}, {"status_epoch": 6283, "root": "c2e4e284bfd1e8cbca4cad1415202fa35d8a790e47563a2f4bb939d5075daf7e", "finalized_height": 88989, "generated_at_unix": 1791316944, "valid_until_unix": 1791317124, "ack": 16, "emergency": false}, {"status_epoch": 6284, "root": "d0e99a9aab1661623e55a493f92ffb15ec274bd2870e00ae536507291ab201bf", "finalized_height": 88998, "generated_at_unix": 1791316973, "valid_until_unix": 1791317153, "ack": 16, "emergency": false}, {"status_epoch": 6285, "root": "c113cf6fb2c1845a4cfeb37cb3fc0b36be4d4c04e79aae8840171bce8c3b79ff", "finalized_height": 89006, "generated_at_unix": 1791317003, "valid_until_unix": 1791317183, "ack": 16, "emergency": false}, {"status_epoch": 6286, "root": "2d10c58381f9b74e4db15e3ea05e24f90cd92032f94716d7878bcd4ddcf8b8dc", "finalized_height": 89014, "generated_at_unix": 1791317032, "valid_until_unix": 1791317212, "ack": 16, "emergency": false}, {"status_epoch": 6287, "root": "dd141ec03d7c5b7c39008c324a1485dd7d03ca9246fe540ad7a128245952d1fb", "finalized_height": 89024, "generated_at_unix": 1791317063, "valid_until_unix": 1791317243, "ack": 16, "emergency": false}]}, "refresh_failed_at": 1791317097.5863032, "carrying_root": null, "status_before": {"observed_unix": 1791317057, "substrate": "ok", "chain_height": 89020, "root_epoch": 6286, "root_height": 89014, "root_age_seconds": 25, "fresh": true, "max_root_age_seconds": 180, "heartbeat_seconds": 30, "max_height_lag": 100}, "status_after_path": {"observed_unix": 1791317099, "substrate": "ok", "chain_height": 89036, "root_epoch": 6287, "root_height": 89024, "root_age_seconds": 36, "fresh": true, "max_root_age_seconds": 180, "heartbeat_seconds": 30, "max_height_lag": 100}}, {"path": "cascade", "t0": 1791317124, "t0_def": "generation of the trigger root (the root carrying the principal's revocation)", "bound_seconds": 395, "bound_formula": "t_T + 7\u00b7H + A + K", "trigger_root": {"status_epoch": 6289, "root": "9a20b72edb2104517c5c2d8f297d83ddddaa63d2cde47852cf5dd4335f934186", "finalized_height": 89047, "generated_at_unix": 1791317124, "valid_until_unix": 1791317304, "ack": 17, "emergency": false, "finalized_at_unix": 1791317124.1542513, "finalized_at_utc": "2026-10-06T20:05:24.154Z"}, "per_agent": {"cascade_agent_1": {"last_ok": {"utc": "2026-10-06T20:06:20.617Z", "unix": 1791317180.618, "t": 179.156, "kind": "decision", "path": "cascade", "agent": "cascade_agent_1", "attempt": "forced", "session_id": "01f51947d4cde3f0832ebf70cbdacf3e", "accepted": true, "reason_code": "accepted", "presented_root": "b6a163d5e8a0edf501b0b57c5ed0aee7eb0062bb80ef591633158e40b92868d4", "present_seconds": 3.714, "validate_seconds": 2.036, "chain_height_after": 89063, "verified": {}}, "first_no": {"utc": "2026-10-06T20:06:30.824Z", "unix": 1791317190.825, "t": 189.363, "kind": "decision", "path": "cascade", "agent": "cascade_agent_1", "attempt": "forced", "session_id": "be02017f1cd76cb4172e2fe1a1e5ddd1", "accepted": false, "reason_code": "status_root_stale", "presented_root": "b6a163d5e8a0edf501b0b57c5ed0aee7eb0062bb80ef591633158e40b92868d4", "present_seconds": 4.336, "validate_seconds": 1.192, "chain_height_after": 89067, "verified": {}, "confirmed_by": "status_root_stale", "ring_at_denial": [{"status_epoch": 6284, "root": "d0e99a9aab1661623e55a493f92ffb15ec274bd2870e00ae536507291ab201bf", "finalized_height": 88998, "generated_at_unix": 1791316973, "valid_until_unix": 1791317153, "ack": 16, "emergency": false}, {"status_epoch": 6285, "root": "c113cf6fb2c1845a4cfeb37cb3fc0b36be4d4c04e79aae8840171bce8c3b79ff", "finalized_height": 89006, "generated_at_unix": 1791317003, "valid_until_unix": 1791317183, "ack": 16, "emergency": false}, {"status_epoch": 6286, "root": "2d10c58381f9b74e4db15e3ea05e24f90cd92032f94716d7878bcd4ddcf8b8dc", "finalized_height": 89014, "generated_at_unix": 1791317032, "valid_until_unix": 1791317212, "ack": 16, "emergency": false}, {"status_epoch": 6287, "root": "dd141ec03d7c5b7c39008c324a1485dd7d03ca9246fe540ad7a128245952d1fb", "finalized_height": 89024, "generated_at_unix": 1791317063, "valid_until_unix": 1791317243, "ack": 16, "emergency": false}, {"status_epoch": 6288, "root": "9c7f255baa4bf89c9b9d3ca40909e9a645df5cf905aab6964423eab52a7f79db", "finalized_height": 89036, "generated_at_unix": 1791317093, "valid_until_unix": 1791317273, "ack": 17, "emergency": false}, {"status_epoch": 6289, "root": "9a20b72edb2104517c5c2d8f297d83ddddaa63d2cde47852cf5dd4335f934186", "finalized_height": 89047, "generated_at_unix": 1791317124, "valid_until_unix": 1791317304, "ack": 17, "emergency": false}, {"status_epoch": 6290, "root": "b6a163d5e8a0edf501b0b57c5ed0aee7eb0062bb80ef591633158e40b92868d4", "finalized_height": 89055, "generated_at_unix": 1791317153, "valid_until_unix": 1791317333, "ack": 17, "emergency": false}, {"status_epoch": 6291, "root": "ab777c9ec2fe73443dec1145771fb5e4afff74034df0a8f5a9737d2b5448e222", "finalized_height": 89066, "generated_at_unix": 1791317183, "valid_until_unix": 1791317363, "ack": 17, "emergency": false}]}, "refresh_failed_at": 1791317274.123782}, "cascade_agent_2": {"last_ok": {"utc": "2026-10-06T20:05:48.320Z", "unix": 1791317148.321, "t": 146.859, "kind": "decision", "path": "cascade", "agent": "cascade_agent_2", "attempt": "forced", "session_id": "78e601d5fabca2396e46c1fae6eb8501", "accepted": true, "reason_code": "accepted", "presented_root": "9a20b72edb2104517c5c2d8f297d83ddddaa63d2cde47852cf5dd4335f934186", "present_seconds": 3.643, "validate_seconds": 2.406, "chain_height_after": 89052, "verified": {}}, "first_no": {"utc": "2026-10-06T20:06:06.705Z", "unix": 1791317166.706, "t": 165.244, "kind": "decision", "path": "cascade", "agent": "cascade_agent_2", "attempt": "forced", "session_id": "eab182f0e859c9b9a7f386e6810fadf3", "accepted": false, "reason_code": "status_root_stale", "presented_root": "9a20b72edb2104517c5c2d8f297d83ddddaa63d2cde47852cf5dd4335f934186", "present_seconds": 3.925, "validate_seconds": 2.291, "chain_height_after": 89058, "verified": {}, "confirmed_by": "status_root_stale", "ring_at_denial": [{"status_epoch": 6283, "root": "c2e4e284bfd1e8cbca4cad1415202fa35d8a790e47563a2f4bb939d5075daf7e", "finalized_height": 88989, "generated_at_unix": 1791316944, "valid_until_unix": 1791317124, "ack": 16, "emergency": false}, {"status_epoch": 6284, "root": "d0e99a9aab1661623e55a493f92ffb15ec274bd2870e00ae536507291ab201bf", "finalized_height": 88998, "generated_at_unix": 1791316973, "valid_until_unix": 1791317153, "ack": 16, "emergency": false}, {"status_epoch": 6285, "root": "c113cf6fb2c1845a4cfeb37cb3fc0b36be4d4c04e79aae8840171bce8c3b79ff", "finalized_height": 89006, "generated_at_unix": 1791317003, "valid_until_unix": 1791317183, "ack": 16, "emergency": false}, {"status_epoch": 6286, "root": "2d10c58381f9b74e4db15e3ea05e24f90cd92032f94716d7878bcd4ddcf8b8dc", "finalized_height": 89014, "generated_at_unix": 1791317032, "valid_until_unix": 1791317212, "ack": 16, "emergency": false}, {"status_epoch": 6287, "root": "dd141ec03d7c5b7c39008c324a1485dd7d03ca9246fe540ad7a128245952d1fb", "finalized_height": 89024, "generated_at_unix": 1791317063, "valid_until_unix": 1791317243, "ack": 16, "emergency": false}, {"status_epoch": 6288, "root": "9c7f255baa4bf89c9b9d3ca40909e9a645df5cf905aab6964423eab52a7f79db", "finalized_height": 89036, "generated_at_unix": 1791317093, "valid_until_unix": 1791317273, "ack": 17, "emergency": false}, {"status_epoch": 6289, "root": "9a20b72edb2104517c5c2d8f297d83ddddaa63d2cde47852cf5dd4335f934186", "finalized_height": 89047, "generated_at_unix": 1791317124, "valid_until_unix": 1791317304, "ack": 17, "emergency": false}, {"status_epoch": 6290, "root": "b6a163d5e8a0edf501b0b57c5ed0aee7eb0062bb80ef591633158e40b92868d4", "finalized_height": 89055, "generated_at_unix": 1791317153, "valid_until_unix": 1791317333, "ack": 17, "emergency": false}]}, "refresh_failed_at": 1791317219.9454076}}, "status_before": {"observed_unix": 1791317116, "substrate": "ok", "chain_height": 89042, "root_epoch": 6288, "root_height": 89036, "root_age_seconds": 23, "fresh": true, "max_root_age_seconds": 180, "heartbeat_seconds": 30, "max_height_lag": 100}, "trigger_request_unix": 1791317117.173881, "status_after_path": {"observed_unix": 1791317276, "substrate": "ok", "chain_height": 89098, "root_epoch": 6293, "root_height": 89087, "root_age_seconds": 33, "fresh": true, "max_root_age_seconds": 180, "heartbeat_seconds": 30, "max_height_lag": 100}}]} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/revocation-trace-testnet-20261006T200321Z.manifest.json b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/revocation-trace-testnet-20261006T200321Z.manifest.json new file mode 100644 index 0000000..1e757e7 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/revocation-trace-testnet-20261006T200321Z.manifest.json @@ -0,0 +1,459 @@ +{ + "schema": "mintid-trace-manifest/2", + "record": "revocation-trace-testnet-20261006T200321Z", + "derived": false, + "started_utc": "2026-10-06T20:03:21.462Z", + "source": { + "revision": "b678e5cd6b5736e1795fd18d497fd8e501272dcd", + "public_tags": [ + "public-v2026-10-07" + ], + "tracked_changes": false, + "services_revision_stated": null + }, + "stated": null, + "deployment": { + "target": "testnet", + "chain_id": "mintid-testnet-2", + "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", + "verifier_id": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661", + "kyc_provider": "sandbox", + "endpoints": { + "issuer_url": "https://issuer.testnet.mintid.net", + "verifier_url": "https://verifier.testnet.mintid.net", + "rpc": "https://rpc.testnet.mintid.net", + "relay": "https://relay.testnet.mintid.net" + }, + "build": { + "issuer": { + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "signing_key_id": "9ddd3b08a70e35065788ca08d5f22761df22f77611755ccae13fe8809ac3a6cd" + }, + "verifier": { + "engine_pin": "proof-core 0.4.0", + "sdk_version": "0.3.0", + "spec_revision": "SPEC-1 v3.2", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2" + } + }, + "services": { + "verifier": { + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "basis": "build-info" + }, + "issuer": { + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "basis": "build-info" + } + }, + "parameters": { + "A": 180, + "H": 30, + "K": 5, + "G": 60, + "cascade_spread_beats": 8 + }, + "max_root_age_seconds": 180, + "heartbeat_seconds": 30, + "max_height_lag": 100 + }, + "policy": { + "claim_policy": [ + { + "claim": "human_backed", + "value": true + }, + { + "claim": "pairwise_pseudonym", + "value": "6f4c5d1becd3c47e56efcbfc950fc5d845eff13c318a8aed866613e045621661" + }, + { + "claim": "assurance_grade", + "operator": ">=", + "value": "A2" + }, + { + "claim": "counterparty_includes", + "value": "eip155:8453:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + { + "claim": "delegated_scope_includes", + "value": "payments.initiate" + }, + { + "claim": "category_in", + "value": "mcc:5812" + }, + { + "claim": "geo_in", + "value": "iso3166-1:ES" + }, + { + "claim": "transaction_limit", + "operator": ">=", + "value": "5000000 USDC" + }, + { + "claim": "key_custody_class", + "operator": ">=", + "value": "tpm" + }, + { + "claim": "unexpired", + "value": true + }, + { + "claim": "credential_active", + "value": true + } + ], + "issuer_policy": { + "accepted_issuer_ids": [ + "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b" + ] + }, + "sha256": "9f02f1c77044017c9b411a7d069cbc4fd5311087fc09c91e4cfd1ec5e29c3577" + }, + "verifier_status": { + "before": { + "observed_unix": 1791317002, + "substrate": "ok", + "chain_height": 89004, + "root_epoch": 6284, + "root_height": 88998, + "root_age_seconds": 29, + "fresh": true, + "max_root_age_seconds": 180, + "heartbeat_seconds": 30, + "max_height_lag": 100 + }, + "after": { + "observed_unix": 1791317276, + "substrate": "ok", + "chain_height": 89098, + "root_epoch": 6293, + "root_height": 89087, + "root_age_seconds": 33, + "fresh": true, + "max_root_age_seconds": 180, + "heartbeat_seconds": 30, + "max_height_lag": 100 + } + }, + "decision_log_source": "not read (operator only: MINTID_VERIFIER_CONSOLE_PASSWORD)", + "paths": [ + { + "path": "kill_switch", + "t0_unix": 1791317060.5184927, + "t0_definition": "the recording of the nullifier on chain (block time of the relay's tx)", + "bound_seconds": 245, + "bound_formula": "t0 + G + A + K", + "last_accepted": null, + "first_refused": { + "utc": "2026-10-06T20:04:28.918Z", + "seconds_after_t0": 8.4, + "session_id": "3d68c34cadd06ca480c8985553dd7c87", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 89025, + "decision_log": null + }, + "root_at_denial": { + "status_epoch": 6287, + "finalized_height": 89024, + "generated_at_unix": 1791317063, + "finalized_at_utc": null, + "emergency": false + }, + "root_carrying_revocation": null, + "refresh_refused_seconds_after_t0": 37.1, + "attribution": { + "revoked": { + "agent": "agent_kill_switch", + "refresh": { + "observation": "refused", + "outcome": "credential_revoked", + "utc": "2026-10-06T20:04:57.586Z", + "seconds_after_t0": 37.1 + } + }, + "control": null + } + }, + { + "path": "cascade", + "agent": "cascade_agent_1", + "t0_unix": 1791317124, + "t0_definition": "generation of the trigger root (the root carrying the principal's revocation)", + "bound_seconds": 395, + "bound_formula": "t_T + 7\u00b7H + A + K", + "last_accepted": { + "utc": "2026-10-06T20:06:20.617Z", + "seconds_after_t0": 56.6, + "session_id": "01f51947d4cde3f0832ebf70cbdacf3e", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 89063, + "decision_log": null + }, + "first_refused": { + "utc": "2026-10-06T20:06:30.824Z", + "seconds_after_t0": 66.8, + "session_id": "be02017f1cd76cb4172e2fe1a1e5ddd1", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 89067, + "decision_log": null + }, + "root_at_denial": { + "status_epoch": 6291, + "finalized_height": 89066, + "generated_at_unix": 1791317183, + "finalized_at_utc": null, + "emergency": false + }, + "root_carrying_revocation": { + "status_epoch": 6289, + "finalized_height": 89047, + "generated_at_unix": 1791317124, + "finalized_at_utc": "2026-10-06T20:05:24.154Z", + "emergency": false + }, + "refresh_refused_seconds_after_t0": 150.1, + "attribution": { + "revoked": { + "agent": "cascade_agent_1", + "refresh": { + "observation": "refused", + "outcome": "credential_revoked", + "utc": "2026-10-06T20:07:54.123Z", + "seconds_after_t0": 150.1 + } + }, + "control": null + } + }, + { + "path": "cascade", + "agent": "cascade_agent_2", + "t0_unix": 1791317124, + "t0_definition": "generation of the trigger root (the root carrying the principal's revocation)", + "bound_seconds": 395, + "bound_formula": "t_T + 7\u00b7H + A + K", + "last_accepted": { + "utc": "2026-10-06T20:05:48.320Z", + "seconds_after_t0": 24.3, + "session_id": "78e601d5fabca2396e46c1fae6eb8501", + "accepted": true, + "reason_code": "accepted", + "chain_height_after": 89052, + "decision_log": null + }, + "first_refused": { + "utc": "2026-10-06T20:06:06.705Z", + "seconds_after_t0": 42.7, + "session_id": "eab182f0e859c9b9a7f386e6810fadf3", + "accepted": false, + "reason_code": "status_root_stale", + "chain_height_after": 89058, + "decision_log": null + }, + "root_at_denial": { + "status_epoch": 6290, + "finalized_height": 89055, + "generated_at_unix": 1791317153, + "finalized_at_utc": null, + "emergency": false + }, + "root_carrying_revocation": { + "status_epoch": 6289, + "finalized_height": 89047, + "generated_at_unix": 1791317124, + "finalized_at_utc": "2026-10-06T20:05:24.154Z", + "emergency": false + }, + "refresh_refused_seconds_after_t0": 95.9, + "attribution": { + "revoked": { + "agent": "cascade_agent_2", + "refresh": { + "observation": "refused", + "outcome": "credential_revoked", + "utc": "2026-10-06T20:06:59.945Z", + "seconds_after_t0": 95.9 + } + }, + "control": null + } + } + ], + "decisions": [ + { + "utc": "2026-10-06T20:04:17.823Z", + "path": "kill_switch", + "agent": "agent_kill_switch", + "attempt": "baseline", + "accepted": true, + "reason_code": "accepted", + "condition": null, + "root_epoch": null, + "root_height": null, + "root_age_seconds": null + }, + { + "utc": "2026-10-06T20:04:28.918Z", + "path": "kill_switch", + "agent": "agent_kill_switch", + "attempt": "forced", + "accepted": false, + "reason_code": "status_root_stale", + "condition": null, + "root_epoch": null, + "root_height": null, + "root_age_seconds": null + }, + { + "utc": "2026-10-06T20:04:34.216Z", + "path": "kill_switch", + "agent": "agent_kill_switch", + "attempt": "forced_confirm", + "accepted": false, + "reason_code": "status_root_stale", + "condition": null, + "root_epoch": null, + "root_height": null, + "root_age_seconds": null + }, + { + "utc": "2026-10-06T20:05:06.820Z", + "path": "cascade", + "agent": "cascade_agent_1", + "attempt": "baseline", + "accepted": false, + "reason_code": "status_root_stale", + "condition": null, + "root_epoch": null, + "root_height": null, + "root_age_seconds": null + }, + { + "utc": "2026-10-06T20:05:16.917Z", + "path": "cascade", + "agent": "cascade_agent_2", + "attempt": "baseline", + "accepted": true, + "reason_code": "accepted", + "condition": null, + "root_epoch": null, + "root_height": null, + "root_age_seconds": null + }, + { + "utc": "2026-10-06T20:05:39.510Z", + "path": "cascade", + "agent": "cascade_agent_1", + "attempt": "forced", + "accepted": true, + "reason_code": "accepted", + "condition": null, + "root_epoch": null, + "root_height": null, + "root_age_seconds": null + }, + { + "utc": "2026-10-06T20:05:48.320Z", + "path": "cascade", + "agent": "cascade_agent_2", + "attempt": "forced", + "accepted": true, + "reason_code": "accepted", + "condition": null, + "root_epoch": null, + "root_height": null, + "root_age_seconds": null + }, + { + "utc": "2026-10-06T20:05:57.416Z", + "path": "cascade", + "agent": "cascade_agent_1", + "attempt": "forced", + "accepted": true, + "reason_code": "accepted", + "condition": null, + "root_epoch": null, + "root_height": null, + "root_age_seconds": null + }, + { + "utc": "2026-10-06T20:06:06.705Z", + "path": "cascade", + "agent": "cascade_agent_2", + "attempt": "forced", + "accepted": false, + "reason_code": "status_root_stale", + "condition": null, + "root_epoch": null, + "root_height": null, + "root_age_seconds": null + }, + { + "utc": "2026-10-06T20:06:11.338Z", + "path": "cascade", + "agent": "cascade_agent_2", + "attempt": "forced_confirm", + "accepted": false, + "reason_code": "status_root_stale", + "condition": null, + "root_epoch": null, + "root_height": null, + "root_age_seconds": null + }, + { + "utc": "2026-10-06T20:06:20.617Z", + "path": "cascade", + "agent": "cascade_agent_1", + "attempt": "forced", + "accepted": true, + "reason_code": "accepted", + "condition": null, + "root_epoch": null, + "root_height": null, + "root_age_seconds": null + }, + { + "utc": "2026-10-06T20:06:30.824Z", + "path": "cascade", + "agent": "cascade_agent_1", + "attempt": "forced", + "accepted": false, + "reason_code": "status_root_stale", + "condition": null, + "root_epoch": null, + "root_height": null, + "root_age_seconds": null + }, + { + "utc": "2026-10-06T20:06:35.113Z", + "path": "cascade", + "agent": "cascade_agent_1", + "attempt": "forced_confirm", + "accepted": false, + "reason_code": "status_root_stale", + "condition": null, + "root_epoch": null, + "root_height": null, + "root_age_seconds": null + } + ], + "files": { + "revocation-trace-testnet-20261006T200321Z.jsonl": "e0618e6fca7322f7e8168ce48b6ebbe8fc9a5a7b8dfdf6bc3052544266fc9076", + "revocation-trace-testnet-20261006T200321Z.md": "b339a82972c83b2d98dafed6cf0840e8eda115e1780dd921165233c692a89397" + } +} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/revocation-trace-testnet-20261006T200321Z.md b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/revocation-trace-testnet-20261006T200321Z.md new file mode 100644 index 0000000..c629233 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/revocation-trace-testnet-20261006T200321Z.md @@ -0,0 +1,65 @@ +# Revocation trace — testnet — 2026-10-06T20:03:21.462Z + +Chain `mintid-testnet-2`, issuer `3d2a9df3cc5cb853…`, verifier `6f4c5d1becd3c47e…`. Raw events: `revocation-trace-testnet-20261006T200321Z.jsonl`. Decision log: not read (operator only: MINTID_VERIFIER_CONSOLE_PASSWORD). + +## Authority evidence + +| Field | Value | +|---|---| +| Source | the issuer's status root on chain `mintid-testnet-2`, read by the verifier with an ics23 proof against the node's committed app hash at each decision (R15) | +| Revision | verifier `497509ebf0c3` (public-v2026-10-06.2), issuer `497509ebf0c3` (public-v2026-10-06.2); verifier engine `proof-core 0.4.0`, SDK 0.3.0, SPEC-1 v3.2 | +| Issuer signing key | `9ddd3b08a70e3506…` (a key id, not a revision) | +| Status/root | before: epoch 6284, finalized height 88998; after: epoch 6293, finalized height 89087 | +| Observation time | before 2026-10-06T20:03:22.000Z; after 2026-10-06T20:07:56.000Z (verifier `/v1/status`) | +| Actual age | before 29 s; after 33 s | +| Deployed freshness limit | 180 s maximum root age (heartbeat 30 s; verifier height lag 100 blocks; K = 5 s) | +| Check performed | condition 5: the proof is verified against the issuer definition (BBS key + accumulator) the newest *provable* finalized root anchors; condition 7: the presented root is the current root, or a ring entry inside its validity window, superseded within the height lag and followed by no emergency root; chain unreadable → refuse | + +Presentation lifetime: 10 s (R14) — bounds replay, not revocation; a separate field from the revocation latency below. + +## Temporal revocation + +| Path | Trigger time (t0) | Authority evidence consulted at the denial | Last accepted action | Required deny point (bound) | First observed denial | Root carrying the revocation | +|---|---|---|---|---|---|---| +| kill_switch | 2026-10-06T20:04:20.518Z — the recording of the nullifier on chain (block time of the relay's tx) | current root epoch 6287 (finalized height 89024, generated 2026-10-06T20:04:23.000Z) | none after t0 (—) | t0 + 245 s (t0 + G + A + K) = 2026-10-06T20:08:25.518Z | 2026-10-06T20:04:28.918Z (+8.4 s), `status_root_stale` | — | +| cascade (cascade_agent_1) | 2026-10-06T20:05:24.000Z — generation of the trigger root (the root carrying the principal's revocation) | current root epoch 6291 (finalized height 89066, generated 2026-10-06T20:06:23.000Z) | 2026-10-06T20:06:20.617Z (+56.6 s) | t0 + 395 s (t_T + 7·H + A + K) = 2026-10-06T20:11:59.000Z | 2026-10-06T20:06:30.824Z (+66.8 s), `status_root_stale` | trigger root epoch 6289, finalized height 89047 at 2026-10-06T20:05:24.154Z | +| cascade (cascade_agent_2) | 2026-10-06T20:05:24.000Z — generation of the trigger root (the root carrying the principal's revocation) | current root epoch 6290 (finalized height 89055, generated 2026-10-06T20:05:53.000Z) | 2026-10-06T20:05:48.320Z (+24.3 s) | t0 + 395 s (t_T + 7·H + A + K) = 2026-10-06T20:11:59.000Z | 2026-10-06T20:06:06.705Z (+42.7 s), `status_root_stale` | trigger root epoch 6289, finalized height 89047 at 2026-10-06T20:05:24.154Z | + +## Measured deny point per path + +| Path | First observed denial − t0 | Bound | Within the bound | +|---|---|---|---| +| kill_switch | 8.4 s | 245 s | yes | +| cascade/cascade_agent_1 | 66.8 s | 395 s | yes | +| cascade/cascade_agent_2 | 42.7 s | 395 s | yes | + +Times are wall-clock UTC of this machine; a root's "finalized at" is the CometBFT block time (BFT time), which trails wall-clock by up to about one block, so it can read earlier than the root's own `generated_at`. Each forced attempt takes about a second (proof + verdict), which is the granularity of the measured points. + +## Decision-log lines (R18 fixed-slot records) + +| Path | Decision | Verifier answer | Decision-log line | +|---|---|---|---| +| kill_switch first refused | 2026-10-06T20:04:28.918Z | `status_root_stale` | not read (operator only: MINTID_VERIFIER_CONSOLE_PASSWORD) | +| cascade/cascade_agent_1 last accepted | 2026-10-06T20:06:20.617Z | `accepted` | not read (operator only: MINTID_VERIFIER_CONSOLE_PASSWORD) | +| cascade/cascade_agent_1 first refused | 2026-10-06T20:06:30.824Z | `status_root_stale` | not read (operator only: MINTID_VERIFIER_CONSOLE_PASSWORD) | +| cascade/cascade_agent_2 last accepted | 2026-10-06T20:05:48.320Z | `accepted` | not read (operator only: MINTID_VERIFIER_CONSOLE_PASSWORD) | +| cascade/cascade_agent_2 first refused | 2026-10-06T20:06:06.705Z | `status_root_stale` | not read (operator only: MINTID_VERIFIER_CONSOLE_PASSWORD) | + +## Attribution + +The verifier's record shows the root a decision rested on; revocation is shown by the failed witness refresh. + +A first refusal marks when a root newer than the agent's witness became provable to the verifier, which a never-revoked agent forcing an old witness meets too. A revoked agent cannot obtain a newer witness; a live one can, and is accepted again. Times are seconds after the path's t0. + +| Path | Revoked agent | First refused | Witness refresh | +|---|---|---|---| +| kill_switch | `agent_kill_switch` | +8.4 s `status_root_stale` | refused +37.1 s, `credential_revoked` | +| cascade (cascade_agent_1) | `cascade_agent_1` | +66.8 s `status_root_stale` | refused +150.1 s, `credential_revoked` | +| cascade (cascade_agent_2) | `cascade_agent_2` | +42.7 s `status_root_stale` | refused +95.9 s, `credential_revoked` | + +## Rule + +- **kill_switch**: `status_root_stale`; its decision-log line was not read (not read (operator only: MINTID_VERIFIER_CONSOLE_PASSWORD)), so the rule that decided is not recorded here. +- **cascade (cascade_agent_1)**: `status_root_stale`; its decision-log line was not read (not read (operator only: MINTID_VERIFIER_CONSOLE_PASSWORD)), so the rule that decided is not recorded here. +- **cascade (cascade_agent_2)**: `status_root_stale`; its decision-log line was not read (not read (operator only: MINTID_VERIFIER_CONSOLE_PASSWORD)), so the rule that decided is not recorded here. + diff --git a/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/run-result.json b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/run-result.json new file mode 100644 index 0000000..74bd1a8 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/run-result.json @@ -0,0 +1,182 @@ +{ + "source_revision": "b678e5cd6b5736e1795fd18d497fd8e501272dcd", + "source_public_release": "public-v2026-10-07", + "working_tree_tracked_changes": false, + "run_type": "independent_public_testnet_synthetic_bounded_retry_remaining_paths", + "command": [ + "timeout", + "--signal=TERM", + "--kill-after=30", + "1800", + "uv", + "run", + "--locked", + "--python", + "3.12", + "python", + "test-harness/trace/revocation_trace.py", + "--target", + "testnet", + "--paths", + "kill_switch,cascade", + "--out", + "/home/ubuntu/worktrees/aaif-mintid-run-20261006/results-retry-remaining" + ], + "cwd": "/home/ubuntu/worktrees/aaif-mintid-run-20261006/source", + "started_utc": "2026-10-06T20:03:20.974025+00:00", + "finished_utc": "2026-10-06T20:07:58.236402+00:00", + "exit_code": 0, + "operator_credentials_used": false, + "requested_paths": [ + "kill_switch", + "cascade" + ], + "emergency": "not_run_operator_access_required", + "unreachable": "not_run_public_host_disruption_excluded", + "decision_log": "not_recorded_operator_only", + "external_protected_side_effects": "not_measured", + "versions": { + "uv": "uv 0.12.23 (x86_64-unknown-linux-gnu)", + "rustc": "rustc 1.97.0 (2d8144b78 2026-07-07)", + "python": "Python 3.12.15" + }, + "service_pins_before": { + "issuer_build": { + "service": "issuer-agent", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "rail": "classical-seller-v0", + "issuer_id": "3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b", + "signing_key_id": "9ddd3b08a70e35065788ca08d5f22761df22f77611755ccae13fe8809ac3a6cd", + "chain_id": "mintid-testnet-2", + "chain_generation": 1, + "kyc_provider": "sandbox", + "session_ttl_seconds": 86400, + "permitted_grades": [ + 1, + 2, + 3, + 4 + ], + "heartbeat_seconds": 30, + "validity_window_seconds": 180, + "chain_max_root_age_seconds": 180, + "status_sign_doc_version": 2, + "emergency_sign_doc_version": 2, + "status_epoch": 6284, + "current_root": "d0e99a9aab1661623e55a493f92ffb15ec274bd2870e00ae536507291ab201bf", + "last_heartbeat_unix": 1791316973, + "entries": 0, + "pending_since_root": true, + "linkage": "in_sync", + "linkage_detail": "", + "chain_finalized_epoch": 6283, + "chain_finalized_root": "c2e4e284bfd1e8cbca4cad1415202fa35d8a790e47563a2f4bb939d5075daf7e", + "chain_finalized_height": 88989, + "chain_checked_unix": 1791316972, + "unfinalized_epochs": 1, + "discarded_heartbeats": 0, + "emergency_key_id": "9df5d5558b50752f46a74368520557905a02a3e5ca255b8aa443c2441519b474", + "emergency_roots": 3, + "last_emergency": { + "status_epoch": 4807, + "root": "bb241080642a7f0f7af2927a77618a7254cfc26c69f394c9941cd9cda2d9298a", + "previous_root": "40b488a22e1bc5a38b6b2688661b77c37c44b92c7e4a76a68972783bffa58155", + "reason_code": 2, + "emergency_key_id": "9df5d5558b50752f46a74368520557905a02a3e5ca255b8aa443c2441519b474", + "tx_hash": "AF26C1BE51028EA434F4C9F5646374CA3960B24F8A5B1D69006A0F5F6F633A13", + "requested_at_unix": 1791272646, + "entries": 0, + "finalized": true + }, + "credential_rail": { + "mounted": true, + "core": "proof-core 0.4.0", + "accumulator_leaf": "a196a8d189ebfd424c1b56916894dd9c4f46d1dac8a83970f9fcd4d52d65e097", + "credentials_issued": 43, + "credentials_revoked": 15, + "finalized": { + "status_epoch": 6283, + "height": 88989, + "root": "c2e4e284bfd1e8cbca4cad1415202fa35d8a790e47563a2f4bb939d5075daf7e" + }, + "scope_sets": 5, + "agent_accumulator_leaf": "be34a3e3ae86399a9a200a0d2c992e5b45596ceb05815657ade7feb69146848b", + "agent_minting": "on", + "escrow_sealer": "kms", + "agent_mint_policy": { + "max_active_agents": 10, + "max_mints": 5, + "window_seconds": 3600, + "max_lease_seconds": 7776000, + "bundles_only": false + }, + "agent_bundles": { + "catalogue_version": "mintid.agent-bundles.v1", + "catalogue_digest": "b18bb15862ca89d0c6e7f479276eb0f6aa46e41ffdcce8b699ee8d7206328895", + "catalogue_source": "reference", + "bundles": [ + "payments", + "procurement", + "data-read" + ] + } + }, + "agent_fee_schedule": { + "source": "chain_rpc_unproven", + "mint_fee": { + "amount": "1000000", + "denom": "utestmint" + }, + "lease_fee_per_year": { + "amount": "1000000", + "denom": "utestmint" + }, + "reference_currency": "USD", + "mint_fee_reference_minor": 300, + "lease_fee_per_year_reference_minor": 1200, + "sybil_floor_reference_minor": 400, + "protocol_cut_bps": 1200, + "burn_share_bps": 3000, + "validator_share_bps": 4500, + "foundation_share_bps": 2500 + }, + "selfrevoke": { + "fold": "on", + "acked": 16, + "chain_acked": 16, + "pending": 0, + "last_fold_unix": 1791316913, + "blocked_at_version": null, + "fold_mode": "external", + "waiting_at_version": null, + "cascade_spread_beats": 8, + "agent_cover_traffic": true + } + }, + "verifier_build": { + "sdk_version": "0.3.0", + "engine_pin": "proof-core 0.4.0", + "state_vectors_version": "mintid-proofvector-1/h2", + "state_vectors_sha256": "36d36f371b3b4b0a1db995a4a1fb46f352ed5f5aacc28df5ca10c2a31d0ea495", + "spec_revision": "SPEC-1 v3.2", + "conformance_suite_version": "1.0.0", + "source_revision": "497509ebf0c3", + "release": "public-v2026-10-06.2", + "recognition": { + "enabled": true, + "retention_days": 90 + } + } + }, + "postflight_error": null, + "artifact_hashes": { + "preflight-second.json": "4e41ec9699b2a3e30a0fec548347115f1c140e8375f1b9d5e3ad16e55565ae33", + "stdout.log": "962a3b45299e2310bdcc77a1ecbe28aeb93f037b9f1c3a90a62eb8288d081c37", + "revocation-trace-testnet-20261006T200321Z.manifest.json": "4f5fa6cce83f1122d597523ff91b1f7fa87534c9160c81014c45f915f3316e27", + "preflight.json": "f4b764829b14c4b8dace00c175bba0bfd760dd786f1ba865d2c731f2f59535b7", + "postflight.json": "86915a475d57a73befa9856d38f6853c87ed2bd5c46c0cea00a3b5a1cdd4070c", + "revocation-trace-testnet-20261006T200321Z.jsonl": "e0618e6fca7322f7e8168ce48b6ebbe8fc9a5a7b8dfdf6bc3052544266fc9076", + "revocation-trace-testnet-20261006T200321Z.md": "b339a82972c83b2d98dafed6cf0840e8eda115e1780dd921165233c692a89397" + } +} diff --git a/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/stdout.log b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/stdout.log new file mode 100644 index 0000000..fe9cfce --- /dev/null +++ b/integrations/alakris-authority-comparison/results/native-mintid/retry-remaining/stdout.log @@ -0,0 +1,42 @@ +[ 0.0s] source revision=b678e5cd6b5736e1795fd18d497fd8e501272dcd tracked_changes=False services_revision_stated=None +[ 0.5s] stack chain_id=mintid-testnet-2 issuer_id=3d2a9df3cc5cb853ba6a61bfc475cda119eb215c22aad7b2b4bcebc46399183b verifier_id=6f4c5d1becd3c47e56efcbfc950fc5d845eff +[ 0.6s] build +[ 0.6s] policy sha256=9f02f1c77044017c9b411a7d069cbc4fd5311087fc09c91e4cfd1ec5e29c3577 +[ 2.2s] verifier_status when=before observed_unix=1791317002 substrate=ok chain_height=89004 root_epoch=6284 root_height=88998 root_age_seconds=29 fresh=True max_root_age_sec +[ 3.2s] kyc_session principal=principal1 driver=sandbox hint=sandbox:approved:g3 outcome=approved grade=3 +[ 4.0s] identity_credential principal=principal1 credential=6229a024fea3… +[ 18.3s] kyc_session principal=principal2 driver=sandbox hint=sandbox:approved:g3 outcome=approved grade=3 +[ 27.7s] agents_minted count=5 +[ 40.0s] wait what=a finalized root committing the agents and their scope seconds=12.1 +[ 49.3s] wait what=every agent usable seconds=9.3 +[ 50.1s] parameters A=180 H=30 K=5 G=60 cascade_spread_beats=8 +[ 56.4s] decision kill_switch agent=agent_kill_switch attempt=baseline session_id=465fd655589c31952ba125bb8400c74b accepted=True reason_code=accepted presented_root=2d10c58381f9b74 +[ 62.3s] trigger kill_switch action=self_revoke → privacy relay receipt=pending recorded_height=89023 recorded_utc=2026-10-06T20:04:20.518Z request_utc=2026-10-06T20:04:18.786Z re +[ 67.5s] decision kill_switch agent=agent_kill_switch attempt=forced session_id=3d68c34cadd06ca480c8985553dd7c87 accepted=False reason_code=status_root_stale presented_root=2d10c58 +[ 72.8s] decision kill_switch agent=agent_kill_switch attempt=forced_confirm session_id=9e5c5b46a67c8f6326d9d933957e8e9c accepted=False reason_code=status_root_stale presented_root +[ 72.8s] ring_at_denial kill_switch agent=agent_kill_switch +[ 96.1s] holder_refresh kill_switch agent=agent_kill_switch outcome=credential_revoked note=an honest client stops presenting here +[ 97.8s] path_done kill_switch +[ 105.4s] decision cascade agent=cascade_agent_1 attempt=baseline session_id=c90d37e615ae922ab4b05226478589ab accepted=False reason_code=status_root_stale presented_root=dd141ec +[ 115.5s] decision cascade agent=cascade_agent_2 attempt=baseline session_id=fe8a99a259400a8307b84cfec589e2bf accepted=True reason_code=accepted presented_root=9c7f255baa4bf89c9 +[ 116.0s] trigger cascade action=POST /v1/credentials/{principal}/revoke http=200 status=revoked request_utc=2026-10-06T20:05:17.035Z response_utc=2026-10-06T20:05:17.173Z resp +[ 138.0s] decision cascade agent=cascade_agent_1 attempt=forced session_id=70cd3ab0dc6dda2baa198158acd51934 accepted=True reason_code=accepted presented_root=9a20b72edb2104517c5 +[ 146.9s] decision cascade agent=cascade_agent_2 attempt=forced session_id=78e601d5fabca2396e46c1fae6eb8501 accepted=True reason_code=accepted presented_root=9a20b72edb2104517c5 +[ 156.0s] decision cascade agent=cascade_agent_1 attempt=forced session_id=d773cb8e6366afbf148355186bbf5f03 accepted=True reason_code=accepted presented_root=9a20b72edb2104517c5 +[ 165.2s] decision cascade agent=cascade_agent_2 attempt=forced session_id=eab182f0e859c9b9a7f386e6810fadf3 accepted=False reason_code=status_root_stale presented_root=9a20b72ed +[ 169.9s] decision cascade agent=cascade_agent_2 attempt=forced_confirm session_id=fe31ae10913db0c0a44490d105aed5eb accepted=False reason_code=status_root_stale presented_root=9 +[ 169.9s] ring_at_denial cascade agent=cascade_agent_2 +[ 179.2s] decision cascade agent=cascade_agent_1 attempt=forced session_id=01f51947d4cde3f0832ebf70cbdacf3e accepted=True reason_code=accepted presented_root=b6a163d5e8a0edf501b +[ 189.4s] decision cascade agent=cascade_agent_1 attempt=forced session_id=be02017f1cd76cb4172e2fe1a1e5ddd1 accepted=False reason_code=status_root_stale presented_root=b6a163d5e +[ 193.7s] decision cascade agent=cascade_agent_1 attempt=forced_confirm session_id=86f53523b2c4d28174fe95bbf7f33dc0 accepted=False reason_code=status_root_stale presented_root=b +[ 193.7s] ring_at_denial cascade agent=cascade_agent_1 +[ 218.5s] holder_refresh cascade agent=cascade_agent_2 outcome=credential_revoked note=an honest client stops presenting here +[ 272.7s] holder_refresh cascade agent=cascade_agent_1 outcome=credential_revoked note=an honest client stops presenting here +[ 275.0s] path_done cascade +[ 275.1s] verifier_status when=after observed_unix=1791317276 substrate=ok chain_height=89098 root_epoch=6293 root_height=89087 root_age_seconds=33 fresh=True max_root_age_seco +[ 275.1s] decision_log source=not read (operator only: MINTID_VERIFIER_CONSOLE_PASSWORD) lines_read=0 +[ 275.1s] summary + +trace: /home/ubuntu/worktrees/aaif-mintid-run-20261006/results-retry-remaining/revocation-trace-testnet-20261006T200321Z.jsonl +summary: /home/ubuntu/worktrees/aaif-mintid-run-20261006/results-retry-remaining/revocation-trace-testnet-20261006T200321Z.md +manifest: /home/ubuntu/worktrees/aaif-mintid-run-20261006/results-retry-remaining/revocation-trace-testnet-20261006T200321Z.manifest.json diff --git a/integrations/alakris-authority-comparison/results/proofable-author-oct8.json b/integrations/alakris-authority-comparison/results/proofable-author-oct8.json new file mode 100644 index 0000000..4563975 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/proofable-author-oct8.json @@ -0,0 +1,971 @@ +{ + "implementation": "Proofable", + "run_id": "aaif-e1217327a-20261008", + "evidence_custody": { + "producer": "Proofable author/operator", + "public_artifact": "sanitized trace", + "appraiser": "Alakris evidence runner", + "independent_target_observer": false + }, + "deployed_revision_claim": "e1217327a1568b39d5153686b8085471b5329cde", + "checks": [ + { + "file": "README.md", + "expected": "e32b2580d2ff33d7379b3fc686855c389bcb113beeaf9c44a8e3e4db48e13271", + "actual": "e32b2580d2ff33d7379b3fc686855c389bcb113beeaf9c44a8e3e4db48e13271", + "match": true + }, + { + "file": "manifest.json", + "expected": "90638a7e27b42ab784070ca6cea5dbc6add33671a3277744a9534cb7b51a424c", + "actual": "90638a7e27b42ab784070ca6cea5dbc6add33671a3277744a9534cb7b51a424c", + "match": true + }, + { + "file": "authority-effect-results.md", + "expected": "60a6d77a1705c6e0152e0fb72131824715966cd3c2574f5a3b06820ecd8ab47b", + "actual": "60a6d77a1705c6e0152e0fb72131824715966cd3c2574f5a3b06820ecd8ab47b", + "match": true + }, + { + "file": "authority-effect-results.json", + "expected": "45c953291efce44499cb995f5c7d271683399a04bc155aea1389b78468cbe7e0", + "actual": "45c953291efce44499cb995f5c7d271683399a04bc155aea1389b78468cbe7e0", + "match": true + }, + { + "file": "trace.jsonl", + "expected": "96241d8409c4661f8e60cd0904e7245434f48bf5711d9c377706f29ff721a0c8", + "actual": "96241d8409c4661f8e60cd0904e7245434f48bf5711d9c377706f29ff721a0c8", + "match": true + }, + { + "file": "portable-proofs.json", + "expected": "74ef851d4001a572d841bcfa27cfb1216dc2d5be063049196986d00c69b5e7cc", + "actual": "74ef851d4001a572d841bcfa27cfb1216dc2d5be063049196986d00c69b5e7cc", + "match": true + }, + { + "file": "verify-portable-proofs.mjs", + "expected": "f7eb8f74885518b3ba0d945f60500e3236a25ad569fdcc6c8e44af462eaa3248", + "actual": "f7eb8f74885518b3ba0d945f60500e3236a25ad569fdcc6c8e44af462eaa3248", + "match": true + }, + { + "file": "trace.jsonl", + "expected": "96241d8409c4661f8e60cd0904e7245434f48bf5711d9c377706f29ff721a0c8", + "actual": "96241d8409c4661f8e60cd0904e7245434f48bf5711d9c377706f29ff721a0c8", + "match": true + } + ], + "integrity": "PASS", + "record_count_consistent": true, + "envelope_appraisal": { + "state": "measured", + "valid": true, + "qhash_set_bound": true, + "verdicts": [ + { + "qHash": "0x714bec9581eba6003ffced14d8ea7bb67349217fb0335584da1b09c50bef086d", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x64f293e61b826e03bd1de6564fc2db8cec0f50390bafc8bdf162ec9961262fca", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0xffdc0455b72732a8c6a31eb4e2861943b85dbc271fe2dfa8b18d0e85d2b33726", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x71804bd8ca81e1ccb691ce6bfd8422b884437b4390b9c289f09db19fc2309f3c", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x8a3e5ff89c8a86423bae61db96c9732f319a6f6cdb34f4bde560c90d25366c95", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0xf1880cba0876acc2364e31892b261a47299c0a70177b61b32d465fcd1b61447a", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x1d987781eb519337fa9e62043831ee187340f6e589f217b16b99ed98be5acfbc", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x40b44805057d6ec3708debcb0b490b3087d8e7cb2e853c6a6f434c57ee8a430d", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0xcf365b8ba19fd9fd1d441abb8bbdd640f359e4eaac6b9339b622bef26f05a5de", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x43a718f6ba869a91f37f685e65f32267192d2eb7b9a4a63c9acc9a41a64e10ab", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x05ef986ee3817a6fd56b327b1de3523ab7f65c11c4ff386d34c16f93d11c0045", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + } + ], + "scope": "historical EIP-191 receipt integrity; freshness not appraised" + }, + "newline_diagnostic": { + "crlf_hash_matches_published": false, + "strict_byte_check_unchanged": true + }, + "cases": [ + { + "case_id": "binding_veto", + "basis": "author_record", + "publisher_claim": "SUPPORTED", + "independent_live_reproduction": false, + "fields": { + "authority": { + "state": "measured", + "value": [ + "0x63f238351564bb5a1072bb7dad2b2fd14ef5eeb15c74f787ea2b785d89ceb233" + ], + "reason": null + }, + "decision": { + "state": "measured", + "value": [ + { + "status": "failed", + "response": null, + "executor": null, + "error": "JOB_AUTHORITY_DENIED: run_command is required for isolated harness execution." + } + ], + "reason": null + }, + "dispatch": { + "state": "not_emitted", + "value": null, + "reason": "explicit dispatch event/time not in public trace" + }, + "platform_observation": { + "state": "measured", + "value": [ + { + "attempt": "binding_veto", + "observation": { + "status": "failed", + "response": null, + "executor": null, + "error": "JOB_AUTHORITY_DENIED: run_command is required for isolated harness execution." + } + } + ], + "reason": null + }, + "committed_effect": { + "state": "not_emitted", + "value": null, + "reason": "public trace has platform outcomes, not target-side committed effects" + }, + "task_outcome": { + "state": "not_emitted", + "value": null, + "reason": "platform observations do not establish the target task result" + }, + "receipt": { + "state": "measured", + "value": [ + { + "attempt": "binding_veto", + "receipt": { + "state": "measured", + "value": { + "qHash": "0xffdc0455b72732a8c6a31eb4e2861943b85dbc271fe2dfa8b18d0e85d2b33726", + "status": "verified", + "visibility": "unlisted" + }, + "reason": null + } + } + ], + "reason": null + }, + "receipt_signature_material": { + "state": "measured", + "value": { + "file": "portable-proofs.json", + "sha256": "74ef851d4001a572d841bcfa27cfb1216dc2d5be063049196986d00c69b5e7cc" + }, + "reason": null + }, + "receipt_signature_verification": { + "state": "measured", + "value": { + "state": "measured", + "valid": true, + "qhash_set_bound": true, + "verdicts": [ + { + "qHash": "0x714bec9581eba6003ffced14d8ea7bb67349217fb0335584da1b09c50bef086d", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x64f293e61b826e03bd1de6564fc2db8cec0f50390bafc8bdf162ec9961262fca", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0xffdc0455b72732a8c6a31eb4e2861943b85dbc271fe2dfa8b18d0e85d2b33726", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x71804bd8ca81e1ccb691ce6bfd8422b884437b4390b9c289f09db19fc2309f3c", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x8a3e5ff89c8a86423bae61db96c9732f319a6f6cdb34f4bde560c90d25366c95", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0xf1880cba0876acc2364e31892b261a47299c0a70177b61b32d465fcd1b61447a", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x1d987781eb519337fa9e62043831ee187340f6e589f217b16b99ed98be5acfbc", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x40b44805057d6ec3708debcb0b490b3087d8e7cb2e853c6a6f434c57ee8a430d", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0xcf365b8ba19fd9fd1d441abb8bbdd640f359e4eaac6b9339b622bef26f05a5de", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x43a718f6ba869a91f37f685e65f32267192d2eb7b9a4a63c9acc9a41a64e10ab", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x05ef986ee3817a6fd56b327b1de3523ab7f65c11c4ff386d34c16f93d11c0045", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + } + ], + "scope": "historical EIP-191 receipt integrity; freshness not appraised" + }, + "reason": null + }, + "policy_digest": { + "state": "not_emitted", + "value": null, + "reason": "policy version is an identifier, not a canonical digest" + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "root_age_seconds": { + "state": "not_applicable", + "value": null, + "reason": "local authority-state path" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + }, + { + "case_id": "revoked_stale", + "basis": "author_record", + "publisher_claim": "SUPPORTED", + "independent_live_reproduction": false, + "fields": { + "authority": { + "state": "measured", + "value": [ + "0x22c5c4bef227b7ca64514ae74e74bb7f55fa1f15e6aed723c01eb54ac4416d05", + "0xe1fd94b1a5bef3e3fb7b9347945859dde01063a7b3af539659d4377d60ca3882", + "0xb6eb435737aa4e592195dd7bdcecf17cf43dbb0bd82526bec8209ad27a069a3f", + "0x4c0fc41c165ad20067b708e6a8e71bfdf6f8686250eba967a9f69c93cdc593ea" + ], + "reason": null + }, + "decision": { + "state": "measured", + "value": [ + { + "status": "completed", + "response": "REVIEW_OK", + "executor": null, + "error": null + }, + { + "dispatch_decision": "DENY", + "code": "DELEGATION_PROOF_DENIED", + "job_created": false + }, + { + "dispatch_decision": "DENY", + "code": "DELEGATION_PROOF_DENIED", + "job_created": false + }, + { + "dispatch_decision": "DENY", + "code": "DELEGATION_PROOF_DENIED", + "job_created": false + } + ], + "reason": null + }, + "dispatch": { + "state": "not_emitted", + "value": null, + "reason": "explicit dispatch event/time not in public trace" + }, + "platform_observation": { + "state": "measured", + "value": [ + { + "attempt": "hosted_allow", + "observation": { + "status": "completed", + "response": "REVIEW_OK", + "executor": null, + "error": null + } + }, + { + "attempt": "revoke_before_dispatch", + "observation": { + "dispatch_decision": "DENY", + "code": "DELEGATION_PROOF_DENIED", + "job_created": false + } + }, + { + "attempt": "expiry_before_dispatch", + "observation": { + "dispatch_decision": "DENY", + "code": "DELEGATION_PROOF_DENIED", + "job_created": false + } + }, + { + "attempt": "stale_authority", + "observation": { + "dispatch_decision": "DENY", + "code": "DELEGATION_PROOF_DENIED", + "job_created": false + } + } + ], + "reason": null + }, + "committed_effect": { + "state": "not_emitted", + "value": null, + "reason": "public trace has platform outcomes, not target-side committed effects" + }, + "task_outcome": { + "state": "not_emitted", + "value": null, + "reason": "platform observations do not establish the target task result" + }, + "receipt": { + "state": "measured", + "value": [ + { + "attempt": "hosted_allow", + "receipt": { + "state": "measured", + "value": { + "qHash": "0x714bec9581eba6003ffced14d8ea7bb67349217fb0335584da1b09c50bef086d", + "status": "verified", + "visibility": "unlisted" + }, + "reason": null + } + }, + { + "attempt": "revoke_before_dispatch", + "receipt": { + "state": "not_emitted", + "value": null, + "reason": "no receipt exposed for this attempt" + } + }, + { + "attempt": "expiry_before_dispatch", + "receipt": { + "state": "not_emitted", + "value": null, + "reason": "no receipt exposed for this attempt" + } + }, + { + "attempt": "stale_authority", + "receipt": { + "state": "not_emitted", + "value": null, + "reason": "no receipt exposed for this attempt" + } + } + ], + "reason": null + }, + "receipt_signature_material": { + "state": "measured", + "value": { + "file": "portable-proofs.json", + "sha256": "74ef851d4001a572d841bcfa27cfb1216dc2d5be063049196986d00c69b5e7cc" + }, + "reason": null + }, + "receipt_signature_verification": { + "state": "measured", + "value": { + "state": "measured", + "valid": true, + "qhash_set_bound": true, + "verdicts": [ + { + "qHash": "0x714bec9581eba6003ffced14d8ea7bb67349217fb0335584da1b09c50bef086d", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x64f293e61b826e03bd1de6564fc2db8cec0f50390bafc8bdf162ec9961262fca", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0xffdc0455b72732a8c6a31eb4e2861943b85dbc271fe2dfa8b18d0e85d2b33726", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x71804bd8ca81e1ccb691ce6bfd8422b884437b4390b9c289f09db19fc2309f3c", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x8a3e5ff89c8a86423bae61db96c9732f319a6f6cdb34f4bde560c90d25366c95", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0xf1880cba0876acc2364e31892b261a47299c0a70177b61b32d465fcd1b61447a", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x1d987781eb519337fa9e62043831ee187340f6e589f217b16b99ed98be5acfbc", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x40b44805057d6ec3708debcb0b490b3087d8e7cb2e853c6a6f434c57ee8a430d", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0xcf365b8ba19fd9fd1d441abb8bbdd640f359e4eaac6b9339b622bef26f05a5de", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x43a718f6ba869a91f37f685e65f32267192d2eb7b9a4a63c9acc9a41a64e10ab", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x05ef986ee3817a6fd56b327b1de3523ab7f65c11c4ff386d34c16f93d11c0045", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + } + ], + "scope": "historical EIP-191 receipt integrity; freshness not appraised" + }, + "reason": null + }, + "policy_digest": { + "state": "not_emitted", + "value": null, + "reason": "policy version is an identifier, not a canonical digest" + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "root_age_seconds": { + "state": "not_applicable", + "value": null, + "reason": "local authority-state path" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + }, + { + "case_id": "unreachable", + "basis": "author_record", + "publisher_claim": "NOT_APPLICABLE_CURRENT_PATH", + "independent_live_reproduction": false, + "fields": { + "authority": { + "state": "not_applicable", + "value": null, + "reason": "current authority evaluated locally" + }, + "decision": { + "state": "not_applicable", + "value": null, + "reason": "no remote authority dependency on this path" + }, + "dispatch": { + "state": "not_emitted", + "value": null, + "reason": "explicit dispatch event/time not in public trace" + }, + "platform_observation": { + "state": "not_applicable", + "value": null, + "reason": "no equivalent on this implementation path" + }, + "committed_effect": { + "state": "not_emitted", + "value": null, + "reason": "public trace has platform outcomes, not target-side committed effects" + }, + "task_outcome": { + "state": "not_emitted", + "value": null, + "reason": "platform observations do not establish the target task result" + }, + "receipt": { + "state": "not_applicable", + "value": null, + "reason": "no equivalent on this implementation path" + }, + "receipt_signature_material": { + "state": "not_emitted", + "value": null, + "reason": "no envelope material for this case" + }, + "receipt_signature_verification": { + "state": "not_measured", + "value": null, + "reason": "no envelope verification for this case" + }, + "policy_digest": { + "state": "not_emitted", + "value": null, + "reason": "policy version is an identifier, not a canonical digest" + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "root_age_seconds": { + "state": "not_applicable", + "value": null, + "reason": "local authority-state path" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + }, + { + "case_id": "post_dispatch_revoke", + "basis": "author_record", + "publisher_claim": "SUPPORTED", + "independent_live_reproduction": false, + "fields": { + "authority": { + "state": "measured", + "value": [ + "0xe9f62e1db0e3abd8ff5c569ffca29a929e12ba66a633c8a13ede6ffc59a74870" + ], + "reason": null + }, + "decision": { + "state": "measured", + "value": [ + { + "status": "completed", + "response": "REVIEW_OK", + "executor": "harness:opencode:acp:sandbox", + "error": null, + "dispatch_decision": "ALLOW", + "next_dispatch_decision": "DENY", + "code": "DELEGATION_PROOF_DENIED" + } + ], + "reason": null + }, + "dispatch": { + "state": "not_emitted", + "value": null, + "reason": "explicit dispatch event/time not in public trace" + }, + "platform_observation": { + "state": "measured", + "value": [ + { + "attempt": "post_dispatch_revoke", + "observation": { + "status": "completed", + "response": "REVIEW_OK", + "executor": "harness:opencode:acp:sandbox", + "error": null, + "dispatch_decision": "ALLOW", + "next_dispatch_decision": "DENY", + "code": "DELEGATION_PROOF_DENIED" + } + } + ], + "reason": null + }, + "committed_effect": { + "state": "not_emitted", + "value": null, + "reason": "public trace has platform outcomes, not target-side committed effects" + }, + "task_outcome": { + "state": "not_emitted", + "value": null, + "reason": "platform observations do not establish the target task result" + }, + "receipt": { + "state": "measured", + "value": [ + { + "attempt": "post_dispatch_revoke", + "receipt": { + "state": "measured", + "value": { + "qHash": "0xcf365b8ba19fd9fd1d441abb8bbdd640f359e4eaac6b9339b622bef26f05a5de", + "status": "verified", + "visibility": "unlisted" + }, + "reason": null + } + } + ], + "reason": null + }, + "receipt_signature_material": { + "state": "measured", + "value": { + "file": "portable-proofs.json", + "sha256": "74ef851d4001a572d841bcfa27cfb1216dc2d5be063049196986d00c69b5e7cc" + }, + "reason": null + }, + "receipt_signature_verification": { + "state": "measured", + "value": { + "state": "measured", + "valid": true, + "qhash_set_bound": true, + "verdicts": [ + { + "qHash": "0x714bec9581eba6003ffced14d8ea7bb67349217fb0335584da1b09c50bef086d", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x64f293e61b826e03bd1de6564fc2db8cec0f50390bafc8bdf162ec9961262fca", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0xffdc0455b72732a8c6a31eb4e2861943b85dbc271fe2dfa8b18d0e85d2b33726", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x71804bd8ca81e1ccb691ce6bfd8422b884437b4390b9c289f09db19fc2309f3c", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x8a3e5ff89c8a86423bae61db96c9732f319a6f6cdb34f4bde560c90d25366c95", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0xf1880cba0876acc2364e31892b261a47299c0a70177b61b32d465fcd1b61447a", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x1d987781eb519337fa9e62043831ee187340f6e589f217b16b99ed98be5acfbc", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x40b44805057d6ec3708debcb0b490b3087d8e7cb2e853c6a6f434c57ee8a430d", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0xcf365b8ba19fd9fd1d441abb8bbdd640f359e4eaac6b9339b622bef26f05a5de", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x43a718f6ba869a91f37f685e65f32267192d2eb7b9a4a63c9acc9a41a64e10ab", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + }, + { + "qHash": "0x05ef986ee3817a6fd56b327b1de3523ab7f65c11c4ff386d34c16f93d11c0045", + "valid": true, + "signer": "0xA41494e1E5F9E5Eaf786961e6ef84cd1a3071Eec", + "errors": [] + } + ], + "scope": "historical EIP-191 receipt integrity; freshness not appraised" + }, + "reason": null + }, + "policy_digest": { + "state": "not_emitted", + "value": null, + "reason": "policy version is an identifier, not a canonical digest" + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "root_age_seconds": { + "state": "not_applicable", + "value": null, + "reason": "local authority-state path" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + } + ] +} diff --git a/integrations/alakris-authority-comparison/results/proofable-author.json b/integrations/alakris-authority-comparison/results/proofable-author.json new file mode 100644 index 0000000..6a847e5 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/proofable-author.json @@ -0,0 +1,651 @@ +{ + "implementation": "Proofable", + "run_id": "four-case-run-f92faf39a4ba", + "evidence_custody": { + "producer": "Proofable author/operator", + "public_artifact": "sanitized trace", + "appraiser": "Alakris evidence runner", + "independent_target_observer": false + }, + "deployed_revision_claim": "f92faf39a4bae480cca3e5c07ce2c95d6ab68411", + "checks": [ + { + "file": "README.md", + "expected": "67dcbff2c2045f421ad8ef8dd1926f0ff967870c66570cd45575d13a127cda4a", + "actual": "67dcbff2c2045f421ad8ef8dd1926f0ff967870c66570cd45575d13a127cda4a", + "match": true + }, + { + "file": "manifest.json", + "expected": "f0a6bc2243e753c437215476d466094ca6c7b889701b64edf221f6ddbbc8660d", + "actual": "f0a6bc2243e753c437215476d466094ca6c7b889701b64edf221f6ddbbc8660d", + "match": true + }, + { + "file": "authority-effect-results.md", + "expected": "0338ff2367ef06568301bed497d2f067fd7650499b07fd6f540b69781cef9702", + "actual": "0338ff2367ef06568301bed497d2f067fd7650499b07fd6f540b69781cef9702", + "match": true + }, + { + "file": "authority-effect-results.json", + "expected": "c4b35ed7c2f08dc8924979934a137a9bfd673436a4c98f89395d3d6ece7dd92f", + "actual": "c4b35ed7c2f08dc8924979934a137a9bfd673436a4c98f89395d3d6ece7dd92f", + "match": true + }, + { + "file": "trace.jsonl", + "expected": "d749cf16fe8dd599f528e21e95863b930004a0b3f0a9882695e3d3b03e8c2183", + "actual": "8df7ed9d49d1d6fb696a05661fd11db194db7c808719a66cadbf0f0a562cc1e2", + "match": false + }, + { + "file": "trace.jsonl", + "expected": "d749cf16fe8dd599f528e21e95863b930004a0b3f0a9882695e3d3b03e8c2183", + "actual": "8df7ed9d49d1d6fb696a05661fd11db194db7c808719a66cadbf0f0a562cc1e2", + "match": false + } + ], + "integrity": "FAIL", + "record_count_consistent": true, + "newline_diagnostic": { + "crlf_hash_matches_published": true, + "strict_byte_check_unchanged": true + }, + "cases": [ + { + "case_id": "binding_veto", + "basis": "author_record", + "publisher_claim": "SUPPORTED", + "independent_live_reproduction": false, + "fields": { + "authority": { + "state": "measured", + "value": [ + "0xee795f450b6a6433787519aa7a87406df99f6bb27fe21952162825bfb82cafc4" + ], + "reason": null + }, + "decision": { + "state": "measured", + "value": [ + { + "status": "failed", + "response": null, + "executor": null, + "error": "JOB_AUTHORITY_DENIED: run_command is required for isolated harness execution." + } + ], + "reason": null + }, + "dispatch": { + "state": "not_emitted", + "value": null, + "reason": "explicit dispatch event/time not in public trace" + }, + "platform_observation": { + "state": "measured", + "value": [ + { + "attempt": "binding_veto", + "observation": { + "status": "failed", + "response": null, + "executor": null, + "error": "JOB_AUTHORITY_DENIED: run_command is required for isolated harness execution." + } + } + ], + "reason": null + }, + "committed_effect": { + "state": "not_emitted", + "value": null, + "reason": "public trace has platform outcomes, not target-side committed effects" + }, + "task_outcome": { + "state": "not_emitted", + "value": null, + "reason": "platform observations do not establish the target task result" + }, + "receipt": { + "state": "measured", + "value": [ + { + "attempt": "binding_veto", + "receipt": { + "state": "measured", + "value": { + "qHash": "0x11d0d791fa315322bd8490ac52b65fdf96432e5f5ac7e09f0a5a311c934bbc69", + "status": "verified", + "visibility": "private" + }, + "reason": null + } + } + ], + "reason": null + }, + "receipt_signature_material": { + "state": "not_emitted", + "value": null, + "reason": "envelope, signature and signer material not in public package" + }, + "receipt_signature_verification": { + "state": "not_measured", + "value": null, + "reason": "no public envelope to verify" + }, + "policy_digest": { + "state": "not_emitted", + "value": null, + "reason": "policy version is an identifier, not a canonical digest" + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "root_age_seconds": { + "state": "not_applicable", + "value": null, + "reason": "local authority-state path" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + }, + { + "case_id": "revoked_stale", + "basis": "author_record", + "publisher_claim": "SUPPORTED", + "independent_live_reproduction": false, + "fields": { + "authority": { + "state": "measured", + "value": [ + "0xbf9c4e1bd4d7173519dada35cd372e3d03619d091f192ddd4346c12ce3b38dd2", + "0x077a8e04548556e0adaa5bac771766276edfe30e42075e100b82e39a7d2ecd34", + "0x2f741e3111341419ecbf5be90475f5e3e9fa3125542f422f47b395e93365228e", + "0x538f77ca833d2ff08571bbc4334de82e8d77969d97f6da701dddadfa0b39ae30" + ], + "reason": null + }, + "decision": { + "state": "measured", + "value": [ + { + "status": "completed", + "response": "REVIEW_OK", + "executor": null, + "error": null + }, + { + "dispatch_decision": "DENY", + "code": "DELEGATION_PROOF_DENIED", + "job_created": false + }, + { + "dispatch_decision": "DENY", + "code": "DELEGATION_PROOF_DENIED", + "job_created": false + }, + { + "dispatch_decision": "DENY", + "code": null, + "job_created": false + } + ], + "reason": null + }, + "dispatch": { + "state": "not_emitted", + "value": null, + "reason": "explicit dispatch event/time not in public trace" + }, + "platform_observation": { + "state": "measured", + "value": [ + { + "attempt": "hosted_allow", + "observation": { + "status": "completed", + "response": "REVIEW_OK", + "executor": null, + "error": null + } + }, + { + "attempt": "revoke_before_dispatch", + "observation": { + "dispatch_decision": "DENY", + "code": "DELEGATION_PROOF_DENIED", + "job_created": false + } + }, + { + "attempt": "expiry_before_dispatch", + "observation": { + "dispatch_decision": "DENY", + "code": "DELEGATION_PROOF_DENIED", + "job_created": false + } + }, + { + "attempt": "stale_authority", + "observation": { + "dispatch_decision": "DENY", + "code": null, + "job_created": false + } + } + ], + "reason": null + }, + "committed_effect": { + "state": "not_emitted", + "value": null, + "reason": "public trace has platform outcomes, not target-side committed effects" + }, + "task_outcome": { + "state": "not_emitted", + "value": null, + "reason": "platform observations do not establish the target task result" + }, + "receipt": { + "state": "measured", + "value": [ + { + "attempt": "hosted_allow", + "receipt": { + "state": "measured", + "value": { + "qHash": "0x9afe5eb5ffb66b6b254465a47e71128674f83edb6a61e3ae67a5d409dc305dd9", + "status": "verified", + "visibility": "private" + }, + "reason": null + } + }, + { + "attempt": "revoke_before_dispatch", + "receipt": { + "state": "not_emitted", + "value": null, + "reason": "no receipt exposed for this attempt" + } + }, + { + "attempt": "expiry_before_dispatch", + "receipt": { + "state": "not_emitted", + "value": null, + "reason": "no receipt exposed for this attempt" + } + }, + { + "attempt": "stale_authority", + "receipt": { + "state": "not_emitted", + "value": null, + "reason": "no receipt exposed for this attempt" + } + } + ], + "reason": null + }, + "receipt_signature_material": { + "state": "not_emitted", + "value": null, + "reason": "envelope, signature and signer material not in public package" + }, + "receipt_signature_verification": { + "state": "not_measured", + "value": null, + "reason": "no public envelope to verify" + }, + "policy_digest": { + "state": "not_emitted", + "value": null, + "reason": "policy version is an identifier, not a canonical digest" + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "root_age_seconds": { + "state": "not_applicable", + "value": null, + "reason": "local authority-state path" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + }, + { + "case_id": "unreachable", + "basis": "author_record", + "publisher_claim": "NOT_APPLICABLE_CURRENT_PATH", + "independent_live_reproduction": false, + "fields": { + "authority": { + "state": "not_applicable", + "value": null, + "reason": "current authority evaluated locally" + }, + "decision": { + "state": "not_applicable", + "value": null, + "reason": "no remote authority dependency on this path" + }, + "dispatch": { + "state": "not_emitted", + "value": null, + "reason": "explicit dispatch event/time not in public trace" + }, + "platform_observation": { + "state": "not_applicable", + "value": null, + "reason": "no equivalent on this implementation path" + }, + "committed_effect": { + "state": "not_emitted", + "value": null, + "reason": "public trace has platform outcomes, not target-side committed effects" + }, + "task_outcome": { + "state": "not_emitted", + "value": null, + "reason": "platform observations do not establish the target task result" + }, + "receipt": { + "state": "not_applicable", + "value": null, + "reason": "no equivalent on this implementation path" + }, + "receipt_signature_material": { + "state": "not_emitted", + "value": null, + "reason": "envelope, signature and signer material not in public package" + }, + "receipt_signature_verification": { + "state": "not_measured", + "value": null, + "reason": "no public envelope to verify" + }, + "policy_digest": { + "state": "not_emitted", + "value": null, + "reason": "policy version is an identifier, not a canonical digest" + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "root_age_seconds": { + "state": "not_applicable", + "value": null, + "reason": "local authority-state path" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + }, + { + "case_id": "post_dispatch_revoke", + "basis": "author_record", + "publisher_claim": "SUPPORTED", + "independent_live_reproduction": false, + "fields": { + "authority": { + "state": "measured", + "value": [ + "0x6c0083c87a6460e4bd3ffb81236ce95f7ec17976375388925acafaf794ab8c91" + ], + "reason": null + }, + "decision": { + "state": "measured", + "value": [ + { + "status": "completed", + "response": "REVIEW_OK", + "executor": "harness:opencode:acp:sandbox", + "error": null + } + ], + "reason": null + }, + "dispatch": { + "state": "not_emitted", + "value": null, + "reason": "explicit dispatch event/time not in public trace" + }, + "platform_observation": { + "state": "measured", + "value": [ + { + "attempt": "post_dispatch_revoke", + "observation": { + "status": "completed", + "response": "REVIEW_OK", + "executor": "harness:opencode:acp:sandbox", + "error": null + } + } + ], + "reason": null + }, + "committed_effect": { + "state": "not_emitted", + "value": null, + "reason": "public trace has platform outcomes, not target-side committed effects" + }, + "task_outcome": { + "state": "not_emitted", + "value": null, + "reason": "platform observations do not establish the target task result" + }, + "receipt": { + "state": "measured", + "value": [ + { + "attempt": "post_dispatch_revoke", + "receipt": { + "state": "measured", + "value": { + "qHash": "0xdfda8a13f557e3575c1e0ec1464632fa685deb57ccc904988bf8eb029b15d042", + "status": "verified", + "visibility": "private" + }, + "reason": null + } + } + ], + "reason": null + }, + "receipt_signature_material": { + "state": "not_emitted", + "value": null, + "reason": "envelope, signature and signer material not in public package" + }, + "receipt_signature_verification": { + "state": "not_measured", + "value": null, + "reason": "no public envelope to verify" + }, + "policy_digest": { + "state": "not_emitted", + "value": null, + "reason": "policy version is an identifier, not a canonical digest" + }, + "revocation_latency_seconds": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "root_age_seconds": { + "state": "not_applicable", + "value": null, + "reason": "local authority-state path" + }, + "useful_work_lost": { + "state": "not_measured", + "value": null, + "reason": "measurement/appraisal not performed" + }, + "action_digest": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "target_identity": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "original_deadline": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "fallback_scope": { + "state": "not_emitted", + "value": null, + "reason": "not exposed by this public adapter input" + }, + "independent_effect_witness": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "retry_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + }, + "duplicate_count": { + "state": "not_measured", + "value": null, + "reason": "appraisal not performed" + } + } + } + ] +} diff --git a/integrations/alakris-authority-comparison/results/python-packages.txt b/integrations/alakris-authority-comparison/results/python-packages.txt new file mode 100644 index 0000000..5a015d0 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/python-packages.txt @@ -0,0 +1,18 @@ +agentrust-trace==0.11.0 +annotated-types==0.8.0 +attrs==26.1.0 +cffi==2.1.1 +cryptography==50.0.2 +jsonschema==4.26.0 +jsonschema-specifications==2025.9.1 +packaging==26.3 +pycparser==3.0 +pydantic==2.13.5 +pydantic-core==2.46.5 +pyyaml==6.0.3 +referencing==0.37.0 +rfc3986-validator==0.1.1 +rfc8785==0.1.4 +rpds-py==2026.9.1 +typing-extensions==4.16.0 +typing-inspection==0.4.4 diff --git a/integrations/alakris-authority-comparison/results/synthetic-reference.json b/integrations/alakris-authority-comparison/results/synthetic-reference.json new file mode 100644 index 0000000..2819281 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/synthetic-reference.json @@ -0,0 +1,117 @@ +[ + { + "case_id": "binding_veto", + "basis": "synthetic_fixture", + "decision": { + "allowed": false, + "utc_seconds": 10, + "action_hash": "8685d4aca34c34b81b079c5ba79ab9cea01433582881bdbe2e3c74337e28e0f2" + }, + "dispatch": null, + "effect": { + "committed": false, + "utc_seconds": 11, + "total_effects": 0 + }, + "after_deadline": { + "decision": { + "allowed": false, + "utc_seconds": 21, + "action_hash": "8685d4aca34c34b81b079c5ba79ab9cea01433582881bdbe2e3c74337e28e0f2" + }, + "effect": { + "committed": false, + "utc_seconds": 21, + "total_effects": 0 + } + }, + "independent_vendor_reproduction": false + }, + { + "case_id": "revoked_stale", + "basis": "synthetic_fixture", + "decision": { + "allowed": false, + "utc_seconds": 10, + "action_hash": "de6f436a46232597a53742eb4b283fb56e3a978acb68d9ed8038290d24390d01" + }, + "dispatch": null, + "effect": { + "committed": false, + "utc_seconds": 11, + "total_effects": 0 + }, + "after_deadline": { + "decision": { + "allowed": false, + "utc_seconds": 21, + "action_hash": "de6f436a46232597a53742eb4b283fb56e3a978acb68d9ed8038290d24390d01" + }, + "effect": { + "committed": false, + "utc_seconds": 21, + "total_effects": 0 + } + }, + "independent_vendor_reproduction": false + }, + { + "case_id": "unreachable", + "basis": "synthetic_fixture", + "decision": { + "allowed": false, + "utc_seconds": 10, + "action_hash": "63df14e94045070197e7504e0f420dd02c9d84db9d8c4a54d7a69b0adb9ce525" + }, + "dispatch": null, + "effect": { + "committed": false, + "utc_seconds": 11, + "total_effects": 0 + }, + "after_deadline": { + "decision": { + "allowed": false, + "utc_seconds": 21, + "action_hash": "63df14e94045070197e7504e0f420dd02c9d84db9d8c4a54d7a69b0adb9ce525" + }, + "effect": { + "committed": false, + "utc_seconds": 21, + "total_effects": 0 + } + }, + "independent_vendor_reproduction": false + }, + { + "case_id": "post_dispatch_revoke", + "basis": "synthetic_fixture", + "decision": { + "allowed": true, + "utc_seconds": 10, + "action_hash": "f49193797aea777b5b5b6e9303871e664f502d4d12e13e02d7628a2462eea6b0" + }, + "dispatch": { + "token": "post_dispatch_revoke", + "action_hash": "f49193797aea777b5b5b6e9303871e664f502d4d12e13e02d7628a2462eea6b0" + }, + "effect": { + "committed": false, + "utc_seconds": 11, + "total_effects": 0 + }, + "after_deadline": { + "decision": { + "allowed": false, + "utc_seconds": 21, + "action_hash": "f49193797aea777b5b5b6e9303871e664f502d4d12e13e02d7628a2462eea6b0" + }, + "effect": { + "committed": false, + "utc_seconds": 21, + "total_effects": 0 + } + }, + "independent_vendor_reproduction": false + } +] diff --git a/integrations/alakris-authority-comparison/results/tests.txt b/integrations/alakris-authority-comparison/results/tests.txt new file mode 100644 index 0000000..c5f2933 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/tests.txt @@ -0,0 +1,32 @@ +test_emergency_bound_retains_blocks (test_runner.BoundaryChecks.test_emergency_bound_retains_blocks) ... ok +test_forged_dispatch_rejected (test_runner.BoundaryChecks.test_forged_dispatch_rejected) ... ok +test_late_veto_invalidates_prior_dispatch (test_runner.BoundaryChecks.test_late_veto_invalidates_prior_dispatch) ... ok +test_manifest_cannot_omit_required_bytes (test_runner.BoundaryChecks.test_manifest_cannot_omit_required_bytes) ... ok +test_measured_null_rejected (test_runner.BoundaryChecks.test_measured_null_rejected) ... ok +test_root_age_is_seconds_not_root_identity (test_runner.BoundaryChecks.test_root_age_is_seconds_not_root_identity) ... ok +test_action_tampering_between_dispatch_commit (test_runner.Checks.test_action_tampering_between_dispatch_commit) ... ok +test_author_evidence_cannot_be_independent (test_runner.Checks.test_author_evidence_cannot_be_independent) ... ok +test_escape_rejected (test_runner.Checks.test_escape_rejected) ... ok +test_late_recovery_does_not_reopen (test_runner.Checks.test_late_recovery_does_not_reopen) ... ok +test_mintid_outage_keeps_old_revision (test_runner.Checks.test_mintid_outage_keeps_old_revision) ... ok +test_missing_field_cannot_be_measured_value (test_runner.Checks.test_missing_field_cannot_be_measured_value) ... ok +test_missing_states_not_collapsed (test_runner.Checks.test_missing_states_not_collapsed) ... ok +test_post_dispatch_recheck (test_runner.Checks.test_post_dispatch_recheck) ... ok +test_published_proofable_stays_integrity_failed (test_runner.Checks.test_published_proofable_stays_integrity_failed) ... ok +test_revoked_no_effect (test_runner.Checks.test_revoked_no_effect) ... ok +test_tampering_fails (test_runner.Checks.test_tampering_fails) ... ok +test_unknown_state_rejected (test_runner.Checks.test_unknown_state_rejected) ... ok +test_unreachable_no_effect (test_runner.Checks.test_unreachable_no_effect) ... ok +test_valid_control_and_duplicate (test_runner.Checks.test_valid_control_and_duplicate) ... ok +test_veto_no_effect (test_runner.Checks.test_veto_no_effect) ... ok +test_duplicate_cases_rejected (test_runner.CompletenessChecks.test_duplicate_cases_rejected) ... ok +test_four_cases_required (test_runner.CompletenessChecks.test_four_cases_required) ... ok +test_missing_proofable_row_is_missing_not_na (test_runner.CompletenessChecks.test_missing_proofable_row_is_missing_not_na) ... ok +test_reference_rejects_empty_username_credentials (test_runner.ReferenceChecks.test_reference_rejects_empty_username_credentials) ... ok +test_reference_requires_http_uri (test_runner.ReferenceChecks.test_reference_requires_http_uri) ... ok +test_released_trace_reference_shape (test_runner.ReferenceChecks.test_released_trace_reference_shape) ... ok + +---------------------------------------------------------------------- +Ran 27 tests in 0.385s + +OK diff --git a/integrations/alakris-authority-comparison/results/trace-reference-shapes.json b/integrations/alakris-authority-comparison/results/trace-reference-shapes.json new file mode 100644 index 0000000..1c32779 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/trace-reference-shapes.json @@ -0,0 +1,158 @@ +[ + { + "file": "proofable/README.md", + "reference": { + "rel": "behavior-trace", + "id": "https://raw.githubusercontent.com/proofable/docs/3a45f026fd0c06b9d1d411c053597584b6b1c3dc/public/evidence/aaif/authority-at-dispatch/2026-10-06/README.md", + "resolver": "https://raw.githubusercontent.com/proofable/docs/3a45f026fd0c06b9d1d411c053597584b6b1c3dc/public/evidence/aaif/authority-at-dispatch/2026-10-06/README.md", + "digest": "sha256:67dcbff2c2045f421ad8ef8dd1926f0ff967870c66570cd45575d13a127cda4a" + }, + "reference_shape_validated": true, + "signature_verification": "not_measured", + "assurance": "public_vendor_log", + "trace_record_emitted": false + }, + { + "file": "proofable/SHA256SUMS", + "reference": { + "rel": "behavior-trace", + "id": "https://raw.githubusercontent.com/proofable/docs/3a45f026fd0c06b9d1d411c053597584b6b1c3dc/public/evidence/aaif/authority-at-dispatch/2026-10-06/SHA256SUMS", + "resolver": "https://raw.githubusercontent.com/proofable/docs/3a45f026fd0c06b9d1d411c053597584b6b1c3dc/public/evidence/aaif/authority-at-dispatch/2026-10-06/SHA256SUMS", + "digest": "sha256:3ddf1e631c23f5b26442a06b57d153b9976bddbc6721cbef40b296ff81a06c5d" + }, + "reference_shape_validated": true, + "signature_verification": "not_measured", + "assurance": "public_vendor_log", + "trace_record_emitted": false + }, + { + "file": "proofable/manifest.json", + "reference": { + "rel": "behavior-trace", + "id": "https://raw.githubusercontent.com/proofable/docs/3a45f026fd0c06b9d1d411c053597584b6b1c3dc/public/evidence/aaif/authority-at-dispatch/2026-10-06/manifest.json", + "resolver": "https://raw.githubusercontent.com/proofable/docs/3a45f026fd0c06b9d1d411c053597584b6b1c3dc/public/evidence/aaif/authority-at-dispatch/2026-10-06/manifest.json", + "digest": "sha256:f0a6bc2243e753c437215476d466094ca6c7b889701b64edf221f6ddbbc8660d" + }, + "reference_shape_validated": true, + "signature_verification": "not_measured", + "assurance": "public_vendor_log", + "trace_record_emitted": false + }, + { + "file": "proofable/trace.jsonl", + "reference": { + "rel": "behavior-trace", + "id": "https://raw.githubusercontent.com/proofable/docs/3a45f026fd0c06b9d1d411c053597584b6b1c3dc/public/evidence/aaif/authority-at-dispatch/2026-10-06/trace.jsonl", + "resolver": "https://raw.githubusercontent.com/proofable/docs/3a45f026fd0c06b9d1d411c053597584b6b1c3dc/public/evidence/aaif/authority-at-dispatch/2026-10-06/trace.jsonl", + "digest": "sha256:8df7ed9d49d1d6fb696a05661fd11db194db7c808719a66cadbf0f0a562cc1e2" + }, + "reference_shape_validated": true, + "signature_verification": "not_measured", + "assurance": "public_vendor_log", + "trace_record_emitted": false + }, + { + "file": "proofable/authority-effect-results.json", + "reference": { + "rel": "behavior-trace", + "id": "https://raw.githubusercontent.com/proofable/docs/3a45f026fd0c06b9d1d411c053597584b6b1c3dc/public/evidence/aaif/authority-at-dispatch/2026-10-06/authority-effect-results.json", + "resolver": "https://raw.githubusercontent.com/proofable/docs/3a45f026fd0c06b9d1d411c053597584b6b1c3dc/public/evidence/aaif/authority-at-dispatch/2026-10-06/authority-effect-results.json", + "digest": "sha256:c4b35ed7c2f08dc8924979934a137a9bfd673436a4c98f89395d3d6ece7dd92f" + }, + "reference_shape_validated": true, + "signature_verification": "not_measured", + "assurance": "public_vendor_log", + "trace_record_emitted": false + }, + { + "file": "proofable/authority-effect-results.md", + "reference": { + "rel": "behavior-trace", + "id": "https://raw.githubusercontent.com/proofable/docs/3a45f026fd0c06b9d1d411c053597584b6b1c3dc/public/evidence/aaif/authority-at-dispatch/2026-10-06/authority-effect-results.md", + "resolver": "https://raw.githubusercontent.com/proofable/docs/3a45f026fd0c06b9d1d411c053597584b6b1c3dc/public/evidence/aaif/authority-at-dispatch/2026-10-06/authority-effect-results.md", + "digest": "sha256:0338ff2367ef06568301bed497d2f067fd7650499b07fd6f540b69781cef9702" + }, + "reference_shape_validated": true, + "signature_verification": "not_measured", + "assurance": "public_vendor_log", + "trace_record_emitted": false + }, + { + "file": "mintid/revocation-trace-testnet-20261006T073712Z.jsonl", + "reference": { + "rel": "behavior-trace", + "id": "https://gitlab.com/mintid/mintid/-/raw/b678e5cd6b5736e1795fd18d497fd8e501272dcd/test-harness/trace/records/revocation-trace-testnet-20261006T073712Z.jsonl", + "resolver": "https://gitlab.com/mintid/mintid/-/raw/b678e5cd6b5736e1795fd18d497fd8e501272dcd/test-harness/trace/records/revocation-trace-testnet-20261006T073712Z.jsonl", + "digest": "sha256:509a5047f3f52730c340314d82a0f4c3968db7b41c4cdca21f438fe70d1563d7" + }, + "reference_shape_validated": true, + "signature_verification": "not_measured", + "assurance": "public_vendor_log", + "trace_record_emitted": false + }, + { + "file": "mintid/revocation-trace-testnet-20261006T073712Z.md", + "reference": { + "rel": "behavior-trace", + "id": "https://gitlab.com/mintid/mintid/-/raw/b678e5cd6b5736e1795fd18d497fd8e501272dcd/test-harness/trace/records/revocation-trace-testnet-20261006T073712Z.md", + "resolver": "https://gitlab.com/mintid/mintid/-/raw/b678e5cd6b5736e1795fd18d497fd8e501272dcd/test-harness/trace/records/revocation-trace-testnet-20261006T073712Z.md", + "digest": "sha256:e984c1d8b0555298bb18057bfd8e04089eb012e980f842a593eb07be7e4b6852" + }, + "reference_shape_validated": true, + "signature_verification": "not_measured", + "assurance": "public_vendor_log", + "trace_record_emitted": false + }, + { + "file": "mintid/revocation-trace-testnet-20261006T073712Z.manifest.json", + "reference": { + "rel": "behavior-trace", + "id": "https://gitlab.com/mintid/mintid/-/raw/b678e5cd6b5736e1795fd18d497fd8e501272dcd/test-harness/trace/records/revocation-trace-testnet-20261006T073712Z.manifest.json", + "resolver": "https://gitlab.com/mintid/mintid/-/raw/b678e5cd6b5736e1795fd18d497fd8e501272dcd/test-harness/trace/records/revocation-trace-testnet-20261006T073712Z.manifest.json", + "digest": "sha256:a3cdc29b85ddaf7ef5e5166ea007dc04cc34c1660b14fa416cec2eab23d6983f" + }, + "reference_shape_validated": true, + "signature_verification": "not_measured", + "assurance": "public_vendor_log", + "trace_record_emitted": false + }, + { + "file": "mintid/revocation-trace-local-20261005T094532Z.jsonl", + "reference": { + "rel": "behavior-trace", + "id": "https://gitlab.com/mintid/mintid/-/raw/b678e5cd6b5736e1795fd18d497fd8e501272dcd/test-harness/trace/records/revocation-trace-local-20261005T094532Z.jsonl", + "resolver": "https://gitlab.com/mintid/mintid/-/raw/b678e5cd6b5736e1795fd18d497fd8e501272dcd/test-harness/trace/records/revocation-trace-local-20261005T094532Z.jsonl", + "digest": "sha256:06b5f1e88b39890dc62bacb8ce5c1234c69b942a909bdcc4993ba1073789a0b7" + }, + "reference_shape_validated": true, + "signature_verification": "not_measured", + "assurance": "public_vendor_log", + "trace_record_emitted": false + }, + { + "file": "mintid/revocation-trace-local-20261005T094532Z.md", + "reference": { + "rel": "behavior-trace", + "id": "https://gitlab.com/mintid/mintid/-/raw/b678e5cd6b5736e1795fd18d497fd8e501272dcd/test-harness/trace/records/revocation-trace-local-20261005T094532Z.md", + "resolver": "https://gitlab.com/mintid/mintid/-/raw/b678e5cd6b5736e1795fd18d497fd8e501272dcd/test-harness/trace/records/revocation-trace-local-20261005T094532Z.md", + "digest": "sha256:849acd8efa87931f5f68ea5e7e8ed2967acea711d57aff5b9fefaa587bc1e18f" + }, + "reference_shape_validated": true, + "signature_verification": "not_measured", + "assurance": "public_vendor_log", + "trace_record_emitted": false + }, + { + "file": "mintid/revocation-trace-local-20261005T094532Z.manifest.json", + "reference": { + "rel": "behavior-trace", + "id": "https://gitlab.com/mintid/mintid/-/raw/b678e5cd6b5736e1795fd18d497fd8e501272dcd/test-harness/trace/records/revocation-trace-local-20261005T094532Z.manifest.json", + "resolver": "https://gitlab.com/mintid/mintid/-/raw/b678e5cd6b5736e1795fd18d497fd8e501272dcd/test-harness/trace/records/revocation-trace-local-20261005T094532Z.manifest.json", + "digest": "sha256:10e8513dde5931208559b9f35b2f9c675ccf78bd156878fd7d2b59050c5a036b" + }, + "reference_shape_validated": true, + "signature_verification": "not_measured", + "assurance": "public_vendor_log", + "trace_record_emitted": false + } +] diff --git a/integrations/alakris-authority-comparison/results/upstream-manifest-checks.txt b/integrations/alakris-authority-comparison/results/upstream-manifest-checks.txt new file mode 100644 index 0000000..ca5d996 --- /dev/null +++ b/integrations/alakris-authority-comparison/results/upstream-manifest-checks.txt @@ -0,0 +1,49 @@ +CHECK claude-code +CHECK integrations/aeoess-aps +CHECK integrations/agentrust-ca2a-cross-operator +CHECK integrations/agentrust-confidential-workflow-harness +CHECK integrations/alakris-authority-comparison +CHECK integrations/altrudev-agent-replay +CHECK integrations/altrudev-frequency-agent-execution-assurance +CHECK integrations/bernstein-mcp +CHECK integrations/chap +CHECK integrations/companyscope-incident-register +CHECK integrations/comply54 +CHECK integrations/computeid-agentpassport-trace +CHECK integrations/decisionassure +CHECK integrations/docker-sandbox-kit +CHECK integrations/epilabs-epi-recorder +CHECK integrations/evidencebound-core +CHECK integrations/google-adk +CHECK integrations/langchain +CHECK integrations/litzki-systems-sovp +CHECK integrations/llamaindex +CHECK integrations/nobulex +CHECK integrations/ontoguard-decision-authorization +CHECK integrations/openai-agents +CHECK integrations/openshell +CHECK integrations/otel-genai +CHECK integrations/probityai-observed-effect +CHECK integrations/ramen-ai-cmcp +CHECK integrations/sage-agenttrust +CHECK integrations/sentinel +CHECK integrations/spendguard +CHECK integrations/wcm-agent-manifest +CHECK integrations/wcm-azure-skr +CHECK integrations/wcm-coco-trustee +CHECK integrations/wcm-cyclonedx +CHECK integrations/wcm-gcp-confidential-space +CHECK integrations/wcm-huggingface +CHECK integrations/wcm-in-toto +CHECK integrations/wcm-kyverno +CHECK integrations/wcm-nvidia-nras +CHECK integrations/wcm-oci +CHECK integrations/wcm-opentelemetry +CHECK integrations/wcm-trace +CHECK integrations/wcm-triton +CHECK integrations/wcm-vllm +CHECK plugins/agentrust-codex +CHECK scheduled-agents +46 integration(s), 0 failure(s) +compatibility policy: 0 failure(s) +marketplace/catalog.json is current (46 integrations) diff --git a/integrations/alakris-authority-comparison/runner.py b/integrations/alakris-authority-comparison/runner.py new file mode 100644 index 0000000..93ac51d --- /dev/null +++ b/integrations/alakris-authority-comparison/runner.py @@ -0,0 +1,524 @@ +"""Appraise public authority evidence; no unsigned input becomes attested TRACE.""" + +import argparse +import hashlib +import json +from pathlib import Path + +STATES = {"measured", "not_applicable", "not_emitted", "not_measured"} +CASES = ("binding_veto", "revoked_stale", "unreachable", "post_dispatch_revoke") +REQUIRED_FIELDS = frozenset( + json.loads(Path(__file__).with_name("comparison-contract.json").read_text())[ + "required_fields" + ] +) + + +def field(state, value=None, reason=None): + if state not in STATES: + raise ValueError("unknown evidence state") + if state == "measured" and value is None: + raise ValueError("measured fields require an observation") + if state != "measured" and value is not None: + raise ValueError("missing/inapplicable fields cannot carry a measured value") + if reason is None and state != "measured": + reason = { + "not_applicable": "no equivalent on this implementation path", + "not_emitted": "not present in the public adapter input", + "not_measured": "measurement/appraisal not performed", + }[state] + return {"state": state, "value": value, "reason": reason} + + +def digest(path): + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def relative_file(base, name): + path = (base / name).resolve() + if not path.is_relative_to(base.resolve()) or not path.is_file(): + raise ValueError("missing file or unsafe artifact path: " + str(name)) + return path + + +def rows(path): + return [json.loads(line) for line in path.read_text().splitlines() if line.strip()] + + +def hash_check(base, name, expected): + actual = digest(relative_file(base, name)) + return { + "file": name, + "expected": expected, + "actual": actual, + "match": actual == expected, + } + + +def reference(path, uri): + # Proposed comparison evidence relation, not a registered TRACE relation. + return { + "uri": uri, + "digest": {"alg": "sha-256", "value": digest(path)}, + "signature_appraisal": "not_measured", + "attestation_claim": False, + } + + +def refusal_observation(path): + """Keep observed refusal time separate from formula, bound unit and t0.""" + first = path.get("first_refused") or {} + emergency = path["path"] == "emergency" + seconds = first.get("seconds_after_t0") + bound = path.get("bound_seconds") + root = path.get("root_carrying_revocation") or {} + heights = { + "refusal_chain_height_after": first.get("chain_height_after"), + "root_carrying_revocation_finalized_height": root.get("finalized_height"), + } + return { + "path": path["path"], + "agent": path.get("agent"), + "observed_seconds_after_t0": field("measured", seconds) + if seconds is not None + else field("not_emitted"), + "seconds_bound": field( + "not_applicable", reason="publisher defines this emergency bound in blocks" + ) + if emergency + else (field("measured", bound) if bound is not None else field("not_emitted")), + "bound_unit": "blocks" if emergency else "seconds", + "bound_formula": path.get("bound_formula"), + "t0_definition": path.get("t0_definition"), + "block_observations": field("measured", heights) + if any(v is not None for v in heights.values()) + else field("not_emitted"), + } + + +def unobserved_context_fields(): + """Adapters explicitly disclose unavailable context before validation.""" + return { + key: field( + "not_measured" + if key in {"independent_effect_witness", "retry_count", "duplicate_count"} + else "not_emitted", + reason="appraisal not performed" + if key in {"independent_effect_witness", "retry_count", "duplicate_count"} + else "not exposed by this public adapter input", + ) + for key in ( + "action_digest", + "target_identity", + "original_deadline", + "fallback_scope", + "independent_effect_witness", + "retry_count", + "duplicate_count", + ) + } + + +def validate_report(report): + ids = [c["case_id"] for c in report["cases"]] + if len(ids) != 4 or set(ids) != set(CASES): + raise ValueError("exactly four unique case IDs are required") + for case in report["cases"]: + if case["case_id"] not in CASES: + raise ValueError("unknown case") + missing = REQUIRED_FIELDS.difference(case["fields"]) + if missing: + raise ValueError( + "missing required fields for " + + case["case_id"] + + ": " + + ", ".join(sorted(missing)) + ) + for key, item in case["fields"].items(): + field(item["state"], item["value"], item.get("reason")) + if ( + case.get("independent_live_reproduction") + and case["basis"] != "independent_run" + ): + raise ValueError("author records cannot establish independent reproduction") + return report + + +def proofable(base): + manifest = json.loads((base / "manifest.json").read_text()) + trace = rows(base / "trace.jsonl") + checks = [] + for line in (base / "SHA256SUMS").read_text().splitlines(): + expected, name = line.split(maxsplit=1) + checks.append(hash_check(base, name.lstrip("* "), expected)) + checks.append( + hash_check( + base, manifest["public_trace"]["file"], manifest["public_trace"]["sha256"] + ) + ) + envelope_path = base / "portable-proofs.json" + envelope_report = { + "state": "not_measured", + "reason": "no public envelope file", + "valid": None, + } + if envelope_path.exists(): + from portable_envelope import verify + + envelopes = json.loads(envelope_path.read_text()) + expected = set() + for row in trace: + receipt = row.get("terminal_receipt") or {} + if receipt.get("qHash"): + expected.add(receipt["qHash"]) + expected.update(row.get("authority_decision_qHashes", [])) + for key in ("authority_decision_qHash", "next_authority_decision_qHash"): + if row.get(key): + expected.add(row[key]) + actual = [e.get("qHash") for e in envelopes] + refs = [ + r.get("qHash") + for r in manifest.get("portable_proofs", {}).get("references", []) + ] + verdicts = [{"qHash": e.get("qHash"), **verify(e)} for e in envelopes] + bound = ( + len(envelopes) + == len(set(actual)) + == len(refs) + == len(set(refs)) + == manifest.get("portable_proofs", {}).get("count") + == len(expected) + and bool(expected) + and set(actual) == set(refs) == expected + ) + envelope_report = { + "state": "measured", + "valid": bound and all(v["valid"] for v in verdicts), + "qhash_set_bound": bound, + "verdicts": verdicts, + "scope": "historical EIP-191 receipt integrity; freshness not appraised", + } + ids = [r["case_id"] for r in trace] + consistent = len(ids) == len(set(ids)) == manifest["public_trace"][ + "record_count" + ] and set(ids) == { + "hosted_allow", + "binding_veto", + "revoke_before_dispatch", + "expiry_before_dispatch", + "stale_authority", + "post_dispatch_revoke", + } + cases = [] + source_cases = { + "binding_veto": ["binding_veto"], + "revoked_stale": [ + "hosted_allow", + "revoke_before_dispatch", + "expiry_before_dispatch", + "stale_authority", + ], + "unreachable": [], + "post_dispatch_revoke": ["post_dispatch_revoke"], + } + for case in CASES: + relevant = [r for r in trace if r["case_id"] in source_cases[case]] + + def missing(why): + return field("not_emitted", reason=why) + + fields = { + **unobserved_context_fields(), + "authority": field( + "measured", [r.get("delegation_qHash") for r in relevant] + ) + if relevant + else ( + field("not_applicable", reason="current authority evaluated locally") + if case == "unreachable" + else field("not_emitted") + ), + "decision": field("measured", [r["observed"] for r in relevant]) + if relevant + else ( + field( + "not_applicable", + reason="no remote authority dependency on this path", + ) + if case == "unreachable" + else field("not_emitted") + ), + "dispatch": field( + "not_emitted", reason="explicit dispatch event/time not in public trace" + ), + "platform_observation": field( + "measured", + [ + {"attempt": r["case_id"], "observation": r["observed"]} + for r in relevant + ], + ) + if relevant + else ( + field("not_applicable") + if case == "unreachable" + else field("not_emitted") + ), + "committed_effect": field( + "not_emitted", + reason="public trace has platform outcomes, not target-side committed effects", + ), + "task_outcome": field( + "not_emitted", + reason="platform observations do not establish the target task result", + ), + "receipt": field( + "measured", + [ + { + "attempt": r["case_id"], + "receipt": field("measured", r["terminal_receipt"]) + if r.get("terminal_receipt") + else field( + "not_emitted", reason="no receipt exposed for this attempt" + ), + } + for r in relevant + ], + ) + if relevant + else ( + field("not_applicable") + if case == "unreachable" + else field("not_emitted") + ), + "receipt_signature_material": field( + "measured", + {"file": "portable-proofs.json", "sha256": digest(envelope_path)}, + ) + if relevant and envelope_path.exists() + else missing("no envelope material for this case"), + "receipt_signature_verification": field("measured", envelope_report) + if relevant and envelope_report["state"] == "measured" + else field("not_measured", reason="no envelope verification for this case"), + "policy_digest": missing( + "policy version is an identifier, not a canonical digest" + ), + "revocation_latency_seconds": field("not_measured"), + "root_age_seconds": field( + "not_applicable", reason="local authority-state path" + ), + "useful_work_lost": field("not_measured"), + } + cases.append( + { + "case_id": case, + "basis": "author_record", + "publisher_claim": manifest["results"][case], + "independent_live_reproduction": False, + "fields": fields, + } + ) + data = (base / "trace.jsonl").read_bytes() + crlf = hashlib.sha256( + data.replace(b"\r\n", b"\n").replace(b"\n", b"\r\n") + ).hexdigest() + ok = ( + all(c["match"] for c in checks) + and consistent + and envelope_report["valid"] is not False + ) + return validate_report( + { + "implementation": "Proofable", + "run_id": manifest["run_id"], + "evidence_custody": { + "producer": "Proofable author/operator", + "public_artifact": "sanitized trace", + "appraiser": "Alakris evidence runner", + "independent_target_observer": False, + }, + "deployed_revision_claim": manifest["deployed_revision"], + "checks": checks, + "integrity": "PASS" if ok else "FAIL", + "record_count_consistent": consistent, + "envelope_appraisal": envelope_report, + "newline_diagnostic": { + "crlf_hash_matches_published": crlf + == manifest["public_trace"]["sha256"], + "strict_byte_check_unchanged": True, + }, + "cases": cases, + } + ) + + +def mintid(base, name): + manifest = json.loads(relative_file(base, name + ".manifest.json").read_text()) + required = {name + ".jsonl", name + ".md"} + if not required.issubset(manifest.get("files", {})): + raise ValueError("MintID manifest must cover JSONL and summary bytes") + checks = [] + for filename, expected in manifest["files"].items(): + if ( + not isinstance(expected, str) + or len(expected) != 64 + or any(c not in "0123456789abcdef" for c in expected) + ): + raise ValueError("invalid publisher digest") + checks.append(hash_check(base, filename, expected)) + rows(relative_file(base, name + ".jsonl")) + basis = "author_record" + paths = manifest.get("paths", []) + revocation_paths = [p for p in paths if p["path"] != "unreachable"] + outage_paths = [p for p in paths if p["path"] == "unreachable"] + cases = [] + for case in CASES: + + def na(why): + return field("not_applicable", reason=why) + + fields = { + **unobserved_context_fields(), + "dispatch": na("MintID has no executor"), + "committed_effect": na("relying-party boundary"), + "task_outcome": na("relying-party task outcome is outside MintID"), + "receipt": field("not_emitted"), + "receipt_signature_verification": field("not_measured"), + "policy_digest": field("measured", manifest["policy"]["sha256"]) + if manifest.get("policy", {}).get("sha256") is not None + else field("not_emitted"), + "authority": field("measured", manifest["policy"]["claim_policy"]) + if manifest.get("policy", {}).get("claim_policy") is not None + else field("not_emitted"), + "full_delegated_scope": field( + "not_emitted", reason="privacy-preserving predicate disclosure" + ), + "useful_work_lost": field("not_measured"), + } + if case == "revoked_stale" and revocation_paths: + fields["decision"] = field("measured", revocation_paths) + fields["first_refusal_observations"] = field( + "measured", [refusal_observation(p) for p in revocation_paths] + ) + fields["revocation_latency_seconds"] = field( + "not_measured", + reason="first presentation refusal is not an end-to-end revocation latency or general SLA", + ) + roots = [ + { + "path": p["path"], + "epoch": ( + (p.get("first_refused") or {}).get("decision_log") or {} + ).get("root_epoch"), + "height": ( + (p.get("first_refused") or {}).get("decision_log") or {} + ).get("root_height"), + } + for p in revocation_paths + ] + ages = [ + { + "path": p["path"], + "seconds": ( + (p.get("first_refused") or {}).get("decision_log") or {} + ).get("root_age_seconds"), + } + for p in revocation_paths + ] + roots = [ + r for r in roots if r["epoch"] is not None or r["height"] is not None + ] + ages = [a for a in ages if a["seconds"] is not None] + fields["evidence_identity"] = ( + field("measured", roots) + if roots + else field( + "not_emitted", reason="operator decision-log material unavailable" + ) + ) + fields["root_age_seconds"] = ( + field("measured", ages) if ages else field("not_emitted") + ) + limit = manifest.get("deployment", {}).get("max_root_age_seconds") + fields["freshness_limit_seconds"] = ( + field("measured", limit) if limit is not None else field("not_emitted") + ) + elif case == "unreachable" and outage_paths: + fields["decision"] = field("measured", outage_paths) + fields["recovery"] = field( + "measured", + [p.get("first_accepted_after_restore") for p in outage_paths], + ) + fields["evidence_identity"] = field( + "not_applicable", reason="no root behind unavailable-state refusal" + ) + fields["revocation_latency_seconds"] = field("not_applicable") + fields["root_age_seconds"] = field( + "not_applicable", reason="no decision root on disconnected path" + ) + else: + fields["decision"] = field( + "not_emitted", + reason="no published observation for this case in this record", + ) + fields["evidence_identity"] = field("not_emitted") + fields["revocation_latency_seconds"] = field("not_measured") + fields["root_age_seconds"] = field("not_measured") + cases.append( + { + "case_id": case, + "basis": basis, + "independent_live_reproduction": False, + "fields": fields, + } + ) + return validate_report( + { + "implementation": "MintID", + "run_id": name, + "integrity": "PASS" if all(c["match"] for c in checks) else "FAIL", + "evidence_custody": { + "producer": "MintID author/operator", + "public_artifact": "operator trace and summary", + "appraiser": "Alakris evidence runner", + "independent_target_observer": False, + }, + "record_revision": manifest["source"], + "deployment": manifest.get("deployment"), + "checks": checks, + "cases": cases, + } + ) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("implementation", choices=["proofable", "mintid"]) + parser.add_argument("--evidence", type=Path, required=True) + parser.add_argument("--record") + parser.add_argument("--output", type=Path, required=True) + args = parser.parse_args() + if args.implementation == "mintid" and not args.record: + parser.error("--record is required") + report = ( + proofable(args.evidence) + if args.implementation == "proofable" + else mintid(args.evidence, args.record) + ) + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(json.dumps(report, indent=2) + "\n") + print( + json.dumps( + { + "implementation": report["implementation"], + "integrity": report["integrity"], + "output": str(args.output), + } + ) + ) + return 0 if report["integrity"] == "PASS" else 1 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/integrations/alakris-authority-comparison/test_runner.py b/integrations/alakris-authority-comparison/test_runner.py new file mode 100644 index 0000000..59401e6 --- /dev/null +++ b/integrations/alakris-authority-comparison/test_runner.py @@ -0,0 +1,383 @@ +import hashlib +import json +from pathlib import Path +import tempfile +import unittest +from runner import ( + field, + hash_check, + relative_file, + proofable, + mintid, + validate_report, + refusal_observation, +) +from reference_adapter import Executor, run_cases +from runner import CASES, REQUIRED_FIELDS + + +def complete_report(): + return { + "cases": [ + { + "case_id": case, + "fields": {key: field("not_emitted") for key in REQUIRED_FIELDS}, + "basis": "author_record", + "independent_live_reproduction": False, + } + for case in CASES + ] + } + + +class RequiredFieldChecks(unittest.TestCase): + def test_each_required_field_omission_rejected_without_mutation(self): + for case_index, case_id in enumerate(CASES): + for key in REQUIRED_FIELDS: + with self.subTest(case=case_id, field=key): + report = complete_report() + del report["cases"][case_index]["fields"][key] + before = json.dumps(report, sort_keys=True) + with self.assertRaisesRegex(ValueError, key): + validate_report(report) + self.assertEqual(json.dumps(report, sort_keys=True), before) + + def test_authority_and_decision_omission_rejected(self): + report = complete_report() + del report["cases"][0]["fields"]["authority"] + del report["cases"][0]["fields"]["decision"] + with self.assertRaisesRegex(ValueError, "authority, decision"): + validate_report(report) + + def test_empty_fields_rejected(self): + report = complete_report() + report["cases"][0]["fields"] = {} + with self.assertRaisesRegex(ValueError, "missing required fields"): + validate_report(report) + + def test_explicit_unavailable_states_accepted_without_mutation(self): + for state in ("not_emitted", "not_measured", "not_applicable"): + with self.subTest(state=state): + report = complete_report() + for case in report["cases"]: + case["fields"] = {key: field(state) for key in REQUIRED_FIELDS} + before = json.dumps(report, sort_keys=True) + self.assertIs(validate_report(report), report) + self.assertEqual(json.dumps(report, sort_keys=True), before) + + def test_complete_measured_fields_accepted(self): + report = complete_report() + for case in report["cases"]: + case["fields"] = {key: field("measured", False) for key in REQUIRED_FIELDS} + self.assertIs(validate_report(report), report) + + +class Checks(unittest.TestCase): + def test_missing_states_not_collapsed(self): + self.assertEqual( + len( + { + json.dumps(field(s)) + for s in ["not_applicable", "not_emitted", "not_measured"] + } + ), + 3, + ) + + def test_missing_field_cannot_be_measured_value(self): + with self.assertRaises(ValueError): + field("not_measured", 5) + + def test_unknown_state_rejected(self): + with self.assertRaises(ValueError): + field("pass") + + def test_tampering_fails(self): + with tempfile.TemporaryDirectory() as d: + base = Path(d) + (base / "x").write_bytes(b"original") + h = hashlib.sha256(b"original").hexdigest() + self.assertTrue(hash_check(base, "x", h)["match"]) + (base / "x").write_bytes(b"changed") + self.assertFalse(hash_check(base, "x", h)["match"]) + + def test_escape_rejected(self): + with tempfile.TemporaryDirectory() as d: + with self.assertRaises(ValueError): + relative_file(Path(d), "../outside") + + def test_author_evidence_cannot_be_independent(self): + report = complete_report() + report["cases"][0]["independent_live_reproduction"] = True + with self.assertRaisesRegex(ValueError, "author records"): + validate_report(report) + + def test_veto_no_effect(self): + row = run_cases()[0] + self.assertFalse(row["decision"]["allowed"]) + self.assertFalse(row["effect"]["committed"]) + + def test_revoked_no_effect(self): + self.assertFalse(run_cases()[1]["effect"]["committed"]) + + def test_unreachable_no_effect(self): + self.assertFalse(run_cases()[2]["effect"]["committed"]) + + def test_post_dispatch_recheck(self): + row = run_cases()[3] + self.assertTrue(row["decision"]["allowed"]) + self.assertIsNotNone(row["dispatch"]) + self.assertFalse(row["effect"]["committed"]) + + def test_late_recovery_does_not_reopen(self): + for row in run_cases(): + self.assertFalse(row["after_deadline"]["effect"]["committed"]) + + def test_valid_control_and_duplicate(self): + e = Executor() + a = {"id": "control", "deadline": 20} + _, d = e.dispatch(a, 10) + self.assertTrue(e.commit(a, d, 11)["committed"]) + self.assertFalse(e.commit(a, d, 12)["committed"]) + self.assertEqual(len(e.effects), 1) + + def test_action_tampering_between_dispatch_commit(self): + e = Executor() + a = {"id": "control", "deadline": 20, "amount": 1} + _, d = e.dispatch(a, 10) + a["amount"] = 2 + self.assertFalse(e.commit(a, d, 11)["committed"]) + + def test_published_proofable_stays_integrity_failed(self): + p = Path("fixtures/proofable-historical") + if not p.exists(): + self.skipTest("run fetch_fixtures.py first") + report = proofable(p) + self.assertEqual(report["integrity"], "FAIL") + self.assertTrue(report["newline_diagnostic"]["crlf_hash_matches_published"]) + self.assertEqual( + next(c for c in report["cases"] if c["case_id"] == "unreachable")["fields"][ + "decision" + ]["state"], + "not_applicable", + ) + + def test_mintid_outage_keeps_old_revision(self): + p = Path("fixtures/mintid") + if not (p / "revocation-trace-local-20261005T094532Z.manifest.json").exists(): + self.skipTest("run fetch_fixtures.py first") + r = mintid(p, "revocation-trace-local-20261005T094532Z") + self.assertEqual(r["integrity"], "PASS") + c = next(c for c in r["cases"] if c["case_id"] == "unreachable") + self.assertEqual(c["fields"]["decision"]["state"], "measured") + self.assertFalse(c["independent_live_reproduction"]) + self.assertIn("public-v2026-10-05.5", r["record_revision"]["public_tags"]) + + +class ReferenceChecks(unittest.TestCase): + def test_released_trace_reference_shape(self): + from trace_references import behavior_reference + + with tempfile.TemporaryDirectory() as d: + path = Path(d) / "trace.jsonl" + path.write_bytes(b'{"decision":"deny"}\n') + ref = behavior_reference(path, "https://example.org/pinned/trace.jsonl") + self.assertEqual(ref.rel, "behavior-trace") + self.assertEqual( + ref.digest, "sha256:" + hashlib.sha256(path.read_bytes()).hexdigest() + ) + + def test_reference_requires_http_uri(self): + from trace_references import behavior_reference + + with tempfile.TemporaryDirectory() as d: + path = Path(d) / "trace.jsonl" + path.write_bytes(b"{}\n") + with self.assertRaises(ValueError): + behavior_reference(path, "not a URI") + + def test_reference_rejects_empty_username_credentials(self): + from trace_references import behavior_reference + + with tempfile.TemporaryDirectory() as d: + path = Path(d) / "trace.jsonl" + path.write_bytes(b"{}\n") + with self.assertRaises(ValueError): + behavior_reference(path, "https://:secret@example.org/file") + + +class BoundaryChecks(unittest.TestCase): + def test_late_veto_invalidates_prior_dispatch(self): + e = Executor() + a = {"id": "control", "deadline": 20} + _, issued = e.dispatch(a, 10) + decision, denied = e.dispatch(a, 11, veto=True) + self.assertFalse(decision["allowed"]) + self.assertIsNone(denied) + self.assertFalse(e.commit(a, issued, 12)["committed"]) + + def test_emergency_bound_retains_blocks(self): + r = refusal_observation( + { + "path": "emergency", + "bound_seconds": 0, + "bound_formula": "finalisation in blocks", + "t0_definition": "submission", + "first_refused": {"seconds_after_t0": 4.5, "chain_height_after": 95}, + "root_carrying_revocation": {"finalized_height": 94}, + } + ) + self.assertEqual(r["bound_unit"], "blocks") + self.assertEqual(r["seconds_bound"]["state"], "not_applicable") + self.assertEqual(r["observed_seconds_after_t0"]["value"], 4.5) + self.assertEqual( + r["block_observations"]["value"][ + "root_carrying_revocation_finalized_height" + ], + 94, + ) + + def test_forged_dispatch_rejected(self): + e = Executor() + a = {"id": "forged", "deadline": 20} + h = hashlib.sha256( + json.dumps(a, sort_keys=True, separators=(",", ":")).encode() + ).hexdigest() + self.assertFalse( + e.commit(a, {"token": "forged", "action_hash": h}, 11)["committed"] + ) + + def test_measured_null_rejected(self): + with self.assertRaises(ValueError): + field("measured") + + def test_manifest_cannot_omit_required_bytes(self): + with tempfile.TemporaryDirectory() as d: + p = Path(d) + (p / "x.manifest.json").write_text(json.dumps({"files": {}})) + with self.assertRaises(ValueError): + mintid(p, "x") + + def test_root_age_is_seconds_not_root_identity(self): + p = Path("fixtures/mintid") + if not p.exists(): + self.skipTest("fetch fixtures") + r = mintid(p, "revocation-trace-testnet-20261006T073712Z") + c = next(c for c in r["cases"] if c["case_id"] == "revoked_stale") + self.assertTrue( + all( + isinstance(a["seconds"], (int, float)) + for a in c["fields"]["root_age_seconds"]["value"] + ) + ) + self.assertTrue( + all( + "epoch" in a and "height" in a + for a in c["fields"]["evidence_identity"]["value"] + ) + ) + + +class CompletenessChecks(unittest.TestCase): + def test_four_cases_required(self): + with self.assertRaises(ValueError): + validate_report({"cases": []}) + + def test_duplicate_cases_rejected(self): + with self.assertRaises(ValueError): + validate_report({"cases": [{"case_id": "binding_veto", "fields": {}}] * 4}) + + def test_missing_proofable_row_is_missing_not_na(self): + p = Path("fixtures/proofable") + if not p.exists(): + self.skipTest("fetch fixtures") + import shutil + + with tempfile.TemporaryDirectory() as d: + target = Path(d) / "proofable" + shutil.copytree(p, target) + lines = (target / "trace.jsonl").read_text().splitlines() + (target / "trace.jsonl").write_text( + "\n".join( + line + for line in lines + if json.loads(line)["case_id"] != "binding_veto" + ) + + "\n" + ) + r = proofable(target) + self.assertEqual(r["integrity"], "FAIL") + c = next(c for c in r["cases"] if c["case_id"] == "binding_veto") + self.assertEqual(c["fields"]["decision"]["state"], "not_emitted") + + +class CorrectedProofableChecks(unittest.TestCase): + def packet(self): + p = Path("fixtures/proofable") + self.assertTrue(p.exists(), "corrected pinned fixtures are required") + return p + + def test_corrected_packet_verifies(self): + report = proofable(self.packet()) + self.assertEqual(report["integrity"], "PASS") + self.assertTrue(report["envelope_appraisal"]["valid"]) + self.assertEqual(len(report["envelope_appraisal"]["verdicts"]), 11) + self.assertFalse(report["evidence_custody"]["independent_target_observer"]) + self.assertTrue( + all(not row["independent_live_reproduction"] for row in report["cases"]) + ) + unreachable = next( + row for row in report["cases"] if row["case_id"] == "unreachable" + ) + self.assertEqual( + unreachable["fields"]["receipt_signature_verification"]["state"], + "not_measured", + ) + + def test_semantic_envelope_mutations_fail(self): + import shutil + from portable_envelope import qhash + + for mutation in ( + "did_address", + "did_chain", + "data", + "signature", + "duplicate", + "missing", + "trace_binding", + ): + with self.subTest(mutation=mutation), tempfile.TemporaryDirectory() as d: + target = Path(d) / "proofable" + shutil.copytree(self.packet(), target) + path = target / "portable-proofs.json" + envelopes = json.loads(path.read_text()) + if mutation == "duplicate": + envelopes[-1] = envelopes[0] + elif mutation == "missing": + envelopes.pop() + elif mutation == "trace_binding": + trace = target / "trace.jsonl" + rows = [json.loads(line) for line in trace.read_text().splitlines()] + rows[0]["terminal_receipt"]["qHash"] = "0x" + "0" * 64 + trace.write_text("".join(json.dumps(row) + "\n" for row in rows)) + elif mutation == "signature": + envelopes[0]["signature"] = "0x" + "00" * 65 + else: + if mutation == "did_address": + envelopes[0]["did"] = "did:pkh:eip155:84532:0x" + "1" * 40 + elif mutation == "did_chain": + envelopes[0]["did"] = envelopes[0]["did"].replace( + ":84532:", ":1:" + ) + else: + envelopes[0]["data"]["owner"] = "0x" + "1" * 40 + envelopes[0]["qHash"] = qhash(envelopes[0]) + path.write_text(json.dumps(envelopes)) + report = proofable(target) + self.assertFalse(report["envelope_appraisal"]["valid"]) + self.assertEqual(report["integrity"], "FAIL") + + +if __name__ == "__main__": + unittest.main() diff --git a/integrations/alakris-authority-comparison/trace_references.py b/integrations/alakris-authority-comparison/trace_references.py new file mode 100644 index 0000000..6f3c8b9 --- /dev/null +++ b/integrations/alakris-authority-comparison/trace_references.py @@ -0,0 +1,16 @@ +"""TRACE Reference shape checks do not attest unsigned vendor evidence.""" +from hashlib import sha256 +from pathlib import Path +from urllib.parse import urlparse +from agentrust_trace import Reference + +def behavior_reference(path: Path, pinned_url: str): + uri = urlparse(pinned_url) + if uri.scheme != 'https' or not uri.hostname or uri.username is not None or uri.password is not None or any(c.isspace() for c in pinned_url): + raise ValueError('public evidence reference must be an HTTPS URL without embedded credentials') + return Reference.model_validate({ + 'rel': 'behavior-trace', + 'id': pinned_url, + 'resolver': pinned_url, + 'digest': 'sha256:' + sha256(path.read_bytes()).hexdigest(), + }) diff --git a/integrations/alakris-authority-comparison/upstream-workflow.yml.in b/integrations/alakris-authority-comparison/upstream-workflow.yml.in new file mode 100644 index 0000000..d7c1e90 --- /dev/null +++ b/integrations/alakris-authority-comparison/upstream-workflow.yml.in @@ -0,0 +1,32 @@ +name: Alakris authority comparison evidence checks + +on: + pull_request: + paths: + - "integrations/alakris-authority-comparison/**" + - ".github/workflows/alakris-authority-comparison.yml" + push: + branches: [main] + paths: + - "integrations/alakris-authority-comparison/**" + - ".github/workflows/alakris-authority-comparison.yml" + workflow_dispatch: + +permissions: + contents: read + +jobs: + evidence-checks: + runs-on: ubuntu-24.04 + timeout-minutes: 15 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 + - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 + with: + python-version: "3.12" + - name: Install released packages + working-directory: integrations/alakris-authority-comparison + run: python -m pip install --require-hashes -r requirements.lock + - name: Check fixtures, boundaries and reference shape + working-directory: integrations/alakris-authority-comparison + run: python check_package.py --fetch diff --git a/marketplace/catalog.json b/marketplace/catalog.json index 3c9ca24..fe5b51f 100644 --- a/marketplace/catalog.json +++ b/marketplace/catalog.json @@ -1,6 +1,6 @@ { "catalog_version": 1, - "count": 45, + "count": 46, "integrations": [ { "name": "Claude Code", @@ -136,6 +136,29 @@ "telemetry" ] }, + { + "name": "AAIF Authority Comparison Runner", + "package_name": "AAIF Authority Comparison Runner", + "vendor": "Alakris Research", + "description": "Appraises pinned public authority/revocation evidence, preserves evidence gaps, and validates TRACE behavior-trace reference shape.", + "path": "integrations/alakris-authority-comparison", + "url": "https://github.com/agentrust-io/integrations/tree/main/integrations/alakris-authority-comparison", + "homepage": null, + "repository": "https://git.elibot.ru/agent-bot/aaif-publication-reference", + "tier": "community", + "stack": [ + "TRACE" + ], + "category": "Evidence & receipts", + "mark": "AC", + "featured": null, + "keywords": [ + "authority", + "revocation", + "evidence", + "reproducibility" + ] + }, { "name": "Agent Passport System", "package_name": "Agent Passport System",