@adcp/client 4.19.0 → 4.21.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 (81) hide show
  1. package/dist/lib/index.d.ts +5 -4
  2. package/dist/lib/index.d.ts.map +1 -1
  3. package/dist/lib/index.js +12 -5
  4. package/dist/lib/index.js.map +1 -1
  5. package/dist/lib/registry/cursor-store.d.ts +19 -0
  6. package/dist/lib/registry/cursor-store.d.ts.map +1 -0
  7. package/dist/lib/registry/cursor-store.js +44 -0
  8. package/dist/lib/registry/cursor-store.js.map +1 -0
  9. package/dist/lib/registry/index.d.ts +99 -4
  10. package/dist/lib/registry/index.d.ts.map +1 -1
  11. package/dist/lib/registry/index.js +281 -3
  12. package/dist/lib/registry/index.js.map +1 -1
  13. package/dist/lib/registry/property-registry.d.ts +57 -0
  14. package/dist/lib/registry/property-registry.d.ts.map +1 -0
  15. package/dist/lib/registry/property-registry.js +92 -0
  16. package/dist/lib/registry/property-registry.js.map +1 -0
  17. package/dist/lib/registry/sync.d.ts +130 -0
  18. package/dist/lib/registry/sync.d.ts.map +1 -0
  19. package/dist/lib/registry/sync.js +359 -0
  20. package/dist/lib/registry/sync.js.map +1 -0
  21. package/dist/lib/registry/types.d.ts +40 -1
  22. package/dist/lib/registry/types.d.ts.map +1 -1
  23. package/dist/lib/registry/types.generated.d.ts +369 -0
  24. package/dist/lib/registry/types.generated.d.ts.map +1 -1
  25. package/dist/lib/registry/types.generated.js +1 -1
  26. package/dist/lib/testing/agent-tester.d.ts +1 -1
  27. package/dist/lib/testing/agent-tester.d.ts.map +1 -1
  28. package/dist/lib/testing/agent-tester.js +10 -1
  29. package/dist/lib/testing/agent-tester.js.map +1 -1
  30. package/dist/lib/testing/client.d.ts.map +1 -1
  31. package/dist/lib/testing/client.js +2 -0
  32. package/dist/lib/testing/client.js.map +1 -1
  33. package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
  34. package/dist/lib/testing/compliance/comply.js +110 -140
  35. package/dist/lib/testing/compliance/comply.js.map +1 -1
  36. package/dist/lib/testing/index.d.ts +1 -1
  37. package/dist/lib/testing/index.d.ts.map +1 -1
  38. package/dist/lib/testing/index.js +4 -1
  39. package/dist/lib/testing/index.js.map +1 -1
  40. package/dist/lib/testing/orchestrator.d.ts.map +1 -1
  41. package/dist/lib/testing/orchestrator.js +3 -0
  42. package/dist/lib/testing/orchestrator.js.map +1 -1
  43. package/dist/lib/testing/scenarios/brand-rights.d.ts +23 -0
  44. package/dist/lib/testing/scenarios/brand-rights.d.ts.map +1 -0
  45. package/dist/lib/testing/scenarios/brand-rights.js +144 -0
  46. package/dist/lib/testing/scenarios/brand-rights.js.map +1 -0
  47. package/dist/lib/testing/scenarios/capabilities.d.ts.map +1 -1
  48. package/dist/lib/testing/scenarios/capabilities.js +11 -2
  49. package/dist/lib/testing/scenarios/capabilities.js.map +1 -1
  50. package/dist/lib/testing/scenarios/governance.d.ts.map +1 -1
  51. package/dist/lib/testing/scenarios/governance.js +5 -0
  52. package/dist/lib/testing/scenarios/governance.js.map +1 -1
  53. package/dist/lib/testing/scenarios/index.d.ts +2 -0
  54. package/dist/lib/testing/scenarios/index.d.ts.map +1 -1
  55. package/dist/lib/testing/scenarios/index.js +10 -2
  56. package/dist/lib/testing/scenarios/index.js.map +1 -1
  57. package/dist/lib/testing/scenarios/media-buy.d.ts.map +1 -1
  58. package/dist/lib/testing/scenarios/media-buy.js +22 -3
  59. package/dist/lib/testing/scenarios/media-buy.js.map +1 -1
  60. package/dist/lib/testing/scenarios/trusted-match.d.ts +22 -0
  61. package/dist/lib/testing/scenarios/trusted-match.d.ts.map +1 -0
  62. package/dist/lib/testing/scenarios/trusted-match.js +128 -0
  63. package/dist/lib/testing/scenarios/trusted-match.js.map +1 -0
  64. package/dist/lib/testing/types.d.ts +2 -1
  65. package/dist/lib/testing/types.d.ts.map +1 -1
  66. package/dist/lib/types/core.generated.d.ts +34 -21
  67. package/dist/lib/types/core.generated.d.ts.map +1 -1
  68. package/dist/lib/types/core.generated.js +1 -1
  69. package/dist/lib/types/schemas.generated.d.ts +801 -624
  70. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  71. package/dist/lib/types/schemas.generated.js +99 -83
  72. package/dist/lib/types/schemas.generated.js.map +1 -1
  73. package/dist/lib/types/tools.generated.d.ts +100 -46
  74. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  75. package/dist/lib/utils/capabilities.d.ts +4 -1
  76. package/dist/lib/utils/capabilities.d.ts.map +1 -1
  77. package/dist/lib/utils/capabilities.js +25 -1
  78. package/dist/lib/utils/capabilities.js.map +1 -1
  79. package/dist/lib/version.d.ts +3 -3
  80. package/dist/lib/version.js +3 -3
  81. package/package.json +1 -1
