@astrasyncai/verification-gateway 1.1.0 → 2.0.1

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.
Files changed (113) hide show
  1. package/dist/adapter-interface/interface.d.mts +71 -0
  2. package/dist/adapter-interface/interface.d.ts +71 -0
  3. package/dist/adapter-interface/interface.js +36 -0
  4. package/dist/adapter-interface/interface.js.map +1 -0
  5. package/dist/adapter-interface/interface.mjs +10 -0
  6. package/dist/adapter-interface/interface.mjs.map +1 -0
  7. package/dist/adapter-interface/purpose-mapping.d.mts +28 -0
  8. package/dist/adapter-interface/purpose-mapping.d.ts +28 -0
  9. package/dist/adapter-interface/purpose-mapping.js +117 -0
  10. package/dist/adapter-interface/purpose-mapping.js.map +1 -0
  11. package/dist/adapter-interface/purpose-mapping.mjs +89 -0
  12. package/dist/adapter-interface/purpose-mapping.mjs.map +1 -0
  13. package/dist/adapters/express.d.mts +2 -2
  14. package/dist/adapters/express.d.ts +2 -2
  15. package/dist/adapters/express.js +123 -11
  16. package/dist/adapters/express.js.map +1 -1
  17. package/dist/adapters/express.mjs +123 -11
  18. package/dist/adapters/express.mjs.map +1 -1
  19. package/dist/adapters/nextjs.d.mts +2 -2
  20. package/dist/adapters/nextjs.d.ts +2 -2
  21. package/dist/adapters/nextjs.js +192 -14
  22. package/dist/adapters/nextjs.js.map +1 -1
  23. package/dist/adapters/nextjs.mjs +192 -14
  24. package/dist/adapters/nextjs.mjs.map +1 -1
  25. package/dist/adapters/sdk.d.mts +2 -2
  26. package/dist/adapters/sdk.d.ts +2 -2
  27. package/dist/adapters/sdk.js +7 -2
  28. package/dist/adapters/sdk.js.map +1 -1
  29. package/dist/adapters/sdk.mjs +7 -2
  30. package/dist/adapters/sdk.mjs.map +1 -1
  31. package/dist/agent/index.d.mts +2 -0
  32. package/dist/agent/index.d.ts +2 -0
  33. package/dist/agent/index.js +354 -0
  34. package/dist/agent/index.js.map +1 -0
  35. package/dist/agent/index.mjs +323 -0
  36. package/dist/agent/index.mjs.map +1 -0
  37. package/dist/browser/background.d.mts +2 -0
  38. package/dist/browser/background.d.ts +2 -0
  39. package/dist/browser/background.js +4090 -0
  40. package/dist/browser/background.js.map +1 -0
  41. package/dist/browser/background.mjs +4088 -0
  42. package/dist/browser/background.mjs.map +1 -0
  43. package/dist/browser/browser-adapter.d.mts +110 -0
  44. package/dist/browser/browser-adapter.d.ts +110 -0
  45. package/dist/browser/browser-adapter.js +297 -0
  46. package/dist/browser/browser-adapter.js.map +1 -0
  47. package/dist/browser/browser-adapter.mjs +269 -0
  48. package/dist/browser/browser-adapter.mjs.map +1 -0
  49. package/dist/cli/index.d.mts +241 -0
  50. package/dist/cli/index.d.ts +241 -0
  51. package/dist/cli/index.js +3734 -0
  52. package/dist/cli/index.js.map +1 -0
  53. package/dist/cli/index.mjs +3688 -0
  54. package/dist/cli/index.mjs.map +1 -0
  55. package/dist/cursor/cursor-adapter.d.mts +91 -0
  56. package/dist/cursor/cursor-adapter.d.ts +91 -0
  57. package/dist/cursor/cursor-adapter.js +273 -0
  58. package/dist/cursor/cursor-adapter.js.map +1 -0
  59. package/dist/cursor/cursor-adapter.mjs +246 -0
  60. package/dist/cursor/cursor-adapter.mjs.map +1 -0
  61. package/dist/cursor/extension.d.mts +27 -0
  62. package/dist/cursor/extension.d.ts +27 -0
  63. package/dist/cursor/extension.js +4057 -0
  64. package/dist/cursor/extension.js.map +1 -0
  65. package/dist/cursor/extension.mjs +4029 -0
  66. package/dist/cursor/extension.mjs.map +1 -0
  67. package/dist/{express-BGZiLINd.d.ts → express-Bcl-uBUE.d.ts} +1 -1
  68. package/dist/{express-BoayLpqq.d.mts → express-CtwDIZyF.d.mts} +1 -1
  69. package/dist/gateway/gateway.d.mts +70 -0
  70. package/dist/gateway/gateway.d.ts +70 -0
  71. package/dist/gateway/gateway.js +3726 -0
  72. package/dist/gateway/gateway.js.map +1 -0
  73. package/dist/gateway/gateway.mjs +3699 -0
  74. package/dist/gateway/gateway.mjs.map +1 -0
  75. package/dist/git-trigger/git-hooks.d.mts +69 -0
  76. package/dist/git-trigger/git-hooks.d.ts +69 -0
  77. package/dist/git-trigger/git-hooks.js +243 -0
  78. package/dist/git-trigger/git-hooks.js.map +1 -0
  79. package/dist/git-trigger/git-hooks.mjs +213 -0
  80. package/dist/git-trigger/git-hooks.mjs.map +1 -0
  81. package/dist/index-B1ThcGZl.d.mts +89 -0
  82. package/dist/index-BY8yQ8N8.d.mts +206 -0
  83. package/dist/index-CtYSYwn3.d.ts +206 -0
  84. package/dist/index-DnoXfdFd.d.ts +89 -0
  85. package/dist/index.d.mts +8 -295
  86. package/dist/index.d.ts +8 -295
  87. package/dist/index.js +215 -27
  88. package/dist/index.js.map +1 -1
  89. package/dist/index.mjs +215 -27
  90. package/dist/index.mjs.map +1 -1
  91. package/dist/local-evaluator/evaluator.d.mts +55 -0
  92. package/dist/local-evaluator/evaluator.d.ts +55 -0
  93. package/dist/local-evaluator/evaluator.js +272 -0
  94. package/dist/local-evaluator/evaluator.js.map +1 -0
  95. package/dist/local-evaluator/evaluator.mjs +244 -0
  96. package/dist/local-evaluator/evaluator.mjs.map +1 -0
  97. package/dist/{nextjs-BNbHm5Ui.d.mts → nextjs-BQyMCSx_.d.mts} +1 -1
  98. package/dist/{nextjs-DTCS5Sw8.d.ts → nextjs-CEldnIJ9.d.ts} +1 -1
  99. package/dist/{sdk-VAFRmdt7.d.mts → sdk-BhvuJSrH.d.mts} +3 -1
  100. package/dist/{sdk-9TKZzhxE.d.ts → sdk-BlyVSC_S.d.ts} +3 -1
  101. package/dist/transport/index.d.mts +2 -0
  102. package/dist/transport/index.d.ts +2 -0
  103. package/dist/transport/index.js +211 -0
  104. package/dist/transport/index.js.map +1 -0
  105. package/dist/transport/index.mjs +176 -0
  106. package/dist/transport/index.mjs.map +1 -0
  107. package/dist/types-79qS7aON.d.ts +153 -0
  108. package/dist/{types-cA_xfFU7.d.mts → types-CxQwJKbd.d.mts} +17 -2
  109. package/dist/{types-cA_xfFU7.d.ts → types-CxQwJKbd.d.ts} +17 -2
  110. package/dist/types-jJnPXStc.d.mts +153 -0
  111. package/dist/ui/index.d.mts +1 -1
  112. package/dist/ui/index.d.ts +1 -1
  113. package/package.json +48 -2
