@agent-score/commerce 2.0.1 → 2.0.2

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.
@@ -831,6 +831,12 @@ declare class Checkout {
831
831
  private x402RailKey;
832
832
  /** Return the rails-dict key for the primary MPP rail. */
833
833
  private mppRailKey;
834
+ /** Map an mppx credential `method` (`tempo` | `solana` | `stripe`) to the
835
+ * merchant's rails-dict key. Used in handleMppx so onSettled outcomes
836
+ * distinguish Solana from Tempo (both settle under `rail: 'mpp'`) and from
837
+ * Stripe SPT. Returns the first matching key or `undefined` when no rail in
838
+ * the merchant's config corresponds to that method. */
839
+ private railsKeyForMppxMethod;
834
840
  /** CAIP-2 read from `rails['x402_base'].network` (or its default).
835
841
  * Defined only when an `X402BaseRailSpec` is present in rails AND a server
836
842
  * is configured (explicit or auto-derived); otherwise `null`. */
@@ -831,6 +831,12 @@ declare class Checkout {
831
831
  private x402RailKey;
832
832
  /** Return the rails-dict key for the primary MPP rail. */
833
833
  private mppRailKey;
834
+ /** Map an mppx credential `method` (`tempo` | `solana` | `stripe`) to the
835
+ * merchant's rails-dict key. Used in handleMppx so onSettled outcomes
836
+ * distinguish Solana from Tempo (both settle under `rail: 'mpp'`) and from
837
+ * Stripe SPT. Returns the first matching key or `undefined` when no rail in
838
+ * the merchant's config corresponds to that method. */
839
+ private railsKeyForMppxMethod;
834
840
  /** CAIP-2 read from `rails['x402_base'].network` (or its default).
835
841
  * Defined only when an `X402BaseRailSpec` is present in rails AND a server
836
842
  * is configured (explicit or auto-derived); otherwise `null`. */
package/dist/core.js CHANGED
@@ -220,7 +220,7 @@ function createAgentScoreCore(options) {
220
220
  } = options;
221
221
  const baseUrl = stripTrailingSlashes(rawBaseUrl);
222
222
  const agentMemoryHint = buildAgentMemoryHint();
223
- const defaultUa = `@agent-score/commerce@${"2.0.1"}`;
223
+ const defaultUa = `@agent-score/commerce@${"2.0.2"}`;
224
224
  const userAgentHeader = userAgent ? `${userAgent} (${defaultUa})` : defaultUa;
225
225
  const sdk = new import_sdk.AgentScore({ apiKey, baseUrl, userAgent: userAgentHeader });
226
226
  const sessionSdkCache = /* @__PURE__ */ new Map();
package/dist/core.mjs CHANGED
@@ -202,7 +202,7 @@ function createAgentScoreCore(options) {
202
202
  } = options;
203
203
  const baseUrl = stripTrailingSlashes(rawBaseUrl);
204
204
  const agentMemoryHint = buildAgentMemoryHint();
205
- const defaultUa = `@agent-score/commerce@${"2.0.1"}`;
205
+ const defaultUa = `@agent-score/commerce@${"2.0.2"}`;
206
206
  const userAgentHeader = userAgent ? `${userAgent} (${defaultUa})` : defaultUa;
207
207
  const sdk = new AgentScore({ apiKey, baseUrl, userAgent: userAgentHeader });
208
208
  const sessionSdkCache = /* @__PURE__ */ new Map();
@@ -1,6 +1,6 @@
1
1
  import { R as RailKey, C as CompatibleClients } from '../pricing-CxzwyiO6.mjs';
2
2
  export { g as compatibleClientsByRails } from '../pricing-CxzwyiO6.mjs';
3
- import { C as Checkout, r as UCPServiceBinding, b as AgentScoreGatePolicy } from '../checkout-BN5i1Fi7.mjs';
3
+ import { C as Checkout, r as UCPServiceBinding, b as AgentScoreGatePolicy } from '../checkout-jNUIql6D.mjs';
4
4
  import '../rail_spec-XP0wKgJV.mjs';
5
5
  import '../core.mjs';
6
6
  import '../signer-3FAit11j.mjs';
@@ -1,6 +1,6 @@
1
1
  import { R as RailKey, C as CompatibleClients } from '../pricing-CQ9DIFaw.js';
2
2
  export { g as compatibleClientsByRails } from '../pricing-CQ9DIFaw.js';
3
- import { C as Checkout, r as UCPServiceBinding, b as AgentScoreGatePolicy } from '../checkout-B1JuEcbx.js';
3
+ import { C as Checkout, r as UCPServiceBinding, b as AgentScoreGatePolicy } from '../checkout-DhSj_h94.js';
4
4
  import '../rail_spec-XP0wKgJV.js';
5
5
  import '../core.js';
6
6
  import '../signer-3FAit11j.js';
@@ -375,7 +375,7 @@ function createAgentScoreCore(options) {
375
375
  } = options;
376
376
  const baseUrl = stripTrailingSlashes(rawBaseUrl);
377
377
  const agentMemoryHint = buildAgentMemoryHint();
378
- const defaultUa = `@agent-score/commerce@${"2.0.1"}`;
378
+ const defaultUa = `@agent-score/commerce@${"2.0.2"}`;
379
379
  const userAgentHeader = userAgent ? `${userAgent} (${defaultUa})` : defaultUa;
380
380
  const sdk = new import_sdk.AgentScore({ apiKey, baseUrl, userAgent: userAgentHeader });
381
381
  const sessionSdkCache = /* @__PURE__ */ new Map();
@@ -343,7 +343,7 @@ function createAgentScoreCore(options) {
343
343
  } = options;
344
344
  const baseUrl = stripTrailingSlashes(rawBaseUrl);
345
345
  const agentMemoryHint = buildAgentMemoryHint();
346
- const defaultUa = `@agent-score/commerce@${"2.0.1"}`;
346
+ const defaultUa = `@agent-score/commerce@${"2.0.2"}`;
347
347
  const userAgentHeader = userAgent ? `${userAgent} (${defaultUa})` : defaultUa;
348
348
  const sdk = new AgentScore({ apiKey, baseUrl, userAgent: userAgentHeader });
349
349
  const sessionSdkCache = /* @__PURE__ */ new Map();
@@ -376,7 +376,7 @@ function createAgentScoreCore(options) {
376
376
  } = options;
377
377
  const baseUrl = stripTrailingSlashes(rawBaseUrl);
378
378
  const agentMemoryHint = buildAgentMemoryHint();
379
- const defaultUa = `@agent-score/commerce@${"2.0.1"}`;
379
+ const defaultUa = `@agent-score/commerce@${"2.0.2"}`;
380
380
  const userAgentHeader = userAgent ? `${userAgent} (${defaultUa})` : defaultUa;
381
381
  const sdk = new import_sdk.AgentScore({ apiKey, baseUrl, userAgent: userAgentHeader });
382
382
  const sessionSdkCache = /* @__PURE__ */ new Map();
@@ -343,7 +343,7 @@ function createAgentScoreCore(options) {
343
343
  } = options;
344
344
  const baseUrl = stripTrailingSlashes(rawBaseUrl);
345
345
  const agentMemoryHint = buildAgentMemoryHint();
346
- const defaultUa = `@agent-score/commerce@${"2.0.1"}`;
346
+ const defaultUa = `@agent-score/commerce@${"2.0.2"}`;
347
347
  const userAgentHeader = userAgent ? `${userAgent} (${defaultUa})` : defaultUa;
348
348
  const sdk = new AgentScore({ apiKey, baseUrl, userAgent: userAgentHeader });
349
349
  const sessionSdkCache = /* @__PURE__ */ new Map();
@@ -375,7 +375,7 @@ function createAgentScoreCore(options) {
375
375
  } = options;
376
376
  const baseUrl = stripTrailingSlashes(rawBaseUrl);
377
377
  const agentMemoryHint = buildAgentMemoryHint();
378
- const defaultUa = `@agent-score/commerce@${"2.0.1"}`;
378
+ const defaultUa = `@agent-score/commerce@${"2.0.2"}`;
379
379
  const userAgentHeader = userAgent ? `${userAgent} (${defaultUa})` : defaultUa;
380
380
  const sdk = new import_sdk.AgentScore({ apiKey, baseUrl, userAgent: userAgentHeader });
381
381
  const sessionSdkCache = /* @__PURE__ */ new Map();
@@ -343,7 +343,7 @@ function createAgentScoreCore(options) {
343
343
  } = options;
344
344
  const baseUrl = stripTrailingSlashes(rawBaseUrl);
345
345
  const agentMemoryHint = buildAgentMemoryHint();
346
- const defaultUa = `@agent-score/commerce@${"2.0.1"}`;
346
+ const defaultUa = `@agent-score/commerce@${"2.0.2"}`;
347
347
  const userAgentHeader = userAgent ? `${userAgent} (${defaultUa})` : defaultUa;
348
348
  const sdk = new AgentScore({ apiKey, baseUrl, userAgent: userAgentHeader });
349
349
  const sessionSdkCache = /* @__PURE__ */ new Map();
@@ -371,7 +371,7 @@ function createAgentScoreCore(options) {
371
371
  } = options;
372
372
  const baseUrl = stripTrailingSlashes(rawBaseUrl);
373
373
  const agentMemoryHint = buildAgentMemoryHint();
374
- const defaultUa = `@agent-score/commerce@${"2.0.1"}`;
374
+ const defaultUa = `@agent-score/commerce@${"2.0.2"}`;
375
375
  const userAgentHeader = userAgent ? `${userAgent} (${defaultUa})` : defaultUa;
376
376
  const sdk = new import_sdk.AgentScore({ apiKey, baseUrl, userAgent: userAgentHeader });
377
377
  const sessionSdkCache = /* @__PURE__ */ new Map();
@@ -343,7 +343,7 @@ function createAgentScoreCore(options) {
343
343
  } = options;
344
344
  const baseUrl = stripTrailingSlashes(rawBaseUrl);
345
345
  const agentMemoryHint = buildAgentMemoryHint();
346
- const defaultUa = `@agent-score/commerce@${"2.0.1"}`;
346
+ const defaultUa = `@agent-score/commerce@${"2.0.2"}`;
347
347
  const userAgentHeader = userAgent ? `${userAgent} (${defaultUa})` : defaultUa;
348
348
  const sdk = new AgentScore({ apiKey, baseUrl, userAgent: userAgentHeader });
349
349
  const sessionSdkCache = /* @__PURE__ */ new Map();
@@ -19089,7 +19089,7 @@ function deserialize3(value) {
19089
19089
  try {
19090
19090
  const json2 = Base64_exports.toString(prefixMatch[1]);
19091
19091
  const parsed = JSON.parse(json2);
19092
- const { opaque: challengeOpaque, request, ...challengeFields } = parsed.challenge;
19092
+ const { opaque: challengeOpaque, request, meta: _meta, ...challengeFields } = parsed.challenge;
19093
19093
  const { meta: meta4, opaque } = normalizeCredentialOpaque(challengeOpaque);
19094
19094
  const challenge = Schema.parse({
19095
19095
  ...challengeFields,
@@ -21062,7 +21062,7 @@ function createAgentScoreCore(options) {
21062
21062
  } = options;
21063
21063
  const baseUrl = stripTrailingSlashes(rawBaseUrl);
21064
21064
  const agentMemoryHint = buildAgentMemoryHint();
21065
- const defaultUa = `@agent-score/commerce@${"2.0.1"}`;
21065
+ const defaultUa = `@agent-score/commerce@${"2.0.2"}`;
21066
21066
  const userAgentHeader = userAgent ? `${userAgent} (${defaultUa})` : defaultUa;
21067
21067
  const sdk = new import_sdk.AgentScore({ apiKey, baseUrl, userAgent: userAgentHeader });
21068
21068
  const sessionSdkCache = /* @__PURE__ */ new Map();
@@ -22522,6 +22522,38 @@ var Checkout = class {
22522
22522
  }
22523
22523
  return "tempo";
22524
22524
  }
22525
+ /** Map an mppx credential `method` (`tempo` | `solana` | `stripe`) to the
22526
+ * merchant's rails-dict key. Used in handleMppx so onSettled outcomes
22527
+ * distinguish Solana from Tempo (both settle under `rail: 'mpp'`) and from
22528
+ * Stripe SPT. Returns the first matching key or `undefined` when no rail in
22529
+ * the merchant's config corresponds to that method. */
22530
+ railsKeyForMppxMethod(method) {
22531
+ if (method === "stripe") {
22532
+ for (const [k, v] of Object.entries(this.rails)) {
22533
+ if (isStripeRailSpec2(v)) return k;
22534
+ }
22535
+ return void 0;
22536
+ }
22537
+ if (method === "solana") {
22538
+ for (const [k, v] of Object.entries(this.rails)) {
22539
+ if (isStripeRailSpec2(v) || isTempoSessionRailSpec3(v)) continue;
22540
+ const network = v.network ?? "";
22541
+ if (network.startsWith("solana:") || "rpcUrl" in v || "tokenProgram" in v) return k;
22542
+ }
22543
+ return void 0;
22544
+ }
22545
+ if (method === "tempo") {
22546
+ for (const [k, v] of Object.entries(this.rails)) {
22547
+ if (isStripeRailSpec2(v)) continue;
22548
+ const network = v.network ?? "";
22549
+ if (network.startsWith("solana:") || "rpcUrl" in v || "tokenProgram" in v) continue;
22550
+ if (network.startsWith("eip155:")) continue;
22551
+ return k;
22552
+ }
22553
+ return void 0;
22554
+ }
22555
+ return void 0;
22556
+ }
22525
22557
  /** CAIP-2 read from `rails['x402_base'].network` (or its default).
22526
22558
  * Defined only when an `X402BaseRailSpec` is present in rails AND a server
22527
22559
  * is configured (explicit or auto-derived); otherwise `null`. */
@@ -22868,15 +22900,20 @@ var Checkout = class {
22868
22900
  }
22869
22901
  const composed = await this.composeMppx(ctx);
22870
22902
  if (composed.status === 200) {
22903
+ const paymentReceiptHeader = composed.paymentReceiptHeader ?? extractMppxReceiptHeaderFromRaw(composed.raw);
22904
+ const directMethod = composed.raw?.receipt?.method;
22905
+ const headerMethod = paymentReceiptHeader ? await extractMppxReceiptMethod(paymentReceiptHeader) : void 0;
22906
+ const receiptMethod = directMethod ?? headerMethod;
22907
+ const derivedKey = typeof receiptMethod === "string" ? this.railsKeyForMppxMethod(receiptMethod) : void 0;
22871
22908
  const outcome = {
22872
22909
  rail: "mpp",
22873
22910
  paymentResponseHeader: composed.paymentResponseHeader ?? null,
22874
- paymentReceiptHeader: composed.paymentReceiptHeader ?? extractMppxReceiptHeaderFromRaw(composed.raw),
22911
+ paymentReceiptHeader,
22875
22912
  raw: composed.raw,
22876
22913
  txHash: composed.txHash ?? null,
22877
22914
  signerAddress: composed.signerAddress ?? null,
22878
22915
  signerNetwork: composed.signerNetwork ?? null,
22879
- railKey: composed.railKey ?? this.mppRailKey()
22916
+ railKey: derivedKey ?? composed.railKey ?? this.mppRailKey()
22880
22917
  };
22881
22918
  return await this.buildSuccess(ctx, outcome);
22882
22919
  }
@@ -23041,6 +23078,14 @@ function extractMppxReceiptHeaderFromRaw(raw) {
23041
23078
  return null;
23042
23079
  }
23043
23080
  }
23081
+ async function extractMppxReceiptMethod(header) {
23082
+ try {
23083
+ const { Receipt } = await Promise.resolve().then(() => (init_dist2(), dist_exports));
23084
+ return Receipt.deserialize(header).method;
23085
+ } catch {
23086
+ return void 0;
23087
+ }
23088
+ }
23044
23089
  function headersToRecord(h) {
23045
23090
  if (h === void 0) return {};
23046
23091
  if (h instanceof Headers) {