@@ -773,6 +773,70 @@ export interface paths {
773
773
  patch?: never;
774
774
  trace?: never;
775
775
  };
776
+ "/api/registry/feed": {
777
+ parameters: {
778
+ query?: never;
779
+ header?: never;
780
+ path?: never;
781
+ cookie?: never;
782
+ };
783
+ /**
784
+ * Registry change feed
785
+ * @description Poll a cursor-based feed of registry changes. Events are ordered by UUID v7 event_id for monotonic cursor progression. The feed retains events for 90 days.
786
+ *
787
+ * Type filtering supports glob patterns: `property.*` matches `property.created`, `property.updated`, etc.
788
+ */
789
+ get: operations["getRegistryFeed"];
790
+ put?: never;
791
+ post?: never;
792
+ delete?: never;
793
+ options?: never;
794
+ head?: never;
795
+ patch?: never;
796
+ trace?: never;
797
+ };
798
+ "/api/registry/agents/search": {
799
+ parameters: {
800
+ query?: never;
801
+ header?: never;
802
+ path?: never;
803
+ cookie?: never;
804
+ };
805
+ /**
806
+ * Search agent inventory profiles
807
+ * @description Search agents by inventory profile — channels, markets, content categories, property types, and more. Filters use AND across dimensions and OR within a dimension. Results are ranked by relevance score.
808
+ */
809
+ get: operations["searchAgentProfiles"];
810
+ put?: never;
811
+ post?: never;
812
+ delete?: never;
813
+ options?: never;
814
+ head?: never;
815
+ patch?: never;
816
+ trace?: never;
817
+ };
818
+ "/api/registry/crawl-request": {
819
+ parameters: {
820
+ query?: never;
821
+ header?: never;
822
+ path?: never;
823
+ cookie?: never;
824
+ };
825
+ get?: never;
826
+ put?: never;
827
+ /**
828
+ * Request domain re-crawl
829
+ * @description Trigger an immediate re-crawl of a publisher domain after updating adagents.json. The crawl runs asynchronously — returns 202 immediately.
830
+ *
831
+ * **Rate limits:** 5 minutes per domain, 30 requests per user per hour.
832
+ */
833
+ post: operations["requestCrawl"];
834
+ delete?: never;
835
+ options?: never;
836
+ head?: never;
837
+ patch?: never;
838
+ trace?: never;
839
+ };
776
840
  }
777
841
  export type webhooks = Record<string, never>;
