@adcp/sdk 13.0.0-rc.13 → 13.0.0-rc.14

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 (73) hide show
  1. package/dist/lib/index.d.mts +2 -2
  2. package/dist/lib/index.d.ts +2 -2
  3. package/dist/lib/index.d.ts.map +1 -1
  4. package/dist/lib/index.js +6 -0
  5. package/dist/lib/index.js.map +1 -1
  6. package/dist/lib/index.mjs +6 -0
  7. package/dist/lib/index.mjs.map +1 -1
  8. package/dist/lib/protocols/transportDiagnostics.js +2 -1
  9. package/dist/lib/protocols/transportDiagnostics.js.map +1 -1
  10. package/dist/lib/protocols/transportDiagnostics.mjs +2 -1
  11. package/dist/lib/protocols/transportDiagnostics.mjs.map +1 -1
  12. package/dist/lib/registry/index.d.mts +17 -0
  13. package/dist/lib/registry/index.d.ts +17 -0
  14. package/dist/lib/registry/index.d.ts.map +1 -1
  15. package/dist/lib/registry/index.js +81 -7
  16. package/dist/lib/registry/index.js.map +1 -1
  17. package/dist/lib/registry/index.mjs +79 -7
  18. package/dist/lib/registry/index.mjs.map +1 -1
  19. package/dist/lib/registry/types.generated.d.mts +157 -7
  20. package/dist/lib/registry/types.generated.d.ts +157 -7
  21. package/dist/lib/registry/types.generated.d.ts.map +1 -1
  22. package/dist/lib/registry/types.generated.js.map +1 -1
  23. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  24. package/dist/lib/server/errors.d.mts +10 -2
  25. package/dist/lib/server/errors.d.ts +10 -2
  26. package/dist/lib/server/errors.d.ts.map +1 -1
  27. package/dist/lib/server/errors.js +9 -2
  28. package/dist/lib/server/errors.js.map +1 -1
  29. package/dist/lib/server/errors.mjs +9 -2
  30. package/dist/lib/server/errors.mjs.map +1 -1
  31. package/dist/lib/testing/compliance/comply.d.mts +6 -0
  32. package/dist/lib/testing/compliance/comply.d.ts +6 -0
  33. package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
  34. package/dist/lib/testing/compliance/comply.js +3 -0
  35. package/dist/lib/testing/compliance/comply.js.map +1 -1
  36. package/dist/lib/testing/compliance/comply.mjs +3 -0
  37. package/dist/lib/testing/compliance/comply.mjs.map +1 -1
  38. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  39. package/dist/lib/testing/storyboard/runner.js +31 -5
  40. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  41. package/dist/lib/testing/storyboard/runner.mjs +36 -6
  42. package/dist/lib/testing/storyboard/runner.mjs.map +1 -1
  43. package/dist/lib/testing/storyboard/types.d.mts +16 -5
  44. package/dist/lib/testing/storyboard/types.d.ts +16 -5
  45. package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
  46. package/dist/lib/testing/storyboard/types.js +1 -1
  47. package/dist/lib/testing/storyboard/types.js.map +1 -1
  48. package/dist/lib/testing/storyboard/types.mjs +1 -1
  49. package/dist/lib/testing/storyboard/types.mjs.map +1 -1
  50. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  51. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  52. package/dist/lib/v2/projection/augment-response.d.mts +16 -0
  53. package/dist/lib/v2/projection/augment-response.d.ts +16 -0
  54. package/dist/lib/v2/projection/augment-response.d.ts.map +1 -1
  55. package/dist/lib/v2/projection/augment-response.js +13 -4
  56. package/dist/lib/v2/projection/augment-response.js.map +1 -1
  57. package/dist/lib/v2/projection/augment-response.mjs +12 -4
  58. package/dist/lib/v2/projection/augment-response.mjs.map +1 -1
  59. package/dist/lib/v2/projection/index.d.mts +3 -1
  60. package/dist/lib/v2/projection/index.d.ts +3 -1
  61. package/dist/lib/v2/projection/index.d.ts.map +1 -1
  62. package/dist/lib/v2/projection/index.js +2 -0
  63. package/dist/lib/v2/projection/index.js.map +1 -1
  64. package/dist/lib/v2/projection/index.mjs +2 -0
  65. package/dist/lib/v2/projection/index.mjs.map +1 -1
  66. package/dist/lib/version.d.mts +3 -3
  67. package/dist/lib/version.d.ts +3 -3
  68. package/dist/lib/version.js +3 -3
  69. package/dist/lib/version.js.map +1 -1
  70. package/dist/lib/version.mjs +3 -3
  71. package/dist/lib/version.mjs.map +1 -1
  72. package/examples/error-compliant-server.ts +9 -3
  73. package/package.json +1 -1
