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

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 (191) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +27 -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/operation-action-prepared-event.json +42 -0
  7. package/contracts/v1/fixtures/operation-action.json +13 -0
  8. package/contracts/v1/fixtures/operation-artifact-receipt.json +14 -0
  9. package/contracts/v1/fixtures/operation-artifact-transfer-intent-event.json +24 -0
  10. package/contracts/v1/fixtures/operation-artifact-transfer-receipt-event.json +26 -0
  11. package/contracts/v1/fixtures/operation-artifact-transfer-state.json +178 -0
  12. package/contracts/v1/fixtures/operation-blocker.json +10 -0
  13. package/contracts/v1/fixtures/operation-collect-request.json +17 -0
  14. package/contracts/v1/fixtures/operation-collect-result.json +42 -0
  15. package/contracts/v1/fixtures/operation-control-receipt.json +13 -0
  16. package/contracts/v1/fixtures/operation-control-request.json +18 -0
  17. package/contracts/v1/fixtures/operation-control-result.json +31 -0
  18. package/contracts/v1/fixtures/operation-event.json +18 -0
  19. package/contracts/v1/fixtures/operation-handle.json +10 -0
  20. package/contracts/v1/fixtures/operation-inspect-request.json +13 -0
  21. package/contracts/v1/fixtures/operation-inspect-result.json +205 -0
  22. package/contracts/v1/fixtures/operation-ownership-baseline-event.json +34 -0
  23. package/contracts/v1/fixtures/operation-receipt.json +32 -0
  24. package/contracts/v1/fixtures/operation-recovery-decision.json +7 -0
  25. package/contracts/v1/fixtures/operation-recovery-observation.json +12 -0
  26. package/contracts/v1/fixtures/operation-request.json +33 -0
  27. package/contracts/v1/fixtures/operation-state.json +144 -0
  28. package/contracts/v1/fixtures/operation-submission-witness-event.json +20 -0
  29. package/contracts/v1/fixtures/operation-submission-witness.json +11 -0
  30. package/contracts/v1/fixtures/operation-submit-result.json +16 -0
  31. package/contracts/v1/fixtures/operation-target-established-event.json +21 -0
  32. package/contracts/v1/manifest.json +155 -1
  33. package/contracts/v1/parity-suite.json +96 -1
  34. package/contracts/v1/schemas/backend-compatibility.schema.json +65 -0
  35. package/contracts/v1/schemas/backend-request.schema.json +8 -2
  36. package/contracts/v1/schemas/capabilities.schema.json +81 -1
  37. package/contracts/v1/schemas/manifest.schema.json +57 -0
  38. package/contracts/v1/schemas/operation-action.schema.json +155 -0
  39. package/contracts/v1/schemas/operation-artifact-receipt.schema.json +89 -0
  40. package/contracts/v1/schemas/operation-blocker.schema.json +70 -0
  41. package/contracts/v1/schemas/operation-collect-request.schema.json +46 -0
  42. package/contracts/v1/schemas/operation-collect-result.schema.json +74 -0
  43. package/contracts/v1/schemas/operation-control-receipt.schema.json +108 -0
  44. package/contracts/v1/schemas/operation-control-request.schema.json +111 -0
  45. package/contracts/v1/schemas/operation-control-result.schema.json +112 -0
  46. package/contracts/v1/schemas/operation-event.schema.json +756 -0
  47. package/contracts/v1/schemas/operation-handle.schema.json +55 -0
  48. package/contracts/v1/schemas/operation-inspect-request.schema.json +42 -0
  49. package/contracts/v1/schemas/operation-inspect-result.schema.json +1662 -0
  50. package/contracts/v1/schemas/operation-receipt.schema.json +153 -0
  51. package/contracts/v1/schemas/operation-recovery.schema.json +314 -0
  52. package/contracts/v1/schemas/operation-request.schema.json +158 -0
  53. package/contracts/v1/schemas/operation-state.schema.json +691 -0
  54. package/contracts/v1/schemas/operation-submission-witness.schema.json +48 -0
  55. package/contracts/v1/schemas/operation-submit-result.schema.json +94 -0
  56. package/contracts/v1/surface-drift-policy.json +50 -0
  57. package/contracts/v1/vectors/operation-request-digest-v1.json +43 -0
  58. package/dist/codex-chatgpt-control-backend.mjs +43897 -9094
  59. package/dist/codex-chatgpt-control.bundle.mjs +46360 -10262
  60. package/dist/src/backend/client.d.ts +103 -2
  61. package/dist/src/backend/client.js +1436 -97
  62. package/dist/src/backend/compatibility.d.ts +12 -0
  63. package/dist/src/backend/compatibility.js +208 -0
  64. package/dist/src/backend/protocol.d.ts +84 -1
  65. package/dist/src/backend/protocol.js +31 -5
  66. package/dist/src/backend/runtime-identity.d.ts +10 -0
  67. package/dist/src/backend/runtime-identity.js +141 -0
  68. package/dist/src/backend/session.d.ts +10 -2
  69. package/dist/src/backend/session.js +478 -7
  70. package/dist/src/backend/stdio-server.d.ts +4 -1
  71. package/dist/src/backend/stdio-server.js +240 -28
  72. package/dist/src/browser/active-composer-file-input.d.ts +9 -0
  73. package/dist/src/browser/active-composer-file-input.js +33 -0
  74. package/dist/src/browser/attach.d.ts +4 -1
  75. package/dist/src/browser/attach.js +136 -28
  76. package/dist/src/browser/downloads.d.ts +2 -0
  77. package/dist/src/client.d.ts +38 -0
  78. package/dist/src/client.js +1222 -59
  79. package/dist/src/commands/configuration.js +13 -7
  80. package/dist/src/commands/doctor.d.ts +1 -1
  81. package/dist/src/commands/doctor.js +26 -3
  82. package/dist/src/commands/experience.js +35 -0
  83. package/dist/src/commands/files.js +4 -27
  84. package/dist/src/commands/modes.js +49 -17
  85. package/dist/src/commands/power-discovery.d.ts +130 -0
  86. package/dist/src/commands/power-discovery.js +627 -0
  87. package/dist/src/commands/project-sources.js +325 -31
  88. package/dist/src/commands/sequence.js +59 -32
  89. package/dist/src/commands/session.js +7 -2
  90. package/dist/src/commands/work.js +31 -0
  91. package/dist/src/errors.d.ts +9 -0
  92. package/dist/src/errors.js +22 -0
  93. package/dist/src/index.d.ts +6 -0
  94. package/dist/src/index.js +9 -0
  95. package/dist/src/operations/artifact-output.d.ts +69 -0
  96. package/dist/src/operations/artifact-output.js +1748 -0
  97. package/dist/src/operations/artifact-stream.d.ts +19 -0
  98. package/dist/src/operations/artifact-stream.js +35 -0
  99. package/dist/src/operations/artifact-transfer.d.ts +149 -0
  100. package/dist/src/operations/artifact-transfer.js +1312 -0
  101. package/dist/src/operations/browser-adapter.d.ts +161 -0
  102. package/dist/src/operations/browser-adapter.js +2023 -0
  103. package/dist/src/operations/browser-observation.d.ts +110 -0
  104. package/dist/src/operations/browser-observation.js +1208 -0
  105. package/dist/src/operations/browser-target.d.ts +103 -0
  106. package/dist/src/operations/browser-target.js +489 -0
  107. package/dist/src/operations/canonical.d.ts +4 -0
  108. package/dist/src/operations/canonical.js +412 -0
  109. package/dist/src/operations/chatgpt-runtime.d.ts +72 -0
  110. package/dist/src/operations/chatgpt-runtime.js +1150 -0
  111. package/dist/src/operations/client.d.ts +138 -0
  112. package/dist/src/operations/client.js +1143 -0
  113. package/dist/src/operations/collector.d.ts +195 -0
  114. package/dist/src/operations/collector.js +1039 -0
  115. package/dist/src/operations/control.d.ts +372 -0
  116. package/dist/src/operations/control.js +1498 -0
  117. package/dist/src/operations/file-identity.d.ts +33 -0
  118. package/dist/src/operations/file-identity.js +153 -0
  119. package/dist/src/operations/handle.d.ts +19 -0
  120. package/dist/src/operations/handle.js +727 -0
  121. package/dist/src/operations/index.d.ts +22 -0
  122. package/dist/src/operations/index.js +22 -0
  123. package/dist/src/operations/journal.d.ts +142 -0
  124. package/dist/src/operations/journal.js +1931 -0
  125. package/dist/src/operations/production-attachments.d.ts +116 -0
  126. package/dist/src/operations/production-attachments.js +1018 -0
  127. package/dist/src/operations/production-chatgpt-artifacts.d.ts +74 -0
  128. package/dist/src/operations/production-chatgpt-artifacts.js +1146 -0
  129. package/dist/src/operations/production-chatgpt-attachments.d.ts +71 -0
  130. package/dist/src/operations/production-chatgpt-attachments.js +1563 -0
  131. package/dist/src/operations/production-configuration.d.ts +42 -0
  132. package/dist/src/operations/production-configuration.js +1363 -0
  133. package/dist/src/operations/production-primitives.d.ts +53 -0
  134. package/dist/src/operations/production-primitives.js +1073 -0
  135. package/dist/src/operations/production-work-steer.d.ts +203 -0
  136. package/dist/src/operations/production-work-steer.js +1218 -0
  137. package/dist/src/operations/recovery.d.ts +80 -0
  138. package/dist/src/operations/recovery.js +174 -0
  139. package/dist/src/operations/runtime-adapter.d.ts +118 -0
  140. package/dist/src/operations/runtime-adapter.js +786 -0
  141. package/dist/src/operations/send-once.d.ts +224 -0
  142. package/dist/src/operations/send-once.js +1081 -0
  143. package/dist/src/operations/service.d.ts +281 -0
  144. package/dist/src/operations/service.js +2810 -0
  145. package/dist/src/operations/staging.d.ts +136 -0
  146. package/dist/src/operations/staging.js +630 -0
  147. package/dist/src/operations/state-machine.d.ts +29 -0
  148. package/dist/src/operations/state-machine.js +2047 -0
  149. package/dist/src/operations/submission.d.ts +423 -0
  150. package/dist/src/operations/submission.js +1676 -0
  151. package/dist/src/operations/turn-ownership.d.ts +202 -0
  152. package/dist/src/operations/turn-ownership.js +700 -0
  153. package/dist/src/operations/types.d.ts +454 -0
  154. package/dist/src/operations/types.js +20 -0
  155. package/dist/src/operations/wire-requests.d.ts +21 -0
  156. package/dist/src/operations/wire-requests.js +396 -0
  157. package/dist/src/operations/wire-results.d.ts +97 -0
  158. package/dist/src/operations/wire-results.js +818 -0
  159. package/dist/src/runner/responses.d.ts +3 -1
  160. package/dist/src/runner/responses.js +19 -1
  161. package/dist/src/runner/result.js +227 -55
  162. package/dist/src/runner/types.d.ts +12 -0
  163. package/dist/src/runtime/command-routing.d.ts +149 -0
  164. package/dist/src/runtime/command-routing.js +431 -0
  165. package/dist/src/runtime/coordinated-browser.d.ts +24 -0
  166. package/dist/src/runtime/coordinated-browser.js +315 -0
  167. package/dist/src/runtime/coordinated-page.d.ts +39 -0
  168. package/dist/src/runtime/coordinated-page.js +634 -0
  169. package/dist/src/runtime/operation-context.d.ts +142 -0
  170. package/dist/src/runtime/operation-context.js +410 -0
  171. package/dist/src/runtime/runtime-session.d.ts +95 -0
  172. package/dist/src/runtime/runtime-session.js +314 -0
  173. package/dist/src/runtime/tab-coordinator.d.ts +200 -0
  174. package/dist/src/runtime/tab-coordinator.js +1200 -0
  175. package/dist/src/runtime/value-boundaries.d.ts +18 -0
  176. package/dist/src/runtime/value-boundaries.js +49 -0
  177. package/dist/src/safety/untrusted-output.js +2 -1
  178. package/dist/src/scripts/backend-server.js +4 -1
  179. package/dist/src/scripts/live-smoke/harness.js +79 -7
  180. package/dist/src/scripts/live-smoke/scenarios.d.ts +28 -0
  181. package/dist/src/scripts/live-smoke/scenarios.js +110 -18
  182. package/dist/src/scripts/live-smoke/types.d.ts +3 -0
  183. package/dist/src/scripts/release-canary-module.js +17 -4
  184. package/dist/src/types.d.ts +38 -1
  185. package/package.json +1 -1
  186. package/references/2026-08-16-transactional-operations.md +459 -0
  187. package/references/agents-runner.md +34 -0
  188. package/references/backend-protocol.md +73 -0
  189. package/references/python-parity.md +72 -0
  190. package/references/responses-adapter.md +19 -0
  191. package/references/streaming.md +6 -0
