@ucptools/validator 1.0.1 → 1.2.0

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 (162) hide show
  1. package/dist/auth/config.d.ts +20 -0
  2. package/dist/auth/config.d.ts.map +1 -0
  3. package/dist/auth/config.js +114 -0
  4. package/dist/auth/config.js.map +1 -0
  5. package/dist/auth/index.d.ts +5 -0
  6. package/dist/auth/index.d.ts.map +1 -0
  7. package/dist/auth/index.js +17 -0
  8. package/dist/auth/index.js.map +1 -0
  9. package/dist/auth/middleware.d.ts +45 -0
  10. package/dist/auth/middleware.d.ts.map +1 -0
  11. package/dist/auth/middleware.js +170 -0
  12. package/dist/auth/middleware.js.map +1 -0
  13. package/dist/auth/service.d.ts +80 -0
  14. package/dist/auth/service.d.ts.map +1 -0
  15. package/dist/auth/service.js +298 -0
  16. package/dist/auth/service.js.map +1 -0
  17. package/dist/cli/index.js +96 -0
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/cli/mock-server.d.ts +20 -0
  20. package/dist/cli/mock-server.d.ts.map +1 -0
  21. package/dist/cli/mock-server.js +261 -0
  22. package/dist/cli/mock-server.js.map +1 -0
  23. package/dist/db/index.d.ts +8 -2
  24. package/dist/db/index.d.ts.map +1 -1
  25. package/dist/db/index.js +22 -5
  26. package/dist/db/index.js.map +1 -1
  27. package/dist/db/schema.d.ts +3570 -128
  28. package/dist/db/schema.d.ts.map +1 -1
  29. package/dist/db/schema.js +377 -17
  30. package/dist/db/schema.js.map +1 -1
  31. package/dist/db/utils.d.ts +252 -0
  32. package/dist/db/utils.d.ts.map +1 -0
  33. package/dist/db/utils.js +295 -0
  34. package/dist/db/utils.js.map +1 -0
  35. package/dist/feed-analyzer/feed-analyzer.d.ts.map +1 -1
  36. package/dist/feed-analyzer/feed-analyzer.js +218 -4
  37. package/dist/feed-analyzer/feed-analyzer.js.map +1 -1
  38. package/dist/feed-analyzer/types.d.ts +82 -1
  39. package/dist/feed-analyzer/types.d.ts.map +1 -1
  40. package/dist/feed-analyzer/types.js +13 -0
  41. package/dist/feed-analyzer/types.js.map +1 -1
  42. package/dist/generator/profile-builder.d.ts.map +1 -1
  43. package/dist/generator/profile-builder.js +158 -115
  44. package/dist/generator/profile-builder.js.map +1 -1
  45. package/dist/lib/analytics.d.ts +349 -0
  46. package/dist/lib/analytics.d.ts.map +1 -0
  47. package/dist/lib/analytics.js +198 -0
  48. package/dist/lib/analytics.js.map +1 -0
  49. package/dist/security/security-scanner.d.ts.map +1 -1
  50. package/dist/security/security-scanner.js +130 -2
  51. package/dist/security/security-scanner.js.map +1 -1
  52. package/dist/security/types.d.ts +32 -0
  53. package/dist/security/types.d.ts.map +1 -1
  54. package/dist/security/types.js.map +1 -1
  55. package/dist/services/analytics.d.ts +114 -0
  56. package/dist/services/analytics.d.ts.map +1 -0
  57. package/dist/services/analytics.js +862 -0
  58. package/dist/services/analytics.js.map +1 -0
  59. package/dist/services/badge.d.ts +31 -0
  60. package/dist/services/badge.d.ts.map +1 -0
  61. package/dist/services/badge.js +152 -0
  62. package/dist/services/badge.js.map +1 -0
  63. package/dist/services/cron.d.ts +127 -0
  64. package/dist/services/cron.d.ts.map +1 -0
  65. package/dist/services/cron.js +693 -0
  66. package/dist/services/cron.js.map +1 -0
  67. package/dist/services/directory.d.ts +2 -0
  68. package/dist/services/directory.d.ts.map +1 -1
  69. package/dist/services/directory.js +45 -27
  70. package/dist/services/directory.js.map +1 -1
  71. package/dist/services/email.d.ts +127 -0
  72. package/dist/services/email.d.ts.map +1 -0
  73. package/dist/services/email.js +876 -0
  74. package/dist/services/email.js.map +1 -0
  75. package/dist/services/hosted-profiles.d.ts +77 -0
  76. package/dist/services/hosted-profiles.d.ts.map +1 -0
  77. package/dist/services/hosted-profiles.js +433 -0
  78. package/dist/services/hosted-profiles.js.map +1 -0
  79. package/dist/services/latency.d.ts +67 -0
  80. package/dist/services/latency.d.ts.map +1 -0
  81. package/dist/services/latency.js +274 -0
  82. package/dist/services/latency.js.map +1 -0
  83. package/dist/services/manifest-compliance.d.ts +64 -0
  84. package/dist/services/manifest-compliance.d.ts.map +1 -0
  85. package/dist/services/manifest-compliance.js +271 -0
  86. package/dist/services/manifest-compliance.js.map +1 -0
  87. package/dist/services/monitoring-diff.d.ts +31 -0
  88. package/dist/services/monitoring-diff.d.ts.map +1 -0
  89. package/dist/services/monitoring-diff.js +189 -0
  90. package/dist/services/monitoring-diff.js.map +1 -0
  91. package/dist/services/notifications.d.ts +46 -0
  92. package/dist/services/notifications.d.ts.map +1 -0
  93. package/dist/services/notifications.js +88 -0
  94. package/dist/services/notifications.js.map +1 -0
  95. package/dist/services/posthog.d.ts +43 -0
  96. package/dist/services/posthog.d.ts.map +1 -0
  97. package/dist/services/posthog.js +110 -0
  98. package/dist/services/posthog.js.map +1 -0
  99. package/dist/services/stripe.d.ts +93 -0
  100. package/dist/services/stripe.d.ts.map +1 -0
  101. package/dist/services/stripe.js +490 -0
  102. package/dist/services/stripe.js.map +1 -0
  103. package/dist/services/validation-history.d.ts +99 -0
  104. package/dist/services/validation-history.d.ts.map +1 -0
  105. package/dist/services/validation-history.js +344 -0
  106. package/dist/services/validation-history.js.map +1 -0
  107. package/dist/services/validation-logging.d.ts +103 -0
  108. package/dist/services/validation-logging.d.ts.map +1 -0
  109. package/dist/services/validation-logging.js +210 -0
  110. package/dist/services/validation-logging.js.map +1 -0
  111. package/dist/services/validation.d.ts +119 -0
  112. package/dist/services/validation.d.ts.map +1 -0
  113. package/dist/services/validation.js +1185 -0
  114. package/dist/services/validation.js.map +1 -0
  115. package/dist/simulator/agent-simulator.d.ts.map +1 -1
  116. package/dist/simulator/agent-simulator.js +229 -9
  117. package/dist/simulator/agent-simulator.js.map +1 -1
  118. package/dist/simulator/types.d.ts +26 -0
  119. package/dist/simulator/types.d.ts.map +1 -1
  120. package/dist/simulator/types.js.map +1 -1
  121. package/dist/types/acp-validation.d.ts +87 -0
  122. package/dist/types/acp-validation.d.ts.map +1 -0
  123. package/dist/types/acp-validation.js +40 -0
  124. package/dist/types/acp-validation.js.map +1 -0
  125. package/dist/types/analytics.d.ts +182 -0
  126. package/dist/types/analytics.d.ts.map +1 -0
  127. package/dist/types/analytics.js +7 -0
  128. package/dist/types/analytics.js.map +1 -0
  129. package/dist/types/generator.d.ts +4 -0
  130. package/dist/types/generator.d.ts.map +1 -1
  131. package/dist/types/ucp-profile.d.ts +32 -2
  132. package/dist/types/ucp-profile.d.ts.map +1 -1
  133. package/dist/types/ucp-profile.js +31 -1
  134. package/dist/types/ucp-profile.js.map +1 -1
  135. package/dist/types/validation.d.ts +14 -0
  136. package/dist/types/validation.d.ts.map +1 -1
  137. package/dist/types/validation.js +19 -0
  138. package/dist/types/validation.js.map +1 -1
  139. package/dist/validator/acp/index.d.ts +31 -0
  140. package/dist/validator/acp/index.d.ts.map +1 -0
  141. package/dist/validator/acp/index.js +574 -0
  142. package/dist/validator/acp/index.js.map +1 -0
  143. package/dist/validator/network-validator.d.ts.map +1 -1
  144. package/dist/validator/network-validator.js +23 -13
  145. package/dist/validator/network-validator.js.map +1 -1
  146. package/dist/validator/rules-validator.d.ts +8 -0
  147. package/dist/validator/rules-validator.d.ts.map +1 -1
  148. package/dist/validator/rules-validator.js +159 -43
  149. package/dist/validator/rules-validator.js.map +1 -1
  150. package/dist/validator/structural-validator.d.ts.map +1 -1
  151. package/dist/validator/structural-validator.js +283 -53
  152. package/dist/validator/structural-validator.js.map +1 -1
  153. package/dist/validator/utils.d.ts +62 -0
  154. package/dist/validator/utils.d.ts.map +1 -0
  155. package/dist/validator/utils.js +151 -0
  156. package/dist/validator/utils.js.map +1 -0
  157. package/package.json +45 -12
  158. package/.claude/settings.local.json +0 -60
  159. package/.vercel/README.txt +0 -11
  160. package/.vercel/project.json +0 -1
  161. package/publish-output.txt +0 -0
  162. package/tsconfig.json +0 -20
