@bastani/atomic 0.9.57 → 0.9.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/dist/builtin/intercom/package.json +1 -1
  3. package/dist/builtin/mcp/package.json +1 -1
  4. package/dist/builtin/subagents/CHANGELOG.md +18 -0
  5. package/dist/builtin/subagents/README.md +3 -1
  6. package/dist/builtin/subagents/package.json +1 -1
  7. package/dist/builtin/subagents/src/extension/index.bundle.mjs +202 -38
  8. package/dist/builtin/web-access/CHANGELOG.md +12 -0
  9. package/dist/builtin/web-access/index.bundle.mjs +2 -2
  10. package/dist/builtin/web-access/package.json +1 -1
  11. package/dist/builtin/workflows/CHANGELOG.md +42 -0
  12. package/dist/builtin/workflows/package.json +1 -1
  13. package/dist/builtin/workflows/src/extension/index.bundle.mjs +885 -228
  14. package/dist/builtin/workflows/src/extension/local-worker-entry.mjs +933 -175
  15. package/dist/builtin/workflows/src/index.js +630 -162
  16. package/dist/builtin/workflows/src/local-worker-entry.mjs +933 -175
  17. package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +1 -1
  18. package/dist/builtin/workflows/src/shared/workflow-infrastructure-error.d.ts +13 -0
  19. package/dist/builtin/workflows/src/workers/public-options.d.ts +10 -0
  20. package/dist/core/agent-session-persistent-custom-messages.d.ts +5 -0
  21. package/dist/core/agent-session-persistent-custom-messages.d.ts.map +1 -1
  22. package/dist/core/agent-session-persistent-custom-messages.js +16 -0
  23. package/dist/core/agent-session-persistent-custom-messages.js.map +1 -1
  24. package/dist/core/agent-session-tasks.d.ts.map +1 -1
  25. package/dist/core/agent-session-tasks.js +20 -0
  26. package/dist/core/agent-session-tasks.js.map +1 -1
  27. package/dist/core/child-session-options.d.ts.map +1 -1
  28. package/dist/core/child-session-options.js +3 -1
  29. package/dist/core/child-session-options.js.map +1 -1
  30. package/dist/core/sdk-types.d.ts +6 -1
  31. package/dist/core/sdk-types.d.ts.map +1 -1
  32. package/dist/core/sdk-types.js.map +1 -1
  33. package/dist/core/sdk.js +4 -2
  34. package/dist/core/sdk.js.map +1 -1
  35. package/dist/core/settings-defaults.d.ts +4 -0
  36. package/dist/core/settings-defaults.d.ts.map +1 -1
  37. package/dist/core/settings-defaults.js +4 -0
  38. package/dist/core/settings-defaults.js.map +1 -1
  39. package/dist/core/settings-manager-resource-accessors.d.ts +2 -0
  40. package/dist/core/settings-manager-resource-accessors.d.ts.map +1 -1
  41. package/dist/core/settings-manager-resource-accessors.js +6 -0
  42. package/dist/core/settings-manager-resource-accessors.js.map +1 -1
  43. package/dist/core/settings-schema.d.ts +9 -0
  44. package/dist/core/settings-schema.d.ts.map +1 -1
  45. package/dist/core/settings-schema.js +11 -0
  46. package/dist/core/settings-schema.js.map +1 -1
  47. package/dist/core/settings-types.d.ts +1 -1
  48. package/dist/core/settings-types.d.ts.map +1 -1
  49. package/dist/core/settings-types.js.map +1 -1
  50. package/dist/core/tasks/agent-adapter.d.ts +10 -1
  51. package/dist/core/tasks/agent-adapter.d.ts.map +1 -1
  52. package/dist/core/tasks/agent-adapter.js +20 -0
  53. package/dist/core/tasks/agent-adapter.js.map +1 -1
  54. package/dist/core/tasks/contracts.d.ts +6 -0
  55. package/dist/core/tasks/contracts.d.ts.map +1 -1
  56. package/dist/core/tasks/contracts.js.map +1 -1
  57. package/dist/core/tasks/heartbeat-notice.d.ts +64 -0
  58. package/dist/core/tasks/heartbeat-notice.d.ts.map +1 -0
  59. package/dist/core/tasks/heartbeat-notice.js +98 -0
  60. package/dist/core/tasks/heartbeat-notice.js.map +1 -0
  61. package/dist/core/tasks/heartbeat.d.ts +75 -0
  62. package/dist/core/tasks/heartbeat.d.ts.map +1 -0
  63. package/dist/core/tasks/heartbeat.js +440 -0
  64. package/dist/core/tasks/heartbeat.js.map +1 -0
  65. package/dist/core/tasks/supervisor.d.ts +2 -0
  66. package/dist/core/tasks/supervisor.d.ts.map +1 -1
  67. package/dist/core/tasks/supervisor.js +32 -4
  68. package/dist/core/tasks/supervisor.js.map +1 -1
  69. package/dist/core/tasks/task-view-source.d.ts +72 -0
  70. package/dist/core/tasks/task-view-source.d.ts.map +1 -0
  71. package/dist/core/tasks/task-view-source.js +155 -0
  72. package/dist/core/tasks/task-view-source.js.map +1 -0
  73. package/dist/core/tools/bash-pty-native.d.ts +2 -0
  74. package/dist/core/tools/bash-pty-native.d.ts.map +1 -1
  75. package/dist/core/tools/bash-pty-native.js +1 -0
  76. package/dist/core/tools/bash-pty-native.js.map +1 -1
  77. package/dist/core/tools/bash.d.ts +3 -0
  78. package/dist/core/tools/bash.d.ts.map +1 -1
  79. package/dist/core/tools/bash.js +20 -2
  80. package/dist/core/tools/bash.js.map +1 -1
  81. package/dist/core/tools/powershell.d.ts +16 -8
  82. package/dist/core/tools/powershell.d.ts.map +1 -1
  83. package/dist/index.d.ts +5 -3
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +4 -2
  86. package/dist/index.js.map +1 -1
  87. package/dist/modes/interactive/components/chat-session-host-events.d.ts.map +1 -1
  88. package/dist/modes/interactive/components/chat-session-host-events.js +7 -0
  89. package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -1
  90. package/dist/modes/interactive/components/chat-session-host-state.d.ts +3 -0
  91. package/dist/modes/interactive/components/chat-session-host-state.d.ts.map +1 -1
  92. package/dist/modes/interactive/components/chat-session-host-state.js +4 -0
  93. package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -1
  94. package/dist/modes/interactive/components/chat-session-host-types.d.ts +11 -0
  95. package/dist/modes/interactive/components/chat-session-host-types.d.ts.map +1 -1
  96. package/dist/modes/interactive/components/chat-session-host-types.js.map +1 -1
  97. package/dist/modes/interactive/components/chat-session-host.d.ts +2 -0
  98. package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -1
  99. package/dist/modes/interactive/components/chat-session-host.js +15 -8
  100. package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
  101. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  102. package/dist/modes/interactive/components/custom-message.js +12 -0
  103. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  104. package/dist/modes/interactive/components/task-detail.d.ts.map +1 -1
  105. package/dist/modes/interactive/components/task-detail.js +5 -0
  106. package/dist/modes/interactive/components/task-detail.js.map +1 -1
  107. package/dist/modes/interactive/components/task-heartbeat-message.d.ts +14 -0
  108. package/dist/modes/interactive/components/task-heartbeat-message.d.ts.map +1 -0
  109. package/dist/modes/interactive/components/task-heartbeat-message.js +76 -0
  110. package/dist/modes/interactive/components/task-heartbeat-message.js.map +1 -0
  111. package/dist/modes/interactive/components/task-inspector.d.ts +6 -3
  112. package/dist/modes/interactive/components/task-inspector.d.ts.map +1 -1
  113. package/dist/modes/interactive/components/task-inspector.js +53 -100
  114. package/dist/modes/interactive/components/task-inspector.js.map +1 -1
  115. package/dist/modes/interactive/skill-command-autocomplete.d.ts +22 -2
  116. package/dist/modes/interactive/skill-command-autocomplete.d.ts.map +1 -1
  117. package/dist/modes/interactive/skill-command-autocomplete.js +28 -9
  118. package/dist/modes/interactive/skill-command-autocomplete.js.map +1 -1
  119. package/docs/background-tasks.md +65 -1
  120. package/docs/sdk.md +3 -1
  121. package/docs/settings.md +12 -0
  122. package/docs/subagents/reference.md +2 -0
  123. package/docs/subagents.md +2 -0
  124. package/docs/tools.md +2 -1
  125. package/docs/workflows/operations.md +5 -3
  126. package/npm-shrinkwrap.json +32 -32
  127. package/package.json +3 -3
  128. package/schemas/settings.schema.json +24 -0
