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,136 @@
1
+ import type { OperationActionOutcome, OperationActionKind } from "./types.js";
2
+ /**
3
+ * Adapter-free coordinator for operation-owned set-to-value staging.
4
+ *
5
+ * The browser adapter closes over the requested configuration/tool/composer/
6
+ * Power value. The coordinator only receives its keyed digest and opaque
7
+ * evidence, so neither the durable journal port nor a callback request can
8
+ * accidentally contain a prompt, path, display name, or provider content.
9
+ *
10
+ * A staging action is deliberately different from Send or file handoff:
11
+ * staging is reversible and may be reconciled. It is nevertheless not a
12
+ * blind retry loop. The exact current value is read first, an intent is
13
+ * persisted, and there is at most one set-to-value callback for a given
14
+ * action ID. Every path after an intent uses observation only.
15
+ */
16
+ export declare const OPERATION_STAGING_SCHEMA_VERSION: "chatgpt.browser_control.operation_staging.v1";
17
+ export declare const OPERATION_STAGING_RECEIPT_SCHEMA_VERSION: "chatgpt.browser_control.operation_staging_receipt.v1";
18
+ export type OperationStagingKind = Extract<OperationActionKind, "configuration_set" | "tool_set" | "composer_set" | "power_select">;
19
+ export type OperationStagingIdentity = Readonly<{
20
+ operationId: string;
21
+ requestDigest: string;
22
+ targetBindingDigest: string;
23
+ actionId: string;
24
+ kind: OperationStagingKind;
25
+ /** Keyed digest of the raw desired value held by the browser adapter. */
26
+ desiredStateDigest: string;
27
+ }>;
28
+ export type OperationStagingRequest = OperationStagingIdentity;
29
+ export type OperationStagingCallbackRequest = OperationStagingIdentity & Readonly<{
30
+ signal: AbortSignal;
31
+ deadlineAt: number;
32
+ }>;
33
+ export type OperationStagingObservation = Readonly<{
34
+ status: "satisfied" | "not_satisfied";
35
+ desiredStateDigest: string;
36
+ /** Keyed identity of the exact currently observed value. */
37
+ currentStateDigest: string;
38
+ /** Keyed evidence for the complete current-state observation. */
39
+ evidenceDigest: string;
40
+ } | {
41
+ status: "unavailable" | "uncertain";
42
+ desiredStateDigest: string;
43
+ blockerCode: string;
44
+ evidenceDigest?: string;
45
+ currentStateDigest?: string;
46
+ }>;
47
+ /** The mutation callback is intentionally a one-shot set-to-value primitive. */
48
+ export type OperationStagingMutationResult = Readonly<{
49
+ status: "started";
50
+ }>;
51
+ export type OperationStagingIntentResult = Readonly<{
52
+ status: "created";
53
+ } | {
54
+ status: "existing_unsettled";
55
+ } | {
56
+ status: "existing_settled";
57
+ receipt: OperationStagingReceipt;
58
+ }>;
59
+ export type OperationStagingReceipt = Readonly<{
60
+ schemaVersion: typeof OPERATION_STAGING_RECEIPT_SCHEMA_VERSION;
61
+ operationId: string;
62
+ requestDigest: string;
63
+ targetBindingDigest: string;
64
+ actionId: string;
65
+ kind: OperationStagingKind;
66
+ desiredStateDigest: string;
67
+ outcome: OperationActionOutcome;
68
+ /** Whether the one permitted browser mutation was attempted. */
69
+ mutation: "not_attempted" | "attempted";
70
+ currentStateDigest?: string;
71
+ evidenceDigest?: string;
72
+ blockerCode?: string;
73
+ observedAt: string;
74
+ }>;
75
+ export type OperationStagingIntentPersistenceRequest = Readonly<{
76
+ identity: OperationStagingIdentity;
77
+ }>;
78
+ export type OperationStagingReceiptPersistenceRequest = Readonly<{
79
+ receipt: OperationStagingReceipt;
80
+ }>;
81
+ export type OperationStagingPorts = Readonly<{
82
+ /** Read the exact current set-to-value state before any intent. */
83
+ readCurrent(request: OperationStagingCallbackRequest): Promise<OperationStagingObservation>;
84
+ /** Idempotently persist or reload the immutable action intent. */
85
+ persistIntent(request: OperationStagingIntentPersistenceRequest): Promise<OperationStagingIntentResult>;
86
+ /** One bounded set-to-value transaction. Never call this after an existing intent. */
87
+ mutateOnce(request: OperationStagingCallbackRequest): Promise<OperationStagingMutationResult>;
88
+ /** Read-only exact postcondition reconciliation. */
89
+ observe(request: OperationStagingCallbackRequest): Promise<OperationStagingObservation>;
90
+ /** Persist the redacted action receipt before the result is returned. */
91
+ persistReceipt(request: OperationStagingReceiptPersistenceRequest): Promise<void>;
92
+ }>;
93
+ export type OperationStagingOptions = Readonly<{
94
+ signal?: AbortSignal;
95
+ /** Absolute epoch-millisecond deadline. */
96
+ deadlineAt?: number;
97
+ now?: () => number;
98
+ }>;
99
+ export type OperationStagingBlocker = Readonly<{
100
+ code: string;
101
+ /** The caller must observe again before attempting another action. */
102
+ observationRequired: boolean;
103
+ mutation: "not_attempted" | "attempted";
104
+ evidenceDigest?: string;
105
+ }>;
106
+ export type OperationStagingResultBase = Readonly<Omit<OperationStagingIdentity, "kind"> & {
107
+ /** The action kind remains available without colliding with result.kind. */
108
+ stagingKind: OperationStagingKind;
109
+ }>;
110
+ export type OperationStagingResult = (OperationStagingResultBase & Readonly<{
111
+ kind: "completed";
112
+ receipt: OperationStagingReceipt;
113
+ }>) | (OperationStagingResultBase & Readonly<{
114
+ kind: "blocked";
115
+ blocker: OperationStagingBlocker;
116
+ receipt?: OperationStagingReceipt;
117
+ }>) | (OperationStagingResultBase & Readonly<{
118
+ kind: "uncertain";
119
+ blocker: OperationStagingBlocker;
120
+ receipt?: OperationStagingReceipt;
121
+ }>);
122
+ export declare class OperationStagingInputError extends Error {
123
+ readonly code: string;
124
+ constructor(code: string, message: string);
125
+ }
126
+ /**
127
+ * Run one set-to-value staging action.
128
+ *
129
+ * The function never retries `mutateOnce`. If the callback rejects after a
130
+ * provider-side mutation may have happened, `observe` is called exactly once
131
+ * and the resulting receipt is authoritative. A later invocation with the
132
+ * same action ID is controlled by `persistIntent`, which must return
133
+ * `existing_unsettled`/`existing_settled` rather than authorizing another
134
+ * mutation.
135
+ */
136
+ export declare function runOperationStaging(request: OperationStagingRequest, ports: OperationStagingPorts, options?: OperationStagingOptions): Promise<OperationStagingResult>;