package/dist/index.mjs CHANGED
@@ -228,6 +228,7 @@ async function callVerifyAccessAPI(config, request) {
228
228
  if (requestData.subAgentDepth !== void 0) body.subAgentDepth = requestData.subAgentDepth;
229
229
  if (requestData.enableRuntimeChallenge) body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
230
230
  if (requestData.createSession) body.createSession = requestData.createSession;
231
+ if (requestData.durationRequired) body.durationRequired = requestData.durationRequired;
231
232
  if (requestData.counterpartyType) body.counterpartyType = requestData.counterpartyType;
232
233
  if (requestData.counterpartyUrl) body.counterpartyUrl = requestData.counterpartyUrl;
233
234
  if (requestData.runtimeChallengeOptions) body.runtimeChallengeOptions = requestData.runtimeChallengeOptions;
@@ -401,6 +402,24 @@ async function recordDecision(config, sessionId, decision, reason) {
401
402
  }).catch(() => {
402
403
  });
403
404
  }
405
+ async function reportUnregisteredAttempt(config, data) {
406
+ const apiBaseUrl = config.apiBaseUrl || DEFAULT_CONFIG.apiBaseUrl;
407
+ await fetch(`${apiBaseUrl}/verification-activity/unregistered-attempt`, {
408
+ method: "POST",
409
+ headers: { "Content-Type": "application/json" },
410
+ body: JSON.stringify(data)
411
+ }).catch(() => {
412
+ });
413
+ }
414
+ async function reportCounterpartyPreCheckFailure(config, data) {
415
+ const apiBaseUrl = config.apiBaseUrl || DEFAULT_CONFIG.apiBaseUrl;
416
+ await fetch(`${apiBaseUrl}/verification-activity/counterparty-pre-check-failure`, {
417
+ method: "POST",
418
+ headers: { "Content-Type": "application/json" },
419
+ body: JSON.stringify(data)
420
+ }).catch(() => {
421
+ });
422
+ }
404
423
  async function quickVerify(config, credentials) {
405
424
  const result = await verify(config, {
406
425
  credentials,
@@ -482,6 +501,54 @@ function extractHttpCredentials(headers) {
482
501
  return credentials;
483
502
  }
484
503
 
504
+ // src/pdlss-pre-check.ts
505
+ function performCounterpartyPreCheck(routeConfig, astraCreds, purpose) {
506
+ const failures = [];
507
+ if (routeConfig.allowedPurposes && routeConfig.allowedPurposes.length > 0 && purpose) {
508
+ if (!routeConfig.allowedPurposes.includes(purpose)) {
509
+ failures.push({
510
+ field: "purpose",
511
+ requested: purpose,
512
+ limit: routeConfig.allowedPurposes,
513
+ message: `Purpose "${purpose}" is not in the allowed list: [${routeConfig.allowedPurposes.join(", ")}]`
514
+ });
515
+ }
516
+ }
517
+ if (routeConfig.requiredPurposes && routeConfig.requiredPurposes.length > 0 && purpose) {
518
+ if (!routeConfig.requiredPurposes.includes(purpose)) {
519
+ failures.push({
520
+ field: "purpose",
521
+ requested: purpose,
522
+ limit: routeConfig.requiredPurposes,
523
+ message: `Purpose "${purpose}" is not in the required list: [${routeConfig.requiredPurposes.join(", ")}]`
524
+ });
525
+ }
526
+ }
527
+ if (routeConfig.maxDuration && astraCreds?.pdlss?.duration?.maxSessionDuration) {
528
+ const requested = astraCreds.pdlss.duration.maxSessionDuration;
529
+ if (requested > routeConfig.maxDuration) {
530
+ failures.push({
531
+ field: "duration",
532
+ requested,
533
+ limit: routeConfig.maxDuration,
534
+ message: `Requested duration ${requested}s exceeds maximum ${routeConfig.maxDuration}s`
535
+ });
536
+ }
537
+ }
538
+ if (routeConfig.allowedJurisdictions && routeConfig.allowedJurisdictions.length > 0 && astraCreds?.pdlss?.scope?.jurisdiction) {
539
+ const requested = astraCreds.pdlss.scope.jurisdiction;
540
+ if (!routeConfig.allowedJurisdictions.includes(requested)) {
541
+ failures.push({
542
+ field: "jurisdiction",
543
+ requested,
544
+ limit: routeConfig.allowedJurisdictions,
545
+ message: `Jurisdiction "${requested}" is not in the allowed list: [${routeConfig.allowedJurisdictions.join(", ")}]`
546
+ });
547
+ }
548
+ }
549
+ return failures;
550
+ }
551
+
485
552
  // src/adapters/express.ts
486
553
  function defaultExtractCredentials(req) {
487
554
  return extractCredentials(
@@ -493,6 +560,12 @@ function extractAstraSyncCredentials(req) {
493
560
  return extractHttpCredentials(req.headers);
494
561
  }
495
562
  function defaultExtractPurpose(req) {
563
+ const astraPurpose = req.headers["x-astra-purpose"];
564
+ if (astraPurpose) {
565
+ const value = Array.isArray(astraPurpose) ? astraPurpose[0] : astraPurpose;
566
+ const category = value.split(":")[0];
567
+ return category;
568
+ }
496
569
  const purposeHeader = req.headers["x-purpose"] || req.headers["X-Purpose"];
497
570
  if (purposeHeader) {
498
571
  return Array.isArray(purposeHeader) ? purposeHeader[0] : purposeHeader;
@@ -502,14 +575,14 @@ function defaultExtractPurpose(req) {
502
575
  }
503
576
  switch (req.method) {
504
577
  case "GET":
505
- return "read";
578
+ return "read_data";
506
579
  case "POST":
507
- return "create";
580
+ return "write_data";
508
581
  case "PUT":
509
582
  case "PATCH":
510
- return "update";
583
+ return "write_data";
511
584
  case "DELETE":
512
- return "delete";
585
+ return "delete_data";
513
586
  default:
514
587
  return "general";
515
588
  }
@@ -546,6 +619,7 @@ function createMiddleware(options) {
546
619
  skipPaths = [],
547
620
  onDenied = defaultOnDenied,
548
621
  recordDecisions,
622
+ enableRuntimeChallenge = true,
549
623
  ...config
550
624
  } = options;
551
625
  return async (req, res, next) => {
@@ -563,6 +637,16 @@ function createMiddleware(options) {
563
637
  }
564
638
  const credentials = customExtractCredentials ? customExtractCredentials(req) : defaultExtractCredentials(req);
565
639
  if (!hasCredentials(credentials) && routeConfig.minAccessLevel !== "guidance") {
640
+ const counterpartyUrl2 = config.counterpartyUrl || `${req.protocol}://${req.get("host")}`;
641
+ reportUnregisteredAttempt(config, {
642
+ counterpartyUrl: counterpartyUrl2,
643
+ counterpartyType: config.counterpartyType || "api",
644
+ sourceIp: req.ip,
645
+ userAgent: req.headers["user-agent"],
646
+ requestPath: req.path,
647
+ requestMethod: req.method
648
+ }).catch(() => {
649
+ });
566
650
  const result2 = {
567
651
  verified: false,
568
652
  accessLevel: "none",
@@ -579,6 +663,34 @@ function createMiddleware(options) {
579
663
  return;
580
664
  }
581
665
  const purpose = customExtractPurpose ? customExtractPurpose(req) : defaultExtractPurpose(req);
666
+ const astraCreds = extractAstraSyncCredentials(req);
667
+ const counterpartyUrl = config.counterpartyUrl || `${req.protocol}://${req.get("host")}`;
668
+ const preCheckFailures = performCounterpartyPreCheck(routeConfig, astraCreds, purpose);
669
+ if (preCheckFailures.length > 0) {
670
+ const result2 = {
671
+ verified: false,
672
+ accessLevel: "none",
673
+ denialReasons: preCheckFailures.map((f) => f.message),
674
+ guidance: {
675
+ message: "Request exceeds counterparty-defined PDLSS limits.",
676
+ registrationUrl: `${config.apiBaseUrl?.replace("/api", "")}/register`,
677
+ documentationUrl: `${config.apiBaseUrl?.replace("/api", "")}/docs/pdlss`
678
+ },
679
+ verifiedAt: /* @__PURE__ */ new Date()
680
+ };
681
+ req.agentVerification = result2;
682
+ reportCounterpartyPreCheckFailure(config, {
683
+ agentId: astraCreds?.agentId || credentials.astraId || "unknown",
684
+ counterpartyUrl,
685
+ counterpartyType: config.counterpartyType || "api",
686
+ failures: preCheckFailures,
687
+ requestPath: req.path,
688
+ requestMethod: req.method
689
+ }).catch(() => {
690
+ });
691
+ onDenied(result2, req, res);
692
+ return;
693
+ }
582
694
  const shouldRecordDecisions = recordDecisions !== false;
583
695
  const result = await verify(config, {
584
696
  credentials,
@@ -587,7 +699,11 @@ function createMiddleware(options) {
587
699
  resource: req.path,
588
700
  clientIp: req.ip,
589
701
  userAgent: req.headers["user-agent"],
590
- createSession: shouldRecordDecisions
702
+ createSession: shouldRecordDecisions,
703
+ counterpartyUrl,
704
+ counterpartyType: config.counterpartyType || "api",
705
+ enableRuntimeChallenge,
706
+ durationRequired: astraCreds?.pdlss?.duration?.maxSessionDuration
591
707
  });
592
708
  req.agentVerification = result;
593
709
  const sessionId = result.sessionId;
@@ -626,17 +742,13 @@ function createMiddleware(options) {
626
742
  function requireAccess(minAccessLevel, options) {
627
743
  return createMiddleware({
628
744
  ...options,
629
- routes: [
630
- { pattern: "*", method: "*", minAccessLevel }
631
- ]
745
+ routes: [{ pattern: "*", method: "*", minAccessLevel }]
632
746
  });
633
747
  }
634
748
  function verifyOnly(options) {
635
749
  return createMiddleware({
636
750
  ...options,
637
- routes: [
638
- { pattern: "*", method: "*", minAccessLevel: "none" }
639
- ]
751
+ routes: [{ pattern: "*", method: "*", minAccessLevel: "none" }]
640
752
  });
641
753
  }
642
754
 
@@ -686,17 +798,32 @@ function findRouteConfig2(routes, path, method) {
686
798
  return methodMatches && pathMatches;
687
799
  });
688
800
  }
689
- function inferPurpose(method) {
690
- switch (method.toUpperCase()) {
801
+ function extractAstraSyncCredentialsFromNextRequest(request) {
802
+ const headers = {};
803
+ request.headers.forEach((value, key) => {
804
+ headers[key] = value;
805
+ });
806
+ return extractHttpCredentials(headers);
807
+ }
808
+ function extractPurpose(request) {
809
+ const astraPurpose = request.headers.get("x-astra-purpose");
810
+ if (astraPurpose) {
811
+ return astraPurpose.split(":")[0];
812
+ }
813
+ const purposeHeader = request.headers.get("x-purpose");
814
+ if (purposeHeader) {
815
+ return purposeHeader;
816
+ }
817
+ switch (request.method.toUpperCase()) {
691
818
  case "GET":
692
- return "read";
819
+ return "read_data";
693
820
  case "POST":
694
- return "create";
821
+ return "write_data";
695
822
  case "PUT":
696
823
  case "PATCH":
697
- return "update";
824
+ return "write_data";
698
825
  case "DELETE":
699
- return "delete";
826
+ return "delete_data";
700
827
  default:
701
828
  return "general";
702
829
  }
@@ -848,12 +975,7 @@ function generateCommerceShieldHtml(result, options) {
848
975
  `.trim();
849
976
  }
850
977
  function createMiddleware2(options) {
851
- const {
852
- routes = [],
853
- skipPaths = [],
854
- showCommerceShield = true,
855
- ...config
856
- } = options;
978
+ const { routes = [], skipPaths = [], showCommerceShield = true, enableRuntimeChallenge = true, ...config } = options;
857
979
  return async function middleware(request) {
858
980
  const { NextResponse } = await import("next/server");
859
981
  const pathname = request.nextUrl.pathname;
@@ -870,6 +992,16 @@ function createMiddleware2(options) {
870
992
  }
871
993
  const credentials = extractCredentialsFromNextRequest(request);
872
994
  if (!hasCredentials(credentials) && routeConfig.minAccessLevel !== "guidance") {
995
+ const counterpartyUrl2 = config.counterpartyUrl || request.nextUrl.origin;
996
+ reportUnregisteredAttempt(config, {
997
+ counterpartyUrl: counterpartyUrl2,
998
+ counterpartyType: config.counterpartyType || "website",
999
+ sourceIp: request.headers.get("x-forwarded-for") || request.headers.get("x-real-ip") || void 0,
1000
+ userAgent: request.headers.get("user-agent") || void 0,
1001
+ requestPath: pathname,
1002
+ requestMethod: request.method
1003
+ }).catch(() => {
1004
+ });
873
1005
  const result2 = {
874
1006
  verified: false,
875
1007
  accessLevel: "none",
@@ -906,14 +1038,66 @@ function createMiddleware2(options) {
906
1038
  const registerUrl = result2.guidance?.registrationUrl || "/register";
907
1039
  return NextResponse.redirect(new URL(registerUrl, request.url));
908
1040
  }
909
- const purpose = request.headers.get("x-purpose") || inferPurpose(request.method);
1041
+ const counterpartyUrl = config.counterpartyUrl || request.nextUrl.origin;
1042
+ const purpose = extractPurpose(request);
1043
+ const astraCreds = extractAstraSyncCredentialsFromNextRequest(request);
1044
+ const preCheckFailures = performCounterpartyPreCheck(routeConfig, astraCreds, purpose);
1045
+ if (preCheckFailures.length > 0) {
1046
+ const preCheckResult = {
1047
+ verified: false,
1048
+ accessLevel: "none",
1049
+ denialReasons: preCheckFailures.map((f) => f.message),
1050
+ guidance: {
1051
+ message: "Request exceeds counterparty-defined PDLSS limits.",
1052
+ registrationUrl: `${config.apiBaseUrl?.replace("/api", "")}/register`,
1053
+ documentationUrl: `${config.apiBaseUrl?.replace("/api", "")}/docs/pdlss`
1054
+ },
1055
+ verifiedAt: /* @__PURE__ */ new Date()
1056
+ };
1057
+ reportCounterpartyPreCheckFailure(config, {
1058
+ agentId: astraCreds?.agentId || credentials.astraId || "unknown",
1059
+ counterpartyUrl,
1060
+ counterpartyType: config.counterpartyType || "website",
1061
+ failures: preCheckFailures,
1062
+ requestPath: pathname,
1063
+ requestMethod: request.method
1064
+ }).catch(() => {
1065
+ });
1066
+ if (pathname.startsWith("/api/")) {
1067
+ return NextResponse.json(
1068
+ {
1069
+ success: false,
1070
+ error: {
1071
+ code: "PDLSS_PRE_CHECK_FAILED",
1072
+ message: preCheckResult.denialReasons?.[0] || "PDLSS pre-check failed",
1073
+ guidance: preCheckResult.guidance
1074
+ }
1075
+ },
1076
+ { status: 403 }
1077
+ );
1078
+ }
1079
+ if (showCommerceShield) {
1080
+ return new NextResponse(generateCommerceShieldHtml(preCheckResult, options), {
1081
+ status: 200,
1082
+ headers: {
1083
+ "Content-Type": "text/html",
1084
+ "X-AstraSync-Verification": "commerce-shield"
1085
+ }
1086
+ });
1087
+ }
1088
+ return NextResponse.redirect(new URL("/unauthorized", request.url));
1089
+ }
910
1090
  const result = await verify(config, {
911
1091
  credentials,
912
1092
  purpose,
913
1093
  action: request.method.toLowerCase(),
914
1094
  resource: pathname,
915
1095
  clientIp: request.headers.get("x-forwarded-for")?.split(",")[0]?.trim() || void 0,
916
- userAgent: request.headers.get("user-agent") || void 0
1096
+ userAgent: request.headers.get("user-agent") || void 0,
1097
+ counterpartyUrl,
1098
+ counterpartyType: config.counterpartyType || "website",
1099
+ enableRuntimeChallenge,
1100
+ durationRequired: astraCreds?.pdlss?.duration?.maxSessionDuration
917
1101
  });
918
1102
  if (!hasMinimumAccess(result.accessLevel, routeConfig.minAccessLevel)) {
919
1103
  if (pathname.startsWith("/api/")) {
@@ -976,7 +1160,9 @@ var VerificationGatewayClient = class {
976
1160
  minTrustScoreForFull: options.minTrustScoreForFull,
977
1161
  cacheTtl: options.cacheTtl,
978
1162
  debug: options.debug,
979
- customHeaders: options.customHeaders
1163
+ customHeaders: options.customHeaders,
1164
+ counterpartyUrl: options.counterpartyUrl,
1165
+ counterpartyType: options.counterpartyType
980
1166
  };
981
1167
  this.timeout = options.timeout || 1e4;
982
1168
  this.retryConfig = options.retry || { maxRetries: 3, backoffMs: 1e3 };
@@ -1002,7 +1188,9 @@ var VerificationGatewayClient = class {
1002
1188
  currency: options.currency,
1003
1189
  isSubAgentRequest: options.isSubAgentRequest,
1004
1190
  parentAgentId: options.parentAgentId,
1005
- subAgentDepth: options.subAgentDepth
1191
+ subAgentDepth: options.subAgentDepth,
1192
+ counterpartyUrl: options.counterpartyUrl,
1193
+ counterpartyType: options.counterpartyType
1006
1194
  })
1007
1195
  );
1008
1196
  }