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,1662 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://local.codex-chatgpt-control/contracts/v1/schemas/operation-inspect-result.schema.json",
4
+ "title": "Transactional browser operation inspect result",
5
+ "description": "A browser-free durable inspection envelope. It always contains the fresh handle and a redacted materialized state.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "status",
11
+ "operationId",
12
+ "requestDigest",
13
+ "handle",
14
+ "state"
15
+ ],
16
+ "properties": {
17
+ "schemaVersion": {
18
+ "const": "chatgpt.browser_control.operation_inspect_result.v1"
19
+ },
20
+ "status": {
21
+ "enum": [
22
+ "completed",
23
+ "pending",
24
+ "uncertain"
25
+ ]
26
+ },
27
+ "operationId": {
28
+ "$ref": "#/$defs/uuid"
29
+ },
30
+ "requestDigest": {
31
+ "$ref": "#/$defs/digest"
32
+ },
33
+ "handle": {
34
+ "$ref": "#/$defs/handle"
35
+ },
36
+ "state": {
37
+ "$ref": "#/$defs/state"
38
+ },
39
+ "compatibility": {
40
+ "$ref": "#/$defs/compatibility"
41
+ }
42
+ },
43
+ "$defs": {
44
+ "compatibility": {
45
+ "type": "object",
46
+ "additionalProperties": false,
47
+ "required": ["schemaVersion", "status", "mode", "warnings"],
48
+ "properties": {
49
+ "schemaVersion": {
50
+ "const": "chatgpt.browser_control.backend_compatibility.v1"
51
+ },
52
+ "status": {
53
+ "enum": ["compatible", "warning", "unknown", "blocked"]
54
+ },
55
+ "mode": {
56
+ "enum": ["multiplexed", "single-flight", "legacy", "unknown"]
57
+ },
58
+ "protocolVersion": { "$ref": "#/$defs/compatibilityText" },
59
+ "backendSessionId": { "$ref": "#/$defs/compatibilityText" },
60
+ "packageName": { "$ref": "#/$defs/compatibilityText" },
61
+ "packageVersion": { "$ref": "#/$defs/compatibilityText" },
62
+ "runtime": { "$ref": "#/$defs/compatibilityText" },
63
+ "runtimeVersion": { "$ref": "#/$defs/compatibilityText" },
64
+ "buildDigest": { "$ref": "#/$defs/compatibilityText" },
65
+ "warnings": {
66
+ "type": "array",
67
+ "maxItems": 16,
68
+ "items": { "$ref": "#/$defs/compatibilityWarning" }
69
+ }
70
+ }
71
+ },
72
+ "compatibilityWarning": {
73
+ "type": "object",
74
+ "additionalProperties": false,
75
+ "required": ["code", "message"],
76
+ "properties": {
77
+ "code": {
78
+ "enum": [
79
+ "package_name_mismatch",
80
+ "package_version_mismatch",
81
+ "runtime_mismatch",
82
+ "runtime_version_mismatch",
83
+ "build_digest_mismatch",
84
+ "provenance_unknown",
85
+ "legacy_backend",
86
+ "negotiation_rejected"
87
+ ]
88
+ },
89
+ "field": {
90
+ "enum": ["packageName", "packageVersion", "runtime", "runtimeVersion", "buildDigest"]
91
+ },
92
+ "expected": { "$ref": "#/$defs/compatibilityText" },
93
+ "received": { "$ref": "#/$defs/compatibilityText" },
94
+ "message": { "$ref": "#/$defs/compatibilityText" }
95
+ }
96
+ },
97
+ "compatibilityText": {
98
+ "type": "string",
99
+ "minLength": 1,
100
+ "maxLength": 512,
101
+ "pattern": "^(?=.*\\S)[^\\u0000-\\u001f\\u007f]{1,512}$"
102
+ },
103
+ "capturePolicy": {
104
+ "type": "object",
105
+ "additionalProperties": false,
106
+ "required": ["responseContent", "responseFormat", "artifacts"],
107
+ "properties": {
108
+ "responseContent": { "enum": ["include", "metadata"] },
109
+ "responseFormat": { "enum": ["markdown", "text"] },
110
+ "artifacts": { "enum": ["receipt_only", "transfer"] }
111
+ }
112
+ },
113
+ "uuid": {
114
+ "type": "string",
115
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
116
+ },
117
+ "digest": {
118
+ "type": "string",
119
+ "pattern": "^hmac-sha256:[0-9a-f]{64}$"
120
+ },
121
+ "sha256": {
122
+ "type": "string",
123
+ "pattern": "^[0-9a-f]{64}$"
124
+ },
125
+ "instant": {
126
+ "type": "string",
127
+ "pattern": "^(?!\\d{4}-02-(?:30|31)T)(?!\\d{4}-(?:04|06|09|11)-31T)\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}Z$"
128
+ },
129
+ "opaqueId": {
130
+ "type": "string",
131
+ "minLength": 1,
132
+ "maxLength": 512,
133
+ "pattern": "^(?=.*\\S)[^\\u0000-\\u001f\\u007f]{1,512}$"
134
+ },
135
+ "phase": {
136
+ "enum": [
137
+ "prepared",
138
+ "handoff_pending",
139
+ "ready",
140
+ "send_pending",
141
+ "submitted",
142
+ "generating",
143
+ "capturing",
144
+ "completed",
145
+ "uncertain"
146
+ ]
147
+ },
148
+ "boundary": {
149
+ "enum": [
150
+ "none",
151
+ "handoff_may_have_occurred",
152
+ "send_may_have_occurred",
153
+ "control_may_have_occurred"
154
+ ]
155
+ },
156
+ "handle": {
157
+ "type": "object",
158
+ "additionalProperties": false,
159
+ "required": [
160
+ "schemaVersion",
161
+ "operationId",
162
+ "requestDigest",
163
+ "surface",
164
+ "revision",
165
+ "phase",
166
+ "mutationBoundary"
167
+ ],
168
+ "properties": {
169
+ "schemaVersion": {
170
+ "const": "chatgpt.browser_control.operation_handle.v1"
171
+ },
172
+ "operationId": {
173
+ "$ref": "#/$defs/uuid"
174
+ },
175
+ "requestDigest": {
176
+ "$ref": "#/$defs/digest"
177
+ },
178
+ "surface": {
179
+ "enum": [
180
+ "chat",
181
+ "work"
182
+ ]
183
+ },
184
+ "revision": {
185
+ "type": "integer",
186
+ "minimum": 1,
187
+ "maximum": 9007199254740991
188
+ },
189
+ "phase": {
190
+ "$ref": "#/$defs/phase"
191
+ },
192
+ "mutationBoundary": {
193
+ "$ref": "#/$defs/boundary"
194
+ },
195
+ "targetBindingDigest": {
196
+ "$ref": "#/$defs/digest"
197
+ }
198
+ }
199
+ },
200
+ "evidenceProfile": {
201
+ "type": "object",
202
+ "additionalProperties": false,
203
+ "required": [
204
+ "providerIdentity",
205
+ "stableTabId",
206
+ "stableConversationId",
207
+ "stableUserTurnId",
208
+ "authoritativeTabClaim",
209
+ "replacementTabRecovery"
210
+ ],
211
+ "properties": {
212
+ "providerIdentity": {
213
+ "enum": [
214
+ "required",
215
+ "unavailable"
216
+ ]
217
+ },
218
+ "stableTabId": {
219
+ "enum": [
220
+ "required",
221
+ "unavailable"
222
+ ]
223
+ },
224
+ "stableConversationId": {
225
+ "enum": [
226
+ "required",
227
+ "unavailable"
228
+ ]
229
+ },
230
+ "stableUserTurnId": {
231
+ "enum": [
232
+ "required",
233
+ "unavailable"
234
+ ]
235
+ },
236
+ "authoritativeTabClaim": {
237
+ "enum": [
238
+ "required",
239
+ "unavailable"
240
+ ]
241
+ },
242
+ "replacementTabRecovery": {
243
+ "type": "boolean"
244
+ }
245
+ }
246
+ },
247
+ "target": {
248
+ "type": "object",
249
+ "additionalProperties": false,
250
+ "required": [
251
+ "providerId",
252
+ "browserId",
253
+ "tabId",
254
+ "coordinationScope",
255
+ "evidenceProfile"
256
+ ],
257
+ "properties": {
258
+ "providerId": {
259
+ "$ref": "#/$defs/opaqueId"
260
+ },
261
+ "browserId": {
262
+ "$ref": "#/$defs/opaqueId"
263
+ },
264
+ "tabId": {
265
+ "$ref": "#/$defs/opaqueId"
266
+ },
267
+ "coordinationScope": {
268
+ "enum": [
269
+ "process",
270
+ "provider"
271
+ ]
272
+ },
273
+ "tabClaimEvidenceDigest": {
274
+ "$ref": "#/$defs/digest"
275
+ },
276
+ "canonicalThreadUrl": {
277
+ "type": "string",
278
+ "minLength": 1,
279
+ "maxLength": 4096,
280
+ "pattern": "^https://[^?#]+$"
281
+ },
282
+ "conversationId": {
283
+ "$ref": "#/$defs/opaqueId"
284
+ },
285
+ "userTurnBaselineDigest": {
286
+ "$ref": "#/$defs/digest"
287
+ },
288
+ "assistantTurnBaselineDigest": {
289
+ "$ref": "#/$defs/digest"
290
+ },
291
+ "configurationReceiptDigest": {
292
+ "$ref": "#/$defs/digest"
293
+ },
294
+ "targetLifecycle": {
295
+ "enum": [
296
+ "fixed",
297
+ "new_pending",
298
+ "new_established"
299
+ ]
300
+ },
301
+ "newTargetAnchorDigest": {
302
+ "$ref": "#/$defs/digest"
303
+ },
304
+ "blankTaskEvidenceDigest": {
305
+ "$ref": "#/$defs/digest"
306
+ },
307
+ "targetEstablishment": {
308
+ "$ref": "#/$defs/targetEstablishmentRead"
309
+ },
310
+ "evidenceProfile": {
311
+ "$ref": "#/$defs/evidenceProfile"
312
+ }
313
+ },
314
+ "allOf": [
315
+ {
316
+ "if": {
317
+ "properties": {
318
+ "coordinationScope": {
319
+ "const": "provider"
320
+ }
321
+ },
322
+ "required": [
323
+ "coordinationScope"
324
+ ]
325
+ },
326
+ "then": {
327
+ "required": [
328
+ "tabClaimEvidenceDigest"
329
+ ],
330
+ "properties": {
331
+ "tabClaimEvidenceDigest": {
332
+ "$ref": "#/$defs/digest"
333
+ },
334
+ "evidenceProfile": {
335
+ "type": "object",
336
+ "properties": {
337
+ "authoritativeTabClaim": {
338
+ "const": "required"
339
+ }
340
+ }
341
+ }
342
+ }
343
+ }
344
+ },
345
+ {
346
+ "if": {
347
+ "type": "object",
348
+ "properties": {
349
+ "targetLifecycle": {
350
+ "const": "new_pending"
351
+ }
352
+ },
353
+ "required": [
354
+ "targetLifecycle"
355
+ ]
356
+ },
357
+ "then": {
358
+ "type": "object",
359
+ "required": [
360
+ "newTargetAnchorDigest",
361
+ "blankTaskEvidenceDigest"
362
+ ],
363
+ "properties": {
364
+ "newTargetAnchorDigest": {
365
+ "$ref": "#/$defs/digest"
366
+ },
367
+ "blankTaskEvidenceDigest": {
368
+ "$ref": "#/$defs/digest"
369
+ }
370
+ }
371
+ }
372
+ },
373
+ {
374
+ "if": {
375
+ "type": "object",
376
+ "properties": {
377
+ "targetLifecycle": {
378
+ "const": "new_established"
379
+ }
380
+ },
381
+ "required": [
382
+ "targetLifecycle"
383
+ ]
384
+ },
385
+ "then": {
386
+ "type": "object",
387
+ "required": [
388
+ "newTargetAnchorDigest",
389
+ "blankTaskEvidenceDigest",
390
+ "canonicalThreadUrl",
391
+ "conversationId",
392
+ "targetEstablishment"
393
+ ],
394
+ "properties": {
395
+ "newTargetAnchorDigest": {
396
+ "$ref": "#/$defs/digest"
397
+ },
398
+ "blankTaskEvidenceDigest": {
399
+ "$ref": "#/$defs/digest"
400
+ },
401
+ "canonicalThreadUrl": {
402
+ "type": "string",
403
+ "minLength": 1,
404
+ "maxLength": 4096,
405
+ "pattern": "^https://[^?#]+$"
406
+ },
407
+ "conversationId": {
408
+ "$ref": "#/$defs/opaqueId"
409
+ },
410
+ "targetEstablishment": {
411
+ "$ref": "#/$defs/targetEstablishment"
412
+ }
413
+ }
414
+ }
415
+ },
416
+ {
417
+ "if": {
418
+ "type": "object",
419
+ "properties": {
420
+ "targetLifecycle": {
421
+ "const": "fixed"
422
+ }
423
+ },
424
+ "required": [
425
+ "targetLifecycle"
426
+ ]
427
+ },
428
+ "then": {
429
+ "type": "object"
430
+ }
431
+ }
432
+ ]
433
+ },
434
+ "action": {
435
+ "type": "object",
436
+ "additionalProperties": false,
437
+ "required": [
438
+ "actionId",
439
+ "kind",
440
+ "repeatPolicy",
441
+ "requestDigest",
442
+ "intentRevision",
443
+ "intentAt"
444
+ ],
445
+ "properties": {
446
+ "actionId": {
447
+ "$ref": "#/$defs/uuid"
448
+ },
449
+ "kind": {
450
+ "$ref": "#/$defs/actionKind"
451
+ },
452
+ "repeatPolicy": {
453
+ "$ref": "#/$defs/repeatPolicy"
454
+ },
455
+ "requestDigest": {
456
+ "$ref": "#/$defs/digest"
457
+ },
458
+ "parentActionId": {
459
+ "$ref": "#/$defs/uuid"
460
+ },
461
+ "targetDigest": {
462
+ "$ref": "#/$defs/digest"
463
+ },
464
+ "intentRevision": {
465
+ "$ref": "#/$defs/revision"
466
+ },
467
+ "intentAt": {
468
+ "$ref": "#/$defs/instant"
469
+ },
470
+ "outcome": {
471
+ "enum": [
472
+ "satisfied",
473
+ "not_satisfied",
474
+ "uncertain"
475
+ ]
476
+ },
477
+ "receiptRevision": {
478
+ "$ref": "#/$defs/revision"
479
+ },
480
+ "receiptAt": {
481
+ "$ref": "#/$defs/instant"
482
+ },
483
+ "evidenceDigest": {
484
+ "$ref": "#/$defs/digest"
485
+ },
486
+ "blockerCode": {
487
+ "$ref": "#/$defs/code"
488
+ }
489
+ },
490
+ "allOf": [
491
+ {
492
+ "if": {
493
+ "required": [
494
+ "outcome"
495
+ ],
496
+ "properties": {
497
+ "outcome": {
498
+ "enum": [
499
+ "satisfied",
500
+ "not_satisfied",
501
+ "uncertain"
502
+ ]
503
+ }
504
+ }
505
+ },
506
+ "then": {
507
+ "required": [
508
+ "receiptRevision",
509
+ "receiptAt"
510
+ ],
511
+ "properties": {
512
+ "receiptRevision": {
513
+ "$ref": "#/$defs/revision"
514
+ },
515
+ "receiptAt": {
516
+ "$ref": "#/$defs/instant"
517
+ }
518
+ }
519
+ }
520
+ },
521
+ {
522
+ "if": {
523
+ "required": [
524
+ "receiptRevision"
525
+ ],
526
+ "properties": {
527
+ "receiptRevision": {
528
+ "$ref": "#/$defs/revision"
529
+ }
530
+ }
531
+ },
532
+ "then": {
533
+ "required": [
534
+ "outcome",
535
+ "receiptAt"
536
+ ],
537
+ "properties": {
538
+ "outcome": {
539
+ "enum": [
540
+ "satisfied",
541
+ "not_satisfied",
542
+ "uncertain"
543
+ ]
544
+ },
545
+ "receiptAt": {
546
+ "$ref": "#/$defs/instant"
547
+ }
548
+ }
549
+ }
550
+ },
551
+ {
552
+ "if": {
553
+ "required": [
554
+ "receiptAt"
555
+ ]
556
+ },
557
+ "then": {
558
+ "required": [
559
+ "outcome",
560
+ "receiptRevision"
561
+ ],
562
+ "properties": {
563
+ "outcome": {
564
+ "enum": [
565
+ "satisfied",
566
+ "not_satisfied",
567
+ "uncertain"
568
+ ]
569
+ },
570
+ "receiptRevision": {
571
+ "$ref": "#/$defs/revision"
572
+ }
573
+ }
574
+ }
575
+ },
576
+ {
577
+ "if": {
578
+ "required": [
579
+ "evidenceDigest"
580
+ ],
581
+ "properties": {
582
+ "evidenceDigest": {
583
+ "$ref": "#/$defs/digest"
584
+ }
585
+ }
586
+ },
587
+ "then": {
588
+ "required": [
589
+ "outcome"
590
+ ],
591
+ "properties": {
592
+ "outcome": {
593
+ "enum": [
594
+ "satisfied",
595
+ "not_satisfied",
596
+ "uncertain"
597
+ ]
598
+ }
599
+ }
600
+ }
601
+ },
602
+ {
603
+ "if": {
604
+ "required": [
605
+ "blockerCode"
606
+ ],
607
+ "properties": {
608
+ "blockerCode": {
609
+ "$ref": "#/$defs/code"
610
+ }
611
+ }
612
+ },
613
+ "then": {
614
+ "required": [
615
+ "outcome"
616
+ ],
617
+ "properties": {
618
+ "outcome": {
619
+ "enum": [
620
+ "not_satisfied",
621
+ "uncertain"
622
+ ]
623
+ }
624
+ }
625
+ }
626
+ },
627
+ {
628
+ "if": {
629
+ "properties": {
630
+ "outcome": {
631
+ "const": "satisfied"
632
+ }
633
+ },
634
+ "required": [
635
+ "outcome"
636
+ ]
637
+ },
638
+ "then": {
639
+ "required": [
640
+ "evidenceDigest"
641
+ ],
642
+ "properties": {
643
+ "evidenceDigest": {
644
+ "$ref": "#/$defs/digest"
645
+ }
646
+ }
647
+ }
648
+ },
649
+ {
650
+ "if": {
651
+ "properties": {
652
+ "kind": {
653
+ "not": {
654
+ "const": "status_read"
655
+ }
656
+ }
657
+ },
658
+ "required": [
659
+ "kind"
660
+ ]
661
+ },
662
+ "then": {
663
+ "required": [
664
+ "targetDigest"
665
+ ],
666
+ "properties": {
667
+ "targetDigest": {
668
+ "$ref": "#/$defs/digest"
669
+ }
670
+ }
671
+ }
672
+ },
673
+ {
674
+ "if": {
675
+ "properties": {
676
+ "kind": {
677
+ "enum": [
678
+ "status_read",
679
+ "power_discovery"
680
+ ]
681
+ }
682
+ },
683
+ "required": [
684
+ "kind"
685
+ ]
686
+ },
687
+ "then": {
688
+ "properties": {
689
+ "repeatPolicy": {
690
+ "const": "read_only"
691
+ }
692
+ }
693
+ }
694
+ },
695
+ {
696
+ "if": {
697
+ "properties": {
698
+ "kind": {
699
+ "enum": [
700
+ "configuration_set",
701
+ "tool_set",
702
+ "composer_set",
703
+ "power_select"
704
+ ]
705
+ }
706
+ },
707
+ "required": [
708
+ "kind"
709
+ ]
710
+ },
711
+ "then": {
712
+ "properties": {
713
+ "repeatPolicy": {
714
+ "const": "reconcile_set_to_value"
715
+ }
716
+ }
717
+ }
718
+ },
719
+ {
720
+ "if": {
721
+ "properties": {
722
+ "kind": {
723
+ "enum": [
724
+ "file_handoff",
725
+ "send",
726
+ "work_steer",
727
+ "stop"
728
+ ]
729
+ }
730
+ },
731
+ "required": [
732
+ "kind"
733
+ ]
734
+ },
735
+ "then": {
736
+ "properties": {
737
+ "repeatPolicy": {
738
+ "const": "observe_only_after_intent"
739
+ }
740
+ }
741
+ }
742
+ },
743
+ {
744
+ "if": {
745
+ "properties": {
746
+ "kind": {
747
+ "enum": [
748
+ "download",
749
+ "local_output_commit",
750
+ "clipboard_capture_restore"
751
+ ]
752
+ }
753
+ },
754
+ "required": [
755
+ "kind"
756
+ ]
757
+ },
758
+ "then": {
759
+ "properties": {
760
+ "repeatPolicy": {
761
+ "const": "reconcile_local_effect"
762
+ }
763
+ }
764
+ }
765
+ }
766
+ ]
767
+ },
768
+ "artifact": {
769
+ "type": "object",
770
+ "additionalProperties": false,
771
+ "required": [
772
+ "schemaVersion",
773
+ "operationId",
774
+ "artifactKey",
775
+ "assistantTurnId",
776
+ "sourceIdentityDigest",
777
+ "kind",
778
+ "ordinal",
779
+ "status"
780
+ ],
781
+ "properties": {
782
+ "schemaVersion": {
783
+ "const": "chatgpt.browser_control.operation_artifact_receipt.v1"
784
+ },
785
+ "operationId": {
786
+ "$ref": "#/$defs/uuid"
787
+ },
788
+ "artifactKey": {
789
+ "$ref": "#/$defs/opaqueKey"
790
+ },
791
+ "assistantTurnId": {
792
+ "$ref": "#/$defs/opaqueId"
793
+ },
794
+ "sourceIdentityDigest": {
795
+ "$ref": "#/$defs/digest"
796
+ },
797
+ "kind": {
798
+ "enum": [
799
+ "file",
800
+ "image",
801
+ "other"
802
+ ]
803
+ },
804
+ "ordinal": {
805
+ "type": "integer",
806
+ "minimum": 0,
807
+ "maximum": 9007199254740991
808
+ },
809
+ "outputKey": {
810
+ "$ref": "#/$defs/outputKey"
811
+ },
812
+ "mimeType": {
813
+ "type": "string",
814
+ "minLength": 1,
815
+ "maxLength": 127,
816
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9!#$&^_.+/-]{0,126}$"
817
+ },
818
+ "bytes": {
819
+ "type": "integer",
820
+ "minimum": 0,
821
+ "maximum": 9007199254740991
822
+ },
823
+ "sha256": {
824
+ "$ref": "#/$defs/sha256"
825
+ },
826
+ "status": {
827
+ "enum": [
828
+ "available",
829
+ "transferred",
830
+ "partial",
831
+ "blocked"
832
+ ]
833
+ },
834
+ "blockerCode": {
835
+ "$ref": "#/$defs/code"
836
+ }
837
+ },
838
+ "allOf": [
839
+ {
840
+ "if": {
841
+ "properties": {
842
+ "status": {
843
+ "const": "transferred"
844
+ }
845
+ },
846
+ "required": [
847
+ "status"
848
+ ]
849
+ },
850
+ "then": {
851
+ "required": [
852
+ "outputKey",
853
+ "bytes",
854
+ "sha256"
855
+ ],
856
+ "properties": {
857
+ "outputKey": {
858
+ "$ref": "#/$defs/outputKey"
859
+ },
860
+ "bytes": {
861
+ "type": "integer",
862
+ "minimum": 0,
863
+ "maximum": 9007199254740991
864
+ },
865
+ "sha256": {
866
+ "$ref": "#/$defs/sha256"
867
+ }
868
+ }
869
+ }
870
+ },
871
+ {
872
+ "if": {
873
+ "properties": {
874
+ "status": {
875
+ "enum": [
876
+ "partial",
877
+ "blocked"
878
+ ]
879
+ }
880
+ },
881
+ "required": [
882
+ "status"
883
+ ]
884
+ },
885
+ "then": {
886
+ "required": [
887
+ "blockerCode"
888
+ ],
889
+ "properties": {
890
+ "blockerCode": {
891
+ "$ref": "#/$defs/code"
892
+ }
893
+ }
894
+ }
895
+ },
896
+ {
897
+ "if": {
898
+ "properties": {
899
+ "status": {
900
+ "enum": [
901
+ "available",
902
+ "transferred"
903
+ ]
904
+ }
905
+ },
906
+ "required": [
907
+ "status"
908
+ ]
909
+ },
910
+ "then": {
911
+ "not": {
912
+ "required": [
913
+ "blockerCode"
914
+ ]
915
+ }
916
+ }
917
+ }
918
+ ]
919
+ },
920
+ "receipt": {
921
+ "type": "object",
922
+ "additionalProperties": false,
923
+ "required": [
924
+ "schemaVersion",
925
+ "operationId",
926
+ "requestDigest",
927
+ "targetBindingDigest",
928
+ "userTurnId",
929
+ "userTurnEvidenceDigest",
930
+ "assistantTurnId",
931
+ "ownershipEvidenceDigest",
932
+ "finishReason",
933
+ "contentAvailable",
934
+ "artifacts",
935
+ "completedAt"
936
+ ],
937
+ "properties": {
938
+ "schemaVersion": {
939
+ "const": "chatgpt.browser_control.operation_receipt.v1"
940
+ },
941
+ "operationId": {
942
+ "$ref": "#/$defs/uuid"
943
+ },
944
+ "requestDigest": {
945
+ "$ref": "#/$defs/digest"
946
+ },
947
+ "targetBindingDigest": {
948
+ "$ref": "#/$defs/digest"
949
+ },
950
+ "userTurnId": {
951
+ "$ref": "#/$defs/opaqueId"
952
+ },
953
+ "userTurnEvidenceDigest": {
954
+ "$ref": "#/$defs/digest"
955
+ },
956
+ "assistantTurnId": {
957
+ "$ref": "#/$defs/opaqueId"
958
+ },
959
+ "ownershipEvidenceDigest": {
960
+ "$ref": "#/$defs/digest"
961
+ },
962
+ "responseDigest": {
963
+ "$ref": "#/$defs/digest"
964
+ },
965
+ "responseBytes": {
966
+ "type": "integer",
967
+ "minimum": 0,
968
+ "maximum": 9007199254740991
969
+ },
970
+ "responseFormat": {
971
+ "enum": [
972
+ "markdown",
973
+ "text"
974
+ ]
975
+ },
976
+ "finishReason": {
977
+ "type": "string",
978
+ "minLength": 1,
979
+ "maxLength": 128,
980
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
981
+ },
982
+ "contentAvailable": {
983
+ "type": "boolean"
984
+ },
985
+ "artifacts": {
986
+ "type": "array",
987
+ "items": {
988
+ "$ref": "#/$defs/artifact"
989
+ },
990
+ "maxItems": 32
991
+ },
992
+ "completedAt": {
993
+ "$ref": "#/$defs/instant"
994
+ }
995
+ },
996
+ "dependentRequired": {
997
+ "responseDigest": [
998
+ "responseBytes"
999
+ ],
1000
+ "responseBytes": [
1001
+ "responseDigest"
1002
+ ]
1003
+ },
1004
+ "allOf": [
1005
+ {
1006
+ "if": {
1007
+ "properties": {
1008
+ "contentAvailable": {
1009
+ "const": true
1010
+ }
1011
+ },
1012
+ "required": [
1013
+ "contentAvailable"
1014
+ ]
1015
+ },
1016
+ "then": {
1017
+ "required": [
1018
+ "responseDigest",
1019
+ "responseBytes"
1020
+ ],
1021
+ "properties": {
1022
+ "responseDigest": {
1023
+ "$ref": "#/$defs/digest"
1024
+ },
1025
+ "responseBytes": {
1026
+ "type": "integer",
1027
+ "minimum": 0,
1028
+ "maximum": 9007199254740991
1029
+ }
1030
+ }
1031
+ }
1032
+ }
1033
+ ]
1034
+ },
1035
+ "blocker": {
1036
+ "type": "object",
1037
+ "additionalProperties": false,
1038
+ "required": [
1039
+ "code",
1040
+ "messageDigest",
1041
+ "recoverable",
1042
+ "observedAt"
1043
+ ],
1044
+ "properties": {
1045
+ "code": {
1046
+ "$ref": "#/$defs/code"
1047
+ },
1048
+ "messageDigest": {
1049
+ "$ref": "#/$defs/digest"
1050
+ },
1051
+ "recoverable": {
1052
+ "type": "boolean"
1053
+ },
1054
+ "observedAt": {
1055
+ "$ref": "#/$defs/instant"
1056
+ }
1057
+ }
1058
+ },
1059
+ "code": {
1060
+ "type": "string",
1061
+ "pattern": "^[a-z][a-z0-9_]{0,63}$"
1062
+ },
1063
+ "state": {
1064
+ "type": "object",
1065
+ "additionalProperties": false,
1066
+ "required": [
1067
+ "schemaVersion",
1068
+ "operationId",
1069
+ "requestDigest",
1070
+ "surface",
1071
+ "phase",
1072
+ "mutationBoundary",
1073
+ "revision",
1074
+ "createdAt",
1075
+ "updatedAt",
1076
+ "actions"
1077
+ ],
1078
+ "properties": {
1079
+ "schemaVersion": {
1080
+ "const": "chatgpt.browser_control.operation.v1"
1081
+ },
1082
+ "operationId": {
1083
+ "$ref": "#/$defs/uuid"
1084
+ },
1085
+ "requestDigest": {
1086
+ "$ref": "#/$defs/digest"
1087
+ },
1088
+ "surface": {
1089
+ "enum": [
1090
+ "chat",
1091
+ "work"
1092
+ ]
1093
+ },
1094
+ "phase": {
1095
+ "$ref": "#/$defs/phase"
1096
+ },
1097
+ "mutationBoundary": {
1098
+ "$ref": "#/$defs/mutationBoundary"
1099
+ },
1100
+ "revision": {
1101
+ "$ref": "#/$defs/revision"
1102
+ },
1103
+ "createdAt": {
1104
+ "$ref": "#/$defs/instant"
1105
+ },
1106
+ "updatedAt": {
1107
+ "$ref": "#/$defs/instant"
1108
+ },
1109
+ "capturePolicy": {
1110
+ "$ref": "#/$defs/capturePolicy"
1111
+ },
1112
+ "responseFormat": {
1113
+ "enum": [
1114
+ "markdown",
1115
+ "text"
1116
+ ]
1117
+ },
1118
+ "target": {
1119
+ "$ref": "#/$defs/target"
1120
+ },
1121
+ "actions": {
1122
+ "type": "object",
1123
+ "propertyNames": {
1124
+ "$ref": "#/$defs/uuid"
1125
+ },
1126
+ "additionalProperties": {
1127
+ "$ref": "#/$defs/action"
1128
+ }
1129
+ },
1130
+ "ownershipBaseline": {
1131
+ "$ref": "#/$defs/operationOwnershipBaseline"
1132
+ },
1133
+ "ownershipBaselines": {
1134
+ "type": "object",
1135
+ "propertyNames": {
1136
+ "$ref": "#/$defs/uuid"
1137
+ },
1138
+ "maxProperties": 64,
1139
+ "additionalProperties": {
1140
+ "$ref": "#/$defs/operationOwnershipBaseline"
1141
+ }
1142
+ },
1143
+ "artifactTransfers": {
1144
+ "type": "object",
1145
+ "propertyNames": {
1146
+ "$ref": "#/$defs/uuid"
1147
+ },
1148
+ "additionalProperties": {
1149
+ "$ref": "#/$defs/artifactTransferState"
1150
+ }
1151
+ },
1152
+ "submissionWitnesses": {
1153
+ "type": "object",
1154
+ "propertyNames": {
1155
+ "$ref": "#/$defs/uuid"
1156
+ },
1157
+ "maxProperties": 64,
1158
+ "additionalProperties": {
1159
+ "$ref": "#/$defs/submissionWitness"
1160
+ }
1161
+ },
1162
+ "submissionWitness": {
1163
+ "$ref": "#/$defs/submissionWitness"
1164
+ },
1165
+ "lastBlocker": {
1166
+ "$ref": "#/$defs/blocker"
1167
+ },
1168
+ "receipt": {
1169
+ "$ref": "#/$defs/receipt"
1170
+ }
1171
+ }
1172
+ },
1173
+ "revision": {
1174
+ "type": "integer",
1175
+ "minimum": 1,
1176
+ "maximum": 9007199254740991
1177
+ },
1178
+ "mutationBoundary": {
1179
+ "enum": [
1180
+ "none",
1181
+ "handoff_may_have_occurred",
1182
+ "send_may_have_occurred",
1183
+ "control_may_have_occurred"
1184
+ ]
1185
+ },
1186
+ "targetEstablishmentRead": {
1187
+ "type": "object",
1188
+ "additionalProperties": false,
1189
+ "required": [
1190
+ "targetBindingDigest",
1191
+ "anchorDigest",
1192
+ "causalSendActionId",
1193
+ "conversationId",
1194
+ "canonicalThreadUrl",
1195
+ "userTurnId",
1196
+ "userTurnEvidenceDigest",
1197
+ "evidenceDigest",
1198
+ "observedAt"
1199
+ ],
1200
+ "properties": {
1201
+ "targetBindingDigest": {
1202
+ "$ref": "#/$defs/digest"
1203
+ },
1204
+ "anchorDigest": {
1205
+ "$ref": "#/$defs/digest"
1206
+ },
1207
+ "causalSendActionId": {
1208
+ "$ref": "#/$defs/uuid"
1209
+ },
1210
+ "conversationId": {
1211
+ "$ref": "#/$defs/opaqueId"
1212
+ },
1213
+ "canonicalThreadUrl": {
1214
+ "type": "string",
1215
+ "minLength": 1,
1216
+ "maxLength": 4096,
1217
+ "pattern": "^https://[^?#]+$"
1218
+ },
1219
+ "userTurnId": {
1220
+ "$ref": "#/$defs/opaqueId"
1221
+ },
1222
+ "userTurnEvidenceDigest": {
1223
+ "$ref": "#/$defs/digest"
1224
+ },
1225
+ "postSendDeltaDigest": {
1226
+ "$ref": "#/$defs/digest"
1227
+ },
1228
+ "evidenceDigest": {
1229
+ "$ref": "#/$defs/digest"
1230
+ },
1231
+ "observedAt": {
1232
+ "$ref": "#/$defs/instant"
1233
+ }
1234
+ }
1235
+ },
1236
+ "targetEstablishment": {
1237
+ "allOf": [
1238
+ {
1239
+ "$ref": "#/$defs/targetEstablishmentRead"
1240
+ },
1241
+ {
1242
+ "type": "object",
1243
+ "required": [
1244
+ "postSendDeltaDigest"
1245
+ ],
1246
+ "properties": {
1247
+ "postSendDeltaDigest": {
1248
+ "$ref": "#/$defs/digest"
1249
+ }
1250
+ }
1251
+ }
1252
+ ]
1253
+ },
1254
+ "submissionWitness": {
1255
+ "type": "object",
1256
+ "additionalProperties": false,
1257
+ "required": [
1258
+ "schemaVersion",
1259
+ "actionId",
1260
+ "actionKind",
1261
+ "targetBindingDigest",
1262
+ "baselineSnapshotDigest",
1263
+ "postSendDeltaDigest",
1264
+ "operationUserEvidenceDigest",
1265
+ "observedAt"
1266
+ ],
1267
+ "properties": {
1268
+ "schemaVersion": {
1269
+ "const": "chatgpt.browser_control.operation_submission_witness.v1"
1270
+ },
1271
+ "actionId": {
1272
+ "$ref": "#/$defs/uuid"
1273
+ },
1274
+ "actionKind": {
1275
+ "enum": [
1276
+ "send",
1277
+ "work_steer"
1278
+ ]
1279
+ },
1280
+ "targetBindingDigest": {
1281
+ "$ref": "#/$defs/digest"
1282
+ },
1283
+ "baselineSnapshotDigest": {
1284
+ "$ref": "#/$defs/digest"
1285
+ },
1286
+ "postSendDeltaDigest": {
1287
+ "$ref": "#/$defs/digest"
1288
+ },
1289
+ "operationUserEvidenceDigest": {
1290
+ "$ref": "#/$defs/digest"
1291
+ },
1292
+ "userTurnId": {
1293
+ "$ref": "#/$defs/opaqueId"
1294
+ },
1295
+ "observedAt": {
1296
+ "$ref": "#/$defs/instant"
1297
+ }
1298
+ }
1299
+ },
1300
+ "operationOwnershipBaseline": {
1301
+ "type": "object",
1302
+ "additionalProperties": false,
1303
+ "required": [
1304
+ "schemaVersion",
1305
+ "operationId",
1306
+ "requestDigest",
1307
+ "targetBindingDigest",
1308
+ "actionId",
1309
+ "baseline",
1310
+ "observedAt"
1311
+ ],
1312
+ "properties": {
1313
+ "schemaVersion": {
1314
+ "const": "chatgpt.browser_control.operation_ownership_baseline.v1"
1315
+ },
1316
+ "operationId": {
1317
+ "$ref": "#/$defs/uuid"
1318
+ },
1319
+ "requestDigest": {
1320
+ "$ref": "#/$defs/digest"
1321
+ },
1322
+ "targetBindingDigest": {
1323
+ "$ref": "#/$defs/digest"
1324
+ },
1325
+ "actionId": {
1326
+ "$ref": "#/$defs/uuid"
1327
+ },
1328
+ "baseline": {
1329
+ "$ref": "#/$defs/ownershipBaseline"
1330
+ },
1331
+ "observedAt": {
1332
+ "$ref": "#/$defs/instant"
1333
+ }
1334
+ }
1335
+ },
1336
+ "ownershipBaseline": {
1337
+ "type": "object",
1338
+ "additionalProperties": false,
1339
+ "required": [
1340
+ "schemaVersion",
1341
+ "snapshotDigest",
1342
+ "target",
1343
+ "userTurns",
1344
+ "assistantTurns",
1345
+ "completeness"
1346
+ ],
1347
+ "properties": {
1348
+ "schemaVersion": {
1349
+ "const": "chatgpt.browser_control.turn_ownership.v1"
1350
+ },
1351
+ "snapshotDigest": {
1352
+ "$ref": "#/$defs/digest"
1353
+ },
1354
+ "target": {
1355
+ "$ref": "#/$defs/ownershipTarget"
1356
+ },
1357
+ "userTurns": {
1358
+ "type": "array",
1359
+ "maxItems": 256,
1360
+ "items": {
1361
+ "$ref": "#/$defs/ownershipTurn"
1362
+ }
1363
+ },
1364
+ "assistantTurns": {
1365
+ "type": "array",
1366
+ "maxItems": 256,
1367
+ "items": {
1368
+ "$ref": "#/$defs/ownershipTurn"
1369
+ }
1370
+ },
1371
+ "completeness": {
1372
+ "const": "complete"
1373
+ }
1374
+ }
1375
+ },
1376
+ "artifactTransferState": {
1377
+ "type": "object",
1378
+ "additionalProperties": false,
1379
+ "required": ["intent"],
1380
+ "properties": {
1381
+ "intent": { "$ref": "#/$defs/artifactTransferIntent" },
1382
+ "receipt": { "$ref": "#/$defs/artifactTransferReceipt" }
1383
+ }
1384
+ },
1385
+ "artifactTransferIntent": {
1386
+ "type": "object",
1387
+ "additionalProperties": false,
1388
+ "required": [
1389
+ "schemaVersion", "operationId", "requestDigest", "targetBindingDigest", "assistantTurnId",
1390
+ "sourceIdentityDigest", "kind", "ordinal", "transferActionId", "destinationIdentityDigest",
1391
+ "actionKind", "repeatPolicy", "intentAt"
1392
+ ],
1393
+ "properties": {
1394
+ "schemaVersion": { "const": "chatgpt.browser_control.artifact_transfer_intent.v1" },
1395
+ "operationId": { "$ref": "#/$defs/uuid" },
1396
+ "requestDigest": { "$ref": "#/$defs/digest" },
1397
+ "targetBindingDigest": { "$ref": "#/$defs/digest" },
1398
+ "assistantTurnId": { "$ref": "#/$defs/opaqueId" },
1399
+ "sourceIdentityDigest": { "$ref": "#/$defs/digest" },
1400
+ "kind": { "enum": ["file", "image", "other"] },
1401
+ "ordinal": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
1402
+ "transferActionId": { "$ref": "#/$defs/uuid" },
1403
+ "destinationIdentityDigest": { "$ref": "#/$defs/digest" },
1404
+ "actionKind": { "const": "local_output_commit" },
1405
+ "repeatPolicy": { "const": "reconcile_local_effect" },
1406
+ "intentAt": { "$ref": "#/$defs/instant" }
1407
+ }
1408
+ },
1409
+ "artifactTransferReceipt": {
1410
+ "type": "object",
1411
+ "additionalProperties": false,
1412
+ "required": [
1413
+ "schemaVersion", "operationId", "requestDigest", "targetBindingDigest", "assistantTurnId",
1414
+ "sourceIdentityDigest", "kind", "ordinal", "transferActionId", "destinationIdentityDigest",
1415
+ "status", "observedAt"
1416
+ ],
1417
+ "properties": {
1418
+ "schemaVersion": { "const": "chatgpt.browser_control.artifact_transfer_receipt.v1" },
1419
+ "operationId": { "$ref": "#/$defs/uuid" },
1420
+ "requestDigest": { "$ref": "#/$defs/digest" },
1421
+ "targetBindingDigest": { "$ref": "#/$defs/digest" },
1422
+ "assistantTurnId": { "$ref": "#/$defs/opaqueId" },
1423
+ "sourceIdentityDigest": { "$ref": "#/$defs/digest" },
1424
+ "kind": { "enum": ["file", "image", "other"] },
1425
+ "ordinal": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
1426
+ "transferActionId": { "$ref": "#/$defs/uuid" },
1427
+ "destinationIdentityDigest": { "$ref": "#/$defs/digest" },
1428
+ "outputKey": { "$ref": "#/$defs/outputKey" },
1429
+ "bytes": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
1430
+ "sha256": { "$ref": "#/$defs/sha256" },
1431
+ "status": { "enum": ["transferred", "partial", "blocked"] },
1432
+ "blockerCode": { "$ref": "#/$defs/code" },
1433
+ "observedAt": { "$ref": "#/$defs/instant" }
1434
+ },
1435
+ "allOf": [
1436
+ {
1437
+ "if": { "properties": { "status": { "const": "transferred" } }, "required": ["status"] },
1438
+ "then": {
1439
+ "required": ["outputKey", "bytes", "sha256"],
1440
+ "properties": {
1441
+ "outputKey": { "$ref": "#/$defs/outputKey" },
1442
+ "bytes": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
1443
+ "sha256": { "$ref": "#/$defs/sha256" },
1444
+ "blockerCode": false
1445
+ }
1446
+ }
1447
+ },
1448
+ {
1449
+ "if": { "properties": { "status": { "enum": ["partial", "blocked"] } }, "required": ["status"] },
1450
+ "then": { "required": ["blockerCode"] }
1451
+ }
1452
+ ]
1453
+ },
1454
+ "ownershipTarget": {
1455
+ "type": "object",
1456
+ "additionalProperties": false,
1457
+ "required": [
1458
+ "provider",
1459
+ "browser",
1460
+ "tab",
1461
+ "thread",
1462
+ "conversation",
1463
+ "canonicalThreadUrl",
1464
+ "authoritativeTabClaim",
1465
+ "coordinationScope"
1466
+ ],
1467
+ "properties": {
1468
+ "provider": {
1469
+ "$ref": "#/$defs/ownershipIdentity"
1470
+ },
1471
+ "browser": {
1472
+ "$ref": "#/$defs/ownershipIdentity"
1473
+ },
1474
+ "tab": {
1475
+ "$ref": "#/$defs/ownershipIdentity"
1476
+ },
1477
+ "thread": {
1478
+ "$ref": "#/$defs/ownershipIdentity"
1479
+ },
1480
+ "conversation": {
1481
+ "$ref": "#/$defs/ownershipIdentity"
1482
+ },
1483
+ "canonicalThreadUrl": {
1484
+ "$ref": "#/$defs/ownershipUrlIdentity"
1485
+ },
1486
+ "authoritativeTabClaim": {
1487
+ "$ref": "#/$defs/ownershipIdentity"
1488
+ },
1489
+ "coordinationScope": {
1490
+ "enum": [
1491
+ "process",
1492
+ "provider"
1493
+ ]
1494
+ }
1495
+ }
1496
+ },
1497
+ "ownershipIdentity": {
1498
+ "oneOf": [
1499
+ {
1500
+ "type": "object",
1501
+ "additionalProperties": false,
1502
+ "required": [
1503
+ "status",
1504
+ "value"
1505
+ ],
1506
+ "properties": {
1507
+ "status": {
1508
+ "const": "available"
1509
+ },
1510
+ "value": {
1511
+ "$ref": "#/$defs/opaqueId"
1512
+ }
1513
+ }
1514
+ },
1515
+ {
1516
+ "type": "object",
1517
+ "additionalProperties": false,
1518
+ "required": [
1519
+ "status",
1520
+ "reason"
1521
+ ],
1522
+ "properties": {
1523
+ "status": {
1524
+ "const": "unavailable"
1525
+ },
1526
+ "reason": {
1527
+ "enum": [
1528
+ "not_exposed",
1529
+ "not_observed",
1530
+ "redacted"
1531
+ ]
1532
+ }
1533
+ }
1534
+ }
1535
+ ]
1536
+ },
1537
+ "ownershipUrlIdentity": {
1538
+ "oneOf": [
1539
+ {
1540
+ "type": "object",
1541
+ "additionalProperties": false,
1542
+ "required": [
1543
+ "status",
1544
+ "value"
1545
+ ],
1546
+ "properties": {
1547
+ "status": {
1548
+ "const": "available"
1549
+ },
1550
+ "value": {
1551
+ "type": "string",
1552
+ "minLength": 1,
1553
+ "maxLength": 4096,
1554
+ "pattern": "^https://[^?#]+$"
1555
+ }
1556
+ }
1557
+ },
1558
+ {
1559
+ "type": "object",
1560
+ "additionalProperties": false,
1561
+ "required": [
1562
+ "status",
1563
+ "reason"
1564
+ ],
1565
+ "properties": {
1566
+ "status": {
1567
+ "const": "unavailable"
1568
+ },
1569
+ "reason": {
1570
+ "enum": [
1571
+ "not_exposed",
1572
+ "not_observed",
1573
+ "redacted"
1574
+ ]
1575
+ }
1576
+ }
1577
+ }
1578
+ ]
1579
+ },
1580
+ "ownershipTurn": {
1581
+ "type": "object",
1582
+ "additionalProperties": false,
1583
+ "required": [
1584
+ "evidenceDigest",
1585
+ "structureDigest",
1586
+ "ordinal"
1587
+ ],
1588
+ "properties": {
1589
+ "stableId": {
1590
+ "$ref": "#/$defs/opaqueId"
1591
+ },
1592
+ "evidenceDigest": {
1593
+ "$ref": "#/$defs/digest"
1594
+ },
1595
+ "structureDigest": {
1596
+ "$ref": "#/$defs/digest"
1597
+ },
1598
+ "ordinal": {
1599
+ "type": "integer",
1600
+ "minimum": 0,
1601
+ "maximum": 9007199254740991
1602
+ },
1603
+ "parentStableId": {
1604
+ "$ref": "#/$defs/opaqueId"
1605
+ },
1606
+ "branchStableId": {
1607
+ "$ref": "#/$defs/opaqueId"
1608
+ },
1609
+ "state": {
1610
+ "enum": [
1611
+ "generating",
1612
+ "terminal"
1613
+ ]
1614
+ },
1615
+ "artifactEvidenceDigests": {
1616
+ "type": "array",
1617
+ "maxItems": 32,
1618
+ "items": {
1619
+ "$ref": "#/$defs/digest"
1620
+ }
1621
+ }
1622
+ }
1623
+ },
1624
+ "actionKind": {
1625
+ "enum": [
1626
+ "status_read",
1627
+ "configuration_set",
1628
+ "tool_set",
1629
+ "composer_set",
1630
+ "power_discovery",
1631
+ "power_select",
1632
+ "file_handoff",
1633
+ "send",
1634
+ "work_steer",
1635
+ "stop",
1636
+ "download",
1637
+ "local_output_commit",
1638
+ "clipboard_capture_restore"
1639
+ ]
1640
+ },
1641
+ "repeatPolicy": {
1642
+ "enum": [
1643
+ "read_only",
1644
+ "reconcile_set_to_value",
1645
+ "reconcile_local_effect",
1646
+ "observe_only_after_intent"
1647
+ ]
1648
+ },
1649
+ "opaqueKey": {
1650
+ "type": "string",
1651
+ "minLength": 1,
1652
+ "maxLength": 128,
1653
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
1654
+ },
1655
+ "outputKey": {
1656
+ "type": "string",
1657
+ "minLength": 1,
1658
+ "maxLength": 128,
1659
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
1660
+ }
1661
+ }
1662
+ }