codex-chatgpt-control 0.5.1-alpha.2 → 0.5.1-alpha.4

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 (231) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +43 -0
  3. package/contracts/v1/fixtures/backend-capabilities.json +40 -1
  4. package/contracts/v1/fixtures/backend-compatibility.json +21 -0
  5. package/contracts/v1/fixtures/backend-version.json +6 -1
  6. package/contracts/v1/fixtures/download-blocked-by-browser.json +22 -0
  7. package/contracts/v1/fixtures/download-receipt-failed.json +22 -0
  8. package/contracts/v1/fixtures/download-receipt-timeout.json +22 -0
  9. package/contracts/v1/fixtures/journal-rpc-indeterminate.json +32 -0
  10. package/contracts/v1/fixtures/journal-rpc-unsupported-platform.json +32 -0
  11. package/contracts/v1/fixtures/journal-runtime-unavailable.json +32 -0
  12. package/contracts/v1/fixtures/operation-action-prepared-event.json +42 -0
  13. package/contracts/v1/fixtures/operation-action.json +13 -0
  14. package/contracts/v1/fixtures/operation-artifact-receipt.json +14 -0
  15. package/contracts/v1/fixtures/operation-artifact-transfer-intent-event.json +24 -0
  16. package/contracts/v1/fixtures/operation-artifact-transfer-receipt-event.json +26 -0
  17. package/contracts/v1/fixtures/operation-artifact-transfer-state.json +178 -0
  18. package/contracts/v1/fixtures/operation-blocker.json +10 -0
  19. package/contracts/v1/fixtures/operation-collect-request.json +17 -0
  20. package/contracts/v1/fixtures/operation-collect-result.json +42 -0
  21. package/contracts/v1/fixtures/operation-control-receipt.json +13 -0
  22. package/contracts/v1/fixtures/operation-control-request.json +18 -0
  23. package/contracts/v1/fixtures/operation-control-result.json +31 -0
  24. package/contracts/v1/fixtures/operation-event.json +18 -0
  25. package/contracts/v1/fixtures/operation-handle.json +10 -0
  26. package/contracts/v1/fixtures/operation-inspect-request.json +13 -0
  27. package/contracts/v1/fixtures/operation-inspect-result.json +205 -0
  28. package/contracts/v1/fixtures/operation-ownership-baseline-event.json +34 -0
  29. package/contracts/v1/fixtures/operation-receipt.json +32 -0
  30. package/contracts/v1/fixtures/operation-recovery-decision.json +7 -0
  31. package/contracts/v1/fixtures/operation-recovery-observation.json +12 -0
  32. package/contracts/v1/fixtures/operation-request.json +33 -0
  33. package/contracts/v1/fixtures/operation-state.json +144 -0
  34. package/contracts/v1/fixtures/operation-submission-witness-event.json +20 -0
  35. package/contracts/v1/fixtures/operation-submission-witness.json +11 -0
  36. package/contracts/v1/fixtures/operation-submit-result.json +16 -0
  37. package/contracts/v1/fixtures/operation-target-established-event.json +21 -0
  38. package/contracts/v1/manifest.json +185 -1
  39. package/contracts/v1/parity-suite.json +106 -8
  40. package/contracts/v1/schemas/backend-compatibility.schema.json +65 -0
  41. package/contracts/v1/schemas/backend-request.schema.json +8 -2
  42. package/contracts/v1/schemas/capabilities.schema.json +81 -1
  43. package/contracts/v1/schemas/manifest.schema.json +57 -0
  44. package/contracts/v1/schemas/operation-action.schema.json +155 -0
  45. package/contracts/v1/schemas/operation-artifact-receipt.schema.json +89 -0
  46. package/contracts/v1/schemas/operation-blocker.schema.json +70 -0
  47. package/contracts/v1/schemas/operation-collect-request.schema.json +46 -0
  48. package/contracts/v1/schemas/operation-collect-result.schema.json +74 -0
  49. package/contracts/v1/schemas/operation-control-receipt.schema.json +108 -0
  50. package/contracts/v1/schemas/operation-control-request.schema.json +111 -0
  51. package/contracts/v1/schemas/operation-control-result.schema.json +112 -0
  52. package/contracts/v1/schemas/operation-event.schema.json +756 -0
  53. package/contracts/v1/schemas/operation-handle.schema.json +55 -0
  54. package/contracts/v1/schemas/operation-inspect-request.schema.json +42 -0
  55. package/contracts/v1/schemas/operation-inspect-result.schema.json +1662 -0
  56. package/contracts/v1/schemas/operation-receipt.schema.json +153 -0
  57. package/contracts/v1/schemas/operation-recovery.schema.json +314 -0
  58. package/contracts/v1/schemas/operation-request.schema.json +158 -0
  59. package/contracts/v1/schemas/operation-state.schema.json +691 -0
  60. package/contracts/v1/schemas/operation-submission-witness.schema.json +48 -0
  61. package/contracts/v1/schemas/operation-submit-result.schema.json +94 -0
  62. package/contracts/v1/surface-drift-policy.json +50 -0
  63. package/contracts/v1/vectors/operation-request-digest-v1.json +43 -0
  64. package/dist/codex-chatgpt-control-backend.mjs +45882 -9361
  65. package/dist/codex-chatgpt-control-journal.mjs +5547 -0
  66. package/dist/codex-chatgpt-control-live-smoke.bundle.mjs +51677 -0
  67. package/dist/codex-chatgpt-control-release-canary.bundle.mjs +52104 -0
  68. package/dist/codex-chatgpt-control.bundle.mjs +48392 -10260
  69. package/dist/src/backend/client.d.ts +103 -2
  70. package/dist/src/backend/client.js +1436 -97
  71. package/dist/src/backend/compatibility.d.ts +12 -0
  72. package/dist/src/backend/compatibility.js +208 -0
  73. package/dist/src/backend/protocol.d.ts +84 -1
  74. package/dist/src/backend/protocol.js +31 -5
  75. package/dist/src/backend/runtime-identity.d.ts +10 -0
  76. package/dist/src/backend/runtime-identity.js +141 -0
  77. package/dist/src/backend/session.d.ts +10 -2
  78. package/dist/src/backend/session.js +478 -7
  79. package/dist/src/backend/stdio-server.d.ts +4 -1
  80. package/dist/src/backend/stdio-server.js +240 -28
  81. package/dist/src/browser/active-composer-file-input.d.ts +9 -0
  82. package/dist/src/browser/active-composer-file-input.js +33 -0
  83. package/dist/src/browser/attach.d.ts +4 -1
  84. package/dist/src/browser/attach.js +136 -28
  85. package/dist/src/browser/chatgpt-url.d.ts +2 -0
  86. package/dist/src/browser/chatgpt-url.js +9 -0
  87. package/dist/src/browser/downloads.d.ts +17 -1
  88. package/dist/src/browser/downloads.js +150 -28
  89. package/dist/src/browser/page-state.js +6 -0
  90. package/dist/src/client.d.ts +43 -0
  91. package/dist/src/client.js +1279 -59
  92. package/dist/src/commands/artifacts.js +6 -4
  93. package/dist/src/commands/chat-popover.d.ts +37 -0
  94. package/dist/src/commands/chat-popover.js +537 -0
  95. package/dist/src/commands/configuration.d.ts +5 -0
  96. package/dist/src/commands/configuration.js +134 -21
  97. package/dist/src/commands/context.js +10 -3
  98. package/dist/src/commands/doctor.d.ts +1 -1
  99. package/dist/src/commands/doctor.js +27 -4
  100. package/dist/src/commands/experience.d.ts +5 -0
  101. package/dist/src/commands/experience.js +104 -21
  102. package/dist/src/commands/files.js +14 -33
  103. package/dist/src/commands/modes.js +85 -21
  104. package/dist/src/commands/power-discovery.d.ts +130 -0
  105. package/dist/src/commands/power-discovery.js +669 -0
  106. package/dist/src/commands/project-sources.js +325 -31
  107. package/dist/src/commands/sequence.js +59 -32
  108. package/dist/src/commands/session.js +19 -6
  109. package/dist/src/commands/work.js +31 -0
  110. package/dist/src/dom/composer-text.d.ts +6 -0
  111. package/dist/src/dom/composer-text.js +85 -0
  112. package/dist/src/errors.d.ts +9 -0
  113. package/dist/src/errors.js +22 -0
  114. package/dist/src/index.d.ts +6 -0
  115. package/dist/src/index.js +9 -0
  116. package/dist/src/operations/artifact-output.d.ts +69 -0
  117. package/dist/src/operations/artifact-output.js +1748 -0
  118. package/dist/src/operations/artifact-stream.d.ts +19 -0
  119. package/dist/src/operations/artifact-stream.js +35 -0
  120. package/dist/src/operations/artifact-transfer.d.ts +149 -0
  121. package/dist/src/operations/artifact-transfer.js +1312 -0
  122. package/dist/src/operations/browser-adapter.d.ts +167 -0
  123. package/dist/src/operations/browser-adapter.js +2103 -0
  124. package/dist/src/operations/browser-observation.d.ts +110 -0
  125. package/dist/src/operations/browser-observation.js +1256 -0
  126. package/dist/src/operations/browser-target.d.ts +105 -0
  127. package/dist/src/operations/browser-target.js +531 -0
  128. package/dist/src/operations/canonical.d.ts +4 -0
  129. package/dist/src/operations/canonical.js +412 -0
  130. package/dist/src/operations/chatgpt-runtime.d.ts +72 -0
  131. package/dist/src/operations/chatgpt-runtime.js +1232 -0
  132. package/dist/src/operations/client.d.ts +138 -0
  133. package/dist/src/operations/client.js +1145 -0
  134. package/dist/src/operations/collector.d.ts +195 -0
  135. package/dist/src/operations/collector.js +1039 -0
  136. package/dist/src/operations/configuration-routing.d.ts +4 -0
  137. package/dist/src/operations/configuration-routing.js +14 -0
  138. package/dist/src/operations/control.d.ts +372 -0
  139. package/dist/src/operations/control.js +1498 -0
  140. package/dist/src/operations/file-identity.d.ts +33 -0
  141. package/dist/src/operations/file-identity.js +153 -0
  142. package/dist/src/operations/handle.d.ts +19 -0
  143. package/dist/src/operations/handle.js +727 -0
  144. package/dist/src/operations/index.d.ts +25 -0
  145. package/dist/src/operations/index.js +25 -0
  146. package/dist/src/operations/journal-authority.d.ts +12 -0
  147. package/dist/src/operations/journal-authority.js +1 -0
  148. package/dist/src/operations/journal-rpc-client.d.ts +12 -0
  149. package/dist/src/operations/journal-rpc-client.js +225 -0
  150. package/dist/src/operations/journal-rpc-protocol.d.ts +32 -0
  151. package/dist/src/operations/journal-rpc-protocol.js +214 -0
  152. package/dist/src/operations/journal-rpc-server.d.ts +15 -0
  153. package/dist/src/operations/journal-rpc-server.js +272 -0
  154. package/dist/src/operations/journal.d.ts +143 -0
  155. package/dist/src/operations/journal.js +1957 -0
  156. package/dist/src/operations/production-attachments.d.ts +118 -0
  157. package/dist/src/operations/production-attachments.js +1035 -0
  158. package/dist/src/operations/production-chatgpt-artifacts.d.ts +74 -0
  159. package/dist/src/operations/production-chatgpt-artifacts.js +1146 -0
  160. package/dist/src/operations/production-chatgpt-attachments.d.ts +80 -0
  161. package/dist/src/operations/production-chatgpt-attachments.js +1639 -0
  162. package/dist/src/operations/production-configuration.d.ts +42 -0
  163. package/dist/src/operations/production-configuration.js +1544 -0
  164. package/dist/src/operations/production-primitives.d.ts +53 -0
  165. package/dist/src/operations/production-primitives.js +856 -0
  166. package/dist/src/operations/production-work-steer.d.ts +203 -0
  167. package/dist/src/operations/production-work-steer.js +1218 -0
  168. package/dist/src/operations/recovery.d.ts +80 -0
  169. package/dist/src/operations/recovery.js +174 -0
  170. package/dist/src/operations/runtime-adapter.d.ts +126 -0
  171. package/dist/src/operations/runtime-adapter.js +802 -0
  172. package/dist/src/operations/send-once.d.ts +224 -0
  173. package/dist/src/operations/send-once.js +1081 -0
  174. package/dist/src/operations/service.d.ts +286 -0
  175. package/dist/src/operations/service.js +2831 -0
  176. package/dist/src/operations/staging.d.ts +136 -0
  177. package/dist/src/operations/staging.js +630 -0
  178. package/dist/src/operations/state-machine.d.ts +29 -0
  179. package/dist/src/operations/state-machine.js +2047 -0
  180. package/dist/src/operations/submission.d.ts +423 -0
  181. package/dist/src/operations/submission.js +1676 -0
  182. package/dist/src/operations/transactional-chat-power.d.ts +17 -0
  183. package/dist/src/operations/transactional-chat-power.js +212 -0
  184. package/dist/src/operations/turn-ownership.d.ts +202 -0
  185. package/dist/src/operations/turn-ownership.js +700 -0
  186. package/dist/src/operations/types.d.ts +454 -0
  187. package/dist/src/operations/types.js +20 -0
  188. package/dist/src/operations/wire-requests.d.ts +21 -0
  189. package/dist/src/operations/wire-requests.js +396 -0
  190. package/dist/src/operations/wire-results.d.ts +97 -0
  191. package/dist/src/operations/wire-results.js +818 -0
  192. package/dist/src/runner/responses.d.ts +3 -1
  193. package/dist/src/runner/responses.js +19 -1
  194. package/dist/src/runner/result.js +227 -55
  195. package/dist/src/runner/types.d.ts +12 -0
  196. package/dist/src/runtime/command-routing.d.ts +149 -0
  197. package/dist/src/runtime/command-routing.js +431 -0
  198. package/dist/src/runtime/coordinated-browser.d.ts +24 -0
  199. package/dist/src/runtime/coordinated-browser.js +315 -0
  200. package/dist/src/runtime/coordinated-page.d.ts +41 -0
  201. package/dist/src/runtime/coordinated-page.js +651 -0
  202. package/dist/src/runtime/operation-context.d.ts +142 -0
  203. package/dist/src/runtime/operation-context.js +410 -0
  204. package/dist/src/runtime/runtime-session.d.ts +95 -0
  205. package/dist/src/runtime/runtime-session.js +314 -0
  206. package/dist/src/runtime/tab-coordinator.d.ts +200 -0
  207. package/dist/src/runtime/tab-coordinator.js +1200 -0
  208. package/dist/src/runtime/value-boundaries.d.ts +18 -0
  209. package/dist/src/runtime/value-boundaries.js +49 -0
  210. package/dist/src/safety/blockers.js +8 -1
  211. package/dist/src/safety/untrusted-output.js +2 -1
  212. package/dist/src/scripts/backend-server.js +4 -1
  213. package/dist/src/scripts/capture-surface-profile.js +7 -2
  214. package/dist/src/scripts/journal-server.d.ts +2 -0
  215. package/dist/src/scripts/journal-server.js +37 -0
  216. package/dist/src/scripts/live-smoke/harness.js +79 -7
  217. package/dist/src/scripts/live-smoke/scenarios.d.ts +42 -1
  218. package/dist/src/scripts/live-smoke/scenarios.js +147 -30
  219. package/dist/src/scripts/live-smoke/transactional.d.ts +17 -0
  220. package/dist/src/scripts/live-smoke/transactional.js +254 -0
  221. package/dist/src/scripts/live-smoke/types.d.ts +3 -0
  222. package/dist/src/scripts/release-canary-module.js +17 -4
  223. package/dist/src/types.d.ts +38 -1
  224. package/package.json +8 -3
  225. package/references/2026-08-16-transactional-operations.md +459 -0
  226. package/references/2026-09-06-journal-service.md +140 -0
  227. package/references/agents-runner.md +34 -0
  228. package/references/backend-protocol.md +176 -0
  229. package/references/python-parity.md +137 -0
  230. package/references/responses-adapter.md +19 -0
  231. package/references/streaming.md +6 -0