778
842
  export interface components {
@@ -934,6 +998,7 @@ export interface components {
934
998
  health?: components["schemas"]["AgentHealth"];
935
999
  stats?: components["schemas"]["AgentStats"];
936
1000
  capabilities?: components["schemas"]["AgentCapabilities"];
1001
+ compliance?: components["schemas"]["AgentCompliance"];
937
1002
  publisher_domains?: string[];
938
1003
  property_summary?: components["schemas"]["PropertySummary"];
939
1004
  };
@@ -972,6 +1037,24 @@ export interface components {
972
1037
  can_preview: boolean;
973
1038
  };
974
1039
  };
1040
+ AgentCompliance: {
1041
+ /** @enum {string} */
1042
+ status: "passing" | "degraded" | "failing" | "unknown";
1043
+ /** @enum {string} */
1044
+ lifecycle_stage: "development" | "testing" | "production" | "deprecated";
1045
+ /**
1046
+ * @example {
1047
+ * "core": "pass",
1048
+ * "products": "fail"
1049
+ * }
1050
+ */
1051
+ tracks: {
1052
+ [key: string]: string;
1053
+ };
1054
+ streak_days: number;
1055
+ last_checked_at: string | null;
1056
+ headline: string | null;
1057
+ };
975
1058
  PropertySummary: {
976
1059
  total_count: number;
977
1060
  count_by_type: {
@@ -1924,6 +2007,7 @@ export interface operations {
1924
2007
  health?: "true";
1925
2008
  capabilities?: "true";
1926
2009
  properties?: "true";
2010
+ compliance?: "true";
1927
2011
  };
1928
2012
  header?: never;
1929
2013
  path?: never;
@@ -2748,6 +2832,233 @@ export interface operations {
2748
2832
  };
2749
2833
  };
2750
2834
  };