@@ -1259,7 +1259,7 @@ export interface paths {
1259
1259
  put?: never;
1260
1260
  /**
1261
1261
  * Request domain re-crawl
1262
- * @description Trigger an immediate re-crawl of a publisher domain after updating adagents.json. The crawl runs asynchronously in the accepting process — returns 202 immediately. The response `crawl_request_id` correlates accepted, running, completed, skipped, and failed lifecycle logs; a 202 does not by itself mean the mirror write completed.
1262
+ * @description Persist a durable re-crawl request for a publisher domain after updating adagents.json. Returns 202 only after the request is committed to the queue. Use the returned `crawl_request_id` with the status endpoint to observe completion.
1263
1263
  *
1264
1264
  * **Rate limits:** 5 minutes per domain, 30 requests per user per hour.
1265
1265
  */
@@ -1270,6 +1270,26 @@ export interface paths {
1270
1270
  patch?: never;
1271
1271
  trace?: never;
1272
1272
  };
1273
+ "/api/registry/crawl-request/{crawlRequestId}": {
1274
+ parameters: {
1275
+ query?: never;
1276
+ header?: never;
1277
+ path?: never;
1278
+ cookie?: never;
1279
+ };
1280
+ /**
1281
+ * Get publisher crawl request status
1282
+ * @description Return the durable lifecycle for a publisher recrawl. Requesters may read their own requests; registry administrators may read any request.
1283
+ */
1284
+ get: operations["getCrawlRequest"];
1285
+ put?: never;
1286
+ post?: never;
1287
+ delete?: never;
1288
+ options?: never;
1289
+ head?: never;
1290
+ patch?: never;
1291
+ trace?: never;
1292
+ };
1273
1293
  "/api/registry/manager-revalidation-request": {
1274
1294
  parameters: {
1275
1295
  query?: never;
@@ -3802,9 +3822,7 @@ export interface components {
3802
3822
  exclusive?: boolean;
3803
3823
  effective_from?: string;
3804
3824
  effective_until?: string;
3805
- signing_keys?: {
3806
- [key: string]: unknown;
3807
- }[];
3825
+ signing_keys?: components["schemas"]["SigningKey"][] | null;
3808
3826
  evidence?: string;
3809
3827
  disputed?: boolean;
3810
3828
  created_by?: string | null;
@@ -3816,6 +3834,33 @@ export interface components {
3816
3834
  } & {
3817
3835
  [key: string]: unknown;
3818
3836
  };
3837
+ SigningKey: {
3838
+ /** @description Key identifier for selecting the correct signing key. */
3839
+ kid: string;
3840
+ /** @description JWK key type, such as 'OKP', 'EC', or 'RSA'. */
3841
+ kty: string;
3842
+ /** @description Expected signing algorithm for this key, such as 'EdDSA' or 'RS256'. */
3843
+ alg?: string;
3844
+ /** @description Optional JWK use value. Typically 'sig' for signing keys. */
3845
+ use?: string;
3846
+ /** @description Curve name for OKP or EC keys, such as 'Ed25519' or 'P-256'. */
3847
+ crv?: string;
3848
+ /** @description Base64url-encoded public key x coordinate or public key value for OKP keys. */
3849
+ x?: string;
3850
+ /** @description Base64url-encoded public key y coordinate for EC keys. */
3851
+ y?: string;
3852
+ /** @description Base64url-encoded RSA modulus. */
3853
+ n?: string;
3854
+ /** @description Base64url-encoded RSA public exponent. */
3855
+ e?: string;
3856
+ /**
3857
+ * Format: date-time
3858
+ * @description Optional revocation timestamp. When present, verifiers MUST reject any signature produced with this key whose signing epoch is at or after this timestamp. The key may continue to appear in the trust anchor during a grace period so caches that have not yet refreshed still find the key and can evaluate the revocation marker.
3859
+ */
3860
+ revoked_at?: string;
3861
+ } & {
3862
+ [key: string]: unknown;
3863
+ };
3819
3864
  PublisherEventPayload: {
3820
3865
  /** @description Publisher domain whose adagents.json was discovered/changed; the routing key for publisher.* events. */
3821
3866
  publisher_domain?: string;
@@ -5921,6 +5966,23 @@ export interface operations {
5921
5966
  };
5922
5967
  };
5923
5968
  };
5969
+ /** @description Publisher crawl is temporarily busy */
5970
+ 503: {
5971
+ headers: {
5972
+ /** @description Seconds to wait before retrying */
5973
+ "Retry-After": string;
5974
+ [name: string]: unknown;
5975
+ };
5976
+ content: {
5977
+ "application/json": {
5978
+ error: string;
5979
+ /** @enum {string} */
5980
+ code: "publisher_crawl_busy";
5981
+ /** @description Seconds to wait before retrying */
5982
+ retry_after: number;
5983
+ };
5984
+ };
5985
+ };
5924
5986
  };
5925
5987
  };
5926
5988
  forceBrandCrawl: {
@@ -7706,6 +7768,8 @@ export interface operations {
7706
7768
  created_at: string;
7707
7769
  /** Format: date-time */
7708
7770
  updated_at: string;
7771
+ /** @description Publisher-pinned JWK set (authorized_agents[*].signing_keys) from the source adagents.json. Consumers verifying inbound TMP signatures key on kid → JWK. Null when the publisher declared no keys; consumers fall back to the agent-hosted JWKS per spec R-2 (docs/governance/property/adagents.mdx). */
7772
+ signing_keys: components["schemas"]["SigningKey"][] | null;
7709
7773
  override_applied: boolean;
7710
7774
  override_reason: string | null;
7711
7775
  }[];
@@ -7902,7 +7966,7 @@ export interface operations {
7902
7966
  domain: string;
7903
7967
  /**
7904
7968
  * Format: uuid
7905
- * @description Correlation ID for crawl lifecycle logs; acceptance is not completion.
7969
+ * @description Durable request ID for lifecycle logs and status lookup; acceptance is not completion.
7906
7970
  */
7907
7971
  crawl_request_id: string;
7908
7972
  };
@@ -7939,16 +8003,102 @@ export interface operations {
7939
8003
  };
7940
8004
  };
7941
8005
  };