@@ -0,0 +1,203 @@
1
+ import type { LocatorLike, PageLike } from "../types.js";
2
+ import { type OperationBlockerCode, type OperationTargetBindingV1 } from "./types.js";
3
+ import { type OwnershipBaseline } from "./turn-ownership.js";
4
+ import { type BrowserObservationDigest, type BrowserObservationResult } from "./browser-observation.js";
5
+ /**
6
+ * Work-steer is a deliberately small browser capability. Durable action
7
+ * intent and the complete prepared baseline belong to the caller. Keeping
8
+ * those writes outside this module means a tab actor is never held across a
9
+ * journal transaction.
10
+ */
11
+ export declare const PRODUCTION_WORK_STEER_SCHEMA_VERSION: "chatgpt.browser_control.production_work_steer.v1";
12
+ export type ProductionWorkSteerComposer = Readonly<{
13
+ locator: LocatorLike;
14
+ capabilityKey: string;
15
+ candidateCount: number;
16
+ }>;
17
+ export type ProductionWorkSteerSendActivation = Readonly<{
18
+ locator: LocatorLike;
19
+ capabilityKey: string;
20
+ localeKey: string;
21
+ candidateCount: number;
22
+ }>;
23
+ export type ProductionWorkSteerObservationPhase = "prepare" | "final_recheck" | "verify" | "recovery";
24
+ /** No target or prompt crosses this callback boundary. */
25
+ export type ProductionWorkSteerObservationRequest = Readonly<{
26
+ schemaVersion: typeof PRODUCTION_WORK_STEER_SCHEMA_VERSION;
27
+ phase: ProductionWorkSteerObservationPhase;
28
+ operationId: string;
29
+ parentRequestDigest: string;
30
+ targetBindingDigest: string;
31
+ controlActionId: string;
32
+ expectedAssistantTurnId: string;
33
+ assistantBranchId?: string;
34
+ assistantParentTurnId?: string;
35
+ baselineSnapshotDigest?: string;
36
+ preparedDigest?: string;
37
+ page: Readonly<PageLike>;
38
+ signal: AbortSignal;
39
+ deadlineAt: number;
40
+ /** Always a redacted, complete baseline when present. */
41
+ baseline?: OwnershipBaseline;
42
+ }>;
43
+ /** No target, URL, label, or prompt crosses this callback boundary. */
44
+ export type ProductionWorkSteerResolverRequest = Readonly<{
45
+ schemaVersion: typeof PRODUCTION_WORK_STEER_SCHEMA_VERSION;
46
+ operationId: string;
47
+ parentRequestDigest: string;
48
+ targetBindingDigest: string;
49
+ controlActionId: string;
50
+ expectedAssistantTurnId: string;
51
+ assistantBranchId: string;
52
+ assistantParentTurnId: string;
53
+ preparedDigest: string;
54
+ page: Readonly<PageLike>;
55
+ signal: AbortSignal;
56
+ deadlineAt: number;
57
+ }>;
58
+ export type ProductionWorkSteerOptions = Readonly<{
59
+ evidenceDigest: BrowserObservationDigest;
60
+ operationId: string;
61
+ parentRequestDigest: string;
62
+ targetBindingDigest: string;
63
+ controlActionId: string;
64
+ expectedAssistantTurnId: string;
65
+ /** Captured privately and used only to validate observations. */
66
+ target: OperationTargetBindingV1;
67
+ /** Retained only in this closure and passed only to the composer locator. */
68
+ prompt: string;
69
+ observe: (request: ProductionWorkSteerObservationRequest) => Promise<BrowserObservationResult>;
70
+ resolveComposer: (request: ProductionWorkSteerResolverRequest) => Promise<ProductionWorkSteerComposer | undefined>;
71
+ resolveSendControl: (request: ProductionWorkSteerResolverRequest) => Promise<ProductionWorkSteerSendActivation | undefined>;
72
+ timeoutMs?: number;
73
+ now?: () => number;
74
+ }>;
75
+ export type ProductionWorkSteerPrepared = Readonly<{
76
+ schemaVersion: typeof PRODUCTION_WORK_STEER_SCHEMA_VERSION;
77
+ operationId: string;
78
+ parentRequestDigest: string;
79
+ targetBindingDigest: string;
80
+ controlActionId: string;
81
+ action: "work_steer";
82
+ expectedAssistantTurnId: string;
83
+ /** Derived from the exact observed assistant turn. */
84
+ assistantBranchId: string;
85
+ /** Derived from the exact observed assistant turn. */
86
+ assistantParentTurnId: string;
87
+ baselineSnapshotDigest: string;
88
+ preparedDigest: string;
89
+ /** Complete and redacted; safe for the caller's durable journal. */
90
+ baseline: OwnershipBaseline;
91
+ }>;
92
+ export type ProductionWorkSteerVerificationReceipt = Readonly<{
93
+ schemaVersion: typeof PRODUCTION_WORK_STEER_SCHEMA_VERSION;
94
+ baselineSnapshotDigest: string;
95
+ preparedDigest: string;
96
+ assistantTurnId: string;
97
+ assistantBranchId: string;
98
+ assistantParentTurnId: string;
99
+ userTurnId: string;
100
+ userTurnEvidenceDigest: string;
101
+ postSendDeltaDigest: string;
102
+ evidenceDigest: string;
103
+ }>;
104
+ export type ProductionWorkSteerPrepareRequest = Readonly<{
105
+ page: Readonly<PageLike>;
106
+ signal: AbortSignal;
107
+ deadlineAt?: number;
108
+ }>;
109
+ export type ProductionWorkSteerExecutePreparedRequest = Readonly<{
110
+ page: Readonly<PageLike>;
111
+ prepared: ProductionWorkSteerPrepared;
112
+ signal: AbortSignal;
113
+ deadlineAt?: number;
114
+ }>;
115
+ export type ProductionWorkSteerVerifyRequest = Readonly<{
116
+ page: Readonly<PageLike>;
117
+ prepared: ProductionWorkSteerPrepared;
118
+ signal: AbortSignal;
119
+ deadlineAt?: number;
120
+ }>;
121
+ export type ProductionWorkSteerRecoveryRequest = Readonly<{
122
+ page: Readonly<PageLike>;
123
+ prepared: ProductionWorkSteerPrepared;
124
+ /** Authenticated complete baseline loaded from the caller's journal. */
125
+ baseline: OwnershipBaseline;
126
+ signal: AbortSignal;
127
+ deadlineAt?: number;
128
+ }>;
129
+ type Phase = "prepare" | "execute_prepared" | "verify" | "recovery";
130
+ export type ProductionWorkSteerResultBase = Readonly<{
131
+ schemaVersion: typeof PRODUCTION_WORK_STEER_SCHEMA_VERSION;
132
+ operationId: string;
133
+ parentRequestDigest: string;
134
+ targetBindingDigest: string;
135
+ controlActionId: string;
136
+ action: "work_steer";
137
+ phase: Phase;
138
+ expectedAssistantTurnId: string;
139
+ assistantBranchId?: string;
140
+ assistantParentTurnId?: string;
141
+ baselineSnapshotDigest?: string;
142
+ preparedDigest?: string;
143
+ }>;
144
+ type BlockedResult = ProductionWorkSteerResultBase & Readonly<{
145
+ status: "blocked";
146
+ blockerCode: OperationBlockerCode;
147
+ observationRequired: boolean;
148
+ mutationBoundary: "none" | "control_may_have_occurred";
149
+ evidenceDigest?: string;
150
+ }>;
151
+ type UncertainResult = ProductionWorkSteerResultBase & Readonly<{
152
+ status: "uncertain";
153
+ blockerCode: OperationBlockerCode;
154
+ observationRequired: true;
155
+ mutationBoundary: "control_may_have_occurred";
156
+ quarantine: "caller" | "provider";
157
+ evidenceDigest?: string;
158
+ }>;
159
+ export type ProductionWorkSteerResult = (ProductionWorkSteerResultBase & Readonly<{
160
+ phase: "prepare";
161
+ status: "prepared";
162
+ observationRequired: false;
163
+ mutationBoundary: "none";
164
+ prepared: ProductionWorkSteerPrepared;
165
+ }>) | (ProductionWorkSteerResultBase & Readonly<{
166
+ phase: "execute_prepared";
167
+ status: "executed";
168
+ observationRequired: true;
169
+ mutationBoundary: "control_may_have_occurred";
170
+ }>) | (ProductionWorkSteerResultBase & Readonly<{
171
+ phase: "verify" | "recovery";
172
+ status: "satisfied";
173
+ observationRequired: false;
174
+ mutationBoundary: "control_may_have_occurred";
175
+ receipt: ProductionWorkSteerVerificationReceipt;
176
+ baselineSnapshotDigest: string;
177
+ preparedDigest: string;
178
+ assistantBranchId: string;
179
+ assistantParentTurnId: string;
180
+ userTurnId: string;
181
+ userTurnEvidenceDigest: string;
182
+ postSendDeltaDigest: string;
183
+ evidenceDigest: string;
184
+ }>) | BlockedResult | UncertainResult;
185
+ export declare class ProductionWorkSteerPrimitiveError extends Error {
186
+ readonly code: string;
187
+ constructor(code: string);
188
+ }
189
+ /**
190
+ * Construct one request-scoped primitive. The public phase boundary is:
191
+ *
192
+ * prepare (read) -> caller persists intent + prepared.baseline
193
+ * -> executePrepared (one-shot mutation) -> verify/recover (read only).
194
+ */
195
+ export declare function createProductionWorkSteerPrimitive(options: ProductionWorkSteerOptions): Readonly<{
196
+ prepare(request: ProductionWorkSteerPrepareRequest): Promise<ProductionWorkSteerResult>;
197
+ executePrepared(request: ProductionWorkSteerExecutePreparedRequest): Promise<ProductionWorkSteerResult>;
198
+ verify(request: ProductionWorkSteerVerifyRequest): Promise<ProductionWorkSteerResult>;
199
+ recover(request: ProductionWorkSteerRecoveryRequest): Promise<ProductionWorkSteerResult>;
200
+ }>;
201
+ export declare const createOperationProductionWorkSteer: typeof createProductionWorkSteerPrimitive;
202
+ export declare const createProductionWorkSteer: typeof createProductionWorkSteerPrimitive;
203
+ export {};