@greatwait/contracts 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/attempt-diagnostics.d.ts +1 -1
  2. package/dist/attempt-diagnostics.js +13 -1
  3. package/dist/attempt-search.d.ts +2 -0
  4. package/dist/billing.d.ts +46 -0
  5. package/dist/billing.js +29 -0
  6. package/dist/callback-safety.js +5 -1
  7. package/dist/configuration.d.ts +2 -2
  8. package/dist/configuration.js +6 -3
  9. package/dist/delivery.d.ts +12 -1
  10. package/dist/delivery.js +1 -0
  11. package/dist/effective-limits.d.ts +4 -4
  12. package/dist/endpoints.d.ts +29 -0
  13. package/dist/endpoints.js +32 -1
  14. package/dist/forecast.d.ts +2 -2
  15. package/dist/http-request.d.ts +12 -2
  16. package/dist/http-request.js +31 -1
  17. package/dist/index.d.ts +8 -7
  18. package/dist/index.js +8 -7
  19. package/dist/mcp.js +1 -0
  20. package/dist/operational-config.d.ts +174 -22
  21. package/dist/operational-config.js +207 -74
  22. package/dist/operations.d.ts +334 -52
  23. package/dist/operations.js +195 -34
  24. package/dist/project-notifications.d.ts +35 -9
  25. package/dist/project-notifications.js +43 -12
  26. package/dist/protocol.d.ts +28 -0
  27. package/dist/protocol.js +23 -0
  28. package/dist/scheduling-records.d.ts +106 -16
  29. package/dist/scheduling-records.js +36 -12
  30. package/dist/scheduling.d.ts +155 -43
  31. package/dist/scheduling.js +188 -50
  32. package/dist/service-mode.d.ts +88 -0
  33. package/dist/service-mode.js +130 -0
  34. package/dist/tenancy.d.ts +54 -30
  35. package/dist/tenancy.js +35 -17
  36. package/dist/timing.d.ts +39 -0
  37. package/dist/timing.js +51 -0
  38. package/dist/zod-values.d.ts +1 -1
  39. package/dist/zod-values.js +1 -1
  40. package/dist/zod.d.ts +1 -1
  41. package/dist/zod.js +1 -1
  42. package/generated/v1/examples/billing.noticesdismiss.request.json +3 -0
  43. package/generated/v1/examples/billing.noticesdismiss.response.json +6 -0
  44. package/generated/v1/examples/billing.reconcile.response.json +12 -0
  45. package/generated/v1/examples/billing.summary.response.json +12 -0
  46. package/generated/v1/examples/executions.list.response.json +1 -0
  47. package/generated/v1/examples/limits.read.response.json +1 -1
  48. package/generated/v1/examples/projectnotifications.rotateSigningKey.response.json +1 -0
  49. package/generated/v1/examples/projects.list.response.json +0 -6
  50. package/generated/v1/examples/projects.read.response.json +14 -0
  51. package/generated/v1/examples/schedules.list.response.json +1 -3
  52. package/generated/v1/examples/schedules.summary.response.json +174 -0
  53. package/generated/v1/examples/timing.summary.response.json +33 -1
  54. package/generated/v1/manifest.json +79 -2
  55. package/generated/v1/openapi.json +4084 -2023
  56. package/generated/v1/policy-matrix.json +22 -1
  57. package/generated/v1/schemas/attempts.list.response.json +10 -0
  58. package/generated/v1/schemas/attempts.read.response.json +10 -0
  59. package/generated/v1/schemas/attempts.search.response.json +4 -0
  60. package/generated/v1/schemas/billing.notices.query.json +4 -0
  61. package/generated/v1/schemas/billing.noticesdismiss.request.json +12 -0
  62. package/generated/v1/schemas/billing.noticesdismiss.response.json +22 -0
  63. package/generated/v1/schemas/billing.reconcile.response.json +43 -0
  64. package/generated/v1/schemas/billing.summary.response.json +43 -0
  65. package/generated/v1/schemas/endpoints.list.query.json +15 -0
  66. package/generated/v1/schemas/executions.list.response.json +4 -0
  67. package/generated/v1/schemas/occurrences.list.response.json +4 -0
  68. package/generated/v1/schemas/occurrences.read.response.json +4 -0
  69. package/generated/v1/schemas/occurrences.redeliver.response.json +10 -0
  70. package/generated/v1/schemas/projectnotifications.read.response.json +4 -0
  71. package/generated/v1/schemas/projectnotifications.rotateSigningKey.response.json +4 -0
  72. package/generated/v1/schemas/projectnotifications.update.request.json +41 -17
  73. package/generated/v1/schemas/projectnotifications.update.response.json +4 -0
  74. package/generated/v1/schemas/projects.list.response.json +0 -27
  75. package/generated/v1/schemas/projects.read.response-headers.json +11 -0
  76. package/generated/v1/schemas/projects.read.response.json +79 -0
  77. package/generated/v1/schemas/schedules.archive.response.json +8 -0
  78. package/generated/v1/schemas/schedules.cancel.response.json +8 -0
  79. package/generated/v1/schemas/schedules.create.request.json +1 -1
  80. package/generated/v1/schemas/schedules.create.response.json +8 -0
  81. package/generated/v1/schemas/schedules.list.query.json +6 -0
  82. package/generated/v1/schemas/schedules.list.response.json +4 -0
  83. package/generated/v1/schemas/schedules.pause.response.json +8 -0
  84. package/generated/v1/schemas/schedules.read.response.json +8 -0
  85. package/generated/v1/schemas/schedules.replace.request.json +1 -1
  86. package/generated/v1/schemas/schedules.replace.response.json +8 -0
  87. package/generated/v1/schemas/schedules.resume.response.json +8 -0
  88. package/generated/v1/schemas/schedules.summary.query.json +11 -0
  89. package/generated/v1/schemas/schedules.summary.response.json +144 -0
  90. package/generated/v1/schemas/timing.summary.response.json +69 -0
  91. package/generated/v1/snippets/billing.noticesdismiss.json +6 -0
  92. package/generated/v1/snippets/projectnotifications.rotateSigningKey.json +1 -1
  93. package/generated/v1/snippets/projects.read.json +6 -0
  94. package/generated/v1/snippets/schedules.summary.json +6 -0
  95. package/package.json +1 -1
@@ -2,7 +2,7 @@ import type { Attempt, AttemptResponse } from "./scheduling.js";
2
2
  /** Render customer-controlled text without terminal escapes, controls or bidi overrides. */
3
3
  export declare function sanitizedDiagnosticText(value: string): string;
4
4
  export declare function responseBodySentence(state: AttemptResponse["bodyState"], noServerResponse?: boolean): string;
5
- export declare function requestCaptureSentence(state: Attempt["requestState"], inProgress?: boolean): string;
5
+ export declare function requestCaptureSentence(state: Attempt["requestState"], inProgress?: boolean, unavailable?: Attempt["requestUnavailable"]): string;
6
6
  export declare function attemptStatusGuidance(status: number | undefined): string | undefined;
7
7
  /** A safe text preview, independently of the exact retained/download bytes. */
8
8
  export declare function diagnosticBodyText(body: NonNullable<AttemptResponse["body"]>): string | undefined;
@@ -26,7 +26,19 @@ export function responseBodySentence(state, noServerResponse = false) {
26
26
  return "What the server answered:";
27
27
  }
28
28
  }
