codex-chatgpt-control 0.1.0-alpha.1
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 +5 -0
- package/LICENSE +21 -0
- package/README.md +54 -0
- package/contracts/v1/fixtures/backend-capabilities.json +54 -0
- package/contracts/v1/fixtures/backend-error-event-missing-stream-input.json +10 -0
- package/contracts/v1/fixtures/backend-error-missing-run-input.json +10 -0
- package/contracts/v1/fixtures/backend-runner-plan-request.json +12 -0
- package/contracts/v1/fixtures/backend-version.json +10 -0
- package/contracts/v1/fixtures/command-descriptors.json +803 -0
- package/contracts/v1/fixtures/describe-runner-run.json +31 -0
- package/contracts/v1/fixtures/doctor-bridge-upload.json +34 -0
- package/contracts/v1/fixtures/help-root.json +6 -0
- package/contracts/v1/fixtures/named-plan-two-turn.json +39 -0
- package/contracts/v1/fixtures/output-json-parse-success.json +115 -0
- package/contracts/v1/fixtures/primitive-bootstrap-blocker.json +43 -0
- package/contracts/v1/fixtures/report-redaction-default.json +16 -0
- package/contracts/v1/fixtures/reports-create-redacted.json +16 -0
- package/contracts/v1/fixtures/reports-summarize-redacted.json +26 -0
- package/contracts/v1/fixtures/responses-basic-success.json +27 -0
- package/contracts/v1/fixtures/responses-hidden-instructions-unsupported.json +22 -0
- package/contracts/v1/fixtures/responses-unknown-field-unsupported.json +22 -0
- package/contracts/v1/fixtures/responses-unsupported-previous-response-id.json +22 -0
- package/contracts/v1/fixtures/responses-unsupported-temperature.json +22 -0
- package/contracts/v1/fixtures/run-basic-success.json +36 -0
- package/contracts/v1/fixtures/run-browser-bridge-blocker.json +180 -0
- package/contracts/v1/fixtures/run-file-attach-success.json +63 -0
- package/contracts/v1/fixtures/run-report-redacted.json +52 -0
- package/contracts/v1/fixtures/run-selector-drift-blocker.json +60 -0
- package/contracts/v1/fixtures/run-timeout-partial.json +81 -0
- package/contracts/v1/fixtures/run-two-turn-success.json +83 -0
- package/contracts/v1/fixtures/run-upload-permission-blocker.json +56 -0
- package/contracts/v1/fixtures/runner-budget-blocker.json +106 -0
- package/contracts/v1/fixtures/runner-full-agent-config.json +50 -0
- package/contracts/v1/fixtures/runner-input-items-and-files-plan.json +53 -0
- package/contracts/v1/fixtures/runner-metadata-only-plan.json +31 -0
- package/contracts/v1/fixtures/runner-visible-prefix-plan.json +28 -0
- package/contracts/v1/fixtures/runner-visible-setup-plan.json +37 -0
- package/contracts/v1/fixtures/stream-basic.ndjson +3 -0
- package/contracts/v1/fixtures/stream-blocked.ndjson +2 -0
- package/contracts/v1/fixtures/stream-submitted-completed.ndjson +3 -0
- package/contracts/v1/fixtures/workflow-ask-success.json +67 -0
- package/contracts/v1/manifest.json +210 -0
- package/contracts/v1/parity-suite.json +635 -0
- package/contracts/v1/schemas/agent.schema.json +52 -0
- package/contracts/v1/schemas/backend-event.schema.json +74 -0
- package/contracts/v1/schemas/backend-request.schema.json +59 -0
- package/contracts/v1/schemas/backend-response.schema.json +42 -0
- package/contracts/v1/schemas/capabilities.schema.json +33 -0
- package/contracts/v1/schemas/command-descriptor.schema.json +31 -0
- package/contracts/v1/schemas/command-result.schema.json +99 -0
- package/contracts/v1/schemas/manifest.schema.json +69 -0
- package/contracts/v1/schemas/response.schema.json +51 -0
- package/contracts/v1/schemas/run-result.schema.json +138 -0
- package/contracts/v1/schemas/sequence-plan.schema.json +44 -0
- package/contracts/v1/schemas/stream-event.schema.json +25 -0
- package/dist/codex-chatgpt-control-backend.mjs +5284 -0
- package/dist/codex-chatgpt-control.bundle.mjs +6013 -0
- package/dist/src/backend/client.d.ts +129 -0
- package/dist/src/backend/client.js +415 -0
- package/dist/src/backend/protocol.d.ts +74 -0
- package/dist/src/backend/protocol.js +128 -0
- package/dist/src/backend/session.d.ts +11 -0
- package/dist/src/backend/session.js +223 -0
- package/dist/src/backend/stdio-server.d.ts +9 -0
- package/dist/src/backend/stdio-server.js +88 -0
- package/dist/src/browser/attach.d.ts +8 -0
- package/dist/src/browser/attach.js +456 -0
- package/dist/src/browser/clipboard.d.ts +2 -0
- package/dist/src/browser/clipboard.js +26 -0
- package/dist/src/browser/downloads.d.ts +7 -0
- package/dist/src/browser/downloads.js +29 -0
- package/dist/src/browser/page-state.d.ts +17 -0
- package/dist/src/browser/page-state.js +66 -0
- package/dist/src/client.d.ts +167 -0
- package/dist/src/client.js +666 -0
- package/dist/src/commands/confirmations.d.ts +9 -0
- package/dist/src/commands/confirmations.js +33 -0
- package/dist/src/commands/context.d.ts +2 -0
- package/dist/src/commands/context.js +32 -0
- package/dist/src/commands/doctor.d.ts +16 -0
- package/dist/src/commands/doctor.js +120 -0
- package/dist/src/commands/files.d.ts +4 -0
- package/dist/src/commands/files.js +314 -0
- package/dist/src/commands/helpers.d.ts +16 -0
- package/dist/src/commands/helpers.js +128 -0
- package/dist/src/commands/messages.d.ts +16 -0
- package/dist/src/commands/messages.js +538 -0
- package/dist/src/commands/modes.d.ts +9 -0
- package/dist/src/commands/modes.js +323 -0
- package/dist/src/commands/output.d.ts +5 -0
- package/dist/src/commands/output.js +31 -0
- package/dist/src/commands/registry.d.ts +17 -0
- package/dist/src/commands/registry.js +275 -0
- package/dist/src/commands/reports.d.ts +14 -0
- package/dist/src/commands/reports.js +47 -0
- package/dist/src/commands/response-actions.d.ts +2 -0
- package/dist/src/commands/response-actions.js +141 -0
- package/dist/src/commands/sequence.d.ts +9 -0
- package/dist/src/commands/sequence.js +228 -0
- package/dist/src/commands/session.d.ts +2 -0
- package/dist/src/commands/session.js +25 -0
- package/dist/src/commands/threads.d.ts +6 -0
- package/dist/src/commands/threads.js +300 -0
- package/dist/src/dom/fixtures.d.ts +1 -0
- package/dist/src/dom/fixtures.js +8 -0
- package/dist/src/dom/menus.d.ts +8 -0
- package/dist/src/dom/menus.js +40 -0
- package/dist/src/dom/message-format.d.ts +30 -0
- package/dist/src/dom/message-format.js +593 -0
- package/dist/src/dom/messages.d.ts +40 -0
- package/dist/src/dom/messages.js +127 -0
- package/dist/src/dom/selectors.d.ts +20 -0
- package/dist/src/dom/selectors.js +72 -0
- package/dist/src/dom/visible-text.d.ts +5 -0
- package/dist/src/dom/visible-text.js +27 -0
- package/dist/src/errors.d.ts +32 -0
- package/dist/src/errors.js +127 -0
- package/dist/src/index.d.ts +34 -0
- package/dist/src/index.js +34 -0
- package/dist/src/logger.d.ts +15 -0
- package/dist/src/logger.js +25 -0
- package/dist/src/runner/agent.d.ts +2 -0
- package/dist/src/runner/agent.js +17 -0
- package/dist/src/runner/index.d.ts +7 -0
- package/dist/src/runner/index.js +7 -0
- package/dist/src/runner/interruptions.d.ts +3 -0
- package/dist/src/runner/interruptions.js +65 -0
- package/dist/src/runner/responses.d.ts +30 -0
- package/dist/src/runner/responses.js +171 -0
- package/dist/src/runner/result.d.ts +3 -0
- package/dist/src/runner/result.js +128 -0
- package/dist/src/runner/resume.d.ts +11 -0
- package/dist/src/runner/resume.js +26 -0
- package/dist/src/runner/stream.d.ts +13 -0
- package/dist/src/runner/stream.js +66 -0
- package/dist/src/runner/types.d.ts +264 -0
- package/dist/src/runner/types.js +1 -0
- package/dist/src/safety/blockers.d.ts +7 -0
- package/dist/src/safety/blockers.js +60 -0
- package/dist/src/safety/redaction.d.ts +2 -0
- package/dist/src/safety/redaction.js +18 -0
- package/dist/src/safety/report-redaction.d.ts +8 -0
- package/dist/src/safety/report-redaction.js +74 -0
- package/dist/src/safety/risk.d.ts +26 -0
- package/dist/src/safety/risk.js +28 -0
- package/dist/src/scripts/backend-server.d.ts +2 -0
- package/dist/src/scripts/backend-server.js +7 -0
- package/dist/src/scripts/check-parity-suite.d.ts +1 -0
- package/dist/src/scripts/check-parity-suite.js +10 -0
- package/dist/src/scripts/continue-thread.d.ts +27 -0
- package/dist/src/scripts/continue-thread.js +388 -0
- package/dist/src/scripts/live-smoke/harness.d.ts +11 -0
- package/dist/src/scripts/live-smoke/harness.js +151 -0
- package/dist/src/scripts/live-smoke/scenarios.d.ts +3 -0
- package/dist/src/scripts/live-smoke/scenarios.js +648 -0
- package/dist/src/scripts/live-smoke/types.d.ts +53 -0
- package/dist/src/scripts/live-smoke/types.js +1 -0
- package/dist/src/scripts/live-smoke-module.d.ts +3 -0
- package/dist/src/scripts/live-smoke-module.js +2 -0
- package/dist/src/scripts/live-smoke.d.ts +1 -0
- package/dist/src/scripts/live-smoke.js +54 -0
- package/dist/src/scripts/smoke-attach-file.d.ts +1 -0
- package/dist/src/scripts/smoke-attach-file.js +39 -0
- package/dist/src/scripts/smoke-hi.d.ts +1 -0
- package/dist/src/scripts/smoke-hi.js +25 -0
- package/dist/src/scripts/smoke-search-open-read.d.ts +1 -0
- package/dist/src/scripts/smoke-search-open-read.js +41 -0
- package/dist/src/testing/parity-suite.d.ts +12 -0
- package/dist/src/testing/parity-suite.js +213 -0
- package/dist/src/types.d.ts +495 -0
- package/dist/src/types.js +1 -0
- package/package.json +81 -0
- package/references/agents-runner.md +32 -0
- package/references/backend-protocol.md +238 -0
- package/references/python-parity.md +168 -0
- package/references/responses-adapter.md +28 -0
- package/references/safety.md +14 -0
- package/references/streaming.md +15 -0
- package/references/troubleshooting.md +91 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
{
|
|
2
|
+
"result": {
|
|
3
|
+
"activeAgentName": "budget-agent",
|
|
4
|
+
"blocker": {
|
|
5
|
+
"code": "run_budget_exceeded",
|
|
6
|
+
"fieldPath": "limits",
|
|
7
|
+
"kind": "confirmation",
|
|
8
|
+
"message": "Workflow \"agent-run:budget-agent\" exceeds ChatGPT browser-control run budget: prompts 1/0. Ask the user to confirm a bounded exception.",
|
|
9
|
+
"remediation": [
|
|
10
|
+
{
|
|
11
|
+
"instruction": "Ask the user to approve this specific over-budget run, or reduce the number of prompts, thread opens, or message reads.",
|
|
12
|
+
"label": "Confirm bounded run",
|
|
13
|
+
"userActionRequired": true
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"resumable": true
|
|
17
|
+
},
|
|
18
|
+
"context": {
|
|
19
|
+
"timestamp": "2026-06-06T00:00:00.000Z"
|
|
20
|
+
},
|
|
21
|
+
"data": {
|
|
22
|
+
"outputText": ""
|
|
23
|
+
},
|
|
24
|
+
"interruptions": [
|
|
25
|
+
{
|
|
26
|
+
"blocker": {
|
|
27
|
+
"code": "run_budget_exceeded",
|
|
28
|
+
"fieldPath": "limits",
|
|
29
|
+
"kind": "confirmation",
|
|
30
|
+
"message": "Workflow \"agent-run:budget-agent\" exceeds ChatGPT browser-control run budget: prompts 1/0. Ask the user to confirm a bounded exception.",
|
|
31
|
+
"remediation": [
|
|
32
|
+
{
|
|
33
|
+
"instruction": "Ask the user to approve this specific over-budget run, or reduce the number of prompts, thread opens, or message reads.",
|
|
34
|
+
"label": "Confirm bounded run",
|
|
35
|
+
"userActionRequired": true
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"resumable": true
|
|
39
|
+
},
|
|
40
|
+
"fieldPath": "limits",
|
|
41
|
+
"fix": {
|
|
42
|
+
"steps": [
|
|
43
|
+
"Ask the user to approve this specific over-budget run, or reduce the number of prompts, thread opens, or message reads."
|
|
44
|
+
],
|
|
45
|
+
"summary": "Resolve the reported blocker before resuming."
|
|
46
|
+
},
|
|
47
|
+
"id": "interruption_fixed",
|
|
48
|
+
"message": "Workflow \"agent-run:budget-agent\" exceeds ChatGPT browser-control run budget: prompts 1/0. Ask the user to confirm a bounded exception.",
|
|
49
|
+
"resume": {
|
|
50
|
+
"stateId": "interruption_fixed",
|
|
51
|
+
"supported": true
|
|
52
|
+
},
|
|
53
|
+
"status": "needs_confirmation",
|
|
54
|
+
"type": "approval_required"
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"lastAgentName": "budget-agent",
|
|
58
|
+
"newItems": [
|
|
59
|
+
{
|
|
60
|
+
"blocker": {
|
|
61
|
+
"code": "run_budget_exceeded",
|
|
62
|
+
"fieldPath": "limits",
|
|
63
|
+
"kind": "confirmation",
|
|
64
|
+
"message": "Workflow \"agent-run:budget-agent\" exceeds ChatGPT browser-control run budget: prompts 1/0. Ask the user to confirm a bounded exception.",
|
|
65
|
+
"remediation": [
|
|
66
|
+
{
|
|
67
|
+
"instruction": "Ask the user to approve this specific over-budget run, or reduce the number of prompts, thread opens, or message reads.",
|
|
68
|
+
"label": "Confirm bounded run",
|
|
69
|
+
"userActionRequired": true
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"resumable": true
|
|
73
|
+
},
|
|
74
|
+
"type": "run.blocked"
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"ok": false,
|
|
78
|
+
"output": [
|
|
79
|
+
{
|
|
80
|
+
"blocker": {
|
|
81
|
+
"code": "run_budget_exceeded",
|
|
82
|
+
"fieldPath": "limits",
|
|
83
|
+
"kind": "confirmation",
|
|
84
|
+
"message": "Workflow \"agent-run:budget-agent\" exceeds ChatGPT browser-control run budget: prompts 1/0. Ask the user to confirm a bounded exception.",
|
|
85
|
+
"remediation": [
|
|
86
|
+
{
|
|
87
|
+
"instruction": "Ask the user to approve this specific over-budget run, or reduce the number of prompts, thread opens, or message reads.",
|
|
88
|
+
"label": "Confirm bounded run",
|
|
89
|
+
"userActionRequired": true
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"resumable": true
|
|
93
|
+
},
|
|
94
|
+
"type": "run.blocked"
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
"output_text": "",
|
|
98
|
+
"state": {
|
|
99
|
+
"id": "interruption_fixed",
|
|
100
|
+
"resumable": true
|
|
101
|
+
},
|
|
102
|
+
"status": "needs_confirmation",
|
|
103
|
+
"warnings": []
|
|
104
|
+
},
|
|
105
|
+
"schemaVersion": "chatgpt.browser_control.run_result.v1"
|
|
106
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"defaults": {
|
|
3
|
+
"read": {
|
|
4
|
+
"format": "markdown"
|
|
5
|
+
},
|
|
6
|
+
"report": {
|
|
7
|
+
"enabled": false
|
|
8
|
+
},
|
|
9
|
+
"thread": {
|
|
10
|
+
"type": "new"
|
|
11
|
+
},
|
|
12
|
+
"wait": {
|
|
13
|
+
"pollMs": 0,
|
|
14
|
+
"stableMs": 0,
|
|
15
|
+
"timeoutMs": 100
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"guardrails": [
|
|
19
|
+
{
|
|
20
|
+
"name": "no hidden prompt claims",
|
|
21
|
+
"scope": "input"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "redact report previews",
|
|
25
|
+
"scope": "report"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"instructions": "Use visible ChatGPT browser control honestly.",
|
|
29
|
+
"instructionsMode": "visible_prefix",
|
|
30
|
+
"kind": "chatgpt_browser_agent",
|
|
31
|
+
"metadata": {
|
|
32
|
+
"fixture": "runner_full_agent_config",
|
|
33
|
+
"stability": "deterministic"
|
|
34
|
+
},
|
|
35
|
+
"name": "parity-reviewer",
|
|
36
|
+
"output": {
|
|
37
|
+
"onParseError": "error",
|
|
38
|
+
"parse": "json",
|
|
39
|
+
"sample": {
|
|
40
|
+
"verdict": "ok"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"tools": [
|
|
44
|
+
{
|
|
45
|
+
"command": "tools.select",
|
|
46
|
+
"name": "web search",
|
|
47
|
+
"risk": "medium"
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agent-run:file-agent",
|
|
3
|
+
"policy": {
|
|
4
|
+
"returnPartial": true,
|
|
5
|
+
"stopOnError": true
|
|
6
|
+
},
|
|
7
|
+
"steps": [
|
|
8
|
+
{
|
|
9
|
+
"command": "session.bootstrap",
|
|
10
|
+
"id": "bootstrap"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"command": "threads.new",
|
|
14
|
+
"id": "new"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"args": {
|
|
18
|
+
"model": "auto"
|
|
19
|
+
},
|
|
20
|
+
"command": "modes.set",
|
|
21
|
+
"id": "mode"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"args": {
|
|
25
|
+
"ifUnavailable": "skip",
|
|
26
|
+
"tool": "web_search"
|
|
27
|
+
},
|
|
28
|
+
"command": "tools.select",
|
|
29
|
+
"id": "tool1"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"args": {
|
|
33
|
+
"paths": [
|
|
34
|
+
"/tmp/contract-fixtures/handoff.md",
|
|
35
|
+
"/tmp/contract-fixtures/context.json"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"command": "files.attach",
|
|
39
|
+
"id": "attach"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"args": {
|
|
43
|
+
"read": {
|
|
44
|
+
"format": "markdown"
|
|
45
|
+
},
|
|
46
|
+
"text": "<chatgpt_browser_agent>\nAgent name: file-agent\nInstructions:\nUse the attached file context.\n</chatgpt_browser_agent>\n\n<user_request>\n<visible_instructions>\nUse concise bullets.\n</visible_instructions>\n\nReview the implementation handoff.\n\nAttached file context: SDK parity handoff.\n</user_request>",
|
|
47
|
+
"wait": false
|
|
48
|
+
},
|
|
49
|
+
"command": "messages.ask",
|
|
50
|
+
"id": "ask"
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agent-run:metadata-agent",
|
|
3
|
+
"policy": {
|
|
4
|
+
"returnPartial": true,
|
|
5
|
+
"stopOnError": true
|
|
6
|
+
},
|
|
7
|
+
"steps": [
|
|
8
|
+
{
|
|
9
|
+
"command": "session.bootstrap",
|
|
10
|
+
"id": "bootstrap"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"args": {
|
|
14
|
+
"conversationId": "conv_metadata_123"
|
|
15
|
+
},
|
|
16
|
+
"command": "threads.open",
|
|
17
|
+
"id": "open"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"args": {
|
|
21
|
+
"read": {
|
|
22
|
+
"format": "markdown"
|
|
23
|
+
},
|
|
24
|
+
"text": "Summarize visible-only behavior.",
|
|
25
|
+
"wait": true
|
|
26
|
+
},
|
|
27
|
+
"command": "messages.ask",
|
|
28
|
+
"id": "ask"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agent-run:visible-prefix-agent",
|
|
3
|
+
"policy": {
|
|
4
|
+
"returnPartial": true,
|
|
5
|
+
"stopOnError": true
|
|
6
|
+
},
|
|
7
|
+
"steps": [
|
|
8
|
+
{
|
|
9
|
+
"command": "session.bootstrap",
|
|
10
|
+
"id": "bootstrap"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"command": "threads.new",
|
|
14
|
+
"id": "new"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"args": {
|
|
18
|
+
"read": {
|
|
19
|
+
"format": "markdown"
|
|
20
|
+
},
|
|
21
|
+
"text": "<chatgpt_browser_agent>\nAgent name: visible-prefix-agent\nInstructions:\nAnswer with terse implementation guidance.\n</chatgpt_browser_agent>\n\n<user_request>\nAssess the SDK architecture.\n</user_request>",
|
|
22
|
+
"wait": true
|
|
23
|
+
},
|
|
24
|
+
"command": "messages.ask",
|
|
25
|
+
"id": "ask"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agent-run:visible-setup-agent",
|
|
3
|
+
"policy": {
|
|
4
|
+
"returnPartial": true,
|
|
5
|
+
"stopOnError": true
|
|
6
|
+
},
|
|
7
|
+
"steps": [
|
|
8
|
+
{
|
|
9
|
+
"command": "session.bootstrap",
|
|
10
|
+
"id": "bootstrap"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"command": "threads.new",
|
|
14
|
+
"id": "new"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"args": {
|
|
18
|
+
"read": false,
|
|
19
|
+
"text": "<chatgpt_browser_agent>\nAgent name: visible-setup-agent\nInstructions:\nMaintain a careful review checklist.\n</chatgpt_browser_agent>\n\nAcknowledge these visible setup instructions briefly, then wait for the next user request.",
|
|
20
|
+
"wait": true
|
|
21
|
+
},
|
|
22
|
+
"command": "messages.ask",
|
|
23
|
+
"id": "agent_setup"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"args": {
|
|
27
|
+
"read": {
|
|
28
|
+
"format": "markdown"
|
|
29
|
+
},
|
|
30
|
+
"text": "Review parity gates.",
|
|
31
|
+
"wait": true
|
|
32
|
+
},
|
|
33
|
+
"command": "messages.ask",
|
|
34
|
+
"id": "ask"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
{"type":"run_item_stream_event","name":"thread_opened","item":{"type":"thread.opened","thread":{"url":"https://chatgpt.com/c/example-stream","conversationId":"example-stream"}}}
|
|
2
|
+
{"type":"run_item_stream_event","name":"message_completed","item":{"type":"message.completed","role":"assistant","output_text":"hi","format":"markdown"}}
|
|
3
|
+
{"type":"completed","result":{"ok":true,"status":"ok","output_text":"hi","finalOutput":"hi","output":[],"newItems":[],"interruptions":[],"state":{"id":"state-stream-basic","resumable":false},"activeAgentName":"reviewer","lastAgentName":"reviewer","warnings":[],"context":{"timestamp":"2026-06-05T00:00:00.000Z"}}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
{"item":{"blocker":{"code":"codex_chrome_bridge_unavailable","kind":"browser_bridge_unavailable","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, bootstrap the Chrome plugin runtime with setupBrowserRuntime({ globals: globalThis }) before using globalThis.agent.","remediation":[{"instruction":"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.","label":"Ordinary shell","userActionRequired":false},{"instruction":"For a live run, initialize the Chrome plugin runtime in node_repl with setupBrowserRuntime({ globals: globalThis }), then set globalThis.browser = await agent.browsers.get(\"extension\") before calling createChatGPT({ agent: globalThis.agent }).","label":"Codex Chrome bootstrap","userActionRequired":false},{"instruction":"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.","label":"Python live bridge","userActionRequired":false},{"instruction":"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.","label":"Extension availability","userActionRequired":true}],"resumable":false},"type":"run.blocked"},"name":"run_blocked","requestId":"req_runner_stream","schemaVersion":"chatgpt.browser_control.backend_event.v1","type":"run_item_stream_event"}
|
|
2
|
+
{"requestId":"req_runner_stream","result":{"activeAgentName":"reviewer","blocker":{"code":"codex_chrome_bridge_unavailable","kind":"browser_bridge_unavailable","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, bootstrap the Chrome plugin runtime with setupBrowserRuntime({ globals: globalThis }) before using globalThis.agent.","remediation":[{"instruction":"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.","label":"Ordinary shell","userActionRequired":false},{"instruction":"For a live run, initialize the Chrome plugin runtime in node_repl with setupBrowserRuntime({ globals: globalThis }), then set globalThis.browser = await agent.browsers.get(\"extension\") before calling createChatGPT({ agent: globalThis.agent }).","label":"Codex Chrome bootstrap","userActionRequired":false},{"instruction":"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.","label":"Python live bridge","userActionRequired":false},{"instruction":"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.","label":"Extension availability","userActionRequired":true}]},"context":{"timestamp":"2026-06-06T00:00:00.000Z"},"data":{"outputText":""},"error":{"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, bootstrap the Chrome plugin runtime with setupBrowserRuntime({ globals: globalThis }) before using globalThis.agent.","name":"BrowserBridgeUnavailableError","recoverable":true},"interruptions":[{"blocker":{"code":"codex_chrome_bridge_unavailable","kind":"browser_bridge_unavailable","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, bootstrap the Chrome plugin runtime with setupBrowserRuntime({ globals: globalThis }) before using globalThis.agent.","remediation":[{"instruction":"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.","label":"Ordinary shell","userActionRequired":false},{"instruction":"For a live run, initialize the Chrome plugin runtime in node_repl with setupBrowserRuntime({ globals: globalThis }), then set globalThis.browser = await agent.browsers.get(\"extension\") before calling createChatGPT({ agent: globalThis.agent }).","label":"Codex Chrome bootstrap","userActionRequired":false},{"instruction":"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.","label":"Python live bridge","userActionRequired":false},{"instruction":"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.","label":"Extension availability","userActionRequired":true}],"resumable":false},"command":"session.bootstrap","fix":{"steps":["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.","For a live run, initialize the Chrome plugin runtime in node_repl with setupBrowserRuntime({ globals: globalThis }), then set globalThis.browser = await agent.browsers.get(\"extension\") before calling createChatGPT({ agent: globalThis.agent }).","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.","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."],"summary":"Resolve the reported blocker before resuming."},"id":"interruption_fixed","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, bootstrap the Chrome plugin runtime with setupBrowserRuntime({ globals: globalThis }) before using globalThis.agent.","resume":{"reason":"The underlying browser-control command did not mark this blocker as resumable.","supported":false},"status":"partial","type":"unsupported"}],"lastAgentName":"reviewer","newItems":[{"blocker":{"code":"codex_chrome_bridge_unavailable","kind":"browser_bridge_unavailable","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, bootstrap the Chrome plugin runtime with setupBrowserRuntime({ globals: globalThis }) before using globalThis.agent.","remediation":[{"instruction":"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.","label":"Ordinary shell","userActionRequired":false},{"instruction":"For a live run, initialize the Chrome plugin runtime in node_repl with setupBrowserRuntime({ globals: globalThis }), then set globalThis.browser = await agent.browsers.get(\"extension\") before calling createChatGPT({ agent: globalThis.agent }).","label":"Codex Chrome bootstrap","userActionRequired":false},{"instruction":"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.","label":"Python live bridge","userActionRequired":false},{"instruction":"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.","label":"Extension availability","userActionRequired":true}],"resumable":false},"type":"run.blocked"}],"ok":false,"output":[{"blocker":{"code":"codex_chrome_bridge_unavailable","kind":"browser_bridge_unavailable","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, bootstrap the Chrome plugin runtime with setupBrowserRuntime({ globals: globalThis }) before using globalThis.agent.","remediation":[{"instruction":"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.","label":"Ordinary shell","userActionRequired":false},{"instruction":"For a live run, initialize the Chrome plugin runtime in node_repl with setupBrowserRuntime({ globals: globalThis }), then set globalThis.browser = await agent.browsers.get(\"extension\") before calling createChatGPT({ agent: globalThis.agent }).","label":"Codex Chrome bootstrap","userActionRequired":false},{"instruction":"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.","label":"Python live bridge","userActionRequired":false},{"instruction":"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.","label":"Extension availability","userActionRequired":true}],"resumable":false},"type":"run.blocked"}],"output_text":"","state":{"id":"run_fixed","resumable":false},"status":"partial","steps":[{"command":"session.bootstrap","endedAt":"2026-06-06T00:00:00.000Z","id":"bootstrap","ok":false,"startedAt":"2026-06-06T00:00:00.000Z","status":"blocked","warnings":[]}],"warnings":[]},"schemaVersion":"chatgpt.browser_control.backend_event.v1","type":"completed"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
{"item":{"preview":"Return the word done.","redacted":true,"role":"user","type":"message.submitted"},"name":"message_submitted","requestId":"req_runner_stream","schemaVersion":"chatgpt.browser_control.backend_event.v1","type":"run_item_stream_event"}
|
|
2
|
+
{"item":{"format":"markdown","output_text":"done","role":"assistant","type":"message.completed"},"name":"message_completed","requestId":"req_runner_stream","schemaVersion":"chatgpt.browser_control.backend_event.v1","type":"run_item_stream_event"}
|
|
3
|
+
{"requestId":"req_runner_stream","result":{"activeAgentName":"stream-agent","context":{"assistantTurnCount":1,"timestamp":"2026-06-06T00:00:00.000Z","title":"ChatGPT","turnCount":2,"url":"https://chatgpt.com/"},"data":{"finalOutput":"done","outputText":"done","thread":{"title":"ChatGPT","url":"https://chatgpt.com/"}},"finalOutput":"done","interruptions":[],"lastAgentName":"stream-agent","newItems":[{"preview":"Return the word done.","redacted":true,"role":"user","type":"message.submitted"},{"format":"markdown","output_text":"done","role":"assistant","type":"message.completed"}],"ok":true,"output":[{"preview":"Return the word done.","redacted":true,"role":"user","type":"message.submitted"},{"format":"markdown","output_text":"done","role":"assistant","type":"message.completed"}],"output_text":"done","state":{"id":"run_fixed","resumable":false,"thread":{"title":"ChatGPT","url":"https://chatgpt.com/"}},"status":"ok","steps":[{"command":"session.bootstrap","dataPreview":{"browserName":"chrome","loggedIn":true,"tabId":"unknown","url":"https://chatgpt.com/"},"endedAt":"2026-06-06T00:00:00.000Z","id":"bootstrap","ok":true,"startedAt":"2026-06-06T00:00:00.000Z","status":"ok","warnings":[]},{"command":"threads.new","dataPreview":{"title":"ChatGPT","url":"https://chatgpt.com/"},"endedAt":"2026-06-06T00:00:00.000Z","id":"new","ok":true,"startedAt":"2026-06-06T00:00:00.000Z","status":"ok","warnings":[]},{"command":"messages.ask","dataPreview":{"complete":true,"prompt":"Return the word done.","responseText":"done","title":"ChatGPT"},"endedAt":"2026-06-06T00:00:00.000Z","id":"ask","ok":true,"startedAt":"2026-06-06T00:00:00.000Z","status":"ok","warnings":[]}],"warnings":[]},"schemaVersion":"chatgpt.browser_control.backend_event.v1","type":"completed"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"result": {
|
|
3
|
+
"context": {
|
|
4
|
+
"assistantTurnCount": 1,
|
|
5
|
+
"timestamp": "2026-06-06T00:00:00.000Z",
|
|
6
|
+
"title": "ChatGPT",
|
|
7
|
+
"turnCount": 2,
|
|
8
|
+
"url": "https://chatgpt.com/"
|
|
9
|
+
},
|
|
10
|
+
"data": {
|
|
11
|
+
"complete": true,
|
|
12
|
+
"prompt": "Reply with hi.",
|
|
13
|
+
"responseText": "hi",
|
|
14
|
+
"title": "ChatGPT"
|
|
15
|
+
},
|
|
16
|
+
"ok": true,
|
|
17
|
+
"output_text": "hi",
|
|
18
|
+
"status": "ok",
|
|
19
|
+
"steps": [
|
|
20
|
+
{
|
|
21
|
+
"command": "session.bootstrap",
|
|
22
|
+
"dataPreview": {
|
|
23
|
+
"browserName": "chrome",
|
|
24
|
+
"loggedIn": true,
|
|
25
|
+
"tabId": "unknown",
|
|
26
|
+
"url": "https://chatgpt.com/"
|
|
27
|
+
},
|
|
28
|
+
"endedAt": "2026-06-06T00:00:00.000Z",
|
|
29
|
+
"id": "bootstrap",
|
|
30
|
+
"ok": true,
|
|
31
|
+
"startedAt": "2026-06-06T00:00:00.000Z",
|
|
32
|
+
"status": "ok",
|
|
33
|
+
"warnings": []
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"command": "threads.new",
|
|
37
|
+
"dataPreview": {
|
|
38
|
+
"title": "ChatGPT",
|
|
39
|
+
"url": "https://chatgpt.com/"
|
|
40
|
+
},
|
|
41
|
+
"endedAt": "2026-06-06T00:00:00.000Z",
|
|
42
|
+
"id": "new",
|
|
43
|
+
"ok": true,
|
|
44
|
+
"startedAt": "2026-06-06T00:00:00.000Z",
|
|
45
|
+
"status": "ok",
|
|
46
|
+
"warnings": []
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"command": "messages.ask",
|
|
50
|
+
"dataPreview": {
|
|
51
|
+
"complete": true,
|
|
52
|
+
"prompt": "Reply with hi.",
|
|
53
|
+
"responseText": "hi",
|
|
54
|
+
"title": "ChatGPT"
|
|
55
|
+
},
|
|
56
|
+
"endedAt": "2026-06-06T00:00:00.000Z",
|
|
57
|
+
"id": "ask",
|
|
58
|
+
"ok": true,
|
|
59
|
+
"startedAt": "2026-06-06T00:00:00.000Z",
|
|
60
|
+
"status": "ok",
|
|
61
|
+
"warnings": []
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"warnings": []
|
|
65
|
+
},
|
|
66
|
+
"schemaVersion": "chatgpt.browser_control.command_result.v1"
|
|
67
|
+
}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contractVersion": "0.1.0",
|
|
3
|
+
"fixtures": [
|
|
4
|
+
{
|
|
5
|
+
"case": "backend_capabilities",
|
|
6
|
+
"file": "backend-capabilities.json",
|
|
7
|
+
"schema": "capabilities"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"case": "backend_error_event_missing_stream_input",
|
|
11
|
+
"file": "backend-error-event-missing-stream-input.json",
|
|
12
|
+
"schema": "backendEvent"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"case": "backend_error_missing_run_input",
|
|
16
|
+
"file": "backend-error-missing-run-input.json",
|
|
17
|
+
"schema": "backendResponse"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"case": "backend_runner_plan_request",
|
|
21
|
+
"file": "backend-runner-plan-request.json",
|
|
22
|
+
"schema": "backendRequest"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"case": "backend_version",
|
|
26
|
+
"file": "backend-version.json",
|
|
27
|
+
"schema": "backendResponse"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"case": "command_descriptors",
|
|
31
|
+
"file": "command-descriptors.json",
|
|
32
|
+
"schema": "backendResponse"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"case": "describe_runner_run",
|
|
36
|
+
"file": "describe-runner-run.json",
|
|
37
|
+
"schema": "commandDescriptor"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"case": "doctor_bridge_upload",
|
|
41
|
+
"file": "doctor-bridge-upload.json",
|
|
42
|
+
"schema": "commandResult"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"case": "help_root",
|
|
46
|
+
"file": "help-root.json",
|
|
47
|
+
"schema": "backendResponse"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"case": "named_plan_two_turn",
|
|
51
|
+
"file": "named-plan-two-turn.json",
|
|
52
|
+
"schema": "sequencePlan"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"case": "output_json_parse_success",
|
|
56
|
+
"file": "output-json-parse-success.json",
|
|
57
|
+
"schema": "runResult"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"case": "primitive_bootstrap_blocker",
|
|
61
|
+
"file": "primitive-bootstrap-blocker.json",
|
|
62
|
+
"schema": "commandResult"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"case": "report_redaction_default",
|
|
66
|
+
"file": "report-redaction-default.json",
|
|
67
|
+
"schema": "commandResult"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"case": "reports_create_redacted",
|
|
71
|
+
"file": "reports-create-redacted.json",
|
|
72
|
+
"schema": "commandResult"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"case": "reports_summarize_redacted",
|
|
76
|
+
"file": "reports-summarize-redacted.json",
|
|
77
|
+
"schema": "commandResult"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"case": "responses_basic_success",
|
|
81
|
+
"file": "responses-basic-success.json",
|
|
82
|
+
"schema": "response"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"case": "responses_hidden_instructions_unsupported",
|
|
86
|
+
"file": "responses-hidden-instructions-unsupported.json",
|
|
87
|
+
"schema": "response"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"case": "responses_unknown_field_unsupported",
|
|
91
|
+
"file": "responses-unknown-field-unsupported.json",
|
|
92
|
+
"schema": "response"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"case": "responses_unsupported_previous_response_id",
|
|
96
|
+
"file": "responses-unsupported-previous-response-id.json",
|
|
97
|
+
"schema": "response"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"case": "responses_unsupported_temperature",
|
|
101
|
+
"file": "responses-unsupported-temperature.json",
|
|
102
|
+
"schema": "response"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"case": "run_basic_success",
|
|
106
|
+
"file": "run-basic-success.json",
|
|
107
|
+
"schema": "runResult"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"case": "run_browser_bridge_blocker",
|
|
111
|
+
"file": "run-browser-bridge-blocker.json",
|
|
112
|
+
"schema": "runResult"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"case": "run_file_attach_success",
|
|
116
|
+
"file": "run-file-attach-success.json",
|
|
117
|
+
"schema": "runResult"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"case": "run_report_redacted",
|
|
121
|
+
"file": "run-report-redacted.json",
|
|
122
|
+
"schema": "runResult"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"case": "run_selector_drift_blocker",
|
|
126
|
+
"file": "run-selector-drift-blocker.json",
|
|
127
|
+
"schema": "runResult"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"case": "run_timeout_partial",
|
|
131
|
+
"file": "run-timeout-partial.json",
|
|
132
|
+
"schema": "runResult"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"case": "run_two_turn_success",
|
|
136
|
+
"file": "run-two-turn-success.json",
|
|
137
|
+
"schema": "runResult"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"case": "run_upload_permission_blocker",
|
|
141
|
+
"file": "run-upload-permission-blocker.json",
|
|
142
|
+
"schema": "runResult"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"case": "runner_budget_blocker",
|
|
146
|
+
"file": "runner-budget-blocker.json",
|
|
147
|
+
"schema": "runResult"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"case": "runner_full_agent_config",
|
|
151
|
+
"file": "runner-full-agent-config.json",
|
|
152
|
+
"schema": "agent"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"case": "runner_input_items_and_files",
|
|
156
|
+
"file": "runner-input-items-and-files-plan.json",
|
|
157
|
+
"schema": "sequencePlan"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"case": "runner_metadata_only_plan",
|
|
161
|
+
"file": "runner-metadata-only-plan.json",
|
|
162
|
+
"schema": "sequencePlan"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"case": "runner_visible_prefix_plan",
|
|
166
|
+
"file": "runner-visible-prefix-plan.json",
|
|
167
|
+
"schema": "sequencePlan"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"case": "runner_visible_setup_plan",
|
|
171
|
+
"file": "runner-visible-setup-plan.json",
|
|
172
|
+
"schema": "sequencePlan"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"case": "stream_basic",
|
|
176
|
+
"file": "stream-basic.ndjson",
|
|
177
|
+
"schema": "streamEvent"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"case": "stream_blocked",
|
|
181
|
+
"file": "stream-blocked.ndjson",
|
|
182
|
+
"schema": "backendEvent"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"case": "stream_submitted_completed",
|
|
186
|
+
"file": "stream-submitted-completed.ndjson",
|
|
187
|
+
"schema": "backendEvent"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"case": "workflow_ask_success",
|
|
191
|
+
"file": "workflow-ask-success.json",
|
|
192
|
+
"schema": "commandResult"
|
|
193
|
+
}
|
|
194
|
+
],
|
|
195
|
+
"schemas": {
|
|
196
|
+
"agent": "schemas/agent.schema.json",
|
|
197
|
+
"backendEvent": "schemas/backend-event.schema.json",
|
|
198
|
+
"backendRequest": "schemas/backend-request.schema.json",
|
|
199
|
+
"backendResponse": "schemas/backend-response.schema.json",
|
|
200
|
+
"capabilities": "schemas/capabilities.schema.json",
|
|
201
|
+
"commandDescriptor": "schemas/command-descriptor.schema.json",
|
|
202
|
+
"commandResult": "schemas/command-result.schema.json",
|
|
203
|
+
"response": "schemas/response.schema.json",
|
|
204
|
+
"runResult": "schemas/run-result.schema.json",
|
|
205
|
+
"sequencePlan": "schemas/sequence-plan.schema.json",
|
|
206
|
+
"streamEvent": "schemas/stream-event.schema.json"
|
|
207
|
+
},
|
|
208
|
+
"schemaVersion": "chatgpt.browser_control.contract_manifest.v1",
|
|
209
|
+
"wireCase": "camelCaseWithDocumentedAliases"
|
|
210
|
+
}
|