trust-record-verify: add citationResolver (citations) and platformAppraiser (platformMeasurement) parity with Python verify_record
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 72/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- nodejs, typescript
- Domain
- backend-api-design, cryptography, security
Research direction
Start with trust-record-verify/src/verify.ts, then use the Python implementations and the new modules src/citation.ts and src/platform.ts as behavioral references. Update the public options and results in src/verify.ts and exports in src/index.ts, preserving validation and running both resolvers after signature verification. Run the 32 vectors through trust-record-verify/tests/vectors.test.mjs in Node 20, 22, and 24 CI; the work is complete when all vectors pass and the TypeScript verifier matches the Python evidence surfaces.
Written by the indexing model from the issue text.
Description
What is wrong
Contributor: Raghuvar Durga (@drk-ram)
On main (e1560f3), the Python verifier agentrust_trace.verify_record returns three structured evidence surfaces on VerificationResult:
revocation(RevocationCheck)citations(dict[str, CitationCheck]viaagentrust_trace.citation.check_citations)platform_measurement(PlatformMeasurementCheckviaagentrust_trace.platform_measurement.check_platform_measurement)
However, the zero-dependency TypeScript verifier (trust-record-verify/src/verify.ts) only implements revocation and omits:
citationResolveroption andcitationsresult field (checkCitations, matchingsrc/agentrust_trace/citation.pyand the 16 vectors inexamples/citation-resolution/)platformAppraiseroption andplatformMeasurementresult field (checkPlatformMeasurement, matchingsrc/agentrust_trace/platform_measurement.pyand the 16 vectors inexamples/platform-measurement/)
Spec section or file
trust-record-verify/src/citation.ts(new)trust-record-verify/src/platform.ts(new)trust-record-verify/src/verify.tstrust-record-verify/src/index.tstrust-record-verify/tests/vectors.test.mjs
Expected behavior
- Add
checkCitations(trust-record-verify/src/citation.ts) andcheckPlatformMeasurement(trust-record-verify/src/platform.ts) using WebCryptoSHA-256and own-property inspection (own,isPlainObject), supporting both synchronous andPromiseresolvers/appraisers and running after signature verification inverifyRecord(so unauthenticated records never trigger caller resolvers/appraisers). - Expose
citationResolverandplatformAppraiseronVerifyOptions(validated at Step 1 insettings()withinvalid_argumentif neitherundefined,null, nor a function) and includecitationsandplatformMeasurementonVerificationResult. - Execute all 16
examples/citation-resolution/vectors and all 16examples/platform-measurement/vectors intrust-record-verify/tests/vectors.test.mjs.
Impact
Brings @agentrust-io/trust-record-verify to full feature parity with Python's verify_record across citations and platformMeasurement and verifies all 32 citation-resolution and platform-measurement conformance vectors in Node 20, 22, and 24 CI.
- Dominant language
- Python
- Stars
- 37
- Forks
- 33
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 122
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from agentrust-io/trace-spec
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
agentrust-io/trace-spec#593 · 1 comment ·
Maintainers usually reply within 1 day
-
bug needs-review:HIGH
Difficulty 5/5 Over a week Newbie friendliness 20/100
agentrust-io/trace-spec#591 · 4 comments ·
Maintainers usually reply within 1 day
-
prototype(manifest_requirements): resolve accepted_methods without duplicating bindings and reject unconfigured binding endpoints with ProfileErrorPossibly taken @drk-ram claimed this 1 day ago. Open
Difficulty 3/5 1-2 days Newbie friendliness 78/100
agentrust-io/trace-spec#580 ·
Maintainers usually reply within 1 day
-
feat(delegation): add parent_record_hash, verify_delegation_link, and verify_delegation_chain to agentrust_tracePossibly taken @drk-ram claimed this 1 day ago. Open
Difficulty 4/5 3-5 days Newbie friendliness 58/100
agentrust-io/trace-spec#581 ·
Maintainers usually reply within 1 day
-
revocation,trust-record-verify: implement es256 and es384 bundle verification and add EC revocation vectors (#448 items 1, 10)Possibly taken @drk-ram claimed this 1 day ago. Open
Difficulty 4/5 3-5 days Newbie friendliness 52/100
agentrust-io/trace-spec#584 ·
Maintainers usually reply within 1 day
All issues in agentrust-io/trace-spec
Similar issues
-
changelog investigate
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
ramnes/notion-sdk-py#423 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 1-3 hours Newbie friendliness 89/100
duckdb/duckdb-web#7514 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
jbacalso24/mimry#525 ·
Maintainers usually reply within 1 day