2835
+ getRegistryFeed: {
2836
+ parameters: {
2837
+ query?: {
2838
+ /** @description Resume after this event ID */
2839
+ cursor?: string;
2840
+ /** @description Comma-separated event type filters with glob support (e.g. property.*) */
2841
+ types?: string;
2842
+ /** @description Max events per page (default 100, max 10,000) */
2843
+ limit?: number;
2844
+ };
2845
+ header?: never;
2846
+ path?: never;
2847
+ cookie?: never;
2848
+ };
2849
+ requestBody?: never;
2850
+ responses: {
2851
+ /** @description Feed page */
2852
+ 200: {
2853
+ headers: {
2854
+ [name: string]: unknown;
2855
+ };
2856
+ content: {
2857
+ "application/json": {
2858
+ events: {
2859
+ /** Format: uuid */
2860
+ event_id: string;
2861
+ /** @example property.created */
2862
+ event_type: string;
2863
+ /** @example property */
2864
+ entity_type: string;
2865
+ entity_id: string;
2866
+ payload: {
2867
+ [key: string]: unknown;
2868
+ };
2869
+ actor: string;
2870
+ /** Format: date-time */
2871
+ created_at: string;
2872
+ }[];
2873
+ /**
2874
+ * Format: uuid
2875
+ * @description Pass as cursor in the next request to continue polling
2876
+ */
2877
+ cursor: string | null;
2878
+ has_more: boolean;
2879
+ };
2880
+ };
2881
+ };
2882
+ /** @description Invalid cursor format or type filter */
2883
+ 400: {
2884
+ headers: {
2885
+ [name: string]: unknown;
2886
+ };
2887
+ content: {
2888
+ "application/json": components["schemas"]["Error"];
2889
+ };
2890
+ };
2891
+ /** @description Authentication required */
2892
+ 401: {
2893
+ headers: {
2894
+ [name: string]: unknown;
2895
+ };
2896
+ content: {
2897
+ "application/json": components["schemas"]["Error"];
2898
+ };
2899
+ };
2900
+ /** @description Cursor expired (older than 90-day retention window) */
2901
+ 410: {
2902
+ headers: {
2903
+ [name: string]: unknown;
2904
+ };
2905
+ content: {
2906
+ "application/json": {
2907
+ /** @enum {string} */
2908
+ error: "cursor_expired";
2909
+ message: string;
2910
+ };
2911
+ };
2912
+ };
2913
+ };
2914
+ };
2915
+ searchAgentProfiles: {
2916
+ parameters: {
2917
+ query?: {
2918
+ /** @description Comma-separated channel filter */
2919
+ channels?: string;
2920
+ /** @description Comma-separated property type filter */
2921
+ property_types?: string;
2922
+ /** @description Comma-separated market/country code filter */
2923
+ markets?: string;
2924
+ /** @description Comma-separated IAB content category filter */
2925
+ categories?: string;
2926
+ /** @description Comma-separated tag filter */
2927
+ tags?: string;
2928
+ /** @description Comma-separated delivery type filter */
2929
+ delivery_types?: string;
2930
+ /** @description Require TMP support */
2931
+ has_tmp?: "true" | "false";
2932
+ /** @description Minimum number of properties in inventory */
2933
+ min_properties?: number | null;
2934
+ /** @description Pagination cursor from a previous response */
2935
+ cursor?: string;
2936
+ /** @description Max results per page (default 50, max 200) */
2937
+ limit?: number;
2938
+ };
2939
+ header?: never;
2940
+ path?: never;
2941
+ cookie?: never;
2942
+ };
2943
+ requestBody?: never;
2944
+ responses: {
2945
+ /** @description Search results ranked by relevance */
2946
+ 200: {
2947
+ headers: {
2948
+ [name: string]: unknown;
2949
+ };
2950
+ content: {
2951
+ "application/json": {
2952
+ results: {
2953
+ /** Format: uri */
2954
+ agent_url: string;
2955
+ channels: string[];
2956
+ property_types: string[];
2957
+ markets: string[];
2958
+ categories: string[];
2959
+ tags: string[];
2960
+ delivery_types: string[];
2961
+ /** @description Creative format identifiers supported by this agent */
2962
+ format_ids: unknown[];
2963
+ property_count: number;
2964
+ publisher_count: number;
2965
+ has_tmp: boolean;
2966
+ category_taxonomy: string | null;
2967
+ relevance_score: number;
2968
+ matched_filters: string[];
2969
+ /** Format: date-time */
2970
+ updated_at: string;
2971
+ }[];
2972
+ cursor: string | null;
2973
+ has_more: boolean;
2974
+ };
2975
+ };
2976
+ };
2977
+ /** @description Invalid cursor or parameter */
2978
+ 400: {
2979
+ headers: {
2980
+ [name: string]: unknown;
2981
+ };
2982
+ content: {
2983
+ "application/json": components["schemas"]["Error"];
2984
+ };
2985
+ };
2986
+ /** @description Authentication required */
2987
+ 401: {
2988
+ headers: {
2989
+ [name: string]: unknown;
2990
+ };
2991
+ content: {
2992
+ "application/json": components["schemas"]["Error"];
2993
+ };
2994
+ };
2995
+ };
2996
+ };
2997
+ requestCrawl: {
2998
+ parameters: {
2999
+ query?: never;
3000
+ header?: never;
3001
+ path?: never;
3002
+ cookie?: never;
3003
+ };
3004
+ requestBody?: {
3005
+ content: {
3006
+ "application/json": {
3007
+ /**
3008
+ * @description Publisher domain to re-crawl
3009
+ * @example examplepub.com
3010
+ */
3011
+ domain: string;
3012
+ };
3013
+ };
3014
+ };
3015
+ responses: {
3016
+ /** @description Crawl request accepted */
3017
+ 202: {
3018
+ headers: {
3019
+ [name: string]: unknown;
3020
+ };
3021
+ content: {
3022
+ "application/json": {
3023
+ /** @enum {string} */
3024
+ message: "Crawl request accepted";
3025
+ domain: string;
3026
+ };
3027
+ };
3028
+ };
3029
+ /** @description Invalid domain format, private IP, or unresolvable domain */
3030
+ 400: {
3031
+ headers: {
3032
+ [name: string]: unknown;
3033
+ };
3034
+ content: {
3035
+ "application/json": components["schemas"]["Error"];
3036
+ };
3037
+ };
3038
+ /** @description Authentication required */
3039
+ 401: {
3040
+ headers: {
3041
+ [name: string]: unknown;
3042
+ };
3043
+ content: {
3044
+ "application/json": components["schemas"]["Error"];
3045
+ };
3046
+ };
3047
+ /** @description Rate limit exceeded */
3048
+ 429: {
3049
+ headers: {
3050
+ [name: string]: unknown;
3051
+ };
3052
+ content: {
3053
+ "application/json": {
3054
+ error: string;
3055
+ /** @description Seconds to wait before retrying */
3056
+ retry_after: number;
3057
+ };
3058
+ };
3059
+ };
3060
+ };
3061
+ };
2751
3062
  }