@@ -0,0 +1,224 @@
1
+ import type { PageLike } from "../types.js";
2
+ import type { OperationSurface } from "./types.js";
3
+ import { type SubmissionExpectedEnvelope, type SubmissionFinalTransactionResult } from "./submission.js";
4
+ import { type OwnershipBaseline } from "./turn-ownership.js";
5
+ export type SendOnceMode = "mutate_once" | "observe_only";
6
+ export type SendOnceTurnBaseline = Readonly<{
7
+ /** Absent means the operation had no operation-owned rendered user turn yet. */
8
+ userTurnId?: string;
9
+ /** HMAC evidence for the complete pre-activation user-turn baseline. */
10
+ userTurnEvidenceDigest: string;
11
+ /** Complete normalized snapshot retained for durable restart recovery. */
12
+ ownershipBaseline?: OwnershipBaseline;
13
+ }>;
14
+ export type SendOnceAttachmentObservation = Readonly<{
15
+ count: number;
16
+ orderPolicy: "exact";
17
+ identityDigests: readonly string[];
18
+ }>;
19
+ export type SendOncePreconditionCode = "target_binding_mismatch" | "target_evidence_unavailable" | "configuration_drift" | "composer_drift" | "attachment_manifest_mismatch" | "concurrent_user_turn" | "send_control_unavailable" | "ambiguous_submit" | "journal_unavailable" | "port_protocol_violation";
20
+ /**
21
+ * A precondition observer returns only HMAC-backed identities and exact
22
+ * multiplicity. It must never return prompt text, DOM, paths, names, or
23
+ * provider error strings.
24
+ */
25
+ export type SendOncePreconditionObservation = Readonly<{
26
+ status: "exact";
27
+ targetBindingDigest: string;
28
+ configurationReceiptDigest: string;
29
+ composerReceiptDigest: string;
30
+ attachments: SendOnceAttachmentObservation;
31
+ baseline: SendOnceTurnBaseline;
32
+ evidenceDigest: string;
33
+ } | {
34
+ status: "mismatch" | "unavailable" | "not_ready";
35
+ code: SendOncePreconditionCode;
36
+ evidenceDigest?: string;
37
+ }>;
38
+ export type SendOnceActivationState = "not_attempted" | "activated" | "activation_threw";
39
+ export type SendOncePreconditionRequest = Readonly<{
40
+ page: PageLike;
41
+ expected: SubmissionExpectedEnvelope;
42
+ mode: SendOnceMode;
43
+ signal?: AbortSignal;
44
+ deadlineAt?: number;
45
+ }>;
46
+ export type SendOncePostconditionRequest = Readonly<{
47
+ page: PageLike;
48
+ /** Durable Send action identity, needed for new-target establishment. */
49
+ actionId: string;
50
+ expected: SubmissionExpectedEnvelope;
51
+ mode: SendOnceMode;
52
+ baseline: SendOnceTurnBaseline;
53
+ activation: SendOnceActivationState;
54
+ /** Probe ordinal, starting at one. It is diagnostic only and opaque to DOM code. */
55
+ attempt: number;
56
+ signal?: AbortSignal;
57
+ deadlineAt?: number;
58
+ }>;
59
+ export type SendOncePostconditionProbe = Readonly<{
60
+ result: SubmissionFinalTransactionResult;
61
+ /** A transient read miss may be retried; mutation is never retried. */
62
+ retryable: boolean;
63
+ }>;
64
+ export type SendOnceObservers = Readonly<{
65
+ /** Exact target/configuration/composer/attachment and turn-baseline read. */
66
+ observePrecondition: (request: SendOncePreconditionRequest) => Promise<SendOncePreconditionObservation>;
67
+ /** One bounded exact user-turn ownership read; it must not poll or sleep. */
68
+ observePostcondition: (request: SendOncePostconditionRequest) => Promise<SubmissionFinalTransactionResult | SendOncePostconditionProbe>;
69
+ /** Optional external wait hook. It is invoked only after a read transaction settles. */
70
+ sleep?: (milliseconds: number, signal: AbortSignal) => Promise<void>;
71
+ /** Internal bounds for postcondition reconciliation. */
72
+ maxPostconditionAttempts?: number;
73
+ postconditionIntervalMs?: number;
74
+ postconditionTimeoutMs?: number;
75
+ }>;
76
+ /**
77
+ * Optional caller-owned actor wrapper for the short precondition/activation
78
+ * section. In production this is normally a ProcessTabCoordinator tab
79
+ * transaction. The wrapper must not invoke the callback more than once; this
80
+ * module memoizes the callback result defensively, but postcondition probes
81
+ * are always invoked after this promise settles.
82
+ */
83
+ export type SendOnceTransaction = <T>(callback: () => Promise<T>) => Promise<T>;
84
+ /**
85
+ * The first phase of an operation-aware Send. This request is deliberately
86
+ * read-only: it contains no persistence hook and cannot activate a provider
87
+ * control. A caller may wrap the bounded read in its own read transaction;
88
+ * the returned prepared value never retains that actor, page, or observers.
89
+ */
90
+ export type SendOncePrepareRequest = Readonly<{
91
+ page: PageLike;
92
+ operationId: string;
93
+ requestDigest: string;
94
+ surface: OperationSurface;
95
+ actionId: string;
96
+ expected: SubmissionExpectedEnvelope;
97
+ observers: SendOnceObservers;
98
+ signal?: AbortSignal;
99
+ deadlineAt?: number;
100
+ transaction?: SendOnceTransaction;
101
+ }>;
102
+ /**
103
+ * Immutable, path-free identity captured before the durable Send intent. It
104
+ * contains only HMAC-backed identities and exact multiplicity; no prompt,
105
+ * response, local path, or DOM value crosses the phase boundary.
106
+ */
107
+ export type SendOncePrepared = Readonly<{
108
+ schemaVersion: "chatgpt.browser_control.send_once_prepared.v1";
109
+ operationId: string;
110
+ requestDigest: string;
111
+ surface: OperationSurface;
112
+ actionId: string;
113
+ expected: SubmissionExpectedEnvelope;
114
+ observation: Extract<SendOncePreconditionObservation, {
115
+ status: "exact";
116
+ }>;
117
+ baseline: SendOnceTurnBaseline;
118
+ }>;
119
+ export type SendOncePrepareResult = Readonly<{
120
+ status: "prepared";
121
+ prepared: SendOncePrepared;
122
+ } | {
123
+ status: "blocked";
124
+ result: Extract<SubmissionFinalTransactionResult, {
125
+ status: "blocked";
126
+ }>;
127
+ }>;
128
+ /**
129
+ * Execute the sole provider activation using a previously prepared value.
130
+ * There is intentionally no persistence callback here. The caller must
131
+ * persist its action intent and baseline before invoking this phase.
132
+ */
133
+ export type SendOnceExecutePreparedRequest = Readonly<{
134
+ page: PageLike;
135
+ prepared: SendOncePrepared;
136
+ observers: SendOnceObservers;
137
+ signal?: AbortSignal;
138
+ deadlineAt?: number;
139
+ transaction?: SendOnceTransaction;
140
+ }>;
141
+ export type SendOnceExecutionResult = Readonly<{
142
+ status: "activated" | "activation_threw";
143
+ prepared: SendOncePrepared;
144
+ baseline: SendOnceTurnBaseline;
145
+ activation: "activated" | "activation_threw";
146
+ mutationMayHaveOccurred: true;
147
+ } | {
148
+ status: "blocked";
149
+ result: Extract<SubmissionFinalTransactionResult, {
150
+ status: "blocked";
151
+ }>;
152
+ } | {
153
+ status: "uncertain";
154
+ result: Extract<SubmissionFinalTransactionResult, {
155
+ status: "uncertain";
156
+ }>;
157
+ }>;
158
+ /** Read-only reconciliation after an executePrepared result. */
159
+ export type SendOnceVerifyRequest = Readonly<{
160
+ page: PageLike;
161
+ prepared: SendOncePrepared;
162
+ observers: SendOnceObservers;
163
+ activation: SendOnceActivationState;
164
+ mutationMayHaveOccurred: boolean;
165
+ signal?: AbortSignal;
166
+ deadlineAt?: number;
167
+ }>;
168
+ /** Read-only restart reconciliation anchored to a durable baseline. */
169
+ export type SendOnceRecoverRequest = Readonly<{
170
+ page: PageLike;
171
+ operationId: string;
172
+ requestDigest: string;
173
+ surface: OperationSurface;
174
+ actionId: string;
175
+ expected: SubmissionExpectedEnvelope;
176
+ durableBaseline: OwnershipBaseline;
177
+ observers: SendOnceObservers;
178
+ signal?: AbortSignal;
179
+ deadlineAt?: number;
180
+ }>;
181
+ export type SendOnceRequest = Readonly<{
182
+ page: PageLike;
183
+ operationId: string;
184
+ requestDigest: string;
185
+ surface: OperationSurface;
186
+ actionId: string;
187
+ mode: SendOnceMode;
188
+ expected: SubmissionExpectedEnvelope;
189
+ observers: SendOnceObservers;
190
+ /** Persist the complete pre-Send baseline before activation. */
191
+ persistPreSendBaseline?: (baseline: OwnershipBaseline) => Promise<void>;
192
+ /** Authenticated baseline projected by the service for observe-only recovery. */
193
+ durableBaseline?: OwnershipBaseline;
194
+ signal?: AbortSignal;
195
+ /** An absolute epoch-millisecond deadline; no timer is created here. */
196
+ deadlineAt?: number;
197
+ transaction?: SendOnceTransaction;
198
+ }>;
199
+ /**
200
+ * Capture the complete pre-Send identity using reads only. The returned
201
+ * value is detached from provider objects and deeply frozen, so a caller can
202
+ * safely persist its redacted baseline after this function has returned.
203
+ */
204
+ export declare function prepareSendOnce(request: SendOncePrepareRequest): Promise<SendOncePrepareResult>;
205
+ /**
206
+ * Execute a prepared Send. This phase performs no journal/persistence work;
207
+ * its caller is responsible for atomically persisting the intent and the
208
+ * prepared ownership baseline before invoking it. Only the final exact read
209
+ * and one control activation occur while an optional tab actor is held.
210
+ */
211
+ export declare function executePreparedSendOnce(request: SendOnceExecutePreparedRequest): Promise<SendOnceExecutionResult>;
212
+ /** Read-only post-activation reconciliation. */
213
+ export declare function verifyPreparedSendOnce(request: SendOnceVerifyRequest): Promise<SubmissionFinalTransactionResult>;
214
+ /** Read-only recovery for a durable Send intent after a restart/quarantine. */
215
+ export declare function recoverSendOnce(request: SendOnceRecoverRequest): Promise<SubmissionFinalTransactionResult>;
216
+ /**
217
+ * Compatibility composition wrapper. New orchestration should call the four
218
+ * explicit phases above. Crucially, the legacy persistence hook is invoked
219
+ * after prepare has returned and before execute acquires its optional actor;
220
+ * it is never called from inside a browser transaction.
221
+ */
222
+ export declare function runSendOnce(request: SendOnceRequest): Promise<SubmissionFinalTransactionResult>;
223
+ /** Alias kept explicit for callers that name the operation after its action. */
224
+ export declare const executeSendOnce: typeof runSendOnce;