@@ -1 +1 @@
1
- {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../../src/core/tasks/supervisor.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncResource } from \"node:async_hooks\";\nimport { isDeepStrictEqual } from \"node:util\";\nimport type * as native from \"@bastani/atomic-natives\";\nimport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport { createModuleRequire } from \"../../utils/module-require.ts\";\nimport type { AgentSessionEvent } from \"../agent-session.js\";\nimport { currentResourceAdmission } from \"../resource-admission-scope.ts\";\nimport type { ResourcePermit } from \"../sdk-types.ts\";\nimport type { SessionManager } from \"../session-manager.ts\";\nimport { COMMAND_FOREGROUND_BUDGET_MS } from \"./command-output.js\";\nimport type { TaskCompletionSource } from \"./completion-ordering.js\";\nimport type * as C from \"./contracts.js\";\n\nexport type TaskTranscriptSource = Pick<SessionManager, \"getSessionId\" | \"getEntries\"> & {\n\treadonly completionSource?: TaskCompletionSource;\n\t/** Viewer-only subscription; updates never publish task lifecycle events. */\n\tsubscribe?(listener: (event: AgentSessionEvent) => void): () => void;\n\tgetStreamingMessage?(): AgentMessage | undefined;\n};\n\nexport const DEFAULT_AGENT_WAIT_BUDGET_MS = 30000;\n/** These objects are live authority, not DTOs, restart tokens or model arguments. */\nclass Capability {\n\t#live = true;\n\ttoJSON(): never {\n\t\tthrow new TypeError(`Task capability is not serializable (${this.#live ? \"live\" : \"closed\"})`);\n\t}\n}\nclass HostCapability extends Capability {\n\treadonly kind = \"host\";\n}\nclass OwnerCapability extends Capability {\n\treadonly kind = \"owner\";\n}\nclass TaskCapability extends Capability {\n\treadonly kind = \"task\";\n}\nclass WaitCapability extends Capability {\n\treadonly kind = \"wait\";\n}\nclass SubscriptionCapability extends Capability {\n\treadonly kind = \"subscription\";\n}\nclass StdinCapability extends Capability {\n\treadonly kind = \"stdin\";\n}\nexport type StdinLease = StdinCapability;\nexport type HostSession = HostCapability;\nexport type OwnerLease = OwnerCapability;\nexport type TaskLease = TaskCapability;\nexport type WaitLease = WaitCapability;\nexport type SubscriptionLease = SubscriptionCapability;\n\nexport type FakeRunnerContext = {\n\tref: C.NativeTaskRef;\n\tsignal: AbortSignal;\n\treportActivity(report: C.ActivityReport): C.Result<C.ReportReceipt, C.ReportError>;\n\t/** Bind existing child history while holding the admitted runner authority. */\n\tbindTranscript(session: TaskTranscriptSource): void;\n\t/** Record (or, with `undefined`, remove) one extension status written by the task's own session. */\n\tsetExtensionStatus(statusKey: string, text: string | undefined): void;\n\t/** Drop every status the task's session set: its session ended or was replaced. */\n\tclearExtensionStatuses(): void;\n};\n/** Independent cleanup evidence: an outcome alone never proves resource release. */\nexport type FakeExecution = { result: Promise<C.TaskResult>; cleanup: Promise<C.Cleanup> };\nexport type TrustedTaskHost = {\n\tscope: C.OwnerScope;\n\t/** Owner-host observation settings; never an execution deadline. */\n\ttasks?: { wait?: C.TaskWaitConfiguration };\n\t/** The existing host/tool refusal throws here, before native admission. */\n\tauthorizeCommandLaunch?(intent: C.CommandIntent): void;\n\tauthorizeLaunch(intent: C.AgentIntent): void;\n\tresourceAdmission?: import(\"../sdk-types.ts\").ResourceAdmission;\n\tonTaskSettled?(ref: C.NativeTaskRef, receipt: C.SettlementReceipt): void;\n\tcreateRunner(context: FakeRunnerContext, intent: C.AgentIntent): FakeExecution;\n};\ntype HostState = { native: native.HostSession; binding: TrustedTaskHost };\ntype OwnerState = {\n\tnative: native.OwnerLease;\n\thost: HostState;\n\ttasks: Map<C.TaskId, TaskLease>;\n\twatches: Set<TaskSubscription>;\n\tsettledTasks: Set<C.TaskId>;\n\tcommandAdmissions: Set<Promise<void>>;\n\tclosing: AbortController;\n\tpermits: Map<C.TaskId, ResourcePermit>;\n\treleases: Set<Promise<void>>;\n\treleaseFailures: Error[];\n\tcommandStarts: Map<C.OperationId, { intent: C.CommandIntent; result: Promise<C.Result<TaskLease, C.StartFailure>> }>;\n};\ntype TaskState = {\n\tnative: native.TaskLease;\n\towner: OwnerState;\n\tref: C.NativeTaskRef;\n\tcontroller: AbortController;\n\tkind?: \"command\";\n\texecution?: Promise<C.Result<C.Cleanup, C.ReportError>>;\n\ttranscript?: TaskTranscriptSource;\n\tinheritedEntryCount?: number;\n\t/** Extension `setStatus` writes of the task's own session; they never reach the host's footer. */\n\tstatuses: Map<string, string>;\n\tstatusListeners: Set<() => void>;\n};\ntype WaitState = { native: native.WaitLease; outcome: Promise<C.Result<C.WaitOutcome, C.WaitError>> };\n\n// Native supervisors share one actor per environment; their JS continuations must too.\nconst environment = {\n\thosts: new WeakMap<HostSession, HostState>(),\n\towners: new WeakMap<OwnerLease, OwnerState>(),\n\ttasks: new WeakMap<TaskLease, TaskState>(),\n\tinputs: new WeakMap<StdinLease, native.StdinLease>(),\n\twaits: new WeakMap<WaitLease, WaitState>(),\n\twaitRegistry: new Map<C.WaitId, WaitLease>(),\n\townerIds: new Map<C.OwnerId, OwnerLease>(),\n};\n\n/** Reads only history bound by the admitted runner, never a caller-selected session. */\nexport function taskTranscriptSource(\n\ttask: TaskLease,\n): C.Result<{ session: TaskTranscriptSource; taskId: C.TaskId }, C.Failure<\"UnknownTask\" | \"TranscriptUnavailable\">> {\n\tconst state = environment.tasks.get(task);\n\tif (!state) return { ok: false, error: { code: \"UnknownTask\", message: \"Unknown task\" } };\n\tif (!state.transcript)\n\t\treturn { ok: false, error: { code: \"TranscriptUnavailable\", message: \"Transcript unavailable\" } };\n\treturn { ok: true, value: { session: state.transcript, taskId: state.ref.taskId } };\n}\n\nconst NO_STATUSES: ReadonlyMap<string, string> = new Map();\n\n/** Extension statuses written by this task's own session, by status key; empty once it ends. */\nexport function taskExtensionStatuses(task: TaskLease): ReadonlyMap<string, string> {\n\treturn environment.tasks.get(task)?.statuses ?? NO_STATUSES;\n}\n\n/** Viewer-only: runs `listener` whenever the task's extension statuses change. */\nexport function watchTaskExtensionStatuses(task: TaskLease, listener: () => void): () => void {\n\tconst listeners = environment.tasks.get(task)?.statusListeners;\n\tlisteners?.add(listener);\n\treturn () => {\n\t\tlisteners?.delete(listener);\n\t};\n}\n\nfunction notifyStatusListeners(state: TaskState): void {\n\tfor (const listener of [...state.statusListeners]) {\n\t\ttry {\n\t\t\tlistener();\n\t\t} catch {\n\t\t\t// A viewer's repaint failure must not break the extension's status write.\n\t\t}\n\t}\n}\n\nfunction setTaskStatus(state: TaskState, statusKey: string, text: string | undefined): void {\n\tif (text === undefined) {\n\t\tif (!state.statuses.delete(statusKey)) return;\n\t} else {\n\t\tif (state.statuses.get(statusKey) === text) return;\n\t\tstate.statuses.set(statusKey, text);\n\t}\n\tnotifyStatusListeners(state);\n}\n\nfunction clearTaskStatuses(state: TaskState): void {\n\tif (state.statuses.size === 0) return;\n\tstate.statuses.clear();\n\tnotifyStatusListeners(state);\n}\n\n/** History the runner produced; a forked child's inherited parent entries are excluded. */\nexport function taskOwnTranscriptEntries(task: TaskLease): ReturnType<TaskTranscriptSource[\"getEntries\"]> | undefined {\n\tconst state = environment.tasks.get(task);\n\treturn state?.transcript?.getEntries().slice(state.inheritedEntryCount ?? 0);\n}\n\n/** Promise rejections, setup throws and consumer exceptions may be arbitrary JavaScript values. */\nfunction rejectionMessage<T>(reason: T): string {\n\ttry {\n\t\tconst message = reason instanceof Error ? reason.message : reason;\n\t\treturn typeof message === \"string\" ? message : String(message);\n\t} catch {\n\t\treturn \"Unprintable JavaScript rejection\";\n\t}\n}\nfunction mapped<T, U, Code extends string>(\n\tresult: C.Result<T, native.TaskFailure>,\n\tconvert: (value: T) => U,\n\tcodes: readonly Code[],\n): C.Result<U, C.Failure<Code>> {\n\tif (result.ok) return { ok: true, value: convert(result.value) };\n\tconst code = codes.find((candidate) => candidate === result.error.code);\n\tif (!code) throw new Error(`Unexpected native task refusal: ${result.error.code}: ${result.error.message}`);\n\treturn { ok: false, error: { code, message: result.error.message } };\n}\nconst ownerErrors = [\"ScopeMismatch\", \"EnvironmentClosing\"] as const;\nconst startErrors = [\n\t\"OwnerClosing\",\n\t\"UnknownAgent\",\n\t\"InvalidCwd\",\n\t\"DepthExceeded\",\n\t\"CapacityExhausted\",\n\t\"DispatchGuardBusy\",\n\t\"OperationConflict\",\n\t\"RunnerUnavailable\",\n\t\"SpawnFailed\",\n\t\"ContainmentUnavailable\",\n] as const;\nconst waitErrors = [\"UnknownTask\", \"OwnerClosed\", \"EnvironmentClosing\", \"ScopeMismatch\", \"ObserverCancelled\"] as const;\nconst reportErrors = [\"StaleAttempt\", \"OwnerClosing\", \"TaskTerminal\", \"ReportConflict\"] as const;\nconst watchErrors = [\"OwnerClosed\", \"StaleGeneration\", \"EnvironmentClosing\"] as const;\nfunction reference(value: native.NativeTaskRef): C.NativeTaskRef {\n\treturn {\n\t\townerId: value.ownerId as C.OwnerId,\n\t\ttaskId: value.taskId as C.TaskId,\n\t\tattemptId: value.attemptId as C.AttemptId,\n\t\tgeneration: value.generation as C.Generation,\n\t};\n}\nfunction cursor(value: native.Cursor): C.Cursor {\n\treturn { generation: value.generation as C.Generation, sequence: value.sequence as C.Sequence };\n}\nfunction output(value: native.OutputRef): C.OutputRef {\n\treturn {\n\t\townerId: value.ownerId as C.OwnerId,\n\t\ttaskId: value.taskId as C.TaskId,\n\t\tartifactId: value.artifactId,\n\t\tbyteCount: value.byteCount,\n\t\tomittedRanges: value.omittedRanges.map(({ start, end }) => ({ start, end })),\n\t};\n}\nfunction taskResult(value: native.TaskResult): C.TaskResult {\n\tswitch (value.kind) {\n\t\tcase \"completed\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\toutput: output(value.output),\n\t\t\t\t...(value.exitCode === undefined ? {} : { exitCode: value.exitCode }),\n\t\t\t};\n\t\tcase \"failed\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tcode: value.code,\n\t\t\t\tmessage: value.message,\n\t\t\t\t...(value.output === undefined ? {} : { output: output(value.output) }),\n\t\t\t\t...(value.exitCode === undefined ? {} : { exitCode: value.exitCode }),\n\t\t\t};\n\t\tcase \"cancelled\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tcause: value.cause,\n\t\t\t\t...(value.output === undefined ? {} : { output: output(value.output) }),\n\t\t\t};\n\t}\n}\nfunction execution(value: native.Execution): C.Execution {\n\treturn value.kind === \"settled\" ? { kind: \"settled\", result: taskResult(value.result) } : value;\n}\nfunction observation(value: native.HostObservation): C.HostObservation {\n\tif (value.kind === \"foreground\") return { kind: value.kind, waitId: value.waitId as C.WaitId };\n\tif (value.kind === \"none\" && (value.reason === \"task-settled\" || value.reason === \"owner-closing\"))\n\t\treturn { kind: value.kind, reason: value.reason };\n\tconst reasons = [\n\t\t\"explicit\",\n\t\t\"default-background\",\n\t\t\"elapsed\",\n\t\t\"intercom-coordination\",\n\t\t\"input-needed\",\n\t\t\"not-observed\",\n\t\t\"observer-cancelled\",\n\t] as const;\n\tconst reason = reasons.find((reason) => reason === value.reason);\n\tif (value.kind === \"background\" && reason) return { kind: value.kind, reason };\n\tthrow new Error(\"Invalid native host observation\");\n}\n// Native records own lifecycle and mutable execution metadata. Routing provenance is\n// immutable host metadata, retained for the same environment lifetime as task records.\nconst routerSelections = new Map<string, C.RouterSelection>();\nfunction record(value: native.TaskRecord): C.TaskRecord {\n\tif (value.kind !== \"agent\" && value.kind !== \"command\") throw new Error(`Invalid native task kind: ${value.kind}`);\n\tconst routerSelection = routerSelections.get(value.ref.taskId);\n\treturn {\n\t\tref: reference(value.ref),\n\t\tlaunchOperationId: value.launchOperationId as C.OperationId,\n\t\t...(value.parentTaskId === undefined ? {} : { parentTaskId: value.parentTaskId as C.TaskId }),\n\t\t...(value.launchGroupId === undefined ? {} : { launchGroupId: value.launchGroupId }),\n\t\tlaunchOrdinal: value.launchOrdinal,\n\t\tkind: value.kind,\n\t\ttitle: value.title,\n\t\t...(value.agentName === undefined ? {} : { agentName: value.agentName }),\n\t\t...(value.model === undefined ? {} : { model: value.model }),\n\t\t...(value.thinking === undefined ? {} : { thinking: value.thinking }),\n\t\t...(routerSelection ? { routerSelection } : {}),\n\t\texecution: execution(value.execution),\n\t\tobservation: observation(value.observation),\n\t\t...(value.wasBackground === undefined ? {} : { wasBackground: value.wasBackground }),\n\t\tattention: value.attention,\n\t\tcleanup: value.cleanup,\n\t\t...(value.currentAction === undefined\n\t\t\t? {}\n\t\t\t: { currentAction: { tool: value.currentAction.tool, text: value.currentAction.text } }),\n\t\t...(value.metrics === undefined\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\tmetrics: {\n\t\t\t\t\t\t...(value.metrics.elapsedMs === undefined ? {} : { elapsedMs: value.metrics.elapsedMs }),\n\t\t\t\t\t\t...(value.metrics.toolCount === undefined ? {} : { toolCount: value.metrics.toolCount }),\n\t\t\t\t\t\t...(value.metrics.tokenCount === undefined ? {} : { tokenCount: value.metrics.tokenCount }),\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\toutput: output(value.output),\n\t};\n}\nfunction snapshot(value: native.OwnerSnapshot): C.OwnerSnapshot {\n\tif (value.state !== \"open\" && value.state !== \"closing\" && value.state !== \"closed\")\n\t\tthrow new Error(`Invalid native owner state: ${value.state}`);\n\treturn {\n\t\townerId: value.ownerId as C.OwnerId,\n\t\tscope: value.scope,\n\t\tgeneration: value.generation as C.Generation,\n\t\tstate: value.state,\n\t\ttasks: value.tasks.map(record),\n\t\tcursor: cursor(value.cursor),\n\t};\n}\nfunction activity(value: native.ActivityReport): C.ActivityReport {\n\tif (value.change.kind === \"attention-set\" && value.change.attention.kind === \"none\")\n\t\tthrow new Error(\"Native attention-set cannot clear attention\");\n\t// Native tagged variants are owned wire data; only attention-set has a wider generated declaration.\n\treturn value as C.ActivityReport;\n}\nfunction payload(value: native.TaskEvent): C.TaskEvent {\n\tswitch (value.kind) {\n\t\tcase \"task-admitted\":\n\t\t\treturn { kind: value.kind, task: record(value.task) };\n\t\tcase \"task-started\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref) };\n\t\tcase \"wait-started\": {\n\t\t\tif (value.observer !== \"sdk\" && value.observer !== \"host\") throw new Error(\"Invalid native observer\");\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tref: reference(value.ref),\n\t\t\t\twaitId: value.waitId as C.WaitId,\n\t\t\t\tobserver: value.observer,\n\t\t\t};\n\t\t}\n\t\tcase \"wait-yielded\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), waitId: value.waitId as C.WaitId, reason: value.reason };\n\t\tcase \"host-observation-changed\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), observation: observation(value.observation) };\n\t\tcase \"task-activity\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), activity: activity(value.activity) };\n\t\tcase \"task-cancelling\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), cause: value.cause };\n\t\tcase \"task-settled\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tref: reference(value.ref),\n\t\t\t\tresult: taskResult(value.result),\n\t\t\t\tcompletionId: value.completionId,\n\t\t\t};\n\t\tcase \"cleanup-changed\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), cleanup: value.cleanup };\n\t\tcase \"owner-closing\":\n\t\tcase \"owner-closed\":\n\t\t\treturn { kind: value.kind };\n\t}\n}\nfunction event(value: native.NativeEvent): C.NativeEvent {\n\tif (value.schemaVersion !== 1) throw new Error(\"Unsupported native task event schema\");\n\treturn {\n\t\tschemaVersion: 1,\n\t\tcursor: cursor(value.cursor),\n\t\townerId: value.ownerId as C.OwnerId,\n\t\t...(value.taskId === undefined ? {} : { taskId: value.taskId as C.TaskId }),\n\t\tpayload: payload(value.payload),\n\t};\n}\nfunction waitOutcome(value: native.WaitOutcome): C.WaitOutcome {\n\treturn value.kind === \"settled\"\n\t\t? { kind: value.kind, taskId: value.taskId as C.TaskId, result: taskResult(value.result) }\n\t\t: { kind: value.kind, taskId: value.taskId as C.TaskId, waitId: value.waitId as C.WaitId, reason: value.reason };\n}\nfunction cancelReceipt(value: native.CancelReceipt): C.CancelReceipt {\n\tif (value.decision !== \"already-settled\" && value.decision !== \"cancellation-requested\")\n\t\tthrow new Error(\"Invalid cancellation decision\");\n\treturn {\n\t\ttaskId: value.taskId as C.TaskId,\n\t\tdecision: value.decision,\n\t\texecution: execution(value.execution),\n\t\tcleanup: value.cleanup,\n\t};\n}\n\nfunction reportReceipt(value: native.ReportReceipt): C.ReportReceipt {\n\tif (value.disposition !== \"accepted\" && value.disposition !== \"duplicate\")\n\t\tthrow new Error(\"Invalid report disposition\");\n\treturn { reportId: value.reportId, cursor: cursor(value.cursor), disposition: value.disposition };\n}\n/** Projection only: native ordering remains the sole lifecycle authority. */\nfunction applyEvent(current: C.OwnerSnapshot, value: C.NativeEvent): C.OwnerSnapshot {\n\tconst next: C.OwnerSnapshot = { ...current, tasks: [...current.tasks], cursor: value.cursor };\n\tconst change = value.payload;\n\tif (change.kind === \"owner-closing\") {\n\t\tnext.state = \"closing\";\n\t\tnext.tasks = next.tasks.map((task) =>\n\t\t\ttask.execution.kind === \"settled\" ? task : { ...task, attention: { kind: \"none\" } },\n\t\t);\n\t\treturn next;\n\t}\n\tif (change.kind === \"owner-closed\") {\n\t\tnext.state = \"closed\";\n\t\treturn next;\n\t}\n\tif (change.kind === \"task-admitted\") {\n\t\tnext.tasks.push(change.task);\n\t\treturn next;\n\t}\n\tconst index = next.tasks.findIndex((task) => task.ref.taskId === change.ref.taskId);\n\tif (index < 0) throw new Error(\"Native delta references a task absent from its snapshot\");\n\tconst task: C.TaskRecord = { ...next.tasks[index] };\n\tnext.tasks[index] = task;\n\tswitch (change.kind) {\n\t\tcase \"task-started\":\n\t\t\ttask.execution = { kind: \"running\" };\n\t\t\tbreak;\n\t\tcase \"host-observation-changed\":\n\t\t\ttask.observation = change.observation;\n\t\t\tif (change.observation.kind === \"background\" && change.observation.reason !== \"not-observed\")\n\t\t\t\ttask.wasBackground = true;\n\t\t\tbreak;\n\t\tcase \"task-cancelling\":\n\t\t\ttask.execution = { kind: \"cancelling\", cause: change.cause };\n\t\t\tbreak;\n\t\tcase \"task-settled\":\n\t\t\ttask.execution = { kind: \"settled\", result: change.result };\n\t\t\ttask.attention = { kind: \"none\" };\n\t\t\tif (change.result.output !== undefined) task.output = change.result.output;\n\t\t\tbreak;\n\t\tcase \"cleanup-changed\":\n\t\t\ttask.cleanup = change.cleanup;\n\t\t\tbreak;\n\t\tcase \"task-activity\": {\n\t\t\tconst activity = change.activity.change;\n\t\t\tswitch (activity.kind) {\n\t\t\t\tcase \"action\":\n\t\t\t\t\ttask.currentAction = { tool: activity.tool, text: activity.text };\n\t\t\t\t\tif (task.attention.kind === \"no-recent-activity\") task.attention = { kind: \"none\" };\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"model\":\n\t\t\t\t\ttask.model = activity.model;\n\t\t\t\t\ttask.thinking = activity.thinking;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"metrics\":\n\t\t\t\t\ttask.metrics = {\n\t\t\t\t\t\t...task.metrics,\n\t\t\t\t\t\t...(activity.elapsedMs === undefined ? {} : { elapsedMs: activity.elapsedMs }),\n\t\t\t\t\t\t...(activity.toolCount === undefined ? {} : { toolCount: activity.toolCount }),\n\t\t\t\t\t\t...(activity.tokenCount === undefined ? {} : { tokenCount: activity.tokenCount }),\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"attention-set\":\n\t\t\t\t\ttask.attention = activity.attention;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"attention-clear\":\n\t\t\t\t\tif (task.attention.kind === \"input-needed\" && task.attention.requestId === activity.requestId)\n\t\t\t\t\t\ttask.attention = { kind: \"none\" };\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"output\":\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"wait-started\":\n\t\tcase \"wait-yielded\":\n\t\t\tbreak;\n\t}\n\treturn next;\n}\n/** One bounded wake poll per live subscription, including a journal with no retained event. */\nconst RECONCILE_INTERVAL_MS = 25;\nconst MAX_PENDING_EVENTS = 64;\nexport class TaskSubscription {\n\t#native: native.TaskSupervisor;\n\t#lease: native.SubscriptionLease;\n\t#resource = new AsyncResource(\"TaskSubscription\");\n\t#timer?: ReturnType<typeof setTimeout>;\n\t#queue: C.NativeEvent[] = [];\n\t#epoch = 0;\n\t#next?: (value: IteratorResult<C.NativeEvent>) => void;\n\t#disposed = false;\n\t#snapshot: C.OwnerSnapshot;\n\t#cursor: C.Cursor;\n\t/** Reconciliation supplements the RFC snapshot/cursor/iterable contract with the events it applied. */\n\tonReconcile: (snapshot: C.OwnerSnapshot, events: readonly C.NativeEvent[]) => void = () => {};\n\t#onDispose: () => void;\n\t#failure?: Error;\n\treadonly events: AsyncIterable<C.NativeEvent>;\n\treadonly lease: SubscriptionLease = new SubscriptionCapability();\n\n\tconstructor(actor: native.TaskSupervisor, initial: native.NativeTaskSubscription, onDispose: () => void) {\n\t\tObject.freeze(this.lease);\n\t\tthis.#native = actor;\n\t\tthis.#lease = initial.lease;\n\t\tthis.#snapshot = snapshot(initial.snapshot);\n\t\tthis.#cursor = cursor(initial.cursor);\n\t\tthis.#onDispose = onDispose;\n\t\tthis.events = {\n\t\t\t[Symbol.asyncIterator]: () => {\n\t\t\t\tconst epoch = this.#epoch;\n\t\t\t\treturn {\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\tif (epoch !== this.#epoch) return Promise.resolve({ done: true, value: undefined });\n\t\t\t\t\t\tconst value = this.#queue.shift();\n\t\t\t\t\t\tif (value) return Promise.resolve({ done: false, value });\n\t\t\t\t\t\tif (this.#disposed) return Promise.resolve({ done: true, value: undefined });\n\t\t\t\t\t\tif (this.#next) return Promise.reject(new Error(\"Only one pending subscription read is supported\"));\n\t\t\t\t\t\treturn new Promise((resolve) => {\n\t\t\t\t\t\t\tthis.#next = resolve;\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\treturn: async () => {\n\t\t\t\t\t\tif (epoch === this.#epoch) this.dispose();\n\t\t\t\t\t\treturn { done: true, value: undefined };\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t},\n\t\t};\n\t\tthis.#arm();\n\t}\n\tget snapshot(): C.OwnerSnapshot {\n\t\treturn this.#snapshot;\n\t}\n\tget cursor(): C.Cursor {\n\t\treturn this.#cursor;\n\t}\n\t/** Consumer exceptions are observable without breaking the native wake or fallback poll. */\n\tget failure(): Error | undefined {\n\t\treturn this.#failure;\n\t}\n\t/** Callback payloads are authentic hints; only the journal/snapshot is authoritative. */\n\twake(_hint: native.NativeEvent): void {\n\t\tthis.#resource.runInAsyncScope(() => this.drain());\n\t}\n\t#arm(): void {\n\t\tif (this.#disposed || this.#timer) return;\n\t\tthis.#timer = setTimeout(() => {\n\t\t\tthis.#timer = undefined;\n\t\t\tthis.#resource.runInAsyncScope(() => this.drain());\n\t\t\tthis.#arm();\n\t\t}, RECONCILE_INTERVAL_MS);\n\t\tthis.#timer.unref();\n\t}\n\tdrain(): void {\n\t\tif (this.#disposed) return;\n\t\tconst drained = this.#native.drainOwnerTasks(this.#lease);\n\t\tif (!drained.ok) {\n\t\t\tthis.dispose();\n\t\t\treturn;\n\t\t}\n\t\tconst events = drained.value.events.map(event);\n\t\tif (drained.value.snapshot) this.#snapshot = snapshot(drained.value.snapshot);\n\t\tfor (const value of events) {\n\t\t\tif (BigInt(value.cursor.sequence) > BigInt(this.#snapshot.cursor.sequence))\n\t\t\t\tthis.#snapshot = applyEvent(this.#snapshot, value);\n\t\t}\n\t\tthis.#cursor = cursor(drained.value.cursor);\n\t\tthis.#snapshot = { ...this.#snapshot, cursor: this.#cursor };\n\t\tconst overflow = this.#queue.length + events.length > MAX_PENDING_EVENTS;\n\t\tconst reset = drained.value.reset || overflow;\n\t\tif (reset) {\n\t\t\tthis.#queue = [];\n\t\t\tthis.#epoch++;\n\t\t\t// End the old iterator only after publishing the authoritative snapshot/cursor.\n\t\t\t// A new iterator on the same iterable observes subsequent authentic deltas.\n\t\t\tthis.#next?.({ done: true, value: undefined });\n\t\t\tthis.#next = undefined;\n\t\t}\n\t\tif (drained.value.snapshot || events.length) {\n\t\t\ttry {\n\t\t\t\tthis.#resource.runInAsyncScope(this.onReconcile, undefined, this.#snapshot, events);\n\t\t\t} catch (error) {\n\t\t\t\tthis.#failure = new Error(rejectionMessage(error));\n\t\t\t}\n\t\t}\n\t\tif (this.#disposed) return;\n\t\tif (!reset)\n\t\t\tfor (const value of events) {\n\t\t\t\tif (this.#next) {\n\t\t\t\t\tconst next = this.#next;\n\t\t\t\t\tthis.#next = undefined;\n\t\t\t\t\tnext({ done: false, value });\n\t\t\t\t} else this.#queue.push(value);\n\t\t\t}\n\t\tif (this.#snapshot.state === \"closed\") this.dispose(false);\n\t}\n\tdispose(clear = true): void {\n\t\tif (this.#disposed) return;\n\t\tthis.#disposed = true;\n\t\tif (this.#timer) clearTimeout(this.#timer);\n\t\tthis.#timer = undefined;\n\t\tthis.#native.disposeSubscription(this.#lease);\n\t\tif (clear) this.#queue = [];\n\t\tthis.#next?.({ done: true, value: undefined });\n\t\tthis.#next = undefined;\n\t\tthis.#resource.emitDestroy();\n\t\tthis.#onDispose();\n\t}\n}\n\nfunction createNativeSupervisor(): native.TaskSupervisor {\n\t// Keep loading separate from `new`: type-assertion erasure in the build\n\t// must not move construction onto createModuleRequire instead of the class.\n\tconst binding = createModuleRequire(import.meta.url)(\"@bastani/atomic-natives\") as typeof native;\n\treturn new binding.TaskSupervisor();\n}\n\nexport class TaskSupervisor {\n\t#native = createNativeSupervisor();\n\t#hosts = environment.hosts;\n\t#owners = environment.owners;\n\t#tasks = environment.tasks;\n\t#waits = environment.waits;\n\t#waitRegistry = environment.waitRegistry;\n\t#ownerIds = environment.ownerIds;\n\tbindHostSession(binding: TrustedTaskHost): HostSession {\n\t\tconst host = new HostCapability();\n\t\tObject.freeze(host);\n\t\tthis.#hosts.set(host, { native: this.#native.bindHostSession(binding.scope), binding });\n\t\treturn host;\n\t}\n\topenTaskOwner(host: HostSession, scope: C.OwnerScope): C.Result<OwnerLease, C.OwnerError> {\n\t\tconst state = this.#host(host);\n\t\treturn mapped(\n\t\t\tthis.#native.openTaskOwner(state.native, scope),\n\t\t\t(lease) => {\n\t\t\t\tconst probe = this.#native.watchOwnerTasks(lease, (_hint) => {});\n\t\t\t\tif (!probe.ok) throw new Error(probe.error.message);\n\t\t\t\tconst id = probe.value.snapshot.ownerId as C.OwnerId;\n\t\t\t\tthis.#native.disposeSubscription(probe.value.lease);\n\t\t\t\tconst existing = this.#ownerIds.get(id);\n\t\t\t\tif (existing) return existing;\n\t\t\t\tconst owner = new OwnerCapability();\n\t\t\t\tObject.freeze(owner);\n\t\t\t\tconst ownerState: OwnerState = {\n\t\t\t\t\tnative: lease,\n\t\t\t\t\thost: state,\n\t\t\t\t\ttasks: new Map(),\n\t\t\t\t\twatches: new Set(),\n\t\t\t\t\tsettledTasks: new Set(),\n\t\t\t\t\tcommandAdmissions: new Set(),\n\t\t\t\t\tclosing: new AbortController(),\n\t\t\t\t\tpermits: new Map(),\n\t\t\t\t\treleases: new Set(),\n\t\t\t\t\treleaseFailures: [],\n\t\t\t\t\tcommandStarts: new Map(),\n\t\t\t\t};\n\t\t\t\tthis.#owners.set(owner, ownerState);\n\t\t\t\tthis.#ownerIds.set(id, owner);\n\t\t\t\tconst watched = this.watchOwnerTasks(owner);\n\t\t\t\tif (!watched.ok) throw new Error(watched.error.message);\n\t\t\t\twatched.value.onReconcile = (projection) => {\n\t\t\t\t\tif (projection.state === \"closed\") this.#ownerIds.delete(projection.ownerId);\n\t\t\t\t\tfor (const record of projection.tasks) {\n\t\t\t\t\t\tconst cause =\n\t\t\t\t\t\t\trecord.execution.kind === \"cancelling\"\n\t\t\t\t\t\t\t\t? record.execution.cause\n\t\t\t\t\t\t\t\t: projection.state !== \"open\" && record.cleanup.kind !== \"reaped\"\n\t\t\t\t\t\t\t\t\t? \"owner-close\"\n\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\tif (!cause) continue;\n\t\t\t\t\t\tconst task = this.#owner(owner).tasks.get(record.ref.taskId);\n\t\t\t\t\t\tif (task) this.#task(task).controller.abort(cause);\n\t\t\t\t\t}\n\t\t\t\t\tlet failure: Error | undefined;\n\t\t\t\t\tfor (const record of projection.tasks) {\n\t\t\t\t\t\tif (record.cleanup.kind === \"reaped\") this.#releasePermit(ownerState, record.ref.taskId);\n\t\t\t\t\t}\n\t\t\t\t\tfor (const record of projection.tasks) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\trecord.execution.kind !== \"settled\" ||\n\t\t\t\t\t\t\townerState.settledTasks.has(record.ref.taskId) ||\n\t\t\t\t\t\t\t!state.binding.onTaskSettled\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Cancellation settles at cleanup (or while queued), without a runner outcome.\n\t\t\t\t\t\t\t// Recover its authentic receipt even when the bounded journal has reset.\n\t\t\t\t\t\t\tconst task = this.#native.lookupTask(lease, record.ref.taskId);\n\t\t\t\t\t\t\tif (!task.ok) throw new Error(task.error.message);\n\t\t\t\t\t\t\tconst settled = this.#native.taskSettlement(task.value);\n\t\t\t\t\t\t\tif (!settled.ok) throw new Error(settled.error.message);\n\t\t\t\t\t\t\tthis.#notifyTaskSettled(ownerState, record.ref, settled.value);\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tfailure ??= new Error(rejectionMessage(error));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (failure) throw failure;\n\t\t\t\t};\n\t\t\t\twatched.value.onReconcile(watched.value.snapshot, []);\n\t\t\t\treturn owner;\n\t\t\t},\n\t\t\townerErrors,\n\t\t);\n\t}\n\t#releasePermit(state: OwnerState, taskId: C.TaskId): void {\n\t\tconst release = state.permits.get(taskId);\n\t\tif (!release) return;\n\t\tstate.permits.delete(taskId);\n\t\tconst pending: Promise<void> = release()\n\t\t\t.catch((error) => {\n\t\t\t\tstate.releaseFailures.push(new Error(rejectionMessage(error)));\n\t\t\t})\n\t\t\t.finally(() => state.releases.delete(pending));\n\t\tstate.releases.add(pending);\n\t}\n\t#notifyTaskSettled(state: OwnerState, ref: C.NativeTaskRef, receipt: native.SettlementReceipt): void {\n\t\tif (!state.host.binding.onTaskSettled || state.settledTasks.has(ref.taskId)) return;\n\t\t// Runner outcomes and snapshot recovery share one delivery door. Mark before\n\t\t// host code so reentrant drains or callback failures cannot redeliver.\n\t\tstate.settledTasks.add(ref.taskId);\n\t\tstate.host.binding.onTaskSettled(ref, {\n\t\t\ttaskId: receipt.taskId as C.TaskId,\n\t\t\tcursor: cursor(receipt.cursor),\n\t\t\tresult: taskResult(receipt.result),\n\t\t\tcompletionId: receipt.completionId,\n\t\t});\n\t}\n\tasync startCommandTask(\n\t\towner: OwnerLease,\n\t\tintent: C.CommandIntent,\n\t\toperation: C.OperationId,\n\t\tsignal?: AbortSignal,\n\t): Promise<C.Result<TaskLease, C.StartFailure>> {\n\t\tconst state = this.#owner(owner);\n\t\tstate.host.binding.authorizeCommandLaunch?.(intent);\n\t\tconst known = state.commandStarts.get(operation);\n\t\tif (known) {\n\t\t\tif (isDeepStrictEqual(known.intent, intent)) return known.result;\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: { code: \"OperationConflict\", message: \"Operation was started with a different command\" },\n\t\t\t};\n\t\t}\n\t\tconst snapshot = structuredClone(intent);\n\t\tconst result = this.#launchCommandTask(state, snapshot, operation, signal);\n\t\tstate.commandStarts.set(operation, { intent: snapshot, result });\n\t\tconst forget = () => {\n\t\t\tif (state.commandStarts.get(operation)?.result === result) state.commandStarts.delete(operation);\n\t\t};\n\t\tresult.then((started) => started.ok || forget(), forget);\n\t\treturn result;\n\t}\n\tasync #launchCommandTask(\n\t\tstate: OwnerState,\n\t\tintent: C.CommandIntent,\n\t\toperation: C.OperationId,\n\t\tsignal?: AbortSignal,\n\t): Promise<C.Result<TaskLease, C.StartFailure>> {\n\t\t// Native command setup can be admitted before its task lease is visible in JS.\n\t\tlet finishAdmission!: () => void;\n\t\tconst admission = new Promise<void>((resolve) => {\n\t\t\tfinishAdmission = resolve;\n\t\t});\n\t\tstate.commandAdmissions.add(admission);\n\t\tlet release: ResourcePermit | undefined;\n\t\ttry {\n\t\t\trelease = await (currentResourceAdmission() ?? state.host.binding.resourceAdmission)?.acquire(\n\t\t\t\t\"process\",\n\t\t\t\tsignal ? AbortSignal.any([signal, state.closing.signal]) : state.closing.signal,\n\t\t\t);\n\t\t\tlet started: Awaited<ReturnType<native.TaskSupervisor[\"startCommandTask\"]>>;\n\t\t\ttry {\n\t\t\t\tstarted = await this.#native.startCommandTask(state.native, intent, operation);\n\t\t\t} catch (error) {\n\t\t\t\trelease = undefined;\n\t\t\t\tthrow new Error(`Command cleanup unconfirmed; process permit retained: ${rejectionMessage(error)}`, {\n\t\t\t\t\tcause: error,\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (!started.ok && !startErrors.some((code) => code === started.error.code)) {\n\t\t\t\trelease = undefined;\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Command cleanup unconfirmed; process permit retained: ${started.error.code}: ${started.error.message}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst admitted = mapped(started, (lease) => lease, startErrors);\n\t\t\tif (!admitted.ok) return admitted;\n\t\t\tconst ref = this.#native.taskReference(admitted.value);\n\t\t\tif (!ref.ok) throw new Error(ref.error.message);\n\t\t\tconst id = ref.value.taskId as C.TaskId;\n\t\t\tconst existing = state.tasks.get(id);\n\t\t\tif (existing) return { ok: true, value: existing };\n\t\t\tlet bindFailure: Error | undefined;\n\t\t\tif (release?.bindProcess) {\n\t\t\t\ttry {\n\t\t\t\t\tconst group = this.#native.taskProcessGroup(admitted.value);\n\t\t\t\t\tif (!group.ok) throw new Error(group.error.message);\n\t\t\t\t\tif (group.value !== null) await release.bindProcess({ kind: \"unix-process-group\", id: group.value });\n\t\t\t\t} catch (error) {\n\t\t\t\t\tbindFailure = new Error(rejectionMessage(error));\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (release) {\n\t\t\t\tstate.permits.set(id, release);\n\t\t\t\trelease = undefined;\n\t\t\t}\n\t\t\tconst task = new TaskCapability();\n\t\t\tthis.#tasks.set(task, {\n\t\t\t\tnative: admitted.value,\n\t\t\t\towner: state,\n\t\t\t\tref: reference(ref.value),\n\t\t\t\tcontroller: new AbortController(),\n\t\t\t\tkind: \"command\",\n\t\t\t\tstatuses: new Map(),\n\t\t\t\tstatusListeners: new Set(),\n\t\t\t});\n\t\t\tstate.tasks.set(id, task);\n\t\t\tif (bindFailure) {\n\t\t\t\tawait this.cancelTask(task, \"owner-close\").catch(() => undefined);\n\t\t\t\tthrow bindFailure;\n\t\t\t}\n\t\t\tif (state.permits.has(id)) {\n\t\t\t\tfor (const watch of state.watches) {\n\t\t\t\t\twatch.drain();\n\t\t\t\t\tif (watch.snapshot.tasks.some((item) => item.ref.taskId === id && item.cleanup.kind === \"reaped\"))\n\t\t\t\t\t\tthis.#releasePermit(state, id);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn { ok: true, value: task };\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tawait release?.();\n\t\t\t} finally {\n\t\t\t\tstate.commandAdmissions.delete(admission);\n\t\t\t\tfinishAdmission();\n\t\t\t}\n\t\t}\n\t}\n\t/** Caller must hold launch authorization closed while this snapshot drains. */\n\tasync drainCommandAdmissions(owner: OwnerLease): Promise<void> {\n\t\tawait Promise.all([...this.#owner(owner).commandAdmissions]);\n\t}\n\ttaskStdin(task: TaskLease): C.Result<StdinLease, C.InputError> {\n\t\treturn mapped(\n\t\t\tthis.#native.taskStdin(this.#task(task).native),\n\t\t\t(input) => {\n\t\t\t\tconst lease = new StdinCapability();\n\t\t\t\tenvironment.inputs.set(lease, input);\n\t\t\t\treturn lease;\n\t\t\t},\n\t\t\t[\"TaskTerminal\", \"StdinClosed\", \"UnknownTask\", \"OutputUnavailable\"] as const,\n\t\t);\n\t}\n\tasync writeTaskInput(\n\t\tinput: StdinLease,\n\t\toperation: C.OperationId,\n\t\tdata: C.InputData,\n\t): Promise<C.Result<C.InputReceipt, C.InputError>> {\n\t\tconst lease = environment.inputs.get(input);\n\t\tif (!lease) throw new TypeError(\"Foreign stdin capability\");\n\t\treturn mapped(\n\t\t\tawait this.#native.writeTaskInput(\n\t\t\t\tlease,\n\t\t\t\toperation,\n\t\t\t\tdata.kind === \"bytes\" ? { kind: \"bytes\", bytes: Buffer.from(data.bytes) } : data,\n\t\t\t),\n\t\t\t(value) => ({\n\t\t\t\toperationId: value.operationId as C.OperationId,\n\t\t\t\tacceptedBytes: value.acceptedBytes,\n\t\t\t\tkind: value.kind as \"bytes\" | \"eof\",\n\t\t\t}),\n\t\t\t[\"TaskTerminal\", \"StdinClosed\", \"InputBackpressure\", \"OperationConflict\", \"InputDeliveryUnknown\"] as const,\n\t\t);\n\t}\n\tasync readTaskOutput(task: TaskLease, range: C.OutputRange): Promise<C.Result<C.OutputPage, C.OutputError>> {\n\t\treturn mapped(\n\t\t\tawait this.#native.readTaskOutput(this.#task(task).native, range),\n\t\t\t(page) => ({\n\t\t\t\trequested: page.requested,\n\t\t\t\tchunks: page.chunks.map((chunk) => ({ offsets: chunk.offsets, bytes: new Uint8Array(chunk.bytes) })),\n\t\t\t\tomittedRanges: page.omittedRanges,\n\t\t\t\t...(page.nextOffset === undefined ? {} : { nextOffset: page.nextOffset }),\n\t\t\t}),\n\t\t\t[\"UnknownTask\", \"OutputUnavailable\"] as const,\n\t\t);\n\t}\n\tasync startAgentTask(\n\t\towner: OwnerLease,\n\t\tintent: C.AgentIntent,\n\t\toperation: C.OperationId,\n\t\tschedule?: (dispatch: () => Promise<void>) => void,\n\t): Promise<C.Result<TaskLease, C.StartFailure>> {\n\t\tconst state = this.#owner(owner);\n\t\tstate.host.binding.authorizeLaunch(intent);\n\t\tconst admitted = mapped(\n\t\t\tthis.#native.startAgentTask(state.native, intent, operation),\n\t\t\t(lease) => lease,\n\t\t\tstartErrors,\n\t\t);\n\t\tif (!admitted.ok) return admitted;\n\t\tconst ref = this.#native.taskReference(admitted.value);\n\t\tif (!ref.ok) throw new Error(ref.error.message);\n\t\tconst id = ref.value.taskId as C.TaskId;\n\t\tconst existing = state.tasks.get(id);\n\t\tif (existing) return { ok: true, value: existing };\n\t\tif (intent.routerSelection) routerSelections.set(id, Object.freeze({ ...intent.routerSelection }));\n\t\tconst task = new TaskCapability();\n\t\tObject.freeze(task);\n\t\tconst taskState: TaskState = {\n\t\t\tnative: admitted.value,\n\t\t\towner: state,\n\t\t\tref: reference(ref.value),\n\t\t\tcontroller: new AbortController(),\n\t\t\tstatuses: new Map(),\n\t\t\tstatusListeners: new Set(),\n\t\t};\n\t\tthis.#tasks.set(task, taskState);\n\t\tstate.tasks.set(id, task);\n\t\tconst dispatch = AsyncResource.bind(async () => {\n\t\t\tif (taskState.controller.signal.aborted) return;\n\t\t\tconst runner = mapped(this.#native.claimTaskRunner(admitted.value), (lease) => lease, startErrors);\n\t\t\tif (!runner.ok) throw new Error(`${runner.error.code}: ${runner.error.message}`);\n\t\t\tlet execution: FakeExecution;\n\t\t\ttry {\n\t\t\t\texecution = state.host.binding.createRunner(\n\t\t\t\t\t{\n\t\t\t\t\t\tref: reference(taskState.ref),\n\t\t\t\t\t\tsignal: taskState.controller.signal,\n\t\t\t\t\t\tbindTranscript: (session) => {\n\t\t\t\t\t\t\ttaskState.inheritedEntryCount ??= session.getEntries().length;\n\t\t\t\t\t\t\ttaskState.transcript = session;\n\t\t\t\t\t\t},\n\t\t\t\t\t\treportActivity: (report) =>\n\t\t\t\t\t\t\tmapped(this.#native.reportTaskActivity(runner.value, report), reportReceipt, reportErrors),\n\t\t\t\t\t\tsetExtensionStatus: (statusKey, text) => setTaskStatus(taskState, statusKey, text),\n\t\t\t\t\t\tclearExtensionStatuses: () => clearTaskStatuses(taskState),\n\t\t\t\t\t},\n\t\t\t\t\tintent,\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tconst message = rejectionMessage(error);\n\t\t\t\texecution = {\n\t\t\t\t\tresult: Promise.resolve({ kind: \"failed\", code: \"SpawnFailed\", message }),\n\t\t\t\t\tcleanup: Promise.resolve({\n\t\t\t\t\t\tkind: \"failed\",\n\t\t\t\t\t\tresources: [{ resource: \"fake-runner-setup\", code: \"CleanupUnconfirmed\", message }],\n\t\t\t\t\t}),\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst outcome = execution.result\n\t\t\t\t.catch((error) => ({ kind: \"failed\" as const, code: \"RunnerFailed\", message: rejectionMessage(error) }))\n\t\t\t\t.then((result) => {\n\t\t\t\t\treturn mapped(\n\t\t\t\t\t\tthis.#native.reportRunnerOutcome(runner.value, result),\n\t\t\t\t\t\t(receipt) => this.#notifyTaskSettled(state, taskState.ref, receipt),\n\t\t\t\t\t\treportErrors,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\tconst cleanup = execution.cleanup.catch(\n\t\t\t\t(error): C.Cleanup => ({\n\t\t\t\t\tkind: \"failed\",\n\t\t\t\t\tresources: [{ resource: \"fake-runner\", code: \"CleanupFailed\", message: rejectionMessage(error) }],\n\t\t\t\t}),\n\t\t\t);\n\t\t\ttaskState.execution = cleanup.then(async (evidence) => {\n\t\t\t\t// Natural reaping follows its outcome; cancellation needs only confirmed stop.\n\t\t\t\t// A result may never arrive after abort, including when cleanup arrived first.\n\t\t\t\tconst signal = taskState.controller.signal;\n\t\t\t\tlet stopped!: () => void;\n\t\t\t\tconst cancelled = new Promise<undefined>((resolve) => {\n\t\t\t\t\tstopped = () => resolve(undefined);\n\t\t\t\t\tif (signal.aborted) stopped();\n\t\t\t\t\telse signal.addEventListener(\"abort\", stopped, { once: true });\n\t\t\t\t});\n\t\t\t\tconst reported = await Promise.race([outcome, cancelled]).finally(() => {\n\t\t\t\t\tsignal.removeEventListener(\"abort\", stopped);\n\t\t\t\t});\n\t\t\t\t// The task ended: nothing of its session's presentation outlives it.\n\t\t\t\tclearTaskStatuses(taskState);\n\t\t\t\tconst acknowledged = mapped(\n\t\t\t\t\tthis.#native.acknowledgeTaskCleanup(runner.value, evidence),\n\t\t\t\t\t(cleanup) => cleanup,\n\t\t\t\t\treportErrors,\n\t\t\t\t);\n\t\t\t\tif (reported && !reported.ok && !(signal.aborted && reported.error.code === \"ReportConflict\"))\n\t\t\t\t\treturn reported;\n\t\t\t\treturn acknowledged;\n\t\t\t});\n\t\t\tawait taskState.execution;\n\t\t});\n\t\tif (schedule) schedule(dispatch);\n\t\telse void dispatch();\n\t\t// Setup is complete. Do not await execution; ready terminal microtasks may win observation.\n\t\tawait Promise.resolve();\n\t\treturn { ok: true, value: task };\n\t}\n\ttaskReference(task: TaskLease): C.NativeTaskRef {\n\t\treturn reference(this.#task(task).ref);\n\t}\n\tasync waitForTask(\n\t\ttask: TaskLease,\n\t\tbudgetMs?: number,\n\t\tdesignation?: HostSession,\n\t): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\tconst registered = mapped(\n\t\t\tthis.#native.waitForTask(\n\t\t\t\tthis.#task(task).native,\n\t\t\t\tthis.#agentBudget(this.#task(task).owner, budgetMs, this.#task(task).kind === \"command\"),\n\t\t\t\tdesignation ? this.#host(designation).native : undefined,\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\twaitErrors,\n\t\t);\n\t\treturn registered.ok ? this.observeTaskWait(registered.value) : registered;\n\t}\n\t/** Resolve only a task admitted under this live owner; IDs alone confer no authority. */\n\tlookupTask(owner: OwnerLease, taskId: C.TaskId): C.Result<TaskLease, C.WaitError> {\n\t\tconst state = this.#owner(owner);\n\t\tconst found = mapped(this.#native.lookupTask(state.native, taskId), () => state.tasks.get(taskId), waitErrors);\n\t\tif (!found.ok) return found;\n\t\tif (!found.value) return { ok: false, error: { code: \"UnknownTask\", message: \"No agent runner bound to task\" } };\n\t\treturn { ok: true, value: found.value };\n\t}\n\n\tasync waitForTaskId(\n\t\towner: OwnerLease,\n\t\ttaskId: C.TaskId,\n\t\tbudgetMs?: number,\n\t\tonRegistered?: (wait: WaitLease) => void,\n\t): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\tconst found = mapped(this.#native.lookupTask(this.#owner(owner).native, taskId), (lease) => lease, waitErrors);\n\t\tif (!found.ok) return found;\n\t\tconst known = this.#owner(owner).tasks.get(taskId);\n\t\tconst registered = mapped(\n\t\t\tthis.#native.waitForTask(\n\t\t\t\tfound.value,\n\t\t\t\tthis.#agentBudget(\n\t\t\t\t\tthis.#owner(owner),\n\t\t\t\t\tbudgetMs,\n\t\t\t\t\tknown !== undefined && this.#task(known).kind === \"command\",\n\t\t\t\t),\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\twaitErrors,\n\t\t);\n\t\tif (!registered.ok) return registered;\n\t\tonRegistered?.(registered.value);\n\t\treturn this.observeTaskWait(registered.value);\n\t}\n\tasync foregroundTask(task: TaskLease, budgetMs?: number): Promise<C.Result<C.WaitOutcome, C.ForegroundError>> {\n\t\tconst state = this.#task(task);\n\t\tconst errors = [\"TaskTerminal\", \"OwnerClosing\", \"UnknownTask\", \"ObserverCancelled\"] as const;\n\t\tconst registered = mapped(\n\t\t\tthis.#native.foregroundTask(\n\t\t\t\tstate.native,\n\t\t\t\tstate.owner.host.native,\n\t\t\t\tthis.#agentBudget(state.owner, budgetMs, state.kind === \"command\"),\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\terrors,\n\t\t);\n\t\treturn registered.ok\n\t\t\t? mapped(await this.observeTaskWait(registered.value), (outcome) => outcome, errors)\n\t\t\t: registered;\n\t}\n\twaitId(wait: WaitLease): C.WaitId {\n\t\treturn this.#wait(wait).native.waitId as C.WaitId;\n\t}\n\tfindWait(id: C.WaitId): WaitLease | undefined {\n\t\treturn this.#waitRegistry.get(id);\n\t}\n\tobserveTaskWait(wait: WaitLease): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\treturn this.#wait(wait).outcome;\n\t}\n\tyieldTaskWait(wait: WaitLease, reason: C.YieldReason): C.Result<C.WaitOutcome, C.YieldError> {\n\t\treturn mapped(this.#native.yieldTaskWait(this.#wait(wait).native, reason), waitOutcome, [\n\t\t\t\"UnknownWait\",\n\t\t\t\"StaleGeneration\",\n\t\t\t\"ObserverCancelled\",\n\t\t]);\n\t}\n\tdisposeTaskWait(wait: WaitLease): C.Result<void, C.WaitError> {\n\t\treturn mapped(this.#native.disposeTaskWait(this.#wait(wait).native), () => undefined, waitErrors);\n\t}\n\tasync initialObservation(\n\t\ttask: TaskLease,\n\t\tpolicy?: C.WaitPolicy,\n\t\tonRegistered?: (wait: WaitLease) => void,\n\t): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\tconst state = this.#task(task);\n\t\tpolicy ??= state.kind === \"command\" ? { kind: \"foreground\" } : undefined;\n\t\tconst registered = mapped(\n\t\t\tthis.#native.waitForTask(\n\t\t\t\tstate.native,\n\t\t\t\tpolicy?.kind === \"foreground\"\n\t\t\t\t\t? this.#agentBudget(state.owner, policy.budgetMs, state.kind === \"command\")\n\t\t\t\t\t: undefined,\n\t\t\t\tstate.owner.host.native,\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\twaitErrors,\n\t\t);\n\t\tif (!registered.ok) return registered;\n\t\tonRegistered?.(registered.value);\n\t\tif (policy?.kind !== \"foreground\")\n\t\t\tthis.yieldTaskWait(registered.value, policy ? \"explicit\" : \"default-background\");\n\t\treturn this.observeTaskWait(registered.value);\n\t}\n\tasync cancelTask(task: TaskLease, cause: C.CancelCause): Promise<C.Result<C.CancelReceipt, C.CancelError>> {\n\t\tconst state = this.#task(task);\n\t\tconst result = mapped(this.#native.cancelTask(state.native, cause), cancelReceipt, [\n\t\t\t\"UnknownTask\",\n\t\t\t\"CleanupFailed\",\n\t\t]);\n\t\tif (result.ok && result.value.decision === \"cancellation-requested\") state.controller.abort(cause);\n\t\treturn result;\n\t}\n\tasync closeTaskOwner(\n\t\towner: OwnerLease,\n\t\tcause: C.OwnerCloseCause,\n\t): Promise<C.Result<C.OwnerCloseReceipt, C.CloseError>> {\n\t\tconst state = this.#owner(owner);\n\t\tstate.closing.abort(new Error(\"Task owner is closed\"));\n\t\tconst closing = this.#native.closeTaskOwner(state.native, cause);\n\t\tfor (const task of state.tasks.values()) this.#task(task).controller.abort(\"owner-close\");\n\t\tconst result = mapped(\n\t\t\tawait closing,\n\t\t\t(receipt): C.OwnerCloseReceipt => ({\n\t\t\t\townerId: receipt.ownerId as C.OwnerId,\n\t\t\t\tstate: \"closed\",\n\t\t\t\ttasks: receipt.tasks.map(cancelReceipt),\n\t\t\t}),\n\t\t\t[\"CleanupFailed\", \"EnvironmentClosing\"],\n\t\t);\n\t\tif (result.ok)\n\t\t\tfor (const task of state.tasks.values()) {\n\t\t\t\tconst completed = await this.#task(task).execution;\n\t\t\t\tif (completed && !completed.ok)\n\t\t\t\t\tthrow new Error(`Runner protocol failed: ${completed.error.code}: ${completed.error.message}`);\n\t\t\t}\n\t\tif (result.ok)\n\t\t\tfor (const watch of state.watches) {\n\t\t\t\twatch.drain();\n\t\t\t\twatch.dispose(false);\n\t\t\t}\n\t\tif (result.ok) {\n\t\t\tfor (const taskId of [...state.permits.keys()]) this.#releasePermit(state, taskId);\n\t\t\tawait Promise.all([...state.releases]);\n\t\t\tconst failure = state.releaseFailures.shift();\n\t\t\tif (failure) throw failure;\n\t\t}\n\t\treturn result;\n\t}\n\t/**\n\t * The bounded stream carries only authentic deltas. Overflow/native reset publishes\n\t * snapshot/cursor then ends the current iterator, even with no surviving delta.\n\t * Reconcile on completion; obtain a new iterator on the same events iterable to\n\t * continue observing. Apply snapshots first and ignore deltas at/below their cursor.\n\t * onReconcile is optional; consumer failures never disable the fallback poll.\n\t */\n\twatchOwnerTasks(owner: OwnerLease, from?: C.Cursor): C.Result<TaskSubscription, C.WatchError> {\n\t\tconst state = this.#owner(owner);\n\t\tlet subscription: TaskSubscription | undefined;\n\t\treturn mapped(\n\t\t\tthis.#native.watchOwnerTasks(state.native, (hint) => subscription?.wake(hint), from),\n\t\t\t(initial) => {\n\t\t\t\tsubscription = new TaskSubscription(this.#native, initial, () => {\n\t\t\t\t\tif (subscription) state.watches.delete(subscription);\n\t\t\t\t});\n\t\t\t\tstate.watches.add(subscription);\n\t\t\t\treturn subscription;\n\t\t\t},\n\t\t\twatchErrors,\n\t\t);\n\t}\n\t#agentBudget(owner: OwnerState, budgetMs?: number, command = false): number | undefined {\n\t\tif (budgetMs !== undefined) return budgetMs;\n\t\tconst configuration = owner.host.binding.tasks?.wait;\n\t\tif (configuration?.kind === \"until-settled\") return undefined;\n\t\treturn command\n\t\t\t? (configuration?.commandBudgetMs ?? COMMAND_FOREGROUND_BUDGET_MS)\n\t\t\t: (configuration?.agentBudgetMs ?? DEFAULT_AGENT_WAIT_BUDGET_MS);\n\t}\n\t#register(lease: native.WaitLease): WaitLease {\n\t\tconst wait = new WaitCapability();\n\t\tObject.freeze(wait);\n\t\tconst id = lease.waitId as C.WaitId;\n\t\tthis.#waitRegistry.set(id, wait);\n\t\tconst outcome = this.#native\n\t\t\t.observeTaskWait(lease)\n\t\t\t.then((result) => mapped(result, waitOutcome, waitErrors))\n\t\t\t.finally(() => {\n\t\t\t\tthis.#waitRegistry.delete(id);\n\t\t\t});\n\t\tthis.#waits.set(wait, { native: lease, outcome });\n\t\treturn wait;\n\t}\n\t#host(host: HostSession): HostState {\n\t\tconst state = this.#hosts.get(host);\n\t\tif (!state) throw new TypeError(\"Foreign host capability\");\n\t\treturn state;\n\t}\n\t#owner(owner: OwnerLease): OwnerState {\n\t\tconst state = this.#owners.get(owner);\n\t\tif (!state) throw new TypeError(\"Foreign owner capability\");\n\t\treturn state;\n\t}\n\t#task(task: TaskLease): TaskState {\n\t\tconst state = this.#tasks.get(task);\n\t\tif (!state) throw new TypeError(\"Foreign task capability\");\n\t\treturn state;\n\t}\n\t#wait(wait: WaitLease): WaitState {\n\t\tconst state = this.#waits.get(wait);\n\t\tif (!state) throw new TypeError(\"Foreign wait capability\");\n\t\treturn state;\n\t}\n}\n"]}
1
+ {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../../src/core/tasks/supervisor.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncResource } from \"node:async_hooks\";\nimport { isDeepStrictEqual } from \"node:util\";\nimport type * as native from \"@bastani/atomic-natives\";\nimport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport { createModuleRequire } from \"../../utils/module-require.ts\";\nimport type { AgentSessionEvent } from \"../agent-session.js\";\nimport { currentResourceAdmission } from \"../resource-admission-scope.ts\";\nimport type { ResourcePermit } from \"../sdk-types.ts\";\nimport type { SessionManager } from \"../session-manager.ts\";\nimport { COMMAND_FOREGROUND_BUDGET_MS } from \"./command-output.js\";\nimport type { TaskCompletionSource } from \"./completion-ordering.js\";\nimport type * as C from \"./contracts.js\";\n\nexport type TaskTranscriptSource = Pick<SessionManager, \"getSessionId\" | \"getEntries\"> & {\n\treadonly completionSource?: TaskCompletionSource;\n\t/** Viewer-only subscription; updates never publish task lifecycle events. */\n\tsubscribe?(listener: (event: AgentSessionEvent) => void): () => void;\n\tgetStreamingMessage?(): AgentMessage | undefined;\n};\n\nexport const DEFAULT_AGENT_WAIT_BUDGET_MS = 30000;\n/** These objects are live authority, not DTOs, restart tokens or model arguments. */\nclass Capability {\n\t#live = true;\n\ttoJSON(): never {\n\t\tthrow new TypeError(`Task capability is not serializable (${this.#live ? \"live\" : \"closed\"})`);\n\t}\n}\nclass HostCapability extends Capability {\n\treadonly kind = \"host\";\n}\nclass OwnerCapability extends Capability {\n\treadonly kind = \"owner\";\n}\nclass TaskCapability extends Capability {\n\treadonly kind = \"task\";\n}\nclass WaitCapability extends Capability {\n\treadonly kind = \"wait\";\n}\nclass SubscriptionCapability extends Capability {\n\treadonly kind = \"subscription\";\n}\nclass StdinCapability extends Capability {\n\treadonly kind = \"stdin\";\n}\nexport type StdinLease = StdinCapability;\nexport type HostSession = HostCapability;\nexport type OwnerLease = OwnerCapability;\nexport type TaskLease = TaskCapability;\nexport type WaitLease = WaitCapability;\nexport type SubscriptionLease = SubscriptionCapability;\n\nexport type FakeRunnerContext = {\n\tref: C.NativeTaskRef;\n\tsignal: AbortSignal;\n\treportActivity(report: C.ActivityReport): C.Result<C.ReportReceipt, C.ReportError>;\n\t/** Bind existing child history while holding the admitted runner authority. */\n\tbindTranscript(session: TaskTranscriptSource): void;\n\t/** Record (or, with `undefined`, remove) one extension status written by the task's own session. */\n\tsetExtensionStatus(statusKey: string, text: string | undefined): void;\n\t/** Drop every status the task's session set: its session ended or was replaced. */\n\tclearExtensionStatuses(): void;\n};\n/** Independent cleanup evidence: an outcome alone never proves resource release. */\nexport type FakeExecution = { result: Promise<C.TaskResult>; cleanup: Promise<C.Cleanup> };\nexport type TrustedTaskHost = {\n\tscope: C.OwnerScope;\n\t/** Owner-host observation settings; never an execution deadline. */\n\ttasks?: { wait?: C.TaskWaitConfiguration };\n\t/** The existing host/tool refusal throws here, before native admission. */\n\tauthorizeCommandLaunch?(intent: C.CommandIntent): void;\n\tauthorizeLaunch(intent: C.AgentIntent): void;\n\tresourceAdmission?: import(\"../sdk-types.ts\").ResourceAdmission;\n\tonTaskSettled?(ref: C.NativeTaskRef, receipt: C.SettlementReceipt): void;\n\t/** Heartbeat cadence for a launch that names none, fixed on its record at admission; omitted, none is recorded. */\n\tdefaultHeartbeatMs?(): number | undefined;\n\tcreateRunner(context: FakeRunnerContext, intent: C.AgentIntent): FakeExecution;\n};\ntype HostState = { native: native.HostSession; binding: TrustedTaskHost };\ntype OwnerState = {\n\tid: C.OwnerId;\n\tnative: native.OwnerLease;\n\thost: HostState;\n\ttasks: Map<C.TaskId, TaskLease>;\n\twatches: Set<TaskSubscription>;\n\tsettledTasks: Set<C.TaskId>;\n\tcommandAdmissions: Set<Promise<void>>;\n\tclosing: AbortController;\n\tpermits: Map<C.TaskId, ResourcePermit>;\n\treleases: Set<Promise<void>>;\n\treleaseFailures: Error[];\n\tcommandStarts: Map<C.OperationId, { intent: C.CommandIntent; result: Promise<C.Result<TaskLease, C.StartFailure>> }>;\n};\ntype TaskState = {\n\tnative: native.TaskLease;\n\towner: OwnerState;\n\tref: C.NativeTaskRef;\n\tcontroller: AbortController;\n\tkind?: \"command\";\n\texecution?: Promise<C.Result<C.Cleanup, C.ReportError>>;\n\ttranscript?: TaskTranscriptSource;\n\tinheritedEntryCount?: number;\n\t/** Extension `setStatus` writes of the task's own session; they never reach the host's footer. */\n\tstatuses: Map<string, string>;\n\tstatusListeners: Set<() => void>;\n};\ntype WaitState = { native: native.WaitLease; outcome: Promise<C.Result<C.WaitOutcome, C.WaitError>> };\n\n// Native supervisors share one actor per environment; their JS continuations must too.\nconst environment = {\n\thosts: new WeakMap<HostSession, HostState>(),\n\towners: new WeakMap<OwnerLease, OwnerState>(),\n\ttasks: new WeakMap<TaskLease, TaskState>(),\n\tinputs: new WeakMap<StdinLease, native.StdinLease>(),\n\twaits: new WeakMap<WaitLease, WaitState>(),\n\twaitRegistry: new Map<C.WaitId, WaitLease>(),\n\townerIds: new Map<C.OwnerId, OwnerLease>(),\n};\n\n/** Reads only history bound by the admitted runner, never a caller-selected session. */\nexport function taskTranscriptSource(\n\ttask: TaskLease,\n): C.Result<{ session: TaskTranscriptSource; taskId: C.TaskId }, C.Failure<\"UnknownTask\" | \"TranscriptUnavailable\">> {\n\tconst state = environment.tasks.get(task);\n\tif (!state) return { ok: false, error: { code: \"UnknownTask\", message: \"Unknown task\" } };\n\tif (!state.transcript)\n\t\treturn { ok: false, error: { code: \"TranscriptUnavailable\", message: \"Transcript unavailable\" } };\n\treturn { ok: true, value: { session: state.transcript, taskId: state.ref.taskId } };\n}\n\nconst NO_STATUSES: ReadonlyMap<string, string> = new Map();\n\n/** Extension statuses written by this task's own session, by status key; empty once it ends. */\nexport function taskExtensionStatuses(task: TaskLease): ReadonlyMap<string, string> {\n\treturn environment.tasks.get(task)?.statuses ?? NO_STATUSES;\n}\n\n/** Viewer-only: runs `listener` whenever the task's extension statuses change. */\nexport function watchTaskExtensionStatuses(task: TaskLease, listener: () => void): () => void {\n\tconst listeners = environment.tasks.get(task)?.statusListeners;\n\tlisteners?.add(listener);\n\treturn () => {\n\t\tlisteners?.delete(listener);\n\t};\n}\n\nfunction notifyStatusListeners(state: TaskState): void {\n\tfor (const listener of [...state.statusListeners]) {\n\t\ttry {\n\t\t\tlistener();\n\t\t} catch {\n\t\t\t// A viewer's repaint failure must not break the extension's status write.\n\t\t}\n\t}\n}\n\nfunction setTaskStatus(state: TaskState, statusKey: string, text: string | undefined): void {\n\tif (text === undefined) {\n\t\tif (!state.statuses.delete(statusKey)) return;\n\t} else {\n\t\tif (state.statuses.get(statusKey) === text) return;\n\t\tstate.statuses.set(statusKey, text);\n\t}\n\tnotifyStatusListeners(state);\n}\n\nfunction clearTaskStatuses(state: TaskState): void {\n\tif (state.statuses.size === 0) return;\n\tstate.statuses.clear();\n\tnotifyStatusListeners(state);\n}\n\n/** History the runner produced; a forked child's inherited parent entries are excluded. */\nexport function taskOwnTranscriptEntries(task: TaskLease): ReturnType<TaskTranscriptSource[\"getEntries\"]> | undefined {\n\tconst state = environment.tasks.get(task);\n\treturn state?.transcript?.getEntries().slice(state.inheritedEntryCount ?? 0);\n}\n\n/** Promise rejections, setup throws and consumer exceptions may be arbitrary JavaScript values. */\nfunction rejectionMessage<T>(reason: T): string {\n\ttry {\n\t\tconst message = reason instanceof Error ? reason.message : reason;\n\t\treturn typeof message === \"string\" ? message : String(message);\n\t} catch {\n\t\treturn \"Unprintable JavaScript rejection\";\n\t}\n}\nfunction mapped<T, U, Code extends string>(\n\tresult: C.Result<T, native.TaskFailure>,\n\tconvert: (value: T) => U,\n\tcodes: readonly Code[],\n): C.Result<U, C.Failure<Code>> {\n\tif (result.ok) return { ok: true, value: convert(result.value) };\n\tconst code = codes.find((candidate) => candidate === result.error.code);\n\tif (!code) throw new Error(`Unexpected native task refusal: ${result.error.code}: ${result.error.message}`);\n\treturn { ok: false, error: { code, message: result.error.message } };\n}\nconst ownerErrors = [\"ScopeMismatch\", \"EnvironmentClosing\"] as const;\nconst startErrors = [\n\t\"OwnerClosing\",\n\t\"UnknownAgent\",\n\t\"InvalidCwd\",\n\t\"DepthExceeded\",\n\t\"CapacityExhausted\",\n\t\"DispatchGuardBusy\",\n\t\"OperationConflict\",\n\t\"RunnerUnavailable\",\n\t\"SpawnFailed\",\n\t\"ContainmentUnavailable\",\n] as const;\nconst waitErrors = [\"UnknownTask\", \"OwnerClosed\", \"EnvironmentClosing\", \"ScopeMismatch\", \"ObserverCancelled\"] as const;\nconst reportErrors = [\"StaleAttempt\", \"OwnerClosing\", \"TaskTerminal\", \"ReportConflict\"] as const;\nconst watchErrors = [\"OwnerClosed\", \"StaleGeneration\", \"EnvironmentClosing\"] as const;\nfunction reference(value: native.NativeTaskRef): C.NativeTaskRef {\n\treturn {\n\t\townerId: value.ownerId as C.OwnerId,\n\t\ttaskId: value.taskId as C.TaskId,\n\t\tattemptId: value.attemptId as C.AttemptId,\n\t\tgeneration: value.generation as C.Generation,\n\t};\n}\nfunction cursor(value: native.Cursor): C.Cursor {\n\treturn { generation: value.generation as C.Generation, sequence: value.sequence as C.Sequence };\n}\nfunction output(value: native.OutputRef): C.OutputRef {\n\treturn {\n\t\townerId: value.ownerId as C.OwnerId,\n\t\ttaskId: value.taskId as C.TaskId,\n\t\tartifactId: value.artifactId,\n\t\tbyteCount: value.byteCount,\n\t\tomittedRanges: value.omittedRanges.map(({ start, end }) => ({ start, end })),\n\t};\n}\nfunction taskResult(value: native.TaskResult): C.TaskResult {\n\tswitch (value.kind) {\n\t\tcase \"completed\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\toutput: output(value.output),\n\t\t\t\t...(value.exitCode === undefined ? {} : { exitCode: value.exitCode }),\n\t\t\t};\n\t\tcase \"failed\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tcode: value.code,\n\t\t\t\tmessage: value.message,\n\t\t\t\t...(value.output === undefined ? {} : { output: output(value.output) }),\n\t\t\t\t...(value.exitCode === undefined ? {} : { exitCode: value.exitCode }),\n\t\t\t};\n\t\tcase \"cancelled\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tcause: value.cause,\n\t\t\t\t...(value.output === undefined ? {} : { output: output(value.output) }),\n\t\t\t};\n\t}\n}\nfunction execution(value: native.Execution): C.Execution {\n\treturn value.kind === \"settled\" ? { kind: \"settled\", result: taskResult(value.result) } : value;\n}\nfunction observation(value: native.HostObservation): C.HostObservation {\n\tif (value.kind === \"foreground\") return { kind: value.kind, waitId: value.waitId as C.WaitId };\n\tif (value.kind === \"none\" && (value.reason === \"task-settled\" || value.reason === \"owner-closing\"))\n\t\treturn { kind: value.kind, reason: value.reason };\n\tconst reasons = [\n\t\t\"explicit\",\n\t\t\"default-background\",\n\t\t\"elapsed\",\n\t\t\"intercom-coordination\",\n\t\t\"input-needed\",\n\t\t\"not-observed\",\n\t\t\"observer-cancelled\",\n\t] as const;\n\tconst reason = reasons.find((reason) => reason === value.reason);\n\tif (value.kind === \"background\" && reason) return { kind: value.kind, reason };\n\tthrow new Error(\"Invalid native host observation\");\n}\n// Native records own lifecycle and mutable execution metadata. Routing provenance is\n// immutable host metadata, retained for the same environment lifetime as task records.\nconst routerSelections = new Map<string, C.RouterSelection>();\n// Launch heartbeat cadences, keyed by owner and launch operation rather than task id: a command's\n// record can be observed before its native start resolves, and it must already carry its cadence.\nconst launchHeartbeats = new Map<string, number>();\nfunction launchKey(ownerId: string, operation: string): string {\n\treturn `${ownerId}\\0${operation}`;\n}\n/** Record a launch's cadence before native admission; returns the key to forget if admission fails. */\nfunction rememberLaunchHeartbeat(ownerId: C.OwnerId, operation: C.OperationId, heartbeatMs?: number) {\n\tconst key = launchKey(ownerId, operation);\n\t// A replayed operation keeps the cadence of the launch that admitted it.\n\tif (heartbeatMs === undefined || launchHeartbeats.has(key)) return undefined;\n\tlaunchHeartbeats.set(key, heartbeatMs);\n\treturn key;\n}\nfunction record(value: native.TaskRecord): C.TaskRecord {\n\tif (value.kind !== \"agent\" && value.kind !== \"command\") throw new Error(`Invalid native task kind: ${value.kind}`);\n\tconst routerSelection = routerSelections.get(value.ref.taskId);\n\tconst heartbeatMs = launchHeartbeats.get(launchKey(value.ref.ownerId, value.launchOperationId));\n\treturn {\n\t\tref: reference(value.ref),\n\t\tlaunchOperationId: value.launchOperationId as C.OperationId,\n\t\t...(value.parentTaskId === undefined ? {} : { parentTaskId: value.parentTaskId as C.TaskId }),\n\t\t...(value.launchGroupId === undefined ? {} : { launchGroupId: value.launchGroupId }),\n\t\tlaunchOrdinal: value.launchOrdinal,\n\t\tkind: value.kind,\n\t\ttitle: value.title,\n\t\t...(value.agentName === undefined ? {} : { agentName: value.agentName }),\n\t\t...(value.model === undefined ? {} : { model: value.model }),\n\t\t...(value.thinking === undefined ? {} : { thinking: value.thinking }),\n\t\t...(routerSelection ? { routerSelection } : {}),\n\t\t...(heartbeatMs === undefined ? {} : { heartbeatMs }),\n\t\texecution: execution(value.execution),\n\t\tobservation: observation(value.observation),\n\t\t...(value.wasBackground === undefined ? {} : { wasBackground: value.wasBackground }),\n\t\tattention: value.attention,\n\t\tcleanup: value.cleanup,\n\t\t...(value.currentAction === undefined\n\t\t\t? {}\n\t\t\t: { currentAction: { tool: value.currentAction.tool, text: value.currentAction.text } }),\n\t\t...(value.metrics === undefined\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\tmetrics: {\n\t\t\t\t\t\t...(value.metrics.elapsedMs === undefined ? {} : { elapsedMs: value.metrics.elapsedMs }),\n\t\t\t\t\t\t...(value.metrics.toolCount === undefined ? {} : { toolCount: value.metrics.toolCount }),\n\t\t\t\t\t\t...(value.metrics.tokenCount === undefined ? {} : { tokenCount: value.metrics.tokenCount }),\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\toutput: output(value.output),\n\t};\n}\nfunction snapshot(value: native.OwnerSnapshot): C.OwnerSnapshot {\n\tif (value.state !== \"open\" && value.state !== \"closing\" && value.state !== \"closed\")\n\t\tthrow new Error(`Invalid native owner state: ${value.state}`);\n\treturn {\n\t\townerId: value.ownerId as C.OwnerId,\n\t\tscope: value.scope,\n\t\tgeneration: value.generation as C.Generation,\n\t\tstate: value.state,\n\t\ttasks: value.tasks.map(record),\n\t\tcursor: cursor(value.cursor),\n\t};\n}\nfunction activity(value: native.ActivityReport): C.ActivityReport {\n\tif (value.change.kind === \"attention-set\" && value.change.attention.kind === \"none\")\n\t\tthrow new Error(\"Native attention-set cannot clear attention\");\n\t// Native tagged variants are owned wire data; only attention-set has a wider generated declaration.\n\treturn value as C.ActivityReport;\n}\nfunction payload(value: native.TaskEvent): C.TaskEvent {\n\tswitch (value.kind) {\n\t\tcase \"task-admitted\":\n\t\t\treturn { kind: value.kind, task: record(value.task) };\n\t\tcase \"task-started\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref) };\n\t\tcase \"wait-started\": {\n\t\t\tif (value.observer !== \"sdk\" && value.observer !== \"host\") throw new Error(\"Invalid native observer\");\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tref: reference(value.ref),\n\t\t\t\twaitId: value.waitId as C.WaitId,\n\t\t\t\tobserver: value.observer,\n\t\t\t};\n\t\t}\n\t\tcase \"wait-yielded\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), waitId: value.waitId as C.WaitId, reason: value.reason };\n\t\tcase \"host-observation-changed\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), observation: observation(value.observation) };\n\t\tcase \"task-activity\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), activity: activity(value.activity) };\n\t\tcase \"task-cancelling\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), cause: value.cause };\n\t\tcase \"task-settled\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tref: reference(value.ref),\n\t\t\t\tresult: taskResult(value.result),\n\t\t\t\tcompletionId: value.completionId,\n\t\t\t};\n\t\tcase \"cleanup-changed\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), cleanup: value.cleanup };\n\t\tcase \"owner-closing\":\n\t\tcase \"owner-closed\":\n\t\t\treturn { kind: value.kind };\n\t}\n}\nfunction event(value: native.NativeEvent): C.NativeEvent {\n\tif (value.schemaVersion !== 1) throw new Error(\"Unsupported native task event schema\");\n\treturn {\n\t\tschemaVersion: 1,\n\t\tcursor: cursor(value.cursor),\n\t\townerId: value.ownerId as C.OwnerId,\n\t\t...(value.taskId === undefined ? {} : { taskId: value.taskId as C.TaskId }),\n\t\tpayload: payload(value.payload),\n\t};\n}\nfunction waitOutcome(value: native.WaitOutcome): C.WaitOutcome {\n\treturn value.kind === \"settled\"\n\t\t? { kind: value.kind, taskId: value.taskId as C.TaskId, result: taskResult(value.result) }\n\t\t: { kind: value.kind, taskId: value.taskId as C.TaskId, waitId: value.waitId as C.WaitId, reason: value.reason };\n}\nfunction cancelReceipt(value: native.CancelReceipt): C.CancelReceipt {\n\tif (value.decision !== \"already-settled\" && value.decision !== \"cancellation-requested\")\n\t\tthrow new Error(\"Invalid cancellation decision\");\n\treturn {\n\t\ttaskId: value.taskId as C.TaskId,\n\t\tdecision: value.decision,\n\t\texecution: execution(value.execution),\n\t\tcleanup: value.cleanup,\n\t};\n}\n\nfunction reportReceipt(value: native.ReportReceipt): C.ReportReceipt {\n\tif (value.disposition !== \"accepted\" && value.disposition !== \"duplicate\")\n\t\tthrow new Error(\"Invalid report disposition\");\n\treturn { reportId: value.reportId, cursor: cursor(value.cursor), disposition: value.disposition };\n}\n/** Projection only: native ordering remains the sole lifecycle authority. */\nfunction applyEvent(current: C.OwnerSnapshot, value: C.NativeEvent): C.OwnerSnapshot {\n\tconst next: C.OwnerSnapshot = { ...current, tasks: [...current.tasks], cursor: value.cursor };\n\tconst change = value.payload;\n\tif (change.kind === \"owner-closing\") {\n\t\tnext.state = \"closing\";\n\t\tnext.tasks = next.tasks.map((task) =>\n\t\t\ttask.execution.kind === \"settled\" ? task : { ...task, attention: { kind: \"none\" } },\n\t\t);\n\t\treturn next;\n\t}\n\tif (change.kind === \"owner-closed\") {\n\t\tnext.state = \"closed\";\n\t\treturn next;\n\t}\n\tif (change.kind === \"task-admitted\") {\n\t\tnext.tasks.push(change.task);\n\t\treturn next;\n\t}\n\tconst index = next.tasks.findIndex((task) => task.ref.taskId === change.ref.taskId);\n\tif (index < 0) throw new Error(\"Native delta references a task absent from its snapshot\");\n\tconst task: C.TaskRecord = { ...next.tasks[index] };\n\tnext.tasks[index] = task;\n\tswitch (change.kind) {\n\t\tcase \"task-started\":\n\t\t\ttask.execution = { kind: \"running\" };\n\t\t\tbreak;\n\t\tcase \"host-observation-changed\":\n\t\t\ttask.observation = change.observation;\n\t\t\tif (change.observation.kind === \"background\" && change.observation.reason !== \"not-observed\")\n\t\t\t\ttask.wasBackground = true;\n\t\t\tbreak;\n\t\tcase \"task-cancelling\":\n\t\t\ttask.execution = { kind: \"cancelling\", cause: change.cause };\n\t\t\tbreak;\n\t\tcase \"task-settled\":\n\t\t\ttask.execution = { kind: \"settled\", result: change.result };\n\t\t\ttask.attention = { kind: \"none\" };\n\t\t\tif (change.result.output !== undefined) task.output = change.result.output;\n\t\t\tbreak;\n\t\tcase \"cleanup-changed\":\n\t\t\ttask.cleanup = change.cleanup;\n\t\t\tbreak;\n\t\tcase \"task-activity\": {\n\t\t\tconst activity = change.activity.change;\n\t\t\tswitch (activity.kind) {\n\t\t\t\tcase \"action\":\n\t\t\t\t\ttask.currentAction = { tool: activity.tool, text: activity.text };\n\t\t\t\t\tif (task.attention.kind === \"no-recent-activity\") task.attention = { kind: \"none\" };\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"model\":\n\t\t\t\t\ttask.model = activity.model;\n\t\t\t\t\ttask.thinking = activity.thinking;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"metrics\":\n\t\t\t\t\ttask.metrics = {\n\t\t\t\t\t\t...task.metrics,\n\t\t\t\t\t\t...(activity.elapsedMs === undefined ? {} : { elapsedMs: activity.elapsedMs }),\n\t\t\t\t\t\t...(activity.toolCount === undefined ? {} : { toolCount: activity.toolCount }),\n\t\t\t\t\t\t...(activity.tokenCount === undefined ? {} : { tokenCount: activity.tokenCount }),\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"attention-set\":\n\t\t\t\t\ttask.attention = activity.attention;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"attention-clear\":\n\t\t\t\t\tif (task.attention.kind === \"input-needed\" && task.attention.requestId === activity.requestId)\n\t\t\t\t\t\ttask.attention = { kind: \"none\" };\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"output\":\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"wait-started\":\n\t\tcase \"wait-yielded\":\n\t\t\tbreak;\n\t}\n\treturn next;\n}\n/** One bounded wake poll per live subscription, including a journal with no retained event. */\nconst RECONCILE_INTERVAL_MS = 25;\nconst MAX_PENDING_EVENTS = 64;\nexport class TaskSubscription {\n\t#native: native.TaskSupervisor;\n\t#lease: native.SubscriptionLease;\n\t#resource = new AsyncResource(\"TaskSubscription\");\n\t#timer?: ReturnType<typeof setTimeout>;\n\t#queue: C.NativeEvent[] = [];\n\t#epoch = 0;\n\t#next?: (value: IteratorResult<C.NativeEvent>) => void;\n\t#disposed = false;\n\t#snapshot: C.OwnerSnapshot;\n\t#cursor: C.Cursor;\n\t/** Reconciliation supplements the RFC snapshot/cursor/iterable contract with the events it applied. */\n\tonReconcile: (snapshot: C.OwnerSnapshot, events: readonly C.NativeEvent[]) => void = () => {};\n\t#onDispose: () => void;\n\t#failure?: Error;\n\treadonly events: AsyncIterable<C.NativeEvent>;\n\treadonly lease: SubscriptionLease = new SubscriptionCapability();\n\n\tconstructor(actor: native.TaskSupervisor, initial: native.NativeTaskSubscription, onDispose: () => void) {\n\t\tObject.freeze(this.lease);\n\t\tthis.#native = actor;\n\t\tthis.#lease = initial.lease;\n\t\tthis.#snapshot = snapshot(initial.snapshot);\n\t\tthis.#cursor = cursor(initial.cursor);\n\t\tthis.#onDispose = onDispose;\n\t\tthis.events = {\n\t\t\t[Symbol.asyncIterator]: () => {\n\t\t\t\tconst epoch = this.#epoch;\n\t\t\t\treturn {\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\tif (epoch !== this.#epoch) return Promise.resolve({ done: true, value: undefined });\n\t\t\t\t\t\tconst value = this.#queue.shift();\n\t\t\t\t\t\tif (value) return Promise.resolve({ done: false, value });\n\t\t\t\t\t\tif (this.#disposed) return Promise.resolve({ done: true, value: undefined });\n\t\t\t\t\t\tif (this.#next) return Promise.reject(new Error(\"Only one pending subscription read is supported\"));\n\t\t\t\t\t\treturn new Promise((resolve) => {\n\t\t\t\t\t\t\tthis.#next = resolve;\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\treturn: async () => {\n\t\t\t\t\t\tif (epoch === this.#epoch) this.dispose();\n\t\t\t\t\t\treturn { done: true, value: undefined };\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t},\n\t\t};\n\t\tthis.#arm();\n\t}\n\tget snapshot(): C.OwnerSnapshot {\n\t\treturn this.#snapshot;\n\t}\n\tget cursor(): C.Cursor {\n\t\treturn this.#cursor;\n\t}\n\t/** Consumer exceptions are observable without breaking the native wake or fallback poll. */\n\tget failure(): Error | undefined {\n\t\treturn this.#failure;\n\t}\n\t/** Callback payloads are authentic hints; only the journal/snapshot is authoritative. */\n\twake(_hint: native.NativeEvent): void {\n\t\tthis.#resource.runInAsyncScope(() => this.drain());\n\t}\n\t#arm(): void {\n\t\tif (this.#disposed || this.#timer) return;\n\t\tthis.#timer = setTimeout(() => {\n\t\t\tthis.#timer = undefined;\n\t\t\tthis.#resource.runInAsyncScope(() => this.drain());\n\t\t\tthis.#arm();\n\t\t}, RECONCILE_INTERVAL_MS);\n\t\tthis.#timer.unref();\n\t}\n\tdrain(): void {\n\t\tif (this.#disposed) return;\n\t\tconst drained = this.#native.drainOwnerTasks(this.#lease);\n\t\tif (!drained.ok) {\n\t\t\tthis.dispose();\n\t\t\treturn;\n\t\t}\n\t\tconst events = drained.value.events.map(event);\n\t\tif (drained.value.snapshot) this.#snapshot = snapshot(drained.value.snapshot);\n\t\tfor (const value of events) {\n\t\t\tif (BigInt(value.cursor.sequence) > BigInt(this.#snapshot.cursor.sequence))\n\t\t\t\tthis.#snapshot = applyEvent(this.#snapshot, value);\n\t\t}\n\t\tthis.#cursor = cursor(drained.value.cursor);\n\t\tthis.#snapshot = { ...this.#snapshot, cursor: this.#cursor };\n\t\tconst overflow = this.#queue.length + events.length > MAX_PENDING_EVENTS;\n\t\tconst reset = drained.value.reset || overflow;\n\t\tif (reset) {\n\t\t\tthis.#queue = [];\n\t\t\tthis.#epoch++;\n\t\t\t// End the old iterator only after publishing the authoritative snapshot/cursor.\n\t\t\t// A new iterator on the same iterable observes subsequent authentic deltas.\n\t\t\tthis.#next?.({ done: true, value: undefined });\n\t\t\tthis.#next = undefined;\n\t\t}\n\t\tif (drained.value.snapshot || events.length) {\n\t\t\ttry {\n\t\t\t\tthis.#resource.runInAsyncScope(this.onReconcile, undefined, this.#snapshot, events);\n\t\t\t} catch (error) {\n\t\t\t\tthis.#failure = new Error(rejectionMessage(error));\n\t\t\t}\n\t\t}\n\t\tif (this.#disposed) return;\n\t\tif (!reset)\n\t\t\tfor (const value of events) {\n\t\t\t\tif (this.#next) {\n\t\t\t\t\tconst next = this.#next;\n\t\t\t\t\tthis.#next = undefined;\n\t\t\t\t\tnext({ done: false, value });\n\t\t\t\t} else this.#queue.push(value);\n\t\t\t}\n\t\tif (this.#snapshot.state === \"closed\") this.dispose(false);\n\t}\n\tdispose(clear = true): void {\n\t\tif (this.#disposed) return;\n\t\tthis.#disposed = true;\n\t\tif (this.#timer) clearTimeout(this.#timer);\n\t\tthis.#timer = undefined;\n\t\tthis.#native.disposeSubscription(this.#lease);\n\t\tif (clear) this.#queue = [];\n\t\tthis.#next?.({ done: true, value: undefined });\n\t\tthis.#next = undefined;\n\t\tthis.#resource.emitDestroy();\n\t\tthis.#onDispose();\n\t}\n}\n\nfunction createNativeSupervisor(): native.TaskSupervisor {\n\t// Keep loading separate from `new`: type-assertion erasure in the build\n\t// must not move construction onto createModuleRequire instead of the class.\n\tconst binding = createModuleRequire(import.meta.url)(\"@bastani/atomic-natives\") as typeof native;\n\treturn new binding.TaskSupervisor();\n}\n\nexport class TaskSupervisor {\n\t#native = createNativeSupervisor();\n\t#hosts = environment.hosts;\n\t#owners = environment.owners;\n\t#tasks = environment.tasks;\n\t#waits = environment.waits;\n\t#waitRegistry = environment.waitRegistry;\n\t#ownerIds = environment.ownerIds;\n\tbindHostSession(binding: TrustedTaskHost): HostSession {\n\t\tconst host = new HostCapability();\n\t\tObject.freeze(host);\n\t\tthis.#hosts.set(host, { native: this.#native.bindHostSession(binding.scope), binding });\n\t\treturn host;\n\t}\n\topenTaskOwner(host: HostSession, scope: C.OwnerScope): C.Result<OwnerLease, C.OwnerError> {\n\t\tconst state = this.#host(host);\n\t\treturn mapped(\n\t\t\tthis.#native.openTaskOwner(state.native, scope),\n\t\t\t(lease) => {\n\t\t\t\tconst probe = this.#native.watchOwnerTasks(lease, (_hint) => {});\n\t\t\t\tif (!probe.ok) throw new Error(probe.error.message);\n\t\t\t\tconst id = probe.value.snapshot.ownerId as C.OwnerId;\n\t\t\t\tthis.#native.disposeSubscription(probe.value.lease);\n\t\t\t\tconst existing = this.#ownerIds.get(id);\n\t\t\t\tif (existing) return existing;\n\t\t\t\tconst owner = new OwnerCapability();\n\t\t\t\tObject.freeze(owner);\n\t\t\t\tconst ownerState: OwnerState = {\n\t\t\t\t\tid,\n\t\t\t\t\tnative: lease,\n\t\t\t\t\thost: state,\n\t\t\t\t\ttasks: new Map(),\n\t\t\t\t\twatches: new Set(),\n\t\t\t\t\tsettledTasks: new Set(),\n\t\t\t\t\tcommandAdmissions: new Set(),\n\t\t\t\t\tclosing: new AbortController(),\n\t\t\t\t\tpermits: new Map(),\n\t\t\t\t\treleases: new Set(),\n\t\t\t\t\treleaseFailures: [],\n\t\t\t\t\tcommandStarts: new Map(),\n\t\t\t\t};\n\t\t\t\tthis.#owners.set(owner, ownerState);\n\t\t\t\tthis.#ownerIds.set(id, owner);\n\t\t\t\tconst watched = this.watchOwnerTasks(owner);\n\t\t\t\tif (!watched.ok) throw new Error(watched.error.message);\n\t\t\t\twatched.value.onReconcile = (projection) => {\n\t\t\t\t\tif (projection.state === \"closed\") this.#ownerIds.delete(projection.ownerId);\n\t\t\t\t\tfor (const record of projection.tasks) {\n\t\t\t\t\t\tconst cause =\n\t\t\t\t\t\t\trecord.execution.kind === \"cancelling\"\n\t\t\t\t\t\t\t\t? record.execution.cause\n\t\t\t\t\t\t\t\t: projection.state !== \"open\" && record.cleanup.kind !== \"reaped\"\n\t\t\t\t\t\t\t\t\t? \"owner-close\"\n\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\tif (!cause) continue;\n\t\t\t\t\t\tconst task = this.#owner(owner).tasks.get(record.ref.taskId);\n\t\t\t\t\t\tif (task) this.#task(task).controller.abort(cause);\n\t\t\t\t\t}\n\t\t\t\t\tlet failure: Error | undefined;\n\t\t\t\t\tfor (const record of projection.tasks) {\n\t\t\t\t\t\tif (record.cleanup.kind === \"reaped\") this.#releasePermit(ownerState, record.ref.taskId);\n\t\t\t\t\t}\n\t\t\t\t\tfor (const record of projection.tasks) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\trecord.execution.kind !== \"settled\" ||\n\t\t\t\t\t\t\townerState.settledTasks.has(record.ref.taskId) ||\n\t\t\t\t\t\t\t!state.binding.onTaskSettled\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Cancellation settles at cleanup (or while queued), without a runner outcome.\n\t\t\t\t\t\t\t// Recover its authentic receipt even when the bounded journal has reset.\n\t\t\t\t\t\t\tconst task = this.#native.lookupTask(lease, record.ref.taskId);\n\t\t\t\t\t\t\tif (!task.ok) throw new Error(task.error.message);\n\t\t\t\t\t\t\tconst settled = this.#native.taskSettlement(task.value);\n\t\t\t\t\t\t\tif (!settled.ok) throw new Error(settled.error.message);\n\t\t\t\t\t\t\tthis.#notifyTaskSettled(ownerState, record.ref, settled.value);\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tfailure ??= new Error(rejectionMessage(error));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (failure) throw failure;\n\t\t\t\t};\n\t\t\t\twatched.value.onReconcile(watched.value.snapshot, []);\n\t\t\t\treturn owner;\n\t\t\t},\n\t\t\townerErrors,\n\t\t);\n\t}\n\t#releasePermit(state: OwnerState, taskId: C.TaskId): void {\n\t\tconst release = state.permits.get(taskId);\n\t\tif (!release) return;\n\t\tstate.permits.delete(taskId);\n\t\tconst pending: Promise<void> = release()\n\t\t\t.catch((error) => {\n\t\t\t\tstate.releaseFailures.push(new Error(rejectionMessage(error)));\n\t\t\t})\n\t\t\t.finally(() => state.releases.delete(pending));\n\t\tstate.releases.add(pending);\n\t}\n\t#notifyTaskSettled(state: OwnerState, ref: C.NativeTaskRef, receipt: native.SettlementReceipt): void {\n\t\tif (!state.host.binding.onTaskSettled || state.settledTasks.has(ref.taskId)) return;\n\t\t// Runner outcomes and snapshot recovery share one delivery door. Mark before\n\t\t// host code so reentrant drains or callback failures cannot redeliver.\n\t\tstate.settledTasks.add(ref.taskId);\n\t\tstate.host.binding.onTaskSettled(ref, {\n\t\t\ttaskId: receipt.taskId as C.TaskId,\n\t\t\tcursor: cursor(receipt.cursor),\n\t\t\tresult: taskResult(receipt.result),\n\t\t\tcompletionId: receipt.completionId,\n\t\t});\n\t}\n\tasync startCommandTask(\n\t\towner: OwnerLease,\n\t\tintent: C.CommandIntent,\n\t\toperation: C.OperationId,\n\t\tsignal?: AbortSignal,\n\t): Promise<C.Result<TaskLease, C.StartFailure>> {\n\t\tconst state = this.#owner(owner);\n\t\tstate.host.binding.authorizeCommandLaunch?.(intent);\n\t\tconst known = state.commandStarts.get(operation);\n\t\tif (known) {\n\t\t\tif (isDeepStrictEqual(known.intent, intent)) return known.result;\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: { code: \"OperationConflict\", message: \"Operation was started with a different command\" },\n\t\t\t};\n\t\t}\n\t\tconst snapshot = structuredClone(intent);\n\t\tconst result = this.#launchCommandTask(state, snapshot, operation, signal);\n\t\tstate.commandStarts.set(operation, { intent: snapshot, result });\n\t\tconst forget = () => {\n\t\t\tif (state.commandStarts.get(operation)?.result === result) state.commandStarts.delete(operation);\n\t\t};\n\t\tresult.then((started) => started.ok || forget(), forget);\n\t\treturn result;\n\t}\n\tasync #launchCommandTask(\n\t\tstate: OwnerState,\n\t\tintent: C.CommandIntent,\n\t\toperation: C.OperationId,\n\t\tsignal?: AbortSignal,\n\t): Promise<C.Result<TaskLease, C.StartFailure>> {\n\t\t// Native command setup can be admitted before its task lease is visible in JS.\n\t\tlet finishAdmission!: () => void;\n\t\tconst admission = new Promise<void>((resolve) => {\n\t\t\tfinishAdmission = resolve;\n\t\t});\n\t\tstate.commandAdmissions.add(admission);\n\t\tlet release: ResourcePermit | undefined;\n\t\ttry {\n\t\t\trelease = await (currentResourceAdmission() ?? state.host.binding.resourceAdmission)?.acquire(\n\t\t\t\t\"process\",\n\t\t\t\tsignal ? AbortSignal.any([signal, state.closing.signal]) : state.closing.signal,\n\t\t\t);\n\t\t\tconst { heartbeatMs, ...nativeIntent } = intent;\n\t\t\tconst heartbeatKey = rememberLaunchHeartbeat(\n\t\t\t\tstate.id,\n\t\t\t\toperation,\n\t\t\t\theartbeatMs ?? state.host.binding.defaultHeartbeatMs?.(),\n\t\t\t);\n\t\t\tlet started: Awaited<ReturnType<native.TaskSupervisor[\"startCommandTask\"]>>;\n\t\t\ttry {\n\t\t\t\tstarted = await this.#native.startCommandTask(state.native, nativeIntent, operation);\n\t\t\t} catch (error) {\n\t\t\t\trelease = undefined;\n\t\t\t\tthrow new Error(`Command cleanup unconfirmed; process permit retained: ${rejectionMessage(error)}`, {\n\t\t\t\t\tcause: error,\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (!started.ok && !startErrors.some((code) => code === started.error.code)) {\n\t\t\t\trelease = undefined;\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Command cleanup unconfirmed; process permit retained: ${started.error.code}: ${started.error.message}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst admitted = mapped(started, (lease) => lease, startErrors);\n\t\t\tif (!admitted.ok) {\n\t\t\t\tif (heartbeatKey !== undefined) launchHeartbeats.delete(heartbeatKey);\n\t\t\t\treturn admitted;\n\t\t\t}\n\t\t\tconst ref = this.#native.taskReference(admitted.value);\n\t\t\tif (!ref.ok) throw new Error(ref.error.message);\n\t\t\tconst id = ref.value.taskId as C.TaskId;\n\t\t\tconst existing = state.tasks.get(id);\n\t\t\tif (existing) return { ok: true, value: existing };\n\t\t\tlet bindFailure: Error | undefined;\n\t\t\tif (release?.bindProcess) {\n\t\t\t\ttry {\n\t\t\t\t\tconst group = this.#native.taskProcessGroup(admitted.value);\n\t\t\t\t\tif (!group.ok) throw new Error(group.error.message);\n\t\t\t\t\tif (group.value !== null) await release.bindProcess({ kind: \"unix-process-group\", id: group.value });\n\t\t\t\t} catch (error) {\n\t\t\t\t\tbindFailure = new Error(rejectionMessage(error));\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (release) {\n\t\t\t\tstate.permits.set(id, release);\n\t\t\t\trelease = undefined;\n\t\t\t}\n\t\t\tconst task = new TaskCapability();\n\t\t\tthis.#tasks.set(task, {\n\t\t\t\tnative: admitted.value,\n\t\t\t\towner: state,\n\t\t\t\tref: reference(ref.value),\n\t\t\t\tcontroller: new AbortController(),\n\t\t\t\tkind: \"command\",\n\t\t\t\tstatuses: new Map(),\n\t\t\t\tstatusListeners: new Set(),\n\t\t\t});\n\t\t\tstate.tasks.set(id, task);\n\t\t\tif (bindFailure) {\n\t\t\t\tawait this.cancelTask(task, \"owner-close\").catch(() => undefined);\n\t\t\t\tthrow bindFailure;\n\t\t\t}\n\t\t\tif (state.permits.has(id)) {\n\t\t\t\tfor (const watch of state.watches) {\n\t\t\t\t\twatch.drain();\n\t\t\t\t\tif (watch.snapshot.tasks.some((item) => item.ref.taskId === id && item.cleanup.kind === \"reaped\"))\n\t\t\t\t\t\tthis.#releasePermit(state, id);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn { ok: true, value: task };\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tawait release?.();\n\t\t\t} finally {\n\t\t\t\tstate.commandAdmissions.delete(admission);\n\t\t\t\tfinishAdmission();\n\t\t\t}\n\t\t}\n\t}\n\t/** Caller must hold launch authorization closed while this snapshot drains. */\n\tasync drainCommandAdmissions(owner: OwnerLease): Promise<void> {\n\t\tawait Promise.all([...this.#owner(owner).commandAdmissions]);\n\t}\n\ttaskStdin(task: TaskLease): C.Result<StdinLease, C.InputError> {\n\t\treturn mapped(\n\t\t\tthis.#native.taskStdin(this.#task(task).native),\n\t\t\t(input) => {\n\t\t\t\tconst lease = new StdinCapability();\n\t\t\t\tenvironment.inputs.set(lease, input);\n\t\t\t\treturn lease;\n\t\t\t},\n\t\t\t[\"TaskTerminal\", \"StdinClosed\", \"UnknownTask\", \"OutputUnavailable\"] as const,\n\t\t);\n\t}\n\tasync writeTaskInput(\n\t\tinput: StdinLease,\n\t\toperation: C.OperationId,\n\t\tdata: C.InputData,\n\t): Promise<C.Result<C.InputReceipt, C.InputError>> {\n\t\tconst lease = environment.inputs.get(input);\n\t\tif (!lease) throw new TypeError(\"Foreign stdin capability\");\n\t\treturn mapped(\n\t\t\tawait this.#native.writeTaskInput(\n\t\t\t\tlease,\n\t\t\t\toperation,\n\t\t\t\tdata.kind === \"bytes\" ? { kind: \"bytes\", bytes: Buffer.from(data.bytes) } : data,\n\t\t\t),\n\t\t\t(value) => ({\n\t\t\t\toperationId: value.operationId as C.OperationId,\n\t\t\t\tacceptedBytes: value.acceptedBytes,\n\t\t\t\tkind: value.kind as \"bytes\" | \"eof\",\n\t\t\t}),\n\t\t\t[\"TaskTerminal\", \"StdinClosed\", \"InputBackpressure\", \"OperationConflict\", \"InputDeliveryUnknown\"] as const,\n\t\t);\n\t}\n\tasync readTaskOutput(task: TaskLease, range: C.OutputRange): Promise<C.Result<C.OutputPage, C.OutputError>> {\n\t\treturn mapped(\n\t\t\tawait this.#native.readTaskOutput(this.#task(task).native, range),\n\t\t\t(page) => ({\n\t\t\t\trequested: page.requested,\n\t\t\t\tchunks: page.chunks.map((chunk) => ({ offsets: chunk.offsets, bytes: new Uint8Array(chunk.bytes) })),\n\t\t\t\tomittedRanges: page.omittedRanges,\n\t\t\t\t...(page.nextOffset === undefined ? {} : { nextOffset: page.nextOffset }),\n\t\t\t}),\n\t\t\t[\"UnknownTask\", \"OutputUnavailable\"] as const,\n\t\t);\n\t}\n\tasync startAgentTask(\n\t\towner: OwnerLease,\n\t\tintent: C.AgentIntent,\n\t\toperation: C.OperationId,\n\t\tschedule?: (dispatch: () => Promise<void>) => void,\n\t): Promise<C.Result<TaskLease, C.StartFailure>> {\n\t\tconst state = this.#owner(owner);\n\t\tstate.host.binding.authorizeLaunch(intent);\n\t\tconst { heartbeatMs, ...nativeIntent } = intent;\n\t\tconst heartbeatKey = rememberLaunchHeartbeat(\n\t\t\tstate.id,\n\t\t\toperation,\n\t\t\theartbeatMs ?? state.host.binding.defaultHeartbeatMs?.(),\n\t\t);\n\t\tconst admitted = mapped(\n\t\t\tthis.#native.startAgentTask(state.native, nativeIntent, operation),\n\t\t\t(lease) => lease,\n\t\t\tstartErrors,\n\t\t);\n\t\tif (!admitted.ok) {\n\t\t\tif (heartbeatKey !== undefined) launchHeartbeats.delete(heartbeatKey);\n\t\t\treturn admitted;\n\t\t}\n\t\tconst ref = this.#native.taskReference(admitted.value);\n\t\tif (!ref.ok) throw new Error(ref.error.message);\n\t\tconst id = ref.value.taskId as C.TaskId;\n\t\tconst existing = state.tasks.get(id);\n\t\tif (existing) return { ok: true, value: existing };\n\t\tif (intent.routerSelection) routerSelections.set(id, Object.freeze({ ...intent.routerSelection }));\n\t\tconst task = new TaskCapability();\n\t\tObject.freeze(task);\n\t\tconst taskState: TaskState = {\n\t\t\tnative: admitted.value,\n\t\t\towner: state,\n\t\t\tref: reference(ref.value),\n\t\t\tcontroller: new AbortController(),\n\t\t\tstatuses: new Map(),\n\t\t\tstatusListeners: new Set(),\n\t\t};\n\t\tthis.#tasks.set(task, taskState);\n\t\tstate.tasks.set(id, task);\n\t\tconst dispatch = AsyncResource.bind(async () => {\n\t\t\tif (taskState.controller.signal.aborted) return;\n\t\t\tconst runner = mapped(this.#native.claimTaskRunner(admitted.value), (lease) => lease, startErrors);\n\t\t\tif (!runner.ok) throw new Error(`${runner.error.code}: ${runner.error.message}`);\n\t\t\tlet execution: FakeExecution;\n\t\t\ttry {\n\t\t\t\texecution = state.host.binding.createRunner(\n\t\t\t\t\t{\n\t\t\t\t\t\tref: reference(taskState.ref),\n\t\t\t\t\t\tsignal: taskState.controller.signal,\n\t\t\t\t\t\tbindTranscript: (session) => {\n\t\t\t\t\t\t\ttaskState.inheritedEntryCount ??= session.getEntries().length;\n\t\t\t\t\t\t\ttaskState.transcript = session;\n\t\t\t\t\t\t},\n\t\t\t\t\t\treportActivity: (report) =>\n\t\t\t\t\t\t\tmapped(this.#native.reportTaskActivity(runner.value, report), reportReceipt, reportErrors),\n\t\t\t\t\t\tsetExtensionStatus: (statusKey, text) => setTaskStatus(taskState, statusKey, text),\n\t\t\t\t\t\tclearExtensionStatuses: () => clearTaskStatuses(taskState),\n\t\t\t\t\t},\n\t\t\t\t\tintent,\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tconst message = rejectionMessage(error);\n\t\t\t\texecution = {\n\t\t\t\t\tresult: Promise.resolve({ kind: \"failed\", code: \"SpawnFailed\", message }),\n\t\t\t\t\tcleanup: Promise.resolve({\n\t\t\t\t\t\tkind: \"failed\",\n\t\t\t\t\t\tresources: [{ resource: \"fake-runner-setup\", code: \"CleanupUnconfirmed\", message }],\n\t\t\t\t\t}),\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst outcome = execution.result\n\t\t\t\t.catch((error) => ({ kind: \"failed\" as const, code: \"RunnerFailed\", message: rejectionMessage(error) }))\n\t\t\t\t.then((result) => {\n\t\t\t\t\treturn mapped(\n\t\t\t\t\t\tthis.#native.reportRunnerOutcome(runner.value, result),\n\t\t\t\t\t\t(receipt) => this.#notifyTaskSettled(state, taskState.ref, receipt),\n\t\t\t\t\t\treportErrors,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\tconst cleanup = execution.cleanup.catch(\n\t\t\t\t(error): C.Cleanup => ({\n\t\t\t\t\tkind: \"failed\",\n\t\t\t\t\tresources: [{ resource: \"fake-runner\", code: \"CleanupFailed\", message: rejectionMessage(error) }],\n\t\t\t\t}),\n\t\t\t);\n\t\t\ttaskState.execution = cleanup.then(async (evidence) => {\n\t\t\t\t// Natural reaping follows its outcome; cancellation needs only confirmed stop.\n\t\t\t\t// A result may never arrive after abort, including when cleanup arrived first.\n\t\t\t\tconst signal = taskState.controller.signal;\n\t\t\t\tlet stopped!: () => void;\n\t\t\t\tconst cancelled = new Promise<undefined>((resolve) => {\n\t\t\t\t\tstopped = () => resolve(undefined);\n\t\t\t\t\tif (signal.aborted) stopped();\n\t\t\t\t\telse signal.addEventListener(\"abort\", stopped, { once: true });\n\t\t\t\t});\n\t\t\t\tconst reported = await Promise.race([outcome, cancelled]).finally(() => {\n\t\t\t\t\tsignal.removeEventListener(\"abort\", stopped);\n\t\t\t\t});\n\t\t\t\t// The task ended: nothing of its session's presentation outlives it.\n\t\t\t\tclearTaskStatuses(taskState);\n\t\t\t\tconst acknowledged = mapped(\n\t\t\t\t\tthis.#native.acknowledgeTaskCleanup(runner.value, evidence),\n\t\t\t\t\t(cleanup) => cleanup,\n\t\t\t\t\treportErrors,\n\t\t\t\t);\n\t\t\t\tif (reported && !reported.ok && !(signal.aborted && reported.error.code === \"ReportConflict\"))\n\t\t\t\t\treturn reported;\n\t\t\t\treturn acknowledged;\n\t\t\t});\n\t\t\tawait taskState.execution;\n\t\t});\n\t\tif (schedule) schedule(dispatch);\n\t\telse void dispatch();\n\t\t// Setup is complete. Do not await execution; ready terminal microtasks may win observation.\n\t\tawait Promise.resolve();\n\t\treturn { ok: true, value: task };\n\t}\n\ttaskReference(task: TaskLease): C.NativeTaskRef {\n\t\treturn reference(this.#task(task).ref);\n\t}\n\tasync waitForTask(\n\t\ttask: TaskLease,\n\t\tbudgetMs?: number,\n\t\tdesignation?: HostSession,\n\t): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\tconst registered = mapped(\n\t\t\tthis.#native.waitForTask(\n\t\t\t\tthis.#task(task).native,\n\t\t\t\tthis.#agentBudget(this.#task(task).owner, budgetMs, this.#task(task).kind === \"command\"),\n\t\t\t\tdesignation ? this.#host(designation).native : undefined,\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\twaitErrors,\n\t\t);\n\t\treturn registered.ok ? this.observeTaskWait(registered.value) : registered;\n\t}\n\t/** Resolve only a task admitted under this live owner; IDs alone confer no authority. */\n\tlookupTask(owner: OwnerLease, taskId: C.TaskId): C.Result<TaskLease, C.WaitError> {\n\t\tconst state = this.#owner(owner);\n\t\tconst found = mapped(this.#native.lookupTask(state.native, taskId), () => state.tasks.get(taskId), waitErrors);\n\t\tif (!found.ok) return found;\n\t\tif (!found.value) return { ok: false, error: { code: \"UnknownTask\", message: \"No agent runner bound to task\" } };\n\t\treturn { ok: true, value: found.value };\n\t}\n\n\tasync waitForTaskId(\n\t\towner: OwnerLease,\n\t\ttaskId: C.TaskId,\n\t\tbudgetMs?: number,\n\t\tonRegistered?: (wait: WaitLease) => void,\n\t): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\tconst found = mapped(this.#native.lookupTask(this.#owner(owner).native, taskId), (lease) => lease, waitErrors);\n\t\tif (!found.ok) return found;\n\t\tconst known = this.#owner(owner).tasks.get(taskId);\n\t\tconst registered = mapped(\n\t\t\tthis.#native.waitForTask(\n\t\t\t\tfound.value,\n\t\t\t\tthis.#agentBudget(\n\t\t\t\t\tthis.#owner(owner),\n\t\t\t\t\tbudgetMs,\n\t\t\t\t\tknown !== undefined && this.#task(known).kind === \"command\",\n\t\t\t\t),\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\twaitErrors,\n\t\t);\n\t\tif (!registered.ok) return registered;\n\t\tonRegistered?.(registered.value);\n\t\treturn this.observeTaskWait(registered.value);\n\t}\n\tasync foregroundTask(task: TaskLease, budgetMs?: number): Promise<C.Result<C.WaitOutcome, C.ForegroundError>> {\n\t\tconst state = this.#task(task);\n\t\tconst errors = [\"TaskTerminal\", \"OwnerClosing\", \"UnknownTask\", \"ObserverCancelled\"] as const;\n\t\tconst registered = mapped(\n\t\t\tthis.#native.foregroundTask(\n\t\t\t\tstate.native,\n\t\t\t\tstate.owner.host.native,\n\t\t\t\tthis.#agentBudget(state.owner, budgetMs, state.kind === \"command\"),\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\terrors,\n\t\t);\n\t\treturn registered.ok\n\t\t\t? mapped(await this.observeTaskWait(registered.value), (outcome) => outcome, errors)\n\t\t\t: registered;\n\t}\n\twaitId(wait: WaitLease): C.WaitId {\n\t\treturn this.#wait(wait).native.waitId as C.WaitId;\n\t}\n\tfindWait(id: C.WaitId): WaitLease | undefined {\n\t\treturn this.#waitRegistry.get(id);\n\t}\n\tobserveTaskWait(wait: WaitLease): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\treturn this.#wait(wait).outcome;\n\t}\n\tyieldTaskWait(wait: WaitLease, reason: C.YieldReason): C.Result<C.WaitOutcome, C.YieldError> {\n\t\treturn mapped(this.#native.yieldTaskWait(this.#wait(wait).native, reason), waitOutcome, [\n\t\t\t\"UnknownWait\",\n\t\t\t\"StaleGeneration\",\n\t\t\t\"ObserverCancelled\",\n\t\t]);\n\t}\n\tdisposeTaskWait(wait: WaitLease): C.Result<void, C.WaitError> {\n\t\treturn mapped(this.#native.disposeTaskWait(this.#wait(wait).native), () => undefined, waitErrors);\n\t}\n\tasync initialObservation(\n\t\ttask: TaskLease,\n\t\tpolicy?: C.WaitPolicy,\n\t\tonRegistered?: (wait: WaitLease) => void,\n\t): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\tconst state = this.#task(task);\n\t\tpolicy ??= state.kind === \"command\" ? { kind: \"foreground\" } : undefined;\n\t\tconst registered = mapped(\n\t\t\tthis.#native.waitForTask(\n\t\t\t\tstate.native,\n\t\t\t\tpolicy?.kind === \"foreground\"\n\t\t\t\t\t? this.#agentBudget(state.owner, policy.budgetMs, state.kind === \"command\")\n\t\t\t\t\t: undefined,\n\t\t\t\tstate.owner.host.native,\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\twaitErrors,\n\t\t);\n\t\tif (!registered.ok) return registered;\n\t\tonRegistered?.(registered.value);\n\t\tif (policy?.kind !== \"foreground\")\n\t\t\tthis.yieldTaskWait(registered.value, policy ? \"explicit\" : \"default-background\");\n\t\treturn this.observeTaskWait(registered.value);\n\t}\n\tasync cancelTask(task: TaskLease, cause: C.CancelCause): Promise<C.Result<C.CancelReceipt, C.CancelError>> {\n\t\tconst state = this.#task(task);\n\t\tconst result = mapped(this.#native.cancelTask(state.native, cause), cancelReceipt, [\n\t\t\t\"UnknownTask\",\n\t\t\t\"CleanupFailed\",\n\t\t]);\n\t\tif (result.ok && result.value.decision === \"cancellation-requested\") state.controller.abort(cause);\n\t\treturn result;\n\t}\n\tasync closeTaskOwner(\n\t\towner: OwnerLease,\n\t\tcause: C.OwnerCloseCause,\n\t): Promise<C.Result<C.OwnerCloseReceipt, C.CloseError>> {\n\t\tconst state = this.#owner(owner);\n\t\tstate.closing.abort(new Error(\"Task owner is closed\"));\n\t\tconst closing = this.#native.closeTaskOwner(state.native, cause);\n\t\tfor (const task of state.tasks.values()) this.#task(task).controller.abort(\"owner-close\");\n\t\tconst result = mapped(\n\t\t\tawait closing,\n\t\t\t(receipt): C.OwnerCloseReceipt => ({\n\t\t\t\townerId: receipt.ownerId as C.OwnerId,\n\t\t\t\tstate: \"closed\",\n\t\t\t\ttasks: receipt.tasks.map(cancelReceipt),\n\t\t\t}),\n\t\t\t[\"CleanupFailed\", \"EnvironmentClosing\"],\n\t\t);\n\t\tif (result.ok)\n\t\t\tfor (const task of state.tasks.values()) {\n\t\t\t\tconst completed = await this.#task(task).execution;\n\t\t\t\tif (completed && !completed.ok)\n\t\t\t\t\tthrow new Error(`Runner protocol failed: ${completed.error.code}: ${completed.error.message}`);\n\t\t\t}\n\t\tif (result.ok)\n\t\t\tfor (const watch of state.watches) {\n\t\t\t\twatch.drain();\n\t\t\t\twatch.dispose(false);\n\t\t\t}\n\t\tif (result.ok) {\n\t\t\tfor (const taskId of [...state.permits.keys()]) this.#releasePermit(state, taskId);\n\t\t\tawait Promise.all([...state.releases]);\n\t\t\tconst failure = state.releaseFailures.shift();\n\t\t\tif (failure) throw failure;\n\t\t}\n\t\treturn result;\n\t}\n\t/**\n\t * The bounded stream carries only authentic deltas. Overflow/native reset publishes\n\t * snapshot/cursor then ends the current iterator, even with no surviving delta.\n\t * Reconcile on completion; obtain a new iterator on the same events iterable to\n\t * continue observing. Apply snapshots first and ignore deltas at/below their cursor.\n\t * onReconcile is optional; consumer failures never disable the fallback poll.\n\t */\n\twatchOwnerTasks(owner: OwnerLease, from?: C.Cursor): C.Result<TaskSubscription, C.WatchError> {\n\t\tconst state = this.#owner(owner);\n\t\tlet subscription: TaskSubscription | undefined;\n\t\treturn mapped(\n\t\t\tthis.#native.watchOwnerTasks(state.native, (hint) => subscription?.wake(hint), from),\n\t\t\t(initial) => {\n\t\t\t\tsubscription = new TaskSubscription(this.#native, initial, () => {\n\t\t\t\t\tif (subscription) state.watches.delete(subscription);\n\t\t\t\t});\n\t\t\t\tstate.watches.add(subscription);\n\t\t\t\treturn subscription;\n\t\t\t},\n\t\t\twatchErrors,\n\t\t);\n\t}\n\t#agentBudget(owner: OwnerState, budgetMs?: number, command = false): number | undefined {\n\t\tif (budgetMs !== undefined) return budgetMs;\n\t\tconst configuration = owner.host.binding.tasks?.wait;\n\t\tif (configuration?.kind === \"until-settled\") return undefined;\n\t\treturn command\n\t\t\t? (configuration?.commandBudgetMs ?? COMMAND_FOREGROUND_BUDGET_MS)\n\t\t\t: (configuration?.agentBudgetMs ?? DEFAULT_AGENT_WAIT_BUDGET_MS);\n\t}\n\t#register(lease: native.WaitLease): WaitLease {\n\t\tconst wait = new WaitCapability();\n\t\tObject.freeze(wait);\n\t\tconst id = lease.waitId as C.WaitId;\n\t\tthis.#waitRegistry.set(id, wait);\n\t\tconst outcome = this.#native\n\t\t\t.observeTaskWait(lease)\n\t\t\t.then((result) => mapped(result, waitOutcome, waitErrors))\n\t\t\t.finally(() => {\n\t\t\t\tthis.#waitRegistry.delete(id);\n\t\t\t});\n\t\tthis.#waits.set(wait, { native: lease, outcome });\n\t\treturn wait;\n\t}\n\t#host(host: HostSession): HostState {\n\t\tconst state = this.#hosts.get(host);\n\t\tif (!state) throw new TypeError(\"Foreign host capability\");\n\t\treturn state;\n\t}\n\t#owner(owner: OwnerLease): OwnerState {\n\t\tconst state = this.#owners.get(owner);\n\t\tif (!state) throw new TypeError(\"Foreign owner capability\");\n\t\treturn state;\n\t}\n\t#task(task: TaskLease): TaskState {\n\t\tconst state = this.#tasks.get(task);\n\t\tif (!state) throw new TypeError(\"Foreign task capability\");\n\t\treturn state;\n\t}\n\t#wait(wait: WaitLease): WaitState {\n\t\tconst state = this.#waits.get(wait);\n\t\tif (!state) throw new TypeError(\"Foreign wait capability\");\n\t\treturn state;\n\t}\n}\n"]}
@@ -0,0 +1,72 @@
1
+ import type { AgentMessage } from "@earendil-works/pi-agent-core";
2
+ import type { TaskId, TaskRecord } from "./contracts.js";
3
+ import type { OwnerTaskStore, TaskActivity } from "./owner-store.js";
4
+ import { type TaskTranscriptSource } from "./supervisor.js";
5
+ export type TaskViewResult<T> = {
6
+ readonly ok: true;
7
+ readonly value: T;
8
+ } | {
9
+ readonly ok: false;
10
+ readonly error: {
11
+ readonly message: string;
12
+ };
13
+ };
14
+ /** A retained slice of a shell task's output, as text. */
15
+ export interface TaskOutputView {
16
+ readonly text: string;
17
+ /** Some of the requested bytes are no longer retained. */
18
+ readonly omitted: boolean;
19
+ }
20
+ /** One page of an agent task's transcript, oldest first. */
21
+ export interface TaskTranscriptView {
22
+ readonly messages: readonly AgentMessage[];
23
+ /** Cursor of the page before this one, when earlier messages are retained. */
24
+ readonly nextCursor?: string;
25
+ }
26
+ /** How an open transcript of a task follows it: through its live session, or by reading it again. */
27
+ export interface TaskTranscriptFollow {
28
+ /** The task's session in this process, when it publishes live updates. */
29
+ readonly session?: TaskTranscriptSource;
30
+ /** The transcript has no live tail; a view reads it again when the task changes. */
31
+ readonly historyOnly: boolean;
32
+ }
33
+ /** The prompt and latest reply of an agent task, for its detail page. */
34
+ export interface TaskDetailText {
35
+ readonly prompt?: string;
36
+ readonly output?: string;
37
+ }
38
+ /**
39
+ * What the task inspector and a chat's task footer read and do: a session's own task store, or
40
+ * the tasks of a session that runs in another process (a workflow stage on a local worker). It
41
+ * names tasks by id, so a view never holds a task lease.
42
+ */
43
+ export interface TaskViewSource {
44
+ readonly tasks: readonly TaskRecord[];
45
+ readonly backgroundTasks: readonly TaskRecord[];
46
+ readonly settlementOrder: ReadonlyMap<TaskId, bigint>;
47
+ recentActivity(id: TaskId): TaskActivity[];
48
+ activityOmitted(id: TaskId): boolean;
49
+ subscribe(listener: () => void): () => void;
50
+ foregroundTask(id: TaskId): Promise<TaskViewResult<{
51
+ readonly kind: string;
52
+ }>>;
53
+ /** Asks the task to stop; a failed request says why. */
54
+ cancelTask(id: TaskId): Promise<TaskViewResult<undefined>>;
55
+ stdinAvailable(id: TaskId): boolean;
56
+ writeTaskInput(id: TaskId, text: string): Promise<TaskViewResult<{
57
+ readonly acceptedBytes: number;
58
+ }>>;
59
+ readTaskOutput(id: TaskId, range: {
60
+ readonly start: string;
61
+ readonly maximumBytes: number;
62
+ }): Promise<TaskViewResult<TaskOutputView>>;
63
+ /** Synchronous where the task's session is in this process, so a view reads it in the same turn. */
64
+ taskDetailText(id: TaskId): TaskDetailText | Promise<TaskDetailText>;
65
+ readTaskTranscript(id: TaskId, cursor?: string): TaskViewResult<TaskTranscriptView> | Promise<TaskViewResult<TaskTranscriptView>>;
66
+ followTaskTranscript(id: TaskId): TaskTranscriptFollow | undefined;
67
+ extensionStatuses(id: TaskId): ReadonlyMap<string, string>;
68
+ watchExtensionStatuses(id: TaskId, listener: () => void): () => void;
69
+ }
70
+ /** The task view of a session's own task store; one per store. */
71
+ export declare function ownerTaskViewSource(store: OwnerTaskStore): TaskViewSource;
72
+ //# sourceMappingURL=task-view-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-view-source.d.ts","sourceRoot":"","sources":["../../../src/core/tasks/task-view-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,EAAe,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACN,KAAK,oBAAoB,EAKzB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,MAAM,cAAc,CAAC,CAAC,IACzB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACxC;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAExE,0DAA0D;AAC1D,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC1B;AAED,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qGAAqG;AACrG,MAAM,WAAW,oBAAoB;IACpC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IACxC,oFAAoF;IACpF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC9B;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,SAAS,UAAU,EAAE,CAAC;IAChD,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IAC3C,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC/E,wDAAwD;IACxD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;QAAE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACtG,cAAc,CACb,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC9D,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3C,oGAAoG;IACpG,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACrE,kBAAkB,CACjB,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,GACb,cAAc,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACpF,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAAC;IACnE,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3D,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CACrE;AAeD,kEAAkE;AAClE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAiIzE"}