@@ -0,0 +1,87 @@
1
+ /**
2
+ * ACP (Agentic Commerce Protocol) Readiness Check Types
3
+ *
4
+ * Separate from UCP validation types to avoid any impact on existing code.
5
+ * Based on the ACP spec (https://github.com/agentic-commerce-protocol/agentic-commerce-protocol)
6
+ * Latest stable version: 2026-01-30
7
+ */
8
+ export type AcpSeverity = 'error' | 'warn' | 'info';
9
+ export declare const AcpCheckCodes: {
10
+ readonly PLATFORM_SHOPIFY: "ACP_PLATFORM_SHOPIFY";
11
+ readonly PLATFORM_ETSY: "ACP_PLATFORM_ETSY";
12
+ readonly PLATFORM_OTHER: "ACP_PLATFORM_OTHER";
13
+ readonly PLATFORM_UNKNOWN: "ACP_PLATFORM_UNKNOWN";
14
+ readonly STRIPE_DETECTED: "ACP_STRIPE_DETECTED";
15
+ readonly STRIPE_NOT_DETECTED: "ACP_STRIPE_NOT_DETECTED";
16
+ readonly HTTPS_OK: "ACP_HTTPS_OK";
17
+ readonly HTTPS_MISSING: "ACP_HTTPS_MISSING";
18
+ readonly TERMS_OF_USE_FOUND: "ACP_TERMS_FOUND";
19
+ readonly TERMS_OF_USE_MISSING: "ACP_TERMS_MISSING";
20
+ readonly PRIVACY_POLICY_FOUND: "ACP_PRIVACY_FOUND";
21
+ readonly PRIVACY_POLICY_MISSING: "ACP_PRIVACY_MISSING";
22
+ readonly RETURN_POLICY_FOUND: "ACP_RETURN_FOUND";
23
+ readonly RETURN_POLICY_MISSING: "ACP_RETURN_MISSING";
24
+ readonly CHECKOUT_FORM_FOUND: "ACP_CHECKOUT_FORM_FOUND";
25
+ readonly CHECKOUT_FORM_MISSING: "ACP_CHECKOUT_FORM_MISSING";
26
+ readonly NO_COMMERCE_SIGNALS: "ACP_NO_COMMERCE_SIGNALS";
27
+ readonly SITE_UNREACHABLE: "ACP_SITE_UNREACHABLE";
28
+ readonly SITE_TIMEOUT: "ACP_SITE_TIMEOUT";
29
+ };
30
+ export type AcpCheckCode = typeof AcpCheckCodes[keyof typeof AcpCheckCodes];
31
+ export interface AcpCheckFinding {
32
+ severity: AcpSeverity;
33
+ code: AcpCheckCode;
34
+ category: 'platform' | 'payment' | 'policies' | 'security' | 'checkout';
35
+ message: string;
36
+ hint?: string;
37
+ }
38
+ export interface AcpScoreBreakdown {
39
+ platform: {
40
+ score: number;
41
+ maxScore: number;
42
+ status: string;
43
+ details: string;
44
+ };
45
+ payment: {
46
+ score: number;
47
+ maxScore: number;
48
+ status: string;
49
+ details: string;
50
+ };
51
+ policies: {
52
+ score: number;
53
+ maxScore: number;
54
+ status: string;
55
+ details: string;
56
+ };
57
+ security: {
58
+ score: number;
59
+ maxScore: number;
60
+ status: string;
61
+ details: string;
62
+ };
63
+ total: number;
64
+ maxTotal: number;
65
+ }
66
+ export type AcpGrade = 'A' | 'B' | 'C' | 'D' | 'F';
67
+ export interface AcpReadinessReport {
68
+ ok: boolean;
69
+ domain: string;
70
+ score: number;
71
+ grade: AcpGrade;
72
+ label: string;
73
+ score_breakdown: AcpScoreBreakdown;
74
+ findings: AcpCheckFinding[];
75
+ platform_detected: string | null;
76
+ stripe_detected: boolean;
77
+ checked_at: string;
78
+ recommendations: AcpRecommendation[];
79
+ }
80
+ export interface AcpRecommendation {
81
+ priority: 'critical' | 'high' | 'medium' | 'low';
82
+ title: string;
83
+ description: string;
84
+ action: string;
85
+ link?: string;
86
+ }
87
+ //# sourceMappingURL=acp-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-validation.d.ts","sourceRoot":"","sources":["../../src/types/acp-validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAGpD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;CAiChB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAG5E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAGnD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,iBAAiB,CAAC;IACnC,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,iBAAiB,EAAE,CAAC;CACtC;AAGD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ /**
3
+ * ACP (Agentic Commerce Protocol) Readiness Check Types
4
+ *
5
+ * Separate from UCP validation types to avoid any impact on existing code.
6
+ * Based on the ACP spec (https://github.com/agentic-commerce-protocol/agentic-commerce-protocol)
7
+ * Latest stable version: 2026-01-30
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.AcpCheckCodes = void 0;
11
+ // ACP-specific error/status codes
12
+ exports.AcpCheckCodes = {
13
+ // Platform detection
14
+ PLATFORM_SHOPIFY: 'ACP_PLATFORM_SHOPIFY',
15
+ PLATFORM_ETSY: 'ACP_PLATFORM_ETSY',
16
+ PLATFORM_OTHER: 'ACP_PLATFORM_OTHER',
17
+ PLATFORM_UNKNOWN: 'ACP_PLATFORM_UNKNOWN',
18
+ // Stripe detection
19
+ STRIPE_DETECTED: 'ACP_STRIPE_DETECTED',
20
+ STRIPE_NOT_DETECTED: 'ACP_STRIPE_NOT_DETECTED',
21
+ // HTTPS
22
+ HTTPS_OK: 'ACP_HTTPS_OK',
23
+ HTTPS_MISSING: 'ACP_HTTPS_MISSING',
24
+ // Policies (required for ACP links array)
25
+ TERMS_OF_USE_FOUND: 'ACP_TERMS_FOUND',
26
+ TERMS_OF_USE_MISSING: 'ACP_TERMS_MISSING',
27
+ PRIVACY_POLICY_FOUND: 'ACP_PRIVACY_FOUND',
28
+ PRIVACY_POLICY_MISSING: 'ACP_PRIVACY_MISSING',
29
+ RETURN_POLICY_FOUND: 'ACP_RETURN_FOUND',
30
+ RETURN_POLICY_MISSING: 'ACP_RETURN_MISSING',
31
+ // Checkout readiness
32
+ CHECKOUT_FORM_FOUND: 'ACP_CHECKOUT_FORM_FOUND',
33
+ CHECKOUT_FORM_MISSING: 'ACP_CHECKOUT_FORM_MISSING',
34
+ // No e-commerce signals
35
+ NO_COMMERCE_SIGNALS: 'ACP_NO_COMMERCE_SIGNALS',
36
+ // Overall
37
+ SITE_UNREACHABLE: 'ACP_SITE_UNREACHABLE',
38
+ SITE_TIMEOUT: 'ACP_SITE_TIMEOUT',
39
+ };
40
+ //# sourceMappingURL=acp-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-validation.js","sourceRoot":"","sources":["../../src/types/acp-validation.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAKH,kCAAkC;AACrB,QAAA,aAAa,GAAG;IAC3B,qBAAqB;IACrB,gBAAgB,EAAE,sBAAsB;IACxC,aAAa,EAAE,mBAAmB;IAClC,cAAc,EAAE,oBAAoB;IACpC,gBAAgB,EAAE,sBAAsB;IAExC,mBAAmB;IACnB,eAAe,EAAE,qBAAqB;IACtC,mBAAmB,EAAE,yBAAyB;IAE9C,QAAQ;IACR,QAAQ,EAAE,cAAc;IACxB,aAAa,EAAE,mBAAmB;IAElC,0CAA0C;IAC1C,kBAAkB,EAAE,iBAAiB;IACrC,oBAAoB,EAAE,mBAAmB;IACzC,oBAAoB,EAAE,mBAAmB;IACzC,sBAAsB,EAAE,qBAAqB;IAC7C,mBAAmB,EAAE,kBAAkB;IACvC,qBAAqB,EAAE,oBAAoB;IAE3C,qBAAqB;IACrB,mBAAmB,EAAE,yBAAyB;IAC9C,qBAAqB,EAAE,2BAA2B;IAElD,wBAAwB;IACxB,mBAAmB,EAAE,yBAAyB;IAE9C,UAAU;IACV,gBAAgB,EAAE,sBAAsB;IACxC,YAAY,EAAE,kBAAkB;CACxB,CAAC"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Analytics Types
3
+ * Type definitions for AI Agent Traffic Analytics (V1 + V2)
4
+ */
5
+ export type AnalyticsEventTypeV1 = 'discovery' | 'capability' | 'checkout' | 'order' | 'fulfillment' | 'error';
6
+ export type AnalyticsEventTypeUCP = 'capability_negotiation' | 'product_browse' | 'product_detail' | 'checkout_create' | 'checkout_update' | 'checkout_escalation' | 'payment_attempt' | 'payment_success' | 'payment_failure' | 'order_created' | 'fulfillment_query';
7
+ export type AnalyticsEventTypeACP = 'acp_checkout_create' | 'acp_checkout_update' | 'acp_payment' | 'acp_order' | 'acp_webhook';
8
+ export type AnalyticsEventType = AnalyticsEventTypeV1 | AnalyticsEventTypeUCP | AnalyticsEventTypeACP;
9
+ export type ProtocolType = 'ucp' | 'acp' | 'unknown';
10
+ export type AgentType = 'gemini' | 'chatgpt' | 'perplexity' | 'claude' | 'copilot' | 'unknown';
11
+ export interface AnalyticsEventInput {
12
+ event_type: string;
13
+ user_agent?: string;
14
+ endpoint?: string;
15
+ capability?: string;
16
+ http_status?: number;
17
+ response_time_ms?: number;
18
+ session_id?: string;
19
+ ip_address?: string;
20
+ country_code?: string;
21
+ metadata?: Record<string, unknown>;
22
+ protocol?: ProtocolType;
23
+ checkout_session_id?: string;
24
+ checkout_state?: string;
25
+ line_items_count?: number;
26
+ order_total?: number;
27
+ currency?: string;
28
+ payment_handler?: string;
29
+ escalation_reason?: string;
30
+ agent_profile_url?: string;
31
+ }
32
+ export interface IngestEventsResponse {
33
+ received: number;
34
+ errors?: string[];
35
+ }
36
+ export interface AnalyticsSummary {
37
+ totalEvents: number;
38
+ uniqueSessions: number;
39
+ uniqueAgents: number;
40
+ avgResponseTimeMs: number;
41
+ errorRate: number;
42
+ eventsByType: Record<string, number>;
43
+ eventsByAgent: Record<string, number>;
44
+ topCapabilities: Array<{
45
+ capability: string;
46
+ count: number;
47
+ }>;
48
+ topEndpoints: Array<{
49
+ endpoint: string;
50
+ count: number;
51
+ }>;
52
+ }
53
+ export interface TimeseriesDataPoint {
54
+ timestamp: string;
55
+ eventCount: number;
56
+ uniqueSessions: number;
57
+ errorCount: number;
58
+ avgResponseTimeMs: number;
59
+ }
60
+ export interface TimeseriesData {
61
+ granularity: 'hour' | 'day' | 'week';
62
+ startDate: string;
63
+ endDate: string;
64
+ data: TimeseriesDataPoint[];
65
+ }
66
+ export interface EventFilters {
67
+ eventType?: string;
68
+ agentType?: AgentType;
69
+ startDate?: Date;
70
+ endDate?: Date;
71
+ capability?: string;
72
+ hasError?: boolean;
73
+ }
74
+ export interface Pagination {
75
+ limit: number;
76
+ offset: number;
77
+ }
78
+ export interface PaginatedEvents {
79
+ events: AnalyticsEventRecord[];
80
+ total: number;
81
+ limit: number;
82
+ offset: number;
83
+ }
84
+ export interface AnalyticsEventRecord {
85
+ id: string;
86
+ eventType: string;
87
+ agentType: string | null;
88
+ agentVersion: string | null;
89
+ endpoint: string | null;
90
+ capability: string | null;
91
+ httpStatus: number | null;
92
+ responseTimeMs: number | null;
93
+ countryCode: string | null;
94
+ createdAt: Date;
95
+ protocol?: string | null;
96
+ checkoutSessionId?: string | null;
97
+ checkoutState?: string | null;
98
+ orderTotal?: string | null;
99
+ currency?: string | null;
100
+ }
101
+ export interface AnalyticsApiKeyInfo {
102
+ id: string;
103
+ name: string;
104
+ keyPrefix: string;
105
+ lastUsedAt: Date | null;
106
+ isActive: boolean;
107
+ createdAt: Date;
108
+ }
109
+ export interface CreateAnalyticsApiKeyResponse {
110
+ key: string;
111
+ apiKey: AnalyticsApiKeyInfo;
112
+ }
113
+ export interface AgentDetectionResult {
114
+ type: AgentType;
115
+ version?: string;
116
+ }
117
+ export interface FunnelStage {
118
+ stage: string;
119
+ count: number;
120
+ conversionRate: number;
121
+ dropOffRate: number;
122
+ }
123
+ export interface FunnelData {
124
+ stages: FunnelStage[];
125
+ overallConversionRate: number;
126
+ timeRange: {
127
+ startDate: string;
128
+ endDate: string;
129
+ };
130
+ }
131
+ export interface CommerceKPIs {
132
+ agenticRevenue: number;
133
+ agenticConversionRate: number;
134
+ averageOrderValue: number;
135
+ escalationRate: number;
136
+ checkoutAbandonmentRate: number;
137
+ timeToPurchaseMs: number;
138
+ protocolDistribution: {
139
+ ucp: number;
140
+ acp: number;
141
+ unknown: number;
142
+ };
143
+ paymentHandlerDistribution: Record<string, number>;
144
+ }
145
+ export interface AgentPerformance {
146
+ agentType: string;
147
+ totalEvents: number;
148
+ discoveries: number;
149
+ checkouts: number;
150
+ orders: number;
151
+ conversionRate: number;
152
+ avgOrderValue: number;
153
+ errorRate: number;
154
+ avgResponseTimeMs: number;
155
+ }
156
+ export interface AgentComparisonData {
157
+ agents: AgentPerformance[];
158
+ }
159
+ export interface ErrorGroup {
160
+ errorCode: string;
161
+ count: number;
162
+ percentage: number;
163
+ suggestion: string;
164
+ affectedEndpoints: string[];
165
+ affectedAgents: string[];
166
+ }
167
+ export interface ErrorAnalysisData {
168
+ totalErrors: number;
169
+ errorRate: number;
170
+ errors: ErrorGroup[];
171
+ }
172
+ export interface CapabilityGap {
173
+ requestedCapability: string;
174
+ requestCount: number;
175
+ supported: boolean;
176
+ suggestedAction: string;
177
+ }
178
+ export interface CapabilityGapData {
179
+ gaps: CapabilityGap[];
180
+ matchRate: number;
181
+ }
182
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/types/analytics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GACX,YAAY,GACZ,UAAU,GACV,OAAO,GACP,aAAa,GACb,OAAO,CAAC;AAGZ,MAAM,MAAM,qBAAqB,GAC7B,wBAAwB,GACxB,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,qBAAqB,GACrB,iBAAiB,GACjB,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,GACf,mBAAmB,CAAC;AAGxB,MAAM,MAAM,qBAAqB,GAC7B,qBAAqB,GACrB,qBAAqB,GACrB,aAAa,GACb,WAAW,GACX,aAAa,CAAC;AAGlB,MAAM,MAAM,kBAAkB,GAC1B,oBAAoB,GACpB,qBAAqB,GACrB,qBAAqB,CAAC;AAG1B,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AAGrD,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,SAAS,GACT,YAAY,GACZ,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAGd,MAAM,WAAW,mBAAmB;IAElC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAGD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,YAAY,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAGD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAGD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,mBAAmB,EAAE,CAAC;CAC7B;AAGD,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAGD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,IAAI,CAAC;IAEhB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAGD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB;AAGD,MAAM,WAAW,6BAA6B;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAGD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAOD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAGD,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpD;AAGD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAGD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAGD,MAAM,WAAW,aAAa;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Analytics Types
4
+ * Type definitions for AI Agent Traffic Analytics (V1 + V2)
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/types/analytics.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -31,6 +31,10 @@ export interface CapabilitySelection {
31
31
  discount: boolean;
32
32
  payment?: boolean;
33
33
  buyerConsent?: boolean;
34
+ cart?: boolean;
35
+ catalogSearch?: boolean;
36
+ catalogLookup?: boolean;
37
+ identityLinking?: boolean;
34
38
  customCapabilities?: CustomCapability[];
35
39
  }
36
40
  export interface CustomCapability {
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/types/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/types/generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGnE,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAGD,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAGD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACzC;AAGD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAGD,MAAM,WAAW,cAAc;IAC7B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAGD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,mBAAmB,CAAC;IAClC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAGD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,eAAe,CAAC;AAGrE,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,SAAS,CAAC;AAGd,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAGD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IACrE,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -57,10 +57,18 @@ export interface PaymentHandler {
57
57
  export interface PaymentConfig {
58
58
  handlers: PaymentHandler[];
59
59
  }
60
+ export interface UcpCapabilityEntry {
61
+ version: string;
62
+ spec?: string;
63
+ schema?: string;
64
+ extends?: string;
65
+ config?: Record<string, unknown>;
66
+ }
67
+ export type UcpCapabilities = UcpCapability[] | Record<string, UcpCapabilityEntry[]>;
60
68
  export interface UcpObject {
61
69
  version: string;
62
- services: Record<string, UcpService>;
63
- capabilities: UcpCapability[];
70
+ services: Record<string, UcpService | UcpService[]>;
71
+ capabilities: UcpCapabilities;
64
72
  }
65
73
  export interface UcpProfile {
66
74
  ucp: UcpObject;
@@ -80,12 +88,27 @@ export declare const KNOWN_CAPABILITIES: {
80
88
  readonly FULFILLMENT: "dev.ucp.shopping.fulfillment";
81
89
  readonly DISCOUNT: "dev.ucp.shopping.discount";
82
90
  readonly BUYER_CONSENT: "dev.ucp.shopping.buyer_consent";
91
+ readonly CART: "dev.ucp.shopping.cart";
92
+ readonly CATALOG_SEARCH: "dev.ucp.shopping.catalog.search";
93
+ readonly CATALOG_LOOKUP: "dev.ucp.shopping.catalog.lookup";
94
+ readonly IDENTITY_LINKING: "dev.ucp.common.identity_linking";
83
95
  };
96
+ export declare const CAPABILITY_STABILITY: Record<string, 'stable' | 'draft'>;
84
97
  export declare const KNOWN_SERVICES: {
85
98
  readonly SHOPPING: "dev.ucp.shopping";
86
99
  };
100
+ export interface IdentityLinkingOAuth2Mechanism {
101
+ type: 'oauth2';
102
+ issuer: string;
103
+ discovery_endpoint?: string;
104
+ }
105
+ export type IdentityLinkingMechanism = IdentityLinkingOAuth2Mechanism;
106
+ export interface IdentityLinkingConfig {
107
+ supported_mechanisms: IdentityLinkingMechanism[];
108
+ }
87
109
  export declare const UCP_DEFAULTS: {
88
110
  readonly SPEC_BASE: "https://ucp.dev/specification/";
111
+ readonly DRAFT_SPEC_BASE: "https://ucp.dev/draft/specification/";
89
112
  readonly SCHEMA_BASE: "https://ucp.dev/schemas/";
90
113
  readonly SERVICE_SCHEMA_BASE: "https://ucp.dev/services/";
91
114
  readonly SHOPPING_REST_SCHEMA: "https://ucp.dev/services/shopping/rest.openapi.json";
@@ -97,6 +120,13 @@ export declare const UCP_DEFAULTS: {
97
120
  readonly FULFILLMENT_SCHEMA: "https://ucp.dev/schemas/shopping/fulfillment.json";
98
121
  readonly DISCOUNT_SPEC: "https://ucp.dev/specification/discount/";
99
122
  readonly DISCOUNT_SCHEMA: "https://ucp.dev/schemas/shopping/discount.json";
123
+ readonly CART_SPEC: "https://ucp.dev/draft/specification/cart/";
124
+ readonly CART_SCHEMA: "https://ucp.dev/schemas/shopping/cart.json";
125
+ readonly CATALOG_SPEC: "https://ucp.dev/draft/specification/catalog/";
126
+ readonly CATALOG_SEARCH_SCHEMA: "https://ucp.dev/schemas/shopping/catalog_search.json";
127
+ readonly CATALOG_LOOKUP_SCHEMA: "https://ucp.dev/schemas/shopping/catalog_lookup.json";
128
+ readonly IDENTITY_LINKING_SPEC: "https://ucp.dev/latest/specification/identity-linking/";
129
+ readonly IDENTITY_LINKING_SCHEMA: "https://ucp.dev/schemas/common/identity_linking.json";
100
130
  };
101
131
  export type Environment = 'production' | 'staging' | 'development';
102
132
  export type ProfileStatus = 'draft' | 'published';
@@ -1 +1 @@
1
- {"version":3,"file":"ucp-profile.d.ts","sourceRoot":"","sources":["../../src/types/ucp-profile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAGhD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAGD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAGD,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAGD,MAAM,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC;AAGnC,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAGD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAGD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,YAAY,EAAE,aAAa,EAAE,CAAC;CAC/B;AAGD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,SAAS,CAAC;IACf,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,YAAY,CAAC,EAAE,WAAW,CAAC;IAE3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,eAAO,MAAM,qBAAqB;;;CAGxB,CAAC;AAGX,eAAO,MAAM,kBAAkB;;;;;;;;CAQrB,CAAC;AAGX,eAAO,MAAM,cAAc;;CAEjB,CAAC;AAGX,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAef,CAAC;AAGX,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,CAAC;AAGnE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,WAAW,CAAC"}
1
+ {"version":3,"file":"ucp-profile.d.ts","sourceRoot":"","sources":["../../src/types/ucp-profile.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Based on https://ucp.dev/specification/overview/
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.UCP_DEFAULTS = exports.KNOWN_SERVICES = exports.KNOWN_CAPABILITIES = exports.CAPABILITY_NAMESPACES = exports.CURRENT_UCP_VERSION = void 0;
7
+ exports.UCP_DEFAULTS = exports.KNOWN_SERVICES = exports.CAPABILITY_STABILITY = exports.KNOWN_CAPABILITIES = exports.CAPABILITY_NAMESPACES = exports.CURRENT_UCP_VERSION = void 0;
8
8
  // Current UCP version
9
9
  exports.CURRENT_UCP_VERSION = '2026-01-11';
10
10
  // Known capability namespaces
@@ -21,6 +21,26 @@ exports.KNOWN_CAPABILITIES = {
21
21
  FULFILLMENT: 'dev.ucp.shopping.fulfillment',
22
22
  DISCOUNT: 'dev.ucp.shopping.discount',
23
23
  BUYER_CONSENT: 'dev.ucp.shopping.buyer_consent',
24
+ CART: 'dev.ucp.shopping.cart',
25
+ CATALOG_SEARCH: 'dev.ucp.shopping.catalog.search',
26
+ CATALOG_LOOKUP: 'dev.ucp.shopping.catalog.lookup',
27
+ IDENTITY_LINKING: 'dev.ucp.common.identity_linking',
28
+ };
29
+ // Capability stability classification (draft vs stable)
30
+ // Draft specs are published under ucp.dev/draft/ and may change
31
+ // Stable specs are part of the core UCP specification
32
+ exports.CAPABILITY_STABILITY = {
33
+ 'dev.ucp.shopping.checkout': 'stable',
34
+ 'dev.ucp.shopping.order': 'stable',
35
+ 'dev.ucp.shopping.payment': 'stable',
36
+ 'dev.ucp.shopping.payment_data': 'stable',
37
+ 'dev.ucp.shopping.fulfillment': 'stable',
38
+ 'dev.ucp.shopping.discount': 'stable',
39
+ 'dev.ucp.shopping.buyer_consent': 'stable',
40
+ 'dev.ucp.shopping.cart': 'draft',
41
+ 'dev.ucp.shopping.catalog.search': 'draft',
42
+ 'dev.ucp.shopping.catalog.lookup': 'draft',
43
+ 'dev.ucp.common.identity_linking': 'stable',
24
44
  };
25
45
  // Known UCP services
26
46
  exports.KNOWN_SERVICES = {
@@ -29,6 +49,7 @@ exports.KNOWN_SERVICES = {
29
49
  // Default URLs for UCP official resources
30
50
  exports.UCP_DEFAULTS = {
31
51
  SPEC_BASE: 'https://ucp.dev/specification/',
52
+ DRAFT_SPEC_BASE: 'https://ucp.dev/draft/specification/',
32
53
  SCHEMA_BASE: 'https://ucp.dev/schemas/',
33
54
  SERVICE_SCHEMA_BASE: 'https://ucp.dev/services/',
34
55
  // Default schema URLs
@@ -41,5 +62,14 @@ exports.UCP_DEFAULTS = {
41
62
  FULFILLMENT_SCHEMA: 'https://ucp.dev/schemas/shopping/fulfillment.json',
42
63
  DISCOUNT_SPEC: 'https://ucp.dev/specification/discount/',
43
64
  DISCOUNT_SCHEMA: 'https://ucp.dev/schemas/shopping/discount.json',
65
+ // Draft capability URLs (Cart and Catalog)
66
+ CART_SPEC: 'https://ucp.dev/draft/specification/cart/',
67
+ CART_SCHEMA: 'https://ucp.dev/schemas/shopping/cart.json',
68
+ CATALOG_SPEC: 'https://ucp.dev/draft/specification/catalog/',
69
+ CATALOG_SEARCH_SCHEMA: 'https://ucp.dev/schemas/shopping/catalog_search.json',
70
+ CATALOG_LOOKUP_SCHEMA: 'https://ucp.dev/schemas/shopping/catalog_lookup.json',
71
+ // Identity Linking (stable, under common namespace)
72
+ IDENTITY_LINKING_SPEC: 'https://ucp.dev/latest/specification/identity-linking/',
73
+ IDENTITY_LINKING_SCHEMA: 'https://ucp.dev/schemas/common/identity_linking.json',
44
74
  };
45
75
  //# sourceMappingURL=ucp-profile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ucp-profile.js","sourceRoot":"","sources":["../../src/types/ucp-profile.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sBAAsB;AACT,QAAA,mBAAmB,GAAG,YAAY,CAAC;AAyFhD,8BAA8B;AACjB,QAAA,qBAAqB,GAAG;IACnC,YAAY,EAAE,UAAU;IACxB,aAAa,EAAE,MAAM;CACb,CAAC;AAEX,8CAA8C;AACjC,QAAA,kBAAkB,GAAG;IAChC,QAAQ,EAAE,2BAA2B;IACrC,KAAK,EAAE,wBAAwB;IAC/B,OAAO,EAAE,0BAA0B;IACnC,YAAY,EAAE,+BAA+B;IAC7C,WAAW,EAAE,8BAA8B;IAC3C,QAAQ,EAAE,2BAA2B;IACrC,aAAa,EAAE,gCAAgC;CACvC,CAAC;AAEX,qBAAqB;AACR,QAAA,cAAc,GAAG;IAC5B,QAAQ,EAAE,kBAAkB;CACpB,CAAC;AAEX,0CAA0C;AAC7B,QAAA,YAAY,GAAG;IAC1B,SAAS,EAAE,gCAAgC;IAC3C,WAAW,EAAE,0BAA0B;IACvC,mBAAmB,EAAE,2BAA2B;IAEhD,sBAAsB;IACtB,oBAAoB,EAAE,qDAAqD;IAC3E,aAAa,EAAE,yCAAyC;IACxD,eAAe,EAAE,gDAAgD;IACjE,UAAU,EAAE,sCAAsC;IAClD,YAAY,EAAE,6CAA6C;IAC3D,gBAAgB,EAAE,4CAA4C;IAC9D,kBAAkB,EAAE,mDAAmD;IACvE,aAAa,EAAE,yCAAyC;IACxD,eAAe,EAAE,gDAAgD;CACzD,CAAC"}
1
+ {"version":3,"file":"ucp-profile.js","sourceRoot":"","sources":["../../src/types/ucp-profile.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sBAAsB;AACT,QAAA,mBAAmB,GAAG,YAAY,CAAC;AAqGhD,8BAA8B;AACjB,QAAA,qBAAqB,GAAG;IACnC,YAAY,EAAE,UAAU;IACxB,aAAa,EAAE,MAAM;CACb,CAAC;AAEX,8CAA8C;AACjC,QAAA,kBAAkB,GAAG;IAChC,QAAQ,EAAE,2BAA2B;IACrC,KAAK,EAAE,wBAAwB;IAC/B,OAAO,EAAE,0BAA0B;IACnC,YAAY,EAAE,+BAA+B;IAC7C,WAAW,EAAE,8BAA8B;IAC3C,QAAQ,EAAE,2BAA2B;IACrC,aAAa,EAAE,gCAAgC;IAC/C,IAAI,EAAE,uBAAuB;IAC7B,cAAc,EAAE,iCAAiC;IACjD,cAAc,EAAE,iCAAiC;IACjD,gBAAgB,EAAE,iCAAiC;CAC3C,CAAC;AAEX,wDAAwD;AACxD,gEAAgE;AAChE,sDAAsD;AACzC,QAAA,oBAAoB,GAAuC;IACtE,2BAA2B,EAAE,QAAQ;IACrC,wBAAwB,EAAE,QAAQ;IAClC,0BAA0B,EAAE,QAAQ;IACpC,+BAA+B,EAAE,QAAQ;IACzC,8BAA8B,EAAE,QAAQ;IACxC,2BAA2B,EAAE,QAAQ;IACrC,gCAAgC,EAAE,QAAQ;IAC1C,uBAAuB,EAAE,OAAO;IAChC,iCAAiC,EAAE,OAAO;IAC1C,iCAAiC,EAAE,OAAO;IAC1C,iCAAiC,EAAE,QAAQ;CAC5C,CAAC;AAEF,qBAAqB;AACR,QAAA,cAAc,GAAG;IAC5B,QAAQ,EAAE,kBAAkB;CACpB,CAAC;AAgBX,0CAA0C;AAC7B,QAAA,YAAY,GAAG;IAC1B,SAAS,EAAE,gCAAgC;IAC3C,eAAe,EAAE,sCAAsC;IACvD,WAAW,EAAE,0BAA0B;IACvC,mBAAmB,EAAE,2BAA2B;IAEhD,sBAAsB;IACtB,oBAAoB,EAAE,qDAAqD;IAC3E,aAAa,EAAE,yCAAyC;IACxD,eAAe,EAAE,gDAAgD;IACjE,UAAU,EAAE,sCAAsC;IAClD,YAAY,EAAE,6CAA6C;IAC3D,gBAAgB,EAAE,4CAA4C;IAC9D,kBAAkB,EAAE,mDAAmD;IACvE,aAAa,EAAE,yCAAyC;IACxD,eAAe,EAAE,gDAAgD;IAEjE,2CAA2C;IAC3C,SAAS,EAAE,2CAA2C;IACtD,WAAW,EAAE,4CAA4C;IACzD,YAAY,EAAE,8CAA8C;IAC5D,qBAAqB,EAAE,sDAAsD;IAC7E,qBAAqB,EAAE,sDAAsD;IAE7E,oDAAoD;IACpD,qBAAqB,EAAE,wDAAwD;IAC/E,uBAAuB,EAAE,sDAAsD;CACvE,CAAC"}
@@ -16,12 +16,26 @@ export declare const ValidationErrorCodes: {
16
16
  readonly ENDPOINT_TRAILING_SLASH: "UCP_ENDPOINT_TRAILING_SLASH";
17
17
  readonly MISSING_SIGNING_KEYS: "UCP_MISSING_SIGNING_KEYS";
18
18
  readonly INVALID_SIGNING_KEY: "UCP_INVALID_SIGNING_KEY";
19
+ readonly MISSING_PAYMENT_HANDLERS: "UCP_MISSING_PAYMENT_HANDLERS";
20
+ readonly PAYMENT_HANDLER_MISSING_FIELD: "UCP_PAYMENT_HANDLER_MISSING_FIELD";
21
+ readonly REST_MISSING_SCHEMA: "UCP_REST_MISSING_SCHEMA";
22
+ readonly REST_MISSING_ENDPOINT: "UCP_REST_MISSING_ENDPOINT";
23
+ readonly MCP_MISSING_SCHEMA: "UCP_MCP_MISSING_SCHEMA";
24
+ readonly MCP_MISSING_ENDPOINT: "UCP_MCP_MISSING_ENDPOINT";
25
+ readonly A2A_MISSING_ENDPOINT: "UCP_A2A_MISSING_ENDPOINT";
26
+ readonly EP_MISSING_SCHEMA: "UCP_EP_MISSING_SCHEMA";
19
27
  readonly PROFILE_FETCH_FAILED: "UCP_PROFILE_FETCH_FAILED";
20
28
  readonly SCHEMA_FETCH_FAILED: "UCP_SCHEMA_FETCH_FAILED";
21
29
  readonly SCHEMA_NOT_SELF_DESCRIBING: "UCP_SCHEMA_NOT_SELF_DESCRIBING";
22
30
  readonly SCHEMA_NAME_MISMATCH: "UCP_SCHEMA_NAME_MISMATCH";
23
31
  readonly SCHEMA_VERSION_MISMATCH: "UCP_SCHEMA_VERSION_MISMATCH";
24
32
  readonly PRIVATE_IP_ENDPOINT: "UCP_PRIVATE_IP_ENDPOINT";
33
+ readonly DRAFT_SCHEMA_DRIFT: "UCP_DRAFT_SCHEMA_DRIFT";
34
+ readonly CART_MISSING_CHECKOUT: "UCP_CART_MISSING_CHECKOUT";
35
+ readonly IDENTITY_MISSING_MECHANISMS: "UCP_IDENTITY_MISSING_MECHANISMS";
36
+ readonly IDENTITY_INVALID_MECHANISM: "UCP_IDENTITY_INVALID_MECHANISM";
37
+ readonly IDENTITY_MISSING_ISSUER: "UCP_IDENTITY_MISSING_ISSUER";
38
+ readonly IDENTITY_ISSUER_NOT_HTTPS: "UCP_IDENTITY_ISSUER_NOT_HTTPS";
25
39
  };
26
40
  export type ValidationErrorCode = typeof ValidationErrorCodes[keyof typeof ValidationErrorCodes];
27
41
  export interface ValidationIssue {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAG3D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;CAyBvB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,OAAO,oBAAoB,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAGjG,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE;QACf,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAGD,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAGzE,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAG3D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDvB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,OAAO,oBAAoB,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAGjG,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE;QACf,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAGD,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAGzE,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -21,6 +21,16 @@ exports.ValidationErrorCodes = {
21
21
  ENDPOINT_TRAILING_SLASH: 'UCP_ENDPOINT_TRAILING_SLASH',
22
22
  MISSING_SIGNING_KEYS: 'UCP_MISSING_SIGNING_KEYS',
23
23
  INVALID_SIGNING_KEY: 'UCP_INVALID_SIGNING_KEY',
24
+ // Payment validation errors
25
+ MISSING_PAYMENT_HANDLERS: 'UCP_MISSING_PAYMENT_HANDLERS',
26
+ PAYMENT_HANDLER_MISSING_FIELD: 'UCP_PAYMENT_HANDLER_MISSING_FIELD',
27
+ // Transport validation errors
28
+ REST_MISSING_SCHEMA: 'UCP_REST_MISSING_SCHEMA',
29
+ REST_MISSING_ENDPOINT: 'UCP_REST_MISSING_ENDPOINT',
30
+ MCP_MISSING_SCHEMA: 'UCP_MCP_MISSING_SCHEMA',
31
+ MCP_MISSING_ENDPOINT: 'UCP_MCP_MISSING_ENDPOINT',
32
+ A2A_MISSING_ENDPOINT: 'UCP_A2A_MISSING_ENDPOINT',
33
+ EP_MISSING_SCHEMA: 'UCP_EP_MISSING_SCHEMA',
24
34
  // Network validation errors
25
35
  PROFILE_FETCH_FAILED: 'UCP_PROFILE_FETCH_FAILED',
26
36
  SCHEMA_FETCH_FAILED: 'UCP_SCHEMA_FETCH_FAILED',
@@ -28,5 +38,14 @@ exports.ValidationErrorCodes = {
28
38
  SCHEMA_NAME_MISMATCH: 'UCP_SCHEMA_NAME_MISMATCH',
29
39
  SCHEMA_VERSION_MISMATCH: 'UCP_SCHEMA_VERSION_MISMATCH',
30
40
  PRIVATE_IP_ENDPOINT: 'UCP_PRIVATE_IP_ENDPOINT',
41
+ // Draft capability codes
42
+ DRAFT_SCHEMA_DRIFT: 'UCP_DRAFT_SCHEMA_DRIFT',
43
+ // Cart-specific errors
44
+ CART_MISSING_CHECKOUT: 'UCP_CART_MISSING_CHECKOUT',
45
+ // Identity Linking errors (per official spec: dev.ucp.common.identity_linking)
46
+ IDENTITY_MISSING_MECHANISMS: 'UCP_IDENTITY_MISSING_MECHANISMS',
47
+ IDENTITY_INVALID_MECHANISM: 'UCP_IDENTITY_INVALID_MECHANISM',
48
+ IDENTITY_MISSING_ISSUER: 'UCP_IDENTITY_MISSING_ISSUER',
49
+ IDENTITY_ISSUER_NOT_HTTPS: 'UCP_IDENTITY_ISSUER_NOT_HTTPS',
31
50
  };
32
51
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAKH,yBAAyB;AACZ,QAAA,oBAAoB,GAAG;IAClC,oBAAoB;IACpB,kBAAkB,EAAE,kBAAkB;IACtC,eAAe,EAAE,qBAAqB;IACtC,sBAAsB,EAAE,4BAA4B;IACpD,gBAAgB,EAAE,sBAAsB;IACxC,oBAAoB,EAAE,0BAA0B;IAChD,yBAAyB,EAAE,qBAAqB;IAChD,4BAA4B,EAAE,wBAAwB;IAEtD,mBAAmB;IACnB,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,wBAAwB;IAC5C,uBAAuB,EAAE,6BAA6B;IACtD,oBAAoB,EAAE,0BAA0B;IAChD,mBAAmB,EAAE,yBAAyB;IAE9C,4BAA4B;IAC5B,oBAAoB,EAAE,0BAA0B;IAChD,mBAAmB,EAAE,yBAAyB;IAC9C,0BAA0B,EAAE,gCAAgC;IAC5D,oBAAoB,EAAE,0BAA0B;IAChD,uBAAuB,EAAE,6BAA6B;IACtD,mBAAmB,EAAE,yBAAyB;CACtC,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAKH,yBAAyB;AACZ,QAAA,oBAAoB,GAAG;IAClC,oBAAoB;IACpB,kBAAkB,EAAE,kBAAkB;IACtC,eAAe,EAAE,qBAAqB;IACtC,sBAAsB,EAAE,4BAA4B;IACpD,gBAAgB,EAAE,sBAAsB;IACxC,oBAAoB,EAAE,0BAA0B;IAChD,yBAAyB,EAAE,qBAAqB;IAChD,4BAA4B,EAAE,wBAAwB;IAEtD,mBAAmB;IACnB,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,wBAAwB;IAC5C,uBAAuB,EAAE,6BAA6B;IACtD,oBAAoB,EAAE,0BAA0B;IAChD,mBAAmB,EAAE,yBAAyB;IAE9C,4BAA4B;IAC5B,wBAAwB,EAAE,8BAA8B;IACxD,6BAA6B,EAAE,mCAAmC;IAElE,8BAA8B;IAC9B,mBAAmB,EAAE,yBAAyB;IAC9C,qBAAqB,EAAE,2BAA2B;IAClD,kBAAkB,EAAE,wBAAwB;IAC5C,oBAAoB,EAAE,0BAA0B;IAChD,oBAAoB,EAAE,0BAA0B;IAChD,iBAAiB,EAAE,uBAAuB;IAE1C,4BAA4B;IAC5B,oBAAoB,EAAE,0BAA0B;IAChD,mBAAmB,EAAE,yBAAyB;IAC9C,0BAA0B,EAAE,gCAAgC;IAC5D,oBAAoB,EAAE,0BAA0B;IAChD,uBAAuB,EAAE,6BAA6B;IACtD,mBAAmB,EAAE,yBAAyB;IAE9C,yBAAyB;IACzB,kBAAkB,EAAE,wBAAwB;IAE5C,uBAAuB;IACvB,qBAAqB,EAAE,2BAA2B;IAElD,+EAA+E;IAC/E,2BAA2B,EAAE,iCAAiC;IAC9D,0BAA0B,EAAE,gCAAgC;IAC5D,uBAAuB,EAAE,6BAA6B;IACtD,yBAAyB,EAAE,+BAA+B;CAClD,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * ACP Readiness Checker
3
+ *
4
+ * Checks how ready a merchant's site is for the Agentic Commerce Protocol (ACP).
5
+ * Unlike UCP validation (which checks a specific /.well-known/ucp file), ACP readiness
6
+ * is assessed by analyzing the merchant's site for:
7
+ *
8
+ * 1. Platform (Shopify/Etsy = built-in ChatGPT Shopping integration)
9
+ * 2. Payment infrastructure (Stripe detection = easier ACP integration via SPT)
10
+ * 3. Policy pages (required in ACP checkout session `links` array: terms, privacy, return)
11
+ * 4. Security (HTTPS with TLS 1.2+ required by ACP spec for all endpoints)
12
+ *
13
+ * Note: ACP is a server-to-server REST API (5 checkout endpoints + delegate_payment).
14
+ * We cannot validate the actual API without merchant credentials, so this checker
15
+ * assesses surface-level readiness signals from the merchant's public site.
16
+ *
17
+ * Note: ACP product data comes from merchant-submitted feeds (CSV/JSON),
18
+ * not crawled homepage markup. Product data scoring is handled by the Feed Analyzer.
19
+ *
20
+ * Based on ACP spec v2026-01-30:
21
+ * https://github.com/agentic-commerce-protocol/agentic-commerce-protocol
22
+ */
23
+ import type { AcpReadinessReport } from '../../types/acp-validation.js';
24
+ export interface AcpCheckOptions {
25
+ timeoutMs?: number;
26
+ }
27
+ /**
28
+ * Check a domain's ACP readiness
29
+ */
30
+ export declare function checkAcpReadiness(domain: string, options?: AcpCheckOptions): Promise<AcpReadinessReport>;
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/validator/acp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAKnB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAyK7B"}