Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/core.ts
Original file line number Diff line number Diff line change
Expand Up @@ -936,7 +936,7 @@ export function createAgentScoreCore(options: AgentScoreCoreOptions): AgentScore

if (decisionIsUnreadable) {
// No decision field. Indistinguishable from a truncated or proxied
// response, so this is an INFRASTRUCTURE failure and honours the
// response, so this is an INFRASTRUCTURE failure and honors the
// merchant's explicit `failOpen` choice, exactly as an unreachable API
// does above. What changed is that it is no longer a silent allow for
// merchants who did NOT opt into that.
Expand Down
2 changes: 1 addition & 1 deletion src/identity/policy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ export type IdentityStatus = 'verified' | 'unverified' | 'anonymous' | 'denied';
* `POST /v1/assess` directly is rejected with a 400 `invalid_policy`.
*
* That rejection is deliberate and recent. The API previously ignored a key it
* did not recognise, which meant a camelCase policy matched no rule, ran no
* did not recognize, which meant a camelCase policy matched no rule, ran no
* check, and came back `decision: "allow"`, a silent pass from a compliance
* gate. It now fails loudly instead, and the 400 names the correct spelling.
*
Expand Down
4 changes: 2 additions & 2 deletions tests/express.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ describe('agentscoreGate middleware — a response with no decision fails closed
// The merchant's explicit availability choice still applies here, exactly as
// it does for an unreachable API: a missing decision is an unreadable
// response, not a compliance verdict.
it('honours failOpen when the merchant opted into it', async () => {
it('honors failOpen when the merchant opted into it', async () => {
mockFetchOk({ ...ALLOW_RESPONSE, decision: null });
const mw = agentscoreGate({ apiKey: API_KEY, failOpen: true });
const req = makeReq(WALLET);
Expand All @@ -442,7 +442,7 @@ describe('agentscoreGate middleware — a response with no decision fails closed
// decision on the API side cannot silently open the gate on old SDKs. This one
// denies at 403 rather than 503: the API returned a READABLE decision that is
// simply not an approval, which is a verdict rather than an infrastructure
// failure, so it is not retryable and must not honour failOpen.
// failure, so it is not retryable and must not honor failOpen.
it('denies an unrecognised decision value', async () => {
mockFetchOk({ ...ALLOW_RESPONSE, decision: 'review' });
const mw = agentscoreGate({ apiKey: API_KEY });
Expand Down
2 changes: 1 addition & 1 deletion tests/payment/x402_server.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ describe('buildX402AcceptsFor402', () => {
expect(accept.extra).toEqual({ name: 'USD Coin', version: '2' });
});

it('honours scheme + maxTimeoutSeconds + extensions when supplied', async () => {
it('honors scheme + maxTimeoutSeconds + extensions when supplied', async () => {
let captured: { config?: Record<string, unknown>; extensions?: unknown } = {};
const fakeServer = {
register: () => {},
Expand Down
Loading