import type { CapabilityRequest } from './capability-policy.ts'; import { type ConfigurationInput } from './configuration-policy.ts'; import { type ActivationRecord, type ActivationState, type DirectControlAction, type DirectControlRecord, type DirectControlStatus, type AdmitAgentInput, type AgentConfigurationChange, type AgentMetadataPatch, type AgentRecord, type AgentRuntimeState, type PeerEventMode, type PeerEventRecord, type SchedulerBootstrap, type SchedulerCommit, type SchedulerPrincipal, type SchedulerStartup, type SchedulerState, type WatchRecord, type MailboxRecord } from './scheduler-state.ts'; import { type RootPolicyInput } from './tree-policy.ts'; import { type SystemEventInput } from './system-event-policy.ts'; import { type WatchInput } from './watch-policy.ts'; import { type PeerDispatchPlan, type PeerEventAuth, type PeerEventRequest, type PeerRouteReceipt } from './peer-event-policy.ts'; import { type DirectControlAdmission, type DirectControlInput } from './direct-control-policy.ts'; import { type CorrelatedCancelInput, type CorrelatedReplyInput, type CorrelatedRequestInput, type CorrelatedRequestReceipt } from './request-policy.ts'; export { SchedulerStateError } from './scheduler-state.ts'; export { validateSchedulerState } from './scheduler-state-validation.ts'; export type { ActivationRecord, ActivationState, AdmitAgentInput, AgentMetadataPatch, AgentRecord, AgentRuntimeState, CorrelatedRequestRecord, CorrelatedRequestStatus, DirectControlAction, DirectControlRecord, DirectControlStatus, DeclaredField, DeclaredSource, ExpertCard, ExpertCardInput, PeerDeliveryKind, PeerEventKind, PeerEventMode, PeerEventOrigin, PeerEventRecord, PeerEventStatus, RequestResolutionCode, SchedulerBootstrap, SchedulerCommit, SchedulerPrincipal, SchedulerStartup, SchedulerState, SystemEventType, WatchRecord, WatchStatus, } from './scheduler-state.ts'; export type { DirectControlAdmission, DirectControlInput } from './direct-control-policy.ts'; export type { PeerDispatchPlan, PeerEventAuth, PeerEventRequest, PeerRouteReceipt } from './peer-event-policy.ts'; export type { CorrelatedCancelInput, CorrelatedReplyInput, CorrelatedRequestInput, CorrelatedRequestReceipt, } from './request-policy.ts'; export interface PeerMulticastInput { bridgeRequestId: string; recipientIds: readonly string[]; message: string; mode?: PeerEventMode; causationId?: string; } export interface CorrelatedMulticastInput extends PeerMulticastInput { mode?: 'default' | 'follow_up'; deadlineAtMs?: number; } export interface AgentStartingInputReceipt { agent: AgentRecord; duplicate: boolean; } export type SchedulerMailboxIntent = { kind: 'admit_direct'; input: DirectControlInput; requestedBy: SchedulerPrincipal; } | { kind: 'begin_delivery'; recordId: string; runtimeOwner: string; } | { kind: 'release_delivery'; recordId: string; attemptId: string; settlement?: { activationId: string; leaseToken: string; outcome: Exclude; }; } | { kind: 'admit_boundary'; recordId: string; attemptId: string; aborted?: boolean; } | { kind: 'finish_delivery'; recordId: string; attemptId: string; status: Extract; outcomeCode: string; } | { kind: 'reconcile_delivery'; recordId: string; }; /** Serialized durable persistence facade. Tree and directory policy live in dedicated pure modules. */ export declare class SchedulerStore { readonly statePath: string; readonly startup: SchedulerStartup; readonly deliveryPayloadDirectory: string; private readonly log; private state; private readonly closedCatalog; private readonly noReplayCatalog; private closedCatalogRevisionValue; private operations; private readonly pendingMutations; private resourceClosing; private readonly diagnosticsRing; private readonly changeListeners; private constructor(); static open(options: { statePath: string; bootstrap?: SchedulerBootstrap; }): Promise; snapshot(): Readonly; get diagnostics(): readonly string[]; get closedCatalogRevision(): number; closedCatalogSnapshot(): { revision: number; agents: readonly AgentRecord[]; }; indeterminateEvidenceSnapshot(agentIds: readonly string[]): readonly MailboxRecord[]; onChange(listener: (revision: number, affectedRecipientIds: readonly string[]) => void): () => void; releaseClosedRuntime(agentIdInput: string, runtimeOwnerInput: string): Promise; closedAgentLineage(agentIdInput: string): Promise; directControlReceipt(requestIdInput: string, action: DirectControlAction, requestedBy: SchedulerPrincipal): Promise | undefined>; reconcileRootPolicy(input: RootPolicyInput): Promise>; reconcileRootHostFacts(input: Pick): Promise>; setRootCapacity(capacity: number): Promise>; setRootDepth(depth: number): Promise>; approveRootExtension(specifierInput: string, pathsInput: readonly string[], signal?: AbortSignal): Promise>; reconcileManagedExtensionSelections(entriesInput: readonly { specifier: string; state: 'always' | 'allow' | 'deny'; paths: readonly string[]; }[]): Promise>; private setRootLimits; setAgentCapabilities(targetIdInput: string, request: CapabilityRequest, requestedBy: SchedulerPrincipal, signal?: AbortSignal): Promise>; applyOfflineConfiguration(input: ConfigurationInput, requestedBy: SchedulerPrincipal, signal?: AbortSignal): Promise>; beginLiveConfiguration(input: ConfigurationInput, requestedBy: SchedulerPrincipal, signal?: AbortSignal): Promise>; finishLiveConfiguration(targetId: string, changeId: string, outcome: 'applied' | 'refused' | 'indeterminate'): Promise>; updateAgentMetadata(targetIdInput: string, patchInput: AgentMetadataPatch, requestedBy: SchedulerPrincipal, signal?: AbortSignal): Promise>; closeAgent(targetIdInput: string, requestedBy: SchedulerPrincipal, options?: { subtree?: boolean; }, signal?: AbortSignal): Promise>; resumeAgent(targetIdInput: string, requestedBy: SchedulerPrincipal, signal?: AbortSignal): Promise>; resumeArchivedAgent(targetIdInput: string, requestedBy: SchedulerPrincipal, signal?: AbortSignal): Promise>; setAgentArchived(targetIdInput: string, archived: boolean, requestedBy: SchedulerPrincipal): Promise>; admitAgent(input: AdmitAgentInput, requestedBy: SchedulerPrincipal): Promise>; admitAgentWithStartingInput(input: AdmitAgentInput, requestedBy: SchedulerPrincipal, auth: PeerEventAuth, startingInput: Omit, startingMessage: (agent: Readonly, state: Readonly) => string, signal?: AbortSignal): Promise>; bindSession(agentIdInput: string, sessionFileInput: string): Promise>; claimRuntime(agentIdInput: string, managerPidInput: number, hostnameInput: string): Promise>; markRuntimeSpawned(agentIdInput: string, runtimeOwnerInput: string, runtimePidInput: number): Promise>; markRuntimeReady(agentIdInput: string, runtimeOwnerInput: string, runtimePidInput: number): Promise>; releaseRuntime(agentIdInput: string, runtimeOwnerInput: string, runtimeState: Exclude, kind?: string): Promise>; markAgentContinuedAfterIndeterminate(agentIdInput: string, requestedBy: SchedulerPrincipal): Promise>; setAgentAttention(agentIdInput: string, attention: 'failed' | 'needs_attention', code: string): Promise>; startActivation(agentIdInput: string, inputKindInput: string): Promise>; markRootNativeInput(): Promise>; finishActivation(activationIdInput: string, leaseTokenInput: string, outcome: Exclude): Promise>; finishActivationIfRunning(activationIdInput: string, leaseTokenInput: string, outcome: Exclude, deferWhileSending?: boolean): Promise>; applyMailboxIntent(intent: Extract, signal?: AbortSignal): Promise>; applyMailboxIntent(intent: Extract, signal?: AbortSignal): Promise>; applyMailboxIntent(intent: Extract, signal?: AbortSignal): Promise>; applyMailboxIntent(intent: Extract, signal?: AbortSignal): Promise>; applyMailboxIntent(intent: Extract, signal?: AbortSignal): Promise>; applyMailboxIntent(intent: Extract, signal?: AbortSignal): Promise>; admitPeerEvent(auth: PeerEventAuth, request: PeerEventRequest, expectedActivationIdInput?: string, afterControlIdInput?: string, signal?: AbortSignal): Promise>; /** * One durable operator admission: peer-event acceptance plus continuation * clearing for the target in the same transaction. Operator authority is * enforced here; agents and services use the generic admission paths. */ admitOperatorInput(auth: PeerEventAuth, request: PeerEventRequest, expectedActivationIdInput?: string, signal?: AbortSignal): Promise>; admitPeerEventAfterInterrupt(controlIdInput: string, attemptIdInput: string, auth: PeerEventAuth, request: PeerEventRequest, signal?: AbortSignal): Promise>; admitSystemEvent(input: SystemEventInput): Promise>; admitPeerMulticast(auth: PeerEventAuth, input: PeerMulticastInput, signal?: AbortSignal): Promise>; acceptCorrelatedMulticast(auth: PeerEventAuth, input: CorrelatedMulticastInput, signal?: AbortSignal): Promise>; acceptCorrelatedRequest(auth: PeerEventAuth, input: CorrelatedRequestInput, signal?: AbortSignal): Promise>; timeoutCorrelatedRequest(requestId: string, nowMs?: number): Promise>; acceptCorrelatedReply(auth: PeerEventAuth, input: CorrelatedReplyInput, signal?: AbortSignal): Promise>; acceptCorrelatedCancel(auth: PeerEventAuth, input: CorrelatedCancelInput, signal?: AbortSignal): Promise>; registerWatch(input: WatchInput, requestedBy: SchedulerPrincipal, signal?: AbortSignal): Promise>; cancelWatch(watchId: string, requestedBy: SchedulerPrincipal, signal?: AbortSignal): Promise>; retireSurfacedNotifications(): Promise>; close(): Promise; materializeDeliveryPayload(eventIdInput: string): Promise; removeDeliveryPayload(eventId: string): Promise; private hydrateClosedLineage; private hydrateAllClosed; private hydrateIndeterminate; private mutate; private flushMutations; private addDiagnostic; }