@caupulican/pi-adaptative 0.93.12 → 0.93.13
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/CHANGELOG.md +13 -0
- package/dist/core/agent-paths.d.ts +6 -0
- package/dist/core/agent-paths.d.ts.map +1 -1
- package/dist/core/agent-paths.js +15 -0
- package/dist/core/agent-paths.js.map +1 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +2 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/background-lane-controller.d.ts +2 -0
- package/dist/core/background-lane-controller.d.ts.map +1 -1
- package/dist/core/background-lane-controller.js +3 -0
- package/dist/core/background-lane-controller.js.map +1 -1
- package/dist/core/background-tool-task-controller.d.ts +4 -0
- package/dist/core/background-tool-task-controller.d.ts.map +1 -1
- package/dist/core/background-tool-task-controller.js +22 -19
- package/dist/core/background-tool-task-controller.js.map +1 -1
- package/dist/core/delegation/worker-agent-control-coordinator.d.ts +3 -1
- package/dist/core/delegation/worker-agent-control-coordinator.d.ts.map +1 -1
- package/dist/core/delegation/worker-agent-control-coordinator.js +8 -0
- package/dist/core/delegation/worker-agent-control-coordinator.js.map +1 -1
- package/dist/core/delegation/worker-attempt-executor.d.ts +2 -1
- package/dist/core/delegation/worker-attempt-executor.d.ts.map +1 -1
- package/dist/core/delegation/worker-attempt-executor.js +14 -1
- package/dist/core/delegation/worker-attempt-executor.js.map +1 -1
- package/dist/core/delegation/worker-claim.d.ts +4 -1
- package/dist/core/delegation/worker-claim.d.ts.map +1 -1
- package/dist/core/delegation/worker-claim.js +20 -2
- package/dist/core/delegation/worker-claim.js.map +1 -1
- package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -1
- package/dist/core/delegation/worker-delegation-controller.js +2 -0
- package/dist/core/delegation/worker-delegation-controller.js.map +1 -1
- package/dist/core/delegation/worker-lifecycle.d.ts +1 -0
- package/dist/core/delegation/worker-lifecycle.d.ts.map +1 -1
- package/dist/core/delegation/worker-lifecycle.js +3 -0
- package/dist/core/delegation/worker-lifecycle.js.map +1 -1
- package/dist/core/delegation/worker-runner.d.ts.map +1 -1
- package/dist/core/delegation/worker-runner.js +15 -9
- package/dist/core/delegation/worker-runner.js.map +1 -1
- package/dist/core/delegation/worker-terminal-output-artifact.d.ts +14 -0
- package/dist/core/delegation/worker-terminal-output-artifact.d.ts.map +1 -0
- package/dist/core/delegation/worker-terminal-output-artifact.js +49 -0
- package/dist/core/delegation/worker-terminal-output-artifact.js.map +1 -0
- package/dist/core/foreground-terminal-handoff-controller.d.ts +3 -0
- package/dist/core/foreground-terminal-handoff-controller.d.ts.map +1 -1
- package/dist/core/foreground-terminal-handoff-controller.js +6 -0
- package/dist/core/foreground-terminal-handoff-controller.js.map +1 -1
- package/dist/core/goals/goal-session-controller.d.ts +2 -2
- package/dist/core/goals/goal-session-controller.d.ts.map +1 -1
- package/dist/core/goals/goal-session-controller.js +2 -11
- package/dist/core/goals/goal-session-controller.js.map +1 -1
- package/dist/core/orchestration/contracts.d.ts +2 -0
- package/dist/core/orchestration/contracts.d.ts.map +1 -1
- package/dist/core/orchestration/contracts.js +3 -0
- package/dist/core/orchestration/contracts.js.map +1 -1
- package/dist/core/orchestration/task-runtime-codecs.d.ts.map +1 -1
- package/dist/core/orchestration/task-runtime-codecs.js +11 -2
- package/dist/core/orchestration/task-runtime-codecs.js.map +1 -1
- package/dist/core/orchestration/worker-result-adapter.d.ts +2 -1
- package/dist/core/orchestration/worker-result-adapter.d.ts.map +1 -1
- package/dist/core/orchestration/worker-result-adapter.js +41 -7
- package/dist/core/orchestration/worker-result-adapter.js.map +1 -1
- package/dist/core/runtime-builder.d.ts +5 -2
- package/dist/core/runtime-builder.d.ts.map +1 -1
- package/dist/core/runtime-builder.js +26 -8
- package/dist/core/runtime-builder.js.map +1 -1
- package/dist/core/secrets/bitwarden-credential-storage-router.d.ts +22 -0
- package/dist/core/secrets/bitwarden-credential-storage-router.d.ts.map +1 -0
- package/dist/core/secrets/bitwarden-credential-storage-router.js +59 -0
- package/dist/core/secrets/bitwarden-credential-storage-router.js.map +1 -0
- package/dist/core/secrets/bitwarden-credential-storage.d.ts +2 -8
- package/dist/core/secrets/bitwarden-credential-storage.d.ts.map +1 -1
- package/dist/core/secrets/bitwarden-credential-storage.js +23 -134
- package/dist/core/secrets/bitwarden-credential-storage.js.map +1 -1
- package/dist/core/secrets/bitwarden-secrets-manager-storage.d.ts +46 -0
- package/dist/core/secrets/bitwarden-secrets-manager-storage.d.ts.map +1 -0
- package/dist/core/secrets/bitwarden-secrets-manager-storage.js +379 -0
- package/dist/core/secrets/bitwarden-secrets-manager-storage.js.map +1 -0
- package/dist/core/secrets/credential-cli-command.d.ts +22 -0
- package/dist/core/secrets/credential-cli-command.d.ts.map +1 -0
- package/dist/core/secrets/credential-cli-command.js +82 -0
- package/dist/core/secrets/credential-cli-command.js.map +1 -0
- package/dist/core/secrets/credential-exposure-guard.d.ts +1 -1
- package/dist/core/secrets/credential-exposure-guard.d.ts.map +1 -1
- package/dist/core/secrets/credential-exposure-guard.js +5 -1
- package/dist/core/secrets/credential-exposure-guard.js.map +1 -1
- package/dist/core/secrets/credential-machine-session.d.ts +13 -0
- package/dist/core/secrets/credential-machine-session.d.ts.map +1 -0
- package/dist/core/secrets/credential-machine-session.js +139 -0
- package/dist/core/secrets/credential-machine-session.js.map +1 -0
- package/dist/core/secrets/credential-manager.d.ts +11 -1
- package/dist/core/secrets/credential-manager.d.ts.map +1 -1
- package/dist/core/secrets/credential-manager.js +44 -9
- package/dist/core/secrets/credential-manager.js.map +1 -1
- package/dist/core/secrets/credential-profile-envelope.d.ts +10 -0
- package/dist/core/secrets/credential-profile-envelope.d.ts.map +1 -0
- package/dist/core/secrets/credential-profile-envelope.js +78 -0
- package/dist/core/secrets/credential-profile-envelope.js.map +1 -0
- package/dist/core/secrets/credential-session-connection.d.ts.map +1 -1
- package/dist/core/secrets/credential-session-connection.js +2 -1
- package/dist/core/secrets/credential-session-connection.js.map +1 -1
- package/dist/core/secrets/credential-source-discovery.d.ts +7 -3
- package/dist/core/secrets/credential-source-discovery.d.ts.map +1 -1
- package/dist/core/secrets/credential-source-discovery.js +48 -9
- package/dist/core/secrets/credential-source-discovery.js.map +1 -1
- package/dist/core/tools/delegate-status.d.ts +4 -0
- package/dist/core/tools/delegate-status.d.ts.map +1 -1
- package/dist/core/tools/delegate-status.js +20 -4
- package/dist/core/tools/delegate-status.js.map +1 -1
- package/dist/core/tools/goal.d.ts +2 -2
- package/dist/core/tools/goal.d.ts.map +1 -1
- package/dist/core/tools/goal.js +30 -11
- package/dist/core/tools/goal.js.map +1 -1
- package/dist/core/tools/secret-store.d.ts.map +1 -1
- package/dist/core/tools/secret-store.js +6 -15
- package/dist/core/tools/secret-store.js.map +1 -1
- package/dist/core/tools/tool-task.d.ts.map +1 -1
- package/dist/core/tools/tool-task.js +6 -3
- package/dist/core/tools/tool-task.js.map +1 -1
- package/dist/core/util/bounded-value.d.ts +2 -0
- package/dist/core/util/bounded-value.d.ts.map +1 -1
- package/dist/core/util/bounded-value.js +13 -0
- package/dist/core/util/bounded-value.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/tools-manager.d.ts +2 -1
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +29 -0
- package/dist/utils/tools-manager.js.map +1 -1
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/npm-shrinkwrap.json +12 -12
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-agent-control-coordinator.js","sourceRoot":"","sources":["../../../src/core/delegation/worker-agent-control-coordinator.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage } from \"@caupulican/pi-agent-core\";\nimport type { UserMessage } from \"@caupulican/pi-ai\";\nimport type { WorkerDelegationRunOutcome } from \"../agent-session-contracts.ts\";\nimport type { LaneRecord } from \"../autonomy/lane-tracker.ts\";\nimport { latestAgentAttemptsByDurableOrder } from \"../orchestration/attempt-ordering.ts\";\nimport {\n\ttype AgentBindingContract,\n\tMAX_ORCHESTRATION_COLLECTION_LENGTH,\n\tMAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n} from \"../orchestration/contracts.ts\";\nimport type { AttemptRuntimeState, TaskRuntimeProjection } from \"../orchestration/task-runtime.ts\";\nimport {\n\tSessionRootMailbox,\n\ttype SessionRootReply,\n\ttype SessionRootReplyQuery,\n\ttype SessionRootReplyWaitOptions,\n\ttype SessionRootReplyWaitResult,\n\tsessionRootAddress,\n\tsessionRootReplyMessageId,\n} from \"./session-root-mailbox.ts\";\nimport type { WorkerClaimSnapshotPayload } from \"./session-worker-claim.ts\";\nimport {\n\tnormalizeWorkerAgentDependencyTaskIds,\n\ttype SessionRootWorkerAgentMessageOptions,\n\ttype WorkerAgentActivity,\n\ttype WorkerAgentBroadcastOptions,\n\ttype WorkerAgentBroadcastResult,\n\ttype WorkerAgentControlPort,\n\ttype WorkerAgentControlScope,\n\tWorkerAgentMailbox,\n\ttype WorkerAgentMessage,\n\ttype WorkerAgentMessageOptions,\n\ttype WorkerAgentReplyResult,\n\ttype WorkerAgentRetireResult,\n\ttype WorkerAgentTaskMetadata,\n\ttype WorkerAgentTaskStartOptions,\n\ttype WorkerAgentTranscriptOptions,\n\ttype WorkerAgentView,\n\ttype WorkerAgentWaitMode,\n\tworkerAgentBroadcastTargetIdempotencyKey,\n\tworkerAgentMessageId,\n} from \"./worker-agent-control.ts\";\nimport {\n\tMAX_WORKER_TRANSCRIPT_PAGE_MESSAGES,\n\ttype WorkerConversation,\n\tWorkerConversationStore,\n} from \"./worker-conversation-store.ts\";\nimport type { WorkerDelegationRequest } from \"./worker-delegation-request.ts\";\nimport type { WorkerDispatchScheduler } from \"./worker-dispatch-scheduler.ts\";\nimport { evaluateReusableWorkerTaskAdmission } from \"./worker-fleet-limits.ts\";\nimport type { WorkerLifecycle } from \"./worker-lifecycle.ts\";\nimport { projectWorkerTaskSessionView } from \"./worker-task-view.ts\";\nimport { WORKER_COMPLETION_ERROR_CAVEMAN_GUIDANCE } from \"./worker-terminal-handoff-coordinator.ts\";\n\nexport interface WorkerAgentControlCoordinatorOptions {\n\tagentDir: string;\n\tparentSessionId: string;\n\tprocessOwnerId: string;\n\t/** Controller-owned composition dependency; standalone coordinators receive a private default. */\n\tconversationStore?: WorkerConversationStore;\n\tisControlAvailable(): boolean;\n\tgetLifecycle(): WorkerLifecycle;\n\trecoveredRequest(attempt: AttemptRuntimeState): WorkerDelegationRequest;\n\trun(request: WorkerDelegationRequest, record: LaneRecord): Promise<WorkerDelegationRunOutcome>;\n\tscheduler: Pick<WorkerDispatchScheduler, \"enqueue\" | \"track\" | \"drain\" | \"dropQueued\">;\n\tstatusChanged(): void;\n\tgetWorkerClaimSnapshot?(laneId: string): WorkerClaimSnapshotPayload | undefined;\n\tabortLane(laneId: string, reasonCode: string): void;\n\tcancelLane(laneId: string, reasonCode: string): LaneRecord | undefined;\n\ttaskStartHeadroomSkipReason?(agent: AgentBindingContract): string | undefined;\n\twaitBlockedByCaller?(callerAgentId: string, targetAgentIds: readonly string[]): readonly string[];\n\t/** Yield caller-owned scheduler and mutation resources until the returned restorer succeeds. */\n\tyieldCallerForWait?(callerAgentId: string): () => boolean | undefined;\n\t/**\n\t * Wake a wait that is blocked on restoring the caller's write reservation. Reservation release\n\t * is a separate subsystem from subscribeStateChanges; this is that subsystem's event, not a poll.\n\t */\n\tsubscribeReservationAvailability?(listener: () => void): () => void;\n\twarn?(message: string): void;\n}\n\ntype QueuedPeerMessage = ReturnType<WorkerAgentMailbox[\"enqueueWithReceipt\"]>;\n\nconst MAX_BROADCAST_ERROR_CHARS = 512;\n\n/**\n * Independent bound on how long a blocked restore may wait for a reservation-availability event,\n * deliberately NOT derived from the caller's own (possibly very short, e.g. test-only 1ms) wait\n * timeoutMs: the original wait already finished (satisfied or timed out) by the time restoration\n * starts. This is a watchdog, not a poll — retries are driven by subscribeReservationAvailability.\n * Mirrors the documented 300s absolute ceiling used elsewhere in this method.\n */\nconst WORKER_WAIT_RESTORE_MAX_MS = 300_000;\n\nexport function buildWorkerTerminalHandoffContent(args: {\n\tchildAgentId: string;\n\trecord: Pick<LaneRecord, \"laneId\" | \"status\" | \"reasonCode\">;\n\tclaim?: {\n\t\tsummary?: string;\n\t\tstatus?: string;\n\t\tchangedFiles?: readonly string[];\n\t\tblockers?: readonly string[];\n\t};\n}): string {\n\tconst sanitize = (value: string): string => value.replace(/[\\r\\n]+/g, \" \").slice(0, 120);\n\treturn [\n\t\t\"Worker terminal handoff\",\n\t\t`childAgentId=${args.childAgentId}`,\n\t\t`laneId=${args.record.laneId}`,\n\t\t`status=${args.record.status}`,\n\t\t...(args.record.reasonCode ? [`reasonCode=${args.record.reasonCode}`] : []),\n\t\t...(args.claim?.summary ? [`claimStatus=${args.claim.status || args.record.status}`] : []),\n\t\t...(args.claim?.summary ? [`claimSummary=${sanitize(args.claim.summary)}`] : []),\n\t\t...(args.claim?.changedFiles && args.claim.changedFiles.length > 0\n\t\t\t? [`changedFiles=${args.claim.changedFiles.join(\", \")}`]\n\t\t\t: []),\n\t\t...(args.claim?.blockers && args.claim.blockers.length > 0\n\t\t\t? [`blockers=${args.claim.blockers.map((b) => sanitize(b)).join(\"; \")}`]\n\t\t\t: []),\n\t\t\"CAVEMAN MODE - MANDATORY: terminal handoff means worker state was retained. Read the full transcript, verify the claim, then continue or replan within the admitted grant. Do not call this lost state or harness failure.\",\n\t\t\"MANDATORY: read every transcript page before judging this result.\",\n\t\t`Start with delegate action=\"transcript\" agentId=\"${args.childAgentId}\" cursor=0.`,\n\t\t\"Entries complete only after pagination ends. omittedMessages means whole entries were left out of that page. While nextCursor exists, call transcript again with cursor=nextCursor. Stop only when nextCursor is absent.\",\n\t\t...(args.record.reasonCode === \"worker_blocked\"\n\t\t\t? [\n\t\t\t\t\t\"worker_blocked means the durable claim has blockers; it does not mean worker state or transcript was lost.\",\n\t\t\t\t]\n\t\t\t: []),\n\t\t...(args.record.status === \"budget_exhausted\"\n\t\t\t? [\n\t\t\t\t\t\"CAVEMAN MODE - MANDATORY: budget_exhausted means an admitted limit ended work, not harness failure. Terminal reasonCode is authoritative; never replace it with earlier transcript errors. Read evidence, then replan only within remaining authority.\",\n\t\t\t\t]\n\t\t\t: []),\n\t\t...(args.record.reasonCode === \"completion_error\" ? [WORKER_COMPLETION_ERROR_CAVEMAN_GUIDANCE] : []),\n\t].join(\"\\n\");\n}\n\ntype TaskBearingReconciliation = {\n\tstarted: boolean;\n\trecord?: LaneRecord;\n\tskipReason?: string;\n};\n\ntype MandatoryTranscriptControlInput = {\n\tidempotencyKey: string;\n\tcontent: string;\n\tsenderAgentId: string;\n\tthreadId?: string;\n\treplyToMessageId?: string;\n\ttask: WorkerAgentTaskMetadata;\n};\n\n/**\n * Sole owner of model-facing logical-agent controls and their durable inboxes.\n *\n * It deliberately owns no worker execution policy, provider loop, or terminal persistence. Those\n * controller-owned callbacks keep this narrow port from becoming a second lifecycle authority.\n */\nexport class WorkerAgentControlCoordinator implements WorkerAgentControlPort {\n\tprivate readonly options: WorkerAgentControlCoordinatorOptions;\n\tprivate readonly mailboxes = new Map<string, WorkerAgentMailbox>();\n\tprivate readonly stateListeners = new Set<() => void>();\n\tprivate readonly conversations: WorkerConversationStore;\n\tprivate readonly reconcilingTaskBearingAgentIds = new Set<string>();\n\tprivate readonly taskBearingContinuationAgentIds = new Set<string>();\n\tprivate readonly sessionRootMailbox: SessionRootMailbox;\n\tprivate readonly sessionRootAddress: string;\n\tprivate readonly sessionRootReconciliationFailures = new Map<string, string>();\n\tprivate readonly workerReplyReconciliationFailures = new Map<string, string>();\n\n\tconstructor(options: WorkerAgentControlCoordinatorOptions) {\n\t\tthis.options = options;\n\t\tthis.conversations = options.conversationStore ?? new WorkerConversationStore();\n\t\tthis.sessionRootAddress = sessionRootAddress(options.parentSessionId);\n\t\tthis.sessionRootMailbox = new SessionRootMailbox({\n\t\t\tagentDir: options.agentDir,\n\t\t\tparentSessionId: options.parentSessionId,\n\t\t});\n\t}\n\n\tgetProcessOwnerId(): string {\n\t\treturn this.options.processOwnerId;\n\t}\n\n\tlistWorkerAgents(scope: WorkerAgentControlScope = {}): WorkerAgentView[] {\n\t\tthis.requireControl();\n\t\tconst snapshot = this.options.getLifecycle().getTaskRuntimeSnapshot();\n\t\tif (scope.callerAgentId) {\n\t\t\tconst callerAgentId = scope.callerAgentId.trim();\n\t\t\tif (!callerAgentId || !snapshot.agents[callerAgentId]) {\n\t\t\t\tthrow new Error(`Unknown logical worker agent '${callerAgentId}'.`);\n\t\t\t}\n\t\t}\n\t\tconst latestAttempts = this.latestAttemptsByAgent(snapshot);\n\t\tconst agents = Object.values(snapshot.agents);\n\t\treturn agents\n\t\t\t.sort((left, right) => left.depth - right.depth || left.createdAt.localeCompare(right.createdAt))\n\t\t\t.map((agent) =>\n\t\t\t\tthis.workerAgentView(\n\t\t\t\t\tagent,\n\t\t\t\t\tthis.projectAgentActivity(agent, latestAttempts.get(agent.agentId)),\n\t\t\t\t\tscope.callerAgentId,\n\t\t\t\t),\n\t\t\t);\n\t}\n\n\tgetWorkerTaskSessionView(): ReturnType<WorkerAgentControlPort[\"getWorkerTaskSessionView\"]> {\n\t\tthis.requireControl();\n\t\treturn projectWorkerTaskSessionView(this.options.getLifecycle().getTaskRuntimeSnapshot());\n\t}\n\n\t/** Snapshot-only activity projection. Unlike waitForWorkerAgent, this never yields scheduler capacity. */\n\tgetWorkerAgentActivity(agentId: string, scope: WorkerAgentControlScope = {}): WorkerAgentActivity {\n\t\tthis.requireControl();\n\t\tconst canonicalAgentId = agentId.trim();\n\t\tif (!canonicalAgentId) throw new Error(\"Logical worker agent id is required.\");\n\t\tconst agent = this.options.getLifecycle().getAgent(canonicalAgentId);\n\t\tif (!agent) return \"unknown\";\n\t\tthis.requireSessionPeer(canonicalAgentId, scope);\n\t\treturn this.activityForAgent(agent);\n\t}\n\n\treadWorkerAgentTranscript(\n\t\tagentId: string,\n\t\toptions: WorkerAgentTranscriptOptions = {},\n\t): ReturnType<WorkerAgentControlPort[\"readWorkerAgentTranscript\"]> {\n\t\tthis.requireControl();\n\t\tconst agent = this.requireControllableAgent(agentId, options);\n\t\tconst cursor = options.cursor ?? 0;\n\t\tconst maxMessages = options.maxMessages ?? 16;\n\t\tif (!Number.isSafeInteger(cursor) || cursor < 0) throw new TypeError(\"Worker transcript cursor is invalid.\");\n\t\tif (!Number.isSafeInteger(maxMessages) || maxMessages < 1 || maxMessages > MAX_WORKER_TRANSCRIPT_PAGE_MESSAGES) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`Worker transcript page size must be from 1 through ${MAX_WORKER_TRANSCRIPT_PAGE_MESSAGES} messages.`,\n\t\t\t);\n\t\t}\n\t\tconst page = this.conversations\n\t\t\t.open({\n\t\t\t\tagentDir: this.options.agentDir,\n\t\t\t\tresumeContext: agent.resumeContext,\n\t\t\t\texpectedLogicalAgentId: agent.agentId,\n\t\t\t})\n\t\t\t.getRawTranscriptPage({\n\t\t\t\tcursor,\n\t\t\t\tmaxMessages,\n\t\t\t\t...(options.maxBytes !== undefined ? { maxBytes: options.maxBytes } : {}),\n\t\t\t});\n\t\treturn {\n\t\t\tagentId: agent.agentId,\n\t\t\t...page,\n\t\t};\n\t}\n\n\tsendWorkerAgentMessage(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions: WorkerAgentMessageOptions = {},\n\t): { messageId: string; queued: true } {\n\t\tthis.requireControl();\n\t\tthis.rejectGenericReplyOptions(options);\n\t\tconst agent = this.requireSessionPeer(agentId, { callerAgentId: options.senderAgentId });\n\t\tthis.assertAgentAcceptsNewMessages(agent, options.idempotencyKey);\n\t\tconst queued = this.enqueuePeerMessage(agent, \"follow_up\", message, options);\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn { messageId: queued.messageId, queued: true };\n\t}\n\n\tbroadcastWorkerAgentMessage(\n\t\tagentIds: readonly string[],\n\t\tmessage: string,\n\t\toptions: WorkerAgentBroadcastOptions,\n\t): WorkerAgentBroadcastResult {\n\t\tthis.requireControl();\n\t\tconst canonicalAgentIds = this.canonicalAgentIdSet(agentIds, \"Worker broadcast\");\n\t\tconst recipients = canonicalAgentIds.map((agentId) => ({\n\t\t\tagentId,\n\t\t\tidempotencyKey: workerAgentBroadcastTargetIdempotencyKey(options.idempotencyKey, agentId),\n\t\t}));\n\t\tconst senderAgentId = options.senderAgentId ? this.requireKnownAgent(options.senderAgentId).agentId : undefined;\n\t\tlet created = false;\n\t\tconst results = recipients.map(({ agentId, idempotencyKey }) => {\n\t\t\ttry {\n\t\t\t\tconst target = this.requireSessionPeer(agentId, { callerAgentId: senderAgentId });\n\t\t\t\tthis.assertAgentAcceptsNewMessages(target, idempotencyKey);\n\t\t\t\tconst messageOptions = senderAgentId\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tsenderAgentId,\n\t\t\t\t\t\t\t...(options.threadId !== undefined ? { threadId: options.threadId } : {}),\n\t\t\t\t\t\t\t...(options.expectReply === true ? { expectReply: true } : {}),\n\t\t\t\t\t\t\tidempotencyKey,\n\t\t\t\t\t\t}\n\t\t\t\t\t: this.sessionRootMessageOptions({\n\t\t\t\t\t\t\t...(options.threadId !== undefined ? { threadId: options.threadId } : {}),\n\t\t\t\t\t\t\t...(options.expectReply === true ? { expectReply: true } : {}),\n\t\t\t\t\t\t\tidempotencyKey,\n\t\t\t\t\t\t});\n\t\t\t\tconst queued = this.enqueuePeerMessage(target, \"follow_up\", message, messageOptions);\n\t\t\t\tcreated ||= queued.status === \"retained\" && queued.created;\n\t\t\t\treturn {\n\t\t\t\t\tagentId,\n\t\t\t\t\taccepted: true as const,\n\t\t\t\t\tqueued: true as const,\n\t\t\t\t\treplayed: queued.status === \"completed_replay\" || !queued.created,\n\t\t\t\t\tmessageId: queued.messageId,\n\t\t\t\t};\n\t\t\t} catch (error) {\n\t\t\t\treturn {\n\t\t\t\t\tagentId,\n\t\t\t\t\taccepted: false as const,\n\t\t\t\t\terror: (error instanceof Error ? error.message : String(error)).slice(0, MAX_BROADCAST_ERROR_CHARS),\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t\tif (created) this.notifyStateChangedBestEffort();\n\t\treturn { results };\n\t}\n\n\tfollowUpWorkerAgent(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions: WorkerAgentMessageOptions = {},\n\t): { started: boolean; steering: boolean; messageId: string; record?: LaneRecord; skipReason?: string } {\n\t\tthis.requireControl();\n\t\tconst agent = this.requireControllableAgent(agentId, { callerAgentId: options.senderAgentId });\n\t\treturn this.followUpAcceptedAgent(agent, message, options);\n\t}\n\n\tsendSessionRootWorkerAgentMessage(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions: SessionRootWorkerAgentMessageOptions = {},\n\t): { messageId: string; queued: true } {\n\t\tthis.requireControl();\n\t\tconst agent = this.requireKnownAgent(agentId);\n\t\tthis.assertAgentAcceptsNewMessages(agent, options.idempotencyKey);\n\t\tconst queued = this.enqueuePeerMessage(agent, \"follow_up\", message, this.sessionRootMessageOptions(options));\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn { messageId: queued.messageId, queued: true };\n\t}\n\n\tfollowUpSessionRootWorkerAgent(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions: SessionRootWorkerAgentMessageOptions = {},\n\t): { started: boolean; steering: boolean; messageId: string; record?: LaneRecord; skipReason?: string } {\n\t\tthis.requireControl();\n\t\treturn this.followUpAcceptedAgent(\n\t\t\tthis.requireKnownAgent(agentId),\n\t\t\tmessage,\n\t\t\tthis.sessionRootMessageOptions(options),\n\t\t);\n\t}\n\n\treplyToWorkerAgentMessage(sourceAgentId: string, message: string, replyToMessageId: string): WorkerAgentReplyResult {\n\t\tthis.requireControl();\n\t\tconst source = this.requireKnownAgent(sourceAgentId);\n\t\tconst sourceMailbox = this.getMailbox(source.agentId);\n\t\tconst completedReply = sourceMailbox.resolveCompletedReply(replyToMessageId, message);\n\t\tconst activeAcknowledgementId = sourceMailbox.getReplyAcknowledgementId(replyToMessageId);\n\t\tif (\n\t\t\tcompletedReply &&\n\t\t\tactiveAcknowledgementId !== undefined &&\n\t\t\tactiveAcknowledgementId !== completedReply.replyMessageId\n\t\t) {\n\t\t\tthrow new Error(\"Worker reply acknowledgement identity conflicts with its durable source receipt.\");\n\t\t}\n\t\tif (completedReply && activeAcknowledgementId === undefined) {\n\t\t\tif (completedReply.requestSenderId === this.sessionRootAddress) {\n\t\t\t\treturn { destination: \"session_root\", messageId: completedReply.replyMessageId };\n\t\t\t}\n\t\t\tconst completedTarget = this.requireKnownAgent(completedReply.requestSenderId);\n\t\t\tthis.reconcileCompletedWorkerReplyAcknowledgement(\n\t\t\t\tsourceMailbox,\n\t\t\t\treplyToMessageId,\n\t\t\t\tcompletedTarget.agentId,\n\t\t\t\tcompletedReply.replyMessageId,\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tdestination: \"worker\",\n\t\t\t\tmessageId: completedReply.replyMessageId,\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tskipReason: \"worker_reply_already_accepted\",\n\t\t\t};\n\t\t}\n\t\tconst request = sourceMailbox.getMessage(replyToMessageId);\n\t\tif (!request || request.deliveredAt === undefined || request.expectReply !== true) {\n\t\t\tthrow new Error(\"Worker reply does not reference a delivered reply-expected message.\");\n\t\t}\n\t\tif (!request.senderAgentId) throw new Error(\"Worker reply request has no routable requester.\");\n\t\tif (request.senderAgentId === this.sessionRootAddress) {\n\t\t\treturn this.routeWorkerReplyToSessionRoot(source, sourceMailbox, request, message);\n\t\t}\n\t\tconst target = this.requireKnownAgent(request.senderAgentId);\n\t\tif (target.status === \"retired\" && activeAcknowledgementId === undefined) {\n\t\t\tthrow new Error(`Logical worker agent '${target.agentId}' is retired.`);\n\t\t}\n\t\treturn this.routeWorkerReplyToAgent(target, source.agentId, request, message);\n\t}\n\n\tlistSessionRootReplies(query: SessionRootReplyQuery = {}): SessionRootReply[] {\n\t\tthis.requireControl();\n\t\tthis.reconcileSessionRootSurface();\n\t\treturn this.sessionRootMailbox.pendingReplies(query);\n\t}\n\n\twaitForSessionRootReplies(options: SessionRootReplyWaitOptions = {}): Promise<SessionRootReplyWaitResult> {\n\t\tthis.requireControl();\n\t\tthis.reconcileSessionRootSurface();\n\t\treturn this.sessionRootMailbox.waitForReplies(options);\n\t}\n\n\tacknowledgeSessionRootReply(messageId: string, ackToken: string): boolean {\n\t\tthis.requireControl();\n\t\tthis.reconcileSessionRootSurface();\n\t\tconst acknowledged = this.sessionRootMailbox.acknowledge(messageId, ackToken);\n\t\tif (acknowledged) {\n\t\t\tthis.reconcileWorkerReplyOutboxesBestEffort();\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t}\n\t\treturn acknowledged;\n\t}\n\n\tprivate reconcileSessionRootSurface(): void {\n\t\tthis.reconcileSessionRootReplies();\n\t\tthis.reconcileWorkerReplyOutboxesBestEffort();\n\t}\n\n\tprivate followUpAcceptedAgent(\n\t\tagent: AgentBindingContract,\n\t\tmessage: string,\n\t\toptions: WorkerAgentMessageOptions,\n\t): { started: boolean; steering: boolean; messageId: string; record?: LaneRecord; skipReason?: string } {\n\t\tthis.rejectGenericReplyOptions(options);\n\t\tif (this.activityForAgent(agent) === \"active\") {\n\t\t\tconst queued = this.enqueuePeerMessage(agent, \"steer\", message, options, { kind: \"agent_turn\" });\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\tif (\n\t\t\t\tqueued.status === \"completed_replay\" ||\n\t\t\t\tqueued.message.deliveredAt !== undefined ||\n\t\t\t\tqueued.message.failedAt !== undefined\n\t\t\t) {\n\t\t\t\treturn {\n\t\t\t\t\tstarted: false,\n\t\t\t\t\tsteering: false,\n\t\t\t\t\tmessageId: queued.messageId,\n\t\t\t\t\tskipReason: \"worker_message_already_finalized\",\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn { started: false, steering: true, messageId: queued.messageId };\n\t\t}\n\t\tif (agent.status !== \"registered\") {\n\t\t\treturn { started: false, steering: false, messageId: \"\", skipReason: `agent_${agent.status}` };\n\t\t}\n\t\treturn this.startIdleAgentTask(agent, message, options);\n\t}\n\n\t/**\n\t * Atomically transition one idle persistent agent to a fresh task. There is no await between the\n\t * activity check and durable prepare, so competing model calls cannot turn the loser into steering.\n\t */\n\tstartWorkerAgentTask(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions: WorkerAgentTaskStartOptions = {},\n\t): { started: boolean; steering: false; messageId: string; record?: LaneRecord; skipReason?: string } {\n\t\tthis.requireControl();\n\t\tconst canonicalAgentId = agentId.trim();\n\t\tif (!canonicalAgentId) throw new Error(\"Logical worker agent id is required.\");\n\t\tconst candidate = this.options.getLifecycle().getAgent(canonicalAgentId);\n\t\tif (!candidate) return { started: false, steering: false, messageId: \"\", skipReason: \"unknown_agent\" };\n\t\tconst agent = this.requireControllableAgent(canonicalAgentId, options);\n\t\tconst dependsOnTaskIds = normalizeWorkerAgentDependencyTaskIds(options.dependsOnTaskIds);\n\t\tif (options.idempotencyKey !== undefined) {\n\t\t\tconst replay = this.replayWorkerAgentTask(agent, message, options.idempotencyKey, dependsOnTaskIds);\n\t\t\tif (replay) return replay;\n\t\t}\n\t\tconst activity = this.activityForAgent(agent);\n\t\tif (activity !== \"idle\") {\n\t\t\treturn { started: false, steering: false, messageId: \"\", skipReason: `worker_${activity}` };\n\t\t}\n\t\tif (agent.status !== \"registered\") {\n\t\t\treturn { started: false, steering: false, messageId: \"\", skipReason: `agent_${agent.status}` };\n\t\t}\n\t\treturn this.startIdleAgentTask(\n\t\t\tagent,\n\t\t\tmessage,\n\t\t\toptions.idempotencyKey === undefined ? {} : { idempotencyKey: options.idempotencyKey },\n\t\t\tdependsOnTaskIds,\n\t\t);\n\t}\n\n\tprivate replayWorkerAgentTask(\n\t\tagent: AgentBindingContract,\n\t\tmessage: string,\n\t\tidempotencyKey: string,\n\t\tdependsOnTaskIds: readonly string[],\n\t): { started: boolean; steering: false; messageId: string; record?: LaneRecord; skipReason?: string } | undefined {\n\t\tthis.assertIdempotencyTarget(agent.agentId, idempotencyKey);\n\t\tconst messageId = workerAgentMessageId(this.options.parentSessionId, idempotencyKey);\n\t\tconst mailbox = this.getMailbox(agent.agentId);\n\t\tconst correlatedAttempt = this.controlMessageAttemptById(agent.agentId, messageId);\n\t\tif (correlatedAttempt) {\n\t\t\tif (correlatedAttempt.dispatch.instructions !== message.trim()) {\n\t\t\t\tthrow new Error(\"Worker control idempotency identity conflicts with its durable dispatch.\");\n\t\t\t}\n\t\t\tthis.assertAttemptDependencyIdentity(correlatedAttempt, dependsOnTaskIds);\n\t\t\tconst record = this.options.getLifecycle().getRecord(correlatedAttempt.taskId);\n\t\t\tif (!record) {\n\t\t\t\treturn {\n\t\t\t\t\tstarted: false,\n\t\t\t\t\tsteering: false,\n\t\t\t\t\tmessageId,\n\t\t\t\t\tskipReason: \"orchestration_projection_missing\",\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn { started: true, steering: false, messageId, record };\n\t\t}\n\t\tif (!mailbox.getMessage(messageId)) {\n\t\t\treturn mailbox.hasControlReplayReceipt(messageId)\n\t\t\t\t? {\n\t\t\t\t\t\tstarted: false,\n\t\t\t\t\t\tsteering: false,\n\t\t\t\t\t\tmessageId,\n\t\t\t\t\t\tskipReason: \"worker_task_receipt_without_attempt\",\n\t\t\t\t\t}\n\t\t\t\t: undefined;\n\t\t}\n\t\tconst acceptance = mailbox.enqueueWithReceipt({\n\t\t\tkind: \"follow_up\",\n\t\t\tcontent: message,\n\t\t\tidempotencyKey,\n\t\t\ttask: {\n\t\t\t\tkind: \"agent_turn\",\n\t\t\t\t...(dependsOnTaskIds.length > 0 ? { dependsOnTaskIds } : {}),\n\t\t\t},\n\t\t});\n\t\tif (acceptance.status === \"completed_replay\") {\n\t\t\treturn {\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tmessageId,\n\t\t\t\tskipReason: \"worker_task_receipt_without_attempt\",\n\t\t\t};\n\t\t}\n\t\tconst accepted = acceptance.message;\n\t\tconst attempt = this.controlMessageAttempt(agent.agentId, accepted);\n\t\tif (attempt) {\n\t\t\tconst record = this.options.getLifecycle().getRecord(attempt.taskId);\n\t\t\tif (!record) {\n\t\t\t\treturn {\n\t\t\t\t\tstarted: false,\n\t\t\t\t\tsteering: false,\n\t\t\t\t\tmessageId,\n\t\t\t\t\tskipReason: \"orchestration_projection_missing\",\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Idempotent API replay returns the original accepted start even after that attempt became\n\t\t\t// terminal. The record carries its current projection; no second task or scheduler entry is made.\n\t\t\treturn { started: true, steering: false, messageId, record };\n\t\t}\n\t\tif (accepted.deliveredAt !== undefined) {\n\t\t\treturn {\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tmessageId,\n\t\t\t\tskipReason: \"worker_task_delivered_without_attempt\",\n\t\t\t};\n\t\t}\n\t\tconst reconciliation = this.reconcileTaskBearingMailbox(agent.agentId, messageId);\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn {\n\t\t\tstarted: reconciliation.started,\n\t\t\tsteering: false,\n\t\t\tmessageId,\n\t\t\t...(reconciliation.record ? { record: reconciliation.record } : {}),\n\t\t\t...(reconciliation.skipReason ? { skipReason: reconciliation.skipReason } : {}),\n\t\t};\n\t}\n\n\tprivate startIdleAgentTask(\n\t\tagent: AgentBindingContract,\n\t\tmessage: string,\n\t\toptions: WorkerAgentMessageOptions,\n\t\tdependsOnTaskIds: readonly string[] = [],\n\t): { started: boolean; steering: false; messageId: string; record?: LaneRecord; skipReason?: string } {\n\t\tif (!this.isAcceptedControlReplay(agent.agentId, options.idempotencyKey)) {\n\t\t\tconst headroomSkipReason = this.options.taskStartHeadroomSkipReason?.(agent);\n\t\t\tif (headroomSkipReason)\n\t\t\t\treturn { started: false, steering: false, messageId: \"\", skipReason: headroomSkipReason };\n\t\t\tconst skipReason = this.reusableTaskAdmissionSkipReason(agent.agentId);\n\t\t\tif (skipReason) return { started: false, steering: false, messageId: \"\", skipReason };\n\t\t}\n\t\tconst queued = this.enqueuePeerMessage(agent, \"follow_up\", message, options, {\n\t\t\tkind: \"agent_turn\",\n\t\t\t...(dependsOnTaskIds.length > 0 ? { dependsOnTaskIds } : {}),\n\t\t});\n\t\tif (queued.status === \"completed_replay\") {\n\t\t\treturn {\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tmessageId: queued.messageId,\n\t\t\t\tskipReason: \"worker_message_already_finalized\",\n\t\t\t};\n\t\t}\n\t\tconst reconciliation = this.reconcileTaskBearingMailbox(agent.agentId, queued.messageId);\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn {\n\t\t\tstarted: reconciliation.started,\n\t\t\tsteering: false,\n\t\t\tmessageId: queued.messageId,\n\t\t\t...(reconciliation.record ? { record: reconciliation.record } : {}),\n\t\t\t...(reconciliation.skipReason ? { skipReason: reconciliation.skipReason } : {}),\n\t\t};\n\t}\n\n\tprivate assertAttemptDependencyIdentity(attempt: AttemptRuntimeState, dependsOnTaskIds: readonly string[]): void {\n\t\tconst snapshot = this.options.getLifecycle().getTaskRuntimeSnapshot() as Partial<\n\t\t\tReturnType<WorkerLifecycle[\"getTaskRuntimeSnapshot\"]>\n\t\t>;\n\t\tconst durableDependencies = snapshot.tasks?.[attempt.taskId]?.task.dependsOn;\n\t\tif (!durableDependencies) {\n\t\t\tif (dependsOnTaskIds.length > 0) {\n\t\t\t\tthrow new Error(\"Worker control idempotency dependency projection is missing.\");\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\tdurableDependencies.length !== dependsOnTaskIds.length ||\n\t\t\tdurableDependencies.some((dependencyId, index) => dependencyId !== dependsOnTaskIds[index])\n\t\t) {\n\t\t\tthrow new Error(\"Worker control idempotency identity conflicts with its durable task dependencies.\");\n\t\t}\n\t}\n\n\tprivate sessionRootMessageOptions(options: SessionRootWorkerAgentMessageOptions): WorkerAgentMessageOptions {\n\t\treturn {\n\t\t\tsenderAgentId: this.sessionRootAddress,\n\t\t\t...(options.threadId !== undefined ? { threadId: options.threadId } : {}),\n\t\t\t...(options.expectReply === true ? { expectReply: true } : {}),\n\t\t\t...(options.idempotencyKey !== undefined ? { idempotencyKey: options.idempotencyKey } : {}),\n\t\t};\n\t}\n\n\tprivate rejectGenericReplyOptions(options: WorkerAgentMessageOptions): void {\n\t\tif (\"replyToMessageId\" in options) {\n\t\t\tthrow new Error(\"Worker replies must use the dedicated inferred-destination reply control.\");\n\t\t}\n\t}\n\n\tprivate assertAgentAcceptsNewMessages(agent: AgentBindingContract, idempotencyKey?: string): void {\n\t\tif (agent.status !== \"retired\") return;\n\t\tif (idempotencyKey !== undefined) {\n\t\t\tconst messageId = workerAgentMessageId(this.options.parentSessionId, idempotencyKey);\n\t\t\tconst mailbox = this.getMailbox(agent.agentId);\n\t\t\tif (mailbox.getMessage(messageId) || mailbox.hasControlReplayReceipt(messageId)) return;\n\t\t}\n\t\tthrow new Error(`Logical worker agent '${agent.agentId}' is retired.`);\n\t}\n\n\tprivate routeWorkerReplyToAgent(\n\t\ttarget: AgentBindingContract,\n\t\tsourceAgentId: string,\n\t\trequest: WorkerAgentMessage,\n\t\tmessage: string,\n\t): WorkerAgentReplyResult {\n\t\tconst activity = this.activityForAgent(target);\n\t\tconst idempotencyKey = `peer-reply:${sourceAgentId}:${request.messageId}`;\n\t\tthis.assertIdempotencyTarget(target.agentId, idempotencyKey);\n\t\tconst replyMessageId = workerAgentMessageId(this.options.parentSessionId, idempotencyKey);\n\t\tconst sourceMailbox = this.getMailbox(sourceAgentId);\n\t\tconst reservationAlreadyActive = sourceMailbox.getReplyAcknowledgementId(request.messageId) === replyMessageId;\n\t\tif (!sourceMailbox.beginReplyAcknowledgement(request.messageId, replyMessageId, message)) {\n\t\t\tthrow new Error(\"Worker reply source acknowledgement could not be acquired.\");\n\t\t}\n\t\tconst transcriptInput: MandatoryTranscriptControlInput = {\n\t\t\tidempotencyKey,\n\t\t\tcontent: message,\n\t\t\tsenderAgentId: sourceAgentId,\n\t\t\treplyToMessageId: request.messageId,\n\t\t\t...(request.threadId ? { threadId: request.threadId } : {}),\n\t\t\ttask: { kind: \"agent_turn\" },\n\t\t};\n\t\tconst transcriptReplay = this.reconcileMandatoryControlTranscript(target, transcriptInput, false);\n\t\tif (transcriptReplay.delivered) {\n\t\t\tif (\n\t\t\t\t!sourceMailbox.commitReplyAcknowledgement(request.messageId, replyMessageId) &&\n\t\t\t\tsourceMailbox.getReplyAcknowledgementId(request.messageId) !== undefined\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker reply source acknowledgement did not commit after transcript replay.\");\n\t\t\t}\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn {\n\t\t\t\tdestination: \"worker\",\n\t\t\t\tmessageId: replyMessageId,\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tskipReason: \"worker_reply_already_accepted\",\n\t\t\t};\n\t\t}\n\t\tif (target.status === \"retired\") {\n\t\t\tthis.deliverMandatoryControlToRetiredTranscript(target, transcriptInput);\n\t\t\tif (\n\t\t\t\t!sourceMailbox.commitReplyAcknowledgement(request.messageId, replyMessageId) &&\n\t\t\t\tsourceMailbox.getReplyAcknowledgementId(request.messageId) !== undefined\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker reply source acknowledgement did not commit after retired-target delivery.\");\n\t\t\t}\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn {\n\t\t\t\tdestination: \"worker\",\n\t\t\t\tmessageId: replyMessageId,\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tskipReason: \"worker_reply_retired_target_transcript_delivery\",\n\t\t\t};\n\t\t}\n\t\tconst targetMailbox = this.getMailbox(target.agentId);\n\t\tlet queued: QueuedPeerMessage;\n\t\ttry {\n\t\t\tqueued = targetMailbox.enqueueWithReceipt({\n\t\t\t\tkind: activity === \"active\" ? \"steer\" : \"follow_up\",\n\t\t\t\tcontent: message,\n\t\t\t\tsenderAgentId: sourceAgentId,\n\t\t\t\treplyToMessageId: request.messageId,\n\t\t\t\t...(request.threadId ? { threadId: request.threadId } : {}),\n\t\t\t\tidempotencyKey,\n\t\t\t\ttask: { kind: \"agent_turn\" },\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tif (!reservationAlreadyActive) {\n\t\t\t\tthis.rollbackReplyReservationAfterTargetRejection(sourceMailbox, request.messageId, replyMessageId, error);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\tif (queued.messageId !== replyMessageId) {\n\t\t\tthrow new Error(\"Worker reply target returned a divergent deterministic message identity.\");\n\t\t}\n\t\tif (queued.status === \"completed_replay\") {\n\t\t\tif (!targetMailbox.hasDeliveredControlReceipt(queued.messageId)) {\n\t\t\t\tthrow new Error(\"Worker reply target replay has no durable delivery evidence.\");\n\t\t\t}\n\t\t\tif (\n\t\t\t\t!sourceMailbox.commitReplyAcknowledgement(request.messageId, queued.messageId) &&\n\t\t\t\tsourceMailbox.getReplyAcknowledgementId(request.messageId) !== undefined\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker reply source acknowledgement did not commit after target replay.\");\n\t\t\t}\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn {\n\t\t\t\tdestination: \"worker\",\n\t\t\t\tmessageId: queued.messageId,\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tskipReason: \"worker_reply_already_accepted\",\n\t\t\t};\n\t\t}\n\t\tthis.beginWorkerReplyAcknowledgement(target, queued.message);\n\t\tif (queued.message.deliveredAt !== undefined) {\n\t\t\tif (\n\t\t\t\t!this.reconcileCompletedWorkerReplyAcknowledgement(\n\t\t\t\t\tsourceMailbox,\n\t\t\t\t\trequest.messageId,\n\t\t\t\t\ttarget.agentId,\n\t\t\t\t\tqueued.messageId,\n\t\t\t\t) &&\n\t\t\t\tsourceMailbox.getReplyAcknowledgementId(request.messageId) !== undefined\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker reply source acknowledgement did not commit after target delivery.\");\n\t\t\t}\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn {\n\t\t\t\tdestination: \"worker\",\n\t\t\t\tmessageId: queued.messageId,\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tskipReason: \"worker_reply_already_accepted\",\n\t\t\t};\n\t\t}\n\t\tif (activity === \"active\") {\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\tif (!queued.created) {\n\t\t\t\treturn {\n\t\t\t\t\tdestination: \"worker\",\n\t\t\t\t\tmessageId: queued.messageId,\n\t\t\t\t\tstarted: false,\n\t\t\t\t\tsteering: false,\n\t\t\t\t\tskipReason: \"worker_reply_already_accepted\",\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tdestination: \"worker\",\n\t\t\t\tmessageId: queued.messageId,\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: true,\n\t\t\t};\n\t\t}\n\t\tconst reconciliation = this.reconcileTaskBearingMailbox(target.agentId, queued.messageId);\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn {\n\t\t\tdestination: \"worker\",\n\t\t\tmessageId: queued.messageId,\n\t\t\tstarted: reconciliation.started,\n\t\t\tsteering: false,\n\t\t\t...(reconciliation.record ? { record: reconciliation.record } : {}),\n\t\t\t...(reconciliation.skipReason ? { skipReason: reconciliation.skipReason } : {}),\n\t\t};\n\t}\n\n\tprivate routeWorkerReplyToSessionRoot(\n\t\tsource: AgentBindingContract,\n\t\tsourceMailbox: WorkerAgentMailbox,\n\t\trequest: WorkerAgentMessage,\n\t\tmessage: string,\n\t): WorkerAgentReplyResult {\n\t\tconst replyMessageId = sessionRootReplyMessageId(this.options.parentSessionId, source.agentId, request.messageId);\n\t\tconst reservationAlreadyActive = sourceMailbox.getReplyAcknowledgementId(request.messageId) === replyMessageId;\n\t\tconst replyInput = {\n\t\t\tsourceAgentId: source.agentId,\n\t\t\trequestMessageId: request.messageId,\n\t\t\t...(request.threadId ? { threadId: request.threadId } : {}),\n\t\t\tcontent: message,\n\t\t};\n\t\ttry {\n\t\t\tthis.sessionRootMailbox.assertReplyInput(replyInput);\n\t\t} catch (error) {\n\t\t\tif (reservationAlreadyActive) {\n\t\t\t\tthis.rollbackReplyReservationAfterTargetRejection(sourceMailbox, request.messageId, replyMessageId, error);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\tif (!sourceMailbox.beginReplyAcknowledgement(request.messageId, replyMessageId, message)) {\n\t\t\tthrow new Error(\"Session root reply source acknowledgement could not be acquired.\");\n\t\t}\n\t\tlet accepted: ReturnType<SessionRootMailbox[\"enqueueReply\"]>;\n\t\ttry {\n\t\t\taccepted = this.sessionRootMailbox.enqueueSourceOwnedReply(replyInput);\n\t\t} catch (error) {\n\t\t\tif (!reservationAlreadyActive) {\n\t\t\t\tthis.rollbackReplyReservationAfterTargetRejection(sourceMailbox, request.messageId, replyMessageId, error);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\tif (accepted.messageId !== replyMessageId) {\n\t\t\tthrow new Error(\"Session root reply target returned a divergent deterministic message identity.\");\n\t\t}\n\t\tif (accepted.status === \"completed_replay\") {\n\t\t\tif (\n\t\t\t\t!sourceMailbox.commitReplyAcknowledgement(request.messageId, accepted.messageId) &&\n\t\t\t\tsourceMailbox.getReplyAcknowledgementId(request.messageId) !== undefined\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Session root reply source acknowledgement did not commit after target replay.\");\n\t\t\t}\n\t\t\tthis.releaseSessionRootSourceReceiptBestEffort(accepted.messageId);\n\t\t} else {\n\t\t\tthis.reconcileSessionRootReply(accepted.reply);\n\t\t}\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn { destination: \"session_root\", messageId: accepted.messageId };\n\t}\n\n\tprivate rollbackReplyReservationAfterTargetRejection(\n\t\tsourceMailbox: WorkerAgentMailbox,\n\t\trequestMessageId: string,\n\t\treplyMessageId: string,\n\t\ttargetError: unknown,\n\t): never {\n\t\ttry {\n\t\t\tif (\n\t\t\t\t!sourceMailbox.rollbackReplyAcknowledgement(requestMessageId, replyMessageId) &&\n\t\t\t\tsourceMailbox.getReplyAcknowledgementId(requestMessageId) === replyMessageId\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker reply source reservation did not roll back after target rejection.\");\n\t\t\t}\n\t\t} catch (rollbackError) {\n\t\t\tthrow new AggregateError(\n\t\t\t\t[targetError, rollbackError],\n\t\t\t\t\"Worker reply target rejected after its source reservation could not be rolled back.\",\n\t\t\t);\n\t\t}\n\t\tthrow targetError;\n\t}\n\n\tprivate deliverMandatoryControlToRetiredTranscript(\n\t\ttarget: AgentBindingContract,\n\t\tinput: MandatoryTranscriptControlInput,\n\t): string {\n\t\tif (target.status !== \"retired\" || this.activityForAgent(target) === \"active\") {\n\t\t\tthrow new Error(\"Mandatory transcript fallback requires a terminal logical worker target.\");\n\t\t}\n\t\tconst delivery = this.reconcileMandatoryControlTranscript(target, input, true);\n\t\treturn delivery.messageId;\n\t}\n\n\tprivate reconcileMandatoryControlTranscript(\n\t\ttarget: AgentBindingContract,\n\t\tinput: MandatoryTranscriptControlInput,\n\t\tappendIfMissing: boolean,\n\t): { messageId: string; delivered: boolean } {\n\t\tconst messageId = workerAgentMessageId(this.options.parentSessionId, input.idempotencyKey);\n\t\treturn this.reconcileControlTranscript(\n\t\t\ttarget,\n\t\t\t{\n\t\t\t\tmessageId,\n\t\t\t\tkind: \"follow_up\",\n\t\t\t\tcontent: input.content,\n\t\t\t\tsenderAgentId: input.senderAgentId,\n\t\t\t\t...(input.threadId ? { threadId: input.threadId } : {}),\n\t\t\t\t...(input.replyToMessageId ? { replyToMessageId: input.replyToMessageId } : {}),\n\t\t\t\ttask: input.task,\n\t\t\t\tcreatedAt: new Date().toISOString(),\n\t\t\t},\n\t\t\tappendIfMissing,\n\t\t);\n\t}\n\n\tprivate reconcileControlTranscript(\n\t\ttarget: AgentBindingContract,\n\t\tmessage: WorkerAgentMessage,\n\t\tappendIfMissing: boolean,\n\t): { messageId: string; delivered: boolean } {\n\t\tconst messageId = message.messageId;\n\t\tif (!target.resumeContext.sessionFile) {\n\t\t\tif (appendIfMissing) {\n\t\t\t\tthrow new Error(\"Mandatory transcript fallback target has no durable session transcript.\");\n\t\t\t}\n\t\t\treturn { messageId, delivered: false };\n\t\t}\n\t\tconst projected = this.mailboxMessage(message);\n\t\tconst conversation = this.conversations.open({\n\t\t\tagentDir: this.options.agentDir,\n\t\t\tresumeContext: target.resumeContext,\n\t\t\texpectedLogicalAgentId: target.agentId,\n\t\t});\n\t\tif (typeof projected.content !== \"string\") {\n\t\t\tthrow new Error(\"Worker control transcript projection is not textual.\");\n\t\t}\n\t\tconst reconciliation = conversation.reconcileWorkerControlMessage(\n\t\t\t{ messageId, content: projected.content },\n\t\t\tprojected,\n\t\t\tappendIfMissing,\n\t\t);\n\t\treturn { messageId, delivered: reconciliation.delivered };\n\t}\n\n\treconcileSessionRootReplies(): void {\n\t\tlet replies: SessionRootReply[];\n\t\ttry {\n\t\t\treplies = this.sessionRootMailbox.retainedReplies();\n\t\t\tthis.sessionRootReconciliationFailures.delete(\"session-root-mailbox\");\n\t\t} catch (error) {\n\t\t\tthis.recordSessionRootReconciliationFailure(\n\t\t\t\t\"session-root-mailbox\",\n\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tfor (const reply of replies) this.reconcileSessionRootReply(reply);\n\t}\n\n\tprivate reconcileSessionRootReply(reply: SessionRootReply): void {\n\t\ttry {\n\t\t\tconst source = this.options.getLifecycle().getAgent(reply.sourceAgentId);\n\t\t\tif (!source) {\n\t\t\t\tif (reply.sourceReconciledAt) {\n\t\t\t\t\tthis.sessionRootReconciliationFailures.delete(reply.messageId);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthrow new Error(`Unknown logical worker agent '${reply.sourceAgentId}'.`);\n\t\t\t}\n\t\t\tconst sourceMailbox = this.getMailbox(source.agentId);\n\t\t\tconst request = sourceMailbox.getMessage(reply.requestMessageId);\n\t\t\tif (!request) {\n\t\t\t\tif (reply.sourceReconciledAt) {\n\t\t\t\t\tthis.releaseSessionRootSourceReceiptBestEffort(reply.messageId);\n\t\t\t\t\tthis.sessionRootReconciliationFailures.delete(reply.messageId);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthrow new Error(\"Session root reply source request is missing before reconciliation.\");\n\t\t\t}\n\t\t\tif (\n\t\t\t\trequest.deliveredAt === undefined ||\n\t\t\t\trequest.expectReply !== true ||\n\t\t\t\trequest.senderAgentId !== this.sessionRootAddress ||\n\t\t\t\trequest.threadId !== reply.threadId\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Session root reply source request conflicts with its durable target.\");\n\t\t\t}\n\t\t\tlet acknowledgementId = sourceMailbox.getReplyAcknowledgementId(request.messageId);\n\t\t\tif (acknowledgementId && acknowledgementId !== reply.messageId) {\n\t\t\t\tthrow new Error(\"Session root reply source request has a divergent acknowledgement marker.\");\n\t\t\t}\n\t\t\tif (request.repliedAt !== undefined && acknowledgementId === undefined) {\n\t\t\t\tif (!reply.sourceReconciledAt) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"Session root reply source was marked replied without its exact acknowledgement marker.\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthis.releaseSessionRootSourceReceiptBestEffort(reply.messageId);\n\t\t\t\tthis.sessionRootReconciliationFailures.delete(reply.messageId);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (request.repliedAt === undefined) {\n\t\t\t\tif (!sourceMailbox.beginReplyAcknowledgement(request.messageId, reply.messageId, reply.content)) {\n\t\t\t\t\tthrow new Error(\"Session root reply source acknowledgement could not be acquired.\");\n\t\t\t\t}\n\t\t\t\tacknowledgementId = reply.messageId;\n\t\t\t}\n\t\t\tif (!this.sessionRootMailbox.markSourceReconciled(reply.messageId)) {\n\t\t\t\tthrow new Error(\"Session root reply disappeared during source reconciliation.\");\n\t\t\t}\n\t\t\tif (acknowledgementId === reply.messageId) {\n\t\t\t\tif (!sourceMailbox.commitReplyAcknowledgement(request.messageId, reply.messageId)) {\n\t\t\t\t\tconst remaining = sourceMailbox.getReplyAcknowledgementId(request.messageId);\n\t\t\t\t\tif (remaining !== undefined) {\n\t\t\t\t\t\tthrow new Error(\"Session root reply source acknowledgement did not commit.\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.releaseSessionRootSourceReceiptBestEffort(reply.messageId);\n\t\t\tthis.sessionRootReconciliationFailures.delete(reply.messageId);\n\t\t} catch (error) {\n\t\t\tthis.recordSessionRootReconciliationFailure(\n\t\t\t\treply.messageId,\n\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate recordSessionRootReconciliationFailure(messageId: string, reason: string): void {\n\t\tif (this.sessionRootReconciliationFailures.get(messageId) === reason) return;\n\t\tif (\n\t\t\t!this.sessionRootReconciliationFailures.has(messageId) &&\n\t\t\tthis.sessionRootReconciliationFailures.size >= 128\n\t\t) {\n\t\t\tconst oldest = this.sessionRootReconciliationFailures.keys().next().value;\n\t\t\tif (oldest) this.sessionRootReconciliationFailures.delete(oldest);\n\t\t}\n\t\tthis.sessionRootReconciliationFailures.set(messageId, reason);\n\t\ttry {\n\t\t\tthis.options.warn?.(`Session root reply reconciliation failed for ${messageId}: ${reason}`);\n\t\t} catch {\n\t\t\t// Diagnostics are bounded observers; durable mailboxes remain authoritative.\n\t\t}\n\t}\n\n\tprivate releaseSessionRootSourceReceiptBestEffort(messageId: string): void {\n\t\ttry {\n\t\t\tthis.sessionRootMailbox.releaseSourceReplayReceipt(messageId);\n\t\t\tthis.sessionRootReconciliationFailures.delete(`receipt:${messageId}`);\n\t\t} catch (error) {\n\t\t\tthis.recordSessionRootReconciliationFailure(\n\t\t\t\t`receipt:${messageId}`,\n\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate notifyStateChangedBestEffort(): void {\n\t\ttry {\n\t\t\tthis.options.statusChanged();\n\t\t} catch {\n\t\t\t// Notification observers cannot redefine durable task acceptance.\n\t\t}\n\t\tthis.notifyStateListeners();\n\t}\n\n\tinterruptWorkerAgent(\n\t\tagentId: string,\n\t\tscope: WorkerAgentControlScope = {},\n\t): { interrupted: boolean; reason?: string } {\n\t\tconst { agent, attempt } = this.controlledAgentAttempt(agentId, scope);\n\t\tif (!attempt || (attempt.status !== \"running\" && attempt.status !== \"leased\")) {\n\t\t\treturn { interrupted: false, reason: \"agent_not_running\" };\n\t\t}\n\t\ttry {\n\t\t\tthis.options.getLifecycle().suspendAgent(attempt.taskId, agent.agentId, this.options.processOwnerId);\n\t\t\tthis.options.abortLane(attempt.taskId, \"agent_interrupted\");\n\t\t\tthis.signalStateChanged();\n\t\t\treturn { interrupted: true };\n\t\t} catch (error) {\n\t\t\treturn { interrupted: false, reason: error instanceof Error ? error.message : String(error) };\n\t\t}\n\t}\n\n\tresumeWorkerAgent(\n\t\tagentId: string,\n\t\tscope: WorkerAgentControlScope = {},\n\t): { started: boolean; record?: LaneRecord; skipReason?: string } {\n\t\tconst { attempt } = this.controlledAgentAttempt(agentId, scope);\n\t\tif (!attempt || attempt.status !== \"suspended\") return { started: false, skipReason: \"agent_not_suspended\" };\n\t\tconst record = this.options.getLifecycle().getRecord(attempt.taskId);\n\t\tif (!record) return { started: false, skipReason: \"orchestration_projection_missing\" };\n\t\ttry {\n\t\t\tconst request = this.options.recoveredRequest(attempt);\n\t\t\tthis.options.scheduler.enqueue(record, request, true, request.verificationOfTaskId !== undefined);\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tstarted: false,\n\t\t\t\trecord,\n\t\t\t\tskipReason: error instanceof Error ? error.message : String(error),\n\t\t\t};\n\t\t}\n\t\ttry {\n\t\t\tthis.options.scheduler.drain();\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tstarted: true,\n\t\t\t\trecord,\n\t\t\t\tskipReason: `worker_resume_recovery_pending:${error instanceof Error ? error.message : String(error)}`,\n\t\t\t};\n\t\t}\n\t\tthis.signalStateChanged();\n\t\treturn { started: true, record };\n\t}\n\n\tcancelWorkerAgent(\n\t\tagentId: string,\n\t\treasonCode = \"agent_cancelled\",\n\t\tscope: WorkerAgentControlScope = {},\n\t): LaneRecord | undefined {\n\t\tconst { attempt } = this.controlledAgentAttempt(agentId, scope);\n\t\tif (!attempt) return undefined;\n\t\tthis.options.abortLane(attempt.taskId, reasonCode);\n\t\tconst record = this.options.cancelLane(attempt.taskId, reasonCode);\n\t\tthis.signalStateChanged();\n\t\treturn record;\n\t}\n\n\tretireWorkerAgent(agentId: string, scope: WorkerAgentControlScope = {}): WorkerAgentRetireResult {\n\t\tthis.requireControl();\n\t\tlet target = this.requireControllableAgent(agentId, scope);\n\t\tif (target.status === \"retired\") {\n\t\t\treturn { agent: this.workerAgentView(target), retired: true, replayed: true };\n\t\t}\n\t\tconst activity = this.activityForAgent(target);\n\t\tif (activity !== \"idle\") {\n\t\t\tthrow new Error(`Logical worker agent '${target.agentId}' cannot retire while ${activity}.`);\n\t\t}\n\t\tconst mailbox = this.getMailbox(target.agentId);\n\t\tif (mailbox.pendingTaskBearing().length > 0) {\n\t\t\tthis.reconcileTaskBearingMailbox(target.agentId);\n\t\t\ttarget = this.requireControllableAgent(target.agentId, scope);\n\t\t}\n\t\tthis.reconcileWorkerReplyOutboxesBestEffort();\n\t\tconst pendingMessages = mailbox.pending();\n\t\tif (pendingMessages.length > 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`Logical worker agent '${target.agentId}' has ${pendingMessages.length} pending control message${pendingMessages.length === 1 ? \"\" : \"s\"}.`,\n\t\t\t);\n\t\t}\n\t\tconst unresolvedReplyCount = mailbox.awaitingReplies().length + mailbox.listReplyAcknowledgements().length;\n\t\tif (unresolvedReplyCount > 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`Logical worker agent '${target.agentId}' has ${unresolvedReplyCount} unresolved reply obligation${unresolvedReplyCount === 1 ? \"\" : \"s\"}.`,\n\t\t\t);\n\t\t}\n\t\tconst retired = this.options.getLifecycle().retireAgent(target.agentId);\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn { agent: this.workerAgentView(retired), retired: true, replayed: false };\n\t}\n\n\t/** Event-driven wait: durable projection plus one shared state notification, never output polling. */\n\twaitForWorkerAgent(\n\t\tagentId: string,\n\t\ttimeoutMs = 30_000,\n\t\tscope: WorkerAgentControlScope = {},\n\t): Promise<{ status: WorkerAgentActivity; timedOut: boolean }> {\n\t\treturn this.waitForWorkerAgents([agentId], \"all\", timeoutMs, scope).then((result) => ({\n\t\t\tstatus: result.statuses[0]?.status ?? \"unknown\",\n\t\t\ttimedOut: result.timedOut,\n\t\t}));\n\t}\n\n\t/** One event-driven wait set with one shared caller-capacity lease; never per-agent promise polling. */\n\twaitForWorkerAgents(\n\t\tagentIds: readonly string[],\n\t\tmode: WorkerAgentWaitMode,\n\t\ttimeoutMs = 30_000,\n\t\tscope: WorkerAgentControlScope = {},\n\t): ReturnType<WorkerAgentControlPort[\"waitForWorkerAgents\"]> {\n\t\tthis.requireControl();\n\t\tif (mode !== \"any\" && mode !== \"all\") throw new TypeError(\"Worker wait mode must be 'any' or 'all'.\");\n\t\tconst canonicalAgentIds = this.canonicalAgentIdSet(agentIds, \"Worker wait\");\n\t\tconst baselineSnapshot = this.options.getLifecycle().getTaskRuntimeSnapshot();\n\t\tlet callerAgentId: string | undefined;\n\t\tif (scope.callerAgentId) {\n\t\t\tcallerAgentId = scope.callerAgentId.trim();\n\t\t\tif (!callerAgentId || !baselineSnapshot.agents[callerAgentId]) {\n\t\t\t\tthrow new Error(`Unknown logical worker agent '${callerAgentId}'.`);\n\t\t\t}\n\t\t}\n\t\tconst boundedTimeoutMs = Number.isFinite(timeoutMs)\n\t\t\t? Math.max(1, Math.min(Math.floor(timeoutMs), 300_000))\n\t\t\t: 30_000;\n\t\tconst statusesFromSnapshot = (snapshot: TaskRuntimeProjection) => {\n\t\t\tconst latestAttempts = this.latestAttemptsByAgent(snapshot);\n\t\t\treturn canonicalAgentIds.map((agentId) => {\n\t\t\t\tconst agent = snapshot.agents[agentId];\n\t\t\t\treturn {\n\t\t\t\t\tagentId,\n\t\t\t\t\tstatus: agent\n\t\t\t\t\t\t? this.projectAgentActivity(agent, latestAttempts.get(agent.agentId))\n\t\t\t\t\t\t: (\"unknown\" as const),\n\t\t\t\t};\n\t\t\t});\n\t\t};\n\t\tconst currentStatuses = () => statusesFromSnapshot(this.options.getLifecycle().getTaskRuntimeSnapshot());\n\t\tconst baselineStatuses = statusesFromSnapshot(baselineSnapshot);\n\t\tconst baselineByAgentId = new Map(baselineStatuses.map(({ agentId, status }) => [agentId, status]));\n\t\tconst updatedAgentIds = new Set<string>();\n\t\tconst recordUpdates = (statuses: typeof baselineStatuses) => {\n\t\t\tfor (const { agentId, status } of statuses) {\n\t\t\t\tif (baselineByAgentId.get(agentId) !== status) updatedAgentIds.add(agentId);\n\t\t\t}\n\t\t};\n\t\tconst waitSatisfied = (statuses: typeof baselineStatuses) => {\n\t\t\treturn mode === \"any\"\n\t\t\t\t? statuses.some(({ status }) => status !== \"active\")\n\t\t\t\t: statuses.every(({ status }) => status !== \"active\");\n\t\t};\n\t\tconst result = (statuses: typeof baselineStatuses, timedOut: boolean) => ({\n\t\t\tstatuses,\n\t\t\tupdatedAgentIds: canonicalAgentIds.filter((agentId) => updatedAgentIds.has(agentId)),\n\t\t\ttimedOut,\n\t\t});\n\t\tif (waitSatisfied(baselineStatuses)) return Promise.resolve(result(baselineStatuses, false));\n\t\tif (callerAgentId) {\n\t\t\tconst activeAgentIds = new Set(\n\t\t\t\tbaselineStatuses.filter(({ status }) => status === \"active\").map(({ agentId }) => agentId),\n\t\t\t);\n\t\t\tif (activeAgentIds.has(callerAgentId)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Worker wait would deadlock: logical worker '${callerAgentId}' cannot wait for itself. Finish the caller task instead.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet settled = false;\n\t\t\tlet completionTimedOut: boolean | undefined;\n\t\t\tlet failure: unknown;\n\t\t\tlet hasFailure = false;\n\t\t\tlet yieldInitialized = callerAgentId === undefined;\n\t\t\tlet restoreYield: (() => boolean | undefined) | undefined;\n\t\t\tlet unsubscribeState = (): void => undefined;\n\t\t\tlet timeout: ReturnType<typeof setTimeout> | undefined;\n\t\t\t// A blocked restore (another lane still holds the caller's write reservation) is a\n\t\t\t// live-lock, not a terminal failure or success. subscribeStateChanges is not that\n\t\t\t// wakeup — reservation release is. subscribeReservationAvailability is the event;\n\t\t\t// restoreDeadlineTimer is only the watchdog if that event never arrives.\n\t\t\tlet unsubscribeReservation = (): void => undefined;\n\t\t\tlet restoreDeadlineTimer: ReturnType<typeof setTimeout> | undefined;\n\t\t\tlet restoreRetryDeadline: number | undefined;\n\t\t\tconst cleanup = () => {\n\t\t\t\tunsubscribeState();\n\t\t\t\tunsubscribeReservation();\n\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\tif (restoreDeadlineTimer) clearTimeout(restoreDeadlineTimer);\n\t\t\t};\n\t\t\tconst restoreCaller = (): boolean => {\n\t\t\t\tif (!restoreYield) return true;\n\t\t\t\tconst restored = restoreYield();\n\t\t\t\tif (restored === false) return false;\n\t\t\t\trestoreYield = undefined;\n\t\t\t\treturn true;\n\t\t\t};\n\t\t\tconst settle = () => {\n\t\t\t\tif (settled || !yieldInitialized) return;\n\t\t\t\tconst statuses = currentStatuses();\n\t\t\t\trecordUpdates(statuses);\n\t\t\t\tif (!hasFailure && completionTimedOut === undefined) {\n\t\t\t\t\tif (!waitSatisfied(statuses)) return;\n\t\t\t\t\tcompletionTimedOut = false;\n\t\t\t\t\tif (timeout) {\n\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t\ttimeout = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tif (!restoreCaller()) {\n\t\t\t\t\t\trestoreRetryDeadline ??= Date.now() + WORKER_WAIT_RESTORE_MAX_MS;\n\t\t\t\t\t\tconst remainingMs = restoreRetryDeadline - Date.now();\n\t\t\t\t\t\tif (remainingMs <= 0) {\n\t\t\t\t\t\t\tfailure = new Error(\n\t\t\t\t\t\t\t\t\"Worker wait completed but could not restore the caller's write reservation within the retry bound; another lane continues to hold it.\",\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\thasFailure = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!restoreDeadlineTimer) {\n\t\t\t\t\t\t\t\trestoreDeadlineTimer = setTimeout(settle, remainingMs);\n\t\t\t\t\t\t\t\tif (typeof restoreDeadlineTimer === \"object\" && \"unref\" in restoreDeadlineTimer) {\n\t\t\t\t\t\t\t\t\trestoreDeadlineTimer.unref();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfailure = error;\n\t\t\t\t\thasFailure = true;\n\t\t\t\t}\n\t\t\t\tsettled = true;\n\t\t\t\tcleanup();\n\t\t\t\tif (hasFailure) reject(failure);\n\t\t\t\telse resolve(result(statuses, completionTimedOut ?? false));\n\t\t\t};\n\t\t\tunsubscribeState = this.subscribeStateChanges(settle);\n\t\t\tif (this.options.subscribeReservationAvailability) {\n\t\t\t\tunsubscribeReservation = this.options.subscribeReservationAvailability(settle);\n\t\t\t}\n\t\t\ttimeout = setTimeout(() => {\n\t\t\t\tif (settled) return;\n\t\t\t\ttimeout = undefined;\n\t\t\t\tif (completionTimedOut === undefined) completionTimedOut = true;\n\t\t\t\tsettle();\n\t\t\t}, boundedTimeoutMs);\n\t\t\tif (typeof timeout === \"object\" && \"unref\" in timeout) timeout.unref();\n\t\t\ttry {\n\t\t\t\tlet yielded = false;\n\t\t\t\tif (callerAgentId && this.options.yieldCallerForWait) {\n\t\t\t\t\trestoreYield = this.options.yieldCallerForWait(callerAgentId);\n\t\t\t\t\tyielded = restoreYield !== undefined;\n\t\t\t\t}\n\t\t\t\tif (!yielded && callerAgentId) {\n\t\t\t\t\tconst statuses = currentStatuses();\n\t\t\t\t\tconst activeAgentIds = new Set(\n\t\t\t\t\t\tstatuses.filter(({ status }) => status === \"active\").map(({ agentId }) => agentId),\n\t\t\t\t\t);\n\t\t\t\t\tconst blockedAgentIdSet = new Set(\n\t\t\t\t\t\tthis.options.waitBlockedByCaller?.(callerAgentId, canonicalAgentIds) ?? [],\n\t\t\t\t\t);\n\t\t\t\t\tconst blockedAgentIds = canonicalAgentIds.filter(\n\t\t\t\t\t\t(agentId) => activeAgentIds.has(agentId) && blockedAgentIdSet.has(agentId),\n\t\t\t\t\t);\n\t\t\t\t\tif (blockedAgentIds.length > 0) {\n\t\t\t\t\t\thasFailure = true;\n\t\t\t\t\t\tfailure = new Error(\n\t\t\t\t\t\t\t`Worker wait would deadlock: ${blockedAgentIds.join(\", \")} ${blockedAgentIds.length === 1 ? \"is\" : \"are\"} blocked by the caller's write reservation.`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tyieldInitialized = true;\n\t\t\t} catch (error) {\n\t\t\t\tyieldInitialized = true;\n\t\t\t\thasFailure = true;\n\t\t\t\tfailure = error;\n\t\t\t}\n\t\t\tsettle();\n\t\t});\n\t}\n\n\t/** Read mailbox items at a safe boundary and reconcile the narrow append-before-ack crash window. */\n\tmailboxMessagesForConversation(\n\t\tagentId: string,\n\t\tconversation: WorkerConversation,\n\t\tincludeFollowUp: boolean,\n\t): AgentMessage[] {\n\t\tconst mailbox = this.getMailbox(agentId);\n\t\tconst pending = mailbox.pending();\n\t\tif (pending.length === 0) return [];\n\t\tconst delivered = conversation.findDeliveredWorkerControlMessageIds(\n\t\t\tpending.map((message) => {\n\t\t\t\tconst projected = this.mailboxMessage(message);\n\t\t\t\tif (typeof projected.content !== \"string\") {\n\t\t\t\t\tthrow new Error(\"Worker control transcript projection is not textual.\");\n\t\t\t\t}\n\t\t\t\treturn { messageId: message.messageId, content: projected.content };\n\t\t\t}),\n\t\t);\n\t\tfor (const messageId of delivered) this.acknowledgeDeliveredMailboxMessage(agentId, messageId);\n\t\treturn mailbox\n\t\t\t.pending()\n\t\t\t.filter((message) => message.kind === \"steer\" || includeFollowUp)\n\t\t\t.map((message) => this.mailboxMessage(message));\n\t}\n\n\t/** Acknowledge only after the exact child transcript message has been durably appended. */\n\tacknowledgeMailboxMessage(agentId: string, message: { role: string; content: unknown }): void {\n\t\tif (message.role !== \"user\" || typeof message.content !== \"string\") return;\n\t\tconst messageId = /^\\[Worker control (worker-message-[^\\]\\s]+)(?: [^\\]]+)?\\]\\n/.exec(message.content)?.[1];\n\t\tif (messageId) this.acknowledgeDeliveredMailboxMessage(agentId, messageId);\n\t}\n\n\t/** Called by controller-owned execution transitions after lifecycle state changed. */\n\tsignalStateChanged(): void {\n\t\tthis.reconcileTaskBearingMailboxTurns();\n\t\tthis.notifyStateListeners();\n\t}\n\n\t/** Restart/idle boundary: adopt or schedule every oldest pending executable mailbox intent. */\n\treconcileTaskBearingMailboxTurns(): void {\n\t\tconst agents = this.replyReconciliationAgents();\n\t\tthis.reconcileWorkerReplyOutboxes(agents);\n\t\tfor (const agent of agents) this.reconcileTaskBearingMailbox(agent.agentId);\n\t}\n\n\tprivate replyReconciliationAgents(): AgentBindingContract[] {\n\t\treturn Object.values(this.options.getLifecycle().getTaskRuntimeSnapshot().agents).sort(\n\t\t\t(left, right) => left.createdAt.localeCompare(right.createdAt) || left.agentId.localeCompare(right.agentId),\n\t\t);\n\t}\n\n\tprivate reconcileWorkerReplyOutboxes(agents: readonly AgentBindingContract[]): void {\n\t\tfor (const agent of agents) this.reconcileWorkerReplyAcknowledgements(agent);\n\t}\n\n\tprivate reconcileWorkerReplyOutboxesBestEffort(): void {\n\t\ttry {\n\t\t\tthis.reconcileWorkerReplyOutboxes(this.replyReconciliationAgents());\n\t\t\tthis.workerReplyReconciliationFailures.delete(\"worker-reply-outbox-snapshot\");\n\t\t} catch (error) {\n\t\t\tthis.recordWorkerReplyReconciliationFailure(\n\t\t\t\t\"worker-reply-outbox-snapshot\",\n\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate reconcileWorkerReplyAcknowledgements(source: AgentBindingContract): void {\n\t\tconst sourceMailbox = this.getMailbox(source.agentId);\n\t\tlet acknowledgements: ReturnType<WorkerAgentMailbox[\"listReplyAcknowledgements\"]>;\n\t\ttry {\n\t\t\tacknowledgements = sourceMailbox.listReplyAcknowledgements();\n\t\t\tthis.workerReplyReconciliationFailures.delete(`source:${source.agentId}`);\n\t\t} catch (error) {\n\t\t\tthis.recordWorkerReplyReconciliationFailure(\n\t\t\t\t`source:${source.agentId}`,\n\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tfor (const acknowledgement of acknowledgements) {\n\t\t\tconst failureKey = `reply:${source.agentId}:${acknowledgement.messageId}`;\n\t\t\ttry {\n\t\t\t\tconst request = sourceMailbox.getMessage(acknowledgement.messageId);\n\t\t\t\tif (!request?.senderAgentId) {\n\t\t\t\t\tthrow new Error(\"Worker reply acknowledgement source request is missing routing metadata.\");\n\t\t\t\t}\n\t\t\t\tif (request.senderAgentId === this.sessionRootAddress) {\n\t\t\t\t\tthis.routeWorkerReplyToSessionRoot(source, sourceMailbox, request, acknowledgement.replyContent);\n\t\t\t\t\tthis.workerReplyReconciliationFailures.delete(failureKey);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst target = this.requireKnownAgent(request.senderAgentId);\n\t\t\t\tthis.routeWorkerReplyToAgent(target, source.agentId, request, acknowledgement.replyContent);\n\t\t\t\tthis.workerReplyReconciliationFailures.delete(failureKey);\n\t\t\t} catch (error) {\n\t\t\t\tthis.recordWorkerReplyReconciliationFailure(\n\t\t\t\t\tfailureKey,\n\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate recordWorkerReplyReconciliationFailure(failureKey: string, reason: string): void {\n\t\tif (this.workerReplyReconciliationFailures.get(failureKey) === reason) return;\n\t\tif (\n\t\t\t!this.workerReplyReconciliationFailures.has(failureKey) &&\n\t\t\tthis.workerReplyReconciliationFailures.size >= 128\n\t\t) {\n\t\t\tconst oldest = this.workerReplyReconciliationFailures.keys().next().value;\n\t\t\tif (oldest) this.workerReplyReconciliationFailures.delete(oldest);\n\t\t}\n\t\tthis.workerReplyReconciliationFailures.set(failureKey, reason);\n\t\ttry {\n\t\t\tthis.options.warn?.(`Worker reply acknowledgement recovery failed for ${failureKey}: ${reason}`);\n\t\t} catch {\n\t\t\t// Diagnostics are bounded observers; durable acknowledgement evidence remains authoritative.\n\t\t}\n\t}\n\n\tprivate reconcileCompletedWorkerReplyAcknowledgement(\n\t\tsourceMailbox: WorkerAgentMailbox,\n\t\trequestMessageId: string,\n\t\ttargetAgentId: string,\n\t\treplyMessageId: string,\n\t): boolean {\n\t\tif (sourceMailbox.getReplyAcknowledgementId(requestMessageId) !== replyMessageId) return false;\n\t\tif (!this.getMailbox(targetAgentId).hasDeliveredControlReceipt(replyMessageId)) return false;\n\t\treturn sourceMailbox.commitReplyAcknowledgement(requestMessageId, replyMessageId);\n\t}\n\n\tprivate notifyStateListeners(): void {\n\t\tfor (const listener of this.stateListeners) {\n\t\t\ttry {\n\t\t\t\tlistener();\n\t\t\t} catch {\n\t\t\t\t// State listeners are advisory; one observer cannot redefine or hide a durable mutation.\n\t\t\t}\n\t\t}\n\t}\n\n\t/** Route a terminal child edge to its owning parent without injecting into an active model turn. */\n\tdeliverWorkerTerminalHandoff(args: {\n\t\tparentAgentId: string;\n\t\tchildAgentId: string;\n\t\tterminalAttemptId: string;\n\t\trecord: LaneRecord;\n\t}): { messageId: string; started: boolean; accepted: boolean; skipReason?: string } {\n\t\tconst parent = this.requireKnownAgent(args.parentAgentId);\n\t\tconst latest = this.latestAgentAttempt(parent);\n\t\tconst active = latest?.status === \"queued\" || latest?.status === \"leased\" || latest?.status === \"running\";\n\t\tconst snapshot = this.options.getWorkerClaimSnapshot?.(args.record.laneId);\n\t\tconst content = buildWorkerTerminalHandoffContent({\n\t\t\t...args,\n\t\t\t...(snapshot?.claim\n\t\t\t\t? {\n\t\t\t\t\t\tclaim: {\n\t\t\t\t\t\t\tsummary: snapshot.claim.summary,\n\t\t\t\t\t\t\tstatus: snapshot.claim.status,\n\t\t\t\t\t\t\tchangedFiles: snapshot.claim.changedFiles,\n\t\t\t\t\t\t\tblockers: snapshot.claim.blockers,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t});\n\t\tconst idempotencyKey = `terminal-handoff:${args.terminalAttemptId}`;\n\t\tconst transcriptInput: MandatoryTranscriptControlInput = {\n\t\t\tidempotencyKey,\n\t\t\tcontent,\n\t\t\tsenderAgentId: args.childAgentId,\n\t\t\ttask: { kind: \"terminal_handoff\", sourceAttemptId: args.terminalAttemptId },\n\t\t};\n\t\tthis.assertIdempotencyTarget(parent.agentId, idempotencyKey);\n\t\tconst transcriptReplay = this.reconcileMandatoryControlTranscript(parent, transcriptInput, false);\n\t\tif (transcriptReplay.delivered) {\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn { messageId: transcriptReplay.messageId, started: false, accepted: true };\n\t\t}\n\t\tif (parent.status === \"retired\") {\n\t\t\tconst messageId = this.deliverMandatoryControlToRetiredTranscript(parent, transcriptInput);\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn {\n\t\t\t\tmessageId,\n\t\t\t\tstarted: false,\n\t\t\t\taccepted: true,\n\t\t\t\tskipReason: \"terminal_handoff_retired_target_transcript_delivery\",\n\t\t\t};\n\t\t}\n\t\tconst queued = this.getMailbox(parent.agentId).enqueueWithReceipt({\n\t\t\tkind: active ? \"steer\" : \"follow_up\",\n\t\t\tcontent,\n\t\t\tsenderAgentId: args.childAgentId,\n\t\t\tidempotencyKey,\n\t\t\ttask: { kind: \"terminal_handoff\", sourceAttemptId: args.terminalAttemptId },\n\t\t});\n\t\tif (queued.status === \"completed_replay\") {\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn { messageId: queued.messageId, started: false, accepted: true };\n\t\t}\n\t\tif (queued.message.deliveredAt !== undefined) {\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn { messageId: queued.messageId, started: false, accepted: true };\n\t\t}\n\t\tconst reconciliation = this.reconcileTaskBearingMailbox(parent.agentId, queued.messageId);\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn {\n\t\t\tmessageId: queued.messageId,\n\t\t\tstarted: reconciliation.started,\n\t\t\taccepted: true,\n\t\t\t...(reconciliation.skipReason ? { skipReason: reconciliation.skipReason } : {}),\n\t\t};\n\t}\n\n\tprivate reconcileTaskBearingMailbox(agentId: string, expectedMessageId?: string): TaskBearingReconciliation {\n\t\tif (this.reconcilingTaskBearingAgentIds.has(agentId)) {\n\t\t\treturn { started: false, skipReason: \"worker_task_reconciliation_in_progress\" };\n\t\t}\n\t\tthis.reconcilingTaskBearingAgentIds.add(agentId);\n\t\ttry {\n\t\t\tconst agent = this.options.getLifecycle().getAgent(agentId);\n\t\t\tif (!agent) return { started: false, skipReason: \"unknown_agent\" };\n\t\t\tconst mailbox = this.getMailbox(agentId);\n\t\t\tfor (let settlement = 0; settlement < 64; settlement++) {\n\t\t\t\tconst message = mailbox.pendingTaskBearing()[0];\n\t\t\t\tif (!message) return { started: false };\n\t\t\t\tif (this.reconcileTaskBearingTranscriptDelivery(agent, message)) {\n\t\t\t\t\tif (expectedMessageId === message.messageId) {\n\t\t\t\t\t\treturn { started: false, skipReason: \"worker_control_transcript_delivery_reconciled\" };\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tthis.beginWorkerReplyAcknowledgement(agent, message);\n\t\t\t\tconst correlated = this.controlMessageAttempt(agent.agentId, message);\n\t\t\t\tif (correlated) {\n\t\t\t\t\tconst scheduled = this.scheduleCorrelatedTaskBearingAttempt(correlated);\n\t\t\t\t\tif (scheduled.skipReason?.startsWith(\"worker_task_terminal_\")) {\n\t\t\t\t\t\tconst settled = this.settleTerminalTaskBearingMessage(\n\t\t\t\t\t\t\tagent,\n\t\t\t\t\t\t\tmailbox,\n\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\tscheduled,\n\t\t\t\t\t\t\texpectedMessageId,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (settled) return settled;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (expectedMessageId && message.messageId !== expectedMessageId) {\n\t\t\t\t\t\treturn { started: false, skipReason: \"worker_task_waiting_for_older_message\" };\n\t\t\t\t\t}\n\t\t\t\t\treturn scheduled;\n\t\t\t\t}\n\t\t\t\tif (expectedMessageId && message.messageId !== expectedMessageId) {\n\t\t\t\t\treturn { started: false, skipReason: \"worker_task_waiting_for_older_message\" };\n\t\t\t\t}\n\t\t\t\tconst activity = this.activityForAgent(agent);\n\t\t\t\tif (activity !== \"idle\") return { started: false, skipReason: `worker_${activity}` };\n\t\t\t\tif (agent.status !== \"registered\") {\n\t\t\t\t\tconst settled = this.settleTerminalTaskBearingMessage(\n\t\t\t\t\t\tagent,\n\t\t\t\t\t\tmailbox,\n\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t{ started: false, skipReason: `agent_${agent.status}` },\n\t\t\t\t\t\texpectedMessageId,\n\t\t\t\t\t);\n\t\t\t\t\tif (settled) return settled;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst reuseSkipReason = this.reusableTaskAdmissionSkipReason(agent.agentId);\n\t\t\t\tif (reuseSkipReason) {\n\t\t\t\t\tthis.reconcileControlTranscript(agent, message, true);\n\t\t\t\t\tthis.acknowledgeDeliveredMailboxMessage(agent.agentId, message.messageId);\n\t\t\t\t\tconst settlement = {\n\t\t\t\t\t\tstarted: false,\n\t\t\t\t\t\tskipReason: `${reuseSkipReason}:transcript_fallback_delivered`,\n\t\t\t\t\t};\n\t\t\t\t\tif (expectedMessageId === message.messageId) return settlement;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tthis.enableAttemptAccountingForNextTask(agent);\n\t\t\t\t\tconst prepared = this.options.getLifecycle().prepareAgentTurn({\n\t\t\t\t\t\tagentId: agent.agentId,\n\t\t\t\t\t\tinstructions: message.content,\n\t\t\t\t\t\tcontrolMessageId: message.messageId,\n\t\t\t\t\t\t...(message.task?.kind === \"agent_turn\" && message.task.dependsOnTaskIds\n\t\t\t\t\t\t\t? { dependsOnTaskIds: message.task.dependsOnTaskIds }\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t});\n\t\t\t\t\treturn this.scheduleTaskBearingAttempt(prepared.record, prepared.attempt);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst recovered = this.controlMessageAttempt(agent.agentId, message);\n\t\t\t\t\tif (recovered) {\n\t\t\t\t\t\tconst scheduled = this.scheduleCorrelatedTaskBearingAttempt(recovered);\n\t\t\t\t\t\tif (scheduled.skipReason?.startsWith(\"worker_task_terminal_\")) {\n\t\t\t\t\t\t\tconst settled = this.settleTerminalTaskBearingMessage(\n\t\t\t\t\t\t\t\tagent,\n\t\t\t\t\t\t\t\tmailbox,\n\t\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\t\tscheduled,\n\t\t\t\t\t\t\t\texpectedMessageId,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (settled) return settled;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...scheduled,\n\t\t\t\t\t\t\t...(scheduled.skipReason\n\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t: { skipReason: \"worker_task_recovered_after_prepare_interruption\" }),\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn { started: false, skipReason: error instanceof Error ? error.message : String(error) };\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.scheduleTaskBearingReconciliationContinuation(agentId);\n\t\t\treturn { started: false, skipReason: \"worker_task_reconciliation_bound_reached\" };\n\t\t} catch (error) {\n\t\t\tconst reason = error instanceof Error ? error.message : String(error);\n\t\t\ttry {\n\t\t\t\tthis.options.warn?.(`Worker task-bearing mailbox reconciliation failed for ${agentId}: ${reason}`);\n\t\t\t} catch {\n\t\t\t\t// Diagnostics are observers; the pending mailbox remains the recovery source of truth.\n\t\t\t}\n\t\t\treturn { started: false, skipReason: reason };\n\t\t} finally {\n\t\t\tthis.reconcilingTaskBearingAgentIds.delete(agentId);\n\t\t}\n\t}\n\n\tprivate scheduleTaskBearingReconciliationContinuation(agentId: string): void {\n\t\tif (this.taskBearingContinuationAgentIds.has(agentId)) return;\n\t\tthis.taskBearingContinuationAgentIds.add(agentId);\n\t\tqueueMicrotask(() => {\n\t\t\tthis.taskBearingContinuationAgentIds.delete(agentId);\n\t\t\tthis.reconcileTaskBearingMailbox(agentId);\n\t\t});\n\t}\n\n\tprivate reconcileTaskBearingTranscriptDelivery(target: AgentBindingContract, message: WorkerAgentMessage): boolean {\n\t\tif (!this.reconcileControlTranscript(target, message, false).delivered) return false;\n\t\tthis.acknowledgeDeliveredMailboxMessage(target.agentId, message.messageId);\n\t\treturn true;\n\t}\n\n\tprivate settleTerminalTaskBearingMessage(\n\t\tagent: AgentBindingContract,\n\t\tmailbox: WorkerAgentMailbox,\n\t\tmessage: WorkerAgentMessage,\n\t\tscheduled: TaskBearingReconciliation,\n\t\texpectedMessageId?: string,\n\t): TaskBearingReconciliation | undefined {\n\t\tconst returnSettlement = expectedMessageId === message.messageId;\n\t\tif (scheduled.skipReason && mailbox.deadLetterOrdinaryTask(message.messageId, scheduled.skipReason)) {\n\t\t\treturn returnSettlement ? scheduled : undefined;\n\t\t}\n\t\tconst retained = mailbox.getMessage(message.messageId);\n\t\tif (!retained || retained.deliveredAt !== undefined || retained.failedAt !== undefined) {\n\t\t\treturn returnSettlement ? scheduled : undefined;\n\t\t}\n\t\tconst activity = this.activityForAgent(agent);\n\t\tif (activity !== \"idle\") {\n\t\t\treturn { ...scheduled, skipReason: `worker_${activity}:transcript_fallback_waiting` };\n\t\t}\n\t\tthis.reconcileControlTranscript(agent, retained, true);\n\t\tthis.acknowledgeDeliveredMailboxMessage(agent.agentId, retained.messageId);\n\t\tconst settlement = {\n\t\t\t...scheduled,\n\t\t\tskipReason: `${scheduled.skipReason ?? \"worker_task_terminal\"}:transcript_fallback_delivered`,\n\t\t};\n\t\treturn returnSettlement ? settlement : undefined;\n\t}\n\n\tprivate controlMessageAttempt(agentId: string, message: WorkerAgentMessage): AttemptRuntimeState | undefined {\n\t\tconst attempt = this.controlMessageAttemptById(agentId, message.messageId);\n\t\tif (attempt && attempt.dispatch.instructions !== message.content) {\n\t\t\tthrow new Error(`Worker control message '${message.messageId}' conflicts with its durable dispatch.`);\n\t\t}\n\t\treturn attempt;\n\t}\n\n\tprivate controlMessageAttemptById(agentId: string, messageId: string): AttemptRuntimeState | undefined {\n\t\tconst matches = Object.values(this.options.getLifecycle().getTaskRuntimeSnapshot().attempts).filter(\n\t\t\t(attempt) => attempt.dispatch.logicalLaneId === agentId && attempt.dispatch.controlMessageId === messageId,\n\t\t);\n\t\tif (matches.length > 1) {\n\t\t\tthrow new Error(`Worker control message '${messageId}' owns multiple durable attempts.`);\n\t\t}\n\t\treturn matches[0];\n\t}\n\n\tprivate scheduleCorrelatedTaskBearingAttempt(attempt: AttemptRuntimeState): TaskBearingReconciliation {\n\t\tconst record = this.options.getLifecycle().getRecord(attempt.taskId);\n\t\tif (!record) return { started: false, skipReason: \"orchestration_projection_missing\" };\n\t\tif (attempt.status === \"queued\") return this.scheduleTaskBearingAttempt(record, attempt);\n\t\tif (attempt.status === \"leased\" || attempt.status === \"running\" || attempt.status === \"suspended\") {\n\t\t\treturn { started: true, record };\n\t\t}\n\t\treturn { started: false, record, skipReason: `worker_task_terminal_${attempt.status}` };\n\t}\n\n\tprivate scheduleTaskBearingAttempt(record: LaneRecord, attempt: AttemptRuntimeState): TaskBearingReconciliation {\n\t\ttry {\n\t\t\tthis.options.scheduler.enqueue(record, this.options.recoveredRequest(attempt));\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tstarted: false,\n\t\t\t\trecord,\n\t\t\t\tskipReason: error instanceof Error ? error.message : String(error),\n\t\t\t};\n\t\t}\n\t\ttry {\n\t\t\tthis.options.scheduler.drain();\n\t\t\treturn { started: true, record };\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tstarted: true,\n\t\t\t\trecord,\n\t\t\t\tskipReason: `worker_task_recovery_pending:${error instanceof Error ? error.message : String(error)}`,\n\t\t\t};\n\t\t}\n\t}\n\n\tprivate enableAttemptAccountingForNextTask(agent: AgentBindingContract): void {\n\t\tif (!agent.resumeContext.sessionFile) return;\n\t\tthis.conversations\n\t\t\t.open({\n\t\t\t\tagentDir: this.options.agentDir,\n\t\t\t\tresumeContext: agent.resumeContext,\n\t\t\t\texpectedLogicalAgentId: agent.agentId,\n\t\t\t})\n\t\t\t.enableAttemptUsageBoundaries();\n\t}\n\n\tprivate requireControl(): void {\n\t\tif (!this.options.isControlAvailable()) {\n\t\t\tthrow new Error(\"Worker delegation control is unavailable in this UAC surface.\");\n\t\t}\n\t}\n\n\tprivate canonicalAgentIdSet(agentIds: readonly string[], label: string): string[] {\n\t\tif (!Array.isArray(agentIds) || agentIds.length < 1 || agentIds.length > MAX_ORCHESTRATION_COLLECTION_LENGTH) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`${label} agent ids must contain from 1 through ${MAX_ORCHESTRATION_COLLECTION_LENGTH} entries.`,\n\t\t\t);\n\t\t}\n\t\tconst canonicalAgentIds: string[] = [];\n\t\tconst seenAgentIds = new Set<string>();\n\t\tfor (const agentId of agentIds) {\n\t\t\tif (typeof agentId !== \"string\") throw new TypeError(\"Logical worker agent id is required.\");\n\t\t\tconst canonicalAgentId = agentId.trim();\n\t\t\tif (!canonicalAgentId) throw new TypeError(\"Logical worker agent id is required.\");\n\t\t\tif (canonicalAgentId.length > MAX_ORCHESTRATION_IDENTIFIER_LENGTH) {\n\t\t\t\tthrow new TypeError(`Logical worker agent id exceeds ${MAX_ORCHESTRATION_IDENTIFIER_LENGTH} characters.`);\n\t\t\t}\n\t\t\tif (seenAgentIds.has(canonicalAgentId)) continue;\n\t\t\tseenAgentIds.add(canonicalAgentId);\n\t\t\tcanonicalAgentIds.push(canonicalAgentId);\n\t\t}\n\t\treturn canonicalAgentIds;\n\t}\n\n\tprivate requireKnownAgent(agentId: string): AgentBindingContract {\n\t\tconst normalized = agentId.trim();\n\t\tif (!normalized) throw new Error(\"Logical worker agent id is required.\");\n\t\tconst agent = this.options.getLifecycle().getAgent(normalized);\n\t\tif (!agent) throw new Error(`Unknown logical worker agent '${normalized}'.`);\n\t\treturn agent;\n\t}\n\n\tprivate requireSessionPeer(agentId: string, scope: WorkerAgentControlScope): AgentBindingContract {\n\t\tconst target = this.requireKnownAgent(agentId);\n\t\tif (scope.callerAgentId) this.requireKnownAgent(scope.callerAgentId);\n\t\treturn target;\n\t}\n\n\tprivate agentIsInCallerSubtree(target: AgentBindingContract, callerAgentId: string): boolean {\n\t\tconst caller = this.options.getLifecycle().getAgent(callerAgentId);\n\t\tif (!caller) return false;\n\t\tlet cursor: AgentBindingContract | undefined = target;\n\t\tconst visited = new Set<string>();\n\t\twhile (cursor && !visited.has(cursor.agentId)) {\n\t\t\tif (cursor.agentId === caller.agentId) return true;\n\t\t\tvisited.add(cursor.agentId);\n\t\t\tcursor = cursor.parentAgentId ? this.options.getLifecycle().getAgent(cursor.parentAgentId) : undefined;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate requireControllableAgent(agentId: string, scope: WorkerAgentControlScope): AgentBindingContract {\n\t\tconst target = this.requireSessionPeer(agentId, scope);\n\t\tif (!scope.callerAgentId) return target;\n\t\tif (this.agentIsInCallerSubtree(target, scope.callerAgentId)) return target;\n\t\tthrow new Error(`Logical worker agent '${target.agentId}' is outside its control subtree.`);\n\t}\n\n\tprivate latestAgentAttempt(agent: AgentBindingContract): AttemptRuntimeState | undefined {\n\t\tconst lifecycle = this.options.getLifecycle();\n\t\tconst latest = lifecycle.getLatestAgentAttempt?.(agent.agentId);\n\t\tif (latest) return latest;\n\t\treturn agent.activeAttemptId ? lifecycle.getTaskRuntimeSnapshot().attempts[agent.activeAttemptId] : undefined;\n\t}\n\n\tprivate latestAttemptsByAgent(snapshot: TaskRuntimeProjection): Map<string, AttemptRuntimeState> {\n\t\treturn latestAgentAttemptsByDurableOrder(snapshot);\n\t}\n\n\tprivate activityForAgent(agent: AgentBindingContract): WorkerAgentActivity {\n\t\treturn this.projectAgentActivity(agent, this.latestAgentAttempt(agent));\n\t}\n\n\tprivate projectAgentActivity(\n\t\tagent: AgentBindingContract,\n\t\tattempt: AttemptRuntimeState | undefined,\n\t): WorkerAgentActivity {\n\t\tif (attempt?.status === \"suspended\" || agent.status === \"suspended\") return \"suspended\";\n\t\tif (attempt?.status === \"queued\" || attempt?.status === \"leased\" || attempt?.status === \"running\") {\n\t\t\treturn \"active\";\n\t\t}\n\t\treturn \"idle\";\n\t}\n\n\tprivate controlledAgentAttempt(\n\t\tagentId: string,\n\t\tscope: WorkerAgentControlScope,\n\t): {\n\t\tagent: AgentBindingContract;\n\t\tattempt: AttemptRuntimeState | undefined;\n\t} {\n\t\tthis.requireControl();\n\t\tconst agent = this.requireControllableAgent(agentId, scope);\n\t\tconst attempt = this.latestAgentAttempt(agent);\n\t\treturn { agent, attempt };\n\t}\n\n\tprivate getMailbox(agentId: string): WorkerAgentMailbox {\n\t\tlet mailbox = this.mailboxes.get(agentId);\n\t\tif (!mailbox) {\n\t\t\tmailbox = new WorkerAgentMailbox({\n\t\t\t\tagentDir: this.options.agentDir,\n\t\t\t\tparentSessionId: this.options.parentSessionId,\n\t\t\t\tagentId,\n\t\t\t});\n\t\t\tthis.mailboxes.set(agentId, mailbox);\n\t\t}\n\t\treturn mailbox;\n\t}\n\n\tprivate isAcceptedControlReplay(agentId: string, idempotencyKey: string | undefined): boolean {\n\t\tif (idempotencyKey === undefined) return false;\n\t\tconst messageId = workerAgentMessageId(this.options.parentSessionId, idempotencyKey);\n\t\tconst mailbox = this.getMailbox(agentId);\n\t\treturn mailbox.getMessage(messageId) !== undefined || mailbox.hasControlReplayReceipt(messageId);\n\t}\n\n\tprivate reusableTaskAdmissionSkipReason(agentId: string): string | undefined {\n\t\tconst admission = evaluateReusableWorkerTaskAdmission(\n\t\t\tthis.options.getLifecycle().getTaskRuntimeSnapshot(),\n\t\t\tagentId,\n\t\t);\n\t\treturn admission.ok ? undefined : admission.reasonCode;\n\t}\n\n\tprivate subscribeStateChanges(listener: () => void): () => void {\n\t\tthis.stateListeners.add(listener);\n\t\treturn () => this.stateListeners.delete(listener);\n\t}\n\n\tprivate acknowledgeDeliveredMailboxMessage(agentId: string, messageId: string): void {\n\t\tconst mailbox = this.getMailbox(agentId);\n\t\tconst controlMessage = mailbox.getMessage(messageId);\n\t\tif (controlMessage) {\n\t\t\tconst target = this.requireKnownAgent(agentId);\n\t\t\tconst sourceMailbox = this.beginWorkerReplyAcknowledgement(target, controlMessage, true);\n\t\t\tmailbox.acknowledgeDelivered(messageId);\n\t\t\tif (\n\t\t\t\tsourceMailbox &&\n\t\t\t\tcontrolMessage.replyToMessageId &&\n\t\t\t\t!sourceMailbox.commitReplyAcknowledgement(controlMessage.replyToMessageId, controlMessage.messageId) &&\n\t\t\t\tsourceMailbox.getReplyAcknowledgementId(controlMessage.replyToMessageId) !== undefined\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker reply source acknowledgement did not commit.\");\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tmailbox.acknowledgeDelivered(messageId);\n\t}\n\n\tprivate beginWorkerReplyAcknowledgement(\n\t\ttarget: AgentBindingContract,\n\t\treply: WorkerAgentMessage,\n\t\tallowCommittedSource = false,\n\t): WorkerAgentMailbox | undefined {\n\t\tif (reply.replyToMessageId === undefined) return undefined;\n\t\tif (!reply.senderAgentId) throw new Error(\"Worker reply routing metadata is incomplete.\");\n\t\tconst source = this.requireKnownAgent(reply.senderAgentId);\n\t\tconst sourceMailbox = this.getMailbox(source.agentId);\n\t\tconst request = sourceMailbox.getMessage(reply.replyToMessageId);\n\t\tif (!request || request.expectReply !== true || request.deliveredAt === undefined) {\n\t\t\tthrow new Error(\"Worker reply does not reference a delivered reply-expected message.\");\n\t\t}\n\t\tif (request.senderAgentId !== target.agentId) {\n\t\t\tthrow new Error(\"Worker reply target does not match the original requester.\");\n\t\t}\n\t\tif (request.threadId !== reply.threadId) {\n\t\t\tthrow new Error(\"Worker reply thread conflicts with the original request.\");\n\t\t}\n\t\tconst activeAcknowledgementId = sourceMailbox.getReplyAcknowledgementId(request.messageId);\n\t\tif (activeAcknowledgementId && activeAcknowledgementId !== reply.messageId) {\n\t\t\tthrow new Error(\"Worker reply acknowledgement identity conflicts with an active transaction.\");\n\t\t}\n\t\tif (request.repliedAt !== undefined && activeAcknowledgementId === undefined) {\n\t\t\tif (allowCommittedSource || reply.deliveredAt !== undefined) return sourceMailbox;\n\t\t\tthrow new Error(\"Worker reply source was marked replied without its exact acknowledgement marker.\");\n\t\t}\n\t\tif (!sourceMailbox.beginReplyAcknowledgement(request.messageId, reply.messageId, reply.content)) {\n\t\t\tthrow new Error(\"Worker reply source acknowledgement could not be acquired.\");\n\t\t}\n\t\treturn sourceMailbox;\n\t}\n\n\tprivate enqueuePeerMessage(\n\t\ttarget: AgentBindingContract,\n\t\tkind: \"steer\" | \"follow_up\",\n\t\tcontent: string,\n\t\toptions: WorkerAgentMessageOptions,\n\t\ttask?: WorkerAgentTaskMetadata,\n\t): QueuedPeerMessage {\n\t\tif (options.idempotencyKey !== undefined) {\n\t\t\tthis.assertIdempotencyTarget(target.agentId, options.idempotencyKey);\n\t\t}\n\t\treturn this.getMailbox(target.agentId).enqueueWithReceipt({\n\t\t\tkind,\n\t\t\tcontent,\n\t\t\t...options,\n\t\t\t...(task ? { task } : {}),\n\t\t});\n\t}\n\n\tprivate workerAgentView(\n\t\tagent: AgentBindingContract,\n\t\tactivity: WorkerAgentActivity = this.activityForAgent(agent),\n\t\tcallerAgentId?: string,\n\t): WorkerAgentView {\n\t\treturn {\n\t\t\tagentId: agent.agentId,\n\t\t\t...(agent.parentAgentId ? { parentAgentId: agent.parentAgentId } : {}),\n\t\t\trootAgentId: agent.rootAgentId,\n\t\t\tdepth: agent.depth,\n\t\t\trole: agent.role,\n\t\t\tstatus: agent.status,\n\t\t\tactivity,\n\t\t\tcontrollable: !callerAgentId || this.agentIsInCallerSubtree(agent, callerAgentId),\n\t\t\tcreatedAt: agent.createdAt,\n\t\t\tupdatedAt: agent.updatedAt,\n\t\t};\n\t}\n\n\tprivate assertIdempotencyTarget(targetAgentId: string, idempotencyKey: string): void {\n\t\tconst messageId = workerAgentMessageId(this.options.parentSessionId, idempotencyKey);\n\t\tfor (const agent of Object.values(this.options.getLifecycle().getTaskRuntimeSnapshot().agents)) {\n\t\t\tif (agent.agentId === targetAgentId) continue;\n\t\t\tconst mailbox = this.getMailbox(agent.agentId);\n\t\t\tif (mailbox.getMessage(messageId) || mailbox.hasControlReplayReceipt(messageId)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Worker control idempotency identity is already accepted by logical worker '${agent.agentId}'.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate mailboxMessage(message: WorkerAgentMessage): UserMessage {\n\t\tconst metadata = [\n\t\t\tmessage.senderAgentId ? `from=${message.senderAgentId}` : undefined,\n\t\t\tmessage.threadId ? `thread=${message.threadId}` : undefined,\n\t\t\tmessage.replyToMessageId ? `replyTo=${message.replyToMessageId}` : undefined,\n\t\t\tmessage.expectReply ? \"replyExpected=true\" : undefined,\n\t\t].filter((value): value is string => value !== undefined);\n\t\treturn {\n\t\t\trole: \"user\",\n\t\t\tcontent: `[Worker control ${message.messageId}${metadata.length > 0 ? ` ${metadata.join(\" \")}` : \"\"}]\\n${message.content}`,\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"worker-agent-control-coordinator.js","sourceRoot":"","sources":["../../../src/core/delegation/worker-agent-control-coordinator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,EAGN,mCAAmC,EACnC,mCAAmC,GAEnC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACN,kBAAkB,EAKlB,kBAAkB,EAClB,yBAAyB,GACzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACN,qCAAqC,EAOrC,kBAAkB,EAUlB,wCAAwC,EACxC,oBAAoB,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACN,mCAAmC,EAEnC,uBAAuB,GACvB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,wCAAwC,EAAE,MAAM,0CAA0C,CAAC;AACpG,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAgCpF,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC;;;;;;GAMG;AACH,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAE3C,MAAM,UAAU,iCAAiC,CAAC,IAUjD;IACA,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzF,OAAO;QACN,yBAAyB;QACzB,gBAAgB,IAAI,CAAC,YAAY,EAAE;QACnC,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QAC9B,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QAC9B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,IAAI,CAAC,cAAc;YACtB,CAAC,CAAC;gBACA,cAAc,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,SAAS,SAAS,EAAE;aACxI;YACF,CAAC,CAAC,EAAE,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YACjE,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,CAAC,CAAC,EAAE,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACzD,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxE,CAAC,CAAC,EAAE,CAAC;QACN,4NAA4N;QAC5N,mEAAmE;QACnE,oDAAoD,IAAI,CAAC,YAAY,aAAa;QAClF,0NAA0N;QAC1N,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,gBAAgB;YAC9C,CAAC,CAAC;gBACA,4GAA4G;aAC5G;YACF,CAAC,CAAC,EAAE,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB;YAC5C,CAAC,CAAC;gBACA,wPAAwP;aACxP;YACF,CAAC,CAAC,EAAE,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACpG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAiBD;;;;;GAKG;AACH,MAAM,OAAO,6BAA6B;IAYzC,YAAY,OAA6C;QAVxC,cAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;QAClD,mBAAc,GAAG,IAAI,GAAG,EAAc,CAAC;QAEvC,mCAA8B,GAAG,IAAI,GAAG,EAAU,CAAC;QACnD,oCAA+B,GAAG,IAAI,GAAG,EAAU,CAAC;QAGpD,sCAAiC,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9D,sCAAiC,GAAG,IAAI,GAAG,EAAkB,CAAC;QAG9E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,uBAAuB,EAAE,CAAC;QAChF,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACtE,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC;YAChD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,eAAe,EAAE,OAAO,CAAC,eAAe;SACxC,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IACpC,CAAC;IAED,gBAAgB,CAAC,KAAK,GAA4B,EAAE;QACnD,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,sBAAsB,EAAE,CAAC;QACtE,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACzB,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,iCAAiC,aAAa,IAAI,CAAC,CAAC;YACrE,CAAC;QACF,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,MAAM;aACX,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aAChG,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACd,IAAI,CAAC,eAAe,CACnB,KAAK,EACL,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EACnE,KAAK,CAAC,aAAa,CACnB,CACD,CAAC;IACJ,CAAC;IAED,wBAAwB;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,0GAA0G;IAC1G,sBAAsB,CAAC,OAAe,EAAE,KAAK,GAA4B,EAAE;QAC1E,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,yBAAyB,CACxB,OAAe,EACf,OAAO,GAAiC,EAAE;QAE1C,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAC7G,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,mCAAmC,EAAE,CAAC;YAChH,MAAM,IAAI,SAAS,CAClB,sDAAsD,mCAAmC,YAAY,CACrG,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa;aAC7B,IAAI,CAAC;YACL,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,sBAAsB,EAAE,KAAK,CAAC,OAAO;SACrC,CAAC;aACD,oBAAoB,CAAC;YACrB,MAAM;YACN,WAAW;YACX,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzE,CAAC,CAAC;QACJ,OAAO;YACN,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,IAAI;SACP,CAAC;IACH,CAAC;IAED,sBAAsB,CACrB,OAAe,EACf,OAAe,EACf,OAAO,GAA8B,EAAE;QAEvC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7E,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACtD,CAAC;IAED,2BAA2B,CAC1B,QAA2B,EAC3B,OAAe,EACf,OAAoC;QAEpC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACjF,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACtD,OAAO;YACP,cAAc,EAAE,wCAAwC,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC;SACzF,CAAC,CAAC,CAAC;QACJ,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAChH,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE;YAC9D,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC;gBAClF,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;gBAC3D,MAAM,cAAc,GAAG,aAAa;oBACnC,CAAC,CAAC;wBACA,aAAa;wBACb,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzE,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC9D,cAAc;qBACd;oBACF,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC;wBAC/B,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzE,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC9D,cAAc;qBACd,CAAC,CAAC;gBACL,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;gBACrF,OAAO,KAAK,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC;gBAC3D,OAAO;oBACN,OAAO;oBACP,QAAQ,EAAE,IAAa;oBACvB,MAAM,EAAE,IAAa;oBACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,MAAM,CAAC,OAAO;oBACjE,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC3B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO;oBACN,OAAO;oBACP,QAAQ,EAAE,KAAc;oBACxB,KAAK,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC;iBACnG,CAAC;YACH,CAAC;QACF,CAAC,CAAC,CAAC;QACH,IAAI,OAAO;YAAE,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACjD,OAAO,EAAE,OAAO,EAAE,CAAC;IACpB,CAAC;IAED,mBAAmB,CAClB,OAAe,EACf,OAAe,EACf,OAAO,GAA8B,EAAE;QAEvC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,iCAAiC,CAChC,OAAe,EACf,OAAe,EACf,OAAO,GAAyC,EAAE;QAElD,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7G,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACtD,CAAC;IAED,8BAA8B,CAC7B,OAAe,EACf,OAAe,EACf,OAAO,GAAyC,EAAE;QAElD,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAChC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAC/B,OAAO,EACP,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CACvC,CAAC;IACH,CAAC;IAED,yBAAyB,CAAC,aAAqB,EAAE,OAAe,EAAE,gBAAwB;QACzF,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,aAAa,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACtF,MAAM,uBAAuB,GAAG,aAAa,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;QAC1F,IACC,cAAc;YACd,uBAAuB,KAAK,SAAS;YACrC,uBAAuB,KAAK,cAAc,CAAC,cAAc,EACxD,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,cAAc,IAAI,uBAAuB,KAAK,SAAS,EAAE,CAAC;YAC7D,IAAI,cAAc,CAAC,eAAe,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAChE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,CAAC,cAAc,EAAE,CAAC;YAClF,CAAC;YACD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YAC/E,IAAI,CAAC,4CAA4C,CAChD,aAAa,EACb,gBAAgB,EAChB,eAAe,CAAC,OAAO,EACvB,cAAc,CAAC,cAAc,CAC7B,CAAC;YACF,OAAO;gBACN,WAAW,EAAE,QAAQ;gBACrB,SAAS,EAAE,cAAc,CAAC,cAAc;gBACxC,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,+BAA+B;aAC3C,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YACnF,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC/F,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,uBAAuB,KAAK,SAAS,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/E,CAAC;IAED,sBAAsB,CAAC,KAAK,GAA0B,EAAE;QACvD,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,yBAAyB,CAAC,OAAO,GAAgC,EAAE;QAClE,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,2BAA2B,CAAC,SAAiB,EAAE,QAAgB;QAC9D,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC9E,IAAI,YAAY,EAAE,CAAC;YAClB,IAAI,CAAC,sCAAsC,EAAE,CAAC;YAC9C,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACrC,CAAC;QACD,OAAO,YAAY,CAAC;IACrB,CAAC;IAEO,2BAA2B;QAClC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,sCAAsC,EAAE,CAAC;IAC/C,CAAC;IAEO,qBAAqB,CAC5B,KAA2B,EAC3B,OAAe,EACf,OAAkC;QAElC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YACjG,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IACC,MAAM,CAAC,MAAM,KAAK,kBAAkB;gBACpC,MAAM,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;gBACxC,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EACpC,CAAC;gBACF,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,KAAK;oBACf,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,UAAU,EAAE,kCAAkC;iBAC9C,CAAC;YACH,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QACxE,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACnC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QAChG,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACH,oBAAoB,CACnB,OAAe,EACf,OAAe,EACf,OAAO,GAAgC,EAAE;QAEzC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACzE,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;QACvG,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACvE,MAAM,gBAAgB,GAAG,qCAAqC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACzF,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;YACpG,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC3B,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,QAAQ,EAAE,EAAE,CAAC;QAC7F,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACnC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QAChG,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAC7B,KAAK,EACL,OAAO,EACP,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,EACtF,gBAAgB,CAChB,CAAC;IACH,CAAC;IAEO,qBAAqB,CAC5B,KAA2B,EAC3B,OAAe,EACf,cAAsB,EACtB,gBAAmC;QAEnC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,iBAAiB,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACnF,IAAI,iBAAiB,EAAE,CAAC;YACvB,IAAI,iBAAiB,CAAC,QAAQ,CAAC,YAAY,KAAK,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChE,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;YAC7F,CAAC;YACD,IAAI,CAAC,+BAA+B,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC/E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,KAAK;oBACf,SAAS;oBACT,UAAU,EAAE,kCAAkC;iBAC9C,CAAC;YACH,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,OAAO,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC;gBAChD,CAAC,CAAC;oBACA,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,KAAK;oBACf,SAAS;oBACT,UAAU,EAAE,qCAAqC;iBACjD;gBACF,CAAC,CAAC,SAAS,CAAC;QACd,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAC7C,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO;YAChB,cAAc;YACd,IAAI,EAAE;gBACL,IAAI,EAAE,YAAY;gBAClB,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5D;SACD,CAAC,CAAC;QACH,IAAI,UAAU,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;YAC9C,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,KAAK;gBACf,SAAS;gBACT,UAAU,EAAE,qCAAqC;aACjD,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpE,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,KAAK;oBACf,SAAS;oBACT,UAAU,EAAE,kCAAkC;iBAC9C,CAAC;YACH,CAAC;YACD,2FAA2F;YAC3F,kGAAkG;YAClG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAC9D,CAAC;QACD,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,KAAK;gBACf,SAAS;gBACT,UAAU,EAAE,uCAAuC;aACnD,CAAC;QACH,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAClF,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,OAAO;YACN,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,QAAQ,EAAE,KAAK;YACf,SAAS;YACT,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/E,CAAC;IACH,CAAC;IAEO,kBAAkB,CACzB,KAA2B,EAC3B,OAAe,EACf,OAAkC,EAClC,gBAAgB,GAAsB,EAAE;QAExC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1E,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC,KAAK,CAAC,CAAC;YAC7E,IAAI,kBAAkB;gBACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC;YAC3F,MAAM,UAAU,GAAG,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACvE,IAAI,UAAU;gBAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;QACvF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE;YAC5E,IAAI,EAAE,YAAY;YAClB,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;YAC1C,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,UAAU,EAAE,kCAAkC;aAC9C,CAAC;QACH,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACzF,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,OAAO;YACN,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/E,CAAC;IACH,CAAC;IAEO,+BAA+B,CAAC,OAA4B,EAAE,gBAAmC;QACxG,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,sBAAsB,EAElE,CAAC;QACF,MAAM,mBAAmB,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;QAC7E,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC1B,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YACjF,CAAC;YACD,OAAO;QACR,CAAC;QACD,IACC,mBAAmB,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM;YACtD,mBAAmB,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAC1F,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;QACtG,CAAC;IACF,CAAC;IAEO,yBAAyB,CAAC,OAA6C;QAC9E,OAAO;YACN,aAAa,EAAE,IAAI,CAAC,kBAAkB;YACtC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3F,CAAC;IACH,CAAC;IAEO,yBAAyB,CAAC,OAAkC;QACnE,IAAI,kBAAkB,IAAI,OAAO,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;QAC9F,CAAC;IACF,CAAC;IAEO,6BAA6B,CAAC,KAA2B,EAAE,cAAuB;QACzF,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO;QACvC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;YACrF,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC;gBAAE,OAAO;QACzF,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;IACxE,CAAC;IAEO,uBAAuB,CAC9B,MAA4B,EAC5B,aAAqB,EACrB,OAA2B,EAC3B,OAAe;QAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,cAAc,GAAG,cAAc,aAAa,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAC1E,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC7D,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QAC1F,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,wBAAwB,GAAG,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,cAAc,CAAC;QAC/G,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC;YAC1F,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,eAAe,GAAoC;YACxD,cAAc;YACd,OAAO,EAAE,OAAO;YAChB,aAAa,EAAE,aAAa;YAC5B,gBAAgB,EAAE,OAAO,CAAC,SAAS;YACnC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;SAC5B,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,mCAAmC,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;QAClG,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAChC,IACC,CAAC,aAAa,CAAC,0BAA0B,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC;gBAC5E,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,EACvE,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,OAAO;gBACN,WAAW,EAAE,QAAQ;gBACrB,SAAS,EAAE,cAAc;gBACzB,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,+BAA+B;aAC3C,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,0CAA0C,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACzE,IACC,CAAC,aAAa,CAAC,0BAA0B,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC;gBAC5E,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,EACvE,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;YACtG,CAAC;YACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,OAAO;gBACN,WAAW,EAAE,QAAQ;gBACrB,SAAS,EAAE,cAAc;gBACzB,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,iDAAiD;aAC7D,CAAC;QACH,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,MAAyB,CAAC;QAC9B,IAAI,CAAC;YACJ,MAAM,GAAG,aAAa,CAAC,kBAAkB,CAAC;gBACzC,IAAI,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;gBACnD,OAAO,EAAE,OAAO;gBAChB,aAAa,EAAE,aAAa;gBAC5B,gBAAgB,EAAE,OAAO,CAAC,SAAS;gBACnC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,cAAc;gBACd,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;aAC5B,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC/B,IAAI,CAAC,4CAA4C,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;YAC5G,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,cAAc,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YACjF,CAAC;YACD,IACC,CAAC,aAAa,CAAC,0BAA0B,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;gBAC9E,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,EACvE,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,OAAO;gBACN,WAAW,EAAE,QAAQ;gBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,+BAA+B;aAC3C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,+BAA+B,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9C,IACC,CAAC,IAAI,CAAC,4CAA4C,CACjD,aAAa,EACb,OAAO,CAAC,SAAS,EACjB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,SAAS,CAChB;gBACD,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,EACvE,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;YAC9F,CAAC;YACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,OAAO;gBACN,WAAW,EAAE,QAAQ;gBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,+BAA+B;aAC3C,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO;oBACN,WAAW,EAAE,QAAQ;oBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,+BAA+B;iBAC3C,CAAC;YACH,CAAC;YACD,OAAO;gBACN,WAAW,EAAE,QAAQ;gBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,IAAI;aACd,CAAC;QACH,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1F,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,OAAO;YACN,WAAW,EAAE,QAAQ;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,QAAQ,EAAE,KAAK;YACf,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/E,CAAC;IACH,CAAC;IAEO,6BAA6B,CACpC,MAA4B,EAC5B,aAAiC,EACjC,OAA2B,EAC3B,OAAe;QAEf,MAAM,cAAc,GAAG,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAClH,MAAM,wBAAwB,GAAG,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,cAAc,CAAC;QAC/G,MAAM,UAAU,GAAG;YAClB,aAAa,EAAE,MAAM,CAAC,OAAO;YAC7B,gBAAgB,EAAE,OAAO,CAAC,SAAS;YACnC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,OAAO;SAChB,CAAC;QACF,IAAI,CAAC;YACJ,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,wBAAwB,EAAE,CAAC;gBAC9B,IAAI,CAAC,4CAA4C,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;YAC5G,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC;YAC1F,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,QAAwD,CAAC;QAC7D,IAAI,CAAC;YACJ,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC/B,IAAI,CAAC,4CAA4C,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;YAC5G,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;QACD,IAAI,QAAQ,CAAC,SAAS,KAAK,cAAc,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;YAC5C,IACC,CAAC,aAAa,CAAC,0BAA0B,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;gBAChF,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,EACvE,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,CAAC,yCAAyC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;IACvE,CAAC;IAEO,4CAA4C,CACnD,aAAiC,EACjC,gBAAwB,EACxB,cAAsB,EACtB,WAAoB;QAEpB,IAAI,CAAC;YACJ,IACC,CAAC,aAAa,CAAC,4BAA4B,CAAC,gBAAgB,EAAE,cAAc,CAAC;gBAC7E,aAAa,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,KAAK,cAAc,EAC3E,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;YAC9F,CAAC;QACF,CAAC;QAAC,OAAO,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,cAAc,CACvB,CAAC,WAAW,EAAE,aAAa,CAAC,EAC5B,qFAAqF,CACrF,CAAC;QACH,CAAC;QACD,MAAM,WAAW,CAAC;IACnB,CAAC;IAEO,0CAA0C,CACjD,MAA4B,EAC5B,KAAsC;QAEtC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC7F,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,mCAAmC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC,SAAS,CAAC;IAC3B,CAAC;IAEO,mCAAmC,CAC1C,MAA4B,EAC5B,KAAsC,EACtC,eAAwB;QAExB,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,0BAA0B,CACrC,MAAM,EACN;YACC,SAAS;YACT,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,EACD,eAAe,CACf,CAAC;IACH,CAAC;IAEO,0BAA0B,CACjC,MAA4B,EAC5B,OAA2B,EAC3B,eAAwB;QAExB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,eAAe,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC5F,CAAC;YACD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACxC,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAC5C,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,sBAAsB,EAAE,MAAM,CAAC,OAAO;SACtC,CAAC,CAAC;QACH,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,cAAc,GAAG,YAAY,CAAC,6BAA6B,CAChE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,EACzC,SAAS,EACT,eAAe,CACf,CAAC;QACF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;IAED,2BAA2B;QAC1B,IAAI,OAA2B,CAAC;QAChC,IAAI,CAAC;YACJ,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC;YACpD,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,sCAAsC,CAC1C,sBAAsB,EACtB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACtD,CAAC;YACF,OAAO;QACR,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO;YAAE,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAEO,yBAAyB,CAAC,KAAuB;QACxD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACzE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;oBAC9B,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAC/D,OAAO;gBACR,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;oBAC9B,IAAI,CAAC,yCAAyC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAChE,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAC/D,OAAO;gBACR,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;YACxF,CAAC;YACD,IACC,OAAO,CAAC,WAAW,KAAK,SAAS;gBACjC,OAAO,CAAC,WAAW,KAAK,IAAI;gBAC5B,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC,kBAAkB;gBACjD,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAClC,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;YACzF,CAAC;YACD,IAAI,iBAAiB,GAAG,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACnF,IAAI,iBAAiB,IAAI,iBAAiB,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;gBAChE,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;YAC9F,CAAC;YACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACxE,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CACd,wFAAwF,CACxF,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,yCAAyC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAChE,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC/D,OAAO;YACR,CAAC;YACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;oBACjG,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;gBACrF,CAAC;gBACD,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC;YACrC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YACjF,CAAC;YACD,IAAI,iBAAiB,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC3C,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnF,MAAM,SAAS,GAAG,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC7E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;wBAC7B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;oBAC9E,CAAC;gBACF,CAAC;YACF,CAAC;YACD,IAAI,CAAC,yCAAyC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAChE,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,sCAAsC,CAC1C,KAAK,CAAC,SAAS,EACf,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACtD,CAAC;QACH,CAAC;IACF,CAAC;IAEO,sCAAsC,CAAC,SAAiB,EAAE,MAAc;QAC/E,IAAI,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM;YAAE,OAAO;QAC7E,IACC,CAAC,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,SAAS,CAAC;YACtD,IAAI,CAAC,iCAAiC,CAAC,IAAI,IAAI,GAAG,EACjD,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC1E,IAAI,MAAM;gBAAE,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC9D,IAAI,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,gDAAgD,SAAS,KAAK,MAAM,EAAE,CAAC,CAAC;QAC7F,CAAC;QAAC,MAAM,CAAC;YACR,6EAA6E;QAC9E,CAAC;IACF,CAAC;IAEO,yCAAyC,CAAC,SAAiB;QAClE,IAAI,CAAC;YACJ,IAAI,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,sCAAsC,CAC1C,WAAW,SAAS,EAAE,EACtB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACtD,CAAC;QACH,CAAC;IACF,CAAC;IAEO,4BAA4B;QACnC,IAAI,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACR,kEAAkE;QACnE,CAAC;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC7B,CAAC;IAED,oBAAoB,CACnB,OAAe,EACf,KAAK,GAA4B,EAAE;QAEnC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC/E,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACrG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YAC5D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/F,CAAC;IACF,CAAC;IAED,iBAAiB,CAChB,OAAe,EACf,KAAK,GAA4B,EAAE;QAEnC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC;QAC7G,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,kCAAkC,EAAE,CAAC;QACvF,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,oBAAoB,KAAK,SAAS,CAAC,CAAC;QACnG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,MAAM;gBACN,UAAU,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAClE,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM;gBACN,UAAU,EAAE,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACtG,CAAC;QACH,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,iBAAiB,CAChB,OAAe,EACf,UAAU,GAAG,iBAAiB,EAC9B,KAAK,GAA4B,EAAE;QAEnC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACnE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IACf,CAAC;IAED,iBAAiB,CAAC,OAAe,EAAE,KAAK,GAA4B,EAAE;QACrE,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC/E,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,OAAO,yBAAyB,QAAQ,GAAG,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,sCAAsC,EAAE,CAAC;QAC9C,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACd,yBAAyB,MAAM,CAAC,OAAO,SAAS,eAAe,CAAC,MAAM,2BAA2B,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAC3I,CAAC;QACH,CAAC;QACD,MAAM,oBAAoB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC,MAAM,CAAC;QAC3G,IAAI,oBAAoB,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACd,yBAAyB,MAAM,CAAC,OAAO,SAAS,oBAAoB,+BAA+B,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAC3I,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxE,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACjF,CAAC;IAED,sGAAsG;IACtG,kBAAkB,CACjB,OAAe,EACf,SAAS,GAAG,MAAM,EAClB,KAAK,GAA4B,EAAE;QAEnC,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACrF,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,SAAS;YAC/C,QAAQ,EAAE,MAAM,CAAC,QAAQ;SACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wGAAwG;IACxG,mBAAmB,CAClB,QAA2B,EAC3B,IAAyB,EACzB,SAAS,GAAG,MAAM,EAClB,KAAK,GAA4B,EAAE;QAEnC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK;YAAE,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC;QACtG,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC5E,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,sBAAsB,EAAE,CAAC;QAC9E,IAAI,aAAiC,CAAC;QACtC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACzB,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,aAAa,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC/D,MAAM,IAAI,KAAK,CAAC,iCAAiC,aAAa,IAAI,CAAC,CAAC;YACrE,CAAC;QACF,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAClD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;YACvD,CAAC,CAAC,MAAM,CAAC;QACV,MAAM,oBAAoB,GAAG,CAAC,QAA+B,EAAE,EAAE;YAChE,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAC5D,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACvC,OAAO;oBACN,OAAO;oBACP,MAAM,EAAE,KAAK;wBACZ,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACrE,CAAC,CAAE,SAAmB;iBACvB,CAAC;YACH,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,sBAAsB,EAAE,CAAC,CAAC;QACzG,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAChE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACpG,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,MAAM,aAAa,GAAG,CAAC,QAAiC,EAAE,EAAE;YAC3D,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC5C,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM;oBAAE,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7E,CAAC;QACF,CAAC,CAAC;QACF,MAAM,aAAa,GAAG,CAAC,QAAiC,EAAE,EAAE;YAC3D,OAAO,IAAI,KAAK,KAAK;gBACpB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC;gBACpD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QACxD,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,QAAiC,EAAE,QAAiB,EAAE,EAAE,CAAC,CAAC;YACzE,QAAQ;YACR,eAAe,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpF,QAAQ;SACR,CAAC,CAAC;QACH,IAAI,aAAa,CAAC,gBAAgB,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7F,IAAI,aAAa,EAAE,CAAC;YACnB,MAAM,cAAc,GAAG,IAAI,GAAG,CAC7B,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAC1F,CAAC;YACF,IAAI,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CACd,+CAA+C,aAAa,2DAA2D,CACvH,CAAC;YACH,CAAC;QACF,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,kBAAuC,CAAC;YAC5C,IAAI,OAAgB,CAAC;YACrB,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,gBAAgB,GAAG,aAAa,KAAK,SAAS,CAAC;YACnD,IAAI,YAAqD,CAAC;YAC1D,IAAI,gBAAgB,GAAG,GAAS,EAAE,CAAC,SAAS,CAAC;YAC7C,IAAI,OAAkD,CAAC;YACvD,mFAAmF;YACnF,kFAAkF;YAClF,kFAAkF;YAClF,yEAAyE;YACzE,IAAI,sBAAsB,GAAG,GAAS,EAAE,CAAC,SAAS,CAAC;YACnD,IAAI,oBAA+D,CAAC;YACpE,IAAI,oBAAwC,CAAC;YAC7C,MAAM,OAAO,GAAG,GAAG,EAAE;gBACpB,gBAAgB,EAAE,CAAC;gBACnB,sBAAsB,EAAE,CAAC;gBACzB,IAAI,OAAO;oBAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBACnC,IAAI,oBAAoB;oBAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC;YAC9D,CAAC,CAAC;YACF,MAAM,aAAa,GAAG,GAAY,EAAE;gBACnC,IAAI,CAAC,YAAY;oBAAE,OAAO,IAAI,CAAC;gBAC/B,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;gBAChC,IAAI,QAAQ,KAAK,KAAK;oBAAE,OAAO,KAAK,CAAC;gBACrC,YAAY,GAAG,SAAS,CAAC;gBACzB,OAAO,IAAI,CAAC;YACb,CAAC,CAAC;YACF,MAAM,MAAM,GAAG,GAAG,EAAE;gBACnB,IAAI,OAAO,IAAI,CAAC,gBAAgB;oBAAE,OAAO;gBACzC,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;gBACnC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,IAAI,CAAC,UAAU,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;oBACrD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;wBAAE,OAAO;oBACrC,kBAAkB,GAAG,KAAK,CAAC;oBAC3B,IAAI,OAAO,EAAE,CAAC;wBACb,YAAY,CAAC,OAAO,CAAC,CAAC;wBACtB,OAAO,GAAG,SAAS,CAAC;oBACrB,CAAC;gBACF,CAAC;gBACD,IAAI,CAAC;oBACJ,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;wBACtB,oBAAoB,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,0BAA0B,CAAC;wBACjE,MAAM,WAAW,GAAG,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBACtD,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;4BACtB,OAAO,GAAG,IAAI,KAAK,CAClB,uIAAuI,CACvI,CAAC;4BACF,UAAU,GAAG,IAAI,CAAC;wBACnB,CAAC;6BAAM,CAAC;4BACP,IAAI,CAAC,oBAAoB,EAAE,CAAC;gCAC3B,oBAAoB,GAAG,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gCACvD,IAAI,OAAO,oBAAoB,KAAK,QAAQ,IAAI,OAAO,IAAI,oBAAoB,EAAE,CAAC;oCACjF,oBAAoB,CAAC,KAAK,EAAE,CAAC;gCAC9B,CAAC;4BACF,CAAC;4BACD,OAAO;wBACR,CAAC;oBACF,CAAC;gBACF,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,OAAO,GAAG,KAAK,CAAC;oBAChB,UAAU,GAAG,IAAI,CAAC;gBACnB,CAAC;gBACD,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,IAAI,UAAU;oBAAE,MAAM,CAAC,OAAO,CAAC,CAAC;;oBAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,IAAI,KAAK,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC;YACF,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,OAAO,CAAC,gCAAgC,EAAE,CAAC;gBACnD,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACzB,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,SAAS,CAAC;gBACpB,IAAI,kBAAkB,KAAK,SAAS;oBAAE,kBAAkB,GAAG,IAAI,CAAC;gBAChE,MAAM,EAAE,CAAC;YACV,CAAC,EAAE,gBAAgB,CAAC,CAAC;YACrB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,OAAO;gBAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YACvE,IAAI,CAAC;gBACJ,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBACtD,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;oBAC9D,OAAO,GAAG,YAAY,KAAK,SAAS,CAAC;gBACtC,CAAC;gBACD,IAAI,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC;oBAC/B,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;oBACnC,MAAM,cAAc,GAAG,IAAI,GAAG,CAC7B,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAClF,CAAC;oBACF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAChC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAC1E,CAAC;oBACF,MAAM,eAAe,GAAG,iBAAiB,CAAC,MAAM,CAC/C,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAC1E,CAAC;oBACF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChC,UAAU,GAAG,IAAI,CAAC;wBAClB,OAAO,GAAG,IAAI,KAAK,CAClB,+BAA+B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,6CAA6C,CACrJ,CAAC;oBACH,CAAC;gBACF,CAAC;gBACD,gBAAgB,GAAG,IAAI,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,gBAAgB,GAAG,IAAI,CAAC;gBACxB,UAAU,GAAG,IAAI,CAAC;gBAClB,OAAO,GAAG,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,EAAE,CAAC;QACV,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,qGAAqG;IACrG,8BAA8B,CAC7B,OAAe,EACf,YAAgC,EAChC,eAAwB;QAExB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,YAAY,CAAC,oCAAoC,CAClE,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACvB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;QACrE,CAAC,CAAC,CACF,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,SAAS;YAAE,IAAI,CAAC,kCAAkC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/F,OAAO,OAAO;aACZ,OAAO,EAAE;aACT,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,eAAe,CAAC;aAChE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,2FAA2F;IAC3F,yBAAyB,CAAC,OAAe,EAAE,OAA2C;QACrF,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO;QAC3E,MAAM,SAAS,GAAG,6DAA6D,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3G,IAAI,SAAS;YAAE,IAAI,CAAC,kCAAkC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5E,CAAC;IAED,sFAAsF;IACtF,kBAAkB;QACjB,IAAI,CAAC,gCAAgC,EAAE,CAAC;QACxC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC7B,CAAC;IAED,+FAA+F;IAC/F,gCAAgC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAChD,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;IAEO,yBAAyB;QAChC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CACrF,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAC3G,CAAC;IACH,CAAC;IAEO,4BAA4B,CAAC,MAAuC;QAC3E,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,IAAI,CAAC,oCAAoC,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC;IAEO,sCAAsC;QAC7C,IAAI,CAAC;YACJ,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,sCAAsC,CAC1C,8BAA8B,EAC9B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACtD,CAAC;QACH,CAAC;IACF,CAAC;IAEO,oCAAoC,CAAC,MAA4B;QACxE,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,gBAA6E,CAAC;QAClF,IAAI,CAAC;YACJ,gBAAgB,GAAG,aAAa,CAAC,yBAAyB,EAAE,CAAC;YAC7D,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,UAAU,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,sCAAsC,CAC1C,UAAU,MAAM,CAAC,OAAO,EAAE,EAC1B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACtD,CAAC;YACF,OAAO;QACR,CAAC;QACD,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,SAAS,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC;YAC1E,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;gBACpE,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC;oBAC7B,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;gBAC7F,CAAC;gBACD,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACvD,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;oBACjG,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC1D,SAAS;gBACV,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC7D,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;gBAC5F,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,sCAAsC,CAC1C,UAAU,EACV,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACtD,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAEO,sCAAsC,CAAC,UAAkB,EAAE,MAAc;QAChF,IAAI,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM;YAAE,OAAO;QAC9E,IACC,CAAC,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,UAAU,CAAC;YACvD,IAAI,CAAC,iCAAiC,CAAC,IAAI,IAAI,GAAG,EACjD,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC1E,IAAI,MAAM;gBAAE,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,oDAAoD,UAAU,KAAK,MAAM,EAAE,CAAC,CAAC;QAClG,CAAC;QAAC,MAAM,CAAC;YACR,6FAA6F;QAC9F,CAAC;IACF,CAAC;IAEO,4CAA4C,CACnD,aAAiC,EACjC,gBAAwB,EACxB,aAAqB,EACrB,cAAsB;QAEtB,IAAI,aAAa,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,KAAK,cAAc;YAAE,OAAO,KAAK,CAAC;QAC/F,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,0BAA0B,CAAC,cAAc,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7F,OAAO,aAAa,CAAC,0BAA0B,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IACnF,CAAC;IAEO,oBAAoB;QAC3B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACJ,QAAQ,EAAE,CAAC;YACZ,CAAC;YAAC,MAAM,CAAC;gBACR,yFAAyF;YAC1F,CAAC;QACF,CAAC;IACF,CAAC;IAED,oGAAoG;IACpG,4BAA4B,CAAC,IAK5B;QACA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,KAAK,QAAQ,IAAI,MAAM,EAAE,MAAM,KAAK,QAAQ,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC;QAC1G,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3E,MAAM,cAAc,GAAG,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACxG,MAAM,OAAO,GAAG,iCAAiC,CAAC;YACjD,GAAG,IAAI;YACP,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,QAAQ,EAAE,KAAK;gBAClB,CAAC,CAAC;oBACA,KAAK,EAAE;wBACN,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;wBAC/B,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM;wBAC7B,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;wBACzC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;qBACjC;iBACD;gBACF,CAAC,CAAC,EAAE,CAAC;SACN,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,oBAAoB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpE,MAAM,eAAe,GAAoC;YACxD,cAAc;YACd,OAAO;YACP,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,IAAI,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,eAAe,EAAE,IAAI,CAAC,iBAAiB,EAAE;SAC3E,CAAC;QACF,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC7D,MAAM,gBAAgB,GAAG,IAAI,CAAC,mCAAmC,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;QAClG,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,OAAO,EAAE,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAClF,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,0CAA0C,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAC3F,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,OAAO;gBACN,SAAS;gBACT,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,qDAAqD;aACjE,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC;YACjE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;YACpC,OAAO;YACP,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,cAAc;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,eAAe,EAAE,IAAI,CAAC,iBAAiB,EAAE;SAC3E,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;YAC1C,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACxE,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9C,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACxE,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1F,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,OAAO;YACN,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,QAAQ,EAAE,IAAI;YACd,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/E,CAAC;IACH,CAAC;IAEO,2BAA2B,CAAC,OAAe,EAAE,iBAA0B;QAC9E,IAAI,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,wCAAwC,EAAE,CAAC;QACjF,CAAC;QACD,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;YACnE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC;gBACxD,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChD,IAAI,CAAC,OAAO;oBAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,sCAAsC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;oBACjE,IAAI,iBAAiB,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;wBAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,+CAA+C,EAAE,CAAC;oBACxF,CAAC;oBACD,SAAS;gBACV,CAAC;gBACD,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACrD,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACtE,IAAI,UAAU,EAAE,CAAC;oBAChB,MAAM,SAAS,GAAG,IAAI,CAAC,oCAAoC,CAAC,UAAU,CAAC,CAAC;oBACxE,IAAI,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;wBAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,gCAAgC,CACpD,KAAK,EACL,OAAO,EACP,OAAO,EACP,SAAS,EACT,iBAAiB,CACjB,CAAC;wBACF,IAAI,OAAO;4BAAE,OAAO,OAAO,CAAC;wBAC5B,SAAS;oBACV,CAAC;oBACD,IAAI,iBAAiB,IAAI,OAAO,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;wBAClE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,uCAAuC,EAAE,CAAC;oBAChF,CAAC;oBACD,OAAO,SAAS,CAAC;gBAClB,CAAC;gBACD,IAAI,iBAAiB,IAAI,OAAO,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;oBAClE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,uCAAuC,EAAE,CAAC;gBAChF,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,QAAQ,KAAK,MAAM;oBAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,QAAQ,EAAE,EAAE,CAAC;gBACrF,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;oBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,gCAAgC,CACpD,KAAK,EACL,OAAO,EACP,OAAO,EACP,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,KAAK,CAAC,MAAM,EAAE,EAAE,EACvD,iBAAiB,CACjB,CAAC;oBACF,IAAI,OAAO;wBAAE,OAAO,OAAO,CAAC;oBAC5B,SAAS;gBACV,CAAC;gBACD,MAAM,eAAe,GAAG,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5E,IAAI,eAAe,EAAE,CAAC;oBACrB,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC1E,MAAM,UAAU,GAAG;wBAClB,OAAO,EAAE,KAAK;wBACd,UAAU,EAAE,GAAG,eAAe,gCAAgC;qBAC9D,CAAC;oBACF,IAAI,iBAAiB,KAAK,OAAO,CAAC,SAAS;wBAAE,OAAO,UAAU,CAAC;oBAC/D,SAAS;gBACV,CAAC;gBACD,IAAI,CAAC;oBACJ,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,CAAC;oBAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,gBAAgB,CAAC;wBAC7D,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,YAAY,EAAE,OAAO,CAAC,OAAO;wBAC7B,gBAAgB,EAAE,OAAO,CAAC,SAAS;wBACnC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,gBAAgB;4BACvE,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE;4BACrD,CAAC,CAAC,EAAE,CAAC;qBACN,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC3E,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACrE,IAAI,SAAS,EAAE,CAAC;wBACf,MAAM,SAAS,GAAG,IAAI,CAAC,oCAAoC,CAAC,SAAS,CAAC,CAAC;wBACvE,IAAI,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;4BAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,gCAAgC,CACpD,KAAK,EACL,OAAO,EACP,OAAO,EACP,SAAS,EACT,iBAAiB,CACjB,CAAC;4BACF,IAAI,OAAO;gCAAE,OAAO,OAAO,CAAC;4BAC5B,SAAS;wBACV,CAAC;wBACD,OAAO;4BACN,GAAG,SAAS;4BACZ,GAAG,CAAC,SAAS,CAAC,UAAU;gCACvB,CAAC,CAAC,EAAE;gCACJ,CAAC,CAAC,EAAE,UAAU,EAAE,kDAAkD,EAAE,CAAC;yBACtE,CAAC;oBACH,CAAC;oBACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/F,CAAC;YACF,CAAC;YACD,IAAI,CAAC,6CAA6C,CAAC,OAAO,CAAC,CAAC;YAC5D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,0CAA0C,EAAE,CAAC;QACnF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,IAAI,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,yDAAyD,OAAO,KAAK,MAAM,EAAE,CAAC,CAAC;YACpG,CAAC;YAAC,MAAM,CAAC;gBACR,uFAAuF;YACxF,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;IACF,CAAC;IAEO,6CAA6C,CAAC,OAAe;QACpE,IAAI,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO;QAC9D,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClD,cAAc,CAAC,GAAG,EAAE;YACnB,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,sCAAsC,CAAC,MAA4B,EAAE,OAA2B;QACvG,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QACrF,IAAI,CAAC,kCAAkC,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,gCAAgC,CACvC,KAA2B,EAC3B,OAA2B,EAC3B,OAA2B,EAC3B,SAAoC,EACpC,iBAA0B;QAE1B,MAAM,gBAAgB,GAAG,iBAAiB,KAAK,OAAO,CAAC,SAAS,CAAC;QACjE,IAAI,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YACrG,OAAO,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACxF,OAAO,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,UAAU,QAAQ,8BAA8B,EAAE,CAAC;QACvF,CAAC;QACD,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG;YAClB,GAAG,SAAS;YACZ,UAAU,EAAE,GAAG,SAAS,CAAC,UAAU,IAAI,sBAAsB,gCAAgC;SAC7F,CAAC;QACF,OAAO,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,CAAC;IAEO,qBAAqB,CAAC,OAAe,EAAE,OAA2B;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3E,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAC,SAAS,wCAAwC,CAAC,CAAC;QACvG,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,yBAAyB,CAAC,OAAe,EAAE,SAAiB;QACnE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,CAClG,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,KAAK,SAAS,CAC1G,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,mCAAmC,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAEO,oCAAoC,CAAC,OAA4B;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,kCAAkC,EAAE,CAAC;QACvF,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzF,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACnG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IACzF,CAAC;IAEO,0BAA0B,CAAC,MAAkB,EAAE,OAA4B;QAClF,IAAI,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,MAAM;gBACN,UAAU,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAClE,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM;gBACN,UAAU,EAAE,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACpG,CAAC;QACH,CAAC;IACF,CAAC;IAEO,kCAAkC,CAAC,KAA2B;QACrE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW;YAAE,OAAO;QAC7C,IAAI,CAAC,aAAa;aAChB,IAAI,CAAC;YACL,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,sBAAsB,EAAE,KAAK,CAAC,OAAO;SACrC,CAAC;aACD,4BAA4B,EAAE,CAAC;IAClC,CAAC;IAEO,cAAc;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAClF,CAAC;IACF,CAAC;IAEO,mBAAmB,CAAC,QAA2B,EAAE,KAAa;QACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,mCAAmC,EAAE,CAAC;YAC9G,MAAM,IAAI,SAAS,CAClB,GAAG,KAAK,0CAA0C,mCAAmC,WAAW,CAChG,CAAC;QACH,CAAC;QACD,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;YAC7F,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,gBAAgB;gBAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;YACnF,IAAI,gBAAgB,CAAC,MAAM,GAAG,mCAAmC,EAAE,CAAC;gBACnE,MAAM,IAAI,SAAS,CAAC,mCAAmC,mCAAmC,cAAc,CAAC,CAAC;YAC3G,CAAC;YACD,IAAI,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC;gBAAE,SAAS;YACjD,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACnC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC1B,CAAC;IAEO,iBAAiB,CAAC,OAAe;QACxC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,UAAU,IAAI,CAAC,CAAC;QAC7E,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,kBAAkB,CAAC,OAAe,EAAE,KAA8B;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,aAAa;YAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,sBAAsB,CAAC,MAA4B,EAAE,aAAqB;QACjF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,IAAI,MAAM,GAAqC,MAAM,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxG,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,wBAAwB,CAAC,OAAe,EAAE,KAA8B;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,aAAa;YAAE,OAAO,MAAM,CAAC;QACxC,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;YAAE,OAAO,MAAM,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,OAAO,mCAAmC,CAAC,CAAC;IAC7F,CAAC;IAEO,kBAAkB,CAAC,KAA2B;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,OAAO,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/G,CAAC;IAEO,qBAAqB,CAAC,QAA+B;QAC5D,OAAO,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAEO,gBAAgB,CAAC,KAA2B;QACnD,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,CAAC;IAEO,oBAAoB,CAC3B,KAA2B,EAC3B,OAAwC;QAExC,IAAI,OAAO,EAAE,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,WAAW,CAAC;QACxF,IAAI,OAAO,EAAE,MAAM,KAAK,QAAQ,IAAI,OAAO,EAAE,MAAM,KAAK,QAAQ,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;YACnG,OAAO,QAAQ,CAAC;QACjB,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,sBAAsB,CAC7B,OAAe,EACf,KAA8B;QAK9B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC/C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEO,UAAU,CAAC,OAAe;QACjC,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,GAAG,IAAI,kBAAkB,CAAC;gBAChC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAC/B,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;gBAC7C,OAAO;aACP,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,uBAAuB,CAAC,OAAe,EAAE,cAAkC;QAClF,IAAI,cAAc,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC/C,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAClG,CAAC;IAEO,+BAA+B,CAAC,OAAe;QACtD,MAAM,SAAS,GAAG,mCAAmC,CACpD,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,sBAAsB,EAAE,EACpD,OAAO,CACP,CAAC;QACF,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC;IACxD,CAAC;IAEO,qBAAqB,CAAC,QAAoB;QACjD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAEO,kCAAkC,CAAC,OAAe,EAAE,SAAiB;QAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,cAAc,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,+BAA+B,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;YACzF,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACxC,IACC,aAAa;gBACb,cAAc,CAAC,gBAAgB;gBAC/B,CAAC,aAAa,CAAC,0BAA0B,CAAC,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC,SAAS,CAAC;gBACpG,aAAa,CAAC,yBAAyB,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,SAAS,EACrF,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACxE,CAAC;YACD,OAAO;QACR,CAAC;QACD,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAEO,+BAA+B,CACtC,MAA4B,EAC5B,KAAyB,EACzB,oBAAoB,GAAG,KAAK;QAE5B,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnF,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,OAAO,CAAC,aAAa,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,uBAAuB,GAAG,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3F,IAAI,uBAAuB,IAAI,uBAAuB,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,uBAAuB,KAAK,SAAS,EAAE,CAAC;YAC9E,IAAI,oBAAoB,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;gBAAE,OAAO,aAAa,CAAC;YAClF,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACjG,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,aAAa,CAAC;IACtB,CAAC;IAEO,kBAAkB,CACzB,MAA4B,EAC5B,IAA2B,EAC3B,OAAe,EACf,OAAkC,EAClC,IAA8B;QAE9B,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAC1C,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC;YACzD,IAAI;YACJ,OAAO;YACP,GAAG,OAAO;YACV,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzB,CAAC,CAAC;IACJ,CAAC;IAEO,eAAe,CACtB,KAA2B,EAC3B,QAAQ,GAAwB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAC5D,aAAsB;QAEtB,OAAO;YACN,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ;YACR,YAAY,EAAE,CAAC,aAAa,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,aAAa,CAAC;YACjF,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;SAC1B,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,aAAqB,EAAE,cAAsB;QAC5E,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QACrF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YAChG,IAAI,KAAK,CAAC,OAAO,KAAK,aAAa;gBAAE,SAAS;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjF,MAAM,IAAI,KAAK,CACd,8EAA8E,KAAK,CAAC,OAAO,IAAI,CAC/F,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAEO,cAAc,CAAC,OAA2B;QACjD,MAAM,QAAQ,GAAG;YAChB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS;YACnE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;YAC3D,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS;YAC5E,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS;SACtD,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAC1D,OAAO;YACN,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,mBAAmB,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE;YAC1H,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC;IACH,CAAC;CACD","sourcesContent":["import type { AgentMessage } from \"@caupulican/pi-agent-core\";\nimport type { UserMessage } from \"@caupulican/pi-ai\";\nimport type { WorkerDelegationRunOutcome } from \"../agent-session-contracts.ts\";\nimport type { LaneRecord } from \"../autonomy/lane-tracker.ts\";\nimport { latestAgentAttemptsByDurableOrder } from \"../orchestration/attempt-ordering.ts\";\nimport {\n\ttype AgentBindingContract,\n\ttype ArtifactContract,\n\tMAX_ORCHESTRATION_COLLECTION_LENGTH,\n\tMAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n\ttype WorkerResultContract,\n} from \"../orchestration/contracts.ts\";\nimport type { AttemptRuntimeState, TaskRuntimeProjection } from \"../orchestration/task-runtime.ts\";\nimport {\n\tSessionRootMailbox,\n\ttype SessionRootReply,\n\ttype SessionRootReplyQuery,\n\ttype SessionRootReplyWaitOptions,\n\ttype SessionRootReplyWaitResult,\n\tsessionRootAddress,\n\tsessionRootReplyMessageId,\n} from \"./session-root-mailbox.ts\";\nimport type { WorkerClaimSnapshotPayload } from \"./session-worker-claim.ts\";\nimport {\n\tnormalizeWorkerAgentDependencyTaskIds,\n\ttype SessionRootWorkerAgentMessageOptions,\n\ttype WorkerAgentActivity,\n\ttype WorkerAgentBroadcastOptions,\n\ttype WorkerAgentBroadcastResult,\n\ttype WorkerAgentControlPort,\n\ttype WorkerAgentControlScope,\n\tWorkerAgentMailbox,\n\ttype WorkerAgentMessage,\n\ttype WorkerAgentMessageOptions,\n\ttype WorkerAgentReplyResult,\n\ttype WorkerAgentRetireResult,\n\ttype WorkerAgentTaskMetadata,\n\ttype WorkerAgentTaskStartOptions,\n\ttype WorkerAgentTranscriptOptions,\n\ttype WorkerAgentView,\n\ttype WorkerAgentWaitMode,\n\tworkerAgentBroadcastTargetIdempotencyKey,\n\tworkerAgentMessageId,\n} from \"./worker-agent-control.ts\";\nimport {\n\tMAX_WORKER_TRANSCRIPT_PAGE_MESSAGES,\n\ttype WorkerConversation,\n\tWorkerConversationStore,\n} from \"./worker-conversation-store.ts\";\nimport type { WorkerDelegationRequest } from \"./worker-delegation-request.ts\";\nimport type { WorkerDispatchScheduler } from \"./worker-dispatch-scheduler.ts\";\nimport { evaluateReusableWorkerTaskAdmission } from \"./worker-fleet-limits.ts\";\nimport type { WorkerLifecycle } from \"./worker-lifecycle.ts\";\nimport { projectWorkerTaskSessionView } from \"./worker-task-view.ts\";\nimport { WORKER_COMPLETION_ERROR_CAVEMAN_GUIDANCE } from \"./worker-terminal-handoff-coordinator.ts\";\nimport { workerTerminalOutputArtifact } from \"./worker-terminal-output-artifact.ts\";\n\nexport interface WorkerAgentControlCoordinatorOptions {\n\tagentDir: string;\n\tparentSessionId: string;\n\tprocessOwnerId: string;\n\t/** Controller-owned composition dependency; standalone coordinators receive a private default. */\n\tconversationStore?: WorkerConversationStore;\n\tisControlAvailable(): boolean;\n\tgetLifecycle(): WorkerLifecycle;\n\trecoveredRequest(attempt: AttemptRuntimeState): WorkerDelegationRequest;\n\trun(request: WorkerDelegationRequest, record: LaneRecord): Promise<WorkerDelegationRunOutcome>;\n\tscheduler: Pick<WorkerDispatchScheduler, \"enqueue\" | \"track\" | \"drain\" | \"dropQueued\">;\n\tstatusChanged(): void;\n\tgetWorkerClaimSnapshot?(laneId: string): WorkerClaimSnapshotPayload | undefined;\n\tgetWorkerResult?(laneId: string): Pick<WorkerResultContract, \"artifacts\"> | undefined;\n\tabortLane(laneId: string, reasonCode: string): void;\n\tcancelLane(laneId: string, reasonCode: string): LaneRecord | undefined;\n\ttaskStartHeadroomSkipReason?(agent: AgentBindingContract): string | undefined;\n\twaitBlockedByCaller?(callerAgentId: string, targetAgentIds: readonly string[]): readonly string[];\n\t/** Yield caller-owned scheduler and mutation resources until the returned restorer succeeds. */\n\tyieldCallerForWait?(callerAgentId: string): () => boolean | undefined;\n\t/**\n\t * Wake a wait that is blocked on restoring the caller's write reservation. Reservation release\n\t * is a separate subsystem from subscribeStateChanges; this is that subsystem's event, not a poll.\n\t */\n\tsubscribeReservationAvailability?(listener: () => void): () => void;\n\twarn?(message: string): void;\n}\n\ntype QueuedPeerMessage = ReturnType<WorkerAgentMailbox[\"enqueueWithReceipt\"]>;\n\nconst MAX_BROADCAST_ERROR_CHARS = 512;\n\n/**\n * Independent bound on how long a blocked restore may wait for a reservation-availability event,\n * deliberately NOT derived from the caller's own (possibly very short, e.g. test-only 1ms) wait\n * timeoutMs: the original wait already finished (satisfied or timed out) by the time restoration\n * starts. This is a watchdog, not a poll — retries are driven by subscribeReservationAvailability.\n * Mirrors the documented 300s absolute ceiling used elsewhere in this method.\n */\nconst WORKER_WAIT_RESTORE_MAX_MS = 300_000;\n\nexport function buildWorkerTerminalHandoffContent(args: {\n\tchildAgentId: string;\n\trecord: Pick<LaneRecord, \"laneId\" | \"status\" | \"reasonCode\">;\n\toutputArtifact?: ArtifactContract;\n\tclaim?: {\n\t\tsummary?: string;\n\t\tstatus?: string;\n\t\tchangedFiles?: readonly string[];\n\t\tblockers?: readonly string[];\n\t};\n}): string {\n\tconst sanitize = (value: string): string => value.replace(/[\\r\\n]+/g, \" \").slice(0, 120);\n\treturn [\n\t\t\"Worker terminal handoff\",\n\t\t`childAgentId=${args.childAgentId}`,\n\t\t`laneId=${args.record.laneId}`,\n\t\t`status=${args.record.status}`,\n\t\t...(args.record.reasonCode ? [`reasonCode=${args.record.reasonCode}`] : []),\n\t\t...(args.outputArtifact\n\t\t\t? [\n\t\t\t\t\t`fullOutput=${args.outputArtifact.uri}${args.outputArtifact.sizeBytes === undefined ? \"\" : ` (${args.outputArtifact.sizeBytes} bytes)`}`,\n\t\t\t\t]\n\t\t\t: []),\n\t\t...(args.claim?.summary ? [`claimStatus=${args.claim.status || args.record.status}`] : []),\n\t\t...(args.claim?.summary ? [`claimSummary=${sanitize(args.claim.summary)}`] : []),\n\t\t...(args.claim?.changedFiles && args.claim.changedFiles.length > 0\n\t\t\t? [`changedFiles=${args.claim.changedFiles.join(\", \")}`]\n\t\t\t: []),\n\t\t...(args.claim?.blockers && args.claim.blockers.length > 0\n\t\t\t? [`blockers=${args.claim.blockers.map((b) => sanitize(b)).join(\"; \")}`]\n\t\t\t: []),\n\t\t\"CAVEMAN MODE - MANDATORY: terminal handoff means worker state was retained. Read the full transcript, verify the claim, then continue or replan within the admitted grant. Do not call this lost state or harness failure.\",\n\t\t\"MANDATORY: read every transcript page before judging this result.\",\n\t\t`Start with delegate action=\"transcript\" agentId=\"${args.childAgentId}\" cursor=0.`,\n\t\t\"Entries complete only after pagination ends. omittedMessages means whole entries were left out of that page. While nextCursor exists, call transcript again with cursor=nextCursor. Stop only when nextCursor is absent.\",\n\t\t...(args.record.reasonCode === \"worker_blocked\"\n\t\t\t? [\n\t\t\t\t\t\"worker_blocked means the durable claim has blockers; it does not mean worker state or transcript was lost.\",\n\t\t\t\t]\n\t\t\t: []),\n\t\t...(args.record.status === \"budget_exhausted\"\n\t\t\t? [\n\t\t\t\t\t\"CAVEMAN MODE - MANDATORY: budget_exhausted means an admitted limit ended work, not harness failure. Terminal reasonCode is authoritative; never replace it with earlier transcript errors. Read evidence, then replan only within remaining authority.\",\n\t\t\t\t]\n\t\t\t: []),\n\t\t...(args.record.reasonCode === \"completion_error\" ? [WORKER_COMPLETION_ERROR_CAVEMAN_GUIDANCE] : []),\n\t].join(\"\\n\");\n}\n\ntype TaskBearingReconciliation = {\n\tstarted: boolean;\n\trecord?: LaneRecord;\n\tskipReason?: string;\n};\n\ntype MandatoryTranscriptControlInput = {\n\tidempotencyKey: string;\n\tcontent: string;\n\tsenderAgentId: string;\n\tthreadId?: string;\n\treplyToMessageId?: string;\n\ttask: WorkerAgentTaskMetadata;\n};\n\n/**\n * Sole owner of model-facing logical-agent controls and their durable inboxes.\n *\n * It deliberately owns no worker execution policy, provider loop, or terminal persistence. Those\n * controller-owned callbacks keep this narrow port from becoming a second lifecycle authority.\n */\nexport class WorkerAgentControlCoordinator implements WorkerAgentControlPort {\n\tprivate readonly options: WorkerAgentControlCoordinatorOptions;\n\tprivate readonly mailboxes = new Map<string, WorkerAgentMailbox>();\n\tprivate readonly stateListeners = new Set<() => void>();\n\tprivate readonly conversations: WorkerConversationStore;\n\tprivate readonly reconcilingTaskBearingAgentIds = new Set<string>();\n\tprivate readonly taskBearingContinuationAgentIds = new Set<string>();\n\tprivate readonly sessionRootMailbox: SessionRootMailbox;\n\tprivate readonly sessionRootAddress: string;\n\tprivate readonly sessionRootReconciliationFailures = new Map<string, string>();\n\tprivate readonly workerReplyReconciliationFailures = new Map<string, string>();\n\n\tconstructor(options: WorkerAgentControlCoordinatorOptions) {\n\t\tthis.options = options;\n\t\tthis.conversations = options.conversationStore ?? new WorkerConversationStore();\n\t\tthis.sessionRootAddress = sessionRootAddress(options.parentSessionId);\n\t\tthis.sessionRootMailbox = new SessionRootMailbox({\n\t\t\tagentDir: options.agentDir,\n\t\t\tparentSessionId: options.parentSessionId,\n\t\t});\n\t}\n\n\tgetProcessOwnerId(): string {\n\t\treturn this.options.processOwnerId;\n\t}\n\n\tlistWorkerAgents(scope: WorkerAgentControlScope = {}): WorkerAgentView[] {\n\t\tthis.requireControl();\n\t\tconst snapshot = this.options.getLifecycle().getTaskRuntimeSnapshot();\n\t\tif (scope.callerAgentId) {\n\t\t\tconst callerAgentId = scope.callerAgentId.trim();\n\t\t\tif (!callerAgentId || !snapshot.agents[callerAgentId]) {\n\t\t\t\tthrow new Error(`Unknown logical worker agent '${callerAgentId}'.`);\n\t\t\t}\n\t\t}\n\t\tconst latestAttempts = this.latestAttemptsByAgent(snapshot);\n\t\tconst agents = Object.values(snapshot.agents);\n\t\treturn agents\n\t\t\t.sort((left, right) => left.depth - right.depth || left.createdAt.localeCompare(right.createdAt))\n\t\t\t.map((agent) =>\n\t\t\t\tthis.workerAgentView(\n\t\t\t\t\tagent,\n\t\t\t\t\tthis.projectAgentActivity(agent, latestAttempts.get(agent.agentId)),\n\t\t\t\t\tscope.callerAgentId,\n\t\t\t\t),\n\t\t\t);\n\t}\n\n\tgetWorkerTaskSessionView(): ReturnType<WorkerAgentControlPort[\"getWorkerTaskSessionView\"]> {\n\t\tthis.requireControl();\n\t\treturn projectWorkerTaskSessionView(this.options.getLifecycle().getTaskRuntimeSnapshot());\n\t}\n\n\t/** Snapshot-only activity projection. Unlike waitForWorkerAgent, this never yields scheduler capacity. */\n\tgetWorkerAgentActivity(agentId: string, scope: WorkerAgentControlScope = {}): WorkerAgentActivity {\n\t\tthis.requireControl();\n\t\tconst canonicalAgentId = agentId.trim();\n\t\tif (!canonicalAgentId) throw new Error(\"Logical worker agent id is required.\");\n\t\tconst agent = this.options.getLifecycle().getAgent(canonicalAgentId);\n\t\tif (!agent) return \"unknown\";\n\t\tthis.requireSessionPeer(canonicalAgentId, scope);\n\t\treturn this.activityForAgent(agent);\n\t}\n\n\treadWorkerAgentTranscript(\n\t\tagentId: string,\n\t\toptions: WorkerAgentTranscriptOptions = {},\n\t): ReturnType<WorkerAgentControlPort[\"readWorkerAgentTranscript\"]> {\n\t\tthis.requireControl();\n\t\tconst agent = this.requireControllableAgent(agentId, options);\n\t\tconst cursor = options.cursor ?? 0;\n\t\tconst maxMessages = options.maxMessages ?? 16;\n\t\tif (!Number.isSafeInteger(cursor) || cursor < 0) throw new TypeError(\"Worker transcript cursor is invalid.\");\n\t\tif (!Number.isSafeInteger(maxMessages) || maxMessages < 1 || maxMessages > MAX_WORKER_TRANSCRIPT_PAGE_MESSAGES) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`Worker transcript page size must be from 1 through ${MAX_WORKER_TRANSCRIPT_PAGE_MESSAGES} messages.`,\n\t\t\t);\n\t\t}\n\t\tconst page = this.conversations\n\t\t\t.open({\n\t\t\t\tagentDir: this.options.agentDir,\n\t\t\t\tresumeContext: agent.resumeContext,\n\t\t\t\texpectedLogicalAgentId: agent.agentId,\n\t\t\t})\n\t\t\t.getRawTranscriptPage({\n\t\t\t\tcursor,\n\t\t\t\tmaxMessages,\n\t\t\t\t...(options.maxBytes !== undefined ? { maxBytes: options.maxBytes } : {}),\n\t\t\t});\n\t\treturn {\n\t\t\tagentId: agent.agentId,\n\t\t\t...page,\n\t\t};\n\t}\n\n\tsendWorkerAgentMessage(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions: WorkerAgentMessageOptions = {},\n\t): { messageId: string; queued: true } {\n\t\tthis.requireControl();\n\t\tthis.rejectGenericReplyOptions(options);\n\t\tconst agent = this.requireSessionPeer(agentId, { callerAgentId: options.senderAgentId });\n\t\tthis.assertAgentAcceptsNewMessages(agent, options.idempotencyKey);\n\t\tconst queued = this.enqueuePeerMessage(agent, \"follow_up\", message, options);\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn { messageId: queued.messageId, queued: true };\n\t}\n\n\tbroadcastWorkerAgentMessage(\n\t\tagentIds: readonly string[],\n\t\tmessage: string,\n\t\toptions: WorkerAgentBroadcastOptions,\n\t): WorkerAgentBroadcastResult {\n\t\tthis.requireControl();\n\t\tconst canonicalAgentIds = this.canonicalAgentIdSet(agentIds, \"Worker broadcast\");\n\t\tconst recipients = canonicalAgentIds.map((agentId) => ({\n\t\t\tagentId,\n\t\t\tidempotencyKey: workerAgentBroadcastTargetIdempotencyKey(options.idempotencyKey, agentId),\n\t\t}));\n\t\tconst senderAgentId = options.senderAgentId ? this.requireKnownAgent(options.senderAgentId).agentId : undefined;\n\t\tlet created = false;\n\t\tconst results = recipients.map(({ agentId, idempotencyKey }) => {\n\t\t\ttry {\n\t\t\t\tconst target = this.requireSessionPeer(agentId, { callerAgentId: senderAgentId });\n\t\t\t\tthis.assertAgentAcceptsNewMessages(target, idempotencyKey);\n\t\t\t\tconst messageOptions = senderAgentId\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tsenderAgentId,\n\t\t\t\t\t\t\t...(options.threadId !== undefined ? { threadId: options.threadId } : {}),\n\t\t\t\t\t\t\t...(options.expectReply === true ? { expectReply: true } : {}),\n\t\t\t\t\t\t\tidempotencyKey,\n\t\t\t\t\t\t}\n\t\t\t\t\t: this.sessionRootMessageOptions({\n\t\t\t\t\t\t\t...(options.threadId !== undefined ? { threadId: options.threadId } : {}),\n\t\t\t\t\t\t\t...(options.expectReply === true ? { expectReply: true } : {}),\n\t\t\t\t\t\t\tidempotencyKey,\n\t\t\t\t\t\t});\n\t\t\t\tconst queued = this.enqueuePeerMessage(target, \"follow_up\", message, messageOptions);\n\t\t\t\tcreated ||= queued.status === \"retained\" && queued.created;\n\t\t\t\treturn {\n\t\t\t\t\tagentId,\n\t\t\t\t\taccepted: true as const,\n\t\t\t\t\tqueued: true as const,\n\t\t\t\t\treplayed: queued.status === \"completed_replay\" || !queued.created,\n\t\t\t\t\tmessageId: queued.messageId,\n\t\t\t\t};\n\t\t\t} catch (error) {\n\t\t\t\treturn {\n\t\t\t\t\tagentId,\n\t\t\t\t\taccepted: false as const,\n\t\t\t\t\terror: (error instanceof Error ? error.message : String(error)).slice(0, MAX_BROADCAST_ERROR_CHARS),\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t\tif (created) this.notifyStateChangedBestEffort();\n\t\treturn { results };\n\t}\n\n\tfollowUpWorkerAgent(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions: WorkerAgentMessageOptions = {},\n\t): { started: boolean; steering: boolean; messageId: string; record?: LaneRecord; skipReason?: string } {\n\t\tthis.requireControl();\n\t\tconst agent = this.requireControllableAgent(agentId, { callerAgentId: options.senderAgentId });\n\t\treturn this.followUpAcceptedAgent(agent, message, options);\n\t}\n\n\tsendSessionRootWorkerAgentMessage(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions: SessionRootWorkerAgentMessageOptions = {},\n\t): { messageId: string; queued: true } {\n\t\tthis.requireControl();\n\t\tconst agent = this.requireKnownAgent(agentId);\n\t\tthis.assertAgentAcceptsNewMessages(agent, options.idempotencyKey);\n\t\tconst queued = this.enqueuePeerMessage(agent, \"follow_up\", message, this.sessionRootMessageOptions(options));\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn { messageId: queued.messageId, queued: true };\n\t}\n\n\tfollowUpSessionRootWorkerAgent(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions: SessionRootWorkerAgentMessageOptions = {},\n\t): { started: boolean; steering: boolean; messageId: string; record?: LaneRecord; skipReason?: string } {\n\t\tthis.requireControl();\n\t\treturn this.followUpAcceptedAgent(\n\t\t\tthis.requireKnownAgent(agentId),\n\t\t\tmessage,\n\t\t\tthis.sessionRootMessageOptions(options),\n\t\t);\n\t}\n\n\treplyToWorkerAgentMessage(sourceAgentId: string, message: string, replyToMessageId: string): WorkerAgentReplyResult {\n\t\tthis.requireControl();\n\t\tconst source = this.requireKnownAgent(sourceAgentId);\n\t\tconst sourceMailbox = this.getMailbox(source.agentId);\n\t\tconst completedReply = sourceMailbox.resolveCompletedReply(replyToMessageId, message);\n\t\tconst activeAcknowledgementId = sourceMailbox.getReplyAcknowledgementId(replyToMessageId);\n\t\tif (\n\t\t\tcompletedReply &&\n\t\t\tactiveAcknowledgementId !== undefined &&\n\t\t\tactiveAcknowledgementId !== completedReply.replyMessageId\n\t\t) {\n\t\t\tthrow new Error(\"Worker reply acknowledgement identity conflicts with its durable source receipt.\");\n\t\t}\n\t\tif (completedReply && activeAcknowledgementId === undefined) {\n\t\t\tif (completedReply.requestSenderId === this.sessionRootAddress) {\n\t\t\t\treturn { destination: \"session_root\", messageId: completedReply.replyMessageId };\n\t\t\t}\n\t\t\tconst completedTarget = this.requireKnownAgent(completedReply.requestSenderId);\n\t\t\tthis.reconcileCompletedWorkerReplyAcknowledgement(\n\t\t\t\tsourceMailbox,\n\t\t\t\treplyToMessageId,\n\t\t\t\tcompletedTarget.agentId,\n\t\t\t\tcompletedReply.replyMessageId,\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tdestination: \"worker\",\n\t\t\t\tmessageId: completedReply.replyMessageId,\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tskipReason: \"worker_reply_already_accepted\",\n\t\t\t};\n\t\t}\n\t\tconst request = sourceMailbox.getMessage(replyToMessageId);\n\t\tif (!request || request.deliveredAt === undefined || request.expectReply !== true) {\n\t\t\tthrow new Error(\"Worker reply does not reference a delivered reply-expected message.\");\n\t\t}\n\t\tif (!request.senderAgentId) throw new Error(\"Worker reply request has no routable requester.\");\n\t\tif (request.senderAgentId === this.sessionRootAddress) {\n\t\t\treturn this.routeWorkerReplyToSessionRoot(source, sourceMailbox, request, message);\n\t\t}\n\t\tconst target = this.requireKnownAgent(request.senderAgentId);\n\t\tif (target.status === \"retired\" && activeAcknowledgementId === undefined) {\n\t\t\tthrow new Error(`Logical worker agent '${target.agentId}' is retired.`);\n\t\t}\n\t\treturn this.routeWorkerReplyToAgent(target, source.agentId, request, message);\n\t}\n\n\tlistSessionRootReplies(query: SessionRootReplyQuery = {}): SessionRootReply[] {\n\t\tthis.requireControl();\n\t\tthis.reconcileSessionRootSurface();\n\t\treturn this.sessionRootMailbox.pendingReplies(query);\n\t}\n\n\twaitForSessionRootReplies(options: SessionRootReplyWaitOptions = {}): Promise<SessionRootReplyWaitResult> {\n\t\tthis.requireControl();\n\t\tthis.reconcileSessionRootSurface();\n\t\treturn this.sessionRootMailbox.waitForReplies(options);\n\t}\n\n\tacknowledgeSessionRootReply(messageId: string, ackToken: string): boolean {\n\t\tthis.requireControl();\n\t\tthis.reconcileSessionRootSurface();\n\t\tconst acknowledged = this.sessionRootMailbox.acknowledge(messageId, ackToken);\n\t\tif (acknowledged) {\n\t\t\tthis.reconcileWorkerReplyOutboxesBestEffort();\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t}\n\t\treturn acknowledged;\n\t}\n\n\tprivate reconcileSessionRootSurface(): void {\n\t\tthis.reconcileSessionRootReplies();\n\t\tthis.reconcileWorkerReplyOutboxesBestEffort();\n\t}\n\n\tprivate followUpAcceptedAgent(\n\t\tagent: AgentBindingContract,\n\t\tmessage: string,\n\t\toptions: WorkerAgentMessageOptions,\n\t): { started: boolean; steering: boolean; messageId: string; record?: LaneRecord; skipReason?: string } {\n\t\tthis.rejectGenericReplyOptions(options);\n\t\tif (this.activityForAgent(agent) === \"active\") {\n\t\t\tconst queued = this.enqueuePeerMessage(agent, \"steer\", message, options, { kind: \"agent_turn\" });\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\tif (\n\t\t\t\tqueued.status === \"completed_replay\" ||\n\t\t\t\tqueued.message.deliveredAt !== undefined ||\n\t\t\t\tqueued.message.failedAt !== undefined\n\t\t\t) {\n\t\t\t\treturn {\n\t\t\t\t\tstarted: false,\n\t\t\t\t\tsteering: false,\n\t\t\t\t\tmessageId: queued.messageId,\n\t\t\t\t\tskipReason: \"worker_message_already_finalized\",\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn { started: false, steering: true, messageId: queued.messageId };\n\t\t}\n\t\tif (agent.status !== \"registered\") {\n\t\t\treturn { started: false, steering: false, messageId: \"\", skipReason: `agent_${agent.status}` };\n\t\t}\n\t\treturn this.startIdleAgentTask(agent, message, options);\n\t}\n\n\t/**\n\t * Atomically transition one idle persistent agent to a fresh task. There is no await between the\n\t * activity check and durable prepare, so competing model calls cannot turn the loser into steering.\n\t */\n\tstartWorkerAgentTask(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions: WorkerAgentTaskStartOptions = {},\n\t): { started: boolean; steering: false; messageId: string; record?: LaneRecord; skipReason?: string } {\n\t\tthis.requireControl();\n\t\tconst canonicalAgentId = agentId.trim();\n\t\tif (!canonicalAgentId) throw new Error(\"Logical worker agent id is required.\");\n\t\tconst candidate = this.options.getLifecycle().getAgent(canonicalAgentId);\n\t\tif (!candidate) return { started: false, steering: false, messageId: \"\", skipReason: \"unknown_agent\" };\n\t\tconst agent = this.requireControllableAgent(canonicalAgentId, options);\n\t\tconst dependsOnTaskIds = normalizeWorkerAgentDependencyTaskIds(options.dependsOnTaskIds);\n\t\tif (options.idempotencyKey !== undefined) {\n\t\t\tconst replay = this.replayWorkerAgentTask(agent, message, options.idempotencyKey, dependsOnTaskIds);\n\t\t\tif (replay) return replay;\n\t\t}\n\t\tconst activity = this.activityForAgent(agent);\n\t\tif (activity !== \"idle\") {\n\t\t\treturn { started: false, steering: false, messageId: \"\", skipReason: `worker_${activity}` };\n\t\t}\n\t\tif (agent.status !== \"registered\") {\n\t\t\treturn { started: false, steering: false, messageId: \"\", skipReason: `agent_${agent.status}` };\n\t\t}\n\t\treturn this.startIdleAgentTask(\n\t\t\tagent,\n\t\t\tmessage,\n\t\t\toptions.idempotencyKey === undefined ? {} : { idempotencyKey: options.idempotencyKey },\n\t\t\tdependsOnTaskIds,\n\t\t);\n\t}\n\n\tprivate replayWorkerAgentTask(\n\t\tagent: AgentBindingContract,\n\t\tmessage: string,\n\t\tidempotencyKey: string,\n\t\tdependsOnTaskIds: readonly string[],\n\t): { started: boolean; steering: false; messageId: string; record?: LaneRecord; skipReason?: string } | undefined {\n\t\tthis.assertIdempotencyTarget(agent.agentId, idempotencyKey);\n\t\tconst messageId = workerAgentMessageId(this.options.parentSessionId, idempotencyKey);\n\t\tconst mailbox = this.getMailbox(agent.agentId);\n\t\tconst correlatedAttempt = this.controlMessageAttemptById(agent.agentId, messageId);\n\t\tif (correlatedAttempt) {\n\t\t\tif (correlatedAttempt.dispatch.instructions !== message.trim()) {\n\t\t\t\tthrow new Error(\"Worker control idempotency identity conflicts with its durable dispatch.\");\n\t\t\t}\n\t\t\tthis.assertAttemptDependencyIdentity(correlatedAttempt, dependsOnTaskIds);\n\t\t\tconst record = this.options.getLifecycle().getRecord(correlatedAttempt.taskId);\n\t\t\tif (!record) {\n\t\t\t\treturn {\n\t\t\t\t\tstarted: false,\n\t\t\t\t\tsteering: false,\n\t\t\t\t\tmessageId,\n\t\t\t\t\tskipReason: \"orchestration_projection_missing\",\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn { started: true, steering: false, messageId, record };\n\t\t}\n\t\tif (!mailbox.getMessage(messageId)) {\n\t\t\treturn mailbox.hasControlReplayReceipt(messageId)\n\t\t\t\t? {\n\t\t\t\t\t\tstarted: false,\n\t\t\t\t\t\tsteering: false,\n\t\t\t\t\t\tmessageId,\n\t\t\t\t\t\tskipReason: \"worker_task_receipt_without_attempt\",\n\t\t\t\t\t}\n\t\t\t\t: undefined;\n\t\t}\n\t\tconst acceptance = mailbox.enqueueWithReceipt({\n\t\t\tkind: \"follow_up\",\n\t\t\tcontent: message,\n\t\t\tidempotencyKey,\n\t\t\ttask: {\n\t\t\t\tkind: \"agent_turn\",\n\t\t\t\t...(dependsOnTaskIds.length > 0 ? { dependsOnTaskIds } : {}),\n\t\t\t},\n\t\t});\n\t\tif (acceptance.status === \"completed_replay\") {\n\t\t\treturn {\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tmessageId,\n\t\t\t\tskipReason: \"worker_task_receipt_without_attempt\",\n\t\t\t};\n\t\t}\n\t\tconst accepted = acceptance.message;\n\t\tconst attempt = this.controlMessageAttempt(agent.agentId, accepted);\n\t\tif (attempt) {\n\t\t\tconst record = this.options.getLifecycle().getRecord(attempt.taskId);\n\t\t\tif (!record) {\n\t\t\t\treturn {\n\t\t\t\t\tstarted: false,\n\t\t\t\t\tsteering: false,\n\t\t\t\t\tmessageId,\n\t\t\t\t\tskipReason: \"orchestration_projection_missing\",\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Idempotent API replay returns the original accepted start even after that attempt became\n\t\t\t// terminal. The record carries its current projection; no second task or scheduler entry is made.\n\t\t\treturn { started: true, steering: false, messageId, record };\n\t\t}\n\t\tif (accepted.deliveredAt !== undefined) {\n\t\t\treturn {\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tmessageId,\n\t\t\t\tskipReason: \"worker_task_delivered_without_attempt\",\n\t\t\t};\n\t\t}\n\t\tconst reconciliation = this.reconcileTaskBearingMailbox(agent.agentId, messageId);\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn {\n\t\t\tstarted: reconciliation.started,\n\t\t\tsteering: false,\n\t\t\tmessageId,\n\t\t\t...(reconciliation.record ? { record: reconciliation.record } : {}),\n\t\t\t...(reconciliation.skipReason ? { skipReason: reconciliation.skipReason } : {}),\n\t\t};\n\t}\n\n\tprivate startIdleAgentTask(\n\t\tagent: AgentBindingContract,\n\t\tmessage: string,\n\t\toptions: WorkerAgentMessageOptions,\n\t\tdependsOnTaskIds: readonly string[] = [],\n\t): { started: boolean; steering: false; messageId: string; record?: LaneRecord; skipReason?: string } {\n\t\tif (!this.isAcceptedControlReplay(agent.agentId, options.idempotencyKey)) {\n\t\t\tconst headroomSkipReason = this.options.taskStartHeadroomSkipReason?.(agent);\n\t\t\tif (headroomSkipReason)\n\t\t\t\treturn { started: false, steering: false, messageId: \"\", skipReason: headroomSkipReason };\n\t\t\tconst skipReason = this.reusableTaskAdmissionSkipReason(agent.agentId);\n\t\t\tif (skipReason) return { started: false, steering: false, messageId: \"\", skipReason };\n\t\t}\n\t\tconst queued = this.enqueuePeerMessage(agent, \"follow_up\", message, options, {\n\t\t\tkind: \"agent_turn\",\n\t\t\t...(dependsOnTaskIds.length > 0 ? { dependsOnTaskIds } : {}),\n\t\t});\n\t\tif (queued.status === \"completed_replay\") {\n\t\t\treturn {\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tmessageId: queued.messageId,\n\t\t\t\tskipReason: \"worker_message_already_finalized\",\n\t\t\t};\n\t\t}\n\t\tconst reconciliation = this.reconcileTaskBearingMailbox(agent.agentId, queued.messageId);\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn {\n\t\t\tstarted: reconciliation.started,\n\t\t\tsteering: false,\n\t\t\tmessageId: queued.messageId,\n\t\t\t...(reconciliation.record ? { record: reconciliation.record } : {}),\n\t\t\t...(reconciliation.skipReason ? { skipReason: reconciliation.skipReason } : {}),\n\t\t};\n\t}\n\n\tprivate assertAttemptDependencyIdentity(attempt: AttemptRuntimeState, dependsOnTaskIds: readonly string[]): void {\n\t\tconst snapshot = this.options.getLifecycle().getTaskRuntimeSnapshot() as Partial<\n\t\t\tReturnType<WorkerLifecycle[\"getTaskRuntimeSnapshot\"]>\n\t\t>;\n\t\tconst durableDependencies = snapshot.tasks?.[attempt.taskId]?.task.dependsOn;\n\t\tif (!durableDependencies) {\n\t\t\tif (dependsOnTaskIds.length > 0) {\n\t\t\t\tthrow new Error(\"Worker control idempotency dependency projection is missing.\");\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\tdurableDependencies.length !== dependsOnTaskIds.length ||\n\t\t\tdurableDependencies.some((dependencyId, index) => dependencyId !== dependsOnTaskIds[index])\n\t\t) {\n\t\t\tthrow new Error(\"Worker control idempotency identity conflicts with its durable task dependencies.\");\n\t\t}\n\t}\n\n\tprivate sessionRootMessageOptions(options: SessionRootWorkerAgentMessageOptions): WorkerAgentMessageOptions {\n\t\treturn {\n\t\t\tsenderAgentId: this.sessionRootAddress,\n\t\t\t...(options.threadId !== undefined ? { threadId: options.threadId } : {}),\n\t\t\t...(options.expectReply === true ? { expectReply: true } : {}),\n\t\t\t...(options.idempotencyKey !== undefined ? { idempotencyKey: options.idempotencyKey } : {}),\n\t\t};\n\t}\n\n\tprivate rejectGenericReplyOptions(options: WorkerAgentMessageOptions): void {\n\t\tif (\"replyToMessageId\" in options) {\n\t\t\tthrow new Error(\"Worker replies must use the dedicated inferred-destination reply control.\");\n\t\t}\n\t}\n\n\tprivate assertAgentAcceptsNewMessages(agent: AgentBindingContract, idempotencyKey?: string): void {\n\t\tif (agent.status !== \"retired\") return;\n\t\tif (idempotencyKey !== undefined) {\n\t\t\tconst messageId = workerAgentMessageId(this.options.parentSessionId, idempotencyKey);\n\t\t\tconst mailbox = this.getMailbox(agent.agentId);\n\t\t\tif (mailbox.getMessage(messageId) || mailbox.hasControlReplayReceipt(messageId)) return;\n\t\t}\n\t\tthrow new Error(`Logical worker agent '${agent.agentId}' is retired.`);\n\t}\n\n\tprivate routeWorkerReplyToAgent(\n\t\ttarget: AgentBindingContract,\n\t\tsourceAgentId: string,\n\t\trequest: WorkerAgentMessage,\n\t\tmessage: string,\n\t): WorkerAgentReplyResult {\n\t\tconst activity = this.activityForAgent(target);\n\t\tconst idempotencyKey = `peer-reply:${sourceAgentId}:${request.messageId}`;\n\t\tthis.assertIdempotencyTarget(target.agentId, idempotencyKey);\n\t\tconst replyMessageId = workerAgentMessageId(this.options.parentSessionId, idempotencyKey);\n\t\tconst sourceMailbox = this.getMailbox(sourceAgentId);\n\t\tconst reservationAlreadyActive = sourceMailbox.getReplyAcknowledgementId(request.messageId) === replyMessageId;\n\t\tif (!sourceMailbox.beginReplyAcknowledgement(request.messageId, replyMessageId, message)) {\n\t\t\tthrow new Error(\"Worker reply source acknowledgement could not be acquired.\");\n\t\t}\n\t\tconst transcriptInput: MandatoryTranscriptControlInput = {\n\t\t\tidempotencyKey,\n\t\t\tcontent: message,\n\t\t\tsenderAgentId: sourceAgentId,\n\t\t\treplyToMessageId: request.messageId,\n\t\t\t...(request.threadId ? { threadId: request.threadId } : {}),\n\t\t\ttask: { kind: \"agent_turn\" },\n\t\t};\n\t\tconst transcriptReplay = this.reconcileMandatoryControlTranscript(target, transcriptInput, false);\n\t\tif (transcriptReplay.delivered) {\n\t\t\tif (\n\t\t\t\t!sourceMailbox.commitReplyAcknowledgement(request.messageId, replyMessageId) &&\n\t\t\t\tsourceMailbox.getReplyAcknowledgementId(request.messageId) !== undefined\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker reply source acknowledgement did not commit after transcript replay.\");\n\t\t\t}\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn {\n\t\t\t\tdestination: \"worker\",\n\t\t\t\tmessageId: replyMessageId,\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tskipReason: \"worker_reply_already_accepted\",\n\t\t\t};\n\t\t}\n\t\tif (target.status === \"retired\") {\n\t\t\tthis.deliverMandatoryControlToRetiredTranscript(target, transcriptInput);\n\t\t\tif (\n\t\t\t\t!sourceMailbox.commitReplyAcknowledgement(request.messageId, replyMessageId) &&\n\t\t\t\tsourceMailbox.getReplyAcknowledgementId(request.messageId) !== undefined\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker reply source acknowledgement did not commit after retired-target delivery.\");\n\t\t\t}\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn {\n\t\t\t\tdestination: \"worker\",\n\t\t\t\tmessageId: replyMessageId,\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tskipReason: \"worker_reply_retired_target_transcript_delivery\",\n\t\t\t};\n\t\t}\n\t\tconst targetMailbox = this.getMailbox(target.agentId);\n\t\tlet queued: QueuedPeerMessage;\n\t\ttry {\n\t\t\tqueued = targetMailbox.enqueueWithReceipt({\n\t\t\t\tkind: activity === \"active\" ? \"steer\" : \"follow_up\",\n\t\t\t\tcontent: message,\n\t\t\t\tsenderAgentId: sourceAgentId,\n\t\t\t\treplyToMessageId: request.messageId,\n\t\t\t\t...(request.threadId ? { threadId: request.threadId } : {}),\n\t\t\t\tidempotencyKey,\n\t\t\t\ttask: { kind: \"agent_turn\" },\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tif (!reservationAlreadyActive) {\n\t\t\t\tthis.rollbackReplyReservationAfterTargetRejection(sourceMailbox, request.messageId, replyMessageId, error);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\tif (queued.messageId !== replyMessageId) {\n\t\t\tthrow new Error(\"Worker reply target returned a divergent deterministic message identity.\");\n\t\t}\n\t\tif (queued.status === \"completed_replay\") {\n\t\t\tif (!targetMailbox.hasDeliveredControlReceipt(queued.messageId)) {\n\t\t\t\tthrow new Error(\"Worker reply target replay has no durable delivery evidence.\");\n\t\t\t}\n\t\t\tif (\n\t\t\t\t!sourceMailbox.commitReplyAcknowledgement(request.messageId, queued.messageId) &&\n\t\t\t\tsourceMailbox.getReplyAcknowledgementId(request.messageId) !== undefined\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker reply source acknowledgement did not commit after target replay.\");\n\t\t\t}\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn {\n\t\t\t\tdestination: \"worker\",\n\t\t\t\tmessageId: queued.messageId,\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tskipReason: \"worker_reply_already_accepted\",\n\t\t\t};\n\t\t}\n\t\tthis.beginWorkerReplyAcknowledgement(target, queued.message);\n\t\tif (queued.message.deliveredAt !== undefined) {\n\t\t\tif (\n\t\t\t\t!this.reconcileCompletedWorkerReplyAcknowledgement(\n\t\t\t\t\tsourceMailbox,\n\t\t\t\t\trequest.messageId,\n\t\t\t\t\ttarget.agentId,\n\t\t\t\t\tqueued.messageId,\n\t\t\t\t) &&\n\t\t\t\tsourceMailbox.getReplyAcknowledgementId(request.messageId) !== undefined\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker reply source acknowledgement did not commit after target delivery.\");\n\t\t\t}\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn {\n\t\t\t\tdestination: \"worker\",\n\t\t\t\tmessageId: queued.messageId,\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: false,\n\t\t\t\tskipReason: \"worker_reply_already_accepted\",\n\t\t\t};\n\t\t}\n\t\tif (activity === \"active\") {\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\tif (!queued.created) {\n\t\t\t\treturn {\n\t\t\t\t\tdestination: \"worker\",\n\t\t\t\t\tmessageId: queued.messageId,\n\t\t\t\t\tstarted: false,\n\t\t\t\t\tsteering: false,\n\t\t\t\t\tskipReason: \"worker_reply_already_accepted\",\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tdestination: \"worker\",\n\t\t\t\tmessageId: queued.messageId,\n\t\t\t\tstarted: false,\n\t\t\t\tsteering: true,\n\t\t\t};\n\t\t}\n\t\tconst reconciliation = this.reconcileTaskBearingMailbox(target.agentId, queued.messageId);\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn {\n\t\t\tdestination: \"worker\",\n\t\t\tmessageId: queued.messageId,\n\t\t\tstarted: reconciliation.started,\n\t\t\tsteering: false,\n\t\t\t...(reconciliation.record ? { record: reconciliation.record } : {}),\n\t\t\t...(reconciliation.skipReason ? { skipReason: reconciliation.skipReason } : {}),\n\t\t};\n\t}\n\n\tprivate routeWorkerReplyToSessionRoot(\n\t\tsource: AgentBindingContract,\n\t\tsourceMailbox: WorkerAgentMailbox,\n\t\trequest: WorkerAgentMessage,\n\t\tmessage: string,\n\t): WorkerAgentReplyResult {\n\t\tconst replyMessageId = sessionRootReplyMessageId(this.options.parentSessionId, source.agentId, request.messageId);\n\t\tconst reservationAlreadyActive = sourceMailbox.getReplyAcknowledgementId(request.messageId) === replyMessageId;\n\t\tconst replyInput = {\n\t\t\tsourceAgentId: source.agentId,\n\t\t\trequestMessageId: request.messageId,\n\t\t\t...(request.threadId ? { threadId: request.threadId } : {}),\n\t\t\tcontent: message,\n\t\t};\n\t\ttry {\n\t\t\tthis.sessionRootMailbox.assertReplyInput(replyInput);\n\t\t} catch (error) {\n\t\t\tif (reservationAlreadyActive) {\n\t\t\t\tthis.rollbackReplyReservationAfterTargetRejection(sourceMailbox, request.messageId, replyMessageId, error);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\tif (!sourceMailbox.beginReplyAcknowledgement(request.messageId, replyMessageId, message)) {\n\t\t\tthrow new Error(\"Session root reply source acknowledgement could not be acquired.\");\n\t\t}\n\t\tlet accepted: ReturnType<SessionRootMailbox[\"enqueueReply\"]>;\n\t\ttry {\n\t\t\taccepted = this.sessionRootMailbox.enqueueSourceOwnedReply(replyInput);\n\t\t} catch (error) {\n\t\t\tif (!reservationAlreadyActive) {\n\t\t\t\tthis.rollbackReplyReservationAfterTargetRejection(sourceMailbox, request.messageId, replyMessageId, error);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\tif (accepted.messageId !== replyMessageId) {\n\t\t\tthrow new Error(\"Session root reply target returned a divergent deterministic message identity.\");\n\t\t}\n\t\tif (accepted.status === \"completed_replay\") {\n\t\t\tif (\n\t\t\t\t!sourceMailbox.commitReplyAcknowledgement(request.messageId, accepted.messageId) &&\n\t\t\t\tsourceMailbox.getReplyAcknowledgementId(request.messageId) !== undefined\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Session root reply source acknowledgement did not commit after target replay.\");\n\t\t\t}\n\t\t\tthis.releaseSessionRootSourceReceiptBestEffort(accepted.messageId);\n\t\t} else {\n\t\t\tthis.reconcileSessionRootReply(accepted.reply);\n\t\t}\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn { destination: \"session_root\", messageId: accepted.messageId };\n\t}\n\n\tprivate rollbackReplyReservationAfterTargetRejection(\n\t\tsourceMailbox: WorkerAgentMailbox,\n\t\trequestMessageId: string,\n\t\treplyMessageId: string,\n\t\ttargetError: unknown,\n\t): never {\n\t\ttry {\n\t\t\tif (\n\t\t\t\t!sourceMailbox.rollbackReplyAcknowledgement(requestMessageId, replyMessageId) &&\n\t\t\t\tsourceMailbox.getReplyAcknowledgementId(requestMessageId) === replyMessageId\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker reply source reservation did not roll back after target rejection.\");\n\t\t\t}\n\t\t} catch (rollbackError) {\n\t\t\tthrow new AggregateError(\n\t\t\t\t[targetError, rollbackError],\n\t\t\t\t\"Worker reply target rejected after its source reservation could not be rolled back.\",\n\t\t\t);\n\t\t}\n\t\tthrow targetError;\n\t}\n\n\tprivate deliverMandatoryControlToRetiredTranscript(\n\t\ttarget: AgentBindingContract,\n\t\tinput: MandatoryTranscriptControlInput,\n\t): string {\n\t\tif (target.status !== \"retired\" || this.activityForAgent(target) === \"active\") {\n\t\t\tthrow new Error(\"Mandatory transcript fallback requires a terminal logical worker target.\");\n\t\t}\n\t\tconst delivery = this.reconcileMandatoryControlTranscript(target, input, true);\n\t\treturn delivery.messageId;\n\t}\n\n\tprivate reconcileMandatoryControlTranscript(\n\t\ttarget: AgentBindingContract,\n\t\tinput: MandatoryTranscriptControlInput,\n\t\tappendIfMissing: boolean,\n\t): { messageId: string; delivered: boolean } {\n\t\tconst messageId = workerAgentMessageId(this.options.parentSessionId, input.idempotencyKey);\n\t\treturn this.reconcileControlTranscript(\n\t\t\ttarget,\n\t\t\t{\n\t\t\t\tmessageId,\n\t\t\t\tkind: \"follow_up\",\n\t\t\t\tcontent: input.content,\n\t\t\t\tsenderAgentId: input.senderAgentId,\n\t\t\t\t...(input.threadId ? { threadId: input.threadId } : {}),\n\t\t\t\t...(input.replyToMessageId ? { replyToMessageId: input.replyToMessageId } : {}),\n\t\t\t\ttask: input.task,\n\t\t\t\tcreatedAt: new Date().toISOString(),\n\t\t\t},\n\t\t\tappendIfMissing,\n\t\t);\n\t}\n\n\tprivate reconcileControlTranscript(\n\t\ttarget: AgentBindingContract,\n\t\tmessage: WorkerAgentMessage,\n\t\tappendIfMissing: boolean,\n\t): { messageId: string; delivered: boolean } {\n\t\tconst messageId = message.messageId;\n\t\tif (!target.resumeContext.sessionFile) {\n\t\t\tif (appendIfMissing) {\n\t\t\t\tthrow new Error(\"Mandatory transcript fallback target has no durable session transcript.\");\n\t\t\t}\n\t\t\treturn { messageId, delivered: false };\n\t\t}\n\t\tconst projected = this.mailboxMessage(message);\n\t\tconst conversation = this.conversations.open({\n\t\t\tagentDir: this.options.agentDir,\n\t\t\tresumeContext: target.resumeContext,\n\t\t\texpectedLogicalAgentId: target.agentId,\n\t\t});\n\t\tif (typeof projected.content !== \"string\") {\n\t\t\tthrow new Error(\"Worker control transcript projection is not textual.\");\n\t\t}\n\t\tconst reconciliation = conversation.reconcileWorkerControlMessage(\n\t\t\t{ messageId, content: projected.content },\n\t\t\tprojected,\n\t\t\tappendIfMissing,\n\t\t);\n\t\treturn { messageId, delivered: reconciliation.delivered };\n\t}\n\n\treconcileSessionRootReplies(): void {\n\t\tlet replies: SessionRootReply[];\n\t\ttry {\n\t\t\treplies = this.sessionRootMailbox.retainedReplies();\n\t\t\tthis.sessionRootReconciliationFailures.delete(\"session-root-mailbox\");\n\t\t} catch (error) {\n\t\t\tthis.recordSessionRootReconciliationFailure(\n\t\t\t\t\"session-root-mailbox\",\n\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tfor (const reply of replies) this.reconcileSessionRootReply(reply);\n\t}\n\n\tprivate reconcileSessionRootReply(reply: SessionRootReply): void {\n\t\ttry {\n\t\t\tconst source = this.options.getLifecycle().getAgent(reply.sourceAgentId);\n\t\t\tif (!source) {\n\t\t\t\tif (reply.sourceReconciledAt) {\n\t\t\t\t\tthis.sessionRootReconciliationFailures.delete(reply.messageId);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthrow new Error(`Unknown logical worker agent '${reply.sourceAgentId}'.`);\n\t\t\t}\n\t\t\tconst sourceMailbox = this.getMailbox(source.agentId);\n\t\t\tconst request = sourceMailbox.getMessage(reply.requestMessageId);\n\t\t\tif (!request) {\n\t\t\t\tif (reply.sourceReconciledAt) {\n\t\t\t\t\tthis.releaseSessionRootSourceReceiptBestEffort(reply.messageId);\n\t\t\t\t\tthis.sessionRootReconciliationFailures.delete(reply.messageId);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthrow new Error(\"Session root reply source request is missing before reconciliation.\");\n\t\t\t}\n\t\t\tif (\n\t\t\t\trequest.deliveredAt === undefined ||\n\t\t\t\trequest.expectReply !== true ||\n\t\t\t\trequest.senderAgentId !== this.sessionRootAddress ||\n\t\t\t\trequest.threadId !== reply.threadId\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Session root reply source request conflicts with its durable target.\");\n\t\t\t}\n\t\t\tlet acknowledgementId = sourceMailbox.getReplyAcknowledgementId(request.messageId);\n\t\t\tif (acknowledgementId && acknowledgementId !== reply.messageId) {\n\t\t\t\tthrow new Error(\"Session root reply source request has a divergent acknowledgement marker.\");\n\t\t\t}\n\t\t\tif (request.repliedAt !== undefined && acknowledgementId === undefined) {\n\t\t\t\tif (!reply.sourceReconciledAt) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"Session root reply source was marked replied without its exact acknowledgement marker.\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthis.releaseSessionRootSourceReceiptBestEffort(reply.messageId);\n\t\t\t\tthis.sessionRootReconciliationFailures.delete(reply.messageId);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (request.repliedAt === undefined) {\n\t\t\t\tif (!sourceMailbox.beginReplyAcknowledgement(request.messageId, reply.messageId, reply.content)) {\n\t\t\t\t\tthrow new Error(\"Session root reply source acknowledgement could not be acquired.\");\n\t\t\t\t}\n\t\t\t\tacknowledgementId = reply.messageId;\n\t\t\t}\n\t\t\tif (!this.sessionRootMailbox.markSourceReconciled(reply.messageId)) {\n\t\t\t\tthrow new Error(\"Session root reply disappeared during source reconciliation.\");\n\t\t\t}\n\t\t\tif (acknowledgementId === reply.messageId) {\n\t\t\t\tif (!sourceMailbox.commitReplyAcknowledgement(request.messageId, reply.messageId)) {\n\t\t\t\t\tconst remaining = sourceMailbox.getReplyAcknowledgementId(request.messageId);\n\t\t\t\t\tif (remaining !== undefined) {\n\t\t\t\t\t\tthrow new Error(\"Session root reply source acknowledgement did not commit.\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.releaseSessionRootSourceReceiptBestEffort(reply.messageId);\n\t\t\tthis.sessionRootReconciliationFailures.delete(reply.messageId);\n\t\t} catch (error) {\n\t\t\tthis.recordSessionRootReconciliationFailure(\n\t\t\t\treply.messageId,\n\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate recordSessionRootReconciliationFailure(messageId: string, reason: string): void {\n\t\tif (this.sessionRootReconciliationFailures.get(messageId) === reason) return;\n\t\tif (\n\t\t\t!this.sessionRootReconciliationFailures.has(messageId) &&\n\t\t\tthis.sessionRootReconciliationFailures.size >= 128\n\t\t) {\n\t\t\tconst oldest = this.sessionRootReconciliationFailures.keys().next().value;\n\t\t\tif (oldest) this.sessionRootReconciliationFailures.delete(oldest);\n\t\t}\n\t\tthis.sessionRootReconciliationFailures.set(messageId, reason);\n\t\ttry {\n\t\t\tthis.options.warn?.(`Session root reply reconciliation failed for ${messageId}: ${reason}`);\n\t\t} catch {\n\t\t\t// Diagnostics are bounded observers; durable mailboxes remain authoritative.\n\t\t}\n\t}\n\n\tprivate releaseSessionRootSourceReceiptBestEffort(messageId: string): void {\n\t\ttry {\n\t\t\tthis.sessionRootMailbox.releaseSourceReplayReceipt(messageId);\n\t\t\tthis.sessionRootReconciliationFailures.delete(`receipt:${messageId}`);\n\t\t} catch (error) {\n\t\t\tthis.recordSessionRootReconciliationFailure(\n\t\t\t\t`receipt:${messageId}`,\n\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate notifyStateChangedBestEffort(): void {\n\t\ttry {\n\t\t\tthis.options.statusChanged();\n\t\t} catch {\n\t\t\t// Notification observers cannot redefine durable task acceptance.\n\t\t}\n\t\tthis.notifyStateListeners();\n\t}\n\n\tinterruptWorkerAgent(\n\t\tagentId: string,\n\t\tscope: WorkerAgentControlScope = {},\n\t): { interrupted: boolean; reason?: string } {\n\t\tconst { agent, attempt } = this.controlledAgentAttempt(agentId, scope);\n\t\tif (!attempt || (attempt.status !== \"running\" && attempt.status !== \"leased\")) {\n\t\t\treturn { interrupted: false, reason: \"agent_not_running\" };\n\t\t}\n\t\ttry {\n\t\t\tthis.options.getLifecycle().suspendAgent(attempt.taskId, agent.agentId, this.options.processOwnerId);\n\t\t\tthis.options.abortLane(attempt.taskId, \"agent_interrupted\");\n\t\t\tthis.signalStateChanged();\n\t\t\treturn { interrupted: true };\n\t\t} catch (error) {\n\t\t\treturn { interrupted: false, reason: error instanceof Error ? error.message : String(error) };\n\t\t}\n\t}\n\n\tresumeWorkerAgent(\n\t\tagentId: string,\n\t\tscope: WorkerAgentControlScope = {},\n\t): { started: boolean; record?: LaneRecord; skipReason?: string } {\n\t\tconst { attempt } = this.controlledAgentAttempt(agentId, scope);\n\t\tif (!attempt || attempt.status !== \"suspended\") return { started: false, skipReason: \"agent_not_suspended\" };\n\t\tconst record = this.options.getLifecycle().getRecord(attempt.taskId);\n\t\tif (!record) return { started: false, skipReason: \"orchestration_projection_missing\" };\n\t\ttry {\n\t\t\tconst request = this.options.recoveredRequest(attempt);\n\t\t\tthis.options.scheduler.enqueue(record, request, true, request.verificationOfTaskId !== undefined);\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tstarted: false,\n\t\t\t\trecord,\n\t\t\t\tskipReason: error instanceof Error ? error.message : String(error),\n\t\t\t};\n\t\t}\n\t\ttry {\n\t\t\tthis.options.scheduler.drain();\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tstarted: true,\n\t\t\t\trecord,\n\t\t\t\tskipReason: `worker_resume_recovery_pending:${error instanceof Error ? error.message : String(error)}`,\n\t\t\t};\n\t\t}\n\t\tthis.signalStateChanged();\n\t\treturn { started: true, record };\n\t}\n\n\tcancelWorkerAgent(\n\t\tagentId: string,\n\t\treasonCode = \"agent_cancelled\",\n\t\tscope: WorkerAgentControlScope = {},\n\t): LaneRecord | undefined {\n\t\tconst { attempt } = this.controlledAgentAttempt(agentId, scope);\n\t\tif (!attempt) return undefined;\n\t\tthis.options.abortLane(attempt.taskId, reasonCode);\n\t\tconst record = this.options.cancelLane(attempt.taskId, reasonCode);\n\t\tthis.signalStateChanged();\n\t\treturn record;\n\t}\n\n\tretireWorkerAgent(agentId: string, scope: WorkerAgentControlScope = {}): WorkerAgentRetireResult {\n\t\tthis.requireControl();\n\t\tlet target = this.requireControllableAgent(agentId, scope);\n\t\tif (target.status === \"retired\") {\n\t\t\treturn { agent: this.workerAgentView(target), retired: true, replayed: true };\n\t\t}\n\t\tconst activity = this.activityForAgent(target);\n\t\tif (activity !== \"idle\") {\n\t\t\tthrow new Error(`Logical worker agent '${target.agentId}' cannot retire while ${activity}.`);\n\t\t}\n\t\tconst mailbox = this.getMailbox(target.agentId);\n\t\tif (mailbox.pendingTaskBearing().length > 0) {\n\t\t\tthis.reconcileTaskBearingMailbox(target.agentId);\n\t\t\ttarget = this.requireControllableAgent(target.agentId, scope);\n\t\t}\n\t\tthis.reconcileWorkerReplyOutboxesBestEffort();\n\t\tconst pendingMessages = mailbox.pending();\n\t\tif (pendingMessages.length > 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`Logical worker agent '${target.agentId}' has ${pendingMessages.length} pending control message${pendingMessages.length === 1 ? \"\" : \"s\"}.`,\n\t\t\t);\n\t\t}\n\t\tconst unresolvedReplyCount = mailbox.awaitingReplies().length + mailbox.listReplyAcknowledgements().length;\n\t\tif (unresolvedReplyCount > 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`Logical worker agent '${target.agentId}' has ${unresolvedReplyCount} unresolved reply obligation${unresolvedReplyCount === 1 ? \"\" : \"s\"}.`,\n\t\t\t);\n\t\t}\n\t\tconst retired = this.options.getLifecycle().retireAgent(target.agentId);\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn { agent: this.workerAgentView(retired), retired: true, replayed: false };\n\t}\n\n\t/** Event-driven wait: durable projection plus one shared state notification, never output polling. */\n\twaitForWorkerAgent(\n\t\tagentId: string,\n\t\ttimeoutMs = 30_000,\n\t\tscope: WorkerAgentControlScope = {},\n\t): Promise<{ status: WorkerAgentActivity; timedOut: boolean }> {\n\t\treturn this.waitForWorkerAgents([agentId], \"all\", timeoutMs, scope).then((result) => ({\n\t\t\tstatus: result.statuses[0]?.status ?? \"unknown\",\n\t\t\ttimedOut: result.timedOut,\n\t\t}));\n\t}\n\n\t/** One event-driven wait set with one shared caller-capacity lease; never per-agent promise polling. */\n\twaitForWorkerAgents(\n\t\tagentIds: readonly string[],\n\t\tmode: WorkerAgentWaitMode,\n\t\ttimeoutMs = 30_000,\n\t\tscope: WorkerAgentControlScope = {},\n\t): ReturnType<WorkerAgentControlPort[\"waitForWorkerAgents\"]> {\n\t\tthis.requireControl();\n\t\tif (mode !== \"any\" && mode !== \"all\") throw new TypeError(\"Worker wait mode must be 'any' or 'all'.\");\n\t\tconst canonicalAgentIds = this.canonicalAgentIdSet(agentIds, \"Worker wait\");\n\t\tconst baselineSnapshot = this.options.getLifecycle().getTaskRuntimeSnapshot();\n\t\tlet callerAgentId: string | undefined;\n\t\tif (scope.callerAgentId) {\n\t\t\tcallerAgentId = scope.callerAgentId.trim();\n\t\t\tif (!callerAgentId || !baselineSnapshot.agents[callerAgentId]) {\n\t\t\t\tthrow new Error(`Unknown logical worker agent '${callerAgentId}'.`);\n\t\t\t}\n\t\t}\n\t\tconst boundedTimeoutMs = Number.isFinite(timeoutMs)\n\t\t\t? Math.max(1, Math.min(Math.floor(timeoutMs), 300_000))\n\t\t\t: 30_000;\n\t\tconst statusesFromSnapshot = (snapshot: TaskRuntimeProjection) => {\n\t\t\tconst latestAttempts = this.latestAttemptsByAgent(snapshot);\n\t\t\treturn canonicalAgentIds.map((agentId) => {\n\t\t\t\tconst agent = snapshot.agents[agentId];\n\t\t\t\treturn {\n\t\t\t\t\tagentId,\n\t\t\t\t\tstatus: agent\n\t\t\t\t\t\t? this.projectAgentActivity(agent, latestAttempts.get(agent.agentId))\n\t\t\t\t\t\t: (\"unknown\" as const),\n\t\t\t\t};\n\t\t\t});\n\t\t};\n\t\tconst currentStatuses = () => statusesFromSnapshot(this.options.getLifecycle().getTaskRuntimeSnapshot());\n\t\tconst baselineStatuses = statusesFromSnapshot(baselineSnapshot);\n\t\tconst baselineByAgentId = new Map(baselineStatuses.map(({ agentId, status }) => [agentId, status]));\n\t\tconst updatedAgentIds = new Set<string>();\n\t\tconst recordUpdates = (statuses: typeof baselineStatuses) => {\n\t\t\tfor (const { agentId, status } of statuses) {\n\t\t\t\tif (baselineByAgentId.get(agentId) !== status) updatedAgentIds.add(agentId);\n\t\t\t}\n\t\t};\n\t\tconst waitSatisfied = (statuses: typeof baselineStatuses) => {\n\t\t\treturn mode === \"any\"\n\t\t\t\t? statuses.some(({ status }) => status !== \"active\")\n\t\t\t\t: statuses.every(({ status }) => status !== \"active\");\n\t\t};\n\t\tconst result = (statuses: typeof baselineStatuses, timedOut: boolean) => ({\n\t\t\tstatuses,\n\t\t\tupdatedAgentIds: canonicalAgentIds.filter((agentId) => updatedAgentIds.has(agentId)),\n\t\t\ttimedOut,\n\t\t});\n\t\tif (waitSatisfied(baselineStatuses)) return Promise.resolve(result(baselineStatuses, false));\n\t\tif (callerAgentId) {\n\t\t\tconst activeAgentIds = new Set(\n\t\t\t\tbaselineStatuses.filter(({ status }) => status === \"active\").map(({ agentId }) => agentId),\n\t\t\t);\n\t\t\tif (activeAgentIds.has(callerAgentId)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Worker wait would deadlock: logical worker '${callerAgentId}' cannot wait for itself. Finish the caller task instead.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet settled = false;\n\t\t\tlet completionTimedOut: boolean | undefined;\n\t\t\tlet failure: unknown;\n\t\t\tlet hasFailure = false;\n\t\t\tlet yieldInitialized = callerAgentId === undefined;\n\t\t\tlet restoreYield: (() => boolean | undefined) | undefined;\n\t\t\tlet unsubscribeState = (): void => undefined;\n\t\t\tlet timeout: ReturnType<typeof setTimeout> | undefined;\n\t\t\t// A blocked restore (another lane still holds the caller's write reservation) is a\n\t\t\t// live-lock, not a terminal failure or success. subscribeStateChanges is not that\n\t\t\t// wakeup — reservation release is. subscribeReservationAvailability is the event;\n\t\t\t// restoreDeadlineTimer is only the watchdog if that event never arrives.\n\t\t\tlet unsubscribeReservation = (): void => undefined;\n\t\t\tlet restoreDeadlineTimer: ReturnType<typeof setTimeout> | undefined;\n\t\t\tlet restoreRetryDeadline: number | undefined;\n\t\t\tconst cleanup = () => {\n\t\t\t\tunsubscribeState();\n\t\t\t\tunsubscribeReservation();\n\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\tif (restoreDeadlineTimer) clearTimeout(restoreDeadlineTimer);\n\t\t\t};\n\t\t\tconst restoreCaller = (): boolean => {\n\t\t\t\tif (!restoreYield) return true;\n\t\t\t\tconst restored = restoreYield();\n\t\t\t\tif (restored === false) return false;\n\t\t\t\trestoreYield = undefined;\n\t\t\t\treturn true;\n\t\t\t};\n\t\t\tconst settle = () => {\n\t\t\t\tif (settled || !yieldInitialized) return;\n\t\t\t\tconst statuses = currentStatuses();\n\t\t\t\trecordUpdates(statuses);\n\t\t\t\tif (!hasFailure && completionTimedOut === undefined) {\n\t\t\t\t\tif (!waitSatisfied(statuses)) return;\n\t\t\t\t\tcompletionTimedOut = false;\n\t\t\t\t\tif (timeout) {\n\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t\ttimeout = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tif (!restoreCaller()) {\n\t\t\t\t\t\trestoreRetryDeadline ??= Date.now() + WORKER_WAIT_RESTORE_MAX_MS;\n\t\t\t\t\t\tconst remainingMs = restoreRetryDeadline - Date.now();\n\t\t\t\t\t\tif (remainingMs <= 0) {\n\t\t\t\t\t\t\tfailure = new Error(\n\t\t\t\t\t\t\t\t\"Worker wait completed but could not restore the caller's write reservation within the retry bound; another lane continues to hold it.\",\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\thasFailure = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!restoreDeadlineTimer) {\n\t\t\t\t\t\t\t\trestoreDeadlineTimer = setTimeout(settle, remainingMs);\n\t\t\t\t\t\t\t\tif (typeof restoreDeadlineTimer === \"object\" && \"unref\" in restoreDeadlineTimer) {\n\t\t\t\t\t\t\t\t\trestoreDeadlineTimer.unref();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfailure = error;\n\t\t\t\t\thasFailure = true;\n\t\t\t\t}\n\t\t\t\tsettled = true;\n\t\t\t\tcleanup();\n\t\t\t\tif (hasFailure) reject(failure);\n\t\t\t\telse resolve(result(statuses, completionTimedOut ?? false));\n\t\t\t};\n\t\t\tunsubscribeState = this.subscribeStateChanges(settle);\n\t\t\tif (this.options.subscribeReservationAvailability) {\n\t\t\t\tunsubscribeReservation = this.options.subscribeReservationAvailability(settle);\n\t\t\t}\n\t\t\ttimeout = setTimeout(() => {\n\t\t\t\tif (settled) return;\n\t\t\t\ttimeout = undefined;\n\t\t\t\tif (completionTimedOut === undefined) completionTimedOut = true;\n\t\t\t\tsettle();\n\t\t\t}, boundedTimeoutMs);\n\t\t\tif (typeof timeout === \"object\" && \"unref\" in timeout) timeout.unref();\n\t\t\ttry {\n\t\t\t\tlet yielded = false;\n\t\t\t\tif (callerAgentId && this.options.yieldCallerForWait) {\n\t\t\t\t\trestoreYield = this.options.yieldCallerForWait(callerAgentId);\n\t\t\t\t\tyielded = restoreYield !== undefined;\n\t\t\t\t}\n\t\t\t\tif (!yielded && callerAgentId) {\n\t\t\t\t\tconst statuses = currentStatuses();\n\t\t\t\t\tconst activeAgentIds = new Set(\n\t\t\t\t\t\tstatuses.filter(({ status }) => status === \"active\").map(({ agentId }) => agentId),\n\t\t\t\t\t);\n\t\t\t\t\tconst blockedAgentIdSet = new Set(\n\t\t\t\t\t\tthis.options.waitBlockedByCaller?.(callerAgentId, canonicalAgentIds) ?? [],\n\t\t\t\t\t);\n\t\t\t\t\tconst blockedAgentIds = canonicalAgentIds.filter(\n\t\t\t\t\t\t(agentId) => activeAgentIds.has(agentId) && blockedAgentIdSet.has(agentId),\n\t\t\t\t\t);\n\t\t\t\t\tif (blockedAgentIds.length > 0) {\n\t\t\t\t\t\thasFailure = true;\n\t\t\t\t\t\tfailure = new Error(\n\t\t\t\t\t\t\t`Worker wait would deadlock: ${blockedAgentIds.join(\", \")} ${blockedAgentIds.length === 1 ? \"is\" : \"are\"} blocked by the caller's write reservation.`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tyieldInitialized = true;\n\t\t\t} catch (error) {\n\t\t\t\tyieldInitialized = true;\n\t\t\t\thasFailure = true;\n\t\t\t\tfailure = error;\n\t\t\t}\n\t\t\tsettle();\n\t\t});\n\t}\n\n\t/** Read mailbox items at a safe boundary and reconcile the narrow append-before-ack crash window. */\n\tmailboxMessagesForConversation(\n\t\tagentId: string,\n\t\tconversation: WorkerConversation,\n\t\tincludeFollowUp: boolean,\n\t): AgentMessage[] {\n\t\tconst mailbox = this.getMailbox(agentId);\n\t\tconst pending = mailbox.pending();\n\t\tif (pending.length === 0) return [];\n\t\tconst delivered = conversation.findDeliveredWorkerControlMessageIds(\n\t\t\tpending.map((message) => {\n\t\t\t\tconst projected = this.mailboxMessage(message);\n\t\t\t\tif (typeof projected.content !== \"string\") {\n\t\t\t\t\tthrow new Error(\"Worker control transcript projection is not textual.\");\n\t\t\t\t}\n\t\t\t\treturn { messageId: message.messageId, content: projected.content };\n\t\t\t}),\n\t\t);\n\t\tfor (const messageId of delivered) this.acknowledgeDeliveredMailboxMessage(agentId, messageId);\n\t\treturn mailbox\n\t\t\t.pending()\n\t\t\t.filter((message) => message.kind === \"steer\" || includeFollowUp)\n\t\t\t.map((message) => this.mailboxMessage(message));\n\t}\n\n\t/** Acknowledge only after the exact child transcript message has been durably appended. */\n\tacknowledgeMailboxMessage(agentId: string, message: { role: string; content: unknown }): void {\n\t\tif (message.role !== \"user\" || typeof message.content !== \"string\") return;\n\t\tconst messageId = /^\\[Worker control (worker-message-[^\\]\\s]+)(?: [^\\]]+)?\\]\\n/.exec(message.content)?.[1];\n\t\tif (messageId) this.acknowledgeDeliveredMailboxMessage(agentId, messageId);\n\t}\n\n\t/** Called by controller-owned execution transitions after lifecycle state changed. */\n\tsignalStateChanged(): void {\n\t\tthis.reconcileTaskBearingMailboxTurns();\n\t\tthis.notifyStateListeners();\n\t}\n\n\t/** Restart/idle boundary: adopt or schedule every oldest pending executable mailbox intent. */\n\treconcileTaskBearingMailboxTurns(): void {\n\t\tconst agents = this.replyReconciliationAgents();\n\t\tthis.reconcileWorkerReplyOutboxes(agents);\n\t\tfor (const agent of agents) this.reconcileTaskBearingMailbox(agent.agentId);\n\t}\n\n\tprivate replyReconciliationAgents(): AgentBindingContract[] {\n\t\treturn Object.values(this.options.getLifecycle().getTaskRuntimeSnapshot().agents).sort(\n\t\t\t(left, right) => left.createdAt.localeCompare(right.createdAt) || left.agentId.localeCompare(right.agentId),\n\t\t);\n\t}\n\n\tprivate reconcileWorkerReplyOutboxes(agents: readonly AgentBindingContract[]): void {\n\t\tfor (const agent of agents) this.reconcileWorkerReplyAcknowledgements(agent);\n\t}\n\n\tprivate reconcileWorkerReplyOutboxesBestEffort(): void {\n\t\ttry {\n\t\t\tthis.reconcileWorkerReplyOutboxes(this.replyReconciliationAgents());\n\t\t\tthis.workerReplyReconciliationFailures.delete(\"worker-reply-outbox-snapshot\");\n\t\t} catch (error) {\n\t\t\tthis.recordWorkerReplyReconciliationFailure(\n\t\t\t\t\"worker-reply-outbox-snapshot\",\n\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate reconcileWorkerReplyAcknowledgements(source: AgentBindingContract): void {\n\t\tconst sourceMailbox = this.getMailbox(source.agentId);\n\t\tlet acknowledgements: ReturnType<WorkerAgentMailbox[\"listReplyAcknowledgements\"]>;\n\t\ttry {\n\t\t\tacknowledgements = sourceMailbox.listReplyAcknowledgements();\n\t\t\tthis.workerReplyReconciliationFailures.delete(`source:${source.agentId}`);\n\t\t} catch (error) {\n\t\t\tthis.recordWorkerReplyReconciliationFailure(\n\t\t\t\t`source:${source.agentId}`,\n\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tfor (const acknowledgement of acknowledgements) {\n\t\t\tconst failureKey = `reply:${source.agentId}:${acknowledgement.messageId}`;\n\t\t\ttry {\n\t\t\t\tconst request = sourceMailbox.getMessage(acknowledgement.messageId);\n\t\t\t\tif (!request?.senderAgentId) {\n\t\t\t\t\tthrow new Error(\"Worker reply acknowledgement source request is missing routing metadata.\");\n\t\t\t\t}\n\t\t\t\tif (request.senderAgentId === this.sessionRootAddress) {\n\t\t\t\t\tthis.routeWorkerReplyToSessionRoot(source, sourceMailbox, request, acknowledgement.replyContent);\n\t\t\t\t\tthis.workerReplyReconciliationFailures.delete(failureKey);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst target = this.requireKnownAgent(request.senderAgentId);\n\t\t\t\tthis.routeWorkerReplyToAgent(target, source.agentId, request, acknowledgement.replyContent);\n\t\t\t\tthis.workerReplyReconciliationFailures.delete(failureKey);\n\t\t\t} catch (error) {\n\t\t\t\tthis.recordWorkerReplyReconciliationFailure(\n\t\t\t\t\tfailureKey,\n\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate recordWorkerReplyReconciliationFailure(failureKey: string, reason: string): void {\n\t\tif (this.workerReplyReconciliationFailures.get(failureKey) === reason) return;\n\t\tif (\n\t\t\t!this.workerReplyReconciliationFailures.has(failureKey) &&\n\t\t\tthis.workerReplyReconciliationFailures.size >= 128\n\t\t) {\n\t\t\tconst oldest = this.workerReplyReconciliationFailures.keys().next().value;\n\t\t\tif (oldest) this.workerReplyReconciliationFailures.delete(oldest);\n\t\t}\n\t\tthis.workerReplyReconciliationFailures.set(failureKey, reason);\n\t\ttry {\n\t\t\tthis.options.warn?.(`Worker reply acknowledgement recovery failed for ${failureKey}: ${reason}`);\n\t\t} catch {\n\t\t\t// Diagnostics are bounded observers; durable acknowledgement evidence remains authoritative.\n\t\t}\n\t}\n\n\tprivate reconcileCompletedWorkerReplyAcknowledgement(\n\t\tsourceMailbox: WorkerAgentMailbox,\n\t\trequestMessageId: string,\n\t\ttargetAgentId: string,\n\t\treplyMessageId: string,\n\t): boolean {\n\t\tif (sourceMailbox.getReplyAcknowledgementId(requestMessageId) !== replyMessageId) return false;\n\t\tif (!this.getMailbox(targetAgentId).hasDeliveredControlReceipt(replyMessageId)) return false;\n\t\treturn sourceMailbox.commitReplyAcknowledgement(requestMessageId, replyMessageId);\n\t}\n\n\tprivate notifyStateListeners(): void {\n\t\tfor (const listener of this.stateListeners) {\n\t\t\ttry {\n\t\t\t\tlistener();\n\t\t\t} catch {\n\t\t\t\t// State listeners are advisory; one observer cannot redefine or hide a durable mutation.\n\t\t\t}\n\t\t}\n\t}\n\n\t/** Route a terminal child edge to its owning parent without injecting into an active model turn. */\n\tdeliverWorkerTerminalHandoff(args: {\n\t\tparentAgentId: string;\n\t\tchildAgentId: string;\n\t\tterminalAttemptId: string;\n\t\trecord: LaneRecord;\n\t}): { messageId: string; started: boolean; accepted: boolean; skipReason?: string } {\n\t\tconst parent = this.requireKnownAgent(args.parentAgentId);\n\t\tconst latest = this.latestAgentAttempt(parent);\n\t\tconst active = latest?.status === \"queued\" || latest?.status === \"leased\" || latest?.status === \"running\";\n\t\tconst snapshot = this.options.getWorkerClaimSnapshot?.(args.record.laneId);\n\t\tconst outputArtifact = workerTerminalOutputArtifact(this.options.getWorkerResult?.(args.record.laneId));\n\t\tconst content = buildWorkerTerminalHandoffContent({\n\t\t\t...args,\n\t\t\t...(outputArtifact ? { outputArtifact } : {}),\n\t\t\t...(snapshot?.claim\n\t\t\t\t? {\n\t\t\t\t\t\tclaim: {\n\t\t\t\t\t\t\tsummary: snapshot.claim.summary,\n\t\t\t\t\t\t\tstatus: snapshot.claim.status,\n\t\t\t\t\t\t\tchangedFiles: snapshot.claim.changedFiles,\n\t\t\t\t\t\t\tblockers: snapshot.claim.blockers,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t});\n\t\tconst idempotencyKey = `terminal-handoff:${args.terminalAttemptId}`;\n\t\tconst transcriptInput: MandatoryTranscriptControlInput = {\n\t\t\tidempotencyKey,\n\t\t\tcontent,\n\t\t\tsenderAgentId: args.childAgentId,\n\t\t\ttask: { kind: \"terminal_handoff\", sourceAttemptId: args.terminalAttemptId },\n\t\t};\n\t\tthis.assertIdempotencyTarget(parent.agentId, idempotencyKey);\n\t\tconst transcriptReplay = this.reconcileMandatoryControlTranscript(parent, transcriptInput, false);\n\t\tif (transcriptReplay.delivered) {\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn { messageId: transcriptReplay.messageId, started: false, accepted: true };\n\t\t}\n\t\tif (parent.status === \"retired\") {\n\t\t\tconst messageId = this.deliverMandatoryControlToRetiredTranscript(parent, transcriptInput);\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn {\n\t\t\t\tmessageId,\n\t\t\t\tstarted: false,\n\t\t\t\taccepted: true,\n\t\t\t\tskipReason: \"terminal_handoff_retired_target_transcript_delivery\",\n\t\t\t};\n\t\t}\n\t\tconst queued = this.getMailbox(parent.agentId).enqueueWithReceipt({\n\t\t\tkind: active ? \"steer\" : \"follow_up\",\n\t\t\tcontent,\n\t\t\tsenderAgentId: args.childAgentId,\n\t\t\tidempotencyKey,\n\t\t\ttask: { kind: \"terminal_handoff\", sourceAttemptId: args.terminalAttemptId },\n\t\t});\n\t\tif (queued.status === \"completed_replay\") {\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn { messageId: queued.messageId, started: false, accepted: true };\n\t\t}\n\t\tif (queued.message.deliveredAt !== undefined) {\n\t\t\tthis.notifyStateChangedBestEffort();\n\t\t\treturn { messageId: queued.messageId, started: false, accepted: true };\n\t\t}\n\t\tconst reconciliation = this.reconcileTaskBearingMailbox(parent.agentId, queued.messageId);\n\t\tthis.notifyStateChangedBestEffort();\n\t\treturn {\n\t\t\tmessageId: queued.messageId,\n\t\t\tstarted: reconciliation.started,\n\t\t\taccepted: true,\n\t\t\t...(reconciliation.skipReason ? { skipReason: reconciliation.skipReason } : {}),\n\t\t};\n\t}\n\n\tprivate reconcileTaskBearingMailbox(agentId: string, expectedMessageId?: string): TaskBearingReconciliation {\n\t\tif (this.reconcilingTaskBearingAgentIds.has(agentId)) {\n\t\t\treturn { started: false, skipReason: \"worker_task_reconciliation_in_progress\" };\n\t\t}\n\t\tthis.reconcilingTaskBearingAgentIds.add(agentId);\n\t\ttry {\n\t\t\tconst agent = this.options.getLifecycle().getAgent(agentId);\n\t\t\tif (!agent) return { started: false, skipReason: \"unknown_agent\" };\n\t\t\tconst mailbox = this.getMailbox(agentId);\n\t\t\tfor (let settlement = 0; settlement < 64; settlement++) {\n\t\t\t\tconst message = mailbox.pendingTaskBearing()[0];\n\t\t\t\tif (!message) return { started: false };\n\t\t\t\tif (this.reconcileTaskBearingTranscriptDelivery(agent, message)) {\n\t\t\t\t\tif (expectedMessageId === message.messageId) {\n\t\t\t\t\t\treturn { started: false, skipReason: \"worker_control_transcript_delivery_reconciled\" };\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tthis.beginWorkerReplyAcknowledgement(agent, message);\n\t\t\t\tconst correlated = this.controlMessageAttempt(agent.agentId, message);\n\t\t\t\tif (correlated) {\n\t\t\t\t\tconst scheduled = this.scheduleCorrelatedTaskBearingAttempt(correlated);\n\t\t\t\t\tif (scheduled.skipReason?.startsWith(\"worker_task_terminal_\")) {\n\t\t\t\t\t\tconst settled = this.settleTerminalTaskBearingMessage(\n\t\t\t\t\t\t\tagent,\n\t\t\t\t\t\t\tmailbox,\n\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\tscheduled,\n\t\t\t\t\t\t\texpectedMessageId,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (settled) return settled;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (expectedMessageId && message.messageId !== expectedMessageId) {\n\t\t\t\t\t\treturn { started: false, skipReason: \"worker_task_waiting_for_older_message\" };\n\t\t\t\t\t}\n\t\t\t\t\treturn scheduled;\n\t\t\t\t}\n\t\t\t\tif (expectedMessageId && message.messageId !== expectedMessageId) {\n\t\t\t\t\treturn { started: false, skipReason: \"worker_task_waiting_for_older_message\" };\n\t\t\t\t}\n\t\t\t\tconst activity = this.activityForAgent(agent);\n\t\t\t\tif (activity !== \"idle\") return { started: false, skipReason: `worker_${activity}` };\n\t\t\t\tif (agent.status !== \"registered\") {\n\t\t\t\t\tconst settled = this.settleTerminalTaskBearingMessage(\n\t\t\t\t\t\tagent,\n\t\t\t\t\t\tmailbox,\n\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t{ started: false, skipReason: `agent_${agent.status}` },\n\t\t\t\t\t\texpectedMessageId,\n\t\t\t\t\t);\n\t\t\t\t\tif (settled) return settled;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst reuseSkipReason = this.reusableTaskAdmissionSkipReason(agent.agentId);\n\t\t\t\tif (reuseSkipReason) {\n\t\t\t\t\tthis.reconcileControlTranscript(agent, message, true);\n\t\t\t\t\tthis.acknowledgeDeliveredMailboxMessage(agent.agentId, message.messageId);\n\t\t\t\t\tconst settlement = {\n\t\t\t\t\t\tstarted: false,\n\t\t\t\t\t\tskipReason: `${reuseSkipReason}:transcript_fallback_delivered`,\n\t\t\t\t\t};\n\t\t\t\t\tif (expectedMessageId === message.messageId) return settlement;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tthis.enableAttemptAccountingForNextTask(agent);\n\t\t\t\t\tconst prepared = this.options.getLifecycle().prepareAgentTurn({\n\t\t\t\t\t\tagentId: agent.agentId,\n\t\t\t\t\t\tinstructions: message.content,\n\t\t\t\t\t\tcontrolMessageId: message.messageId,\n\t\t\t\t\t\t...(message.task?.kind === \"agent_turn\" && message.task.dependsOnTaskIds\n\t\t\t\t\t\t\t? { dependsOnTaskIds: message.task.dependsOnTaskIds }\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t});\n\t\t\t\t\treturn this.scheduleTaskBearingAttempt(prepared.record, prepared.attempt);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst recovered = this.controlMessageAttempt(agent.agentId, message);\n\t\t\t\t\tif (recovered) {\n\t\t\t\t\t\tconst scheduled = this.scheduleCorrelatedTaskBearingAttempt(recovered);\n\t\t\t\t\t\tif (scheduled.skipReason?.startsWith(\"worker_task_terminal_\")) {\n\t\t\t\t\t\t\tconst settled = this.settleTerminalTaskBearingMessage(\n\t\t\t\t\t\t\t\tagent,\n\t\t\t\t\t\t\t\tmailbox,\n\t\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\t\tscheduled,\n\t\t\t\t\t\t\t\texpectedMessageId,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (settled) return settled;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...scheduled,\n\t\t\t\t\t\t\t...(scheduled.skipReason\n\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t: { skipReason: \"worker_task_recovered_after_prepare_interruption\" }),\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn { started: false, skipReason: error instanceof Error ? error.message : String(error) };\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.scheduleTaskBearingReconciliationContinuation(agentId);\n\t\t\treturn { started: false, skipReason: \"worker_task_reconciliation_bound_reached\" };\n\t\t} catch (error) {\n\t\t\tconst reason = error instanceof Error ? error.message : String(error);\n\t\t\ttry {\n\t\t\t\tthis.options.warn?.(`Worker task-bearing mailbox reconciliation failed for ${agentId}: ${reason}`);\n\t\t\t} catch {\n\t\t\t\t// Diagnostics are observers; the pending mailbox remains the recovery source of truth.\n\t\t\t}\n\t\t\treturn { started: false, skipReason: reason };\n\t\t} finally {\n\t\t\tthis.reconcilingTaskBearingAgentIds.delete(agentId);\n\t\t}\n\t}\n\n\tprivate scheduleTaskBearingReconciliationContinuation(agentId: string): void {\n\t\tif (this.taskBearingContinuationAgentIds.has(agentId)) return;\n\t\tthis.taskBearingContinuationAgentIds.add(agentId);\n\t\tqueueMicrotask(() => {\n\t\t\tthis.taskBearingContinuationAgentIds.delete(agentId);\n\t\t\tthis.reconcileTaskBearingMailbox(agentId);\n\t\t});\n\t}\n\n\tprivate reconcileTaskBearingTranscriptDelivery(target: AgentBindingContract, message: WorkerAgentMessage): boolean {\n\t\tif (!this.reconcileControlTranscript(target, message, false).delivered) return false;\n\t\tthis.acknowledgeDeliveredMailboxMessage(target.agentId, message.messageId);\n\t\treturn true;\n\t}\n\n\tprivate settleTerminalTaskBearingMessage(\n\t\tagent: AgentBindingContract,\n\t\tmailbox: WorkerAgentMailbox,\n\t\tmessage: WorkerAgentMessage,\n\t\tscheduled: TaskBearingReconciliation,\n\t\texpectedMessageId?: string,\n\t): TaskBearingReconciliation | undefined {\n\t\tconst returnSettlement = expectedMessageId === message.messageId;\n\t\tif (scheduled.skipReason && mailbox.deadLetterOrdinaryTask(message.messageId, scheduled.skipReason)) {\n\t\t\treturn returnSettlement ? scheduled : undefined;\n\t\t}\n\t\tconst retained = mailbox.getMessage(message.messageId);\n\t\tif (!retained || retained.deliveredAt !== undefined || retained.failedAt !== undefined) {\n\t\t\treturn returnSettlement ? scheduled : undefined;\n\t\t}\n\t\tconst activity = this.activityForAgent(agent);\n\t\tif (activity !== \"idle\") {\n\t\t\treturn { ...scheduled, skipReason: `worker_${activity}:transcript_fallback_waiting` };\n\t\t}\n\t\tthis.reconcileControlTranscript(agent, retained, true);\n\t\tthis.acknowledgeDeliveredMailboxMessage(agent.agentId, retained.messageId);\n\t\tconst settlement = {\n\t\t\t...scheduled,\n\t\t\tskipReason: `${scheduled.skipReason ?? \"worker_task_terminal\"}:transcript_fallback_delivered`,\n\t\t};\n\t\treturn returnSettlement ? settlement : undefined;\n\t}\n\n\tprivate controlMessageAttempt(agentId: string, message: WorkerAgentMessage): AttemptRuntimeState | undefined {\n\t\tconst attempt = this.controlMessageAttemptById(agentId, message.messageId);\n\t\tif (attempt && attempt.dispatch.instructions !== message.content) {\n\t\t\tthrow new Error(`Worker control message '${message.messageId}' conflicts with its durable dispatch.`);\n\t\t}\n\t\treturn attempt;\n\t}\n\n\tprivate controlMessageAttemptById(agentId: string, messageId: string): AttemptRuntimeState | undefined {\n\t\tconst matches = Object.values(this.options.getLifecycle().getTaskRuntimeSnapshot().attempts).filter(\n\t\t\t(attempt) => attempt.dispatch.logicalLaneId === agentId && attempt.dispatch.controlMessageId === messageId,\n\t\t);\n\t\tif (matches.length > 1) {\n\t\t\tthrow new Error(`Worker control message '${messageId}' owns multiple durable attempts.`);\n\t\t}\n\t\treturn matches[0];\n\t}\n\n\tprivate scheduleCorrelatedTaskBearingAttempt(attempt: AttemptRuntimeState): TaskBearingReconciliation {\n\t\tconst record = this.options.getLifecycle().getRecord(attempt.taskId);\n\t\tif (!record) return { started: false, skipReason: \"orchestration_projection_missing\" };\n\t\tif (attempt.status === \"queued\") return this.scheduleTaskBearingAttempt(record, attempt);\n\t\tif (attempt.status === \"leased\" || attempt.status === \"running\" || attempt.status === \"suspended\") {\n\t\t\treturn { started: true, record };\n\t\t}\n\t\treturn { started: false, record, skipReason: `worker_task_terminal_${attempt.status}` };\n\t}\n\n\tprivate scheduleTaskBearingAttempt(record: LaneRecord, attempt: AttemptRuntimeState): TaskBearingReconciliation {\n\t\ttry {\n\t\t\tthis.options.scheduler.enqueue(record, this.options.recoveredRequest(attempt));\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tstarted: false,\n\t\t\t\trecord,\n\t\t\t\tskipReason: error instanceof Error ? error.message : String(error),\n\t\t\t};\n\t\t}\n\t\ttry {\n\t\t\tthis.options.scheduler.drain();\n\t\t\treturn { started: true, record };\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tstarted: true,\n\t\t\t\trecord,\n\t\t\t\tskipReason: `worker_task_recovery_pending:${error instanceof Error ? error.message : String(error)}`,\n\t\t\t};\n\t\t}\n\t}\n\n\tprivate enableAttemptAccountingForNextTask(agent: AgentBindingContract): void {\n\t\tif (!agent.resumeContext.sessionFile) return;\n\t\tthis.conversations\n\t\t\t.open({\n\t\t\t\tagentDir: this.options.agentDir,\n\t\t\t\tresumeContext: agent.resumeContext,\n\t\t\t\texpectedLogicalAgentId: agent.agentId,\n\t\t\t})\n\t\t\t.enableAttemptUsageBoundaries();\n\t}\n\n\tprivate requireControl(): void {\n\t\tif (!this.options.isControlAvailable()) {\n\t\t\tthrow new Error(\"Worker delegation control is unavailable in this UAC surface.\");\n\t\t}\n\t}\n\n\tprivate canonicalAgentIdSet(agentIds: readonly string[], label: string): string[] {\n\t\tif (!Array.isArray(agentIds) || agentIds.length < 1 || agentIds.length > MAX_ORCHESTRATION_COLLECTION_LENGTH) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`${label} agent ids must contain from 1 through ${MAX_ORCHESTRATION_COLLECTION_LENGTH} entries.`,\n\t\t\t);\n\t\t}\n\t\tconst canonicalAgentIds: string[] = [];\n\t\tconst seenAgentIds = new Set<string>();\n\t\tfor (const agentId of agentIds) {\n\t\t\tif (typeof agentId !== \"string\") throw new TypeError(\"Logical worker agent id is required.\");\n\t\t\tconst canonicalAgentId = agentId.trim();\n\t\t\tif (!canonicalAgentId) throw new TypeError(\"Logical worker agent id is required.\");\n\t\t\tif (canonicalAgentId.length > MAX_ORCHESTRATION_IDENTIFIER_LENGTH) {\n\t\t\t\tthrow new TypeError(`Logical worker agent id exceeds ${MAX_ORCHESTRATION_IDENTIFIER_LENGTH} characters.`);\n\t\t\t}\n\t\t\tif (seenAgentIds.has(canonicalAgentId)) continue;\n\t\t\tseenAgentIds.add(canonicalAgentId);\n\t\t\tcanonicalAgentIds.push(canonicalAgentId);\n\t\t}\n\t\treturn canonicalAgentIds;\n\t}\n\n\tprivate requireKnownAgent(agentId: string): AgentBindingContract {\n\t\tconst normalized = agentId.trim();\n\t\tif (!normalized) throw new Error(\"Logical worker agent id is required.\");\n\t\tconst agent = this.options.getLifecycle().getAgent(normalized);\n\t\tif (!agent) throw new Error(`Unknown logical worker agent '${normalized}'.`);\n\t\treturn agent;\n\t}\n\n\tprivate requireSessionPeer(agentId: string, scope: WorkerAgentControlScope): AgentBindingContract {\n\t\tconst target = this.requireKnownAgent(agentId);\n\t\tif (scope.callerAgentId) this.requireKnownAgent(scope.callerAgentId);\n\t\treturn target;\n\t}\n\n\tprivate agentIsInCallerSubtree(target: AgentBindingContract, callerAgentId: string): boolean {\n\t\tconst caller = this.options.getLifecycle().getAgent(callerAgentId);\n\t\tif (!caller) return false;\n\t\tlet cursor: AgentBindingContract | undefined = target;\n\t\tconst visited = new Set<string>();\n\t\twhile (cursor && !visited.has(cursor.agentId)) {\n\t\t\tif (cursor.agentId === caller.agentId) return true;\n\t\t\tvisited.add(cursor.agentId);\n\t\t\tcursor = cursor.parentAgentId ? this.options.getLifecycle().getAgent(cursor.parentAgentId) : undefined;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate requireControllableAgent(agentId: string, scope: WorkerAgentControlScope): AgentBindingContract {\n\t\tconst target = this.requireSessionPeer(agentId, scope);\n\t\tif (!scope.callerAgentId) return target;\n\t\tif (this.agentIsInCallerSubtree(target, scope.callerAgentId)) return target;\n\t\tthrow new Error(`Logical worker agent '${target.agentId}' is outside its control subtree.`);\n\t}\n\n\tprivate latestAgentAttempt(agent: AgentBindingContract): AttemptRuntimeState | undefined {\n\t\tconst lifecycle = this.options.getLifecycle();\n\t\tconst latest = lifecycle.getLatestAgentAttempt?.(agent.agentId);\n\t\tif (latest) return latest;\n\t\treturn agent.activeAttemptId ? lifecycle.getTaskRuntimeSnapshot().attempts[agent.activeAttemptId] : undefined;\n\t}\n\n\tprivate latestAttemptsByAgent(snapshot: TaskRuntimeProjection): Map<string, AttemptRuntimeState> {\n\t\treturn latestAgentAttemptsByDurableOrder(snapshot);\n\t}\n\n\tprivate activityForAgent(agent: AgentBindingContract): WorkerAgentActivity {\n\t\treturn this.projectAgentActivity(agent, this.latestAgentAttempt(agent));\n\t}\n\n\tprivate projectAgentActivity(\n\t\tagent: AgentBindingContract,\n\t\tattempt: AttemptRuntimeState | undefined,\n\t): WorkerAgentActivity {\n\t\tif (attempt?.status === \"suspended\" || agent.status === \"suspended\") return \"suspended\";\n\t\tif (attempt?.status === \"queued\" || attempt?.status === \"leased\" || attempt?.status === \"running\") {\n\t\t\treturn \"active\";\n\t\t}\n\t\treturn \"idle\";\n\t}\n\n\tprivate controlledAgentAttempt(\n\t\tagentId: string,\n\t\tscope: WorkerAgentControlScope,\n\t): {\n\t\tagent: AgentBindingContract;\n\t\tattempt: AttemptRuntimeState | undefined;\n\t} {\n\t\tthis.requireControl();\n\t\tconst agent = this.requireControllableAgent(agentId, scope);\n\t\tconst attempt = this.latestAgentAttempt(agent);\n\t\treturn { agent, attempt };\n\t}\n\n\tprivate getMailbox(agentId: string): WorkerAgentMailbox {\n\t\tlet mailbox = this.mailboxes.get(agentId);\n\t\tif (!mailbox) {\n\t\t\tmailbox = new WorkerAgentMailbox({\n\t\t\t\tagentDir: this.options.agentDir,\n\t\t\t\tparentSessionId: this.options.parentSessionId,\n\t\t\t\tagentId,\n\t\t\t});\n\t\t\tthis.mailboxes.set(agentId, mailbox);\n\t\t}\n\t\treturn mailbox;\n\t}\n\n\tprivate isAcceptedControlReplay(agentId: string, idempotencyKey: string | undefined): boolean {\n\t\tif (idempotencyKey === undefined) return false;\n\t\tconst messageId = workerAgentMessageId(this.options.parentSessionId, idempotencyKey);\n\t\tconst mailbox = this.getMailbox(agentId);\n\t\treturn mailbox.getMessage(messageId) !== undefined || mailbox.hasControlReplayReceipt(messageId);\n\t}\n\n\tprivate reusableTaskAdmissionSkipReason(agentId: string): string | undefined {\n\t\tconst admission = evaluateReusableWorkerTaskAdmission(\n\t\t\tthis.options.getLifecycle().getTaskRuntimeSnapshot(),\n\t\t\tagentId,\n\t\t);\n\t\treturn admission.ok ? undefined : admission.reasonCode;\n\t}\n\n\tprivate subscribeStateChanges(listener: () => void): () => void {\n\t\tthis.stateListeners.add(listener);\n\t\treturn () => this.stateListeners.delete(listener);\n\t}\n\n\tprivate acknowledgeDeliveredMailboxMessage(agentId: string, messageId: string): void {\n\t\tconst mailbox = this.getMailbox(agentId);\n\t\tconst controlMessage = mailbox.getMessage(messageId);\n\t\tif (controlMessage) {\n\t\t\tconst target = this.requireKnownAgent(agentId);\n\t\t\tconst sourceMailbox = this.beginWorkerReplyAcknowledgement(target, controlMessage, true);\n\t\t\tmailbox.acknowledgeDelivered(messageId);\n\t\t\tif (\n\t\t\t\tsourceMailbox &&\n\t\t\t\tcontrolMessage.replyToMessageId &&\n\t\t\t\t!sourceMailbox.commitReplyAcknowledgement(controlMessage.replyToMessageId, controlMessage.messageId) &&\n\t\t\t\tsourceMailbox.getReplyAcknowledgementId(controlMessage.replyToMessageId) !== undefined\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker reply source acknowledgement did not commit.\");\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tmailbox.acknowledgeDelivered(messageId);\n\t}\n\n\tprivate beginWorkerReplyAcknowledgement(\n\t\ttarget: AgentBindingContract,\n\t\treply: WorkerAgentMessage,\n\t\tallowCommittedSource = false,\n\t): WorkerAgentMailbox | undefined {\n\t\tif (reply.replyToMessageId === undefined) return undefined;\n\t\tif (!reply.senderAgentId) throw new Error(\"Worker reply routing metadata is incomplete.\");\n\t\tconst source = this.requireKnownAgent(reply.senderAgentId);\n\t\tconst sourceMailbox = this.getMailbox(source.agentId);\n\t\tconst request = sourceMailbox.getMessage(reply.replyToMessageId);\n\t\tif (!request || request.expectReply !== true || request.deliveredAt === undefined) {\n\t\t\tthrow new Error(\"Worker reply does not reference a delivered reply-expected message.\");\n\t\t}\n\t\tif (request.senderAgentId !== target.agentId) {\n\t\t\tthrow new Error(\"Worker reply target does not match the original requester.\");\n\t\t}\n\t\tif (request.threadId !== reply.threadId) {\n\t\t\tthrow new Error(\"Worker reply thread conflicts with the original request.\");\n\t\t}\n\t\tconst activeAcknowledgementId = sourceMailbox.getReplyAcknowledgementId(request.messageId);\n\t\tif (activeAcknowledgementId && activeAcknowledgementId !== reply.messageId) {\n\t\t\tthrow new Error(\"Worker reply acknowledgement identity conflicts with an active transaction.\");\n\t\t}\n\t\tif (request.repliedAt !== undefined && activeAcknowledgementId === undefined) {\n\t\t\tif (allowCommittedSource || reply.deliveredAt !== undefined) return sourceMailbox;\n\t\t\tthrow new Error(\"Worker reply source was marked replied without its exact acknowledgement marker.\");\n\t\t}\n\t\tif (!sourceMailbox.beginReplyAcknowledgement(request.messageId, reply.messageId, reply.content)) {\n\t\t\tthrow new Error(\"Worker reply source acknowledgement could not be acquired.\");\n\t\t}\n\t\treturn sourceMailbox;\n\t}\n\n\tprivate enqueuePeerMessage(\n\t\ttarget: AgentBindingContract,\n\t\tkind: \"steer\" | \"follow_up\",\n\t\tcontent: string,\n\t\toptions: WorkerAgentMessageOptions,\n\t\ttask?: WorkerAgentTaskMetadata,\n\t): QueuedPeerMessage {\n\t\tif (options.idempotencyKey !== undefined) {\n\t\t\tthis.assertIdempotencyTarget(target.agentId, options.idempotencyKey);\n\t\t}\n\t\treturn this.getMailbox(target.agentId).enqueueWithReceipt({\n\t\t\tkind,\n\t\t\tcontent,\n\t\t\t...options,\n\t\t\t...(task ? { task } : {}),\n\t\t});\n\t}\n\n\tprivate workerAgentView(\n\t\tagent: AgentBindingContract,\n\t\tactivity: WorkerAgentActivity = this.activityForAgent(agent),\n\t\tcallerAgentId?: string,\n\t): WorkerAgentView {\n\t\treturn {\n\t\t\tagentId: agent.agentId,\n\t\t\t...(agent.parentAgentId ? { parentAgentId: agent.parentAgentId } : {}),\n\t\t\trootAgentId: agent.rootAgentId,\n\t\t\tdepth: agent.depth,\n\t\t\trole: agent.role,\n\t\t\tstatus: agent.status,\n\t\t\tactivity,\n\t\t\tcontrollable: !callerAgentId || this.agentIsInCallerSubtree(agent, callerAgentId),\n\t\t\tcreatedAt: agent.createdAt,\n\t\t\tupdatedAt: agent.updatedAt,\n\t\t};\n\t}\n\n\tprivate assertIdempotencyTarget(targetAgentId: string, idempotencyKey: string): void {\n\t\tconst messageId = workerAgentMessageId(this.options.parentSessionId, idempotencyKey);\n\t\tfor (const agent of Object.values(this.options.getLifecycle().getTaskRuntimeSnapshot().agents)) {\n\t\t\tif (agent.agentId === targetAgentId) continue;\n\t\t\tconst mailbox = this.getMailbox(agent.agentId);\n\t\t\tif (mailbox.getMessage(messageId) || mailbox.hasControlReplayReceipt(messageId)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Worker control idempotency identity is already accepted by logical worker '${agent.agentId}'.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate mailboxMessage(message: WorkerAgentMessage): UserMessage {\n\t\tconst metadata = [\n\t\t\tmessage.senderAgentId ? `from=${message.senderAgentId}` : undefined,\n\t\t\tmessage.threadId ? `thread=${message.threadId}` : undefined,\n\t\t\tmessage.replyToMessageId ? `replyTo=${message.replyToMessageId}` : undefined,\n\t\t\tmessage.expectReply ? \"replyExpected=true\" : undefined,\n\t\t].filter((value): value is string => value !== undefined);\n\t\treturn {\n\t\t\trole: \"user\",\n\t\t\tcontent: `[Worker control ${message.messageId}${metadata.length > 0 ? ` ${metadata.join(\" \")}` : \"\"}]\\n${message.content}`,\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\t}\n}\n"]}
|