@atrib/agent 0.2.7 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -26,7 +26,7 @@ Two coverage surfaces define what you get:
26
26
 
27
27
  ## Coverage Matrix 2: Agent Payment Protocols
28
28
 
29
- `@atrib/agent` sits **above** every major agent payment protocol. It does not implement payments, move money, or enforce transactions; it detects transaction events in the response flow of whichever payment protocol your agent is using, and writes a signed fallback transaction record when no upstream atrib token already closed the chain. **You do not choose a payment protocol at install time**; the detection logic for all six (ACP, UCP, x402, MPP, AP2, a2a-x402) runs simultaneously and fires on whichever one your tool responses happen to carry. The fallback record is signed by the agent. Counterparty signatures and payment-receipt evidence are verifier inputs when the protocol supplies them; [D052](https://github.com/creatornader/atrib/blob/main/DECISIONS.md#d052-cross-attestation-requirement-for-transaction-records)-aware verifiers still flag records that do not meet the required cross-attestation bar.
29
+ `@atrib/agent` sits **above** every major agent payment protocol. It does not implement payments, move money, or enforce transactions; it detects transaction events in the response flow of whichever payment protocol your agent is using, and writes a fallback transaction record when no upstream atrib token already closed the chain. **You do not choose a payment protocol at install time**; the detection logic for all six (ACP, UCP, x402, MPP, AP2, a2a-x402) runs simultaneously and fires on whichever one your tool responses happen to carry. The fallback record carries an agent `signers[]` entry over the atrib transaction bytes. Counterparty signatures and payment-receipt evidence are verifier inputs when the protocol supplies them; [D052](https://github.com/creatornader/atrib/blob/main/DECISIONS.md#d052-cross-attestation-requirement-for-transaction-records)-aware verifiers still flag records that do not meet the required cross-attestation bar.
30
30
 
31
31
  All detection logic lives in `packages/agent/src/transaction.ts` and runs against unit tests for each protocol's published spec.
32
32
 
@@ -101,8 +101,12 @@ Payment-Receipt: eyJzdGF0dXMiOiJzdWNjZXNzIn0
101
101
 
102
102
  Detected from successful AP2 receipts. Current AP2 uses Checkout and Payment Mandates for authorization, then returns signed Checkout Receipts and Payment Receipts when a verifier accepts or rejects the mandate. atrib treats the successful receipt as the transaction close signal.
103
103
 
104
+ AP2 receipt JWT signatures remain verifier evidence. They are not counted as transaction `signers[]` unless an AP2 participant also signs the atrib transaction record bytes. See [D098](https://github.com/creatornader/atrib/blob/main/DECISIONS.md#d098-ap2-receipts-stay-external-evidence-for-cross-attestation).
105
+
104
106
  Decoded receipt objects are detected when they carry `status: "Success"` and the required AP2 fields. Signed receipt JWTs are detected in AP2 sample result envelopes when the envelope has `status: "success"` plus `payment_receipt` or `checkout_receipt`.
105
107
 
108
+ For Path 2 fallback transaction records, AP2 detection also returns a protocol-specific `contentId` when stable identity fields are visible. Decoded Payment Receipts take priority, then compact payment receipt JWT hashes, decoded Checkout Receipts, compact checkout receipt JWT hashes, legacy AP2 PaymentMandates, and a2a-x402 transaction receipts. If none are present, middleware falls back to the MCP server URL plus `"checkout"` like before.
109
+
106
110
  ```json
107
111
  {
108
112
  "status": "success",
@@ -139,7 +143,7 @@ The older AP2 v0.1 DataPart shape remains supported as a compatibility fallback:
139
143
 
140
144
  #### a2a-x402: Google AP2 crypto path
141
145
 
142
- Detected from an A2A `task` whose `status.message.metadata` contains `"x402.payment.status": "payment-completed"` **and** at least one entry in `"x402.payment.receipts"` with `success: true`. A `payment-completed` status with no successful receipt does NOT detect (a failed receipt is not a transaction). Reported as `protocol: 'AP2'` because a2a-x402 is the AP2 crypto path, not a separate protocol.
146
+ Detected from an A2A `task` whose `status.message.metadata` contains `"x402.payment.status": "payment-completed"` **and** at least one entry in `"x402.payment.receipts"` with `success: true`. A `payment-completed` status with no successful receipt does NOT detect (a failed receipt is not a transaction). Reported as `protocol: 'AP2'` because a2a-x402 is the AP2 crypto path, not a separate protocol. When a successful receipt exposes a transaction id, Path 2 uses that receipt identity for the AP2 `contentId`; otherwise it uses the generic AP2 fallback.
143
147
 
144
148
  ```json
145
149
  {
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAI5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEtD,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACnC;;;OAGG;IACH,mBAAmB,CACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;QAC5C,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,iFAAiF;QACjF,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,GACA,IAAI,CAAA;IACP,sDAAsD;IACtD,sBAAsB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAA;IACtE,yDAAyD;IACzD,WAAW,IAAI,OAAO,EAAE,CAAA;IACxB,qCAAqC;IACrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,iBAAsB,GAAG,mBAAmB,CAmN1E"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAI5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEtD,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACnC;;;OAGG;IACH,mBAAmB,CACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;QAC5C,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,iFAAiF;QACjF,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,GACA,IAAI,CAAA;IACP,sDAAsD;IACtD,sBAAsB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAA;IACtE,yDAAyD;IACzD,WAAW,IAAI,OAAO,EAAE,CAAA;IACxB,qCAAqC;IACrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,iBAAsB,GAAG,mBAAmB,CAqN1E"}
@@ -5,7 +5,7 @@
5
5
  * Wraps an agent or MCP client to automatically manage attribution
6
6
  * context across tool calls. Zero ongoing surface area.
7
7
  */
8
- import { base64urlDecode, base64urlEncode, signRecord, getPublicKey, computeContentId, hexEncode, genesisChainRoot, createSubmissionQueue, } from '@atrib/mcp';
8
+ import { base64urlDecode, base64urlEncode, signTransactionRecord, getPublicKey, computeContentId, hexEncode, genesisChainRoot, createSubmissionQueue, } from '@atrib/mcp';
9
9
  import { createSession, buildOutboundMeta, accumulateInboundContext } from './session.js';
10
10
  import { detectTransaction } from './transaction.js';
11
11
  import { initializeSessionPolicy } from './policy.js';
@@ -153,9 +153,11 @@ export function atrib(options = {}) {
153
153
  addRuntimeWarning('transaction_detected_by_heuristic');
154
154
  }
155
155
  // Emit transaction record asynchronously
156
- const emission = emitTransactionRecord(toolName, detection, callOptions?.serverUrl, session, privateKey, publicKeyReady, () => publicKeyB64, queue).catch((err) => {
156
+ const emission = emitTransactionRecord(toolName, detection, callOptions?.serverUrl, session, privateKey, publicKeyReady, () => publicKeyB64, queue)
157
+ .catch((err) => {
157
158
  console.warn('atrib: transaction emission failed', err);
158
- }).finally(() => {
159
+ })
160
+ .finally(() => {
159
161
  const idx = pendingEmissions.indexOf(emission);
160
162
  if (idx !== -1)
161
163
  pendingEmissions.splice(idx, 1);
@@ -195,6 +197,7 @@ export function atrib(options = {}) {
195
197
  * Derives content_id per protocol:
196
198
  * - ACP/UCP: checkout URL from response, tool_name = "checkout"
197
199
  * - x402/MPP: HTTP endpoint URL, tool_name = "checkout"
200
+ * - AP2: protocol-specific receipt or mandate identity when present
198
201
  * - Heuristic: MCP server URL of tool, actual tool_name
199
202
  */
200
203
  async function emitTransactionRecord(toolName, detection, callServerUrl, session, privateKey, publicKeyReady, publicKeyB64Getter, queue) {
@@ -204,32 +207,34 @@ async function emitTransactionRecord(toolName, detection, callServerUrl, session
204
207
  throw new Error('public key not ready');
205
208
  }
206
209
  // Derive content_id per protocol (§5.4.5)
207
- let contentIdServerUrl;
208
- let contentIdToolName;
209
- switch (detection.protocol) {
210
- case 'ACP':
211
- case 'UCP':
212
- contentIdServerUrl = detection.checkoutUrl ?? callServerUrl ?? '';
213
- contentIdToolName = 'checkout';
214
- break;
215
- case 'x402':
216
- case 'MPP':
217
- // Use the HTTP endpoint URL that returned Payment-Receipt
218
- contentIdServerUrl = callServerUrl ?? '';
219
- contentIdToolName = 'checkout';
220
- break;
221
- case 'AP2':
222
- contentIdServerUrl = callServerUrl ?? '';
223
- contentIdToolName = 'checkout';
224
- break;
225
- case 'heuristic':
226
- default:
227
- // Heuristic: weakest case, use the MCP server URL of the tool that was called
228
- contentIdServerUrl = callServerUrl ?? '';
229
- contentIdToolName = toolName;
230
- break;
210
+ let contentIdServerUrl = '';
211
+ let contentIdToolName = '';
212
+ if (!detection.contentId) {
213
+ switch (detection.protocol) {
214
+ case 'ACP':
215
+ case 'UCP':
216
+ contentIdServerUrl = detection.checkoutUrl ?? callServerUrl ?? '';
217
+ contentIdToolName = 'checkout';
218
+ break;
219
+ case 'x402':
220
+ case 'MPP':
221
+ // Use the HTTP endpoint URL that returned Payment-Receipt
222
+ contentIdServerUrl = callServerUrl ?? '';
223
+ contentIdToolName = 'checkout';
224
+ break;
225
+ case 'AP2':
226
+ contentIdServerUrl = callServerUrl ?? '';
227
+ contentIdToolName = 'checkout';
228
+ break;
229
+ case 'heuristic':
230
+ default:
231
+ // Heuristic: weakest case, use the MCP server URL of the tool that was called
232
+ contentIdServerUrl = callServerUrl ?? '';
233
+ contentIdToolName = toolName;
234
+ break;
235
+ }
231
236
  }
232
- const contentId = computeContentId(contentIdServerUrl, contentIdToolName);
237
+ const contentId = detection.contentId ?? computeContentId(contentIdServerUrl, contentIdToolName);
233
238
  // §1.2.3: chain_root for genesis records
234
239
  const chainRoot = session.latestContext
235
240
  ? `sha256:${hexEncode(session.latestContext.recordHash)}`
@@ -245,7 +250,7 @@ async function emitTransactionRecord(toolName, detection, callServerUrl, session
245
250
  signature: '',
246
251
  session_token: session.sessionToken,
247
252
  };
248
- const signed = await signRecord(record, privateKey);
253
+ const signed = await signTransactionRecord(record, privateKey);
249
254
  // Submit immediately. transaction records are the closing anchor
250
255
  queue.submit(signed, 'high');
251
256
  }
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
@@ -1,39 +1,3 @@
1
- /**
2
- * Transaction detection (§5.4.5).
3
- *
4
- * Detects transaction events from response shapes for ACP, UCP, x402, MPP,
5
- * AP2, and heuristic tool name matching.
6
- *
7
- * Protocol shape sources (verified 2026-05-27):
8
- * - ACP: github.com/agentic-commerce-protocol/agentic-commerce-protocol
9
- * rfcs/rfc.agentic_checkout.md
10
- * - UCP: github.com/universal-commerce-protocol/ucp
11
- * docs/specification/checkout-rest.md (version 2026-01-11)
12
- * - AP2: github.com/google-agentic-commerce/AP2 (v0.2). Current AP2 uses
13
- * SD-JWT Mandates for authorization and signed CheckoutReceipt /
14
- * PaymentReceipt JWTs for acceptance. Detection fires on successful
15
- * receipt shapes, not mandate-only payloads. The legacy v0.1 A2A
16
- * DataPart key `ap2.mandates.PaymentMandate` remains supported as a
17
- * compatibility fallback.
18
- * - a2a-x402: github.com/google-agentic-commerce/a2a-x402. extension that
19
- * layers x402 crypto payments over A2A. Detection signal is
20
- * `status.message.metadata["x402.payment.status"] === "payment-completed"`
21
- * with at least one `success: true` entry in
22
- * `status.message.metadata["x402.payment.receipts"]`. Both shapes are
23
- * reported as `protocol: 'AP2'` since a2a-x402 is the AP2 crypto path.
24
- * - x402: github.com/coinbase/x402. response header `PAYMENT-RESPONSE` (v2)
25
- * or `X-PAYMENT-RESPONSE` (v1 legacy). Value is base64-encoded JSON
26
- * with shape { success: bool, transaction, network, payer, requirements }.
27
- * - MPP: IETF draft-ryan-httpauth-payment-01 ("The 'Payment' HTTP Authentication
28
- * Scheme"), per Section 5.3. Response header is `Payment-Receipt` on a
29
- * 200 success after the client retries with Authorization: Payment.
30
- * Value is base64url-nopad JSON with required field { status: "success",
31
- * method, timestamp, reference }.
32
- *
33
- * x402 and MPP are different protocols that use different headers. Earlier
34
- * versions of this code conflated them on a fictitious shared `Payment-Receipt`
35
- * header. see DECISIONS.md D016 for the verification trail.
36
- */
37
1
  export type TransactionProtocol = 'ACP' | 'UCP' | 'x402' | 'MPP' | 'AP2' | 'heuristic';
38
2
  export interface TransactionDetection {
39
3
  detected: boolean;
@@ -42,10 +6,17 @@ export interface TransactionDetection {
42
6
  * For Path 2 content_id derivation (§5.4.5):
43
7
  * - ACP/UCP: the order permalink URL from the response (if present)
44
8
  * - x402/MPP: not available here (caller must use HTTP endpoint URL)
45
- * - AP2: not available here (caller uses MCP server URL)
9
+ * - AP2: usually null because AP2 identity is carried in `contentId`
46
10
  * - Heuristic: not available here (caller uses MCP server URL)
47
11
  */
48
12
  checkoutUrl: string | null;
13
+ /**
14
+ * Optional protocol-specific content_id. AP2 can expose stable receipt or
15
+ * mandate identifiers directly in the response; the detector hashes the
16
+ * canonical identity ladder and returns the final content_id here. Null
17
+ * means the caller should keep the generic §5.4.5 fallback.
18
+ */
19
+ contentId: string | null;
49
20
  }
50
21
  /**
51
22
  * Detect whether a tool call response contains a transaction signal (§5.4.5).
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,WAAW,CAAA;AAEtF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAA;IACpC;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AA2GD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC3C,oBAAoB,CAgJtB"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AA0CA,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,WAAW,CAAA;AAEtF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAA;IACpC;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;;;OAKG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAgOD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC3C,oBAAoB,CAiJtB"}
@@ -1,4 +1,42 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
+ /**
3
+ * Transaction detection (§5.4.5).
4
+ *
5
+ * Detects transaction events from response shapes for ACP, UCP, x402, MPP,
6
+ * AP2, and heuristic tool name matching.
7
+ *
8
+ * Protocol shape sources (verified 2026-05-27):
9
+ * - ACP: github.com/agentic-commerce-protocol/agentic-commerce-protocol
10
+ * rfcs/rfc.agentic_checkout.md
11
+ * - UCP: github.com/universal-commerce-protocol/ucp
12
+ * docs/specification/checkout-rest.md (version 2026-01-11)
13
+ * - AP2: github.com/google-agentic-commerce/AP2 (v0.2). Current AP2 uses
14
+ * SD-JWT Mandates for authorization and signed CheckoutReceipt /
15
+ * PaymentReceipt JWTs for acceptance. Detection fires on successful
16
+ * receipt shapes, not mandate-only payloads. The legacy v0.1 A2A
17
+ * DataPart key `ap2.mandates.PaymentMandate` remains supported as a
18
+ * compatibility fallback.
19
+ * - a2a-x402: github.com/google-agentic-commerce/a2a-x402. extension that
20
+ * layers x402 crypto payments over A2A. Detection signal is
21
+ * `status.message.metadata["x402.payment.status"] === "payment-completed"`
22
+ * with at least one `success: true` entry in
23
+ * `status.message.metadata["x402.payment.receipts"]`. Both shapes are
24
+ * reported as `protocol: 'AP2'` since a2a-x402 is the AP2 crypto path.
25
+ * - x402: github.com/coinbase/x402. response header `PAYMENT-RESPONSE` (v2)
26
+ * or `X-PAYMENT-RESPONSE` (v1 legacy). Value is base64-encoded JSON
27
+ * with shape { success: bool, transaction, network, payer, requirements }.
28
+ * - MPP: IETF draft-ryan-httpauth-payment-01 ("The 'Payment' HTTP Authentication
29
+ * Scheme"), per Section 5.3. Response header is `Payment-Receipt` on a
30
+ * 200 success after the client retries with Authorization: Payment.
31
+ * Value is base64url-nopad JSON with required field { status: "success",
32
+ * method, timestamp, reference }.
33
+ *
34
+ * x402 and MPP are different protocols that use different headers. Earlier
35
+ * versions of this code conflated them on a fictitious shared `Payment-Receipt`
36
+ * header. see DECISIONS.md D016 for the verification trail.
37
+ */
38
+ import canonicalize from 'canonicalize';
39
+ import { hexEncode, sha256 } from '@atrib/mcp';
2
40
  const HEURISTIC_KEYWORDS = [
3
41
  'create_order',
4
42
  'complete_checkout',
@@ -10,6 +48,7 @@ const HEURISTIC_KEYWORDS = [
10
48
  const AP2_PAYMENT_RECEIPT_KEYS = ['ap2.PaymentReceipt', 'payment_receipt'];
11
49
  const AP2_CHECKOUT_RECEIPT_KEYS = ['ap2.CheckoutReceipt', 'checkout_receipt'];
12
50
  const AP2_RECEIPT_SCAN_LIMIT = 80;
51
+ const textEncoder = new TextEncoder();
13
52
  function isRecord(value) {
14
53
  return value !== null && typeof value === 'object' && !Array.isArray(value);
15
54
  }
@@ -19,6 +58,32 @@ function isString(value) {
19
58
  function isNonEmptyString(value) {
20
59
  return typeof value === 'string' && value.length > 0;
21
60
  }
61
+ function detection(protocol, checkoutUrl = null, contentId = null) {
62
+ return { detected: true, protocol, checkoutUrl, contentId };
63
+ }
64
+ function noDetection() {
65
+ return { detected: false, protocol: null, checkoutUrl: null, contentId: null };
66
+ }
67
+ function sha256Utf8(value) {
68
+ return `sha256:${hexEncode(sha256(textEncoder.encode(value)))}`;
69
+ }
70
+ function ap2ContentId(source, fields) {
71
+ const canonical = canonicalize({
72
+ protocol: 'AP2',
73
+ version: 1,
74
+ source,
75
+ fields,
76
+ });
77
+ if (!canonical)
78
+ return null;
79
+ return sha256Utf8(canonical);
80
+ }
81
+ function ap2ObjectHash(value) {
82
+ const canonical = canonicalize(value);
83
+ if (!canonical)
84
+ return null;
85
+ return sha256Utf8(canonical);
86
+ }
22
87
  function hasAp2SuccessStatus(record) {
23
88
  return record['status'] === 'Success' || record['status'] === 'success';
24
89
  }
@@ -45,20 +110,62 @@ function isAp2CheckoutReceiptObject(value) {
45
110
  isNonEmptyString(value['reference']) &&
46
111
  isNonEmptyString(value['order_id']));
47
112
  }
48
- function hasAp2ReceiptField(record, keys, isReceiptObject) {
113
+ function ap2PaymentReceiptCandidate(value) {
114
+ if (!isAp2PaymentReceiptObject(value) || !isRecord(value))
115
+ return null;
116
+ const contentId = ap2ContentId('payment_receipt', {
117
+ iss: value['iss'],
118
+ reference: value['reference'],
119
+ payment_id: value['payment_id'],
120
+ psp_confirmation_id: value['psp_confirmation_id'],
121
+ network_confirmation_id: value['network_confirmation_id'],
122
+ });
123
+ return contentId ? { contentId, priority: 10 } : null;
124
+ }
125
+ function ap2CheckoutReceiptCandidate(value) {
126
+ if (!isAp2CheckoutReceiptObject(value) || !isRecord(value))
127
+ return null;
128
+ const contentId = ap2ContentId('checkout_receipt', {
129
+ iss: value['iss'],
130
+ reference: value['reference'],
131
+ order_id: value['order_id'],
132
+ });
133
+ return contentId ? { contentId, priority: 30 } : null;
134
+ }
135
+ function ap2ReceiptJwtCandidate(value, source) {
136
+ if (!looksLikeCompactJwt(value))
137
+ return null;
138
+ const contentId = ap2ContentId(source, { jwt_hash: sha256Utf8(value) });
139
+ if (!contentId)
140
+ return null;
141
+ return { contentId, priority: source === 'payment_receipt_jwt' ? 20 : 40 };
142
+ }
143
+ function ap2ReceiptFieldCandidate(record, keys, objectCandidate, jwtSource) {
49
144
  for (const key of keys) {
50
145
  const value = record[key];
51
- if (isReceiptObject(value))
52
- return true;
53
- if (hasAp2SuccessStatus(record) && looksLikeCompactJwt(value))
54
- return true;
146
+ const object = objectCandidate(value);
147
+ if (object)
148
+ return object;
149
+ if (hasAp2SuccessStatus(record)) {
150
+ const jwt = ap2ReceiptJwtCandidate(value, jwtSource);
151
+ if (jwt)
152
+ return jwt;
153
+ }
55
154
  }
56
- return false;
155
+ return null;
57
156
  }
58
- function containsAp2V02Receipt(value) {
157
+ function chooseBetterAp2Candidate(current, candidate) {
158
+ if (!candidate)
159
+ return current;
160
+ if (!current || candidate.priority < current.priority)
161
+ return candidate;
162
+ return current;
163
+ }
164
+ function findAp2V02ReceiptContentId(value) {
59
165
  const queue = [value];
60
166
  const seen = new Set();
61
167
  let scanned = 0;
168
+ let best = null;
62
169
  while (queue.length > 0 && scanned < AP2_RECEIPT_SCAN_LIMIT) {
63
170
  const current = queue.shift();
64
171
  scanned += 1;
@@ -72,19 +179,40 @@ function containsAp2V02Receipt(value) {
72
179
  if (seen.has(current))
73
180
  continue;
74
181
  seen.add(current);
75
- if (isAp2PaymentReceiptObject(current) || isAp2CheckoutReceiptObject(current)) {
76
- return true;
77
- }
78
- if (hasAp2ReceiptField(current, AP2_PAYMENT_RECEIPT_KEYS, isAp2PaymentReceiptObject) ||
79
- hasAp2ReceiptField(current, AP2_CHECKOUT_RECEIPT_KEYS, isAp2CheckoutReceiptObject)) {
80
- return true;
81
- }
182
+ best = chooseBetterAp2Candidate(best, ap2PaymentReceiptCandidate(current));
183
+ best = chooseBetterAp2Candidate(best, ap2CheckoutReceiptCandidate(current));
184
+ best = chooseBetterAp2Candidate(best, ap2ReceiptFieldCandidate(current, AP2_PAYMENT_RECEIPT_KEYS, ap2PaymentReceiptCandidate, 'payment_receipt_jwt'));
185
+ best = chooseBetterAp2Candidate(best, ap2ReceiptFieldCandidate(current, AP2_CHECKOUT_RECEIPT_KEYS, ap2CheckoutReceiptCandidate, 'checkout_receipt_jwt'));
82
186
  for (const nested of Object.values(current)) {
83
187
  if (isRecord(nested) || Array.isArray(nested))
84
188
  queue.push(nested);
85
189
  }
86
190
  }
87
- return false;
191
+ return best?.contentId ?? null;
192
+ }
193
+ function legacyAp2MandateContentId(value) {
194
+ const mandateHash = ap2ObjectHash(value);
195
+ if (!mandateHash)
196
+ return null;
197
+ return ap2ContentId('legacy_payment_mandate', { mandate_hash: mandateHash });
198
+ }
199
+ function a2aX402ContentId(receipts) {
200
+ if (!Array.isArray(receipts))
201
+ return null;
202
+ for (const receipt of receipts) {
203
+ if (!isRecord(receipt) || receipt['success'] !== true)
204
+ continue;
205
+ const transaction = receipt['transaction'];
206
+ if (!isNonEmptyString(transaction))
207
+ continue;
208
+ const fields = { transaction };
209
+ if (isNonEmptyString(receipt['network']))
210
+ fields['network'] = receipt['network'];
211
+ if (isNonEmptyString(receipt['payer']))
212
+ fields['payer'] = receipt['payer'];
213
+ return ap2ContentId('a2a_x402_receipt', fields);
214
+ }
215
+ return null;
88
216
  }
89
217
  /**
90
218
  * Detect whether a tool call response contains a transaction signal (§5.4.5).
@@ -103,14 +231,14 @@ export function detectTransaction(toolName, response, headers) {
103
231
  const ucpEnvelope = resp['ucp'];
104
232
  const isUcp = !!ucpEnvelope && typeof ucpEnvelope['version'] === 'string';
105
233
  const checkoutUrl = typeof order['permalink_url'] === 'string' ? order['permalink_url'] : null;
106
- return { detected: true, protocol: isUcp ? 'UCP' : 'ACP', checkoutUrl };
234
+ return detection(isUcp ? 'UCP' : 'ACP', checkoutUrl);
107
235
  }
108
236
  // ACP webhook event shapes (server → merchant): order_create / order_update.
109
237
  // { type: "order_create", data: { type: "order", checkout_session_id, permalink_url, status, refunds } }
110
238
  if (resp['type'] === 'order_create' || resp['type'] === 'order_update') {
111
239
  const data = resp['data'];
112
240
  const checkoutUrl = typeof data?.['permalink_url'] === 'string' ? data['permalink_url'] : null;
113
- return { detected: true, protocol: 'ACP', checkoutUrl };
241
+ return detection('ACP', checkoutUrl);
114
242
  }
115
243
  }
116
244
  // x402 and MPP: distinct protocols, distinct response headers.
@@ -129,11 +257,11 @@ export function detectTransaction(toolName, response, headers) {
129
257
  }
130
258
  // x402. accept v2 and v1 names
131
259
  if (lower['payment-response'] || lower['x-payment-response']) {
132
- return { detected: true, protocol: 'x402', checkoutUrl: null };
260
+ return detection('x402');
133
261
  }
134
262
  // MPP. IETF draft Payment-Receipt header
135
263
  if (lower['payment-receipt']) {
136
- return { detected: true, protocol: 'MPP', checkoutUrl: null };
264
+ return detection('MPP');
137
265
  }
138
266
  }
139
267
  // AP2 v0.2. Successful CheckoutReceipt / PaymentReceipt is the close signal.
@@ -146,8 +274,11 @@ export function detectTransaction(toolName, response, headers) {
146
274
  // - { status: "success", payment_receipt: "<signed JWT>" }
147
275
  // - { status: "success", checkout_receipt: "<signed JWT>" }
148
276
  // - { parts: [{ kind: "data", data: { "ap2.PaymentReceipt": { status: "Success", ... } } }] }
149
- if (resp && containsAp2V02Receipt(resp)) {
150
- return { detected: true, protocol: 'AP2', checkoutUrl: null };
277
+ if (resp) {
278
+ const ap2Content = findAp2V02ReceiptContentId(resp);
279
+ if (ap2Content) {
280
+ return detection('AP2', null, ap2Content);
281
+ }
151
282
  }
152
283
  // AP2 v0.1 compatibility. PaymentMandate Message inside an A2A DataPart.
153
284
  // Source: github.com/google-agentic-commerce/ap2 docs/specification.md
@@ -161,7 +292,8 @@ export function detectTransaction(toolName, response, headers) {
161
292
  if (data &&
162
293
  typeof data === 'object' &&
163
294
  'ap2.mandates.PaymentMandate' in data) {
164
- return { detected: true, protocol: 'AP2', checkoutUrl: null };
295
+ const mandate = data['ap2.mandates.PaymentMandate'];
296
+ return detection('AP2', null, legacyAp2MandateContentId(mandate));
165
297
  }
166
298
  }
167
299
  }
@@ -177,11 +309,11 @@ export function detectTransaction(toolName, response, headers) {
177
309
  const metadata = statusMessage?.['metadata'];
178
310
  if (metadata && metadata['x402.payment.status'] === 'payment-completed') {
179
311
  const receipts = metadata['x402.payment.receipts'];
180
- if (Array.isArray(receipts) &&
181
- receipts.some((r) => r !== null &&
182
- typeof r === 'object' &&
183
- r['success'] === true)) {
184
- return { detected: true, protocol: 'AP2', checkoutUrl: null };
312
+ if (Array.isArray(receipts)) {
313
+ const accepted = receipts.some((r) => isRecord(r) && r['success'] === true);
314
+ if (accepted) {
315
+ return detection('AP2', null, a2aX402ContentId(receipts));
316
+ }
185
317
  }
186
318
  }
187
319
  }
@@ -202,14 +334,14 @@ export function detectTransaction(toolName, response, headers) {
202
334
  // so no credentialSubject check needed. For v1 string form: type is just
203
335
  // "VerifiableCredential" so we need credentialSubject to confirm it's a PaymentMandate.
204
336
  if (isVcArray || (isVcStringLegacy && subjectIsPaymentMandate)) {
205
- return { detected: true, protocol: 'AP2', checkoutUrl: null };
337
+ return detection('AP2', null, legacyAp2MandateContentId(resp));
206
338
  }
207
339
  }
208
340
  // Heuristic: tool name keywords (last resort)
209
341
  const lowerName = toolName.toLowerCase();
210
342
  if (HEURISTIC_KEYWORDS.some((k) => lowerName.includes(k))) {
211
- return { detected: true, protocol: 'heuristic', checkoutUrl: null };
343
+ return detection('heuristic');
212
344
  }
213
- return { detected: false, protocol: null, checkoutUrl: null };
345
+ return noDetection();
214
346
  }
215
347
  //# sourceMappingURL=transaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atrib/agent",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -33,8 +33,8 @@
33
33
  "@noble/ed25519": "^3.1.0",
34
34
  "@noble/hashes": "^2.2.0",
35
35
  "canonicalize": "^3.0.0",
36
- "@atrib/mcp": "0.12.0",
37
- "@atrib/verify": "0.3.7"
36
+ "@atrib/mcp": "0.14.0",
37
+ "@atrib/verify": "0.5.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^25.9.1",