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,286 @@
1
+ import type { OperationJournalAuthority } from "./journal-authority.js";
2
+ import { type CollectorObservation, type CollectorObservationRequest, type CollectorResult, type CollectorOptions } from "./collector.js";
3
+ import { type SubmissionAttachmentObservation, type SubmissionAttachmentRequest, type SubmissionFinalTransactionRequest, type SubmissionFinalTransactionResult, type SubmissionHandoffRequest, type SubmissionHandoffResult, type SubmissionPrepareSendRequest, type SubmissionPrepareSendResult, type SubmissionExecutePreparedSendRequest, type SubmissionExecutePreparedSendResult, type SubmissionVerifyPreparedSendRequest, type SubmissionRecoverSendRequest, type SubmissionResult, type SubmissionStageObservation, type SubmissionStageRequest } from "./submission.js";
4
+ import { type ControlExecutionRequest, type ControlExecutionResult, type ControlOptions, type ControlPostconditionObservation, type ControlPostconditionRetryPolicy, type ControlPostconditionRequest, type ControlSteerPhaseResult, type ControlSteerPrepareRequest, type ControlSteerExecutePreparedRequest, type ControlSteerVerifyRequest, type ControlSteerRecoverRequest, type ControlTurnObservation, type ControlTurnObservationRequest } from "./control.js";
5
+ import { type OperationStagingCallbackRequest, type OperationStagingMutationResult, type OperationStagingObservation } from "./staging.js";
6
+ import type { ArtifactTransferJournalPort, ArtifactTransferKind, ArtifactTransferResult } from "./artifact-transfer.js";
7
+ import { type OperationControlRequestV1, type OperationHandleV1, type OperationStateV1, type OperationSubmitRequestV1, type OperationSurface, type OperationTargetBindingV1, type OperationTargetRequestV1 } from "./types.js";
8
+ import { type OwnershipBaseline, type OwnershipBinding, type OwnershipCursor, type OwnershipSubmissionWitness } from "./turn-ownership.js";
9
+ export declare class OperationServiceError extends Error {
10
+ readonly code: string;
11
+ constructor(code: string, message: string);
12
+ }
13
+ export type OperationTargetResolution = Readonly<{
14
+ target: OperationTargetBindingV1;
15
+ /** Read-only receipts for the exact configuration/composer envelope. */
16
+ configurationReceiptDigest?: string;
17
+ composerReceiptDigest?: string;
18
+ }>;
19
+ export type OperationTargetResolutionRequest = Readonly<{
20
+ operationId: string;
21
+ requestDigest: string;
22
+ surface: OperationSurface;
23
+ target: OperationTargetRequestV1;
24
+ signal: AbortSignal;
25
+ }>;
26
+ export type OperationCollectorContext = Readonly<{
27
+ binding: OwnershipBinding;
28
+ baseline: OwnershipBaseline;
29
+ submissionWitness?: OwnershipSubmissionWitness;
30
+ prior?: OwnershipCursor;
31
+ }>;
32
+ export type OperationCollectorContextRequest = Readonly<{
33
+ operationId: string;
34
+ requestDigest: string;
35
+ targetBindingDigest: string;
36
+ submissionActionId?: string;
37
+ /** Authenticated causal action kind selected from the journal. */
38
+ submissionActionKind?: "send" | "work_steer";
39
+ /** Authenticated causal witness selected from the journal. */
40
+ submissionWitness?: OwnershipSubmissionWitness;
41
+ /** Authenticated causal baseline projected from the journal on recovery. */
42
+ baseline?: OwnershipBaseline;
43
+ signal: AbortSignal;
44
+ }>;
45
+ export type OperationSubmissionAdapter = Readonly<{
46
+ observeStaging(request: SubmissionStageRequest): Promise<SubmissionStageObservation>;
47
+ executeFileHandoffOnce(request: SubmissionHandoffRequest): Promise<SubmissionHandoffResult>;
48
+ observeAttachments(request: SubmissionAttachmentRequest): Promise<SubmissionAttachmentObservation>;
49
+ prepareSend(request: SubmissionPrepareSendRequest): Promise<SubmissionPrepareSendResult>;
50
+ executePreparedSend(request: SubmissionExecutePreparedSendRequest): Promise<SubmissionExecutePreparedSendResult>;
51
+ verifyPreparedSend(request: SubmissionVerifyPreparedSendRequest): Promise<SubmissionFinalTransactionResult>;
52
+ recoverSend(request: SubmissionRecoverSendRequest): Promise<SubmissionFinalTransactionResult>;
53
+ /** Internal read-only restart port; only the service supplies this authenticated durable target. */
54
+ recoverAuthenticatedSend?(request: AuthenticatedSendRecoveryRequest): Promise<SubmissionFinalTransactionResult>;
55
+ /** Compatibility-only legacy composition; the transactional path never invokes it. */
56
+ executeFinalTabTransaction(request: SubmissionFinalTransactionRequest): Promise<SubmissionFinalTransactionResult>;
57
+ }>;
58
+ export type AuthenticatedSendRecoveryRequest = SubmissionRecoverSendRequest & Readonly<{
59
+ target: OperationTargetBindingV1;
60
+ }>;
61
+ export type OperationCollectorAdapter = Readonly<{
62
+ readContext(request: OperationCollectorContextRequest): Promise<OperationCollectorContext>;
63
+ observe(request: CollectorObservationRequest): Promise<CollectorObservation>;
64
+ sleep(milliseconds: number, signal: AbortSignal): Promise<void>;
65
+ }>;
66
+ export type OperationControlAdapter = Readonly<{
67
+ observeTurn(request: ControlTurnObservationRequest): Promise<ControlTurnObservation>;
68
+ executeOnce(request: ControlExecutionRequest): Promise<ControlExecutionResult>;
69
+ observePostcondition(request: ControlPostconditionRequest): Promise<ControlPostconditionObservation>;
70
+ postconditionRetry?: ControlPostconditionRetryPolicy;
71
+ /** Read-only Work-steer preparation; prompt text remains in the adapter closure. */
72
+ prepareSteer?(request: ControlSteerPrepareRequest): Promise<ControlSteerPhaseResult>;
73
+ /** One-shot Work-steer mutation over an authenticated prepared record. */
74
+ executeSteerPrepared?(request: ControlSteerExecutePreparedRequest): Promise<ControlSteerPhaseResult>;
75
+ /** Read-only same-process postcondition verification. */
76
+ verifySteer?(request: ControlSteerVerifyRequest): Promise<ControlSteerPhaseResult>;
77
+ /** Read-only restart/quarantine recovery. */
78
+ recoverSteer?(request: ControlSteerRecoverRequest): Promise<ControlSteerPhaseResult>;
79
+ }>;
80
+ /**
81
+ * Request-local artifact transfer capability. The implementation owns the
82
+ * output directory and provider source closure; the service supplies only
83
+ * path-free operation/artifact identity and journal callbacks. Keeping this
84
+ * seam optional is important for restart: a handle factory may be unable to
85
+ * recreate a destination, in which case the service closes the obligation
86
+ * durably without retrying a provider source.
87
+ */
88
+ export type OperationArtifactTransferRequest = Readonly<{
89
+ operationId: string;
90
+ requestDigest: string;
91
+ targetBindingDigest: string;
92
+ assistantTurnId: string;
93
+ sourceIdentityDigest: string;
94
+ kind: ArtifactTransferKind;
95
+ ordinal: number;
96
+ transferActionId: string;
97
+ mimeTypeHint?: string;
98
+ signal: AbortSignal;
99
+ deadlineAt: number;
100
+ journal: ArtifactTransferJournalPort;
101
+ }>;
102
+ export type OperationArtifactAdapter = Readonly<{
103
+ transfer(request: OperationArtifactTransferRequest): Promise<ArtifactTransferResult>;
104
+ }>;
105
+ export type OperationStagingAdapter = Readonly<{
106
+ readCurrent(request: OperationStagingCallbackRequest): Promise<OperationStagingObservation>;
107
+ mutateOnce(request: OperationStagingCallbackRequest): Promise<OperationStagingMutationResult>;
108
+ observe(request: OperationStagingCallbackRequest): Promise<OperationStagingObservation>;
109
+ }>;
110
+ export type OperationBrowserAdapter = Readonly<{
111
+ /** Read-only target/identity probe. It must not alter configuration or the composer. */
112
+ resolveTarget(request: OperationTargetResolutionRequest): Promise<OperationTargetResolution>;
113
+ submission: OperationSubmissionAdapter;
114
+ collector: OperationCollectorAdapter;
115
+ artifacts?: OperationArtifactAdapter;
116
+ staging?: OperationStagingAdapter;
117
+ control?: OperationControlAdapter;
118
+ }>;
119
+ export type OperationServiceOptions = Readonly<{
120
+ now?: () => number;
121
+ maxCasRetries?: number;
122
+ }>;
123
+ export type OperationSubmitOptions = Readonly<{
124
+ signal?: AbortSignal;
125
+ deadlineAt?: number;
126
+ /** An independently computed digest may be supplied, but is always checked. */
127
+ requestDigest?: string;
128
+ }>;
129
+ export type OperationSubmitResult = Readonly<{
130
+ handle: OperationHandleV1;
131
+ submission: SubmissionResult;
132
+ }>;
133
+ export type OperationInspectResult = Readonly<{
134
+ handle: OperationHandleV1;
135
+ state: OperationStateV1;
136
+ }>;
137
+ /** Browser integration's post-Send identity proof for a genuine new target. */
138
+ export type OperationTargetEstablishmentRequest = Readonly<{
139
+ operationId: string;
140
+ requestDigest: string;
141
+ targetBindingDigest: string;
142
+ anchorDigest: string;
143
+ causalSendActionId: string;
144
+ conversationId: string;
145
+ canonicalThreadUrl: string;
146
+ userTurnId: string;
147
+ userTurnEvidenceDigest: string;
148
+ postSendDeltaDigest?: string;
149
+ evidenceDigest: string;
150
+ observedAt?: string;
151
+ }>;
152
+ export type OperationTargetEstablishmentResult = Readonly<{
153
+ handle: OperationHandleV1;
154
+ state: OperationStateV1;
155
+ }>;
156
+ export type OperationRunResult = Readonly<{
157
+ submit: OperationSubmitResult;
158
+ collect?: CollectorResult;
159
+ }>;
160
+ /**
161
+ * Compose the additive operations surface over an authenticated journal.
162
+ * Construct one instance per stable state root and share it between callers.
163
+ */
164
+ export declare class OperationService {
165
+ private readonly journal;
166
+ private readonly now;
167
+ private readonly maxCasRetries;
168
+ /**
169
+ * Same-process convergence for a collector race. The journal remains the
170
+ * cross-process authority; this map prevents two callers from even asking
171
+ * an arbitrary adapter to begin the same local effect concurrently.
172
+ */
173
+ private readonly artifactTransfersInFlight;
174
+ constructor(journal: OperationJournalAuthority, options?: OperationServiceOptions);
175
+ /**
176
+ * Submit once and return a fresh locator. A successful return means only
177
+ * that the submission result has been reconciled and durably bridged; it
178
+ * does not wait for assistant generation.
179
+ */
180
+ submit(request: OperationSubmitRequestV1, files: readonly import("./file-identity.js").OperationFileManifestEntryV1[], adapter: OperationBrowserAdapter, options?: OperationSubmitOptions): Promise<OperationSubmitResult>;
181
+ /**
182
+ * Collect from a caller locator. It reloads the journal for every collector
183
+ * attempt and never calls the submission path. Completed receipts are
184
+ * returned directly, so a browser adapter is not needed for that case.
185
+ */
186
+ collect(handle: OperationHandleV1, adapter: OperationBrowserAdapter, options?: CollectorOptions): Promise<CollectorResult>;
187
+ /** Browser-free state inspection. The adapter is intentionally not accepted. */
188
+ inspect(handle: OperationHandleV1): Promise<OperationInspectResult>;
189
+ /**
190
+ * Persist the one-way provider identity refinement for a genuine new
191
+ * target. This seam is browser-free: the adapter must first prove the exact
192
+ * post-Send user turn and provider identity, then call this method. It never
193
+ * allocates or guesses a conversation ID and it converges identical
194
+ * concurrent observations without appending a duplicate event.
195
+ */
196
+ establishTarget(request: OperationTargetEstablishmentRequest): Promise<OperationTargetEstablishmentResult>;
197
+ /** Submit followed by collect with the same operation ID and handle. */
198
+ run(request: OperationSubmitRequestV1, files: readonly import("./file-identity.js").OperationFileManifestEntryV1[], adapter: OperationBrowserAdapter, options?: OperationSubmitOptions & CollectorOptions): Promise<OperationRunResult>;
199
+ /** Run one operation-bound Stop or Work steer through the same journal. */
200
+ control(request: OperationControlRequestV1, adapter: OperationBrowserAdapter, options?: ControlOptions): Promise<import("./control.js").ControlResult>;
201
+ private computeRequestDigest;
202
+ private ensureCreated;
203
+ private resolveAndBindTarget;
204
+ private appendTarget;
205
+ private submissionPorts;
206
+ private stageRequest;
207
+ private stagingActionId;
208
+ private persistStagingIntent;
209
+ private persistStagingReceipt;
210
+ private submissionFromStagingBlocker;
211
+ private persistActionIntent;
212
+ /**
213
+ * Persist the non-repeatable Send intent and its complete ownership anchor
214
+ * in one event. `executeAllowed` is true only when this exact invocation's
215
+ * append and adjacent phase transition both returned successfully. Any
216
+ * commit-then-throw or concurrent convergence is observation-only.
217
+ */
218
+ private persistPreparedSend;
219
+ /**
220
+ * Atomically fence a Work-steer action with its complete pre-steer
221
+ * ownership anchor. The action_prepared event is the sole mutation
222
+ * authorization boundary: an invocation that observes or converges a
223
+ * committed prefix is permanently recovery-only. A different unresolved
224
+ * action receives an explicit typed block; a previously settled action does
225
+ * not prevent a new caller-owned steer.
226
+ */
227
+ private persistSteerIntentAndBaseline;
228
+ private persistSubmissionEvidence;
229
+ private persistReturnedSubmissionBlocker;
230
+ /**
231
+ * Append the one immutable post-Send ownership witness. This is deliberately
232
+ * separate from action receipts and phase events: callers must be able to
233
+ * replay a crash prefix and distinguish "Send was invoked" from "the exact
234
+ * operation-owned user turn was proven" without consulting the browser.
235
+ */
236
+ private appendSubmissionWitnessConvergent;
237
+ private submissionWitnessFromEstablishment;
238
+ private submissionWitnessFromReceipt;
239
+ private appendActionReceiptConvergent;
240
+ /**
241
+ * Append the complete redacted pre-Send ownership baseline. The callback is
242
+ * invoked by the adapter after its final precondition read and before its
243
+ * sole browser activation. Consequently a process crash can leave either a
244
+ * durable baseline with no click, or a durable baseline plus a Send intent;
245
+ * it can never require reconstructing authority from a post-Send page.
246
+ */
247
+ private persistOwnershipBaseline;
248
+ private appendPhaseConvergent;
249
+ private appendConvergent;
250
+ private eventEffectExists;
251
+ private persistProgress;
252
+ private persistTerminal;
253
+ /**
254
+ * Transfer each exact terminal artifact and project only durable transfer
255
+ * facts into the operation receipt. No provider result is trusted until its
256
+ * journal callbacks have produced an authenticated artifact-transfer
257
+ * receipt. A missing adapter, a prior intent without a receipt, or an
258
+ * adapter protocol failure closes the one-shot obligation as partial/blocked
259
+ * without re-opening the source.
260
+ */
261
+ private persistTerminalArtifactTransfers;
262
+ private persistTerminalArtifactTransfer;
263
+ private invokeArtifactAdapter;
264
+ private artifactTransferActionId;
265
+ private makeUnavailableArtifactTransferIntent;
266
+ private closeArtifactTransferWithoutSource;
267
+ private artifactTransferJournal;
268
+ private readArtifactTransferState;
269
+ private persistArtifactTransferIntent;
270
+ private persistArtifactTransferReceipt;
271
+ private advanceToCapturing;
272
+ /**
273
+ * Rebuild the prompt-free Work-steer prepared record from authenticated
274
+ * journal state. The journal stores the action-prepared action/baseline;
275
+ * assistant branch identity is derived from that baseline and the caller's
276
+ * exact control request, then the keyed prepared digest is recomputed.
277
+ */
278
+ private reconstructSteerIntent;
279
+ private readControlParent;
280
+ private persistControlIntent;
281
+ private persistControlReceipt;
282
+ private loadForHandle;
283
+ private targetBindingDigest;
284
+ private timestamp;
285
+ private serviceError;
286
+ }