codex-chatgpt-control 0.5.1-alpha.1 → 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.
- package/CHANGELOG.md +27 -0
- package/README.md +27 -0
- package/contracts/v1/fixtures/backend-capabilities.json +41 -1
- package/contracts/v1/fixtures/backend-compatibility.json +21 -0
- package/contracts/v1/fixtures/backend-version.json +6 -1
- package/contracts/v1/fixtures/command-descriptors.json +21 -0
- package/contracts/v1/fixtures/doctor-bridge-upload.json +2 -2
- package/contracts/v1/fixtures/doctor-scenario-preflight.json +26 -4
- package/contracts/v1/fixtures/files-attach-indeterminate.json +30 -0
- package/contracts/v1/fixtures/help-root.json +1 -1
- package/contracts/v1/fixtures/messages-stop-indeterminate.json +31 -0
- package/contracts/v1/fixtures/messages-stop-needs-confirmation.json +20 -0
- package/contracts/v1/fixtures/messages-stop-noop.json +19 -0
- package/contracts/v1/fixtures/messages-stop-success.json +21 -0
- package/contracts/v1/fixtures/operation-action-prepared-event.json +42 -0
- package/contracts/v1/fixtures/operation-action.json +13 -0
- package/contracts/v1/fixtures/operation-artifact-receipt.json +14 -0
- package/contracts/v1/fixtures/operation-artifact-transfer-intent-event.json +24 -0
- package/contracts/v1/fixtures/operation-artifact-transfer-receipt-event.json +26 -0
- package/contracts/v1/fixtures/operation-artifact-transfer-state.json +178 -0
- package/contracts/v1/fixtures/operation-blocker.json +10 -0
- package/contracts/v1/fixtures/operation-collect-request.json +17 -0
- package/contracts/v1/fixtures/operation-collect-result.json +42 -0
- package/contracts/v1/fixtures/operation-control-receipt.json +13 -0
- package/contracts/v1/fixtures/operation-control-request.json +18 -0
- package/contracts/v1/fixtures/operation-control-result.json +31 -0
- package/contracts/v1/fixtures/operation-event.json +18 -0
- package/contracts/v1/fixtures/operation-handle.json +10 -0
- package/contracts/v1/fixtures/operation-inspect-request.json +13 -0
- package/contracts/v1/fixtures/operation-inspect-result.json +205 -0
- package/contracts/v1/fixtures/operation-ownership-baseline-event.json +34 -0
- package/contracts/v1/fixtures/operation-receipt.json +32 -0
- package/contracts/v1/fixtures/operation-recovery-decision.json +7 -0
- package/contracts/v1/fixtures/operation-recovery-observation.json +12 -0
- package/contracts/v1/fixtures/operation-request.json +33 -0
- package/contracts/v1/fixtures/operation-state.json +144 -0
- package/contracts/v1/fixtures/operation-submission-witness-event.json +20 -0
- package/contracts/v1/fixtures/operation-submission-witness.json +11 -0
- package/contracts/v1/fixtures/operation-submit-result.json +16 -0
- package/contracts/v1/fixtures/operation-target-established-event.json +21 -0
- package/contracts/v1/fixtures/primitive-bootstrap-blocker.json +3 -3
- package/contracts/v1/fixtures/reports-create-redacted.json +3 -3
- package/contracts/v1/fixtures/reports-summarize-redacted.json +1 -1
- package/contracts/v1/fixtures/run-browser-bridge-blocker.json +12 -12
- package/contracts/v1/fixtures/stream-blocked.ndjson +2 -2
- package/contracts/v1/manifest.json +180 -1
- package/contracts/v1/parity-suite.json +104 -2
- package/contracts/v1/schemas/backend-compatibility.schema.json +65 -0
- package/contracts/v1/schemas/backend-request.schema.json +8 -2
- package/contracts/v1/schemas/capabilities.schema.json +81 -1
- package/contracts/v1/schemas/manifest.schema.json +57 -0
- package/contracts/v1/schemas/operation-action.schema.json +155 -0
- package/contracts/v1/schemas/operation-artifact-receipt.schema.json +89 -0
- package/contracts/v1/schemas/operation-blocker.schema.json +70 -0
- package/contracts/v1/schemas/operation-collect-request.schema.json +46 -0
- package/contracts/v1/schemas/operation-collect-result.schema.json +74 -0
- package/contracts/v1/schemas/operation-control-receipt.schema.json +108 -0
- package/contracts/v1/schemas/operation-control-request.schema.json +111 -0
- package/contracts/v1/schemas/operation-control-result.schema.json +112 -0
- package/contracts/v1/schemas/operation-event.schema.json +756 -0
- package/contracts/v1/schemas/operation-handle.schema.json +55 -0
- package/contracts/v1/schemas/operation-inspect-request.schema.json +42 -0
- package/contracts/v1/schemas/operation-inspect-result.schema.json +1662 -0
- package/contracts/v1/schemas/operation-receipt.schema.json +153 -0
- package/contracts/v1/schemas/operation-recovery.schema.json +314 -0
- package/contracts/v1/schemas/operation-request.schema.json +158 -0
- package/contracts/v1/schemas/operation-state.schema.json +691 -0
- package/contracts/v1/schemas/operation-submission-witness.schema.json +48 -0
- package/contracts/v1/schemas/operation-submit-result.schema.json +94 -0
- package/contracts/v1/surface-drift-policy.json +50 -0
- package/contracts/v1/vectors/operation-request-digest-v1.json +43 -0
- package/dist/codex-chatgpt-control-backend.mjs +44721 -8157
- package/dist/codex-chatgpt-control.bundle.mjs +47210 -9321
- package/dist/src/backend/client.d.ts +105 -3
- package/dist/src/backend/client.js +1437 -97
- package/dist/src/backend/compatibility.d.ts +12 -0
- package/dist/src/backend/compatibility.js +208 -0
- package/dist/src/backend/protocol.d.ts +84 -1
- package/dist/src/backend/protocol.js +32 -5
- package/dist/src/backend/runtime-identity.d.ts +10 -0
- package/dist/src/backend/runtime-identity.js +141 -0
- package/dist/src/backend/session.d.ts +10 -2
- package/dist/src/backend/session.js +480 -7
- package/dist/src/backend/stdio-server.d.ts +4 -1
- package/dist/src/backend/stdio-server.js +240 -28
- package/dist/src/browser/active-composer-file-input.d.ts +9 -0
- package/dist/src/browser/active-composer-file-input.js +33 -0
- package/dist/src/browser/attach.d.ts +5 -1
- package/dist/src/browser/attach.js +205 -63
- package/dist/src/browser/chatgpt-url.d.ts +8 -0
- package/dist/src/browser/chatgpt-url.js +28 -0
- package/dist/src/browser/downloads.d.ts +2 -0
- package/dist/src/browser/page-state.js +211 -4
- package/dist/src/client.d.ts +40 -1
- package/dist/src/client.js +1223 -59
- package/dist/src/commands/configuration.js +59 -19
- package/dist/src/commands/context.d.ts +5 -1
- package/dist/src/commands/context.js +2 -2
- package/dist/src/commands/conversation.js +13 -1
- package/dist/src/commands/doctor.d.ts +1 -1
- package/dist/src/commands/doctor.js +50 -5
- package/dist/src/commands/experience.js +35 -0
- package/dist/src/commands/files.d.ts +1 -0
- package/dist/src/commands/files.js +721 -193
- package/dist/src/commands/messages.d.ts +2 -1
- package/dist/src/commands/messages.js +310 -2
- package/dist/src/commands/modes.js +229 -52
- package/dist/src/commands/power-discovery.d.ts +130 -0
- package/dist/src/commands/power-discovery.js +627 -0
- package/dist/src/commands/project-sources.js +325 -31
- package/dist/src/commands/registry.js +3 -0
- package/dist/src/commands/sequence.js +61 -32
- package/dist/src/commands/session.d.ts +4 -1
- package/dist/src/commands/session.js +41 -5
- package/dist/src/commands/work.js +31 -0
- package/dist/src/dom/generation-state.d.ts +6 -1
- package/dist/src/dom/generation-state.js +206 -45
- package/dist/src/dom/locale/am.d.ts +10 -1
- package/dist/src/dom/locale/am.js +10 -1
- package/dist/src/dom/locale/ar.d.ts +8 -1
- package/dist/src/dom/locale/ar.js +9 -2
- package/dist/src/dom/locale/bg.d.ts +6 -1
- package/dist/src/dom/locale/bg.js +6 -1
- package/dist/src/dom/locale/bn.d.ts +10 -1
- package/dist/src/dom/locale/bn.js +10 -1
- package/dist/src/dom/locale/bs.d.ts +5 -1
- package/dist/src/dom/locale/bs.js +5 -1
- package/dist/src/dom/locale/ca.d.ts +8 -1
- package/dist/src/dom/locale/ca.js +8 -1
- package/dist/src/dom/locale/cs.d.ts +5 -1
- package/dist/src/dom/locale/cs.js +6 -2
- package/dist/src/dom/locale/da.d.ts +5 -1
- package/dist/src/dom/locale/da.js +6 -2
- package/dist/src/dom/locale/de.d.ts +4 -1
- package/dist/src/dom/locale/de.js +5 -2
- package/dist/src/dom/locale/el.d.ts +5 -1
- package/dist/src/dom/locale/el.js +6 -2
- package/dist/src/dom/locale/en.d.ts +2 -1
- package/dist/src/dom/locale/en.js +2 -1
- package/dist/src/dom/locale/es-419.d.ts +5 -1
- package/dist/src/dom/locale/es-419.js +5 -1
- package/dist/src/dom/locale/es-ES.d.ts +5 -1
- package/dist/src/dom/locale/es-ES.js +5 -1
- package/dist/src/dom/locale/et.d.ts +4 -1
- package/dist/src/dom/locale/et.js +5 -2
- package/dist/src/dom/locale/fa.d.ts +9 -1
- package/dist/src/dom/locale/fa.js +10 -2
- package/dist/src/dom/locale/fi.d.ts +5 -1
- package/dist/src/dom/locale/fi.js +6 -2
- package/dist/src/dom/locale/fr-CA.d.ts +4 -1
- package/dist/src/dom/locale/fr-CA.js +4 -1
- package/dist/src/dom/locale/fr-FR.d.ts +5 -1
- package/dist/src/dom/locale/fr-FR.js +7 -3
- package/dist/src/dom/locale/gu.d.ts +10 -1
- package/dist/src/dom/locale/gu.js +10 -1
- package/dist/src/dom/locale/hi.d.ts +10 -1
- package/dist/src/dom/locale/hi.js +11 -2
- package/dist/src/dom/locale/hr.d.ts +4 -1
- package/dist/src/dom/locale/hr.js +4 -1
- package/dist/src/dom/locale/hu.d.ts +4 -1
- package/dist/src/dom/locale/hu.js +5 -2
- package/dist/src/dom/locale/hy.d.ts +10 -1
- package/dist/src/dom/locale/hy.js +11 -2
- package/dist/src/dom/locale/id.d.ts +5 -1
- package/dist/src/dom/locale/id.js +5 -1
- package/dist/src/dom/locale/index.js +1 -0
- package/dist/src/dom/locale/is.d.ts +9 -1
- package/dist/src/dom/locale/is.js +10 -2
- package/dist/src/dom/locale/it.d.ts +4 -1
- package/dist/src/dom/locale/it.js +6 -3
- package/dist/src/dom/locale/ja.d.ts +6 -1
- package/dist/src/dom/locale/ja.js +7 -2
- package/dist/src/dom/locale/ka.d.ts +10 -1
- package/dist/src/dom/locale/ka.js +11 -2
- package/dist/src/dom/locale/kk.d.ts +10 -1
- package/dist/src/dom/locale/kk.js +11 -2
- package/dist/src/dom/locale/kn.d.ts +9 -1
- package/dist/src/dom/locale/kn.js +10 -2
- package/dist/src/dom/locale/ko.d.ts +6 -1
- package/dist/src/dom/locale/ko.js +7 -2
- package/dist/src/dom/locale/lt.d.ts +5 -1
- package/dist/src/dom/locale/lt.js +6 -2
- package/dist/src/dom/locale/lv.d.ts +5 -1
- package/dist/src/dom/locale/lv.js +5 -1
- package/dist/src/dom/locale/mk.d.ts +9 -1
- package/dist/src/dom/locale/mk.js +10 -2
- package/dist/src/dom/locale/ml.d.ts +10 -1
- package/dist/src/dom/locale/ml.js +10 -1
- package/dist/src/dom/locale/mn.d.ts +10 -1
- package/dist/src/dom/locale/mn.js +13 -4
- package/dist/src/dom/locale/mr.d.ts +10 -1
- package/dist/src/dom/locale/mr.js +10 -1
- package/dist/src/dom/locale/ms.d.ts +9 -1
- package/dist/src/dom/locale/ms.js +9 -1
- package/dist/src/dom/locale/my.d.ts +9 -1
- package/dist/src/dom/locale/my.js +9 -1
- package/dist/src/dom/locale/nb.d.ts +5 -1
- package/dist/src/dom/locale/nb.js +6 -2
- package/dist/src/dom/locale/nl.d.ts +8 -2
- package/dist/src/dom/locale/nl.js +8 -2
- package/dist/src/dom/locale/pa.d.ts +10 -1
- package/dist/src/dom/locale/pa.js +10 -1
- package/dist/src/dom/locale/pl.d.ts +5 -1
- package/dist/src/dom/locale/pl.js +6 -2
- package/dist/src/dom/locale/pt-BR.d.ts +5 -1
- package/dist/src/dom/locale/pt-BR.js +6 -2
- package/dist/src/dom/locale/pt-PT.d.ts +5 -1
- package/dist/src/dom/locale/pt-PT.js +5 -1
- package/dist/src/dom/locale/ro.d.ts +4 -1
- package/dist/src/dom/locale/ro.js +4 -1
- package/dist/src/dom/locale/ru.d.ts +8 -1
- package/dist/src/dom/locale/ru.js +9 -2
- package/dist/src/dom/locale/sk.d.ts +5 -1
- package/dist/src/dom/locale/sk.js +5 -1
- package/dist/src/dom/locale/sl.d.ts +9 -1
- package/dist/src/dom/locale/sl.js +9 -1
- package/dist/src/dom/locale/so.d.ts +9 -1
- package/dist/src/dom/locale/so.js +9 -1
- package/dist/src/dom/locale/sq.d.ts +10 -1
- package/dist/src/dom/locale/sq.js +12 -3
- package/dist/src/dom/locale/sr.d.ts +9 -1
- package/dist/src/dom/locale/sr.js +10 -2
- package/dist/src/dom/locale/sv.d.ts +4 -1
- package/dist/src/dom/locale/sv.js +4 -1
- package/dist/src/dom/locale/sw.d.ts +5 -1
- package/dist/src/dom/locale/sw.js +7 -3
- package/dist/src/dom/locale/ta.d.ts +10 -1
- package/dist/src/dom/locale/ta.js +12 -3
- package/dist/src/dom/locale/te.d.ts +10 -1
- package/dist/src/dom/locale/te.js +11 -2
- package/dist/src/dom/locale/th.d.ts +6 -1
- package/dist/src/dom/locale/th.js +6 -1
- package/dist/src/dom/locale/tl.d.ts +1 -1
- package/dist/src/dom/locale/tl.js +2 -2
- package/dist/src/dom/locale/tr.d.ts +9 -1
- package/dist/src/dom/locale/tr.js +10 -2
- package/dist/src/dom/locale/types.d.ts +1 -1
- package/dist/src/dom/locale/uk.d.ts +10 -1
- package/dist/src/dom/locale/uk.js +11 -2
- package/dist/src/dom/locale/ur.d.ts +9 -1
- package/dist/src/dom/locale/ur.js +9 -1
- package/dist/src/dom/locale/vi.d.ts +9 -1
- package/dist/src/dom/locale/vi.js +10 -2
- package/dist/src/dom/locale/zh-HK.d.ts +8 -1
- package/dist/src/dom/locale/zh-HK.js +9 -2
- package/dist/src/dom/locale/zh-Hans.d.ts +10 -1
- package/dist/src/dom/locale/zh-Hans.js +11 -2
- package/dist/src/dom/locale/zh-TW.d.ts +10 -1
- package/dist/src/dom/locale/zh-TW.js +11 -2
- package/dist/src/dom/selectors.d.ts +1 -0
- package/dist/src/dom/selectors.js +9 -1
- package/dist/src/dom/wait-snapshot.d.ts +1 -0
- package/dist/src/dom/wait-snapshot.js +45 -22
- package/dist/src/errors.d.ts +10 -1
- package/dist/src/errors.js +24 -2
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.js +9 -0
- package/dist/src/operations/artifact-output.d.ts +69 -0
- package/dist/src/operations/artifact-output.js +1748 -0
- package/dist/src/operations/artifact-stream.d.ts +19 -0
- package/dist/src/operations/artifact-stream.js +35 -0
- package/dist/src/operations/artifact-transfer.d.ts +149 -0
- package/dist/src/operations/artifact-transfer.js +1312 -0
- package/dist/src/operations/browser-adapter.d.ts +161 -0
- package/dist/src/operations/browser-adapter.js +2023 -0
- package/dist/src/operations/browser-observation.d.ts +110 -0
- package/dist/src/operations/browser-observation.js +1208 -0
- package/dist/src/operations/browser-target.d.ts +103 -0
- package/dist/src/operations/browser-target.js +489 -0
- package/dist/src/operations/canonical.d.ts +4 -0
- package/dist/src/operations/canonical.js +412 -0
- package/dist/src/operations/chatgpt-runtime.d.ts +72 -0
- package/dist/src/operations/chatgpt-runtime.js +1150 -0
- package/dist/src/operations/client.d.ts +138 -0
- package/dist/src/operations/client.js +1143 -0
- package/dist/src/operations/collector.d.ts +195 -0
- package/dist/src/operations/collector.js +1039 -0
- package/dist/src/operations/control.d.ts +372 -0
- package/dist/src/operations/control.js +1498 -0
- package/dist/src/operations/file-identity.d.ts +33 -0
- package/dist/src/operations/file-identity.js +153 -0
- package/dist/src/operations/handle.d.ts +19 -0
- package/dist/src/operations/handle.js +727 -0
- package/dist/src/operations/index.d.ts +22 -0
- package/dist/src/operations/index.js +22 -0
- package/dist/src/operations/journal.d.ts +142 -0
- package/dist/src/operations/journal.js +1931 -0
- package/dist/src/operations/production-attachments.d.ts +116 -0
- package/dist/src/operations/production-attachments.js +1018 -0
- package/dist/src/operations/production-chatgpt-artifacts.d.ts +74 -0
- package/dist/src/operations/production-chatgpt-artifacts.js +1146 -0
- package/dist/src/operations/production-chatgpt-attachments.d.ts +71 -0
- package/dist/src/operations/production-chatgpt-attachments.js +1563 -0
- package/dist/src/operations/production-configuration.d.ts +42 -0
- package/dist/src/operations/production-configuration.js +1363 -0
- package/dist/src/operations/production-primitives.d.ts +53 -0
- package/dist/src/operations/production-primitives.js +1073 -0
- package/dist/src/operations/production-work-steer.d.ts +203 -0
- package/dist/src/operations/production-work-steer.js +1218 -0
- package/dist/src/operations/recovery.d.ts +80 -0
- package/dist/src/operations/recovery.js +174 -0
- package/dist/src/operations/runtime-adapter.d.ts +118 -0
- package/dist/src/operations/runtime-adapter.js +786 -0
- package/dist/src/operations/send-once.d.ts +224 -0
- package/dist/src/operations/send-once.js +1081 -0
- package/dist/src/operations/service.d.ts +281 -0
- package/dist/src/operations/service.js +2810 -0
- package/dist/src/operations/staging.d.ts +136 -0
- package/dist/src/operations/staging.js +630 -0
- package/dist/src/operations/state-machine.d.ts +29 -0
- package/dist/src/operations/state-machine.js +2047 -0
- package/dist/src/operations/submission.d.ts +423 -0
- package/dist/src/operations/submission.js +1676 -0
- package/dist/src/operations/turn-ownership.d.ts +202 -0
- package/dist/src/operations/turn-ownership.js +700 -0
- package/dist/src/operations/types.d.ts +454 -0
- package/dist/src/operations/types.js +20 -0
- package/dist/src/operations/wire-requests.d.ts +21 -0
- package/dist/src/operations/wire-requests.js +396 -0
- package/dist/src/operations/wire-results.d.ts +97 -0
- package/dist/src/operations/wire-results.js +818 -0
- package/dist/src/runner/responses.d.ts +3 -1
- package/dist/src/runner/responses.js +19 -1
- package/dist/src/runner/result.js +227 -55
- package/dist/src/runner/types.d.ts +12 -0
- package/dist/src/runtime/command-routing.d.ts +149 -0
- package/dist/src/runtime/command-routing.js +431 -0
- package/dist/src/runtime/coordinated-browser.d.ts +24 -0
- package/dist/src/runtime/coordinated-browser.js +315 -0
- package/dist/src/runtime/coordinated-page.d.ts +39 -0
- package/dist/src/runtime/coordinated-page.js +634 -0
- package/dist/src/runtime/operation-context.d.ts +142 -0
- package/dist/src/runtime/operation-context.js +410 -0
- package/dist/src/runtime/runtime-session.d.ts +95 -0
- package/dist/src/runtime/runtime-session.js +314 -0
- package/dist/src/runtime/tab-coordinator.d.ts +200 -0
- package/dist/src/runtime/tab-coordinator.js +1200 -0
- package/dist/src/runtime/value-boundaries.d.ts +18 -0
- package/dist/src/runtime/value-boundaries.js +49 -0
- package/dist/src/safety/risk.d.ts +1 -0
- package/dist/src/safety/risk.js +1 -0
- package/dist/src/safety/untrusted-output.js +2 -1
- package/dist/src/scripts/apply-intelligence-locale-captures.d.ts +2 -2
- package/dist/src/scripts/apply-intelligence-locale-captures.js +54 -14
- package/dist/src/scripts/backend-server.js +4 -1
- package/dist/src/scripts/capture-intelligence-locales.d.ts +114 -1
- package/dist/src/scripts/capture-intelligence-locales.js +437 -304
- package/dist/src/scripts/live-smoke/harness.js +79 -7
- package/dist/src/scripts/live-smoke/scenarios.d.ts +30 -1
- package/dist/src/scripts/live-smoke/scenarios.js +118 -27
- package/dist/src/scripts/live-smoke/types.d.ts +3 -0
- package/dist/src/scripts/locale-capture/surface-graph.d.ts +7 -2
- package/dist/src/scripts/locale-capture/surface-graph.js +7 -0
- package/dist/src/scripts/release-canary-module.js +17 -4
- package/dist/src/types.d.ts +65 -7
- package/package.json +2 -1
- package/references/2026-08-08-model-selection-locale-sweep.md +32 -0
- package/references/2026-08-16-transactional-operations.md +459 -0
- package/references/agents-runner.md +34 -0
- package/references/backend-protocol.md +84 -3
- package/references/language-coverage.md +14 -14
- package/references/localization.md +17 -13
- package/references/python-parity.md +80 -2
- package/references/responses-adapter.md +19 -0
- package/references/streaming.md +6 -0
- package/references/troubleshooting.md +10 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.1-alpha.3
|
|
4
|
+
|
|
5
|
+
- Adds the transactional `operations.submit`, `collect`, `inspect`, `control`,
|
|
6
|
+
and `run` surface with durable request identity, monotonic mutation
|
|
7
|
+
boundaries, exact ownership, non-repetition, and redacted recovery receipts.
|
|
8
|
+
- Adds capability-aware runtime identity, correlated multiplexed backend
|
|
9
|
+
traffic, process-scoped tab coordination, bounded DOM/file/artifact
|
|
10
|
+
observation, and deterministic configuration restoration.
|
|
11
|
+
- Hardens browser acquisition and attachment input scoping, acts-then-throws
|
|
12
|
+
settlement, late deadline behavior, output path validation, journal quotas,
|
|
13
|
+
lifecycle controls, and visible blocker classification.
|
|
14
|
+
- Extends release-canary coverage with exact per-scenario tab cleanup and
|
|
15
|
+
independent Chat/Work/configuration postconditions; refreshes all four plugin
|
|
16
|
+
runtime bundles from the qualified source.
|
|
17
|
+
|
|
18
|
+
## 0.5.1-alpha.2
|
|
19
|
+
|
|
20
|
+
- Adds confirmation-gated, fail-closed `messages.stop` lifecycle control with
|
|
21
|
+
scoped DOM evidence and a single bounded deadline.
|
|
22
|
+
- Hardens uploads, explicit tab reuse, origin checks, localized selectors,
|
|
23
|
+
blocker/mode visibility, and fixture generation against the validated PR
|
|
24
|
+
review findings.
|
|
25
|
+
- Qualifies effort-only simplified Chat profiles and waits for delayed scoped
|
|
26
|
+
artifact previews before selecting their exact Download control.
|
|
27
|
+
- Adds behavioral stop contracts, expanded regression coverage, rebuilt plugin
|
|
28
|
+
runtimes, portable release helpers, and patched transitive dependency locks.
|
|
29
|
+
|
|
3
30
|
## 0.5.1-alpha.1
|
|
4
31
|
|
|
5
32
|
- Fixes current Chat/Work switching through the visible surface-radio group and
|
package/README.md
CHANGED
|
@@ -29,6 +29,33 @@ const result = await chatgpt.runner.run(reviewer, {
|
|
|
29
29
|
});
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
+
## Transactional operation preview
|
|
33
|
+
|
|
34
|
+
Supported Chat, Work, Runner, and Responses workflows accept an optional
|
|
35
|
+
caller-owned canonical UUID `operationId`. Supplying it opts that invocation
|
|
36
|
+
into durable submit-once recovery and exact-turn collection; omitting it keeps
|
|
37
|
+
the compatibility path.
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
const result = await chatgpt.ask({
|
|
41
|
+
operationId: "123e4567-e89b-42d3-a456-426614174000",
|
|
42
|
+
prompt: "Summarize the visible thread.",
|
|
43
|
+
thread: { type: "conversationId", conversationId: "caller-owned-conversation-id" },
|
|
44
|
+
wait: false,
|
|
45
|
+
read: false
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The direct `chatgpt.operations` surface exposes `submit`, `collect`, `inspect`,
|
|
50
|
+
`control`, and SDK-composed `run`. Persist and reuse the fresh returned handle
|
|
51
|
+
after partial or uncertain results; never retry the same logical Send under a
|
|
52
|
+
new ID. `operations.inspect` is browser-free. Browser-touching calls fail
|
|
53
|
+
closed when bridge access, target evidence, or a required provider primitive
|
|
54
|
+
is unavailable. See
|
|
55
|
+
[Transactional browser operations](references/2026-08-16-transactional-operations.md)
|
|
56
|
+
for request schemas, concurrency, recovery, privacy, transport bounds, and the
|
|
57
|
+
stricter transactional artifact-provider capability matrix.
|
|
58
|
+
|
|
32
59
|
Inspect the visible surface and apply verified configuration:
|
|
33
60
|
|
|
34
61
|
```ts
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
+
"backendSessionId": "fixture-backend-session",
|
|
3
|
+
"buildDigest": "unknown",
|
|
4
|
+
"cancellation": {
|
|
5
|
+
"requests": false,
|
|
6
|
+
"streams": false,
|
|
7
|
+
"supported": false
|
|
8
|
+
},
|
|
2
9
|
"commands": [
|
|
3
10
|
"backend.version",
|
|
4
11
|
"backend.health",
|
|
5
12
|
"backend.capabilities",
|
|
13
|
+
"backend.hello",
|
|
6
14
|
"runner.run",
|
|
7
15
|
"runner.plan",
|
|
8
16
|
"runner.stream",
|
|
@@ -44,6 +52,7 @@
|
|
|
44
52
|
"messages.wait",
|
|
45
53
|
"messages.readLatest",
|
|
46
54
|
"messages.status",
|
|
55
|
+
"messages.stop",
|
|
47
56
|
"messages.waitAndRead",
|
|
48
57
|
"artifacts.listLatest",
|
|
49
58
|
"artifacts.wait",
|
|
@@ -57,15 +66,46 @@
|
|
|
57
66
|
"modes.set",
|
|
58
67
|
"modes.get",
|
|
59
68
|
"tools.select",
|
|
60
|
-
"response.copy"
|
|
69
|
+
"response.copy",
|
|
70
|
+
"operations.submit",
|
|
71
|
+
"operations.collect",
|
|
72
|
+
"operations.inspect",
|
|
73
|
+
"operations.control"
|
|
61
74
|
],
|
|
75
|
+
"multiplexing": {
|
|
76
|
+
"streams": true,
|
|
77
|
+
"unary": true
|
|
78
|
+
},
|
|
79
|
+
"packageName": "codex-chatgpt-control",
|
|
80
|
+
"packageVersion": "unknown",
|
|
62
81
|
"protocolVersion": "chatgpt.browser_control.backend_request.v1",
|
|
82
|
+
"requestIds": {
|
|
83
|
+
"required": true,
|
|
84
|
+
"scope": "connection"
|
|
85
|
+
},
|
|
86
|
+
"runtime": "node",
|
|
87
|
+
"runtimeVersion": "fixture-runtime",
|
|
63
88
|
"streaming": {
|
|
64
89
|
"modes": [
|
|
65
90
|
"ndjson"
|
|
66
91
|
],
|
|
67
92
|
"tokenDeltas": false
|
|
68
93
|
},
|
|
94
|
+
"supportedProtocolVersions": [
|
|
95
|
+
"chatgpt.browser_control.backend_request.v1"
|
|
96
|
+
],
|
|
97
|
+
"tabs": {
|
|
98
|
+
"authoritativeClaim": false,
|
|
99
|
+
"concurrent": false,
|
|
100
|
+
"concurrentTabs": false,
|
|
101
|
+
"coordination": false,
|
|
102
|
+
"coordinationScope": "none",
|
|
103
|
+
"fencing": false,
|
|
104
|
+
"stableBrowserIdentity": false,
|
|
105
|
+
"stableIdentity": false,
|
|
106
|
+
"stableProviderIdentity": false,
|
|
107
|
+
"stableTabIdentity": false
|
|
108
|
+
},
|
|
69
109
|
"transports": [
|
|
70
110
|
"stdio"
|
|
71
111
|
]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "chatgpt.browser_control.backend_compatibility.v1",
|
|
3
|
+
"status": "warning",
|
|
4
|
+
"mode": "multiplexed",
|
|
5
|
+
"protocolVersion": "chatgpt.browser_control.backend_request.v1",
|
|
6
|
+
"backendSessionId": "fixture-backend-session",
|
|
7
|
+
"packageName": "codex-chatgpt-control",
|
|
8
|
+
"packageVersion": "0.5.1-alpha.2",
|
|
9
|
+
"runtime": "node",
|
|
10
|
+
"runtimeVersion": "v22.14.0",
|
|
11
|
+
"buildDigest": "sha256:backend-build",
|
|
12
|
+
"warnings": [
|
|
13
|
+
{
|
|
14
|
+
"code": "build_digest_mismatch",
|
|
15
|
+
"field": "buildDigest",
|
|
16
|
+
"expected": "sha256:expected-build",
|
|
17
|
+
"received": "sha256:backend-build",
|
|
18
|
+
"message": "Backend build digest differs from the expected runtime (sha256:expected-build versus sha256:backend-build)."
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -2,9 +2,14 @@
|
|
|
2
2
|
"ok": true,
|
|
3
3
|
"requestId": "req_backend_version",
|
|
4
4
|
"result": {
|
|
5
|
+
"backendSessionId": "fixture-backend-session",
|
|
6
|
+
"buildDigest": "unknown",
|
|
5
7
|
"name": "codex-chatgpt-control-backend",
|
|
8
|
+
"packageName": "codex-chatgpt-control",
|
|
9
|
+
"packageVersion": "unknown",
|
|
6
10
|
"protocolVersion": "chatgpt.browser_control.backend_request.v1",
|
|
7
|
-
"runtime": "node"
|
|
11
|
+
"runtime": "node",
|
|
12
|
+
"runtimeVersion": "fixture-runtime"
|
|
8
13
|
},
|
|
9
14
|
"schemaVersion": "chatgpt.browser_control.backend_response.v1"
|
|
10
15
|
}
|
|
@@ -946,6 +946,27 @@
|
|
|
946
946
|
"risk": "medium",
|
|
947
947
|
"summary": "Read a compact latest-assistant progress snapshot without treating partial text as complete."
|
|
948
948
|
},
|
|
949
|
+
{
|
|
950
|
+
"args": {
|
|
951
|
+
"confirmStop": "must be true to stop a visible response",
|
|
952
|
+
"timeoutMs": "maximum time to verify generation became inactive"
|
|
953
|
+
},
|
|
954
|
+
"blockers": [
|
|
955
|
+
"browser_bridge_unavailable",
|
|
956
|
+
"login_required",
|
|
957
|
+
"captcha",
|
|
958
|
+
"rate_limit",
|
|
959
|
+
"selector_drift"
|
|
960
|
+
],
|
|
961
|
+
"defaults": {},
|
|
962
|
+
"defaultTimeoutMs": 5000,
|
|
963
|
+
"examples": [],
|
|
964
|
+
"layer": "primitive",
|
|
965
|
+
"name": "messages.stop",
|
|
966
|
+
"retryPolicy": "Return structured CommandResult failures; retry only when the blocker is recoverable and no duplicate prompt will be submitted.",
|
|
967
|
+
"risk": "medium",
|
|
968
|
+
"summary": "Stop the current visible ChatGPT response after explicit confirmation and verify generation became inactive."
|
|
969
|
+
},
|
|
949
970
|
{
|
|
950
971
|
"args": {},
|
|
951
972
|
"blockers": [
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
"severity": "blocked",
|
|
14
14
|
"userActionRequired": true
|
|
15
15
|
},
|
|
16
|
-
"message": "Codex cannot access the ChatGPT browser bridge from this backend process. In an ordinary shell this is expected; for a live Codex Chrome run,
|
|
16
|
+
"message": "Codex cannot access the ChatGPT browser bridge from this backend process. In an ordinary shell this is expected; for a live Codex Chrome run, assign the Chrome plugin runtime returned by setupBrowserRuntime() to globalThis.agent before using it.",
|
|
17
17
|
"nextCommand": "session.bootstrap",
|
|
18
18
|
"remediation": [
|
|
19
19
|
"Ordinary shell: Treat browser_bridge_unavailable from a plain shell as an expected protocol/blocker-path result, not proof that Chrome, ChatGPT, or the Codex extension is broken.",
|
|
20
|
-
"Codex Chrome bootstrap: For a live run, initialize the Chrome plugin runtime in node_repl with
|
|
20
|
+
"Codex Chrome bootstrap: For a live run, initialize the Chrome plugin runtime in node_repl with globalThis.agent = await setupBrowserRuntime(), then set globalThis.browser = await agent.browsers.get(\"extension\") before calling createChatGPT({ agent: globalThis.agent }).",
|
|
21
21
|
"Python live bridge: For Python browser-bridge smokes, keep the bridge-hosted Node backend JS execution alive and run scripts/http_stdio_relay.mjs with CHATGPT_BROWSER_BACKEND_HTTP_URL; a plain Python-spawned Node subprocess cannot inherit globalThis.agent.",
|
|
22
22
|
"Extension availability: If this command was already running inside a bootstrapped bridge host, verify the Codex Chrome extension is installed and enabled, then restart Chrome or Codex before retrying."
|
|
23
23
|
],
|
|
@@ -70,8 +70,30 @@
|
|
|
70
70
|
},
|
|
71
71
|
"localization": {
|
|
72
72
|
"details": {
|
|
73
|
+
"configurationAxisIds": [
|
|
74
|
+
"power",
|
|
75
|
+
"model",
|
|
76
|
+
"intelligence",
|
|
77
|
+
"effort",
|
|
78
|
+
"speed",
|
|
79
|
+
"advanced"
|
|
80
|
+
],
|
|
81
|
+
"configurationOptionIds": [
|
|
82
|
+
"instant",
|
|
83
|
+
"light",
|
|
84
|
+
"medium",
|
|
85
|
+
"high",
|
|
86
|
+
"extraHigh",
|
|
87
|
+
"max",
|
|
88
|
+
"ultra",
|
|
89
|
+
"pro",
|
|
90
|
+
"standard",
|
|
91
|
+
"fast"
|
|
92
|
+
],
|
|
73
93
|
"englishCanonicalPresent": true,
|
|
74
|
-
"labelCandidateCount":
|
|
94
|
+
"labelCandidateCount": 2439,
|
|
95
|
+
"missingConfigurationAxisIds": [],
|
|
96
|
+
"missingConfigurationOptionIds": [],
|
|
75
97
|
"missingModeOptionIds": [],
|
|
76
98
|
"missingToolIds": [],
|
|
77
99
|
"modeOptionIds": [
|
|
@@ -108,11 +130,11 @@
|
|
|
108
130
|
"requiredKeysMissing": [],
|
|
109
131
|
"runningStateLabelCoverage": {
|
|
110
132
|
"nonEnglishLocaleCount": 64,
|
|
111
|
-
"nonEnglishStopControlLocaleCount":
|
|
133
|
+
"nonEnglishStopControlLocaleCount": 63,
|
|
112
134
|
"nonEnglishStoppedAssistantLocaleCount": 0,
|
|
113
135
|
"registeredLocaleCount": 65,
|
|
114
|
-
"stopControlCandidateCount":
|
|
115
|
-
"stopControlLocaleCount":
|
|
136
|
+
"stopControlCandidateCount": 63,
|
|
137
|
+
"stopControlLocaleCount": 64,
|
|
116
138
|
"stoppedAssistantCandidateCount": 3,
|
|
117
139
|
"stoppedAssistantLocaleCount": 1,
|
|
118
140
|
"support": "partial"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ok": true,
|
|
3
|
+
"requestId": "req_files_attach_indeterminate",
|
|
4
|
+
"result": {
|
|
5
|
+
"blocker": {
|
|
6
|
+
"code": "attachment_outcome_indeterminate",
|
|
7
|
+
"kind": "upload_failed",
|
|
8
|
+
"message": "The native file handoff started, but its outcome could not be verified. The browser request is no longer in flight, though the file may already be present. Inspect the current composer; do not submit or retry automatically.",
|
|
9
|
+
"resumable": false
|
|
10
|
+
},
|
|
11
|
+
"context": {
|
|
12
|
+
"timestamp": "2026-06-06T00:00:00.000Z"
|
|
13
|
+
},
|
|
14
|
+
"data": {
|
|
15
|
+
"files": [
|
|
16
|
+
{
|
|
17
|
+
"bytes": 18,
|
|
18
|
+
"name": "handoff.txt",
|
|
19
|
+
"path": "/tmp/contract-fixtures/handoff.txt"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"ok": false,
|
|
24
|
+
"status": "partial",
|
|
25
|
+
"warnings": [
|
|
26
|
+
"File-chooser handoff exceeded the single attachment deadline."
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"schemaVersion": "chatgpt.browser_control.backend_response.v1"
|
|
30
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"ok": true,
|
|
3
3
|
"requestId": "req_help",
|
|
4
|
-
"result": "ChatGPT browser-control SDK commands\n\nworkflow:\n- ask: Ask ChatGPT in a new or selected thread, optionally with files, wait/read, downloads, and reports.\n- askInThread: Open or claim an existing thread by URL, conversation id, title, or search query, then ask and read.\n- askWithFiles: Attach absolute local file paths, optionally open/configure Chat or Work, ask, wait, and read.\n- askAndDownload: Ask ChatGPT to produce a visible downloadable output and save the latest exposed file.\n- runMessages: Run sequential prompts where later prompts can use earlier step data.\n- runner.run: Agents-style facade: run a visible ChatGPT agent against input, files, thread, existing-tab, experience, configuration, legacy mode, and response options.\n- responses.create: Narrow Responses-shaped adapter over the visible ChatGPT browser-control runner; rejects unsupported API-only fields before prompt submission.\n- work.start: Open Work, optionally apply model/effort/speed configuration, submit one task, and optionally wait/read without blind resubmission.\n- copyLatest: Copy or DOM-read the latest assistant response with Markdown-first fidelity.\n- runPlan: Execute an inline SequencePlan or named macro through the existing sequence engine.\n- new-ask-read: Named macro: open a new thread, ask, wait, and read Markdown.\n- find-open-ask-read: Named macro: search history, open the first match, ask, wait, and read Markdown.\n- find-open-copy-latest: Named macro: search history, open the first match, and copy/read the latest response.\n- attach-ask-read: Named macro: open a new thread, attach files, ask, wait, and read Markdown.\n- ask-and-download: Named macro: ask in a new thread and download the latest file affordance.\n- two-turn: Named macro: run two sequential prompts in a new thread.\ndiagnostic:\n- doctor-upload: Named macro: preflight bridge, login, and upload permission remediation.\n- doctor: Preflight browser bridge, login, upload, local files, existing-tab, artifact, localization, report, and selector readiness.\nreport:\n- redacted-run-report: Named macro: create a redacted report for a supplied CommandResult.\n- createReport: Write a durable redacted run report for a command result.\nprimitive:\n- session.bootstrap: Attach to ChatGPT in Chrome and detect login/blocker state.\n- experience.detect: Detect whether the scoped visible composer is Chat, Work, or unknown and return its selector profile.\n- experience.open: Open Chat or Work and verify the target surface from scoped composer evidence.\n- configuration.inspect: Inspect the active Chat or Work selector profile, axes, options, and selected values.\n- configuration.apply: Apply model/intelligence/effort/speed configuration one axis at a time and verify the final visible state.\n- work.status: Read current Work task progress and optionally enumerate visible artifacts.\n- work.wait: Wait for the current Work task response to stabilize.\n- work.steer: Submit a visible steering message to the current Work task without opening a new task.\n- work.readLatest: Read the latest response from the current Work task.\n- threads.new: Open a new ChatGPT thread.\n- threads.search: Search visible ChatGPT history by query.\n- threads.open: Open a thread by URL, conversation id, title, or search result.\n- messages.compose: Fill the composer without submitting.\n- messages.submit: Submit the current composer contents.\n- messages.ask: Compose, submit, optionally wait, and optionally read.\n- messages.wait: Wait for the latest assistant response to stabilize.\n- messages.readLatest: Read the latest message as Markdown, normalized text, blocks, or HTML.\n- messages.status: Read a compact latest-assistant progress snapshot without treating partial text as complete.\n- messages.waitAndRead: Wait for completion and read the latest message.\n- artifacts.listLatest: Detect the latest visible generated ChatGPT artifact, such as an image-only result.\n- artifacts.wait: Wait for a visible generated ChatGPT artifact to appear and stabilize.\n- artifacts.downloadLatest: Download or save the latest visible generated ChatGPT artifact.\n- files.preflight: Validate local file paths, size limits, duplicates, zero-byte files, and extension-based MIME/category guesses without opening ChatGPT.\n- files.attach: Attach absolute local file paths through visible ChatGPT upload controls.\n- files.downloadLatest: Download the latest visible ChatGPT file affordance.\n- projects.sources.list: Open or claim a visible ChatGPT Project Sources tab and list source names/statuses without source contents.\n- projects.sources.planAdd: Dry-run an append-only Project Sources file add from explicit local files without opening ChatGPT.\n- projects.sources.add: Append explicit local files to a visible ChatGPT Project Sources list after confirmMutation: true.\n- response.copy: Click Copy response and return clipboard Markdown, with DOM fallback.\n- modes.set: Legacy compatibility command: select a visible model/intelligence/effort/version candidate with historical warning-oriented verification.\n- modes.get: Legacy compatibility command: read mode labels shown on visible composer controls without changing them.\n- tools.select: Select a visible ChatGPT tool when unambiguous.",
|
|
4
|
+
"result": "ChatGPT browser-control SDK commands\n\nworkflow:\n- ask: Ask ChatGPT in a new or selected thread, optionally with files, wait/read, downloads, and reports.\n- askInThread: Open or claim an existing thread by URL, conversation id, title, or search query, then ask and read.\n- askWithFiles: Attach absolute local file paths, optionally open/configure Chat or Work, ask, wait, and read.\n- askAndDownload: Ask ChatGPT to produce a visible downloadable output and save the latest exposed file.\n- runMessages: Run sequential prompts where later prompts can use earlier step data.\n- runner.run: Agents-style facade: run a visible ChatGPT agent against input, files, thread, existing-tab, experience, configuration, legacy mode, and response options.\n- responses.create: Narrow Responses-shaped adapter over the visible ChatGPT browser-control runner; rejects unsupported API-only fields before prompt submission.\n- work.start: Open Work, optionally apply model/effort/speed configuration, submit one task, and optionally wait/read without blind resubmission.\n- copyLatest: Copy or DOM-read the latest assistant response with Markdown-first fidelity.\n- runPlan: Execute an inline SequencePlan or named macro through the existing sequence engine.\n- new-ask-read: Named macro: open a new thread, ask, wait, and read Markdown.\n- find-open-ask-read: Named macro: search history, open the first match, ask, wait, and read Markdown.\n- find-open-copy-latest: Named macro: search history, open the first match, and copy/read the latest response.\n- attach-ask-read: Named macro: open a new thread, attach files, ask, wait, and read Markdown.\n- ask-and-download: Named macro: ask in a new thread and download the latest file affordance.\n- two-turn: Named macro: run two sequential prompts in a new thread.\ndiagnostic:\n- doctor-upload: Named macro: preflight bridge, login, and upload permission remediation.\n- doctor: Preflight browser bridge, login, upload, local files, existing-tab, artifact, localization, report, and selector readiness.\nreport:\n- redacted-run-report: Named macro: create a redacted report for a supplied CommandResult.\n- createReport: Write a durable redacted run report for a command result.\nprimitive:\n- session.bootstrap: Attach to ChatGPT in Chrome and detect login/blocker state.\n- experience.detect: Detect whether the scoped visible composer is Chat, Work, or unknown and return its selector profile.\n- experience.open: Open Chat or Work and verify the target surface from scoped composer evidence.\n- configuration.inspect: Inspect the active Chat or Work selector profile, axes, options, and selected values.\n- configuration.apply: Apply model/intelligence/effort/speed configuration one axis at a time and verify the final visible state.\n- work.status: Read current Work task progress and optionally enumerate visible artifacts.\n- work.wait: Wait for the current Work task response to stabilize.\n- work.steer: Submit a visible steering message to the current Work task without opening a new task.\n- work.readLatest: Read the latest response from the current Work task.\n- threads.new: Open a new ChatGPT thread.\n- threads.search: Search visible ChatGPT history by query.\n- threads.open: Open a thread by URL, conversation id, title, or search result.\n- messages.compose: Fill the composer without submitting.\n- messages.submit: Submit the current composer contents.\n- messages.ask: Compose, submit, optionally wait, and optionally read.\n- messages.wait: Wait for the latest assistant response to stabilize.\n- messages.readLatest: Read the latest message as Markdown, normalized text, blocks, or HTML.\n- messages.status: Read a compact latest-assistant progress snapshot without treating partial text as complete.\n- messages.stop: Stop the current visible ChatGPT response after explicit confirmation and verify generation became inactive.\n- messages.waitAndRead: Wait for completion and read the latest message.\n- artifacts.listLatest: Detect the latest visible generated ChatGPT artifact, such as an image-only result.\n- artifacts.wait: Wait for a visible generated ChatGPT artifact to appear and stabilize.\n- artifacts.downloadLatest: Download or save the latest visible generated ChatGPT artifact.\n- files.preflight: Validate local file paths, size limits, duplicates, zero-byte files, and extension-based MIME/category guesses without opening ChatGPT.\n- files.attach: Attach absolute local file paths through visible ChatGPT upload controls.\n- files.downloadLatest: Download the latest visible ChatGPT file affordance.\n- projects.sources.list: Open or claim a visible ChatGPT Project Sources tab and list source names/statuses without source contents.\n- projects.sources.planAdd: Dry-run an append-only Project Sources file add from explicit local files without opening ChatGPT.\n- projects.sources.add: Append explicit local files to a visible ChatGPT Project Sources list after confirmMutation: true.\n- response.copy: Click Copy response and return clipboard Markdown, with DOM fallback.\n- modes.set: Legacy compatibility command: select a visible model/intelligence/effort/version candidate with historical warning-oriented verification.\n- modes.get: Legacy compatibility command: read mode labels shown on visible composer controls without changing them.\n- tools.select: Select a visible ChatGPT tool when unambiguous.",
|
|
5
5
|
"schemaVersion": "chatgpt.browser_control.backend_response.v1"
|
|
6
6
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ok": true,
|
|
3
|
+
"requestId": "req_messages_stop_indeterminate",
|
|
4
|
+
"result": {
|
|
5
|
+
"blocker": {
|
|
6
|
+
"code": "stop_generation_unverified",
|
|
7
|
+
"kind": "selector_drift",
|
|
8
|
+
"message": "Stop activation reached its browser-native deadline and was terminated, but the click may already have taken effect. Inspect the visible generation state and do not retry automatically.",
|
|
9
|
+
"resumable": false
|
|
10
|
+
},
|
|
11
|
+
"context": {
|
|
12
|
+
"timestamp": "2026-06-06T00:00:00.000Z"
|
|
13
|
+
},
|
|
14
|
+
"data": {
|
|
15
|
+
"signalsAfter": [
|
|
16
|
+
"stop answering"
|
|
17
|
+
],
|
|
18
|
+
"signalsBefore": [
|
|
19
|
+
"stop answering"
|
|
20
|
+
],
|
|
21
|
+
"stopped": false,
|
|
22
|
+
"wasGenerating": true
|
|
23
|
+
},
|
|
24
|
+
"ok": false,
|
|
25
|
+
"status": "timeout",
|
|
26
|
+
"warnings": [
|
|
27
|
+
"Stop control click could not complete before the messages.stop deadline."
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
"schemaVersion": "chatgpt.browser_control.backend_response.v1"
|
|
31
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ok": true,
|
|
3
|
+
"requestId": "req_messages_stop",
|
|
4
|
+
"result": {
|
|
5
|
+
"blocker": {
|
|
6
|
+
"code": "stop_generation_confirmation_required",
|
|
7
|
+
"fieldPath": "confirmStop",
|
|
8
|
+
"kind": "confirmation",
|
|
9
|
+
"message": "Stopping the visible ChatGPT response requires an explicit caller decision.",
|
|
10
|
+
"resumable": true
|
|
11
|
+
},
|
|
12
|
+
"context": {
|
|
13
|
+
"timestamp": "2026-06-06T00:00:00.000Z"
|
|
14
|
+
},
|
|
15
|
+
"ok": false,
|
|
16
|
+
"status": "needs_confirmation",
|
|
17
|
+
"warnings": []
|
|
18
|
+
},
|
|
19
|
+
"schemaVersion": "chatgpt.browser_control.backend_response.v1"
|
|
20
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ok": true,
|
|
3
|
+
"requestId": "req_messages_stop",
|
|
4
|
+
"result": {
|
|
5
|
+
"context": {
|
|
6
|
+
"timestamp": "2026-06-06T00:00:00.000Z"
|
|
7
|
+
},
|
|
8
|
+
"data": {
|
|
9
|
+
"signalsAfter": [],
|
|
10
|
+
"signalsBefore": [],
|
|
11
|
+
"stopped": false,
|
|
12
|
+
"wasGenerating": false
|
|
13
|
+
},
|
|
14
|
+
"ok": true,
|
|
15
|
+
"status": "ok",
|
|
16
|
+
"warnings": []
|
|
17
|
+
},
|
|
18
|
+
"schemaVersion": "chatgpt.browser_control.backend_response.v1"
|
|
19
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ok": true,
|
|
3
|
+
"requestId": "req_messages_stop",
|
|
4
|
+
"result": {
|
|
5
|
+
"context": {
|
|
6
|
+
"timestamp": "2026-06-06T00:00:00.000Z"
|
|
7
|
+
},
|
|
8
|
+
"data": {
|
|
9
|
+
"signalsAfter": [],
|
|
10
|
+
"signalsBefore": [
|
|
11
|
+
"stop answering"
|
|
12
|
+
],
|
|
13
|
+
"stopped": true,
|
|
14
|
+
"wasGenerating": true
|
|
15
|
+
},
|
|
16
|
+
"ok": true,
|
|
17
|
+
"status": "ok",
|
|
18
|
+
"warnings": []
|
|
19
|
+
},
|
|
20
|
+
"schemaVersion": "chatgpt.browser_control.backend_response.v1"
|
|
21
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "chatgpt.browser_control.operation_event.v1",
|
|
3
|
+
"revision": 5,
|
|
4
|
+
"previousEventDigest": "hmac-sha256:3333333333333333333333333333333333333333333333333333333333333333",
|
|
5
|
+
"eventDigest": "hmac-sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
|
6
|
+
"event": {
|
|
7
|
+
"type": "action_prepared",
|
|
8
|
+
"action": {
|
|
9
|
+
"actionId": "33333333-3333-4333-8333-333333333333",
|
|
10
|
+
"kind": "send",
|
|
11
|
+
"repeatPolicy": "observe_only_after_intent",
|
|
12
|
+
"requestDigest": "hmac-sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
13
|
+
"targetDigest": "hmac-sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
|
14
|
+
},
|
|
15
|
+
"intentAt": "2026-08-16T00:00:01.000Z",
|
|
16
|
+
"baseline": {
|
|
17
|
+
"schemaVersion": "chatgpt.browser_control.operation_ownership_baseline.v1",
|
|
18
|
+
"operationId": "11111111-1111-4111-8111-111111111111",
|
|
19
|
+
"requestDigest": "hmac-sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
20
|
+
"targetBindingDigest": "hmac-sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
21
|
+
"actionId": "33333333-3333-4333-8333-333333333333",
|
|
22
|
+
"baseline": {
|
|
23
|
+
"schemaVersion": "chatgpt.browser_control.turn_ownership.v1",
|
|
24
|
+
"snapshotDigest": "hmac-sha256:1212121212121212121212121212121212121212121212121212121212121212",
|
|
25
|
+
"target": {
|
|
26
|
+
"provider": { "status": "available", "value": "chrome" },
|
|
27
|
+
"browser": { "status": "available", "value": "browser-1" },
|
|
28
|
+
"tab": { "status": "available", "value": "tab-1" },
|
|
29
|
+
"thread": { "status": "available", "value": "conversation-1" },
|
|
30
|
+
"conversation": { "status": "available", "value": "conversation-1" },
|
|
31
|
+
"canonicalThreadUrl": { "status": "available", "value": "https://chatgpt.com/c/sanitized" },
|
|
32
|
+
"authoritativeTabClaim": { "status": "unavailable", "reason": "not_exposed" },
|
|
33
|
+
"coordinationScope": "process"
|
|
34
|
+
},
|
|
35
|
+
"userTurns": [],
|
|
36
|
+
"assistantTurns": [],
|
|
37
|
+
"completeness": "complete"
|
|
38
|
+
},
|
|
39
|
+
"observedAt": "2026-08-16T00:00:01.000Z"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"actionId": "33333333-3333-4333-8333-333333333333",
|
|
3
|
+
"kind": "file_handoff",
|
|
4
|
+
"repeatPolicy": "observe_only_after_intent",
|
|
5
|
+
"requestDigest": "hmac-sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
6
|
+
"targetDigest": "hmac-sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
7
|
+
"intentRevision": 4,
|
|
8
|
+
"intentAt": "2026-08-16T00:00:01.000Z",
|
|
9
|
+
"outcome": "satisfied",
|
|
10
|
+
"receiptRevision": 5,
|
|
11
|
+
"receiptAt": "2026-08-16T00:00:02.000Z",
|
|
12
|
+
"evidenceDigest": "hmac-sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "chatgpt.browser_control.operation_artifact_receipt.v1",
|
|
3
|
+
"operationId": "11111111-1111-4111-8111-111111111111",
|
|
4
|
+
"artifactKey": "artifact-0",
|
|
5
|
+
"assistantTurnId": "assistant-turn-1",
|
|
6
|
+
"sourceIdentityDigest": "hmac-sha256:abababababababababababababababababababababababababababababababab",
|
|
7
|
+
"kind": "file",
|
|
8
|
+
"ordinal": 0,
|
|
9
|
+
"outputKey": "operation-11111111-result.bin",
|
|
10
|
+
"mimeType": "application/octet-stream",
|
|
11
|
+
"bytes": 32,
|
|
12
|
+
"sha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
|
13
|
+
"status": "transferred"
|
|
14
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "chatgpt.browser_control.operation_event.v1",
|
|
3
|
+
"revision": 5,
|
|
4
|
+
"previousEventDigest": "hmac-sha256:3333333333333333333333333333333333333333333333333333333333333333",
|
|
5
|
+
"eventDigest": "hmac-sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
|
6
|
+
"event": {
|
|
7
|
+
"type": "artifact_transfer_intent",
|
|
8
|
+
"intent": {
|
|
9
|
+
"schemaVersion": "chatgpt.browser_control.artifact_transfer_intent.v1",
|
|
10
|
+
"operationId": "11111111-1111-4111-8111-111111111111",
|
|
11
|
+
"requestDigest": "hmac-sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
12
|
+
"targetBindingDigest": "hmac-sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
13
|
+
"assistantTurnId": "assistant-turn-1",
|
|
14
|
+
"sourceIdentityDigest": "hmac-sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
15
|
+
"kind": "file",
|
|
16
|
+
"ordinal": 0,
|
|
17
|
+
"transferActionId": "66666666-6666-4666-8666-666666666666",
|
|
18
|
+
"destinationIdentityDigest": "hmac-sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
|
19
|
+
"actionKind": "local_output_commit",
|
|
20
|
+
"repeatPolicy": "reconcile_local_effect",
|
|
21
|
+
"intentAt": "2026-08-16T00:00:03.000Z"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "chatgpt.browser_control.operation_event.v1",
|
|
3
|
+
"revision": 6,
|
|
4
|
+
"previousEventDigest": "hmac-sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
|
5
|
+
"eventDigest": "hmac-sha256:5555555555555555555555555555555555555555555555555555555555555555",
|
|
6
|
+
"event": {
|
|
7
|
+
"type": "artifact_transfer_receipt",
|
|
8
|
+
"receipt": {
|
|
9
|
+
"schemaVersion": "chatgpt.browser_control.artifact_transfer_receipt.v1",
|
|
10
|
+
"operationId": "11111111-1111-4111-8111-111111111111",
|
|
11
|
+
"requestDigest": "hmac-sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
12
|
+
"targetBindingDigest": "hmac-sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
13
|
+
"assistantTurnId": "assistant-turn-1",
|
|
14
|
+
"sourceIdentityDigest": "hmac-sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
15
|
+
"kind": "file",
|
|
16
|
+
"ordinal": 0,
|
|
17
|
+
"transferActionId": "66666666-6666-4666-8666-666666666666",
|
|
18
|
+
"destinationIdentityDigest": "hmac-sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
|
19
|
+
"outputKey": "artifact-transfer-1",
|
|
20
|
+
"bytes": 12,
|
|
21
|
+
"sha256": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
|
22
|
+
"status": "transferred",
|
|
23
|
+
"observedAt": "2026-08-16T00:00:04.000Z"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|