2752
3063
  export type ResolvedBrand = components['schemas']['ResolvedBrand'];
2753
3064
  export type LocalizedName = components['schemas']['LocalizedName'];
@@ -2765,4 +3076,62 @@ export type AgentCapabilities = components['schemas']['AgentCapabilities'];
2765
3076
  export type PropertySummary = components['schemas']['PropertySummary'];
2766
3077
  export type FederatedPublisher = components['schemas']['FederatedPublisher'];
2767
3078
  export type DomainLookupResult = components['schemas']['DomainLookupResult'];
3079
+ export type BrandActivity = components['schemas']['BrandActivity'];
3080
+ export type PropertyActivity = components['schemas']['PropertyActivity'];
3081
+ export type PolicySummary = components['schemas']['PolicySummary'];
3082
+ export type Policy = components['schemas']['Policy'];
3083
+ export type PolicyHistory = components['schemas']['PolicyHistory'];
3084
+ /** A single event from the registry feed (inline in getRegistryFeed 200 response). */
3085
+ export type CatalogEvent = operations['getRegistryFeed']['responses']['200']['content']['application/json']['events'][number];
3086
+ /** Full response from GET /api/registry/feed. Includes optional cursor_expired for 410 handling. */
3087
+ export type FeedResponse = operations['getRegistryFeed']['responses']['200']['content']['application/json'] & {
3088
+ /** Set to true by the client when the server returns 410 (cursor expired). */
3089
+ cursor_expired?: boolean;
3090
+ };
3091
+ /** Raw search result from the searchAgentProfiles operation. */
3092
+ export type AgentProfileSearchResult = operations['searchAgentProfiles']['responses']['200']['content']['application/json']['results'][number];
3093
+ /** Full response from GET /api/registry/agents/search (raw operation type). */
3094
+ export type AgentProfileSearchResponse = operations['searchAgentProfiles']['responses']['200']['content']['application/json'];
3095
+ /** Response from POST /api/registry/crawl-request (202). */
3096
+ export type CrawlRequestResponse = operations['requestCrawl']['responses']['202']['content']['application/json'];
3097
+ /** Inventory profile for an agent (channels, markets, categories, etc.). */
3098
+ export type AgentInventoryProfile = {
3099
+ channels: string[];
3100
+ property_types: string[];
3101
+ markets: string[];
3102
+ categories: string[];
3103
+ category_taxonomy: string | null;
3104
+ tags: string[];
3105
+ delivery_types: string[];
3106
+ format_ids?: unknown[];
3107
+ property_count: number;
3108
+ publisher_count: number;
3109
+ has_tmp: boolean;
3110
+ };
3111
+ /** An agent search result in the client-facing shape used by RegistrySync. */
3112
+ export type AgentSearchResult = {
3113
+ url: string;
3114
+ name: string;
3115
+ type: string;
3116
+ inventory_profile: AgentInventoryProfile;
3117
+ match: {
3118
+ score: number;
3119
+ matched_filters: string[];
3120
+ };
3121
+ };
3122
+ /** Response shape for the searchAgents client method. */
3123
+ export type AgentSearchResponse = {
3124
+ results: AgentSearchResult[];
3125
+ cursor: string | null;
3126
+ has_more: boolean;
3127
+ };
3128
+ /** An authorization entry used by the sync module. Derived from authorization.granted event payloads. */
3129
+ export type AuthorizationEntry = {
3130
+ agent_url: string;
3131
+ publisher_domain: string;
3132
+ authorization_type: string;
3133
+ property_ids?: string[];
3134
+ effective_from?: string;
3135
+ effective_to?: string;
3136
+ };
2768
3137
  //# sourceMappingURL=types.generated.d.ts.map