@agent-vm/gateway-control-contracts 0.0.112 → 0.0.114
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.
- package/dist/index.d.ts +227 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +795 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import {\n\tControlCorrelationSchema,\n\tControlRpcErrorSchema,\n\tControlRpcResultBaseSchema,\n\tControlSessionStateSchema,\n\ttype ControlSessionControllerToPeerEvents,\n\ttype ControlSessionPeerToControllerEvents,\n\tKnownControlDomainSchema,\n\ttype ControlDeliveryPolicy,\n\ttype ControlEnvelope,\n\ttype ControlMessageKind,\n} from '@agent-vm/control-protocol-contracts';\nimport { z } from 'zod/v4';\n\nexport const GatewayControlDomainSchema = z.literal('gateway_control');\n\nexport const GatewayControlRpcOperationSchema = z.enum([\n\t'control_ping',\n\t'caller_context_register',\n\t'lease_create',\n\t'lease_get',\n\t'lease_peek',\n\t'lease_reacquire',\n\t'lease_renew',\n\t'lease_release',\n\t'lease_use_start',\n\t'lease_use_heartbeat',\n\t'lease_use_end',\n\t'health_event',\n\t'runtime_status',\n\t'tool_portal_controller_host_action',\n\t'operation_cancel',\n\t'recovery_command',\n]);\n\nexport const GatewayControlRpcResultSchema = z.enum([\n\t...ControlRpcResultBaseSchema.options,\n\t'approval_required',\n\t'approval_stale',\n]);\n\nexport const GatewayControlForbiddenPayloadFieldSchema = z.enum([\n\t'adminToken',\n\t'agentId',\n\t'approvalProof',\n\t'argv',\n\t'controllerInstanceId',\n\t'cwd',\n\t'credentialProfileId',\n\t'egressPolicy',\n\t'env',\n\t'executablePath',\n\t'hostWorkMountDir',\n\t'profileId',\n\t'rawCredentialRef',\n\t'retryPolicy',\n\t'routeToken',\n\t'sessionKey',\n\t'sshIdentityPem',\n\t'vmGenerationOverride',\n\t'workMountDir',\n]);\n\nexport const GatewayControlCapabilityRefSchema = z\n\t.object({\n\t\tname: z.string().min(1),\n\t\tnamespace: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlToolCallCorrelationSchema = ControlCorrelationSchema.extend({\n\tcapability: GatewayControlCapabilityRefSchema.optional(),\n}).strict();\n\nexport const GatewayControlTrustedCallerContextIdSchema = z.string().uuid();\n\nexport const GatewayControlTrustedLeaseContextSchema = z\n\t.object({\n\t\tagentId: z.string().min(1),\n\t\tagentWorkspaceDir: z.string().min(1),\n\t\tapprovalScopeId: z.string().min(1).optional(),\n\t\tcallerContextId: GatewayControlTrustedCallerContextIdSchema,\n\t\tcustodyScopeId: z.string().min(1).optional(),\n\t\thostWorkMountDir: z.string().min(1),\n\t\tprofileId: z.string().min(1),\n\t\tsessionKeyDigest: z.string().min(32),\n\t\tworkMountDir: z.string().min(1),\n\t\tzoneId: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlCallerContextRefSchema = z\n\t.object({\n\t\tcallerContextId: GatewayControlTrustedCallerContextIdSchema,\n\t})\n\t.strict();\n\nexport const GatewayControlCallerContextProofAlgorithmSchema = z.literal('hmac-sha256');\n\nexport const GatewayControlCallerContextProofSchema = z\n\t.object({\n\t\talgorithm: GatewayControlCallerContextProofAlgorithmSchema,\n\t\tdigest: z.string().min(32),\n\t})\n\t.strict();\n\nexport const GatewayControlCallerContextAgentAuthoritySchema = z\n\t.object({\n\t\talgorithm: GatewayControlCallerContextProofAlgorithmSchema,\n\t\tdigest: z.string().min(32),\n\t\tkeyId: z.string().min(1),\n\t})\n\t.strict();\n\nexport interface GatewayControlCallerContextProofPayloadInput {\n\treadonly agentId: string;\n\treadonly agentWorkspaceDir: string;\n\treadonly purpose?: 'tool_vm_lease' | 'tool_portal_controller_host_action' | undefined;\n\treadonly sessionKey: string;\n\treadonly workMountDir: string;\n\treadonly zoneId: string;\n}\n\nexport function buildGatewayControlCallerContextProofPayload(\n\tinput: GatewayControlCallerContextProofPayloadInput,\n): string {\n\tconst purpose = input.purpose ?? 'tool_vm_lease';\n\treturn [\n\t\t'gateway-control-caller-context-v1',\n\t\tinput.zoneId,\n\t\tinput.agentId,\n\t\tinput.agentWorkspaceDir,\n\t\tinput.workMountDir,\n\t\tinput.sessionKey,\n\t\tpurpose,\n\t].join('\\u0000');\n}\n\nexport function buildGatewayControlCallerContextAgentAuthorityPayload(\n\tinput: GatewayControlCallerContextProofPayloadInput,\n): string {\n\tconst purpose = input.purpose ?? 'tool_vm_lease';\n\treturn [\n\t\t'gateway-control-agent-authority-v1',\n\t\tinput.zoneId,\n\t\tinput.agentId,\n\t\tinput.agentWorkspaceDir,\n\t\tinput.workMountDir,\n\t\tinput.sessionKey,\n\t\tpurpose,\n\t].join('\\u0000');\n}\n\nexport const GatewayControlCallerContextRegisterPayloadSchema = z\n\t.object({\n\t\tadapterEvidence: z\n\t\t\t.object({\n\t\t\t\tagentAuthority: GatewayControlCallerContextAgentAuthoritySchema,\n\t\t\t\tagentId: z.string().min(1),\n\t\t\t\tagentWorkspaceDir: z.string().min(1),\n\t\t\t\tproof: GatewayControlCallerContextProofSchema,\n\t\t\t\tpurpose: z.enum(['tool_vm_lease', 'tool_portal_controller_host_action']).optional(),\n\t\t\t\tsessionKey: z.string().min(1),\n\t\t\t\tworkMountDir: z.string().min(1),\n\t\t\t\tzoneId: z.string().min(1),\n\t\t\t})\n\t\t\t.strict(),\n\t\tcorrelation: GatewayControlToolCallCorrelationSchema.optional(),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseCreateIntentPayloadSchema = z\n\t.object({\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tcorrelation: GatewayControlToolCallCorrelationSchema.optional(),\n\t\tgatewayWorkspaceDir: z.string().min(1).optional(),\n\t\tidleTtlHintMs: z.number().int().positive().optional(),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseIdPayloadSchema = z\n\t.object({\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tleaseId: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseUseStartPayloadSchema = z\n\t.object({\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tcorrelation: GatewayControlToolCallCorrelationSchema.optional(),\n\t\tleaseId: z.string().min(1),\n\t\tuseId: z.string().uuid(),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseUseHeartbeatPayloadSchema = z\n\t.object({\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tleaseId: z.string().min(1),\n\t\tobservedAtMs: z.number().int().positive().optional(),\n\t\tuseId: z.string().uuid(),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseUseEndPayloadSchema = z\n\t.object({\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tleaseId: z.string().min(1),\n\t\treason: z.enum(['completed', 'failed', 'cancelled', 'timed_out']),\n\t\tuseId: z.string().uuid(),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseStaleEvidenceSchema = z.discriminatedUnion('kind', [\n\tz\n\t\t.object({\n\t\t\terrorCode: z.string().min(1).optional(),\n\t\t\tkind: z.literal('tool-vm-ssh'),\n\t\t\tobservedAtMs: z.number().int().positive(),\n\t\t\toperation: z.enum(['command', 'file-bridge', 'finalize', 'probe']),\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('caller-context'),\n\t\t\tobservedAtMs: z.number().int().positive(),\n\t\t\treason: z.enum(['absent', 'stale', 'session_mismatch', 'lease_authority_absent']).optional(),\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('lease-manager'),\n\t\t\tobservedAtMs: z.number().int().positive(),\n\t\t\treason: z.enum(['expired', 'released', 'force_released', 'generation_stale']).optional(),\n\t\t})\n\t\t.strict(),\n]);\n\nexport const GatewayControlLeaseReacquireIntentPayloadSchema = z\n\t.object({\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tcorrelation: GatewayControlToolCallCorrelationSchema.optional(),\n\t\tidleTtlHintMs: z.number().int().positive().optional(),\n\t\toldLeaseId: z.string().min(1),\n\t\tstaleEvidence: GatewayControlLeaseStaleEvidenceSchema,\n\t})\n\t.strict();\n\nexport const GatewayControlHealthEventResultSchema = z.enum([\n\t'ok',\n\t'failed',\n\t'timeout',\n\t'degraded',\n]);\n\nexport const GatewayControlProviderRuntimeHealthSchema = z.enum([\n\t'healthy',\n\t'transitioning',\n\t'unhealthy_recoverable',\n\t'unhealthy_unrecoverable',\n]);\n\nexport const GatewayControlLeaseRejectionReasonSchema = z.enum([\n\t'caller_context_absent',\n\t'caller_context_session_mismatch',\n\t'caller_context_stale',\n\t'lease_absent',\n\t'lease_authority_absent',\n\t'lease_force_released',\n\t'lease_generation_stale',\n\t'lease_reacquire_required',\n\t'lease_releasing',\n\t'lease_retired',\n\t'lease_use_tombstoned',\n\t'ownership_denied',\n\t'runtime_not_ready',\n]);\n\nexport const GatewayControlToolVmLeaseLifecycleEventRoleSchema = z.literal('plugin_observation');\n\nexport const GatewayControlToolVmLeaseLifecycleTransitionSchema = z.enum([\n\t'current_to_stale',\n\t'current_to_retired',\n\t'deprecated_to_reacquired',\n\t'deprecated_to_retired',\n\t'stale_to_reacquired',\n\t'stale_to_retired',\n\t'retired_rejected',\n]);\n\nexport const GatewayControlToolVmLeaseCallerContextStateSchema = z.enum([\n\t'ok',\n\t'absent',\n\t'stale',\n\t'session_mismatch',\n\t'not_applicable',\n]);\n\nexport const GatewayControlControllerRequestHealthOperationSchema = z.enum([\n\t'zone-git-push',\n\t'lease-create',\n\t'lease-get',\n\t'lease-peek',\n\t'lease-release',\n\t'lease-use-start',\n\t'lease-use-end',\n]);\n\nexport const GatewayControlSessionHealthOperationSchema = z.enum([\n\t'control-session-hello',\n\t'control-session-heartbeat',\n\t'control-session-disconnect',\n\t'control-session-reconnect',\n]);\n\nexport const GatewayControlToolVmSshHealthOperationSchema = z.enum([\n\t'command',\n\t'file-bridge',\n\t'finalize',\n\t'probe',\n]);\n\nconst GatewayControlToolVmLeaseReacquiredLifecycleTransitionSchema = z.enum([\n\t'deprecated_to_reacquired',\n\t'stale_to_reacquired',\n]);\n\nconst GatewayControlHealthEventBaseSchema = z\n\t.object({\n\t\tcorrelation: ControlCorrelationSchema.optional(),\n\t\tobservedAtMs: z.number().int().positive(),\n\t\tresult: GatewayControlHealthEventResultSchema,\n\t})\n\t.strict();\n\nconst GatewayControlToolVmSshHealthEventBaseSchema = GatewayControlHealthEventBaseSchema.extend({\n\tagentId: z.string().min(1),\n\telapsedMs: z.number().int().nonnegative(),\n\terrorCode: z.string().min(1).optional(),\n\teventKind: z.literal('tool-vm-ssh'),\n\tleaseId: z.string().min(1),\n\toperation: GatewayControlToolVmSshHealthOperationSchema,\n}).strict();\n\nconst GatewayControlToolVmSshLifecycleHealthEventSchema =\n\tGatewayControlToolVmSshHealthEventBaseSchema.extend({\n\t\tactiveUseId: z.string().min(1).optional(),\n\t\tcallerContextState: GatewayControlToolVmLeaseCallerContextStateSchema.optional(),\n\t\tleaseRejectionReason: GatewayControlLeaseRejectionReasonSchema.optional(),\n\t\tlifecycleEventRole: GatewayControlToolVmLeaseLifecycleEventRoleSchema,\n\t\tlifecycleTransition: GatewayControlToolVmLeaseLifecycleTransitionSchema,\n\t\toldLeaseId: z.string().min(1),\n\t\treplacementLeaseId: z.string().min(1).optional(),\n\t\ttransitionId: z.string().min(1),\n\t})\n\t\t.strict()\n\t\t.superRefine((event, context) => {\n\t\t\tconst isReacquiredTransition =\n\t\t\t\tGatewayControlToolVmLeaseReacquiredLifecycleTransitionSchema.safeParse(\n\t\t\t\t\tevent.lifecycleTransition,\n\t\t\t\t).success;\n\t\t\tif (isReacquiredTransition && event.replacementLeaseId === undefined) {\n\t\t\t\tcontext.addIssue({\n\t\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\t\tmessage: 'replacementLeaseId is required for reacquired lifecycle transitions',\n\t\t\t\t\tpath: ['replacementLeaseId'],\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (!isReacquiredTransition && event.replacementLeaseId !== undefined) {\n\t\t\t\tcontext.addIssue({\n\t\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\t\tmessage: 'replacementLeaseId is only valid for reacquired lifecycle transitions',\n\t\t\t\t\tpath: ['replacementLeaseId'],\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\nexport const GatewayControlHealthEventPayloadSchema = z.union([\n\tGatewayControlHealthEventBaseSchema.extend({\n\t\tchannelProviderId: z.string().min(1),\n\t\teventKind: z.literal('agent-channel-provider-health'),\n\t\tproviderRuntimeHealth: GatewayControlProviderRuntimeHealthSchema,\n\t\tsafeDetails: z.record(z.string(), z.string()).optional(),\n\t}).strict(),\n\tGatewayControlHealthEventBaseSchema.extend({\n\t\tattempt: z.number().int().positive(),\n\t\telapsedMs: z.number().int().nonnegative(),\n\t\terrorCode: z.string().min(1).optional(),\n\t\teventKind: z.literal('controller-request'),\n\t\tmaxAttempts: z.number().int().positive(),\n\t\toperation: GatewayControlControllerRequestHealthOperationSchema,\n\t\tstatusCode: z.number().int().positive().optional(),\n\t}).strict(),\n\tGatewayControlHealthEventBaseSchema.extend({\n\t\telapsedMs: z.number().int().nonnegative(),\n\t\teventKind: z.literal('gateway-control-session'),\n\t\toperation: GatewayControlSessionHealthOperationSchema,\n\t\tsafeDetails: z\n\t\t\t.object({\n\t\t\t\tpeerId: z.string().min(1),\n\t\t\t})\n\t\t\t.catchall(z.string()),\n\t}).strict(),\n\tGatewayControlHealthEventBaseSchema.extend({\n\t\teventKind: z.literal('gateway-plugin-health'),\n\t}).strict(),\n\tGatewayControlToolVmSshHealthEventBaseSchema,\n\tGatewayControlToolVmSshLifecycleHealthEventSchema,\n]);\n\nexport const GatewayControlRuntimeFindingSchema = z\n\t.object({\n\t\tid: z.string().min(1),\n\t\tok: z.boolean(),\n\t\tsafeMessage: z.string().min(1).optional(),\n\t\tseverity: z.enum(['info', 'warning', 'error']).optional(),\n\t})\n\t.strict();\n\nexport const GatewayControlRuntimeStatusPayloadSchema = z\n\t.object({\n\t\tfindings: z.array(GatewayControlRuntimeFindingSchema),\n\t\tobservedAtMs: z.number().int().positive(),\n\t\tproviderRuntimeHealth: z\n\t\t\t.enum(['healthy', 'transitioning', 'unhealthy_recoverable', 'unhealthy_unrecoverable'])\n\t\t\t.optional(),\n\t\tstatusKind: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlZoneGitPushControllerHostActionPayloadSchema = z\n\t.object({\n\t\tactionId: z.literal('zone_git_push'),\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tcorrelation: GatewayControlToolCallCorrelationSchema,\n\t\texpectedHead: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlControllerHostProbePayloadSchema = z\n\t.object({\n\t\tactionId: z.literal('controller_host_probe'),\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tcorrelation: GatewayControlToolCallCorrelationSchema,\n\t})\n\t.strict();\n\nexport const GatewayControlToolPortalControllerHostActionPayloadSchema = z.discriminatedUnion(\n\t'actionId',\n\t[\n\t\tGatewayControlZoneGitPushControllerHostActionPayloadSchema,\n\t\tGatewayControlControllerHostProbePayloadSchema,\n\t],\n);\n\nexport const GatewayControlZoneGitCommitSummarySchema = z\n\t.object({\n\t\tsha: z.string().min(1),\n\t\tsubject: z.string(),\n\t})\n\t.strict();\n\nexport const GatewayControlZoneGitPushResultSchema = z\n\t.object({\n\t\tbranch: z.string().min(1),\n\t\tlocalHead: z.string().min(1),\n\t\tpushedCommits: z.array(GatewayControlZoneGitCommitSummarySchema),\n\t\tremoteHead: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlControllerHostProbeResultSchema = z\n\t.object({\n\t\tentryNames: z.array(z.string().min(1)).max(64),\n\t\tprobeKind: z.literal('controller_cache_dir_listing'),\n\t})\n\t.strict();\n\nexport const GatewayControlZoneGitPushControllerHostActionResultSchema = z\n\t.object({\n\t\tactionId: z.literal('zone_git_push'),\n\t\tresult: GatewayControlZoneGitPushResultSchema,\n\t})\n\t.strict();\n\nexport const GatewayControlControllerHostProbeActionResultSchema = z\n\t.object({\n\t\tactionId: z.literal('controller_host_probe'),\n\t\tresult: GatewayControlControllerHostProbeResultSchema,\n\t})\n\t.strict();\n\nexport const GatewayControlToolPortalControllerHostActionResultSchema = z.discriminatedUnion(\n\t'actionId',\n\t[\n\t\tGatewayControlZoneGitPushControllerHostActionResultSchema,\n\t\tGatewayControlControllerHostProbeActionResultSchema,\n\t],\n);\n\nexport const GatewayControlActiveOperationIdSchema = z.string().uuid();\n\nexport const GatewayInitiatedOperationCancelPayloadSchema = z\n\t.object({\n\t\tactiveOperationId: GatewayControlActiveOperationIdSchema,\n\t\tinitiatedBy: z.literal('gateway'),\n\t\treason: z.enum(['caller_cancelled', 'gateway_shutdown', 'operation_failed']),\n\t})\n\t.strict();\n\nexport const ControllerInitiatedGatewayOperationCancelPayloadSchema = z\n\t.object({\n\t\tactiveOperationId: GatewayControlActiveOperationIdSchema,\n\t\tinitiatedBy: z.literal('controller'),\n\t\treason: z.enum(['controller_recovery', 'operator_cancelled', 'timeout']),\n\t})\n\t.strict();\n\nexport const GatewayControlOperationCancelPayloadSchema = z.discriminatedUnion('initiatedBy', [\n\tGatewayInitiatedOperationCancelPayloadSchema,\n\tControllerInitiatedGatewayOperationCancelPayloadSchema,\n]);\n\nexport const GatewayControlRecoveryCommandPayloadSchema = z.discriminatedUnion('action', [\n\tz.object({ action: z.literal('refresh_runtime_status') }).strict(),\n\tz.object({ action: z.literal('restart_control_service') }).strict(),\n\tz\n\t\t.object({\n\t\t\taction: z.literal('close_stale_session'),\n\t\t\ttargetSessionId: z.string().uuid(),\n\t\t})\n\t\t.strict(),\n]);\n\nexport const GatewayControlPingPayloadSchema = z.object({}).strict();\n\nexport const GatewayControlHeartbeatPayloadSchema = z\n\t.object({\n\t\telapsedMs: z.number().int().nonnegative().optional(),\n\t\tobservedAtMs: z.number().int().positive(),\n\t})\n\t.strict();\n\nexport const GatewayControlRpcErrorSchema = ControlRpcErrorSchema;\n\nexport const GatewayControlSessionStateSchema = ControlSessionStateSchema;\n\nexport const GatewayControlToolVmSshAccessSchema = z\n\t.object({\n\t\thost: z.string().min(1),\n\t\tidentityPem: z.string().min(1).optional(),\n\t\tknownHostsLine: z.string().optional(),\n\t\tport: z.number().int().positive(),\n\t\tuser: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseSnapshotSchema = z\n\t.object({\n\t\tagentId: z.string().min(1),\n\t\tactiveUseId: z.string().uuid().optional(),\n\t\texpiresAtMs: z.number().int().positive().optional(),\n\t\tidleTtlMs: z.number().int().positive(),\n\t\tleaseId: z.string().min(1),\n\t\tssh: GatewayControlToolVmSshAccessSchema.optional(),\n\t\tstate: z.enum(['idle', 'active', 'expired', 'released']),\n\t\ttcpSlot: z.number().int().nonnegative(),\n\t\ttransport: z.literal('ssh-sandbox'),\n\t\tworkdir: z.string().min(1),\n\t\tzoneId: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseUseSnapshotSchema = z\n\t.object({\n\t\texpiresAt: z.number().int().positive().optional(),\n\t\theartbeatAfterMs: z.number().int().positive().optional(),\n\t\tleaseId: z.string().min(1),\n\t\tstate: z.enum(['active', 'ended', 'expired']),\n\t\tuseId: z.string().uuid(),\n\t})\n\t.strict();\n\nexport const GatewayControlRpcDomainCorrelationSchema = ControlCorrelationSchema;\n\nconst GatewayControlRpcForbiddenResponseFieldsSchema = {\n\tactiveOperationId: z.never().optional(),\n\tapprovalRequired: z.never().optional(),\n\tcallerContext: z.never().optional(),\n\tcontrollerHostAction: z.never().optional(),\n\terror: z.never().optional(),\n\tlease: z.never().optional(),\n\tleaseRejectionReason: z.never().optional(),\n\tleaseUse: z.never().optional(),\n} as const;\n\nexport const GatewayControlRpcResponseBasePayloadSchema = z.object({\n\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\tresponseToMessageId: z.string().uuid(),\n\tresult: GatewayControlRpcResultSchema,\n});\n\nconst GatewayControlRpcErrorResponseResultSchema = z.enum([\n\t'failed',\n\t'timeout',\n\t'rejected',\n\t'cancelled',\n\t'stale_generation',\n\t'approval_required',\n\t'approval_stale',\n]);\n\nconst GatewayControlRpcResponseCorrelationSchema = z\n\t.object({\n\t\tresponseToMessageId: z.string().uuid(),\n\t})\n\t.strict();\n\nexport const GatewayControlRpcBareResponsePayloadSchema = z.discriminatedUnion('result', [\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\tresult: z.literal('ok'),\n\t}).strict(),\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\terror: GatewayControlRpcErrorSchema,\n\t\tresult: GatewayControlRpcErrorResponseResultSchema,\n\t}).strict(),\n]);\n\nexport const GatewayControlRpcCallerContextResponsePayloadSchema = z.discriminatedUnion('result', [\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tresult: z.literal('ok'),\n\t}).strict(),\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\terror: GatewayControlRpcErrorSchema,\n\t\tresult: GatewayControlRpcErrorResponseResultSchema,\n\t}).strict(),\n]);\n\nexport const GatewayControlRpcLeaseResponsePayloadSchema = z.discriminatedUnion('result', [\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\tlease: GatewayControlLeaseSnapshotSchema,\n\t\tresult: z.literal('ok'),\n\t}).strict(),\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\terror: GatewayControlRpcErrorSchema.optional(),\n\t\tleaseRejectionReason: GatewayControlLeaseRejectionReasonSchema,\n\t\tresult: z.literal('rejected'),\n\t}).strict(),\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\terror: GatewayControlRpcErrorSchema,\n\t\tleaseRejectionReason: GatewayControlLeaseRejectionReasonSchema.optional(),\n\t\tresult: z.enum([\n\t\t\t'failed',\n\t\t\t'timeout',\n\t\t\t'cancelled',\n\t\t\t'stale_generation',\n\t\t\t'approval_required',\n\t\t\t'approval_stale',\n\t\t]),\n\t}).strict(),\n]);\n\nexport const GatewayControlRpcLeaseUseResponsePayloadSchema = z.discriminatedUnion('result', [\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\tleaseUse: GatewayControlLeaseUseSnapshotSchema,\n\t\tresult: z.literal('ok'),\n\t}).strict(),\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\terror: GatewayControlRpcErrorSchema.optional(),\n\t\tleaseRejectionReason: GatewayControlLeaseRejectionReasonSchema,\n\t\tresult: z.literal('rejected'),\n\t}).strict(),\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\terror: GatewayControlRpcErrorSchema,\n\t\tleaseRejectionReason: GatewayControlLeaseRejectionReasonSchema.optional(),\n\t\tresult: z.enum([\n\t\t\t'failed',\n\t\t\t'timeout',\n\t\t\t'cancelled',\n\t\t\t'stale_generation',\n\t\t\t'approval_required',\n\t\t\t'approval_stale',\n\t\t]),\n\t}).strict(),\n]);\n\nexport const GatewayControlRpcControllerHostActionResponsePayloadSchema = z.discriminatedUnion(\n\t'result',\n\t[\n\t\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\t\tcontrollerHostAction: GatewayControlToolPortalControllerHostActionResultSchema,\n\t\t\tresult: z.literal('ok'),\n\t\t}).strict(),\n\t\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\t\terror: GatewayControlRpcErrorSchema,\n\t\t\tresult: GatewayControlRpcErrorResponseResultSchema,\n\t\t}).strict(),\n\t],\n);\n\nexport const GatewayControlRpcOperationCancelResponsePayloadSchema = z.discriminatedUnion(\n\t'result',\n\t[\n\t\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\t\tactiveOperationId: GatewayControlActiveOperationIdSchema,\n\t\t\tresult: z.literal('ok'),\n\t\t}).strict(),\n\t\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\t\tactiveOperationId: GatewayControlActiveOperationIdSchema.optional(),\n\t\t\terror: GatewayControlRpcErrorSchema,\n\t\t\tresult: GatewayControlRpcErrorResponseResultSchema,\n\t\t}).strict(),\n\t],\n);\n\nexport const GatewayControlRpcResponsePayloadSchema = z.union([\n\tGatewayControlRpcBareResponsePayloadSchema,\n\tGatewayControlRpcCallerContextResponsePayloadSchema,\n\tGatewayControlRpcLeaseResponsePayloadSchema,\n\tGatewayControlRpcLeaseUseResponsePayloadSchema,\n\tGatewayControlRpcControllerHostActionResponsePayloadSchema,\n\tGatewayControlRpcOperationCancelResponsePayloadSchema,\n]);\n\nconst GatewayControlRpcControlPingCommandResultMessageSchema =\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command_result'),\n\t\toperation: z.literal('control_ping'),\n\t\tpayload: GatewayControlRpcBareResponsePayloadSchema,\n\t}).strict();\n\nconst GatewayControlRpcCallerContextRegisterCommandResultMessageSchema =\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command_result'),\n\t\toperation: z.literal('caller_context_register'),\n\t\tpayload: GatewayControlRpcCallerContextResponsePayloadSchema,\n\t}).strict();\n\nconst GatewayControlRpcLeaseCommandResultMessageSchema =\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command_result'),\n\t\toperation: z.enum([\n\t\t\t'lease_create',\n\t\t\t'lease_get',\n\t\t\t'lease_peek',\n\t\t\t'lease_reacquire',\n\t\t\t'lease_renew',\n\t\t\t'lease_release',\n\t\t]),\n\t\tpayload: GatewayControlRpcLeaseResponsePayloadSchema,\n\t}).strict();\n\nconst GatewayControlRpcLeaseUseCommandResultMessageSchema =\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command_result'),\n\t\toperation: z.enum(['lease_use_start', 'lease_use_heartbeat', 'lease_use_end']),\n\t\tpayload: GatewayControlRpcLeaseUseResponsePayloadSchema,\n\t}).strict();\n\nconst GatewayControlRpcControllerHostActionCommandResultMessageSchema =\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command_result'),\n\t\toperation: z.literal('tool_portal_controller_host_action'),\n\t\tpayload: GatewayControlRpcControllerHostActionResponsePayloadSchema,\n\t}).strict();\n\nconst GatewayControlRpcOperationCancelCommandResultMessageSchema =\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command_result'),\n\t\toperation: z.literal('operation_cancel'),\n\t\tpayload: GatewayControlRpcOperationCancelResponsePayloadSchema,\n\t}).strict();\n\nconst GatewayControlRpcRecoveryCommandResultMessageSchema =\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command_result'),\n\t\toperation: z.literal('recovery_command'),\n\t\tpayload: GatewayControlRpcBareResponsePayloadSchema,\n\t}).strict();\n\nconst GatewayControlHeartbeatMessageSchema = z\n\t.object({\n\t\tkind: z.literal('heartbeat'),\n\t\toperation: z.never().optional(),\n\t\tpayload: GatewayControlHeartbeatPayloadSchema,\n\t})\n\t.strict();\n\nexport const GatewayControlRpcCommandResultMessageSchema = z.discriminatedUnion('operation', [\n\tGatewayControlRpcControlPingCommandResultMessageSchema,\n\tGatewayControlRpcCallerContextRegisterCommandResultMessageSchema,\n\tGatewayControlRpcLeaseCommandResultMessageSchema,\n\tGatewayControlRpcLeaseUseCommandResultMessageSchema,\n\tGatewayControlRpcControllerHostActionCommandResultMessageSchema,\n\tGatewayControlRpcOperationCancelCommandResultMessageSchema,\n\tGatewayControlRpcRecoveryCommandResultMessageSchema,\n]);\n\nexport const GatewayControlRpcCommandMessageSchema = z.discriminatedUnion('operation', [\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('control_ping'),\n\t\tpayload: GatewayControlPingPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('caller_context_register'),\n\t\tpayload: GatewayControlCallerContextRegisterPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_create'),\n\t\tpayload: GatewayControlLeaseCreateIntentPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_get'),\n\t\tpayload: GatewayControlLeaseIdPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_peek'),\n\t\tpayload: GatewayControlLeaseIdPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_reacquire'),\n\t\tpayload: GatewayControlLeaseReacquireIntentPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_renew'),\n\t\tpayload: GatewayControlLeaseIdPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_release'),\n\t\tpayload: GatewayControlLeaseIdPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_use_start'),\n\t\tpayload: GatewayControlLeaseUseStartPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_use_heartbeat'),\n\t\tpayload: GatewayControlLeaseUseHeartbeatPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_use_end'),\n\t\tpayload: GatewayControlLeaseUseEndPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('tool_portal_controller_host_action'),\n\t\tpayload: GatewayControlToolPortalControllerHostActionPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('operation_cancel'),\n\t\tpayload: GatewayControlOperationCancelPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('recovery_command'),\n\t\tpayload: GatewayControlRecoveryCommandPayloadSchema,\n\t}).strict(),\n]);\n\nexport const GatewayControlRpcEventMessageSchema = z.discriminatedUnion('operation', [\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('event'),\n\t\toperation: z.literal('health_event'),\n\t\tpayload: GatewayControlHealthEventPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('event'),\n\t\toperation: z.literal('runtime_status'),\n\t\tpayload: GatewayControlRuntimeStatusPayloadSchema,\n\t}).strict(),\n]);\n\nexport const GatewayControlEventOnlyOperationSchema = z.enum(['health_event', 'runtime_status']);\n\nexport const GatewayControlRpcCommandResultOperationSchema =\n\tGatewayControlRpcOperationSchema.exclude(GatewayControlEventOnlyOperationSchema.options);\n\nexport const GatewayControlRpcMessageSchema = z.union([\n\tGatewayControlHeartbeatMessageSchema,\n\tGatewayControlRpcCommandMessageSchema,\n\tGatewayControlRpcEventMessageSchema,\n\tGatewayControlRpcCommandResultMessageSchema,\n]);\n\nexport const gatewayControlDeliveryPolicyByKind = {\n\theartbeat: 'critical_idempotent',\n} as const satisfies Partial<Record<ControlMessageKind, ControlDeliveryPolicy>>;\n\nexport const gatewayControlDeliveryPolicyByOperation = {\n\tcaller_context_register: 'critical_idempotent',\n\tcontrol_ping: 'acked_idempotent',\n\thealth_event: 'append_only_observation',\n\tlease_create: 'critical_idempotent',\n\tlease_get: 'acked_idempotent',\n\tlease_peek: 'acked_idempotent',\n\tlease_reacquire: 'critical_idempotent',\n\tlease_release: 'acked_idempotent',\n\tlease_renew: 'single_use_critical',\n\tlease_use_end: 'acked_idempotent',\n\tlease_use_heartbeat: 'single_use_critical',\n\tlease_use_start: 'critical_idempotent',\n\toperation_cancel: 'acked_idempotent',\n\trecovery_command: 'critical_idempotent',\n\truntime_status: 'latest_wins',\n\ttool_portal_controller_host_action: 'single_use_critical',\n} as const satisfies Record<GatewayControlRpcOperation, ControlDeliveryPolicy>;\n\nexport function deriveGatewayControlDeliveryPolicy(\n\tenvelope: Pick<ControlEnvelope, 'idempotencyKey' | 'kind' | 'operation'>,\n): ControlDeliveryPolicy {\n\tif (envelope.operation === 'lease_create' && envelope.idempotencyKey === undefined) {\n\t\treturn 'single_use_critical';\n\t}\n\tconst parsedOperation = GatewayControlRpcOperationSchema.safeParse(envelope.operation);\n\tif (parsedOperation.success) {\n\t\tconst operationPolicy = gatewayControlDeliveryPolicyByOperation[parsedOperation.data];\n\t\tif (operationPolicy !== undefined) {\n\t\t\treturn operationPolicy;\n\t\t}\n\t}\n\tconst kindPolicy =\n\t\tenvelope.kind === 'heartbeat' ? gatewayControlDeliveryPolicyByKind.heartbeat : undefined;\n\tif (kindPolicy !== undefined) {\n\t\treturn kindPolicy;\n\t}\n\tthrow new Error(\n\t\t`no gateway control delivery policy for ${envelope.kind}:${envelope.operation ?? '<none>'}`,\n\t);\n}\n\nexport function assertGatewayControlEnvelopeDeliveryPolicy(envelope: ControlEnvelope): void {\n\tconst derivedPolicy = deriveGatewayControlDeliveryPolicy(envelope);\n\tif (envelope.deliveryPolicy !== derivedPolicy) {\n\t\tthrow new Error(\n\t\t\t`control delivery policy mismatch: ${envelope.deliveryPolicy} !== ${derivedPolicy}`,\n\t\t);\n\t}\n}\n\nexport const gatewayControlCommandExecutionTimeoutMsByOperation = {\n\tcaller_context_register: 5_000,\n\tcontrol_ping: 5_000,\n\thealth_event: 5_000,\n\tlease_create: 180_000,\n\tlease_get: 5_000,\n\tlease_peek: 5_000,\n\tlease_reacquire: 180_000,\n\tlease_release: 5_000,\n\tlease_renew: 10_000,\n\tlease_use_end: 5_000,\n\tlease_use_heartbeat: 5_000,\n\tlease_use_start: 10_000,\n\toperation_cancel: 5_000,\n\trecovery_command: 10_000,\n\truntime_status: 5_000,\n\ttool_portal_controller_host_action: 120_000,\n} as const satisfies Record<GatewayControlRpcOperation, number>;\n\nexport type GatewayControlRpcOperation = z.infer<typeof GatewayControlRpcOperationSchema>;\nexport type GatewayControlRpcMessage = z.infer<typeof GatewayControlRpcMessageSchema>;\nexport type GatewayControlControllerToGatewayEvents =\n\tControlSessionControllerToPeerEvents<GatewayControlRpcMessage>;\nexport type GatewayControlGatewayToControllerEvents =\n\tControlSessionPeerToControllerEvents<GatewayControlRpcMessage>;\nexport type GatewayControlCallerContextRef = z.infer<typeof GatewayControlCallerContextRefSchema>;\nexport type GatewayControlCallerContextProof = z.infer<\n\ttypeof GatewayControlCallerContextProofSchema\n>;\nexport type GatewayControlCallerContextAgentAuthority = z.infer<\n\ttypeof GatewayControlCallerContextAgentAuthoritySchema\n>;\nexport type GatewayControlCallerContextRegisterPayload = z.infer<\n\ttypeof GatewayControlCallerContextRegisterPayloadSchema\n>;\nexport type GatewayControlLeaseCreateIntentPayload = z.infer<\n\ttypeof GatewayControlLeaseCreateIntentPayloadSchema\n>;\nexport type GatewayControlLeaseIdPayload = z.infer<typeof GatewayControlLeaseIdPayloadSchema>;\nexport type GatewayControlLeaseReacquireIntentPayload = z.infer<\n\ttypeof GatewayControlLeaseReacquireIntentPayloadSchema\n>;\nexport type GatewayControlLeaseRejectionReason = z.infer<\n\ttypeof GatewayControlLeaseRejectionReasonSchema\n>;\nexport type GatewayControlLeaseStaleEvidence = z.infer<\n\ttypeof GatewayControlLeaseStaleEvidenceSchema\n>;\nexport type GatewayControlLeaseSnapshot = z.infer<typeof GatewayControlLeaseSnapshotSchema>;\nexport type GatewayControlLeaseUseEndPayload = z.infer<\n\ttypeof GatewayControlLeaseUseEndPayloadSchema\n>;\nexport type GatewayControlLeaseUseHeartbeatPayload = z.infer<\n\ttypeof GatewayControlLeaseUseHeartbeatPayloadSchema\n>;\nexport type GatewayControlLeaseUseSnapshot = z.infer<typeof GatewayControlLeaseUseSnapshotSchema>;\nexport type GatewayControlLeaseUseStartPayload = z.infer<\n\ttypeof GatewayControlLeaseUseStartPayloadSchema\n>;\nexport type GatewayControlProviderRuntimeHealth = z.infer<\n\ttypeof GatewayControlProviderRuntimeHealthSchema\n>;\nexport type GatewayControlHeartbeatPayload = z.infer<typeof GatewayControlHeartbeatPayloadSchema>;\nexport type GatewayControlHealthEventPayload = z.infer<\n\ttypeof GatewayControlHealthEventPayloadSchema\n>;\nexport type GatewayControlRuntimeStatusPayload = z.infer<\n\ttypeof GatewayControlRuntimeStatusPayloadSchema\n>;\nexport type GatewayControlControllerHostProbeResult = z.infer<\n\ttypeof GatewayControlControllerHostProbeResultSchema\n>;\nexport type GatewayControlToolPortalControllerHostActionPayload = z.infer<\n\ttypeof GatewayControlToolPortalControllerHostActionPayloadSchema\n>;\nexport type GatewayControlToolPortalControllerHostActionResult = z.infer<\n\ttypeof GatewayControlToolPortalControllerHostActionResultSchema\n>;\nexport type GatewayControlZoneGitPushResult = z.infer<typeof GatewayControlZoneGitPushResultSchema>;\n\nexport function buildGatewayControlJsonSchemas(): Readonly<Record<string, unknown>> {\n\treturn {\n\t\tdomain: z.toJSONSchema(GatewayControlDomainSchema, {\n\t\t\tio: 'input',\n\t\t\tunrepresentable: 'any',\n\t\t}),\n\t\tmessage: z.toJSONSchema(GatewayControlRpcMessageSchema, {\n\t\t\tio: 'input',\n\t\t\tunrepresentable: 'any',\n\t\t}),\n\t\toperation: z.toJSONSchema(GatewayControlRpcOperationSchema, {\n\t\t\tio: 'input',\n\t\t\tunrepresentable: 'any',\n\t\t}),\n\t};\n}\n\nexport function assertGatewayControlDomainRegistered(): 'gateway_control' {\n\treturn KnownControlDomainSchema.extract(['gateway_control']).parse('gateway_control');\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/gateway-control-admission.ts","../src/gateway-control-admission-executor.ts","../src/gateway-control-admission-classification.ts","../src/index.ts"],"sourcesContent":["export const GATEWAY_CONTROL_ADMISSION_LIMITS = {\n\tauthority: { maxBytes: 1_572_864, maxMessages: 96 },\n\tdiagnostic: { maxBytes: 1_048_576, maxMessages: 64 },\n\tliveness: { maxBytes: 1_048_576, maxMessages: 64 },\n\tmaxFrameBytes: 65_536,\n\tperPrincipalAuthority: { maxBytes: 131_072, maxMessages: 8 },\n\tsafety: { maxBytes: 524_288, maxMessages: 32 },\n} as const;\n\nexport const GATEWAY_CONTROL_PROCESS_ADMISSION_LIMITS = {\n\tmaxActiveSessions: 32,\n\tmaxNonSafetyBytes: 33_554_432,\n\tmaxNonSafetyMessages: 2_048,\n} as const;\n\nexport type GatewayControlAdmissionClass = 'authority' | 'diagnostic' | 'liveness' | 'safety';\n\nexport interface GatewayControlAdmissionMessage<TPayload> {\n\treadonly byteLength: number;\n\treadonly coalesceKey?: string;\n\treadonly id: string;\n\treadonly messageClass: GatewayControlAdmissionClass;\n\treadonly payload: TPayload;\n\treadonly stablePrincipal?: string;\n}\n\nexport type GatewayControlAdmissionResult<TPayload = unknown> =\n\t| { readonly status: 'admitted' }\n\t| {\n\t\t\treadonly replacedMessage: GatewayControlAdmissionMessage<TPayload>;\n\t\t\treadonly status: 'replaced';\n\t }\n\t| { readonly reason: 'diagnostic_capacity'; readonly status: 'dropped' }\n\t| { readonly reason: 'liveness_capacity'; readonly status: 'shed' }\n\t| { readonly reason: 'principal_capacity'; readonly status: 'refused' }\n\t| { readonly reason: 'global_capacity'; readonly status: 'dropped' | 'refused' | 'shed' }\n\t| {\n\t\t\treadonly reason:\n\t\t\t\t| 'authority_capacity'\n\t\t\t\t| 'frame_too_large'\n\t\t\t\t| 'invalid_message'\n\t\t\t\t| 'safety_capacity';\n\t\t\treadonly status: 'fence';\n\t };\n\ninterface QueueAccounting {\n\tbyteCount: number;\n\tmessageCount: number;\n}\n\ninterface AuthorityQueue<TPayload> extends QueueAccounting {\n\tmessages: GatewayControlAdmissionMessage<TPayload>[];\n}\n\nfunction dequeueFirstCoalescedMessage<TPayload>(\n\tmessages: Map<string, GatewayControlAdmissionMessage<TPayload>>,\n): GatewayControlAdmissionMessage<TPayload> | undefined {\n\tconst first = messages.entries().next().value;\n\tif (first === undefined) {\n\t\treturn undefined;\n\t}\n\tmessages.delete(first[0]);\n\treturn first[1];\n}\n\nexport interface GatewayControlAdmissionDiagnostics {\n\treadonly authorityBytes: number;\n\treadonly authorityMessages: number;\n\treadonly diagnosticBytes: number;\n\treadonly diagnosticMessages: number;\n\treadonly livenessBytes: number;\n\treadonly livenessMessages: number;\n\treadonly safetyBytes: number;\n\treadonly safetyMessages: number;\n\treadonly coalescedMessages: number;\n\treadonly droppedMessages: number;\n\treadonly fencedMessages: number;\n\treadonly refusedMessages: number;\n\treadonly shedMessages: number;\n}\n\nexport interface GatewayControlAdmissionCompletionToken {\n\treadonly completionTokenId: symbol;\n}\n\nexport interface GatewayControlAdmissionWork<TPayload> {\n\treadonly completionToken: GatewayControlAdmissionCompletionToken;\n\treadonly message: GatewayControlAdmissionMessage<TPayload>;\n}\n\nexport interface GatewayControlAdmissionScheduler<TPayload> {\n\tcancelQueued(): readonly GatewayControlAdmissionMessage<TPayload>[];\n\tcomplete(completionToken: GatewayControlAdmissionCompletionToken): void;\n\tdequeue(options?: {\n\t\treadonly allowedMessageClasses?: readonly GatewayControlAdmissionClass[];\n\t}): GatewayControlAdmissionWork<TPayload> | undefined;\n\tdiagnostics(): GatewayControlAdmissionDiagnostics;\n\tenqueue(\n\t\tmessage: GatewayControlAdmissionMessage<TPayload>,\n\t): GatewayControlAdmissionResult<TPayload>;\n}\n\nexport interface GatewayControlProcessAdmissionMessage<\n\tTPayload,\n> extends GatewayControlAdmissionMessage<TPayload> {\n\treadonly zoneId: string;\n}\n\nexport interface GatewayControlProcessAdmissionWork<TPayload> {\n\treadonly completionToken: GatewayControlAdmissionCompletionToken;\n\treadonly message: GatewayControlProcessAdmissionMessage<TPayload>;\n}\n\nexport interface GatewayControlProcessAdmission<TPayload> {\n\tcomplete(completionToken: GatewayControlAdmissionCompletionToken): void;\n\tdequeue(): GatewayControlProcessAdmissionWork<TPayload> | undefined;\n\tdiagnostics(): {\n\t\treadonly activeSessions: number;\n\t\treadonly nonSafetyBytes: number;\n\t\treadonly nonSafetyMessages: number;\n\t};\n\tenqueue(\n\t\tmessage: GatewayControlProcessAdmissionMessage<TPayload>,\n\t): GatewayControlAdmissionResult<TPayload>;\n\tregisterZone(zoneId: string): { readonly status: 'admitted' | 'capacity_refused' };\n\tunregisterZone(zoneId: string): void;\n}\n\nconst serviceCycle: readonly GatewayControlAdmissionClass[] = [\n\t'safety',\n\t'safety',\n\t'safety',\n\t'safety',\n\t'safety',\n\t'safety',\n\t'safety',\n\t'safety',\n\t'authority',\n\t'authority',\n\t'authority',\n\t'authority',\n\t'liveness',\n\t'liveness',\n\t'diagnostic',\n];\n\nfunction canReserve(\n\taccounting: QueueAccounting,\n\tbyteLength: number,\n\tlimits: { readonly maxBytes: number; readonly maxMessages: number },\n): boolean {\n\treturn (\n\t\taccounting.byteCount + byteLength <= limits.maxBytes &&\n\t\taccounting.messageCount + 1 <= limits.maxMessages\n\t);\n}\n\nfunction release(accounting: QueueAccounting, byteLength: number): void {\n\taccounting.byteCount -= byteLength;\n\taccounting.messageCount -= 1;\n}\n\nfunction requirePositiveLimit(name: string, value: number): void {\n\tif (!Number.isSafeInteger(value) || value <= 0) {\n\t\tthrow new RangeError(`${name} must be a positive safe integer.`);\n\t}\n}\n\nfunction validateMessage<TPayload>(\n\tmessage: GatewayControlAdmissionMessage<TPayload>,\n): GatewayControlAdmissionResult<TPayload> | undefined {\n\tif (\n\t\tmessage.id.length === 0 ||\n\t\t!Number.isSafeInteger(message.byteLength) ||\n\t\tmessage.byteLength <= 0\n\t) {\n\t\treturn { reason: 'invalid_message', status: 'fence' };\n\t}\n\tif (message.byteLength > GATEWAY_CONTROL_ADMISSION_LIMITS.maxFrameBytes) {\n\t\treturn { reason: 'frame_too_large', status: 'fence' };\n\t}\n\tif (\n\t\tmessage.messageClass === 'authority' &&\n\t\t(message.stablePrincipal === undefined || message.stablePrincipal.length === 0)\n\t) {\n\t\treturn { reason: 'invalid_message', status: 'fence' };\n\t}\n\tif (\n\t\t(message.messageClass === 'diagnostic' || message.messageClass === 'liveness') &&\n\t\t(message.coalesceKey === undefined || message.coalesceKey.length === 0)\n\t) {\n\t\treturn { reason: 'invalid_message', status: 'fence' };\n\t}\n\treturn undefined;\n}\n\nfunction isGatewayControlProcessAdmissionMessage<TPayload>(\n\tmessage: GatewayControlAdmissionMessage<TPayload>,\n): message is GatewayControlProcessAdmissionMessage<TPayload> {\n\treturn 'zoneId' in message && typeof message.zoneId === 'string';\n}\n\nfunction gatewayControlProcessCoalescingKey<TPayload>(\n\tmessage: GatewayControlProcessAdmissionMessage<TPayload>,\n): string | undefined {\n\treturn message.messageClass === 'liveness' || message.messageClass === 'diagnostic'\n\t\t? `${message.messageClass}\\u0000${message.coalesceKey ?? ''}`\n\t\t: undefined;\n}\n\nexport function createGatewayControlAdmissionScheduler<\n\tTPayload,\n>(): GatewayControlAdmissionScheduler<TPayload> {\n\tconst safety: GatewayControlAdmissionMessage<TPayload>[] = [];\n\tconst safetyAccounting: QueueAccounting = { byteCount: 0, messageCount: 0 };\n\tconst authorityByPrincipal = new Map<string, AuthorityQueue<TPayload>>();\n\tconst authorityPrincipalOrder: string[] = [];\n\tconst authorityAccounting: QueueAccounting = { byteCount: 0, messageCount: 0 };\n\tconst livenessByKey = new Map<string, GatewayControlAdmissionMessage<TPayload>>();\n\tconst livenessAccounting: QueueAccounting = { byteCount: 0, messageCount: 0 };\n\tconst diagnosticByKey = new Map<string, GatewayControlAdmissionMessage<TPayload>>();\n\tconst diagnosticAccounting: QueueAccounting = { byteCount: 0, messageCount: 0 };\n\tconst inFlightMessages = new Map<\n\t\tGatewayControlAdmissionCompletionToken,\n\t\tGatewayControlAdmissionMessage<TPayload>\n\t>();\n\tlet serviceCursor = 0;\n\tlet authorityPrincipalCursor = 0;\n\tlet coalescedMessages = 0;\n\tlet droppedMessages = 0;\n\tlet fencedMessages = 0;\n\tlet refusedMessages = 0;\n\tlet shedMessages = 0;\n\n\tconst dequeueAuthority = (): GatewayControlAdmissionMessage<TPayload> | undefined => {\n\t\tif (authorityPrincipalOrder.length === 0) {\n\t\t\treturn undefined;\n\t\t}\n\t\tfor (let offset = 0; offset < authorityPrincipalOrder.length; offset += 1) {\n\t\t\tconst index = (authorityPrincipalCursor + offset) % authorityPrincipalOrder.length;\n\t\t\tconst principal = authorityPrincipalOrder[index];\n\t\t\tif (principal === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst queue = authorityByPrincipal.get(principal);\n\t\t\tconst message = queue?.messages.shift();\n\t\t\tif (queue === undefined || message === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tauthorityPrincipalCursor = (index + 1) % authorityPrincipalOrder.length;\n\t\t\treturn message;\n\t\t}\n\t\treturn undefined;\n\t};\n\n\tconst dequeueClass = (\n\t\tmessageClass: GatewayControlAdmissionClass,\n\t): GatewayControlAdmissionMessage<TPayload> | undefined => {\n\t\tswitch (messageClass) {\n\t\t\tcase 'safety': {\n\t\t\t\tconst message = safety.shift();\n\t\t\t\treturn message;\n\t\t\t}\n\t\t\tcase 'authority':\n\t\t\t\treturn dequeueAuthority();\n\t\t\tcase 'liveness':\n\t\t\t\treturn dequeueFirstCoalescedMessage(livenessByKey);\n\t\t\tcase 'diagnostic':\n\t\t\t\treturn dequeueFirstCoalescedMessage(diagnosticByKey);\n\t\t}\n\t\tthrow new Error('unsupported gateway control admission class');\n\t};\n\n\treturn {\n\t\tcancelQueued() {\n\t\t\tconst cancelled: GatewayControlAdmissionMessage<TPayload>[] = [];\n\t\t\tfor (const message of safety.splice(0)) {\n\t\t\t\trelease(safetyAccounting, message.byteLength);\n\t\t\t\tcancelled.push(message);\n\t\t\t}\n\t\t\tfor (const [principal, queue] of authorityByPrincipal) {\n\t\t\t\tfor (const message of queue.messages.splice(0)) {\n\t\t\t\t\trelease(queue, message.byteLength);\n\t\t\t\t\trelease(authorityAccounting, message.byteLength);\n\t\t\t\t\tcancelled.push(message);\n\t\t\t\t}\n\t\t\t\tif (queue.messageCount === 0) {\n\t\t\t\t\tauthorityByPrincipal.delete(principal);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let index = authorityPrincipalOrder.length - 1; index >= 0; index -= 1) {\n\t\t\t\tif (!authorityByPrincipal.has(authorityPrincipalOrder[index] ?? '')) {\n\t\t\t\t\tauthorityPrincipalOrder.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t\tauthorityPrincipalCursor =\n\t\t\t\tauthorityPrincipalOrder.length === 0\n\t\t\t\t\t? 0\n\t\t\t\t\t: Math.min(authorityPrincipalCursor, authorityPrincipalOrder.length - 1);\n\t\t\tfor (const message of livenessByKey.values()) {\n\t\t\t\trelease(livenessAccounting, message.byteLength);\n\t\t\t\tcancelled.push(message);\n\t\t\t}\n\t\t\tlivenessByKey.clear();\n\t\t\tfor (const message of diagnosticByKey.values()) {\n\t\t\t\trelease(diagnosticAccounting, message.byteLength);\n\t\t\t\tcancelled.push(message);\n\t\t\t}\n\t\t\tdiagnosticByKey.clear();\n\t\t\treturn cancelled;\n\t\t},\n\t\tcomplete(completionToken) {\n\t\t\tconst message = inFlightMessages.get(completionToken);\n\t\t\tif (message === undefined || !inFlightMessages.delete(completionToken)) {\n\t\t\t\tthrow new Error('gateway control admission message is not in flight');\n\t\t\t}\n\t\t\tswitch (message.messageClass) {\n\t\t\t\tcase 'safety':\n\t\t\t\t\trelease(safetyAccounting, message.byteLength);\n\t\t\t\t\treturn;\n\t\t\t\tcase 'authority': {\n\t\t\t\t\tconst principal = message.stablePrincipal ?? '';\n\t\t\t\t\tconst queue = authorityByPrincipal.get(principal);\n\t\t\t\t\tif (queue === undefined) {\n\t\t\t\t\t\tthrow new Error('gateway control authority principal is not admitted');\n\t\t\t\t\t}\n\t\t\t\t\trelease(queue, message.byteLength);\n\t\t\t\t\trelease(authorityAccounting, message.byteLength);\n\t\t\t\t\tif (queue.messageCount === 0) {\n\t\t\t\t\t\tauthorityByPrincipal.delete(principal);\n\t\t\t\t\t\tconst index = authorityPrincipalOrder.indexOf(principal);\n\t\t\t\t\t\tif (index >= 0) {\n\t\t\t\t\t\t\tauthorityPrincipalOrder.splice(index, 1);\n\t\t\t\t\t\t\tauthorityPrincipalCursor =\n\t\t\t\t\t\t\t\tauthorityPrincipalOrder.length === 0\n\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t: Math.min(authorityPrincipalCursor, authorityPrincipalOrder.length - 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcase 'liveness':\n\t\t\t\t\trelease(livenessAccounting, message.byteLength);\n\t\t\t\t\treturn;\n\t\t\t\tcase 'diagnostic':\n\t\t\t\t\trelease(diagnosticAccounting, message.byteLength);\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\t\tenqueue(message) {\n\t\t\tconst invalid = validateMessage(message);\n\t\t\tif (invalid !== undefined) {\n\t\t\t\tfencedMessages += 1;\n\t\t\t\treturn invalid;\n\t\t\t}\n\t\t\tswitch (message.messageClass) {\n\t\t\t\tcase 'safety':\n\t\t\t\t\tif (\n\t\t\t\t\t\t!canReserve(\n\t\t\t\t\t\t\tsafetyAccounting,\n\t\t\t\t\t\t\tmessage.byteLength,\n\t\t\t\t\t\t\tGATEWAY_CONTROL_ADMISSION_LIMITS.safety,\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tfencedMessages += 1;\n\t\t\t\t\t\treturn { reason: 'safety_capacity', status: 'fence' };\n\t\t\t\t\t}\n\t\t\t\t\tsafety.push(message);\n\t\t\t\t\tsafetyAccounting.byteCount += message.byteLength;\n\t\t\t\t\tsafetyAccounting.messageCount += 1;\n\t\t\t\t\treturn { status: 'admitted' };\n\t\t\t\tcase 'authority': {\n\t\t\t\t\tconst principal = message.stablePrincipal ?? '';\n\t\t\t\t\tconst queue = authorityByPrincipal.get(principal) ?? {\n\t\t\t\t\t\tbyteCount: 0,\n\t\t\t\t\t\tmessageCount: 0,\n\t\t\t\t\t\tmessages: [],\n\t\t\t\t\t};\n\t\t\t\t\tif (\n\t\t\t\t\t\t!canReserve(\n\t\t\t\t\t\t\tqueue,\n\t\t\t\t\t\t\tmessage.byteLength,\n\t\t\t\t\t\t\tGATEWAY_CONTROL_ADMISSION_LIMITS.perPrincipalAuthority,\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\trefusedMessages += 1;\n\t\t\t\t\t\treturn { reason: 'principal_capacity', status: 'refused' };\n\t\t\t\t\t}\n\t\t\t\t\tif (\n\t\t\t\t\t\t!canReserve(\n\t\t\t\t\t\t\tauthorityAccounting,\n\t\t\t\t\t\t\tmessage.byteLength,\n\t\t\t\t\t\t\tGATEWAY_CONTROL_ADMISSION_LIMITS.authority,\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tfencedMessages += 1;\n\t\t\t\t\t\treturn { reason: 'authority_capacity', status: 'fence' };\n\t\t\t\t\t}\n\t\t\t\t\tif (!authorityByPrincipal.has(principal)) {\n\t\t\t\t\t\tauthorityByPrincipal.set(principal, queue);\n\t\t\t\t\t\tauthorityPrincipalOrder.push(principal);\n\t\t\t\t\t}\n\t\t\t\t\tqueue.messages.push(message);\n\t\t\t\t\tqueue.byteCount += message.byteLength;\n\t\t\t\t\tqueue.messageCount += 1;\n\t\t\t\t\tauthorityAccounting.byteCount += message.byteLength;\n\t\t\t\t\tauthorityAccounting.messageCount += 1;\n\t\t\t\t\treturn { status: 'admitted' };\n\t\t\t\t}\n\t\t\t\tcase 'liveness':\n\t\t\t\tcase 'diagnostic': {\n\t\t\t\t\tconst isLiveness = message.messageClass === 'liveness';\n\t\t\t\t\tconst messages = isLiveness ? livenessByKey : diagnosticByKey;\n\t\t\t\t\tconst accounting = isLiveness ? livenessAccounting : diagnosticAccounting;\n\t\t\t\t\tconst limits = isLiveness\n\t\t\t\t\t\t? GATEWAY_CONTROL_ADMISSION_LIMITS.liveness\n\t\t\t\t\t\t: GATEWAY_CONTROL_ADMISSION_LIMITS.diagnostic;\n\t\t\t\t\tconst key = message.coalesceKey ?? '';\n\t\t\t\t\tconst prior = messages.get(key);\n\t\t\t\t\tconst nextBytes = accounting.byteCount - (prior?.byteLength ?? 0) + message.byteLength;\n\t\t\t\t\tconst nextMessages = accounting.messageCount + (prior === undefined ? 1 : 0);\n\t\t\t\t\tif (nextBytes > limits.maxBytes || nextMessages > limits.maxMessages) {\n\t\t\t\t\t\tif (isLiveness) {\n\t\t\t\t\t\t\tshedMessages += 1;\n\t\t\t\t\t\t\treturn { reason: 'liveness_capacity', status: 'shed' };\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdroppedMessages += 1;\n\t\t\t\t\t\treturn { reason: 'diagnostic_capacity', status: 'dropped' };\n\t\t\t\t\t}\n\t\t\t\t\tmessages.set(key, message);\n\t\t\t\t\taccounting.byteCount = nextBytes;\n\t\t\t\t\taccounting.messageCount = nextMessages;\n\t\t\t\t\tif (prior !== undefined) {\n\t\t\t\t\t\tcoalescedMessages += 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn prior === undefined\n\t\t\t\t\t\t? { status: 'admitted' }\n\t\t\t\t\t\t: { replacedMessage: prior, status: 'replaced' };\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow new Error('unsupported gateway control admission class');\n\t\t},\n\t\tdequeue(options = {}) {\n\t\t\tfor (let offset = 0; offset < serviceCycle.length; offset += 1) {\n\t\t\t\tconst index = (serviceCursor + offset) % serviceCycle.length;\n\t\t\t\tconst messageClass = serviceCycle[index];\n\t\t\t\tif (messageClass === undefined) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\toptions.allowedMessageClasses !== undefined &&\n\t\t\t\t\t!options.allowedMessageClasses.includes(messageClass)\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst message = dequeueClass(messageClass);\n\t\t\t\tif (message !== undefined) {\n\t\t\t\t\tserviceCursor = (index + 1) % serviceCycle.length;\n\t\t\t\t\tconst completionToken = Object.freeze({\n\t\t\t\t\t\tcompletionTokenId: Symbol('gateway-control-admission-completion'),\n\t\t\t\t\t}) satisfies GatewayControlAdmissionCompletionToken;\n\t\t\t\t\tinFlightMessages.set(completionToken, message);\n\t\t\t\t\treturn { completionToken, message };\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tdiagnostics() {\n\t\t\treturn {\n\t\t\t\tauthorityBytes: authorityAccounting.byteCount,\n\t\t\t\tauthorityMessages: authorityAccounting.messageCount,\n\t\t\t\tdiagnosticBytes: diagnosticAccounting.byteCount,\n\t\t\t\tdiagnosticMessages: diagnosticAccounting.messageCount,\n\t\t\t\tlivenessBytes: livenessAccounting.byteCount,\n\t\t\t\tlivenessMessages: livenessAccounting.messageCount,\n\t\t\t\tsafetyBytes: safetyAccounting.byteCount,\n\t\t\t\tsafetyMessages: safetyAccounting.messageCount,\n\t\t\t\tcoalescedMessages,\n\t\t\t\tdroppedMessages,\n\t\t\t\tfencedMessages,\n\t\t\t\trefusedMessages,\n\t\t\t\tshedMessages,\n\t\t\t};\n\t\t},\n\t};\n}\n\nexport function createGatewayControlProcessAdmission<TPayload>(\n\toptions: {\n\t\treadonly maxActiveSessions?: number;\n\t\treadonly maxNonSafetyBytes?: number;\n\t\treadonly maxNonSafetyMessages?: number;\n\t} = {},\n): GatewayControlProcessAdmission<TPayload> {\n\tconst maxActiveSessions =\n\t\toptions.maxActiveSessions ?? GATEWAY_CONTROL_PROCESS_ADMISSION_LIMITS.maxActiveSessions;\n\tconst maxNonSafetyBytes =\n\t\toptions.maxNonSafetyBytes ?? GATEWAY_CONTROL_PROCESS_ADMISSION_LIMITS.maxNonSafetyBytes;\n\tconst maxNonSafetyMessages =\n\t\toptions.maxNonSafetyMessages ?? GATEWAY_CONTROL_PROCESS_ADMISSION_LIMITS.maxNonSafetyMessages;\n\tconst schedulersByZone = new Map<string, GatewayControlAdmissionScheduler<TPayload>>();\n\tconst queuedCoalescibleMessagesByZone = new Map<\n\t\tstring,\n\t\tMap<string, GatewayControlProcessAdmissionMessage<TPayload>>\n\t>();\n\tconst inFlightMessages = new Map<\n\t\tGatewayControlAdmissionCompletionToken,\n\t\tGatewayControlProcessAdmissionMessage<TPayload>\n\t>();\n\tconst zoneOrder: string[] = [];\n\tlet zoneCursor = 0;\n\tlet nonSafetyBytes = 0;\n\tlet nonSafetyMessages = 0;\n\n\trequirePositiveLimit('maxActiveSessions', maxActiveSessions);\n\trequirePositiveLimit('maxNonSafetyBytes', maxNonSafetyBytes);\n\trequirePositiveLimit('maxNonSafetyMessages', maxNonSafetyMessages);\n\n\treturn {\n\t\tcomplete(completionToken) {\n\t\t\tconst message = inFlightMessages.get(completionToken);\n\t\t\tif (message === undefined || !inFlightMessages.delete(completionToken)) {\n\t\t\t\tthrow new Error('gateway control process admission message is not in flight');\n\t\t\t}\n\t\t\tconst scheduler = schedulersByZone.get(message.zoneId);\n\t\t\tif (scheduler === undefined) {\n\t\t\t\tthrow new Error('gateway control process admission zone is not registered');\n\t\t\t}\n\t\t\tscheduler.complete(completionToken);\n\t\t\tif (message.messageClass !== 'safety') {\n\t\t\t\tnonSafetyMessages -= 1;\n\t\t\t\tnonSafetyBytes -= message.byteLength;\n\t\t\t}\n\t\t},\n\t\tregisterZone(zoneId) {\n\t\t\tif (zoneId.length === 0) {\n\t\t\t\treturn { status: 'capacity_refused' };\n\t\t\t}\n\t\t\tif (schedulersByZone.has(zoneId)) {\n\t\t\t\treturn { status: 'admitted' };\n\t\t\t}\n\t\t\tif (schedulersByZone.size >= maxActiveSessions) {\n\t\t\t\treturn { status: 'capacity_refused' };\n\t\t\t}\n\t\t\tschedulersByZone.set(zoneId, createGatewayControlAdmissionScheduler<TPayload>());\n\t\t\tqueuedCoalescibleMessagesByZone.set(zoneId, new Map());\n\t\t\tzoneOrder.push(zoneId);\n\t\t\treturn { status: 'admitted' };\n\t\t},\n\t\tunregisterZone(zoneId) {\n\t\t\tconst scheduler = schedulersByZone.get(zoneId);\n\t\t\tif (scheduler === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (;;) {\n\t\t\t\tconst work = scheduler.dequeue();\n\t\t\t\tif (work === undefined) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tconst { completionToken, message } = work;\n\t\t\t\tif (message.messageClass !== 'safety') {\n\t\t\t\t\tnonSafetyBytes -= message.byteLength;\n\t\t\t\t\tnonSafetyMessages -= 1;\n\t\t\t\t}\n\t\t\t\tscheduler.complete(completionToken);\n\t\t\t}\n\t\t\tfor (const [completionToken, message] of inFlightMessages) {\n\t\t\t\tif (message.zoneId !== zoneId) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tinFlightMessages.delete(completionToken);\n\t\t\t\tscheduler.complete(completionToken);\n\t\t\t\tif (message.messageClass !== 'safety') {\n\t\t\t\t\tnonSafetyBytes -= message.byteLength;\n\t\t\t\t\tnonSafetyMessages -= 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tschedulersByZone.delete(zoneId);\n\t\t\tqueuedCoalescibleMessagesByZone.delete(zoneId);\n\t\t\tconst index = zoneOrder.indexOf(zoneId);\n\t\t\tif (index >= 0) {\n\t\t\t\tzoneOrder.splice(index, 1);\n\t\t\t\tzoneCursor = zoneOrder.length === 0 ? 0 : Math.min(zoneCursor, zoneOrder.length - 1);\n\t\t\t}\n\t\t},\n\t\tenqueue(message) {\n\t\t\tconst scheduler = schedulersByZone.get(message.zoneId);\n\t\t\tif (scheduler === undefined) {\n\t\t\t\treturn { reason: 'global_capacity', status: 'refused' };\n\t\t\t}\n\t\t\tconst coalescingKey = gatewayControlProcessCoalescingKey(message);\n\t\t\tconst priorCoalescibleMessage =\n\t\t\t\tcoalescingKey === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: queuedCoalescibleMessagesByZone.get(message.zoneId)?.get(coalescingKey);\n\t\t\tconst nonSafetyMessageDelta = priorCoalescibleMessage === undefined ? 1 : 0;\n\t\t\tconst nonSafetyByteDelta = message.byteLength - (priorCoalescibleMessage?.byteLength ?? 0);\n\t\t\tif (\n\t\t\t\tmessage.messageClass !== 'safety' &&\n\t\t\t\t(nonSafetyMessages + nonSafetyMessageDelta > maxNonSafetyMessages ||\n\t\t\t\t\tnonSafetyBytes + nonSafetyByteDelta > maxNonSafetyBytes)\n\t\t\t) {\n\t\t\t\treturn message.messageClass === 'authority'\n\t\t\t\t\t? { reason: 'global_capacity', status: 'refused' }\n\t\t\t\t\t: message.messageClass === 'liveness'\n\t\t\t\t\t\t? { reason: 'global_capacity', status: 'shed' }\n\t\t\t\t\t\t: { reason: 'global_capacity', status: 'dropped' };\n\t\t\t}\n\t\t\tconst before = scheduler.diagnostics();\n\t\t\tconst result = scheduler.enqueue(message);\n\t\t\tif (\n\t\t\t\tmessage.messageClass !== 'safety' &&\n\t\t\t\t(result.status === 'admitted' || result.status === 'replaced')\n\t\t\t) {\n\t\t\t\tconst after = scheduler.diagnostics();\n\t\t\t\tconst beforeMessages =\n\t\t\t\t\tbefore.authorityMessages + before.livenessMessages + before.diagnosticMessages;\n\t\t\t\tconst afterMessages =\n\t\t\t\t\tafter.authorityMessages + after.livenessMessages + after.diagnosticMessages;\n\t\t\t\tconst beforeBytes = before.authorityBytes + before.livenessBytes + before.diagnosticBytes;\n\t\t\t\tconst afterBytes = after.authorityBytes + after.livenessBytes + after.diagnosticBytes;\n\t\t\t\tnonSafetyMessages += afterMessages - beforeMessages;\n\t\t\t\tnonSafetyBytes += afterBytes - beforeBytes;\n\t\t\t\tif (coalescingKey !== undefined) {\n\t\t\t\t\tqueuedCoalescibleMessagesByZone.get(message.zoneId)?.set(coalescingKey, message);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\tdequeue() {\n\t\t\tif (zoneOrder.length === 0) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tfor (let offset = 0; offset < zoneOrder.length; offset += 1) {\n\t\t\t\tconst index = (zoneCursor + offset) % zoneOrder.length;\n\t\t\t\tconst zoneId = zoneOrder[index];\n\t\t\t\tconst scheduler = zoneId === undefined ? undefined : schedulersByZone.get(zoneId);\n\t\t\t\tconst work = scheduler?.dequeue();\n\t\t\t\tif (zoneId === undefined || work === undefined) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst { completionToken, message } = work;\n\t\t\t\tif (!isGatewayControlProcessAdmissionMessage(message) || message.zoneId !== zoneId) {\n\t\t\t\t\tthrow new Error('gateway control process admission message lost its zone identity');\n\t\t\t\t}\n\t\t\t\tconst coalescingKey = gatewayControlProcessCoalescingKey(message);\n\t\t\t\tif (coalescingKey !== undefined) {\n\t\t\t\t\tconst queuedMessages = queuedCoalescibleMessagesByZone.get(zoneId);\n\t\t\t\t\tif (queuedMessages?.get(coalescingKey) === message) {\n\t\t\t\t\t\tqueuedMessages.delete(coalescingKey);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tzoneCursor = (index + 1) % zoneOrder.length;\n\t\t\t\tinFlightMessages.set(completionToken, message);\n\t\t\t\treturn { completionToken, message };\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tdiagnostics() {\n\t\t\treturn { activeSessions: schedulersByZone.size, nonSafetyBytes, nonSafetyMessages };\n\t\t},\n\t};\n}\n","import {\n\tcreateGatewayControlAdmissionScheduler,\n\ttype GatewayControlAdmissionClass,\n\ttype GatewayControlAdmissionMessage,\n\ttype GatewayControlAdmissionResult,\n\ttype GatewayControlAdmissionScheduler,\n} from './gateway-control-admission.js';\n\nexport const GATEWAY_CONTROL_ADMISSION_EXECUTION_LIMITS = {\n\tauthority: 4,\n\tdiagnostic: 1,\n\tliveness: 2,\n\tsafety: 8,\n} as const satisfies Readonly<Record<GatewayControlAdmissionClass, number>>;\n\nconst GATEWAY_CONTROL_ADMISSION_CLASSES: readonly GatewayControlAdmissionClass[] = [\n\t'authority',\n\t'diagnostic',\n\t'liveness',\n\t'safety',\n];\n\ntype GatewayControlAdmissionNonExecutionResult<TPayload> = Exclude<\n\tGatewayControlAdmissionResult<TPayload>,\n\t{ readonly status: 'admitted' | 'replaced' }\n>;\n\nexport type GatewayControlAdmissionExecutionResult =\n\t| { readonly reason: string; readonly status: 'closed' }\n\t| { readonly status: 'executed' }\n\t| { readonly status: 'replaced' }\n\t| GatewayControlAdmissionNonExecutionResult<unknown>;\n\nexport type GatewayControlAdmissionSubmissionResult =\n\t| { readonly reason: string; readonly status: 'closed' }\n\t| { readonly status: 'admitted' | 'replaced' }\n\t| GatewayControlAdmissionNonExecutionResult<unknown>;\n\nexport interface GatewayControlAdmissionSubmission {\n\treadonly admission: GatewayControlAdmissionSubmissionResult;\n\treadonly completion: Promise<GatewayControlAdmissionExecutionResult>;\n}\n\nexport interface GatewayControlAdmissionExecutionRequest<TPayload> {\n\treadonly byteLength: number;\n\treadonly coalesceKey?: string;\n\treadonly execute: () => Promise<void>;\n\treadonly id: string;\n\treadonly messageClass: GatewayControlAdmissionClass;\n\treadonly onCancel?: (reason: string) => void;\n\treadonly payload: TPayload;\n\treadonly stablePrincipal?: string;\n}\n\nexport interface GatewayControlAdmissionExecutor<TPayload> {\n\tclose(reason: string): void;\n\tdiagnostics(): {\n\t\treadonly activeByClass: Readonly<Record<GatewayControlAdmissionClass, number>>;\n\t\treadonly scheduler: ReturnType<GatewayControlAdmissionScheduler<unknown>['diagnostics']>;\n\t};\n\tsubmit(\n\t\trequest: GatewayControlAdmissionExecutionRequest<TPayload>,\n\t): GatewayControlAdmissionSubmission;\n}\n\ninterface PendingGatewayControlAdmissionExecution<TPayload> {\n\treadonly admissionGeneration: number;\n\treadonly execute: () => Promise<void>;\n\treadonly onCancel?: (reason: string) => void;\n\treadonly payload: TPayload;\n\treadonly reject: (error: unknown) => void;\n\treadonly resolve: (result: GatewayControlAdmissionExecutionResult) => void;\n\tsettled: boolean;\n}\n\nfunction executionMessage<TPayload>(\n\trequest: GatewayControlAdmissionExecutionRequest<TPayload>,\n\twork: PendingGatewayControlAdmissionExecution<TPayload>,\n): GatewayControlAdmissionMessage<PendingGatewayControlAdmissionExecution<TPayload>> {\n\treturn {\n\t\tbyteLength: request.byteLength,\n\t\t...(request.coalesceKey === undefined ? {} : { coalesceKey: request.coalesceKey }),\n\t\tid: request.id,\n\t\tmessageClass: request.messageClass,\n\t\tpayload: work,\n\t\t...(request.stablePrincipal === undefined ? {} : { stablePrincipal: request.stablePrincipal }),\n\t};\n}\n\nexport function createGatewayControlAdmissionExecutor<TPayload>(\n\toptions: {\n\t\treadonly executionLimits?: Partial<Readonly<Record<GatewayControlAdmissionClass, number>>>;\n\t\treadonly scheduleImmediate?: (callback: () => void) => void;\n\t} = {},\n): GatewayControlAdmissionExecutor<TPayload> {\n\tconst scheduler =\n\t\tcreateGatewayControlAdmissionScheduler<PendingGatewayControlAdmissionExecution<TPayload>>();\n\tconst scheduleImmediate =\n\t\toptions.scheduleImmediate ?? ((callback: () => void) => setImmediate(callback));\n\tconst executionLimits = {\n\t\t...GATEWAY_CONTROL_ADMISSION_EXECUTION_LIMITS,\n\t\t...options.executionLimits,\n\t};\n\tconst activeByClass: Record<GatewayControlAdmissionClass, number> = {\n\t\tauthority: 0,\n\t\tdiagnostic: 0,\n\t\tliveness: 0,\n\t\tsafety: 0,\n\t};\n\tlet pumpScheduled = false;\n\tlet admissionGeneration = 0;\n\tlet closedReason: string | undefined;\n\tconst activeWork = new Set<PendingGatewayControlAdmissionExecution<TPayload>>();\n\n\tfor (const messageClass of GATEWAY_CONTROL_ADMISSION_CLASSES) {\n\t\tconst limit = executionLimits[messageClass];\n\t\tif (!Number.isSafeInteger(limit) || limit <= 0) {\n\t\t\tthrow new RangeError(`${messageClass} execution limit must be a positive safe integer.`);\n\t\t}\n\t}\n\n\tconst schedulePump = (): void => {\n\t\tif (pumpScheduled || closedReason !== undefined) {\n\t\t\treturn;\n\t\t}\n\t\tpumpScheduled = true;\n\t\tscheduleImmediate(() => {\n\t\t\tpumpScheduled = false;\n\t\t\tpump();\n\t\t});\n\t};\n\n\tconst pump = (): void => {\n\t\tif (closedReason !== undefined) {\n\t\t\treturn;\n\t\t}\n\t\tfor (;;) {\n\t\t\tconst allowedMessageClasses = GATEWAY_CONTROL_ADMISSION_CLASSES.filter(\n\t\t\t\t(messageClass) => activeByClass[messageClass] < executionLimits[messageClass],\n\t\t\t);\n\t\t\tif (allowedMessageClasses.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst admittedWork = scheduler.dequeue({ allowedMessageClasses });\n\t\t\tif (admittedWork === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { completionToken, message } = admittedWork;\n\t\t\tconst messageClass = message.messageClass;\n\t\t\tconst work = message.payload;\n\t\t\tactiveByClass[messageClass] += 1;\n\t\t\tactiveWork.add(work);\n\t\t\tvoid (async (): Promise<void> => {\n\t\t\t\tlet executionError: unknown;\n\t\t\t\ttry {\n\t\t\t\t\tawait work.execute();\n\t\t\t\t} catch (error) {\n\t\t\t\t\texecutionError = error;\n\t\t\t\t} finally {\n\t\t\t\t\tscheduler.complete(completionToken);\n\t\t\t\t\tactiveByClass[messageClass] -= 1;\n\t\t\t\t\tactiveWork.delete(work);\n\t\t\t\t\tschedulePump();\n\t\t\t\t}\n\t\t\t\tif (work.settled || work.admissionGeneration !== admissionGeneration) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\twork.settled = true;\n\t\t\t\tif (executionError === undefined) {\n\t\t\t\t\twork.resolve({ status: 'executed' });\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\twork.reject(executionError);\n\t\t\t})();\n\t\t}\n\t};\n\n\treturn {\n\t\tclose: (reason) => {\n\t\t\tif (closedReason !== undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tclosedReason = reason;\n\t\t\tadmissionGeneration += 1;\n\t\t\tfor (const message of scheduler.cancelQueued()) {\n\t\t\t\tconst work = message.payload;\n\t\t\t\tif (!work.settled) {\n\t\t\t\t\twork.settled = true;\n\t\t\t\t\twork.onCancel?.(reason);\n\t\t\t\t\twork.resolve({ reason, status: 'closed' });\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const work of activeWork) {\n\t\t\t\tif (!work.settled) {\n\t\t\t\t\twork.settled = true;\n\t\t\t\t\twork.onCancel?.(reason);\n\t\t\t\t\twork.resolve({ reason, status: 'closed' });\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tdiagnostics: () => ({\n\t\t\tactiveByClass: { ...activeByClass },\n\t\t\tscheduler: scheduler.diagnostics(),\n\t\t}),\n\t\tsubmit: (request) => {\n\t\t\tif (closedReason !== undefined) {\n\t\t\t\tconst closed = { reason: closedReason, status: 'closed' } as const;\n\t\t\t\treturn { admission: closed, completion: Promise.resolve(closed) };\n\t\t\t}\n\t\t\tlet resolveCompletion!: (result: GatewayControlAdmissionExecutionResult) => void;\n\t\t\tlet rejectCompletion!: (error: unknown) => void;\n\t\t\tconst completion = new Promise<GatewayControlAdmissionExecutionResult>((resolve, reject) => {\n\t\t\t\tresolveCompletion = resolve;\n\t\t\t\trejectCompletion = reject;\n\t\t\t});\n\t\t\tconst work = {\n\t\t\t\tadmissionGeneration,\n\t\t\t\texecute: request.execute,\n\t\t\t\t...(request.onCancel === undefined ? {} : { onCancel: request.onCancel }),\n\t\t\t\tpayload: request.payload,\n\t\t\t\treject: rejectCompletion,\n\t\t\t\tresolve: resolveCompletion,\n\t\t\t\tsettled: false,\n\t\t\t} satisfies PendingGatewayControlAdmissionExecution<TPayload>;\n\t\t\tconst result = scheduler.enqueue(executionMessage(request, work));\n\t\t\tswitch (result.status) {\n\t\t\t\tcase 'admitted':\n\t\t\t\t\tschedulePump();\n\t\t\t\t\treturn { admission: { status: 'admitted' }, completion };\n\t\t\t\tcase 'replaced':\n\t\t\t\t\tif (!result.replacedMessage.payload.settled) {\n\t\t\t\t\t\tresult.replacedMessage.payload.settled = true;\n\t\t\t\t\t\tresult.replacedMessage.payload.onCancel?.('replaced');\n\t\t\t\t\t\tresult.replacedMessage.payload.resolve({ status: 'replaced' });\n\t\t\t\t\t}\n\t\t\t\t\tschedulePump();\n\t\t\t\t\treturn { admission: { status: 'replaced' }, completion };\n\t\t\t\tcase 'dropped':\n\t\t\t\tcase 'fence':\n\t\t\t\tcase 'refused':\n\t\t\t\tcase 'shed':\n\t\t\t\t\tresolveCompletion(result);\n\t\t\t\t\treturn { admission: result, completion };\n\t\t\t}\n\t\t\tthrow new Error('unsupported gateway control admission result');\n\t\t},\n\t};\n}\n","import type { GatewayControlAdmissionClass } from './gateway-control-admission.js';\nimport type { GatewayControlRpcMessage } from './index.js';\n\nexport type GatewayControlAdmissionDirection = 'controller_to_gateway' | 'gateway_to_controller';\n\nexport type GatewayControlAdmissionClassification =\n\t| {\n\t\t\treadonly authoritySchedulingKey?: string;\n\t\t\treadonly coalesceKey?: string;\n\t\t\treadonly messageClass: GatewayControlAdmissionClass;\n\t\t\treadonly stablePrincipal?: string;\n\t\t\treadonly status: 'classified';\n\t }\n\t| {\n\t\t\treadonly reason: 'stable_principal_required' | 'unproven_gateway_cancel';\n\t\t\treadonly status: 'refused';\n\t }\n\t| {\n\t\t\treadonly reason: 'direction_violation' | 'forged_command_result';\n\t\t\treadonly status: 'fence';\n\t };\n\nexport interface ClassifyGatewayControlAdmissionOptions {\n\treadonly controllerSafetyOperation?: boolean;\n\treadonly direction: GatewayControlAdmissionDirection;\n\treadonly matchedPendingResult?: boolean;\n\treadonly message: GatewayControlRpcMessage;\n\treadonly stablePrincipal?: string;\n}\n\nfunction authorityClassification(\n\tstablePrincipal: string | undefined,\n): GatewayControlAdmissionClassification {\n\treturn stablePrincipal === undefined || stablePrincipal.length === 0\n\t\t? { reason: 'stable_principal_required', status: 'refused' }\n\t\t: {\n\t\t\t\tauthoritySchedulingKey: stablePrincipal,\n\t\t\t\tmessageClass: 'authority',\n\t\t\t\tstablePrincipal,\n\t\t\t\tstatus: 'classified',\n\t\t\t};\n}\n\nfunction diagnosticCoalesceKey(\n\tpayload: Extract<GatewayControlRpcMessage, { readonly operation: 'health_event' }>['payload'],\n): string {\n\treturn JSON.stringify([\n\t\tpayload.eventKind,\n\t\t'leaseId' in payload ? payload.leaseId : undefined,\n\t\t'transitionId' in payload ? payload.transitionId : undefined,\n\t\t'operation' in payload ? payload.operation : undefined,\n\t\t'channelProviderId' in payload ? payload.channelProviderId : undefined,\n\t]);\n}\n\nexport function classifyGatewayControlAdmission(\n\toptions: ClassifyGatewayControlAdmissionOptions,\n): GatewayControlAdmissionClassification {\n\tconst message = options.message;\n\tif (message.kind === 'command_result') {\n\t\treturn options.matchedPendingResult === true\n\t\t\t? { messageClass: 'safety', status: 'classified' }\n\t\t\t: { reason: 'forged_command_result', status: 'fence' };\n\t}\n\tif (message.kind === 'heartbeat') {\n\t\treturn {\n\t\t\tcoalesceKey: `${options.direction}:control-heartbeat`,\n\t\t\tmessageClass: 'liveness',\n\t\t\tstatus: 'classified',\n\t\t};\n\t}\n\tif (message.kind === 'event') {\n\t\tif (options.direction !== 'gateway_to_controller') {\n\t\t\treturn { reason: 'direction_violation', status: 'fence' };\n\t\t}\n\t\tswitch (message.operation) {\n\t\t\tcase 'runtime_status':\n\t\t\t\treturn {\n\t\t\t\t\tcoalesceKey: `runtime-status:${message.payload.statusKind}`,\n\t\t\t\t\tmessageClass: 'liveness',\n\t\t\t\t\tstatus: 'classified',\n\t\t\t\t};\n\t\t\tcase 'health_event':\n\t\t\t\treturn {\n\t\t\t\t\tcoalesceKey: diagnosticCoalesceKey(message.payload),\n\t\t\t\t\tmessageClass: 'diagnostic',\n\t\t\t\t\tstatus: 'classified',\n\t\t\t\t};\n\t\t}\n\t}\n\tif (message.operation === 'control_ping') {\n\t\treturn {\n\t\t\tcoalesceKey: `${options.direction}:control-ping`,\n\t\t\tmessageClass: 'liveness',\n\t\t\tstatus: 'classified',\n\t\t};\n\t}\n\tif (options.direction === 'controller_to_gateway') {\n\t\tswitch (message.operation) {\n\t\t\tcase 'operation_cancel':\n\t\t\t\treturn options.controllerSafetyOperation === true &&\n\t\t\t\t\tmessage.payload.initiatedBy === 'controller'\n\t\t\t\t\t? { messageClass: 'safety', status: 'classified' }\n\t\t\t\t\t: { reason: 'direction_violation', status: 'fence' };\n\t\t\tcase 'recovery_command':\n\t\t\t\treturn options.controllerSafetyOperation === true\n\t\t\t\t\t? { messageClass: 'safety', status: 'classified' }\n\t\t\t\t\t: { reason: 'direction_violation', status: 'fence' };\n\t\t\tcase 'caller_context_register':\n\t\t\tcase 'lease_create':\n\t\t\tcase 'lease_get':\n\t\t\tcase 'lease_peek':\n\t\t\tcase 'lease_reacquire':\n\t\t\tcase 'lease_release':\n\t\t\tcase 'lease_renew':\n\t\t\tcase 'lease_use_start':\n\t\t\tcase 'lease_use_heartbeat':\n\t\t\tcase 'lease_use_end':\n\t\t\tcase 'tool_portal_controller_host_action':\n\t\t\t\treturn { reason: 'direction_violation', status: 'fence' };\n\t\t}\n\t}\n\tswitch (message.operation) {\n\t\tcase 'caller_context_register':\n\t\t\treturn authorityClassification(options.stablePrincipal);\n\t\tcase 'lease_renew':\n\t\t\treturn options.stablePrincipal === undefined\n\t\t\t\t? { reason: 'stable_principal_required', status: 'refused' }\n\t\t\t\t: {\n\t\t\t\t\t\tcoalesceKey: `${options.stablePrincipal}:lease:${message.payload.leaseId}`,\n\t\t\t\t\t\tmessageClass: 'liveness',\n\t\t\t\t\t\tstatus: 'classified',\n\t\t\t\t\t};\n\t\tcase 'lease_use_heartbeat':\n\t\t\treturn options.stablePrincipal === undefined\n\t\t\t\t? { reason: 'stable_principal_required', status: 'refused' }\n\t\t\t\t: {\n\t\t\t\t\t\tcoalesceKey: `${options.stablePrincipal}:lease:${message.payload.leaseId}:use:${message.payload.useId}`,\n\t\t\t\t\t\tmessageClass: 'liveness',\n\t\t\t\t\t\tstatus: 'classified',\n\t\t\t\t\t};\n\t\tcase 'operation_cancel':\n\t\t\treturn message.payload.initiatedBy === 'gateway'\n\t\t\t\t? { reason: 'unproven_gateway_cancel', status: 'refused' }\n\t\t\t\t: { reason: 'direction_violation', status: 'fence' };\n\t\tcase 'recovery_command':\n\t\t\treturn { reason: 'direction_violation', status: 'fence' };\n\t\tcase 'lease_create':\n\t\tcase 'lease_get':\n\t\tcase 'lease_peek':\n\t\tcase 'lease_reacquire':\n\t\tcase 'lease_release':\n\t\tcase 'lease_use_start':\n\t\tcase 'lease_use_end':\n\t\tcase 'tool_portal_controller_host_action':\n\t\t\treturn authorityClassification(options.stablePrincipal);\n\t}\n\treturn { reason: 'direction_violation', status: 'fence' };\n}\n","import {\n\tCONTROL_PROTOCOL_VERSION,\n\tControlCorrelationSchema,\n\tControlRpcErrorSchema,\n\tControlRpcResultBaseSchema,\n\tControlSessionStateSchema,\n\ttype ControlSessionControllerToPeerEvents,\n\ttype ControlSessionPeerToControllerEvents,\n\tKnownControlDomainSchema,\n\ttype ControlDeliveryPolicy,\n\ttype ControlEnvelope,\n\ttype ControlMessageKind,\n} from '@agent-vm/control-protocol-contracts';\nimport { z } from 'zod/v4';\n\nexport * from './gateway-control-admission.js';\nexport * from './gateway-control-admission-executor.js';\nexport * from './gateway-control-admission-classification.js';\n\nexport const GatewayControlDomainSchema = z.literal('gateway_control');\n\nexport const GatewayControlHelloSchema = z\n\t.object({\n\t\tattachmentGeneration: z.number().int().positive(),\n\t\tcontrollerEpoch: z.string().min(1),\n\t\tdomain: GatewayControlDomainSchema,\n\t\tgatewayEpoch: z.string().min(1),\n\t\tpeerId: z.string().min(1),\n\t\tprocessEpoch: z.string().min(1),\n\t\tprotocolVersion: z.literal(CONTROL_PROTOCOL_VERSION),\n\t})\n\t.strict();\n\nexport const GatewayControlHelloResponseSchema = z\n\t.object({\n\t\tattachmentGeneration: z.number().int().positive(),\n\t\tconnectionId: z.string().uuid(),\n\t\tcontrollerEpoch: z.string().min(1),\n\t\toutcome: z.enum(['accepted', 'rejected', 'generation_mismatch', 'stale_attachment']),\n\t\tsessionId: z.string().uuid(),\n\t})\n\t.strict();\n\nexport const GatewayControlRpcOperationSchema = z.enum([\n\t'control_ping',\n\t'caller_context_register',\n\t'lease_create',\n\t'lease_get',\n\t'lease_peek',\n\t'lease_reacquire',\n\t'lease_renew',\n\t'lease_release',\n\t'lease_use_start',\n\t'lease_use_heartbeat',\n\t'lease_use_end',\n\t'health_event',\n\t'runtime_status',\n\t'tool_portal_controller_host_action',\n\t'operation_cancel',\n\t'recovery_command',\n]);\n\nexport const GatewayControlRpcResultSchema = z.enum([\n\t...ControlRpcResultBaseSchema.options,\n\t'approval_required',\n\t'approval_stale',\n]);\n\nexport const GatewayControlForbiddenPayloadFieldSchema = z.enum([\n\t'adminToken',\n\t'agentId',\n\t'approvalProof',\n\t'argv',\n\t'controllerInstanceId',\n\t'cwd',\n\t'credentialProfileId',\n\t'egressPolicy',\n\t'env',\n\t'executablePath',\n\t'hostWorkMountDir',\n\t'profileId',\n\t'rawCredentialRef',\n\t'retryPolicy',\n\t'routeToken',\n\t'sessionKey',\n\t'sshIdentityPem',\n\t'vmGenerationOverride',\n\t'workMountDir',\n]);\n\nexport const GatewayControlCapabilityRefSchema = z\n\t.object({\n\t\tname: z.string().min(1),\n\t\tnamespace: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlToolCallCorrelationSchema = ControlCorrelationSchema.extend({\n\tcapability: GatewayControlCapabilityRefSchema.optional(),\n}).strict();\n\nexport const GatewayControlTrustedCallerContextIdSchema = z.string().uuid();\nexport const GatewayControlAdmissionPrincipalSchema = z.string().regex(/^[a-f0-9]{64}$/u);\n\nexport const GatewayControlTrustedLeaseContextSchema = z\n\t.object({\n\t\tagentId: z.string().min(1),\n\t\tagentWorkspaceDir: z.string().min(1),\n\t\tapprovalScopeId: z.string().min(1).optional(),\n\t\tcallerContextId: GatewayControlTrustedCallerContextIdSchema,\n\t\tcustodyScopeId: z.string().min(1).optional(),\n\t\thostWorkMountDir: z.string().min(1),\n\t\tprofileId: z.string().min(1),\n\t\tsessionKeyDigest: z.string().min(32),\n\t\tworkMountDir: z.string().min(1),\n\t\tzoneId: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlCallerContextRefSchema = z\n\t.object({\n\t\tcallerContextId: GatewayControlTrustedCallerContextIdSchema,\n\t})\n\t.strict();\n\nexport const GatewayControlRegisteredCallerContextRefSchema =\n\tGatewayControlCallerContextRefSchema.extend({\n\t\tadmissionPrincipal: GatewayControlAdmissionPrincipalSchema,\n\t}).strict();\n\nexport const GatewayControlCallerContextProofAlgorithmSchema = z.literal('hmac-sha256');\n\nexport const GatewayControlCallerContextProofSchema = z\n\t.object({\n\t\talgorithm: GatewayControlCallerContextProofAlgorithmSchema,\n\t\tdigest: z.string().min(32),\n\t})\n\t.strict();\n\nexport const GatewayControlCallerContextAgentAuthoritySchema = z\n\t.object({\n\t\talgorithm: GatewayControlCallerContextProofAlgorithmSchema,\n\t\tdigest: z.string().min(32),\n\t\tkeyId: z.string().min(1),\n\t})\n\t.strict();\n\nexport interface GatewayControlCallerContextProofPayloadInput {\n\treadonly agentId: string;\n\treadonly agentWorkspaceDir: string;\n\treadonly purpose?: 'tool_vm_lease' | 'tool_portal_controller_host_action' | undefined;\n\treadonly sessionKey: string;\n\treadonly workMountDir: string;\n\treadonly zoneId: string;\n}\n\nexport function buildGatewayControlCallerContextProofPayload(\n\tinput: GatewayControlCallerContextProofPayloadInput,\n): string {\n\tconst purpose = input.purpose ?? 'tool_vm_lease';\n\treturn [\n\t\t'gateway-control-caller-context-v1',\n\t\tinput.zoneId,\n\t\tinput.agentId,\n\t\tinput.agentWorkspaceDir,\n\t\tinput.workMountDir,\n\t\tinput.sessionKey,\n\t\tpurpose,\n\t].join('\\u0000');\n}\n\nexport function buildGatewayControlCallerContextAgentAuthorityPayload(\n\tinput: GatewayControlCallerContextProofPayloadInput,\n): string {\n\tconst purpose = input.purpose ?? 'tool_vm_lease';\n\treturn [\n\t\t'gateway-control-agent-authority-v1',\n\t\tinput.zoneId,\n\t\tinput.agentId,\n\t\tinput.agentWorkspaceDir,\n\t\tinput.workMountDir,\n\t\tinput.sessionKey,\n\t\tpurpose,\n\t].join('\\u0000');\n}\n\nexport const GatewayControlCallerContextRegisterPayloadSchema = z\n\t.object({\n\t\tadapterEvidence: z\n\t\t\t.object({\n\t\t\t\tagentAuthority: GatewayControlCallerContextAgentAuthoritySchema,\n\t\t\t\tagentId: z.string().min(1),\n\t\t\t\tagentWorkspaceDir: z.string().min(1),\n\t\t\t\tproof: GatewayControlCallerContextProofSchema,\n\t\t\t\tpurpose: z.enum(['tool_vm_lease', 'tool_portal_controller_host_action']).optional(),\n\t\t\t\tsessionKey: z.string().min(1),\n\t\t\t\tworkMountDir: z.string().min(1),\n\t\t\t\tzoneId: z.string().min(1),\n\t\t\t})\n\t\t\t.strict(),\n\t\tcorrelation: GatewayControlToolCallCorrelationSchema.optional(),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseCreateIntentPayloadSchema = z\n\t.object({\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tcorrelation: GatewayControlToolCallCorrelationSchema.optional(),\n\t\tgatewayWorkspaceDir: z.string().min(1).optional(),\n\t\tidleTtlHintMs: z.number().int().positive().optional(),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseIdPayloadSchema = z\n\t.object({\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tleaseId: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseUseStartPayloadSchema = z\n\t.object({\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tcorrelation: GatewayControlToolCallCorrelationSchema.optional(),\n\t\tleaseId: z.string().min(1),\n\t\tuseId: z.string().uuid(),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseUseHeartbeatPayloadSchema = z\n\t.object({\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tleaseId: z.string().min(1),\n\t\tobservedAtMs: z.number().int().positive().optional(),\n\t\tuseId: z.string().uuid(),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseUseEndPayloadSchema = z\n\t.object({\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tleaseId: z.string().min(1),\n\t\treason: z.enum(['completed', 'failed', 'cancelled', 'timed_out']),\n\t\tuseId: z.string().uuid(),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseStaleEvidenceSchema = z.discriminatedUnion('kind', [\n\tz\n\t\t.object({\n\t\t\terrorCode: z.string().min(1).optional(),\n\t\t\tkind: z.literal('tool-vm-ssh'),\n\t\t\tobservedAtMs: z.number().int().positive(),\n\t\t\toperation: z.enum(['command', 'file-bridge', 'finalize', 'probe']),\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('caller-context'),\n\t\t\tobservedAtMs: z.number().int().positive(),\n\t\t\treason: z.enum(['absent', 'stale', 'session_mismatch', 'lease_authority_absent']).optional(),\n\t\t})\n\t\t.strict(),\n\tz\n\t\t.object({\n\t\t\tkind: z.literal('lease-manager'),\n\t\t\tobservedAtMs: z.number().int().positive(),\n\t\t\treason: z.enum(['expired', 'released', 'force_released', 'generation_stale']).optional(),\n\t\t})\n\t\t.strict(),\n]);\n\nexport const GatewayControlLeaseReacquireIntentPayloadSchema = z\n\t.object({\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tcorrelation: GatewayControlToolCallCorrelationSchema.optional(),\n\t\tidleTtlHintMs: z.number().int().positive().optional(),\n\t\toldLeaseId: z.string().min(1),\n\t\tstaleEvidence: GatewayControlLeaseStaleEvidenceSchema,\n\t})\n\t.strict();\n\nexport const GatewayControlHealthEventResultSchema = z.enum([\n\t'ok',\n\t'failed',\n\t'timeout',\n\t'degraded',\n]);\n\nexport const GatewayControlProviderRuntimeHealthSchema = z.enum([\n\t'healthy',\n\t'transitioning',\n\t'unhealthy_recoverable',\n\t'unhealthy_unrecoverable',\n]);\n\nexport const GatewayControlLeaseRejectionReasonSchema = z.enum([\n\t'caller_context_absent',\n\t'caller_context_session_mismatch',\n\t'caller_context_stale',\n\t'lease_absent',\n\t'lease_authority_absent',\n\t'lease_force_released',\n\t'lease_generation_stale',\n\t'lease_reacquire_required',\n\t'lease_releasing',\n\t'lease_retired',\n\t'lease_use_tombstoned',\n\t'ownership_denied',\n\t'runtime_not_ready',\n]);\n\nexport const GatewayControlToolVmLeaseLifecycleEventRoleSchema = z.literal('plugin_observation');\n\nexport const GatewayControlToolVmLeaseLifecycleTransitionSchema = z.enum([\n\t'current_to_stale',\n\t'current_to_retired',\n\t'deprecated_to_reacquired',\n\t'deprecated_to_retired',\n\t'stale_to_reacquired',\n\t'stale_to_retired',\n\t'retired_rejected',\n]);\n\nexport const GatewayControlToolVmLeaseCallerContextStateSchema = z.enum([\n\t'ok',\n\t'absent',\n\t'stale',\n\t'session_mismatch',\n\t'not_applicable',\n]);\n\nexport const GatewayControlControllerRequestHealthOperationSchema = z.enum([\n\t'zone-git-push',\n\t'lease-create',\n\t'lease-get',\n\t'lease-peek',\n\t'lease-release',\n\t'lease-use-start',\n\t'lease-use-end',\n]);\n\nexport const GatewayControlSessionHealthOperationSchema = z.enum([\n\t'control-session-hello',\n\t'control-session-heartbeat',\n\t'control-session-disconnect',\n\t'control-session-reconnect',\n]);\n\nexport const GatewayControlToolVmSshHealthOperationSchema = z.enum([\n\t'command',\n\t'file-bridge',\n\t'finalize',\n\t'probe',\n]);\n\nconst GatewayControlToolVmLeaseReacquiredLifecycleTransitionSchema = z.enum([\n\t'deprecated_to_reacquired',\n\t'stale_to_reacquired',\n]);\n\nconst GatewayControlHealthEventBaseSchema = z\n\t.object({\n\t\tcorrelation: ControlCorrelationSchema.optional(),\n\t\tobservedAtMs: z.number().int().positive(),\n\t\tresult: GatewayControlHealthEventResultSchema,\n\t})\n\t.strict();\n\nconst GatewayControlToolVmSshHealthEventBaseSchema = GatewayControlHealthEventBaseSchema.extend({\n\tagentId: z.string().min(1),\n\telapsedMs: z.number().int().nonnegative(),\n\terrorCode: z.string().min(1).optional(),\n\teventKind: z.literal('tool-vm-ssh'),\n\tleaseId: z.string().min(1),\n\toperation: GatewayControlToolVmSshHealthOperationSchema,\n}).strict();\n\nconst GatewayControlToolVmSshLifecycleHealthEventSchema =\n\tGatewayControlToolVmSshHealthEventBaseSchema.extend({\n\t\tactiveUseId: z.string().min(1).optional(),\n\t\tcallerContextState: GatewayControlToolVmLeaseCallerContextStateSchema.optional(),\n\t\tleaseRejectionReason: GatewayControlLeaseRejectionReasonSchema.optional(),\n\t\tlifecycleEventRole: GatewayControlToolVmLeaseLifecycleEventRoleSchema,\n\t\tlifecycleTransition: GatewayControlToolVmLeaseLifecycleTransitionSchema,\n\t\toldLeaseId: z.string().min(1),\n\t\treplacementLeaseId: z.string().min(1).optional(),\n\t\ttransitionId: z.string().min(1),\n\t})\n\t\t.strict()\n\t\t.superRefine((event, context) => {\n\t\t\tconst isReacquiredTransition =\n\t\t\t\tGatewayControlToolVmLeaseReacquiredLifecycleTransitionSchema.safeParse(\n\t\t\t\t\tevent.lifecycleTransition,\n\t\t\t\t).success;\n\t\t\tif (isReacquiredTransition && event.replacementLeaseId === undefined) {\n\t\t\t\tcontext.addIssue({\n\t\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\t\tmessage: 'replacementLeaseId is required for reacquired lifecycle transitions',\n\t\t\t\t\tpath: ['replacementLeaseId'],\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (!isReacquiredTransition && event.replacementLeaseId !== undefined) {\n\t\t\t\tcontext.addIssue({\n\t\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\t\tmessage: 'replacementLeaseId is only valid for reacquired lifecycle transitions',\n\t\t\t\t\tpath: ['replacementLeaseId'],\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\nexport const GatewayControlHealthEventPayloadSchema = z.union([\n\tGatewayControlHealthEventBaseSchema.extend({\n\t\tchannelProviderId: z.string().min(1),\n\t\teventKind: z.literal('agent-channel-provider-health'),\n\t\tproviderRuntimeHealth: GatewayControlProviderRuntimeHealthSchema,\n\t\tsafeDetails: z.record(z.string(), z.string()).optional(),\n\t}).strict(),\n\tGatewayControlHealthEventBaseSchema.extend({\n\t\tattempt: z.number().int().positive(),\n\t\telapsedMs: z.number().int().nonnegative(),\n\t\terrorCode: z.string().min(1).optional(),\n\t\teventKind: z.literal('controller-request'),\n\t\tmaxAttempts: z.number().int().positive(),\n\t\toperation: GatewayControlControllerRequestHealthOperationSchema,\n\t\tstatusCode: z.number().int().positive().optional(),\n\t}).strict(),\n\tGatewayControlHealthEventBaseSchema.extend({\n\t\telapsedMs: z.number().int().nonnegative(),\n\t\teventKind: z.literal('gateway-control-session'),\n\t\toperation: GatewayControlSessionHealthOperationSchema,\n\t\tsafeDetails: z\n\t\t\t.object({\n\t\t\t\tpeerId: z.string().min(1),\n\t\t\t})\n\t\t\t.catchall(z.string()),\n\t}).strict(),\n\tGatewayControlHealthEventBaseSchema.extend({\n\t\teventKind: z.literal('gateway-plugin-health'),\n\t}).strict(),\n\tGatewayControlToolVmSshHealthEventBaseSchema,\n\tGatewayControlToolVmSshLifecycleHealthEventSchema,\n]);\n\nexport const GatewayControlRuntimeFindingSchema = z\n\t.object({\n\t\tid: z.string().min(1),\n\t\tok: z.boolean(),\n\t\tsafeMessage: z.string().min(1).optional(),\n\t\tseverity: z.enum(['info', 'warning', 'error']).optional(),\n\t})\n\t.strict();\n\nexport const GatewayControlRuntimeStatusPayloadSchema = z\n\t.object({\n\t\tfindings: z.array(GatewayControlRuntimeFindingSchema),\n\t\tobservedAtMs: z.number().int().positive(),\n\t\tproviderRuntimeHealth: z\n\t\t\t.enum(['healthy', 'transitioning', 'unhealthy_recoverable', 'unhealthy_unrecoverable'])\n\t\t\t.optional(),\n\t\tstatusKind: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlZoneGitPushControllerHostActionPayloadSchema = z\n\t.object({\n\t\tactionId: z.literal('zone_git_push'),\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tcorrelation: GatewayControlToolCallCorrelationSchema,\n\t\texpectedHead: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlControllerHostProbePayloadSchema = z\n\t.object({\n\t\tactionId: z.literal('controller_host_probe'),\n\t\tcallerContext: GatewayControlCallerContextRefSchema,\n\t\tcorrelation: GatewayControlToolCallCorrelationSchema,\n\t})\n\t.strict();\n\nexport const GatewayControlToolPortalControllerHostActionPayloadSchema = z.discriminatedUnion(\n\t'actionId',\n\t[\n\t\tGatewayControlZoneGitPushControllerHostActionPayloadSchema,\n\t\tGatewayControlControllerHostProbePayloadSchema,\n\t],\n);\n\nexport const GatewayControlZoneGitCommitSummarySchema = z\n\t.object({\n\t\tsha: z.string().min(1),\n\t\tsubject: z.string(),\n\t})\n\t.strict();\n\nexport const GatewayControlZoneGitPushResultSchema = z\n\t.object({\n\t\tbranch: z.string().min(1),\n\t\tlocalHead: z.string().min(1),\n\t\tpushedCommits: z.array(GatewayControlZoneGitCommitSummarySchema),\n\t\tremoteHead: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlControllerHostProbeResultSchema = z\n\t.object({\n\t\tentryNames: z.array(z.string().min(1)).max(64),\n\t\tprobeKind: z.literal('controller_cache_dir_listing'),\n\t})\n\t.strict();\n\nexport const GatewayControlZoneGitPushControllerHostActionResultSchema = z\n\t.object({\n\t\tactionId: z.literal('zone_git_push'),\n\t\tresult: GatewayControlZoneGitPushResultSchema,\n\t})\n\t.strict();\n\nexport const GatewayControlControllerHostProbeActionResultSchema = z\n\t.object({\n\t\tactionId: z.literal('controller_host_probe'),\n\t\tresult: GatewayControlControllerHostProbeResultSchema,\n\t})\n\t.strict();\n\nexport const GatewayControlToolPortalControllerHostActionResultSchema = z.discriminatedUnion(\n\t'actionId',\n\t[\n\t\tGatewayControlZoneGitPushControllerHostActionResultSchema,\n\t\tGatewayControlControllerHostProbeActionResultSchema,\n\t],\n);\n\nexport const GatewayControlActiveOperationIdSchema = z.string().uuid();\n\nexport const GatewayInitiatedOperationCancelPayloadSchema = z\n\t.object({\n\t\tactiveOperationId: GatewayControlActiveOperationIdSchema,\n\t\tinitiatedBy: z.literal('gateway'),\n\t\treason: z.enum(['caller_cancelled', 'gateway_shutdown', 'operation_failed']),\n\t})\n\t.strict();\n\nexport const ControllerInitiatedGatewayOperationCancelPayloadSchema = z\n\t.object({\n\t\tactiveOperationId: GatewayControlActiveOperationIdSchema,\n\t\tinitiatedBy: z.literal('controller'),\n\t\treason: z.enum(['controller_recovery', 'operator_cancelled', 'timeout']),\n\t})\n\t.strict();\n\nexport const GatewayControlOperationCancelPayloadSchema = z.discriminatedUnion('initiatedBy', [\n\tGatewayInitiatedOperationCancelPayloadSchema,\n\tControllerInitiatedGatewayOperationCancelPayloadSchema,\n]);\n\nexport const GatewayControlRecoveryCommandPayloadSchema = z.discriminatedUnion('action', [\n\tz.object({ action: z.literal('refresh_runtime_status') }).strict(),\n\tz.object({ action: z.literal('restart_control_service') }).strict(),\n\tz\n\t\t.object({\n\t\t\taction: z.literal('close_stale_session'),\n\t\t\ttargetSessionId: z.string().uuid(),\n\t\t})\n\t\t.strict(),\n]);\n\nexport const GatewayControlPingPayloadSchema = z.object({}).strict();\n\nexport const GatewayControlHeartbeatPayloadSchema = z\n\t.object({\n\t\telapsedMs: z.number().int().nonnegative().optional(),\n\t\tobservedAtMs: z.number().int().positive(),\n\t})\n\t.strict();\n\nexport const GatewayControlRpcErrorSchema = ControlRpcErrorSchema;\n\nexport const GatewayControlSessionStateSchema = ControlSessionStateSchema;\n\nexport const GatewayControlToolVmSshAccessSchema = z\n\t.object({\n\t\thost: z.string().min(1),\n\t\tidentityPem: z.string().min(1).optional(),\n\t\tknownHostsLine: z.string().min(1).optional(),\n\t\tport: z.number().int().positive(),\n\t\tuser: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseSnapshotSchema = z\n\t.object({\n\t\tagentId: z.string().min(1),\n\t\tactiveUseId: z.string().uuid().optional(),\n\t\texpiresAtMs: z.number().int().positive().optional(),\n\t\tidleTtlMs: z.number().int().positive(),\n\t\tleaseId: z.string().min(1),\n\t\tssh: GatewayControlToolVmSshAccessSchema.optional(),\n\t\tstate: z.enum(['idle', 'active', 'expired', 'released']),\n\t\ttcpSlot: z.number().int().nonnegative(),\n\t\ttransport: z.literal('ssh-sandbox'),\n\t\tworkdir: z.string().min(1),\n\t\tzoneId: z.string().min(1),\n\t})\n\t.strict();\n\nexport const GatewayControlLeaseUseSnapshotSchema = z\n\t.object({\n\t\texpiresAt: z.number().int().positive().optional(),\n\t\theartbeatAfterMs: z.number().int().positive().optional(),\n\t\tleaseId: z.string().min(1),\n\t\tstate: z.enum(['active', 'ended', 'expired']),\n\t\tuseId: z.string().uuid(),\n\t})\n\t.strict();\n\nexport const GatewayControlRpcDomainCorrelationSchema = ControlCorrelationSchema;\n\nconst GatewayControlRpcForbiddenResponseFieldsSchema = {\n\tactiveOperationId: z.never().optional(),\n\tapprovalRequired: z.never().optional(),\n\tcallerContext: z.never().optional(),\n\tcontrollerHostAction: z.never().optional(),\n\terror: z.never().optional(),\n\tlease: z.never().optional(),\n\tleaseRejectionReason: z.never().optional(),\n\tleaseUse: z.never().optional(),\n} as const;\n\nexport const GatewayControlRpcResponseBasePayloadSchema = z.object({\n\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\tresponseToMessageId: z.string().uuid(),\n\tresult: GatewayControlRpcResultSchema,\n});\n\nconst GatewayControlRpcErrorResponseResultSchema = z.enum([\n\t'failed',\n\t'timeout',\n\t'rejected',\n\t'cancelled',\n\t'stale_generation',\n\t'approval_required',\n\t'approval_stale',\n]);\n\nconst GatewayControlRpcResponseCorrelationSchema = z\n\t.object({\n\t\tresponseToMessageId: z.string().uuid(),\n\t})\n\t.strict();\n\nexport const GatewayControlRpcBareResponsePayloadSchema = z.discriminatedUnion('result', [\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\tresult: z.literal('ok'),\n\t}).strict(),\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\terror: GatewayControlRpcErrorSchema,\n\t\tresult: GatewayControlRpcErrorResponseResultSchema,\n\t}).strict(),\n]);\n\nexport const GatewayControlRpcCallerContextResponsePayloadSchema = z.discriminatedUnion('result', [\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\tcallerContext: GatewayControlRegisteredCallerContextRefSchema,\n\t\tresult: z.literal('ok'),\n\t}).strict(),\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\terror: GatewayControlRpcErrorSchema,\n\t\tresult: GatewayControlRpcErrorResponseResultSchema,\n\t}).strict(),\n]);\n\nexport const GatewayControlRpcLeaseResponsePayloadSchema = z.discriminatedUnion('result', [\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\tlease: GatewayControlLeaseSnapshotSchema,\n\t\tresult: z.literal('ok'),\n\t}).strict(),\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\terror: GatewayControlRpcErrorSchema.optional(),\n\t\tleaseRejectionReason: GatewayControlLeaseRejectionReasonSchema,\n\t\tresult: z.literal('rejected'),\n\t}).strict(),\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\terror: GatewayControlRpcErrorSchema,\n\t\tleaseRejectionReason: GatewayControlLeaseRejectionReasonSchema.optional(),\n\t\tresult: z.enum([\n\t\t\t'failed',\n\t\t\t'timeout',\n\t\t\t'cancelled',\n\t\t\t'stale_generation',\n\t\t\t'approval_required',\n\t\t\t'approval_stale',\n\t\t]),\n\t}).strict(),\n]);\n\nexport const GatewayControlRpcLeaseUseResponsePayloadSchema = z.discriminatedUnion('result', [\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\tleaseUse: GatewayControlLeaseUseSnapshotSchema,\n\t\tresult: z.literal('ok'),\n\t}).strict(),\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\terror: GatewayControlRpcErrorSchema.optional(),\n\t\tleaseRejectionReason: GatewayControlLeaseRejectionReasonSchema,\n\t\tresult: z.literal('rejected'),\n\t}).strict(),\n\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\terror: GatewayControlRpcErrorSchema,\n\t\tleaseRejectionReason: GatewayControlLeaseRejectionReasonSchema.optional(),\n\t\tresult: z.enum([\n\t\t\t'failed',\n\t\t\t'timeout',\n\t\t\t'cancelled',\n\t\t\t'stale_generation',\n\t\t\t'approval_required',\n\t\t\t'approval_stale',\n\t\t]),\n\t}).strict(),\n]);\n\nexport const GatewayControlRpcControllerHostActionResponsePayloadSchema = z.discriminatedUnion(\n\t'result',\n\t[\n\t\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\t\tcontrollerHostAction: GatewayControlToolPortalControllerHostActionResultSchema,\n\t\t\tresult: z.literal('ok'),\n\t\t}).strict(),\n\t\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\t\terror: GatewayControlRpcErrorSchema,\n\t\t\tresult: GatewayControlRpcErrorResponseResultSchema,\n\t\t}).strict(),\n\t],\n);\n\nexport const GatewayControlRpcOperationCancelResponsePayloadSchema = z.discriminatedUnion(\n\t'result',\n\t[\n\t\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\t\tactiveOperationId: GatewayControlActiveOperationIdSchema,\n\t\t\tresult: z.literal('ok'),\n\t\t}).strict(),\n\t\tGatewayControlRpcResponseCorrelationSchema.extend({\n\t\t\t...GatewayControlRpcForbiddenResponseFieldsSchema,\n\t\t\tactiveOperationId: GatewayControlActiveOperationIdSchema.optional(),\n\t\t\terror: GatewayControlRpcErrorSchema,\n\t\t\tresult: GatewayControlRpcErrorResponseResultSchema,\n\t\t}).strict(),\n\t],\n);\n\nexport const GatewayControlRpcResponsePayloadSchema = z.union([\n\tGatewayControlRpcBareResponsePayloadSchema,\n\tGatewayControlRpcCallerContextResponsePayloadSchema,\n\tGatewayControlRpcLeaseResponsePayloadSchema,\n\tGatewayControlRpcLeaseUseResponsePayloadSchema,\n\tGatewayControlRpcControllerHostActionResponsePayloadSchema,\n\tGatewayControlRpcOperationCancelResponsePayloadSchema,\n]);\n\nconst GatewayControlRpcControlPingCommandResultMessageSchema =\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command_result'),\n\t\toperation: z.literal('control_ping'),\n\t\tpayload: GatewayControlRpcBareResponsePayloadSchema,\n\t}).strict();\n\nconst GatewayControlRpcCallerContextRegisterCommandResultMessageSchema =\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command_result'),\n\t\toperation: z.literal('caller_context_register'),\n\t\tpayload: GatewayControlRpcCallerContextResponsePayloadSchema,\n\t}).strict();\n\nconst GatewayControlRpcLeaseCommandResultMessageSchema =\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command_result'),\n\t\toperation: z.enum([\n\t\t\t'lease_create',\n\t\t\t'lease_get',\n\t\t\t'lease_peek',\n\t\t\t'lease_reacquire',\n\t\t\t'lease_renew',\n\t\t\t'lease_release',\n\t\t]),\n\t\tpayload: GatewayControlRpcLeaseResponsePayloadSchema,\n\t}).strict();\n\nconst GatewayControlRpcLeaseUseCommandResultMessageSchema =\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command_result'),\n\t\toperation: z.enum(['lease_use_start', 'lease_use_heartbeat', 'lease_use_end']),\n\t\tpayload: GatewayControlRpcLeaseUseResponsePayloadSchema,\n\t}).strict();\n\nconst GatewayControlRpcControllerHostActionCommandResultMessageSchema =\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command_result'),\n\t\toperation: z.literal('tool_portal_controller_host_action'),\n\t\tpayload: GatewayControlRpcControllerHostActionResponsePayloadSchema,\n\t}).strict();\n\nconst GatewayControlRpcOperationCancelCommandResultMessageSchema =\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command_result'),\n\t\toperation: z.literal('operation_cancel'),\n\t\tpayload: GatewayControlRpcOperationCancelResponsePayloadSchema,\n\t}).strict();\n\nconst GatewayControlRpcRecoveryCommandResultMessageSchema =\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command_result'),\n\t\toperation: z.literal('recovery_command'),\n\t\tpayload: GatewayControlRpcBareResponsePayloadSchema,\n\t}).strict();\n\nconst GatewayControlHeartbeatMessageSchema = z\n\t.object({\n\t\tkind: z.literal('heartbeat'),\n\t\toperation: z.never().optional(),\n\t\tpayload: GatewayControlHeartbeatPayloadSchema,\n\t})\n\t.strict();\n\nexport const GatewayControlRpcCommandResultMessageSchema = z.discriminatedUnion('operation', [\n\tGatewayControlRpcControlPingCommandResultMessageSchema,\n\tGatewayControlRpcCallerContextRegisterCommandResultMessageSchema,\n\tGatewayControlRpcLeaseCommandResultMessageSchema,\n\tGatewayControlRpcLeaseUseCommandResultMessageSchema,\n\tGatewayControlRpcControllerHostActionCommandResultMessageSchema,\n\tGatewayControlRpcOperationCancelCommandResultMessageSchema,\n\tGatewayControlRpcRecoveryCommandResultMessageSchema,\n]);\n\nexport const GatewayControlRpcCommandMessageSchema = z.discriminatedUnion('operation', [\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('control_ping'),\n\t\tpayload: GatewayControlPingPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('caller_context_register'),\n\t\tpayload: GatewayControlCallerContextRegisterPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_create'),\n\t\tpayload: GatewayControlLeaseCreateIntentPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_get'),\n\t\tpayload: GatewayControlLeaseIdPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_peek'),\n\t\tpayload: GatewayControlLeaseIdPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_reacquire'),\n\t\tpayload: GatewayControlLeaseReacquireIntentPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_renew'),\n\t\tpayload: GatewayControlLeaseIdPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_release'),\n\t\tpayload: GatewayControlLeaseIdPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_use_start'),\n\t\tpayload: GatewayControlLeaseUseStartPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_use_heartbeat'),\n\t\tpayload: GatewayControlLeaseUseHeartbeatPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('lease_use_end'),\n\t\tpayload: GatewayControlLeaseUseEndPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('tool_portal_controller_host_action'),\n\t\tpayload: GatewayControlToolPortalControllerHostActionPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('operation_cancel'),\n\t\tpayload: GatewayControlOperationCancelPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('command'),\n\t\toperation: z.literal('recovery_command'),\n\t\tpayload: GatewayControlRecoveryCommandPayloadSchema,\n\t}).strict(),\n]);\n\nexport const GatewayControlRpcEventMessageSchema = z.discriminatedUnion('operation', [\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('event'),\n\t\toperation: z.literal('health_event'),\n\t\tpayload: GatewayControlHealthEventPayloadSchema,\n\t}).strict(),\n\tGatewayControlRpcDomainCorrelationSchema.extend({\n\t\tkind: z.literal('event'),\n\t\toperation: z.literal('runtime_status'),\n\t\tpayload: GatewayControlRuntimeStatusPayloadSchema,\n\t}).strict(),\n]);\n\nexport const GatewayControlEventOnlyOperationSchema = z.enum(['health_event', 'runtime_status']);\n\nexport const GatewayControlRpcCommandResultOperationSchema =\n\tGatewayControlRpcOperationSchema.exclude(GatewayControlEventOnlyOperationSchema.options);\n\nexport const GatewayControlRpcMessageSchema = z.union([\n\tGatewayControlHeartbeatMessageSchema,\n\tGatewayControlRpcCommandMessageSchema,\n\tGatewayControlRpcEventMessageSchema,\n\tGatewayControlRpcCommandResultMessageSchema,\n]);\n\nexport const gatewayControlDeliveryPolicyByKind = {\n\theartbeat: 'critical_idempotent',\n} as const satisfies Partial<Record<ControlMessageKind, ControlDeliveryPolicy>>;\n\nexport const gatewayControlDeliveryPolicyByOperation = {\n\tcaller_context_register: 'critical_idempotent',\n\tcontrol_ping: 'acked_idempotent',\n\thealth_event: 'append_only_observation',\n\tlease_create: 'critical_idempotent',\n\tlease_get: 'acked_idempotent',\n\tlease_peek: 'acked_idempotent',\n\tlease_reacquire: 'critical_idempotent',\n\tlease_release: 'acked_idempotent',\n\tlease_renew: 'single_use_critical',\n\tlease_use_end: 'acked_idempotent',\n\tlease_use_heartbeat: 'single_use_critical',\n\tlease_use_start: 'critical_idempotent',\n\toperation_cancel: 'acked_idempotent',\n\trecovery_command: 'critical_idempotent',\n\truntime_status: 'latest_wins',\n\ttool_portal_controller_host_action: 'single_use_critical',\n} as const satisfies Record<GatewayControlRpcOperation, ControlDeliveryPolicy>;\n\nexport function deriveGatewayControlDeliveryPolicy(\n\tenvelope: Pick<ControlEnvelope, 'idempotencyKey' | 'kind' | 'operation'>,\n): ControlDeliveryPolicy {\n\tif (envelope.operation === 'lease_create' && envelope.idempotencyKey === undefined) {\n\t\treturn 'single_use_critical';\n\t}\n\tconst parsedOperation = GatewayControlRpcOperationSchema.safeParse(envelope.operation);\n\tif (parsedOperation.success) {\n\t\tconst operationPolicy = gatewayControlDeliveryPolicyByOperation[parsedOperation.data];\n\t\tif (operationPolicy !== undefined) {\n\t\t\treturn operationPolicy;\n\t\t}\n\t}\n\tconst kindPolicy =\n\t\tenvelope.kind === 'heartbeat' ? gatewayControlDeliveryPolicyByKind.heartbeat : undefined;\n\tif (kindPolicy !== undefined) {\n\t\treturn kindPolicy;\n\t}\n\tthrow new Error(\n\t\t`no gateway control delivery policy for ${envelope.kind}:${envelope.operation ?? '<none>'}`,\n\t);\n}\n\nexport function assertGatewayControlEnvelopeDeliveryPolicy(envelope: ControlEnvelope): void {\n\tconst derivedPolicy = deriveGatewayControlDeliveryPolicy(envelope);\n\tif (envelope.deliveryPolicy !== derivedPolicy) {\n\t\tthrow new Error(\n\t\t\t`control delivery policy mismatch: ${envelope.deliveryPolicy} !== ${derivedPolicy}`,\n\t\t);\n\t}\n}\n\nexport const gatewayControlCommandExecutionTimeoutMsByOperation = {\n\tcaller_context_register: 5_000,\n\tcontrol_ping: 5_000,\n\thealth_event: 5_000,\n\tlease_create: 180_000,\n\tlease_get: 5_000,\n\tlease_peek: 5_000,\n\tlease_reacquire: 180_000,\n\tlease_release: 5_000,\n\tlease_renew: 10_000,\n\tlease_use_end: 5_000,\n\tlease_use_heartbeat: 5_000,\n\tlease_use_start: 10_000,\n\toperation_cancel: 5_000,\n\trecovery_command: 10_000,\n\truntime_status: 5_000,\n\ttool_portal_controller_host_action: 120_000,\n} as const satisfies Record<GatewayControlRpcOperation, number>;\n\nexport type GatewayControlRpcOperation = z.infer<typeof GatewayControlRpcOperationSchema>;\nexport type GatewayControlRpcMessage = z.infer<typeof GatewayControlRpcMessageSchema>;\nexport type GatewayControlHello = z.infer<typeof GatewayControlHelloSchema>;\nexport type GatewayControlHelloResponse = z.infer<typeof GatewayControlHelloResponseSchema>;\nexport type GatewayControlControllerToGatewayEvents = ControlSessionControllerToPeerEvents<\n\tGatewayControlRpcMessage,\n\tGatewayControlHello,\n\tGatewayControlHelloResponse\n>;\nexport type GatewayControlGatewayToControllerEvents =\n\tControlSessionPeerToControllerEvents<GatewayControlRpcMessage>;\nexport type GatewayControlCallerContextRef = z.infer<typeof GatewayControlCallerContextRefSchema>;\nexport type GatewayControlCallerContextProof = z.infer<\n\ttypeof GatewayControlCallerContextProofSchema\n>;\nexport type GatewayControlCallerContextAgentAuthority = z.infer<\n\ttypeof GatewayControlCallerContextAgentAuthoritySchema\n>;\nexport type GatewayControlCallerContextRegisterPayload = z.infer<\n\ttypeof GatewayControlCallerContextRegisterPayloadSchema\n>;\nexport type GatewayControlLeaseCreateIntentPayload = z.infer<\n\ttypeof GatewayControlLeaseCreateIntentPayloadSchema\n>;\nexport type GatewayControlLeaseIdPayload = z.infer<typeof GatewayControlLeaseIdPayloadSchema>;\nexport type GatewayControlLeaseReacquireIntentPayload = z.infer<\n\ttypeof GatewayControlLeaseReacquireIntentPayloadSchema\n>;\nexport type GatewayControlLeaseRejectionReason = z.infer<\n\ttypeof GatewayControlLeaseRejectionReasonSchema\n>;\nexport type GatewayControlLeaseStaleEvidence = z.infer<\n\ttypeof GatewayControlLeaseStaleEvidenceSchema\n>;\nexport type GatewayControlLeaseSnapshot = z.infer<typeof GatewayControlLeaseSnapshotSchema>;\nexport type GatewayControlLeaseUseEndPayload = z.infer<\n\ttypeof GatewayControlLeaseUseEndPayloadSchema\n>;\nexport type GatewayControlLeaseUseHeartbeatPayload = z.infer<\n\ttypeof GatewayControlLeaseUseHeartbeatPayloadSchema\n>;\nexport type GatewayControlLeaseUseSnapshot = z.infer<typeof GatewayControlLeaseUseSnapshotSchema>;\nexport type GatewayControlLeaseUseStartPayload = z.infer<\n\ttypeof GatewayControlLeaseUseStartPayloadSchema\n>;\nexport type GatewayControlProviderRuntimeHealth = z.infer<\n\ttypeof GatewayControlProviderRuntimeHealthSchema\n>;\nexport type GatewayControlHeartbeatPayload = z.infer<typeof GatewayControlHeartbeatPayloadSchema>;\nexport type GatewayControlHealthEventPayload = z.infer<\n\ttypeof GatewayControlHealthEventPayloadSchema\n>;\nexport type GatewayControlRuntimeStatusPayload = z.infer<\n\ttypeof GatewayControlRuntimeStatusPayloadSchema\n>;\nexport type GatewayControlControllerHostProbeResult = z.infer<\n\ttypeof GatewayControlControllerHostProbeResultSchema\n>;\nexport type GatewayControlToolPortalControllerHostActionPayload = z.infer<\n\ttypeof GatewayControlToolPortalControllerHostActionPayloadSchema\n>;\nexport type GatewayControlToolPortalControllerHostActionResult = z.infer<\n\ttypeof GatewayControlToolPortalControllerHostActionResultSchema\n>;\nexport type GatewayControlZoneGitPushResult = z.infer<typeof GatewayControlZoneGitPushResultSchema>;\n\nexport function buildGatewayControlJsonSchemas(): Readonly<Record<string, unknown>> {\n\treturn {\n\t\tdomain: z.toJSONSchema(GatewayControlDomainSchema, {\n\t\t\tio: 'input',\n\t\t\tunrepresentable: 'any',\n\t\t}),\n\t\thello: z.toJSONSchema(GatewayControlHelloSchema, {\n\t\t\tio: 'input',\n\t\t\tunrepresentable: 'any',\n\t\t}),\n\t\thelloResponse: z.toJSONSchema(GatewayControlHelloResponseSchema, {\n\t\t\tio: 'input',\n\t\t\tunrepresentable: 'any',\n\t\t}),\n\t\tmessage: z.toJSONSchema(GatewayControlRpcMessageSchema, {\n\t\t\tio: 'input',\n\t\t\tunrepresentable: 'any',\n\t\t}),\n\t\toperation: z.toJSONSchema(GatewayControlRpcOperationSchema, {\n\t\t\tio: 'input',\n\t\t\tunrepresentable: 'any',\n\t\t}),\n\t};\n}\n\nexport function assertGatewayControlDomainRegistered(): 'gateway_control' {\n\treturn KnownControlDomainSchema.extract(['gateway_control']).parse('gateway_control');\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-vm/gateway-control-contracts",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.114",
|
|
4
4
|
"description": "Gateway control domain contracts for agent-vm Socket.IO sessions.",
|
|
5
5
|
"homepage": "https://github.com/ShravanSunder/agent-vm#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"zod": "^4.4.3",
|
|
33
|
-
"@agent-vm/control-protocol-contracts": "0.0.
|
|
33
|
+
"@agent-vm/control-protocol-contracts": "0.0.114"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"vitest": "^4.1.5"
|