Repository navigation
[Conformance] Reference host adapter cannot honor valid MODIFY with modified_content #181
Description
What you ran
Reference implementation: reference-implementations/agt
Branch: integration
Commit: 27799c2
Host-adapter test:
bun test packages/host-adapter/test/validate-decision.test.ts -t "modified_content"
Environment:
- Bun 1.4.2
- AGT reference implementation at
27799c2
The filtered test run exercises the host-adapter validation path for ACS MODIFY decisions containing modified_content, including both the arguments gate and result gate.
What you expected
The ACS v0.1.0 specification defines MODIFY in §6.3 as having two mutually exclusive forms:
- wholesale replacement using
modifications.modified_content; or - structured edits using
redactionsand/orparameter_overrides.
In §6.3, the specification states that modified_content replaces the entire payload and is the wholesale-replacement form of MODIFY.
Section §6.4 further states that when a decision arrives within the negotiated timeout, the Observed Agent MUST honor the decision. For MODIFY, the agent MUST proceed with the modified payload according to §6.3.
Therefore, when the reference host adapter receives a valid MODIFY decision containing only modified_content, the expected behavior is that the Observed Agent can apply the wholesale replacement where the governed payload supports such a replacement, rather than treating the modified_content form itself as an invalid or unsupported decision.
What happened
The reference host adapter currently rejects the modified_content form and fails closed instead.
The implementation in:
packages/host-adapter/src/modifications.ts
does not provide a target for an opaque modified_content replacement and therefore fails closed instead of applying the wholesale replacement.
The repository already contains tests that pin this behavior:
- denies a modify carrying only modified_content, for want of a target in an arguments object
- denies a modified_content result modification, naming the outputs as well as the arguments
I ran:
bun test packages/host-adapter/test/validate-decision.test.ts -t "modified_content"
at commit 27799c2.
Result:
✓ validateDecision — malformed modifications fail closed (§6.3) > denies when modified_content is combined with parameter_overrides
✓ validateDecision — malformed modifications fail closed (§6.3) > denies a modify carrying only modified_content, for want of a target in an arguments object
✓ validateDecision — the result gate projects the applied document onto the host's output > denies a modified_content result modification, naming the outputs as well as the arguments
3 pass
48 filtered out
0 fail
12 expect() calls
Ran 3 tests across 1 file.
What's missing
Host-side support for applying modifications.modified_content when the governed payload can represent a complete replacement.
What needs to change
Either:
- implement a host/payload-aware path that can apply
modified_contentat supported MODIFY control points; or - explicitly define the reference implementation's MODIFY capability as restricted to structured edits and make that restriction part of its conformance/profile claim.
Tests should cover the valid modified_content form at each host/gate where wholesale replacement is representable.
Why
modified_content is explicitly defined as one of the two normative MODIFY forms in §6.3, while §6.4 requires an Observed Agent to apply an arriving MODIFY decision.
The current reference implementation therefore cannot honor this valid ACS MODIFY form.
AGT capability assessment
The current AGT reference implementation does not implement the host-side path required to honor this valid ACS MODIFY form; this is a conformance gap, not merely a documentation gap..
Current Priority Scope
Feeds the runnable Guardian reference implementation
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsAccepted
Activity