29
- export function requestCaptureSentence(state, inProgress = false) {
29
+ export function requestCaptureSentence(state, inProgress = false, unavailable) {
30
+ switch (unavailable) {
31
+ case "schedule_changed":
32
+ return "This schedule was edited after this run, so the request it sent can't be shown.";
33
+ case "endpoint_changed":
34
+ return "This run's endpoint was edited after it ran, so the request it sent can't be shown.";
35
+ case "endpoint_deleted":
36
+ return "This run's endpoint has been deleted, so the request it sent can't be shown.";
37
+ case "payload_deleted":
38
+ return "This schedule's payload has been deleted, so the request this run sent can't be shown.";
39
+ case undefined:
40
+ break;
41
+ }
30
42
  return state === "expired"
31
43
  ? "The request body has expired. Request evidence is kept for at most 3 days and never beyond payload retention."
32
44
  : inProgress
@@ -107,6 +107,7 @@ export declare const projectAttemptSearchResultSchema: import("zod").ZodObject<{
107
107
  id: import("zod").ZodString;
108
108
  plannedFor: import("zod").ZodString;
109
109
  schedule: import("zod").ZodString;
110
+ scheduleName: import("zod").ZodOptional<import("zod").ZodString>;
110
111
  sequence: import("zod").ZodNumber;
111
112
  settledAt: import("zod").ZodOptional<import("zod").ZodString>;
112
113
  state: import("zod").ZodEnum<{
@@ -191,6 +192,7 @@ export declare const projectAttemptPageSchema: import("zod").ZodObject<{
191
192
  id: import("zod").ZodString;
192
193
  plannedFor: import("zod").ZodString;
193
194
  schedule: import("zod").ZodString;
195
+ scheduleName: import("zod").ZodOptional<import("zod").ZodString>;
194
196
  sequence: import("zod").ZodNumber;
195
197
  settledAt: import("zod").ZodOptional<import("zod").ZodString>;
196
198
  state: import("zod").ZodEnum<{
package/dist/billing.d.ts CHANGED
@@ -502,6 +502,40 @@ export declare const billingNoticeRecoveryPathSchema: import("zod").ZodUnion<rea
502
502
  }>, import("zod").ZodString]>;
503
503
  export declare const billingNoticeSchema: z.ZodType<BillingNotice>;
504
504
  export declare const billingNoticePageSchema: z.ZodType<BillingNoticePage>;
505
+ /**
506
+ * A billing-notice listing (W9-79): the page, and optionally one state. With
507
+ * `state=active` the page holds only notices still open, so a reader counting
508
+ * them is not cut short by a run of resolved ones newer than they are.
509
+ */
510
+ export declare const billingNoticeListRequestSchema: import("zod").ZodObject<{
511
+ cursor: import("zod").ZodOptional<import("zod").ZodString>;
512
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
513
+ state: import("zod").ZodOptional<import("zod").ZodEnum<{
514
+ active: "active";
515
+ resolved: "resolved";
516
+ }>>;
517
+ }, import("zod/v4/core").$strip>;
518
+ export type BillingNoticeListRequest = z.infer<typeof billingNoticeListRequestSchema>;
519
+ /** The notice kinds a delivery failure writes (W9-54) and dismiss resolves. */
520
+ export declare const DELIVERY_FAILURE_NOTICE_KINDS: readonly ["delivery-failed", "schedule-auto-paused"];
521
+ /**
522
+ * Dismiss this project's delivery-failure notices (W9-79): every active one
523
+ * in the principal's project and environment that occurred at or before
524
+ * `through`, for every member at once. `through` is the newest notice the
525
+ * caller saw, so a failure that arrives after it stays.
526
+ */
527
+ export interface BillingNoticeDismissRequest {
528
+ readonly through: string;
529
+ }
530
+ export declare const billingNoticeDismissRequestSchema: z.ZodType<BillingNoticeDismissRequest>;
531
+ export interface BillingNoticeDismissResult {
532
+ /** How many notices this request resolved; 0 when none were still open. */
533
+ readonly dismissed: number;
534
+ readonly freshness: {
535
+ readonly kind: "authoritative";
536
+ };
537
+ }
538
+ export declare const billingNoticeDismissResultSchema: z.ZodType<BillingNoticeDismissResult>;
505
539
  export declare const billingNotificationSettingsSchema: z.ZodType<BillingNotificationSettings>;
506
540
  export declare const billingNotificationSettingsUpdateRequestSchema: z.ZodType<BillingNotificationSettingsUpdateRequest>;
507
541
  export declare const billingRefundRequestCreateSchema: import("zod").ZodObject<{
@@ -665,6 +699,18 @@ export declare const billingSummarySchema: import("zod").ZodObject<{
665
699
  enforced: "enforced";
666
700
  }>;
667
701
  }, import("zod/v4/core").$strip>;
702
+ attemptPrice: import("zod").ZodOptional<import("zod").ZodObject<{
703
+ bulk: import("zod").ZodObject<{
704
+ currency: import("zod").ZodLiteral<"USD">;
705
+ microdollars: import("zod").ZodString;
706
+ scale: import("zod").ZodLiteral<6>;
707
+ }, import("zod/v4/core").$strip>;
708
+ realtime: import("zod").ZodObject<{
709
+ currency: import("zod").ZodLiteral<"USD">;
710
+ microdollars: import("zod").ZodString;
711
+ scale: import("zod").ZodLiteral<6>;
712
+ }, import("zod/v4/core").$strip>;
713
+ }, import("zod/v4/core").$strip>>;
668
714
  blockingReasons: import("zod").ZodArray<import("zod").ZodEnum<{
669
715
  "billing-state-missing": "billing-state-missing";
670
716
  "billing-account-closed": "billing-account-closed";
package/dist/billing.js CHANGED
@@ -485,6 +485,26 @@ export const billingNoticeSchema = z
485
485
  export const billingNoticePageSchema = pageSchema(billingNoticeSchema).extend({
486
486
  freshness: z.object({ kind: z.literal("authoritative") }),
487
487
  });
488
+ /**
489
+ * A billing-notice listing (W9-79): the page, and optionally one state. With
490
+ * `state=active` the page holds only notices still open, so a reader counting
491
+ * them is not cut short by a run of resolved ones newer than they are.
492
+ */
493
+ export const billingNoticeListRequestSchema = pageRequestSchema.extend({
494
+ state: z.enum(["active", "resolved"]).optional(),
495
+ });
496
+ /** The notice kinds a delivery failure writes (W9-54) and dismiss resolves. */
497
+ export const DELIVERY_FAILURE_NOTICE_KINDS = [
498
+ "delivery-failed",
499
+ "schedule-auto-paused",
500
+ ];
501
+ export const billingNoticeDismissRequestSchema = z.object({ through: timestampSchema }).strict();
502
+ export const billingNoticeDismissResultSchema = z
503
+ .object({
504
+ dismissed: z.number().int().nonnegative(),
505
+ freshness: z.object({ kind: z.literal("authoritative") }).strict(),
506
+ })
507
+ .strict();
488
508
  export const billingNotificationSettingsSchema = z
489
509
  .object({
490
510
  criticalEmail: z.literal(true),
@@ -616,6 +636,15 @@ export const billingSummarySchema = z
616
636
  boundary: timestampSchema,
617
637
  mode: z.enum(BILLING_ACTIVATION_MODES),
618
638
  }),
639
+ attemptPrice: z
640
+ .object({
641
+ bulk: nonnegativeExactMoneySchema,
642
+ realtime: nonnegativeExactMoneySchema,
643
+ })
644
+ .meta({
645
+ description: "What one billable delivery attempt costs under priceVersion, by latency class: the same tariff the usage meter charges. Retries and failed attempts that reach the receiver are billable; attempts answered with 429 and attempts this service could not start are not.",
646
+ })
647
+ .optional(),
619
648
  blockingReasons: z.array(z.enum(BILLING_BLOCK_REASONS)),
620
649
  budgetPolicy: billingBudgetPolicySchema,
621
650
  closedAt: timestampSchema.optional(),
@@ -146,8 +146,12 @@ const FORBIDDEN_NAME_SUFFIXES = [
146
146
  * **The apex joined it at W9-05**, when the marketing site started serving
147
147
  * `greatwait.dev` itself rather than only forwarding it. It is an address this
148
148
  * product answers on as itself, so it is refused on the same argument.
149
+ *
150
+ * **W13-03 nests the stage** (`api.staging.greatwait.dev`), so a runtime label
151
+ * may carry one further label before the zone. The sink keeps its absence:
152
+ * `sink.staging.greatwait.dev` begins with no runtime label and is accepted.
149
153
  */
150
- const GREATWAIT_RUNTIME_NAME = /^(?:greatwait-(?:api|app|docs|scheduler|contract-mock|postgres-runtime)(?:-[a-z0-9-]+)?\.flowxo\.com|(?:api|app|docs|scheduler|contract-mock|postgres-runtime)(?:-[a-z0-9-]+)?\.greatwait\.dev|greatwait\.dev)$/u;
154
+ const GREATWAIT_RUNTIME_NAME = /^(?:greatwait-(?:api|app|docs|scheduler|contract-mock|postgres-runtime)(?:-[a-z0-9-]+)?\.flowxo\.com|(?:api|app|docs|scheduler|contract-mock|postgres-runtime)(?:-[a-z0-9-]+)?(?:\.[a-z0-9-]+)?\.greatwait\.dev|greatwait\.dev)$/u;
151
155
  const GREATWAIT_PROVIDER_NAME = /^greatwait-(?:api|app|docs|marketing|scheduler|contract-mock|postgres-runtime)(?:-[a-z0-9-]+)?(?:\..+)?\.(?:workers|pages)\.dev$/u;
152
156
  const GREATWAIT_WORKER_NAME = /^greatwait-(?:api|app|docs|marketing|scheduler|contract-mock|postgres-runtime)(?:-[a-z0-9-]+)?$/u;
153
157
  /** Evaluate the URL-only half of the callback destination policy. */
@@ -11,8 +11,8 @@ export declare const CONFIGURATION_DEFAULTS: Readonly<{
11
11
  attemptDetailRetentionSeconds: 604800;
12
12
  forecastHorizonSeconds: number;
13
13
  historyRetentionSeconds: 1209600;
14
- inlinePayloadBytes: 65536;
15
- payloadRetentionSeconds: 259200;
14
+ inlinePayloadBytes: 8192;
15
+ payloadRetentionSeconds: 1209600;
16
16
  usageWindowDays: 366;
17
17
  }>;
18
18
  export type DeploymentContext = "local" | "staging" | "production";
@@ -18,8 +18,11 @@ export const CONFIGURATION_DEFAULTS = Object.freeze({
18
18
  attemptDetailRetentionSeconds: 604_800,
19
19
  forecastHorizonSeconds: MAX_FORECAST_HORIZON_SECONDS,
20
20
  historyRetentionSeconds: 1_209_600,
21
- inlinePayloadBytes: MAX_INLINE_PAYLOAD_BYTES,
22
- payloadRetentionSeconds: 259_200,
21
+ inlinePayloadBytes: 8_192,
22
+ // 14 days, with attempt history (W9-91, operator decision 2026-10-26): a
23
+ // successful run's sent request is rebuilt from the payload, and
24
+ // redelivery needs it, for as long as the run is in history.
25
+ payloadRetentionSeconds: 1_209_600,
23
26
  usageWindowDays: MAX_USAGE_WINDOW_DAYS,
24
27
  });
25
28
  const allowanceLayers = ["default", "global", "organization"];
@@ -114,7 +117,7 @@ export const CONFIGURATION_CATALOG =
114
117
  {
115
118
  key: "inlinePayloadBytes",
116
119
  change: "live",
117
- rationale: "The operator removed the lower storage allowance. Default is the existing public payload envelope; a deliberate override may narrow it. Unbounded bodies would exceed the existing SQL and receiver representations.",
120
+ rationale: "The default is 8 KiB for ordinary callbacks. An audited organization override may raise it up to the 64 KiB protocol maximum when a customer needs a larger payload. Unbounded bodies would exceed the existing SQL and receiver representations.",
118
121
  enforcement: ["authority-service", "schedule-draft"],
119
122
  exhaustion: "Local validation and authoritative plan-limit-reached",
120
123
  visibility: "customer",
@@ -10,17 +10,28 @@ import type { CallbackTrigger as AttemptTrigger } from "./signatures.js";
10
10
  * decryption oracle.
11
11
  */
12
12
  export declare const SCHEDULE_PAYLOAD_AAD_VERSION: "greatwait.schedule-payload.v1";
13
+ export declare const SCHEDULE_PAYLOAD_AAD_VERSION_V2: "greatwait.schedule-payload.v2";
13
14
  /**
14
15
  * The encrypted customer data carried from its authoritative partition to the
15
16
  * network boundary. This is an internal Durable Object RPC shape, not a public
16
17
  * schema. Its application-encryption key is deliberately distinct from the key
17
18
  * which wraps endpoint signing secrets.
18
19
  */
19
- export interface EncryptedSchedulePayload {
20
+ export interface LegacyEncryptedSchedulePayload {
20
21
  readonly ciphertext: string;
21
22
  readonly keyId: string;
22
23
  readonly nonce: string;
24
+ readonly version?: never;
23
25
  }
26
+ export interface EncodedSchedulePayload {
27
+ readonly ciphertext: string;
28
+ readonly keyId: string;
29
+ readonly nonce: string;
30
+ readonly version: 2;
31
+ readonly codec: "identity" | "gzip";
32
+ readonly originalBytes: number;
33
+ }
34
+ export type EncryptedSchedulePayload = LegacyEncryptedSchedulePayload | EncodedSchedulePayload;
24
35
  /** Encrypted custom HTTP settings, internal only; never a public read shape. */
25
36
  export type StoredHttpHeader = {
26
37
  readonly name: string;
package/dist/delivery.js CHANGED
@@ -7,6 +7,7 @@
7
7
  * decryption oracle.
8
8
  */
9
9
  export const SCHEDULE_PAYLOAD_AAD_VERSION = "greatwait.schedule-payload.v1";
10
+ export const SCHEDULE_PAYLOAD_AAD_VERSION_V2 = "greatwait.schedule-payload.v2";
10
11
  export const HTTP_HEADER_AAD_VERSION = "greatwait.http-header.v1";
11
12
  export { mergeStoredHttpHeaders, validScheduleHttp, validStoredHttpHeaders, } from "./stored-http.js";
12
13
  export const HTTP_TEMPLATE_AAD_VERSION = "greatwait.http-template.v1";
@@ -10,26 +10,26 @@ export declare const effectiveCustomerLimitsSchema: import("zod").ZodObject<{
10
10
  inlinePayloadBytes: import("zod").ZodEnum<{
11
11
  organization: "organization";
12
12
  default: "default";
13
- global: "global";
14
13
  deployment: "deployment";
14
+ global: "global";
15
15
  }>;
16
16
  partitionKeyCeiling: import("zod").ZodOptional<import("zod").ZodEnum<{
17
17
  organization: "organization";
18
18
  default: "default";
19
- global: "global";
20
19
  deployment: "deployment";
20
+ global: "global";
21
21
  }>>;
22
22
  forecastHorizonSeconds: import("zod").ZodEnum<{
23
23
  organization: "organization";
24
24
  default: "default";
25
- global: "global";
26
25
  deployment: "deployment";
26
+ global: "global";
27
27
  }>;
28
28
  usageWindowDays: import("zod").ZodEnum<{
29
29
  organization: "organization";
30
30
  default: "default";
31
- global: "global";
32
31
  deployment: "deployment";
32
+ global: "global";
33
33
  }>;
34
34
  }, import("zod/v4/core").$strict>;
35
35
  revision: import("zod").ZodObject<{
@@ -172,6 +172,35 @@ export declare const callbackEndpointPageSchema: import("zod").ZodObject<{
172
172
  nextCursor: import("zod").ZodOptional<import("zod").ZodString>;
173
173
  }, import("zod/v4/core").$strip>;
174
174
  export type CallbackEndpointPage = z.infer<typeof callbackEndpointPageSchema>;
175
+ /**
176
+ * The rotation filter's one value (W9-80, FXO-3446): endpoints carrying a next
177
+ * signing key whose server update has not been marked done.
178
+ */
179
+ export declare const CALLBACK_ENDPOINT_ROTATION_FILTERS: readonly ["unacknowledged"];
180
+ /**
181
+ * An endpoints listing: the page, and optional filters that intersect before
182
+ * paging (W9-80, FXO-3446).
183
+ *
184
+ * Filters run in the listing's own statement, so the hundred-and-first
185
+ * endpoint is as findable as the first: a picker searches by `text`, the
186
+ * disabled-endpoint check asks for `status=disabled`, and the rotation
187
+ * reminder asks for `rotation=unacknowledged`, each without reading the whole
188
+ * project. A cursor is bound to the filters that issued it. All three are
189
+ * optional, so a client that sends none sees exactly the listing it always had.
190
+ */
191
+ export declare const callbackEndpointListRequestSchema: import("zod").ZodObject<{
192
+ cursor: import("zod").ZodOptional<import("zod").ZodString>;
193
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
194
+ text: import("zod").ZodOptional<import("zod").ZodString>;
195
+ status: import("zod").ZodOptional<import("zod").ZodEnum<{
196
+ active: "active";
197
+ disabled: "disabled";
198
+ }>>;
199
+ rotation: import("zod").ZodOptional<import("zod").ZodEnum<{
200
+ unacknowledged: "unacknowledged";
201
+ }>>;
202
+ }, import("zod/v4/core").$strip>;
203
+ export type CallbackEndpointListRequest = z.infer<typeof callbackEndpointListRequestSchema>;
175
204
  /** The one response that carries the per-endpoint secret. */
176
205
  export declare const callbackEndpointCreatedSchema: import("zod").ZodObject<{
177
206
  headers: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
package/dist/endpoints.js CHANGED
@@ -3,7 +3,7 @@ import { z } from "./zod.js";
3
3
  import { environmentKindSchema } from "./authority.js";
4
4
  import { evaluateCallbackUrl } from "./callback-safety.js";
5
5
  import { callbackSigningKeyIdSchema, endpointIdSchema, projectIdSchema, } from "./identifiers.js";
6
- import { pageSchema } from "./protocol.js";
6
+ import { pageRequestSchema, pageSchema } from "./protocol.js";
7
7
  import { timestampSchema } from "./time.js";
8
8
  /**
9
9
  * Reusable callback endpoints.
@@ -109,6 +109,37 @@ export const callbackEndpointSchema = /* @__PURE__ */ (() => z.object({
109
109
  version: z.number().int().positive(),
110
110
  }))();
111
111
  export const callbackEndpointPageSchema = /* @__PURE__ */ (() => pageSchema(callbackEndpointSchema))();
112
+ /**
113
+ * The rotation filter's one value (W9-80, FXO-3446): endpoints carrying a next
114
+ * signing key whose server update has not been marked done.
115
+ */
116
+ export const CALLBACK_ENDPOINT_ROTATION_FILTERS = ["unacknowledged"];
117
+ /**
118
+ * An endpoints listing: the page, and optional filters that intersect before
119
+ * paging (W9-80, FXO-3446).
120
+ *
121
+ * Filters run in the listing's own statement, so the hundred-and-first
122
+ * endpoint is as findable as the first: a picker searches by `text`, the
123
+ * disabled-endpoint check asks for `status=disabled`, and the rotation
124
+ * reminder asks for `rotation=unacknowledged`, each without reading the whole
125
+ * project. A cursor is bound to the filters that issued it. All three are
126
+ * optional, so a client that sends none sees exactly the listing it always had.
127
+ */
128
+ export const callbackEndpointListRequestSchema = /* @__PURE__ */ (() => pageRequestSchema.extend({
129
+ text: z
130
+ .string()
131
+ .max(256)
132
+ .refine((value) => !value.includes("\u0000"), "must not contain NUL characters")
133
+ .optional()
134
+ .describe("Case-insensitive literal substring of the endpoint's name, address or identifier."),
135
+ status: callbackEndpointStatusSchema
136
+ .optional()
137
+ .describe("Only endpoints in this status."),
138
+ rotation: z
139
+ .enum(CALLBACK_ENDPOINT_ROTATION_FILTERS)
140
+ .optional()
141
+ .describe("unacknowledged: only endpoints with a signing-key rotation whose server update has not been marked done."),
142
+ }))();
112
143
  /** The one response that carries the per-endpoint secret. */
113
144
  export const callbackEndpointCreatedSchema = /* @__PURE__ */ (() => callbackEndpointSchema.extend({
114
145
  keyId: callbackSigningKeyIdSchema,
@@ -240,8 +240,8 @@ export declare const forecastCoverageSchema: import("zod").ZodObject<{
240
240
  lastGroup: import("zod").ZodOptional<import("zod").ZodObject<{
241
241
  start: import("zod").ZodString;
242
242
  latencyClass: import("zod").ZodEnum<{
243
- realtime: "realtime";
244
243
  bulk: "bulk";
244
+ realtime: "realtime";
245
245
  }>;
246
246
  partitionKey: import("zod").ZodString;
247
247
  }, import("zod/v4/core").$strip>>;
@@ -288,8 +288,8 @@ export declare const forecastSchema: import("zod").ZodObject<{
288
288
  lastGroup: import("zod").ZodOptional<import("zod").ZodObject<{
289
289
  start: import("zod").ZodString;
290
290
  latencyClass: import("zod").ZodEnum<{
291
- realtime: "realtime";
292
291
  bulk: "bulk";
292
+ realtime: "realtime";
293
293
  }>;
294
294
  partitionKey: import("zod").ZodString;
295
295
  }, import("zod/v4/core").$strip>>;
@@ -185,9 +185,19 @@ export declare const storedHttpRequestSchema: import("zod").ZodObject<{
185
185
  name: import("zod").ZodString;
186
186
  suppressed: import("zod").ZodLiteral<true>;
187
187
  }, import("zod/v4/core").$strict>]>>;
188
- encryptedTemplate: import("zod").ZodOptional<import("zod").ZodObject<{
188
+ encryptedTemplate: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
189
189
  keyId: import("zod").ZodLiteral<"v1">;
190
190
  nonce: import("zod").ZodString;
191
191
  ciphertext: import("zod").ZodString;
192
- }, import("zod/v4/core").$strict>>;
192
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
193
+ keyId: import("zod").ZodLiteral<"v1">;
194
+ nonce: import("zod").ZodString;
195
+ ciphertext: import("zod").ZodString;
196
+ version: import("zod").ZodLiteral<2>;
197
+ codec: import("zod").ZodEnum<{
198
+ identity: "identity";
199
+ gzip: "gzip";
200
+ }>;
201
+ originalBytes: import("zod").ZodNumber;
202
+ }, import("zod/v4/core").$strict>]>>;
193
203
  }, import("zod/v4/core").$strict>;
@@ -1,3 +1,4 @@
1
+ import { MAX_INLINE_PAYLOAD_BYTES } from "./configuration-bounds.js";
1
2
  import { z } from "./zod.js";
2
3
  export const HTTP_HEADER_BOUNDS = {
3
4
  count: 32,
@@ -206,6 +207,35 @@ function decodedCipherBytes(value) {
206
207
  return undefined;
207
208
  }
208
209
  }
210
+ // HTTP templates carry payload bodies and can use the authenticated codec
211
+ // envelope. Secret-header envelopes keep their existing identity-only format.
212
+ const sealedHttpTemplateSchema = /* @__PURE__ */ (() => z
213
+ .union([
214
+ sealedHttpValueSchema,
215
+ sealedHttpValueSchema.extend({
216
+ version: z.literal(2),
217
+ codec: z.enum(["identity", "gzip"]),
218
+ originalBytes: z
219
+ .number()
220
+ .int()
221
+ .nonnegative()
222
+ .max(MAX_INLINE_PAYLOAD_BYTES),
223
+ }),
224
+ ])
225
+ .superRefine((envelope, ctx) => {
226
+ if (!("version" in envelope))
227
+ return;
228
+ const bytes = decodedCipherBytes(envelope.ciphertext);
229
+ if (bytes === undefined ||
230
+ bytes < 16 ||
231
+ bytes > envelope.originalBytes + 16 ||
232
+ (envelope.codec === "identity" && bytes !== envelope.originalBytes + 16))
233
+ ctx.addIssue({
234
+ code: "custom",
235
+ path: ["ciphertext"],
236
+ message: "template ciphertext must match authenticated codec and size",
237
+ });
238
+ }))();
209
239
  export const storedHttpHeaderSchema = /* @__PURE__ */ (() => z
210
240
  .union([
211
241
  z
@@ -261,7 +291,7 @@ export const storedHttpRequestSchema = /* @__PURE__ */ (() => z
261
291
  method: z.enum(HTTP_METHODS),
262
292
  bodyMode: z.enum(["envelope", "json", "none"]),
263
293
  headers: z.array(storedHttpHeaderSchema).max(HTTP_HEADER_BOUNDS.count),
264
- encryptedTemplate: sealedHttpValueSchema.optional(),
294
+ encryptedTemplate: sealedHttpTemplateSchema.optional(),
265
295
  })
266
296
  .strict()
267
297
  .superRefine((http, ctx) => {
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ export { ANY_ID_PATTERN, ID_ALPHABET, ID_PREFIXES, apiCredentialEventIdSchema, a
4
4
  export { durationSecondsSchema, timeZoneSchema, timestampSchema, toTimestamp, type DurationSeconds, type TimeZone, type Timestamp, } from "./time.js";
5
5
  export { ENVIRONMENT_KINDS_IN_ORDER, PRINCIPAL_KINDS, SCOPES, SESSION_AUTHORITY_HEADERS, authoritySchema, credentialContextSchema, decideAccess, decideEnvironmentIntent, effectiveScopes, problemCodeForRefusal, environmentKindSchema, principalKindSchema, principalSchema, scopeSchema, type AccessDecision, type AccessRefusal, type AccessRequest, type Authority, type CredentialContext, type EnvironmentIntentDecision, type EnvironmentKind, type Principal, type PrincipalKind, type Scope, } from "./authority.js";
6
6
  export { PROBLEM_CATEGORIES, PROBLEM_CODES, fieldErrorSchema, isRetryable, problem, problemCategorySchema, problemCodeSchema, problemSchema, type FieldError, type Problem, type ProblemCategory, type ProblemCode, type ProblemOptions, } from "./problems.js";
7
- export { CONCURRENCY_HEADERS, PAGE_SIZE, canonicalRequest, classifyIdempotency, conditionalRequestHeaderSchema, decodeCursor, encodeCursor, etagSchema, freshnessSchema, projectedFreshnessSchema, requiredConditionalRequestHeaderSchema, fromETag, idempotencyKeySchema, idempotencyReplayResponseHeaderSchema, idempotencyRequestHeaderSchema, idempotencyReceiptSchema, idempotencyScopeSchema, HISTORY_ORDERS, historyPageRequestSchema, pageRequestSchema, scheduleListRequestSchema, parseHistoryPageRequest, pageSchema, parsePageRequest, parseScheduleListRequest, replayedResponseHeaderSchema, requiredIdempotencyRequestHeaderSchema, requestFingerprint, toETag, versionResponseHeaderSchema, versionSchema, type Freshness, type CursorBinding, type ProjectedFreshness, type IdempotencyKey, type IdempotencyOutcome, type IdempotencyReceipt, type IdempotencyScope, type PagePosition, type PageRequest, SCHEDULE_ORDERS, type ScheduleListRequest, type ScheduleListRequestParse, type ScheduleOrder, type HistoryOrder, type HistoryPageRequest, type HistoryPageRequestParse, type PageRequestParse, type Version, } from "./protocol.js";
7
+ export { CONCURRENCY_HEADERS, PAGE_SIZE, canonicalRequest, classifyIdempotency, conditionalRequestHeaderSchema, decodeCursor, encodeCursor, etagSchema, freshnessSchema, projectedFreshnessSchema, requiredConditionalRequestHeaderSchema, fromETag, idempotencyKeySchema, idempotencyReplayResponseHeaderSchema, idempotencyRequestHeaderSchema, idempotencyReceiptSchema, idempotencyScopeSchema, HISTORY_ORDERS, historyPageRequestSchema, pageRequestSchema, scheduleListRequestSchema, parseHistoryPageRequest, pageSchema, parsePageRequest, parseScheduleListRequest, parseListingRequest, replayedResponseHeaderSchema, requiredIdempotencyRequestHeaderSchema, requestFingerprint, toETag, versionResponseHeaderSchema, versionSchema, type Freshness, type CursorBinding, type ProjectedFreshness, type IdempotencyKey, type IdempotencyOutcome, type IdempotencyReceipt, type IdempotencyScope, type PagePosition, type PageRequest, SCHEDULE_ORDERS, SCHEDULE_DIRECTIONS, type ScheduleDirection, type ScheduleListRequest, type ScheduleListRequestParse, type ScheduleOrder, type HistoryOrder, type HistoryPageRequest, type HistoryPageRequestParse, type PageRequestParse, type Version, } from "./protocol.js";
8
8
  export { CALLBACK_CONTENT_TYPE, CALLBACK_DELIVERY_PROTOCOL, CALLBACK_DELIVERY_PROTOCOL_VERSION, CALLBACK_ENVELOPE_VERSION, CALLBACK_ENVELOPE_VERSION_2026_07_01, CALLBACK_ENVELOPE_VERSION_2026_08_08, CALLBACK_ENVELOPE_VERSION_CHANGE, CALLBACK_ENVELOPE_VERSIONS, CALLBACK_HEADERS, SIGNATURE_SCHEME, SIGNATURE_TOLERANCE_SECONDS, callbackDeferredCompletionSchema, callbackDeliveryTestVectors, callbackEnvelopeSchema, callbackEnvelopeTrigger, callbackHeadersSchema, callbackRun, callbackTriggerSchema, classifyOutcome, classifyStatus, formatSignature, extractCanonicalEnvelopeIds, isTimestampFresh, signatureHeaderSchema, serializeCallbackEnvelope, signingInput, trySigningInput, type AttemptOutcome, type CallbackDeferredCompletion, type CallbackDeliveryTestVector, type CallbackEnvelope, type CallbackRun, type CallbackTrigger, type ResponseClass, } from "./signatures.js";
9
9
  export { CREDENTIAL_PREFIX_LENGTH, CREDENTIAL_PREFIX_PATTERN, CREDENTIAL_ROTATION_OVERLAP_SECONDS, CREDENTIAL_SECRET_LENGTH, CREDENTIAL_SECRET_PATTERN, NEVER_REDACTED, REDACTED_FIELDS_EXACT, REDACTED_FIELD_FRAGMENTS, credentialCreatedSchema, credentialMetadataSchema, credentialPageSchema, credentialRequestSchema, credentialRevokedSchema, credentialRotatedSchema, credentialRotationRequestSchema, redact, type CredentialCreated, type CredentialMetadata, type CredentialPage, type CredentialRequest, type CredentialRevokedResponse, type CredentialRotated, type CredentialRotationRequest, } from "./secrets.js";
10
10
  export { MAX_PARTITION_SHARDS, PROJECTION_DRAIN_LIMIT, SINGLE_SHARD, partitionInstanceName, partitionShardCount, partitionShardFor, partitionShardForIdempotencyKey, type CreateScheduleCommand, type CreateScheduleOutcome, type AttemptPagePosition, type DrainProjectionsOutcome, type DrainProjectionsQuery, type ForecastOutcome, type ForecastPartitionBucket, type ForecastQuery, type IdempotencyDisposition, type ListSchedulesOutcome, type ListSchedulesQuery, type ListAttemptsOutcome, type ListAttemptsQuery, type ListOccurrencesOutcome, type ListOccurrencesQuery, type OccurrencePagePosition, type PartitionOutcome, type PartitionRefusal, type PartitionRefused, type PartitionRpc, type ProjectionIntent, type ReadScheduleQuery, type ReadAttemptOutcome, type ReadAttemptQuery, type ReadOccurrenceOutcome, type ReadOccurrenceQuery, type RedeliverOccurrenceCommand, type RedeliverOccurrenceOutcome, type ReplaceScheduleCommand, type RetainedProjections, type ScheduleDefinition, type ScheduleWriteCommand, type ScheduleWriteOutcome, type SettleProjectionsCommand, type SettleProjectionsOutcome, } from "./partition.js";
@@ -13,30 +13,31 @@ export { MEMBERSHIP_ROLES, MEMBERSHIP_STATUSES, externalMembershipIdSchema, exte
13
13
  export { CHANGE_KINDS, CHANGE_OPERATIONS, CHANGE_SUBJECTS, CONTRACT_VERSION, assess, changeKindSchema, classifyChange, contractVersionSchema, type ChangeKind, type ChangeOperation, type ChangeSubject, type CompatibilityVerdict, type ContractChange, } from "./compatibility.js";
14
14
  export { WORKSPACE_LAYERS, scaffoldProblemSchema, scaffoldVersionSchema, toolDescriptorSchema, toolListSchema, workspaceIdentitySchema, workspaceLayerSchema, workspaceScaffoldSchema, type ScaffoldProblem, type ScaffoldVersion, type ToolDescriptor, type ToolList, type WorkspaceIdentity, type WorkspaceLayer, type WorkspaceScaffold, } from "./workspace.js";
15
15
  export { MOCK_BEHAVIORS, MOCK_HEADERS, OPERATIONS, UNIVERSAL_PROBLEMS, AUTHENTICATED_PROBLEMS, SCOPED_PROBLEMS, findOperation, fixtureListSchema, mockBehaviorSchema, mockScenarioRequestSchema, mockScenarioResponseSchema, operationsFor, problemsFor, requestSchemaFor, responseSchemaFor, successStatusFor, type FixtureList, type McpDisposition, type MockBehavior, type MockScenarioRequest, type MockScenarioResponse, type OperationDefinition, type OperationId, type OperationRequestBody, type OperationSurface, } from "./operations.js";
16
- export { PROJECT_LIST_LIMIT, PROJECT_STATUSES, environmentSchema, organizationSchema, projectCreateRequestSchema, projectArchiveRequestSchema, projectDeletedSchema, projectDeletionCountsSchema, projectListSchema, projectNameKey, projectNameSchema, projectSchema, projectStatusSchema, projectSummarySchema, projectUpdateRequestSchema, provisionedProjectSchema, type Environment, type Organization, type Project, type ProjectCreateRequest, type ProjectArchiveRequest, type ProjectDeleted, type ProjectDeletionCounts, type ProjectList, type ProjectStatus, type ProjectSummary, type ProjectUpdateRequest, type ProvisionedProject, } from "./tenancy.js";
17
- export { ATTEMPT_DURATION_MAX_MS, ATTEMPT_FAILURE_SNIPPET_MAX_LENGTH, ATTEMPT_REMEDIATIONS, ATTEMPT_RESPONSE_HEADER_MAX_LENGTH, ATTEMPT_STATES, CRON_EXPRESSION_MAX_LENGTH, LATENCY_CLASSES, OCCURRENCE_STATES, PARTITION_KEY_MAX_LENGTH, RECURRENCE_REQUEST_FIELDS, SCHEDULE_STATUSES, SCHEDULING_BOUNDS, TERMINAL_OCCURRENCE_STATES, TERMINAL_SCHEDULE_STATUSES, attemptFailureSnippetSchema, attemptResponseHeaderSchema, attemptSchema, attemptResponseSchema, attemptRequestSchema, type AttemptResponse, type AttemptRequest, attemptDiagnosticSchema, attemptPageSchema, attemptRemediationSchema, attemptStateForResponse, attemptStateSchema, attemptTriggerSchema, attemptViewSchema, cronExpressionSchema, DELIVERY_COMPLETION_MODES, DELIVERY_DURATION_TIERS, MAX_DELIVERY_DURATION_SECONDS, RESPONSE_DELIVERY_MAX_DURATION_SECONDS, DELIVERY_OVERLAP_POLICIES, DEFAULT_DELIVERY_DURATION_SECONDS, DEFAULT_DELIVERY_OVERLAP_POLICY, FREE_DELIVERY_DURATION_SECONDS, DEFAULT_ONE_SHOT_MAX_STALENESS_SECONDS, LATENESS_POLICIES, isLongRunningDuration, deliveryCompletionModeSchema, deliveryDurationSecondsSchema, deliveryOverlapPolicySchema, type DeliveryCompletionMode, type DeliveryOverlapPolicy, deriveDeliverySettings, deriveLatencyClass, deriveLatenessSettings, defaultLatenessPolicyForRecurrence, generationSchema, isTerminalOccurrenceState, isTerminalScheduleStatus, latencyClassSchema, latenessPolicySchema, occurrenceSchema, occurrencePageSchema, parseProjectOccurrenceListRequest, projectOccurrenceCursorBinding, projectOccurrenceListRequestSchema, projectOccurrencePageSchema, occurrenceStateSchema, occurrenceViewSchema, partitionKeySchema, remediationForAttempt, recurrenceSchema, DEFAULT_AUTO_PAUSE_AFTER_FAILURES, autoPauseAfterFailuresSchema, autoPauseReasonSchema, type AutoPauseAfterFailures, type AutoPauseReason, scheduleNameSchema, scheduleLatenessRequestSchema, scheduleLatenessSchema, schedulePageSchema, scheduleRequestSchema, scheduleSchema, scheduleStatusSchema, scheduleViewSchema, scheduleWrittenViewSchema, type Attempt, type AttemptFailureSnippet, type AttemptResponseHeader, type AttemptDiagnostic, type AttemptPage, type AttemptRemediation, type AttemptState, type AttemptTrigger, type AttemptView, type CronExpression, type Generation, type DeliverySettings, type LatencyClass, type LatenessPolicy, type LatenessSettings, type Occurrence, type OccurrencePage, type ProjectOccurrenceListRequest, type ProjectOccurrenceListRequestParse, type ProjectOccurrencePage, type OccurrenceState, type OccurrenceView, type PartitionKey, type Recurrence, type Schedule, type ScheduleLatenessRequest, type SchedulePage, type ScheduleRequest, type ScheduleStatus, type ScheduleView, type ScheduleWrittenView, } from "./scheduling.js";
16
+ export { PROJECT_LIST_LIMIT, PROJECT_STATUSES, environmentSchema, organizationSchema, projectCreateRequestSchema, projectArchiveRequestSchema, projectDeletedSchema, projectDeletionCountsSchema, projectListItemSchema, projectListSchema, projectNameKey, projectNameSchema, projectSchema, projectStatusSchema, projectSummarySchema, projectUpdateRequestSchema, provisionedProjectSchema, type Environment, type Organization, type Project, type ProjectCreateRequest, type ProjectArchiveRequest, type ProjectDeleted, type ProjectDeletionCounts, type ProjectList, type ProjectListItem, type ProjectStatus, type ProjectSummary, type ProjectUpdateRequest, type ProvisionedProject, } from "./tenancy.js";
17
+ export { ATTEMPT_DURATION_MAX_MS, ATTEMPT_FAILURE_SNIPPET_MAX_LENGTH, ATTEMPT_REMEDIATIONS, ATTEMPT_RESPONSE_HEADER_MAX_LENGTH, ATTEMPT_STATES, CRON_EXPRESSION_MAX_LENGTH, LATENCY_CLASSES, OCCURRENCE_STATES, PARTITION_KEY_MAX_LENGTH, RECURRENCE_REQUEST_FIELDS, SCHEDULE_STATUSES, SCHEDULING_BOUNDS, TERMINAL_OCCURRENCE_STATES, TERMINAL_SCHEDULE_STATUSES, attemptFailureSnippetSchema, attemptResponseHeaderSchema, attemptSchema, attemptResponseSchema, attemptRequestSchema, type AttemptResponse, type AttemptRequest, attemptDiagnosticSchema, attemptPageSchema, attemptRemediationSchema, attemptStateForResponse, attemptStateSchema, attemptTriggerSchema, attemptViewSchema, cronExpressionSchema, DELIVERY_COMPLETION_MODES, DELIVERY_DURATION_TIERS, MAX_DELIVERY_DURATION_SECONDS, RESPONSE_DELIVERY_MAX_DURATION_SECONDS, DELIVERY_OVERLAP_POLICIES, DEFAULT_DELIVERY_DURATION_SECONDS, DEFAULT_DELIVERY_OVERLAP_POLICY, FREE_DELIVERY_DURATION_SECONDS, DEFAULT_ONE_SHOT_MAX_STALENESS_SECONDS, LATENESS_POLICIES, isLongRunningDuration, deliveryCompletionModeSchema, deliveryDurationSecondsSchema, deliveryOverlapPolicySchema, type DeliveryCompletionMode, type DeliveryOverlapPolicy, deriveDeliverySettings, deriveLatencyClass, deriveLatenessSettings, fingerprintedScheduleRequest, defaultLatenessPolicyForRecurrence, generationSchema, isTerminalOccurrenceState, isTerminalScheduleStatus, latencyClassSchema, requestedLatencyClassSchema, latenessPolicySchema, occurrenceSchema, occurrencePageSchema, parseProjectOccurrenceListRequest, projectOccurrenceCursorBinding, projectOccurrenceListRequestSchema, projectOccurrencePageSchema, occurrenceStateSchema, occurrenceViewSchema, partitionKeySchema, remediationForAttempt, recurrenceSchema, DEFAULT_AUTO_PAUSE_AFTER_FAILURES, autoPauseAfterFailuresSchema, autoPauseReasonSchema, type AutoPauseAfterFailures, type AutoPauseReason, scheduleNameSchema, scheduleLatenessRequestSchema, scheduleLatenessSchema, schedulePageSchema, SCHEDULE_SUMMARY_DAYS, SCHEDULE_SUMMARY_MAX_AGE_SECONDS, SCHEDULE_SUMMARY_PAUSED_SAMPLE, scheduleSummaryRequestSchema, scheduleSummarySchema, type ScheduleSummary, type ScheduleSummaryRequest, scheduleRequestSchema, scheduleSchema, scheduleStatusSchema, scheduleViewSchema, scheduleWrittenViewSchema, type Attempt, type AttemptFailureSnippet, type AttemptResponseHeader, type AttemptDiagnostic, type AttemptPage, type AttemptRemediation, type AttemptState, type AttemptTrigger, type AttemptView, type CronExpression, type Generation, type DeliverySettings, type LatencyClass, type LatenessPolicy, type LatenessSettings, type Occurrence, type OccurrencePage, type ProjectOccurrenceListRequest, type ProjectOccurrenceListRequestParse, type ProjectOccurrencePage, type OccurrenceState, type OccurrenceView, type PartitionKey, type Recurrence, type Schedule, type ScheduleLatenessRequest, type SchedulePage, type ScheduleRequest, type ScheduleStatus, type ScheduleView, type ScheduleWrittenView, } from "./scheduling.js";
18
18
  export { portableAttemptRecordSchema, portableEncryptedPayloadRecordSchema, portableOccurrenceRecordSchema, portableReceiptRecordSchema, portableScheduleRecordSchema, portableSchedulingRecordSetSchema, type PortableAttemptRecord, type PortableEncryptedPayloadRecord, type PortableOccurrenceRecord, type PortableReceiptRecord, type PortableScheduleRecord, type PortableSchedulingRecordSet, } from "./scheduling-records.js";
19
19
  export { ROLE_SCOPE_CEILINGS, capScopesToRole, ceilingForRole, credentialScopes, grantableScopes, policyMatrix, roleAllows, roleCanPerform, type PolicyMatrixRow, } from "./policy.js";
20
20
  export { ACCESS_TOKEN_PATTERN, ACCESS_TOKEN_TTL_SECONDS, AUTHORIZATION_CODE_PATTERN, AUTHORIZATION_CODE_TTL_SECONDS, AUTHORIZATION_REQUEST_TTL_SECONDS, MAX_REDIRECT_URIS, OAUTH_ERRORS, OAUTH_ERROR_STATUS, OAUTH_GRANT_STATUSES, OAUTH_GRANT_TYPES, OAUTH_RESPONSE_TYPES, OAUTH_REVOCATION_REASONS, OAUTH_ROUTES, OAUTH_SECRET_PATTERN, OAUTH_TOKEN_NAMESPACE_LENGTH, OAUTH_TOKEN_SECRET_LENGTH, PKCE_CHALLENGE_PATTERN, PKCE_METHODS, PKCE_VERIFIER_PATTERN, REFRESH_TOKEN_PATTERN, REFRESH_TOKEN_TTL_SECONDS, TOKEN_ENDPOINT_AUTH_METHODS, authorizationParametersSchema, authorizationServerMetadataSchema, bearerChallenge, clientRegistrationRequestSchema, clientRegistrationSchema, consentDecisionSchema, consentOutcomeSchema, consentPromptSchema, formatScopeString, isLoopbackRedirect, oauthError, oauthErrorCodeSchema, oauthErrorSchema, oauthGrantListSchema, oauthGrantRevokedSchema, oauthGrantSchema, oauthGrantStatusSchema, oauthGrantTypeSchema, oauthRevocationReasonSchema, parseScopeString, pkceMethodSchema, protectedResourceMetadataSchema, redirectUriSchema, revocationRequestSchema, tokenRequestSchema, tokenResponseSchema, type AuthorizationParameters, type AuthorizationServerMetadata, type ClientRegistration, type ClientRegistrationRequest, type ConsentDecision, type ConsentOutcome, type ConsentPrompt, type OAuthErrorBody, type OAuthErrorCode, type OAuthGrant, type OAuthGrantList, type OAuthGrantRevoked, type OAuthGrantStatus, type OAuthGrantType, type OAuthRevocationReason, type ProtectedResourceMetadata, type RevocationRequest, type TokenRequest, type TokenResponse, } from "./oauth.js";
21
21
  export { CALLBACK_ENVELOPE_HEADROOM_BYTES, CALLBACK_RECEIVER_MAX_BODY_BYTES, } from "./callback-receiver.js";
22
22
  export { CALLBACK_ENDPOINT_SECRET_PATTERN, CALLBACK_URL_REJECTION_REASONS, evaluateCallbackUrl, isPublicCallbackAddress, type CallbackUrlRejectionReason, } from "./callback-safety.js";
23
- export { CALLBACK_ENDPOINT_LIMIT_PER_ENVIRONMENT, CALLBACK_ENDPOINT_STATUSES, CALLBACK_SIGNING_KEY_ROTATION_OVERLAP_SECONDS, CALLBACK_EGRESS_FAILURES, CALLBACK_ADMISSION_RATE_LIMITS, callbackEndpointCreatedSchema, callbackEndpointEnsuredSchema, callbackEndpointNameSchema, callbackEndpointPageSchema, callbackEndpointRequestSchema, callbackEndpointRotatedSchema, callbackEndpointSchema, callbackEndpointSigningSecretsSchema, callbackEndpointStatusSchema, callbackSigningKeyRotationRequestSchema, callbackSigningKeysSchema, callbackEgressFailureSchema, callbackUrlSchema, endpointDashboardPath, signingSecretNotice, signingSecretNoticeSchema, type CallbackEndpoint, type CallbackEndpointCreated, type CallbackEndpointEnsured, type SigningSecretNotice, type CallbackEndpointPage, type CallbackEndpointRequest, type CallbackEndpointRotated, type CallbackEndpointSigningSecrets, type CallbackEndpointStatus, type CallbackSigningKeyRotationRequest, type CallbackSigningKeys, type CallbackEgressFailure, } from "./endpoints.js";
23
+ export { CALLBACK_ENDPOINT_LIMIT_PER_ENVIRONMENT, CALLBACK_ENDPOINT_STATUSES, CALLBACK_SIGNING_KEY_ROTATION_OVERLAP_SECONDS, CALLBACK_EGRESS_FAILURES, CALLBACK_ADMISSION_RATE_LIMITS, callbackEndpointCreatedSchema, callbackEndpointEnsuredSchema, callbackEndpointNameSchema, callbackEndpointPageSchema, CALLBACK_ENDPOINT_ROTATION_FILTERS, callbackEndpointListRequestSchema, type CallbackEndpointListRequest, callbackEndpointRequestSchema, callbackEndpointRotatedSchema, callbackEndpointSchema, callbackEndpointSigningSecretsSchema, callbackEndpointStatusSchema, callbackSigningKeyRotationRequestSchema, callbackSigningKeysSchema, callbackEgressFailureSchema, callbackUrlSchema, endpointDashboardPath, signingSecretNotice, signingSecretNoticeSchema, type CallbackEndpoint, type CallbackEndpointCreated, type CallbackEndpointEnsured, type SigningSecretNotice, type CallbackEndpointPage, type CallbackEndpointRequest, type CallbackEndpointRotated, type CallbackEndpointSigningSecrets, type CallbackEndpointStatus, type CallbackSigningKeyRotationRequest, type CallbackSigningKeys, type CallbackEgressFailure, } from "./endpoints.js";
24
24
  export { compactInterval, cronWords, generatedEndpointName, generatedScheduleName, periodWords, targetDomain, } from "./naming.js";
25
25
  export { FORECAST_BOUNDS, FORECAST_PARTIAL_ACCEPT_HEADER, forecastRequestHeadersSchema, forecastCoverageSchema, type ForecastCoverage, FORECAST_BREAKDOWNS, FORECAST_COMPATIBILITY, FORECAST_RULES, FORECAST_WINDOW_VERSION, decideForecastAnswer, forecastBreakdownSchema, forecastBucketSchema, forecastBucketStartMs, forecastLatencyCountsSchema, forecastRequestSchema, forecastSchema, forecastViolations, forecastWindowBucketSchema, forecastWindowViolations, forecastWindowsSchema, mergeForecastBuckets, parseForecastRequest, resolveForecastWindow, topPartitionKeys, type Forecast, type ForecastAnswerDecision, type ForecastAnswerRefusal, type ForecastBreakdown, type ForecastBucket, type ForecastMergedBucket, type ForecastShardAnswer, type ForecastLatencyCounts, type ForecastRequest, type ForecastRequestParse, type ForecastWindow, type ForecastWindowBucket, type ForecastWindowRefusal, type ForecastWindowResolution, type ForecastWindows, } from "./forecast.js";
26
26
  export { CURL_JOURNEY_TOOLS, FIRST_VALUE_JOURNEY, FIRST_VALUE_PREREQUISITES, FIRST_VALUE_STEPS, FIRST_VALUE_VARIABLES, JOURNEY_ACTIVATION_DURATIONS, JOURNEY_ACTIVATION_OUTCOMES, JOURNEY_CONDITIONS, MINIMUM_CURL_VERSION, WEBSITE_JOURNEY_STEPS, WEBSITE_JOURNEY_STEP_KEYS, journeyActivationDuration, journeyCapturedVariables, journeyPathVariables, journeyPoll, journeyPrerequisite, journeyReferences, journeyStepSchema, journeyStepVariables, journeyVariable, journeyVariableName, journeyVariableSchema, parseWebsiteActivationEvent, pathParameterNames, resolveJourneyReferences, websiteActivationEventSchema, websiteJourneySteps, type FirstValueJourney, type JourneyActivationDuration, type JourneyActivationOutcome, type JourneyCapture, type JourneyCondition, type JourneyExpectation, type JourneyPoll, type JourneyPrerequisite, type JourneyRecovery, type JourneyStep, type JourneyVariable, type WebsiteActivationEvent, } from "./first-value-journey.js";
27
27
  export { BILLABLE_TERMINAL_STATES, USAGE_BOUNDS, USAGE_WINDOW_REASONS, billableTerminalStateSchema, parseUsageRequest, resolveUsageWindow, usageDaySchema, usageRequestSchema, usageSchema, utcMidnightMs, type BillableTerminalStateName, type ResolvedUsageWindow, type UsageDayView, type UsageRequest, type UsageRequestParse, type UsageView, type UsageWindowRefusal, } from "./usage.js";
28
- export { BILLING_ACTIVATION_MODES, BILLING_AMOUNT_SCALE, BILLING_BLOCK_REASONS, BILLING_CURRENCY, BILLING_ENTRY_KINDS, BILLING_LEDGER_ENTRY_NOTES, BILLING_PAYMENT_KINDS, BILLING_PAYMENT_STATES, BILLING_NOTICE_KINDS, billingAutoTopUpApplyRequestSchema, billingAutoTopUpConfigurationSchema, billingAutoTopUpPreviewRequestSchema, billingAutoTopUpPreviewSchema, billingAutoTopUpRuleSchema, billingBudgetPolicySchema, billingBudgetUpdateRequestHeadersSchema, billingBudgetUpdateRequestSchema, billingBudgetUpdateResponseSchema, billingCeilingUpdateRequestSchema, billingFundingQuoteRequestSchema, billingFundingQuoteSchema, billingFundingViewSchema, billingNoticePageSchema, billingNoticeRecoveryPathSchema, billingNoticeSchema, billingNotificationSettingsSchema, billingNotificationSettingsUpdateRequestSchema, billingLedgerEntrySchema, billingLedgerPageSchema, billingLedgerRequestSchema, billingPaymentOperationSchema, billingPeriodSummarySchema, billingPurchaseRequestSchema, billingRefundRequestCreateSchema, billingRefundResolutionRequestSchema, billingRefundRequestViewSchema, billingSummarySchema, exactCentMoneySchema, manualFundingCreditSchema, microdollarAmountSchema, nonnegativeMicrodollarAmountSchema, type BillingAutoTopUpApplyRequest, type BillingAutoTopUpConfiguration, type BillingAutoTopUpPreview, type BillingAutoTopUpPreviewRequest, type BillingAutoTopUpRule, type BillingCeilingUpdateRequest, type BillingFundingQuote, type BillingFundingQuoteRequest, type BillingFundingView, type BillingNotice, type BillingNoticePage, type BillingNotificationSettings, type BillingNotificationSettingsUpdateRequest, type BillingLedgerEntryView, type BillingLedgerPage, type BillingLedgerRequest, type BillingBudgetUpdateRequest, type BillingBudgetUpdateResponse, type BillingPaymentOperation, type BillingPurchaseRequest, type BillingRefundRequestCreate, type BillingRefundResolutionRequest, type BillingRefundRequestView, type BillingSummaryView, } from "./billing.js";
29
- export { DELIVERY_TIMING_TARGETS_MS, DELIVERY_TIMING_VERDICTS, deliveryTimingSummarySchema, timingThresholdSummarySchema, type DeliveryTimingSummaryView, type TimingThresholdView, } from "./timing.js";
28
+ export { BILLING_ACTIVATION_MODES, BILLING_AMOUNT_SCALE, BILLING_BLOCK_REASONS, BILLING_CURRENCY, BILLING_ENTRY_KINDS, BILLING_LEDGER_ENTRY_NOTES, BILLING_PAYMENT_KINDS, BILLING_PAYMENT_STATES, BILLING_NOTICE_KINDS, DELIVERY_FAILURE_NOTICE_KINDS, billingAutoTopUpApplyRequestSchema, billingAutoTopUpConfigurationSchema, billingAutoTopUpPreviewRequestSchema, billingAutoTopUpPreviewSchema, billingAutoTopUpRuleSchema, billingBudgetPolicySchema, billingBudgetUpdateRequestHeadersSchema, billingBudgetUpdateRequestSchema, billingBudgetUpdateResponseSchema, billingCeilingUpdateRequestSchema, billingFundingQuoteRequestSchema, billingFundingQuoteSchema, billingFundingViewSchema, billingNoticeDismissRequestSchema, billingNoticeDismissResultSchema, billingNoticeListRequestSchema, billingNoticePageSchema, billingNoticeRecoveryPathSchema, billingNoticeSchema, billingNotificationSettingsSchema, billingNotificationSettingsUpdateRequestSchema, billingLedgerEntrySchema, billingLedgerPageSchema, billingLedgerRequestSchema, billingPaymentOperationSchema, billingPeriodSummarySchema, billingPurchaseRequestSchema, billingRefundRequestCreateSchema, billingRefundResolutionRequestSchema, billingRefundRequestViewSchema, billingSummarySchema, exactCentMoneySchema, manualFundingCreditSchema, microdollarAmountSchema, nonnegativeMicrodollarAmountSchema, type BillingAutoTopUpApplyRequest, type BillingAutoTopUpConfiguration, type BillingAutoTopUpPreview, type BillingAutoTopUpPreviewRequest, type BillingAutoTopUpRule, type BillingCeilingUpdateRequest, type BillingFundingQuote, type BillingFundingQuoteRequest, type BillingFundingView, type BillingNotice, type BillingNoticeDismissRequest, type BillingNoticeDismissResult, type BillingNoticeListRequest, type BillingNoticePage, type BillingNotificationSettings, type BillingNotificationSettingsUpdateRequest, type BillingLedgerEntryView, type BillingLedgerPage, type BillingLedgerRequest, type BillingBudgetUpdateRequest, type BillingBudgetUpdateResponse, type BillingPaymentOperation, type BillingPurchaseRequest, type BillingRefundRequestCreate, type BillingRefundResolutionRequest, type BillingRefundRequestView, type BillingSummaryView, } from "./billing.js";
29
+ export { DELIVERY_TIMING_POLICY_VERSION, DELIVERY_TIMING_TARGETS_MS, bandTimingSummarySchema, type BandTimingSummaryView, DELIVERY_TIMING_VERDICTS, deliveryTimingSummarySchema, timingThresholdSummarySchema, type DeliveryTimingSummaryView, type TimingThresholdView, } from "./timing.js";
30
30
  export { CALLBACK_RECEIVER_DISPOSITIONS, CALLBACK_RECEIVER_PROTOCOL, CALLBACK_RECEIVER_STATUS, TEST_SINK_BEHAVIORS, TEST_SINK_BEHAVIOR_FACTS, TEST_SINK_BOUNDS, TEST_SINK_CLIENT_ERROR_STATUSES, TEST_SINK_DISPOSITIONS, TEST_SINK_PROTOCOL_VERSION, TEST_SINK_SERVER_ERROR_STATUSES, callbackReceiverAcknowledgementSchema, callbackReceiverDispositionSchema, resolveTestSinkAction, testSinkBehaviorSchema, testSinkCreateRequestSchema, testSinkDeliveryBodySchema, testSinkDispositionSchema, testSinkDeliveryPageSchema, testSinkDeliverySchema, testSinkPageSchema, testSinkProgramSchema, testSinkSchema, type CallbackReceiverAcknowledgement, type CallbackReceiverDisposition, type TestSink, type TestSinkAction, type TestSinkBehavior, type TestSinkCreateRequest, type TestSinkDelivery, type TestSinkDeliveryBody, type TestSinkDeliveryPage, type TestSinkDisposition, type TestSinkPage, type TestSinkProgram, } from "./test-sink.js";
31
31
  export { PROMOTION_BENEFIT_KINDS, billingPromotionsSchema, billingRedeemRequestSchema, billingRedeemResponseSchema, promotionCodeSchema, promotionGrantViewSchema, type BillingPromotions, type BillingRedeemResponse, type PromotionGrantView, PROJECT_BILLING_ACTIONS, projectBillingQuoteRequestSchema, projectBillingQuoteSchema, projectBillingChangeRequestSchema, projectBillingStateSchema, billingPortalSchema, BILLING_PAYMENT_METHOD_REQUIRED_TITLE, billingPaymentMethodSchema, billingPaymentMethodSetupRequestSchema, billingPaymentMethodConfirmRequestSchema, billingPaymentMethodRemoveRequestSchema, billingInvoiceSchema, billingInvoiceListSchema, billingPaymentHistoryPageSchema, billingInvoiceHistoryPageSchema, type BillingPaymentHistoryPage, type BillingInvoiceHistoryPage, type BillingInvoice, type BillingInvoiceList, type BillingPaymentMethod, type BillingPaymentMethodSetupRequest, type BillingPaymentMethodConfirmRequest, type BillingPaymentMethodRemoveRequest, type ProjectBillingQuoteRequest, type ProjectBillingQuote, type ProjectBillingChangeRequest, type ProjectBillingState, } from "./billing.js";
32
32
  export { effectiveCustomerLimitsSchema, type EffectiveCustomerLimits, } from "./effective-limits.js";
33
33
  export * from "./members.js";
34
34
  export * from "./http-request.js";
35
35
  export { sanitizedDiagnosticText, diagnosticBodyText, responseBodySentence, requestCaptureSentence, attemptStatusGuidance, } from "./attempt-diagnostics.js";
36
- export { PROJECT_NOTIFICATION_OPERATIONS, notificationEmailRecipientsSchema, notificationEmailSettingsSchema, statusWebhookEventSchema, statusWebhookConfigurationSchema, projectNotificationSettingsSchema, projectNotificationSettingsUpdateRequestSchema, statusSigningKeyRequestSchema, statusSigningKeyCreatedSchema, statusWebhookPayloadSchema, statusWebhookDeliverySchema, statusWebhookDeliveryPageSchema, type ProjectNotificationSettings, type ProjectNotificationSettingsUpdateRequest, type StatusSigningKeyCreated, type StatusWebhookEvent, type StatusWebhookPayload, type StatusWebhookDelivery, type StatusWebhookDeliveryPage, } from "./project-notifications.js";
36
+ export { PROJECT_NOTIFICATION_OPERATIONS, notificationEmailRecipientsSchema, notificationEmailSettingsSchema, statusWebhookEventSchema, statusWebhookConfigurationSchema, statusWebhookEndpointConfigurationSchema, projectNotificationSettingsSchema, projectNotificationSettingsUpdateRequestSchema, statusSigningKeyRequestSchema, statusSigningKeyCreatedSchema, statusWebhookPayloadSchema, statusWebhookDeliverySchema, statusWebhookDeliveryPageSchema, type ProjectNotificationSettings, type ProjectNotificationSettingsUpdateRequest, type StatusSigningKeyCreated, type StatusWebhookEvent, type StatusWebhookPayload, type StatusWebhookDelivery, type StatusWebhookDeliveryPage, } from "./project-notifications.js";
37
37
  export { externalIdentifierSchema, scheduleTagSchema, scheduleTagsSchema, } from "./host-correlation.js";
38
38
  export { scheduleSelectionSchema, normalizeScheduleSelection, type ScheduleSelection, } from "./schedule-selection.js";
39
39
  export * from "./bulk-operations.js";
40
40
  export { executionSelectionSchema, normalizeExecutionSelection, type ExecutionSelection, } from "./execution-selection.js";
41
41
  export { bulkJobIdSchema } from "./identifiers.js";
42
42
  export * from "./attempt-search.js";
43
+ export { REQUESTED_LATENCY_CLASSES, SERVICE_BANDS, bandLatencyClass, oneOffSpacingMs, recurrenceSpacingMs, replacementMode, resolveOccurrence, resolveService, roundEligibilityMs, type RequestedLatencyClass, type OccurrenceResolution, type ResolvedLatencyClass, type ServiceBand, type ServiceResolution, type StoredRequestedLatencyClass, } from "./service-mode.js";