7942
- /** @description A full crawl is active; the request was not accepted */
8006
+ /** @description The durable crawl queue is temporarily unavailable; the request was not accepted */
8007
+ 503: {
8008
+ headers: {
8009
+ /** @description Seconds to wait before retrying */
8010
+ "Retry-After": string;
8011
+ [name: string]: unknown;
8012
+ };
8013
+ content: {
8014
+ "application/json": {
8015
+ error: string;
8016
+ /** @enum {string} */
8017
+ code: "crawl_queue_unavailable" | "crawl_queue_at_capacity";
8018
+ retry_after: number;
8019
+ };
8020
+ };
8021
+ };
8022
+ };
8023
+ };
8024
+ getCrawlRequest: {
8025
+ parameters: {
8026
+ query?: never;
8027
+ header?: never;
8028
+ path: {
8029
+ crawlRequestId: string;
8030
+ };
8031
+ cookie?: never;
8032
+ };
8033
+ requestBody?: never;
8034
+ responses: {
8035
+ /** @description Durable crawl request lifecycle */
8036
+ 200: {
8037
+ headers: {
8038
+ [name: string]: unknown;
8039
+ };
8040
+ content: {
8041
+ "application/json": {
8042
+ /** Format: uuid */
8043
+ crawl_request_id: string;
8044
+ domain: string;
8045
+ /** @enum {string} */
8046
+ status: "queued" | "running" | "deferred" | "retrying" | "completed" | "invalid" | "failed";
8047
+ attempts: number;
8048
+ max_attempts: number;
8049
+ /** Format: date-time */
8050
+ requested_at: string;
8051
+ /** Format: date-time */
8052
+ started_at: string | null;
8053
+ /** Format: date-time */
8054
+ last_attempted_at: string | null;
8055
+ /** Format: date-time */
8056
+ completed_at: string | null;
8057
+ /** Format: date-time */
8058
+ next_attempt_at: string | null;
8059
+ last_error_code: string | null;
8060
+ };
8061
+ };
8062
+ };
8063
+ /** @description Invalid crawl request ID */
8064
+ 400: {
8065
+ headers: {
8066
+ [name: string]: unknown;
8067
+ };
8068
+ content: {
8069
+ "application/json": components["schemas"]["Error"];
8070
+ };
8071
+ };
8072
+ /** @description Authentication required */
8073
+ 401: {
8074
+ headers: {
8075
+ [name: string]: unknown;
8076
+ };
8077
+ content: {
8078
+ "application/json": components["schemas"]["Error"];
8079
+ };
8080
+ };
8081
+ /** @description Crawl request not found */
8082
+ 404: {
8083
+ headers: {
8084
+ [name: string]: unknown;
8085
+ };
8086
+ content: {
8087
+ "application/json": components["schemas"]["Error"];
8088
+ };
8089
+ };
8090
+ /** @description Crawl status is temporarily unavailable */
7943
8091
  503: {
7944
8092
  headers: {
8093
+ /** @description Seconds to wait before retrying */
8094
+ "Retry-After": string;
7945
8095
  [name: string]: unknown;
7946
8096
  };
7947
8097
  content: {
7948
8098
  "application/json": {
7949
8099
  error: string;
7950
8100
  /** @enum {string} */
7951
- code: "crawl_temporarily_unavailable";
8101
+ code: "crawl_status_unavailable";
7952
8102
  retry_after: number;
7953
8103
  };
7954
8104
  };
@@ -1259,7 +1259,7 @@ export interface paths {
1259
1259
  put?: never;
1260
1260
  /**
1261
1261
  * Request domain re-crawl
1262
- * @description Trigger an immediate re-crawl of a publisher domain after updating adagents.json. The crawl runs asynchronously in the accepting process — returns 202 immediately. The response `crawl_request_id` correlates accepted, running, completed, skipped, and failed lifecycle logs; a 202 does not by itself mean the mirror write completed.
1262
+ * @description Persist a durable re-crawl request for a publisher domain after updating adagents.json. Returns 202 only after the request is committed to the queue. Use the returned `crawl_request_id` with the status endpoint to observe completion.
1263
1263
  *
1264
1264
  * **Rate limits:** 5 minutes per domain, 30 requests per user per hour.
1265
1265
  */
@@ -1270,6 +1270,26 @@ export interface paths {
1270
1270
  patch?: never;
1271
1271
  trace?: never;
1272
1272
  };
1273
+ "/api/registry/crawl-request/{crawlRequestId}": {
1274
+ parameters: {
1275
+ query?: never;
1276
+ header?: never;
1277
+ path?: never;
1278
+ cookie?: never;
1279
+ };
1280
+ /**
1281
+ * Get publisher crawl request status
1282
+ * @description Return the durable lifecycle for a publisher recrawl. Requesters may read their own requests; registry administrators may read any request.
1283
+ */
1284
+ get: operations["getCrawlRequest"];
1285
+ put?: never;
1286
+ post?: never;
1287
+ delete?: never;
1288
+ options?: never;
1289
+ head?: never;
1290
+ patch?: never;
1291
+ trace?: never;
1292
+ };
1273
1293
  "/api/registry/manager-revalidation-request": {
1274
1294
  parameters: {
1275
1295
  query?: never;
@@ -3802,9 +3822,7 @@ export interface components {
3802
3822
  exclusive?: boolean;
3803
3823
  effective_from?: string;
3804
3824
  effective_until?: string;
3805
- signing_keys?: {
3806
- [key: string]: unknown;
3807
- }[];
3825
+ signing_keys?: components["schemas"]["SigningKey"][] | null;
3808
3826
  evidence?: string;
3809
3827
  disputed?: boolean;
3810
3828
  created_by?: string | null;
@@ -3816,6 +3834,33 @@ export interface components {
3816
3834
  } & {
3817
3835
  [key: string]: unknown;
3818
3836
  };
3837
+ SigningKey: {
3838
+ /** @description Key identifier for selecting the correct signing key. */
3839
+ kid: string;
3840
+ /** @description JWK key type, such as 'OKP', 'EC', or 'RSA'. */
3841
+ kty: string;
3842
+ /** @description Expected signing algorithm for this key, such as 'EdDSA' or 'RS256'. */
3843
+ alg?: string;
3844
+ /** @description Optional JWK use value. Typically 'sig' for signing keys. */
3845
+ use?: string;
3846
+ /** @description Curve name for OKP or EC keys, such as 'Ed25519' or 'P-256'. */
3847
+ crv?: string;
3848
+ /** @description Base64url-encoded public key x coordinate or public key value for OKP keys. */
3849
+ x?: string;
3850
+ /** @description Base64url-encoded public key y coordinate for EC keys. */
3851
+ y?: string;
3852
+ /** @description Base64url-encoded RSA modulus. */
3853
+ n?: string;
3854
+ /** @description Base64url-encoded RSA public exponent. */
3855
+ e?: string;
3856
+ /**
3857
+ * Format: date-time
3858
+ * @description Optional revocation timestamp. When present, verifiers MUST reject any signature produced with this key whose signing epoch is at or after this timestamp. The key may continue to appear in the trust anchor during a grace period so caches that have not yet refreshed still find the key and can evaluate the revocation marker.
3859
+ */
3860
+ revoked_at?: string;
3861
+ } & {
3862
+ [key: string]: unknown;
3863
+ };
3819
3864
  PublisherEventPayload: {
3820
3865
  /** @description Publisher domain whose adagents.json was discovered/changed; the routing key for publisher.* events. */
3821
3866
  publisher_domain?: string;
@@ -5921,6 +5966,23 @@ export interface operations {
5921
5966
  };
5922
5967
  };
5923
5968
  };
5969
+ /** @description Publisher crawl is temporarily busy */
5970
+ 503: {
5971
+ headers: {
5972
+ /** @description Seconds to wait before retrying */
5973
+ "Retry-After": string;
5974
+ [name: string]: unknown;
5975
+ };
5976
+ content: {
5977
+ "application/json": {
5978
+ error: string;
5979
+ /** @enum {string} */
5980
+ code: "publisher_crawl_busy";
5981
+ /** @description Seconds to wait before retrying */
5982
+ retry_after: number;
5983
+ };
5984
+ };
5985
+ };
5924
5986
  };
5925
5987
  };
5926
5988
  forceBrandCrawl: {
@@ -7706,6 +7768,8 @@ export interface operations {
7706
7768
  created_at: string;
7707
7769
  /** Format: date-time */
7708
7770
  updated_at: string;
7771
+ /** @description Publisher-pinned JWK set (authorized_agents[*].signing_keys) from the source adagents.json. Consumers verifying inbound TMP signatures key on kid → JWK. Null when the publisher declared no keys; consumers fall back to the agent-hosted JWKS per spec R-2 (docs/governance/property/adagents.mdx). */
7772
+ signing_keys: components["schemas"]["SigningKey"][] | null;
7709
7773
  override_applied: boolean;
7710
7774
  override_reason: string | null;
7711
7775
  }[];
@@ -7902,7 +7966,7 @@ export interface operations {
7902
7966
  domain: string;
7903
7967
  /**
7904
7968
  * Format: uuid
7905
- * @description Correlation ID for crawl lifecycle logs; acceptance is not completion.
7969
+ * @description Durable request ID for lifecycle logs and status lookup; acceptance is not completion.
7906
7970
  */
7907
7971
  crawl_request_id: string;
7908
7972
  };
@@ -7939,16 +8003,102 @@ export interface operations {
7939
8003
  };
7940
8004
  };
7941
8005
  };
7942
- /** @description A full crawl is active; the request was not accepted */
8006
+ /** @description The durable crawl queue is temporarily unavailable; the request was not accepted */
8007
+ 503: {
8008
+ headers: {
8009
+ /** @description Seconds to wait before retrying */
8010
+ "Retry-After": string;
8011
+ [name: string]: unknown;
8012
+ };
8013
+ content: {
8014
+ "application/json": {
8015
+ error: string;
8016
+ /** @enum {string} */
8017
+ code: "crawl_queue_unavailable" | "crawl_queue_at_capacity";
8018
+ retry_after: number;
8019
+ };
8020
+ };
8021
+ };
8022
+ };
8023
+ };
8024
+ getCrawlRequest: {
8025
+ parameters: {
8026
+ query?: never;
8027
+ header?: never;
8028
+ path: {
8029
+ crawlRequestId: string;
8030
+ };
8031
+ cookie?: never;
8032
+ };
8033
+ requestBody?: never;
8034
+ responses: {
8035
+ /** @description Durable crawl request lifecycle */
8036
+ 200: {
8037
+ headers: {
8038
+ [name: string]: unknown;
8039
+ };
8040
+ content: {
8041
+ "application/json": {
8042
+ /** Format: uuid */
8043
+ crawl_request_id: string;
8044
+ domain: string;
8045
+ /** @enum {string} */
8046
+ status: "queued" | "running" | "deferred" | "retrying" | "completed" | "invalid" | "failed";
8047
+ attempts: number;
8048
+ max_attempts: number;
8049
+ /** Format: date-time */
8050
+ requested_at: string;
8051
+ /** Format: date-time */
8052
+ started_at: string | null;
8053
+ /** Format: date-time */
8054
+ last_attempted_at: string | null;
8055
+ /** Format: date-time */
8056
+ completed_at: string | null;
8057
+ /** Format: date-time */
8058
+ next_attempt_at: string | null;
8059
+ last_error_code: string | null;
8060
+ };
8061
+ };
8062
+ };
8063
+ /** @description Invalid crawl request ID */
8064
+ 400: {
8065
+ headers: {
8066
+ [name: string]: unknown;
8067
+ };
8068
+ content: {
8069
+ "application/json": components["schemas"]["Error"];
8070
+ };
8071
+ };
8072
+ /** @description Authentication required */
8073
+ 401: {
8074
+ headers: {
8075
+ [name: string]: unknown;
8076
+ };
8077
+ content: {
8078
+ "application/json": components["schemas"]["Error"];
8079
+ };
8080
+ };
8081
+ /** @description Crawl request not found */
8082
+ 404: {
8083
+ headers: {
8084
+ [name: string]: unknown;
8085
+ };
8086
+ content: {
8087
+ "application/json": components["schemas"]["Error"];
8088
+ };
8089
+ };
8090
+ /** @description Crawl status is temporarily unavailable */
7943
8091
  503: {
7944
8092
  headers: {
8093
+ /** @description Seconds to wait before retrying */
8094
+ "Retry-After": string;
7945
8095
  [name: string]: unknown;
7946
8096
  };
7947
8097
  content: {
7948
8098
  "application/json": {
7949
8099
  error: string;
7950
8100
  /** @enum {string} */
7951
- code: "crawl_temporarily_unavailable";
8101
+ code: "crawl_status_unavailable";
7952
8102
  retry_after: number;
7953
8103
  };
7954
8104
  };