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.
Files changed (179) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE +21 -0
  3. package/README.md +54 -0
  4. package/contracts/v1/fixtures/backend-capabilities.json +54 -0
  5. package/contracts/v1/fixtures/backend-error-event-missing-stream-input.json +10 -0
  6. package/contracts/v1/fixtures/backend-error-missing-run-input.json +10 -0
  7. package/contracts/v1/fixtures/backend-runner-plan-request.json +12 -0
  8. package/contracts/v1/fixtures/backend-version.json +10 -0
  9. package/contracts/v1/fixtures/command-descriptors.json +803 -0
  10. package/contracts/v1/fixtures/describe-runner-run.json +31 -0
  11. package/contracts/v1/fixtures/doctor-bridge-upload.json +34 -0
  12. package/contracts/v1/fixtures/help-root.json +6 -0
  13. package/contracts/v1/fixtures/named-plan-two-turn.json +39 -0
  14. package/contracts/v1/fixtures/output-json-parse-success.json +115 -0
  15. package/contracts/v1/fixtures/primitive-bootstrap-blocker.json +43 -0
  16. package/contracts/v1/fixtures/report-redaction-default.json +16 -0
  17. package/contracts/v1/fixtures/reports-create-redacted.json +16 -0
  18. package/contracts/v1/fixtures/reports-summarize-redacted.json +26 -0
  19. package/contracts/v1/fixtures/responses-basic-success.json +27 -0
  20. package/contracts/v1/fixtures/responses-hidden-instructions-unsupported.json +22 -0
  21. package/contracts/v1/fixtures/responses-unknown-field-unsupported.json +22 -0
  22. package/contracts/v1/fixtures/responses-unsupported-previous-response-id.json +22 -0
  23. package/contracts/v1/fixtures/responses-unsupported-temperature.json +22 -0
  24. package/contracts/v1/fixtures/run-basic-success.json +36 -0
  25. package/contracts/v1/fixtures/run-browser-bridge-blocker.json +180 -0
  26. package/contracts/v1/fixtures/run-file-attach-success.json +63 -0
  27. package/contracts/v1/fixtures/run-report-redacted.json +52 -0
  28. package/contracts/v1/fixtures/run-selector-drift-blocker.json +60 -0
  29. package/contracts/v1/fixtures/run-timeout-partial.json +81 -0
  30. package/contracts/v1/fixtures/run-two-turn-success.json +83 -0
  31. package/contracts/v1/fixtures/run-upload-permission-blocker.json +56 -0
  32. package/contracts/v1/fixtures/runner-budget-blocker.json +106 -0
  33. package/contracts/v1/fixtures/runner-full-agent-config.json +50 -0
  34. package/contracts/v1/fixtures/runner-input-items-and-files-plan.json +53 -0
  35. package/contracts/v1/fixtures/runner-metadata-only-plan.json +31 -0
  36. package/contracts/v1/fixtures/runner-visible-prefix-plan.json +28 -0
  37. package/contracts/v1/fixtures/runner-visible-setup-plan.json +37 -0
  38. package/contracts/v1/fixtures/stream-basic.ndjson +3 -0
  39. package/contracts/v1/fixtures/stream-blocked.ndjson +2 -0
  40. package/contracts/v1/fixtures/stream-submitted-completed.ndjson +3 -0
  41. package/contracts/v1/fixtures/workflow-ask-success.json +67 -0
  42. package/contracts/v1/manifest.json +210 -0
  43. package/contracts/v1/parity-suite.json +635 -0
  44. package/contracts/v1/schemas/agent.schema.json +52 -0
  45. package/contracts/v1/schemas/backend-event.schema.json +74 -0
  46. package/contracts/v1/schemas/backend-request.schema.json +59 -0
  47. package/contracts/v1/schemas/backend-response.schema.json +42 -0
  48. package/contracts/v1/schemas/capabilities.schema.json +33 -0
  49. package/contracts/v1/schemas/command-descriptor.schema.json +31 -0
  50. package/contracts/v1/schemas/command-result.schema.json +99 -0
  51. package/contracts/v1/schemas/manifest.schema.json +69 -0
  52. package/contracts/v1/schemas/response.schema.json +51 -0
  53. package/contracts/v1/schemas/run-result.schema.json +138 -0
  54. package/contracts/v1/schemas/sequence-plan.schema.json +44 -0
  55. package/contracts/v1/schemas/stream-event.schema.json +25 -0
  56. package/dist/codex-chatgpt-control-backend.mjs +5284 -0
  57. package/dist/codex-chatgpt-control.bundle.mjs +6013 -0
  58. package/dist/src/backend/client.d.ts +129 -0
  59. package/dist/src/backend/client.js +415 -0
  60. package/dist/src/backend/protocol.d.ts +74 -0
  61. package/dist/src/backend/protocol.js +128 -0
  62. package/dist/src/backend/session.d.ts +11 -0
  63. package/dist/src/backend/session.js +223 -0
  64. package/dist/src/backend/stdio-server.d.ts +9 -0
  65. package/dist/src/backend/stdio-server.js +88 -0
  66. package/dist/src/browser/attach.d.ts +8 -0
  67. package/dist/src/browser/attach.js +456 -0
  68. package/dist/src/browser/clipboard.d.ts +2 -0
  69. package/dist/src/browser/clipboard.js +26 -0
  70. package/dist/src/browser/downloads.d.ts +7 -0
  71. package/dist/src/browser/downloads.js +29 -0
  72. package/dist/src/browser/page-state.d.ts +17 -0
  73. package/dist/src/browser/page-state.js +66 -0
  74. package/dist/src/client.d.ts +167 -0
  75. package/dist/src/client.js +666 -0
  76. package/dist/src/commands/confirmations.d.ts +9 -0
  77. package/dist/src/commands/confirmations.js +33 -0
  78. package/dist/src/commands/context.d.ts +2 -0
  79. package/dist/src/commands/context.js +32 -0
  80. package/dist/src/commands/doctor.d.ts +16 -0
  81. package/dist/src/commands/doctor.js +120 -0
  82. package/dist/src/commands/files.d.ts +4 -0
  83. package/dist/src/commands/files.js +314 -0
  84. package/dist/src/commands/helpers.d.ts +16 -0
  85. package/dist/src/commands/helpers.js +128 -0
  86. package/dist/src/commands/messages.d.ts +16 -0
  87. package/dist/src/commands/messages.js +538 -0
  88. package/dist/src/commands/modes.d.ts +9 -0
  89. package/dist/src/commands/modes.js +323 -0
  90. package/dist/src/commands/output.d.ts +5 -0
  91. package/dist/src/commands/output.js +31 -0
  92. package/dist/src/commands/registry.d.ts +17 -0
  93. package/dist/src/commands/registry.js +275 -0
  94. package/dist/src/commands/reports.d.ts +14 -0
  95. package/dist/src/commands/reports.js +47 -0
  96. package/dist/src/commands/response-actions.d.ts +2 -0
  97. package/dist/src/commands/response-actions.js +141 -0
  98. package/dist/src/commands/sequence.d.ts +9 -0
  99. package/dist/src/commands/sequence.js +228 -0
  100. package/dist/src/commands/session.d.ts +2 -0
  101. package/dist/src/commands/session.js +25 -0
  102. package/dist/src/commands/threads.d.ts +6 -0
  103. package/dist/src/commands/threads.js +300 -0
  104. package/dist/src/dom/fixtures.d.ts +1 -0
  105. package/dist/src/dom/fixtures.js +8 -0
  106. package/dist/src/dom/menus.d.ts +8 -0
  107. package/dist/src/dom/menus.js +40 -0
  108. package/dist/src/dom/message-format.d.ts +30 -0
  109. package/dist/src/dom/message-format.js +593 -0
  110. package/dist/src/dom/messages.d.ts +40 -0
  111. package/dist/src/dom/messages.js +127 -0
  112. package/dist/src/dom/selectors.d.ts +20 -0
  113. package/dist/src/dom/selectors.js +72 -0
  114. package/dist/src/dom/visible-text.d.ts +5 -0
  115. package/dist/src/dom/visible-text.js +27 -0
  116. package/dist/src/errors.d.ts +32 -0
  117. package/dist/src/errors.js +127 -0
  118. package/dist/src/index.d.ts +34 -0
  119. package/dist/src/index.js +34 -0
  120. package/dist/src/logger.d.ts +15 -0
  121. package/dist/src/logger.js +25 -0
  122. package/dist/src/runner/agent.d.ts +2 -0
  123. package/dist/src/runner/agent.js +17 -0
  124. package/dist/src/runner/index.d.ts +7 -0
  125. package/dist/src/runner/index.js +7 -0
  126. package/dist/src/runner/interruptions.d.ts +3 -0
  127. package/dist/src/runner/interruptions.js +65 -0
  128. package/dist/src/runner/responses.d.ts +30 -0
  129. package/dist/src/runner/responses.js +171 -0
  130. package/dist/src/runner/result.d.ts +3 -0
  131. package/dist/src/runner/result.js +128 -0
  132. package/dist/src/runner/resume.d.ts +11 -0
  133. package/dist/src/runner/resume.js +26 -0
  134. package/dist/src/runner/stream.d.ts +13 -0
  135. package/dist/src/runner/stream.js +66 -0
  136. package/dist/src/runner/types.d.ts +264 -0
  137. package/dist/src/runner/types.js +1 -0
  138. package/dist/src/safety/blockers.d.ts +7 -0
  139. package/dist/src/safety/blockers.js +60 -0
  140. package/dist/src/safety/redaction.d.ts +2 -0
  141. package/dist/src/safety/redaction.js +18 -0
  142. package/dist/src/safety/report-redaction.d.ts +8 -0
  143. package/dist/src/safety/report-redaction.js +74 -0
  144. package/dist/src/safety/risk.d.ts +26 -0
  145. package/dist/src/safety/risk.js +28 -0
  146. package/dist/src/scripts/backend-server.d.ts +2 -0
  147. package/dist/src/scripts/backend-server.js +7 -0
  148. package/dist/src/scripts/check-parity-suite.d.ts +1 -0
  149. package/dist/src/scripts/check-parity-suite.js +10 -0
  150. package/dist/src/scripts/continue-thread.d.ts +27 -0
  151. package/dist/src/scripts/continue-thread.js +388 -0
  152. package/dist/src/scripts/live-smoke/harness.d.ts +11 -0
  153. package/dist/src/scripts/live-smoke/harness.js +151 -0
  154. package/dist/src/scripts/live-smoke/scenarios.d.ts +3 -0
  155. package/dist/src/scripts/live-smoke/scenarios.js +648 -0
  156. package/dist/src/scripts/live-smoke/types.d.ts +53 -0
  157. package/dist/src/scripts/live-smoke/types.js +1 -0
  158. package/dist/src/scripts/live-smoke-module.d.ts +3 -0
  159. package/dist/src/scripts/live-smoke-module.js +2 -0
  160. package/dist/src/scripts/live-smoke.d.ts +1 -0
  161. package/dist/src/scripts/live-smoke.js +54 -0
  162. package/dist/src/scripts/smoke-attach-file.d.ts +1 -0
  163. package/dist/src/scripts/smoke-attach-file.js +39 -0
  164. package/dist/src/scripts/smoke-hi.d.ts +1 -0
  165. package/dist/src/scripts/smoke-hi.js +25 -0
  166. package/dist/src/scripts/smoke-search-open-read.d.ts +1 -0
  167. package/dist/src/scripts/smoke-search-open-read.js +41 -0
  168. package/dist/src/testing/parity-suite.d.ts +12 -0
  169. package/dist/src/testing/parity-suite.js +213 -0
  170. package/dist/src/types.d.ts +495 -0
  171. package/dist/src/types.js +1 -0
  172. package/package.json +81 -0
  173. package/references/agents-runner.md +32 -0
  174. package/references/backend-protocol.md +238 -0
  175. package/references/python-parity.md +168 -0
  176. package/references/responses-adapter.md +28 -0
  177. package/references/safety.md +14 -0
  178. package/references/streaming.md +15 -0
  179. package/references/troubleshooting.md +91 -0
@@ -0,0 +1,635 @@
1
+ {
2
+ "schemaVersion": "chatgpt.browser_control.parity_suite.v1",
3
+ "contractVersion": "0.1.0",
4
+ "surfaces": [
5
+ {
6
+ "id": "backend-protocol",
7
+ "summary": "Backend request, response, event, capability, and protocol-error envelopes.",
8
+ "fixtures": [
9
+ "backend-capabilities.json",
10
+ "backend-error-event-missing-stream-input.json",
11
+ "backend-error-missing-run-input.json",
12
+ "backend-runner-plan-request.json",
13
+ "backend-version.json"
14
+ ],
15
+ "sourceFiles": [
16
+ "src/backend/protocol.ts",
17
+ "src/backend/session.ts",
18
+ "src/backend/client.ts"
19
+ ],
20
+ "nodeTests": [
21
+ "tests/unit/backend-protocol.test.ts",
22
+ "tests/unit/backend-dispatch.test.ts",
23
+ "tests/unit/backend-client.test.ts",
24
+ "tests/unit/backend-stdio.test.ts",
25
+ "tests/unit/backend-conformance.test.ts"
26
+ ],
27
+ "pythonTests": [
28
+ "tests/test_backend_client.py",
29
+ "tests/test_backend_transport.py",
30
+ "tests/test_transport_sidecar.py",
31
+ "tests/test_cross_language_conformance.py",
32
+ "tests/test_live_backend_smoke.py"
33
+ ],
34
+ "docs": [
35
+ "references/backend-protocol.md",
36
+ "references/python-parity.md"
37
+ ]
38
+ },
39
+ {
40
+ "id": "command-discovery",
41
+ "summary": "Command registry, descriptors, help text, and source-free command discovery.",
42
+ "fixtures": [
43
+ "command-descriptors.json",
44
+ "describe-runner-run.json",
45
+ "help-root.json"
46
+ ],
47
+ "sourceFiles": [
48
+ "src/commands/registry.ts",
49
+ "src/client.ts",
50
+ "src/backend/session.ts"
51
+ ],
52
+ "nodeTests": [
53
+ "tests/unit/client.test.ts",
54
+ "tests/unit/backend-dispatch.test.ts",
55
+ "tests/unit/backend-conformance.test.ts"
56
+ ],
57
+ "pythonTests": [
58
+ "tests/test_commands.py",
59
+ "tests/test_async_client.py",
60
+ "tests/test_cross_language_conformance.py"
61
+ ],
62
+ "docs": [
63
+ "references/backend-protocol.md",
64
+ "references/python-parity.md",
65
+ "../../README.md"
66
+ ]
67
+ },
68
+ {
69
+ "id": "runner-agent-plans",
70
+ "summary": "Agents-style runner planning, instruction modes, full agent config, files, modes, and named plans.",
71
+ "fixtures": [
72
+ "named-plan-two-turn.json",
73
+ "runner-full-agent-config.json",
74
+ "runner-input-items-and-files-plan.json",
75
+ "runner-metadata-only-plan.json",
76
+ "runner-visible-prefix-plan.json",
77
+ "runner-visible-setup-plan.json"
78
+ ],
79
+ "sourceFiles": [
80
+ "src/client.ts",
81
+ "src/runner/types.ts",
82
+ "src/runner/agent.ts",
83
+ "src/commands/sequence.ts"
84
+ ],
85
+ "nodeTests": [
86
+ "tests/unit/runner.test.ts",
87
+ "tests/unit/runner-types.test.ts",
88
+ "tests/unit/sequence.test.ts",
89
+ "tests/unit/backend-conformance.test.ts"
90
+ ],
91
+ "pythonTests": [
92
+ "tests/test_agent.py",
93
+ "tests/test_runner.py",
94
+ "tests/test_runner_api.py",
95
+ "tests/test_cross_language_conformance.py",
96
+ "tests/test_parity_snapshots.py"
97
+ ],
98
+ "docs": [
99
+ "references/agents-runner.md",
100
+ "references/backend-protocol.md",
101
+ "references/python-parity.md"
102
+ ]
103
+ },
104
+ {
105
+ "id": "runner-results-streams",
106
+ "summary": "Run results, blockers, reports, structured output parsing, and milestone streams.",
107
+ "fixtures": [
108
+ "output-json-parse-success.json",
109
+ "run-basic-success.json",
110
+ "run-browser-bridge-blocker.json",
111
+ "run-file-attach-success.json",
112
+ "run-report-redacted.json",
113
+ "run-selector-drift-blocker.json",
114
+ "run-timeout-partial.json",
115
+ "run-two-turn-success.json",
116
+ "run-upload-permission-blocker.json",
117
+ "runner-budget-blocker.json",
118
+ "stream-basic.ndjson",
119
+ "stream-blocked.ndjson",
120
+ "stream-submitted-completed.ndjson"
121
+ ],
122
+ "sourceFiles": [
123
+ "src/client.ts",
124
+ "src/runner/result.ts",
125
+ "src/runner/stream.ts",
126
+ "src/runner/interruptions.ts",
127
+ "src/backend/session.ts"
128
+ ],
129
+ "nodeTests": [
130
+ "tests/unit/runner.test.ts",
131
+ "tests/unit/stream.test.ts",
132
+ "tests/unit/interruptions.test.ts",
133
+ "tests/unit/backend-stdio.test.ts",
134
+ "tests/unit/backend-conformance.test.ts"
135
+ ],
136
+ "pythonTests": [
137
+ "tests/test_runner.py",
138
+ "tests/test_runner_streamed.py",
139
+ "tests/test_streaming.py",
140
+ "tests/test_models_conformance.py",
141
+ "tests/test_cross_language_conformance.py"
142
+ ],
143
+ "docs": [
144
+ "references/agents-runner.md",
145
+ "references/streaming.md",
146
+ "references/python-parity.md"
147
+ ]
148
+ },
149
+ {
150
+ "id": "responses-adapter",
151
+ "summary": "Responses-shaped browser-control adapter and unsupported API-only field handling.",
152
+ "fixtures": [
153
+ "responses-basic-success.json",
154
+ "responses-hidden-instructions-unsupported.json",
155
+ "responses-unknown-field-unsupported.json",
156
+ "responses-unsupported-previous-response-id.json",
157
+ "responses-unsupported-temperature.json"
158
+ ],
159
+ "sourceFiles": [
160
+ "src/runner/responses.ts",
161
+ "src/client.ts",
162
+ "src/backend/session.ts"
163
+ ],
164
+ "nodeTests": [
165
+ "tests/unit/responses-adapter.test.ts",
166
+ "tests/unit/backend-dispatch.test.ts",
167
+ "tests/unit/backend-conformance.test.ts"
168
+ ],
169
+ "pythonTests": [
170
+ "tests/test_responses.py",
171
+ "tests/test_async_client.py",
172
+ "tests/test_cross_language_conformance.py",
173
+ "tests/test_models_complete.py"
174
+ ],
175
+ "docs": [
176
+ "references/responses-adapter.md",
177
+ "references/python-parity.md",
178
+ "../../README.md"
179
+ ]
180
+ },
181
+ {
182
+ "id": "workflows-primitives-diagnostics",
183
+ "summary": "High-level workflows, browser primitives, named macros, and doctor diagnostics.",
184
+ "fixtures": [
185
+ "doctor-bridge-upload.json",
186
+ "primitive-bootstrap-blocker.json",
187
+ "workflow-ask-success.json"
188
+ ],
189
+ "sourceFiles": [
190
+ "src/client.ts",
191
+ "src/commands/sequence.ts",
192
+ "src/commands/session.ts",
193
+ "src/commands/threads.ts",
194
+ "src/commands/messages.ts",
195
+ "src/commands/files.ts",
196
+ "src/commands/modes.ts",
197
+ "src/commands/response-actions.ts",
198
+ "src/commands/doctor.ts"
199
+ ],
200
+ "nodeTests": [
201
+ "tests/unit/client.test.ts",
202
+ "tests/unit/sequence.test.ts",
203
+ "tests/unit/messages.test.ts",
204
+ "tests/unit/files.test.ts",
205
+ "tests/unit/modes.test.ts",
206
+ "tests/unit/backend-conformance.test.ts"
207
+ ],
208
+ "pythonTests": [
209
+ "tests/test_workflows.py",
210
+ "tests/test_primitives.py",
211
+ "tests/test_commands.py",
212
+ "tests/test_thread_entrypoint.py",
213
+ "tests/test_async_client.py"
214
+ ],
215
+ "docs": [
216
+ "references/backend-protocol.md",
217
+ "references/troubleshooting.md",
218
+ "references/python-parity.md",
219
+ "../../README.md"
220
+ ]
221
+ },
222
+ {
223
+ "id": "reports-redaction",
224
+ "summary": "Redacted reports, report summaries, and sensitive-output handling.",
225
+ "fixtures": [
226
+ "report-redaction-default.json",
227
+ "reports-create-redacted.json",
228
+ "reports-summarize-redacted.json"
229
+ ],
230
+ "sourceFiles": [
231
+ "src/commands/reports.ts",
232
+ "src/safety/report-redaction.ts",
233
+ "src/safety/redaction.ts",
234
+ "src/client.ts"
235
+ ],
236
+ "nodeTests": [
237
+ "tests/unit/client.test.ts",
238
+ "tests/unit/safety.test.ts",
239
+ "tests/unit/live-smoke-harness.test.ts",
240
+ "tests/unit/backend-conformance.test.ts"
241
+ ],
242
+ "pythonTests": [
243
+ "tests/test_reports.py",
244
+ "tests/test_models_complete.py",
245
+ "tests/test_cross_language_conformance.py",
246
+ "tests/test_async_client.py"
247
+ ],
248
+ "docs": [
249
+ "references/safety.md",
250
+ "references/python-parity.md",
251
+ "../../README.md"
252
+ ]
253
+ }
254
+ ],
255
+ "backendCommands": {
256
+ "backend.version": {
257
+ "surface": "backend-protocol",
258
+ "fixtures": ["backend-version.json"],
259
+ "nodeTests": ["tests/unit/backend-dispatch.test.ts", "tests/unit/backend-protocol.test.ts"],
260
+ "pythonTests": ["tests/test_cross_language_conformance.py", "tests/test_backend_client.py"],
261
+ "docs": ["references/backend-protocol.md", "references/python-parity.md"]
262
+ },
263
+ "backend.health": {
264
+ "surface": "backend-protocol",
265
+ "fixtures": ["backend-capabilities.json"],
266
+ "nodeTests": ["tests/unit/backend-dispatch.test.ts"],
267
+ "pythonTests": ["tests/test_live_backend_smoke.py", "tests/test_backend_client.py"],
268
+ "docs": ["references/backend-protocol.md", "references/python-parity.md"]
269
+ },
270
+ "backend.capabilities": {
271
+ "surface": "backend-protocol",
272
+ "fixtures": ["backend-capabilities.json"],
273
+ "nodeTests": ["tests/unit/backend-dispatch.test.ts", "tests/unit/backend-client.test.ts"],
274
+ "pythonTests": ["tests/test_cross_language_conformance.py", "tests/test_backend_client.py"],
275
+ "docs": ["references/backend-protocol.md", "references/python-parity.md"]
276
+ },
277
+ "runner.run": {
278
+ "surface": "runner-results-streams",
279
+ "fixtures": ["run-basic-success.json", "runner-budget-blocker.json", "run-browser-bridge-blocker.json"],
280
+ "nodeTests": ["tests/unit/runner.test.ts", "tests/unit/backend-dispatch.test.ts", "tests/unit/backend-conformance.test.ts"],
281
+ "pythonTests": ["tests/test_runner.py", "tests/test_runner_api.py", "tests/test_backend_client.py", "tests/test_cross_language_conformance.py"],
282
+ "docs": ["references/agents-runner.md", "references/backend-protocol.md", "references/python-parity.md"]
283
+ },
284
+ "runner.plan": {
285
+ "surface": "runner-agent-plans",
286
+ "fixtures": ["backend-runner-plan-request.json", "runner-visible-prefix-plan.json", "runner-input-items-and-files-plan.json"],
287
+ "nodeTests": ["tests/unit/runner.test.ts", "tests/unit/backend-dispatch.test.ts", "tests/unit/backend-conformance.test.ts"],
288
+ "pythonTests": ["tests/test_runner.py", "tests/test_async_client.py", "tests/test_cross_language_conformance.py"],
289
+ "docs": ["references/agents-runner.md", "references/backend-protocol.md", "references/python-parity.md"]
290
+ },
291
+ "runner.stream": {
292
+ "surface": "runner-results-streams",
293
+ "fixtures": ["stream-blocked.ndjson", "stream-submitted-completed.ndjson"],
294
+ "nodeTests": ["tests/unit/stream.test.ts", "tests/unit/backend-stdio.test.ts", "tests/unit/backend-conformance.test.ts"],
295
+ "pythonTests": ["tests/test_runner_streamed.py", "tests/test_streaming.py", "tests/test_async_client.py", "tests/test_cross_language_conformance.py"],
296
+ "docs": ["references/streaming.md", "references/backend-protocol.md", "references/python-parity.md"]
297
+ },
298
+ "responses.create": {
299
+ "surface": "responses-adapter",
300
+ "fixtures": ["responses-basic-success.json", "responses-hidden-instructions-unsupported.json", "responses-unknown-field-unsupported.json"],
301
+ "nodeTests": ["tests/unit/responses-adapter.test.ts", "tests/unit/backend-dispatch.test.ts", "tests/unit/backend-conformance.test.ts"],
302
+ "pythonTests": ["tests/test_responses.py", "tests/test_async_client.py", "tests/test_cross_language_conformance.py"],
303
+ "docs": ["references/responses-adapter.md", "references/python-parity.md"]
304
+ },
305
+ "ask": {
306
+ "surface": "workflows-primitives-diagnostics",
307
+ "fixtures": ["workflow-ask-success.json", "command-descriptors.json"],
308
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/sequence.test.ts", "tests/unit/backend-conformance.test.ts"],
309
+ "pythonTests": ["tests/test_workflows.py", "tests/test_async_client.py"],
310
+ "docs": ["references/backend-protocol.md", "references/python-parity.md", "../../README.md"]
311
+ },
312
+ "askInThread": {
313
+ "surface": "workflows-primitives-diagnostics",
314
+ "fixtures": ["command-descriptors.json"],
315
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/sequence.test.ts"],
316
+ "pythonTests": ["tests/test_workflows.py", "tests/test_thread_entrypoint.py"],
317
+ "docs": ["references/backend-protocol.md", "references/python-parity.md", "../../README.md"]
318
+ },
319
+ "askWithFiles": {
320
+ "surface": "workflows-primitives-diagnostics",
321
+ "fixtures": ["command-descriptors.json", "run-file-attach-success.json"],
322
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/files.test.ts"],
323
+ "pythonTests": ["tests/test_workflows.py"],
324
+ "docs": ["references/backend-protocol.md", "references/python-parity.md", "../../README.md"]
325
+ },
326
+ "askAndDownload": {
327
+ "surface": "workflows-primitives-diagnostics",
328
+ "fixtures": ["command-descriptors.json"],
329
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/files.test.ts"],
330
+ "pythonTests": ["tests/test_workflows.py"],
331
+ "docs": ["references/backend-protocol.md", "references/python-parity.md", "../../README.md"]
332
+ },
333
+ "runMessages": {
334
+ "surface": "workflows-primitives-diagnostics",
335
+ "fixtures": ["command-descriptors.json", "named-plan-two-turn.json"],
336
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/sequence.test.ts"],
337
+ "pythonTests": ["tests/test_workflows.py"],
338
+ "docs": ["references/backend-protocol.md", "references/python-parity.md", "../../README.md"]
339
+ },
340
+ "openThread": {
341
+ "surface": "workflows-primitives-diagnostics",
342
+ "fixtures": ["command-descriptors.json"],
343
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/sequence.test.ts"],
344
+ "pythonTests": ["tests/test_workflows.py", "tests/test_thread_entrypoint.py"],
345
+ "docs": ["references/backend-protocol.md", "references/troubleshooting.md", "../../README.md"]
346
+ },
347
+ "readLatest": {
348
+ "surface": "workflows-primitives-diagnostics",
349
+ "fixtures": ["command-descriptors.json"],
350
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/messages.test.ts"],
351
+ "pythonTests": ["tests/test_workflows.py"],
352
+ "docs": ["references/backend-protocol.md", "references/python-parity.md", "../../README.md"]
353
+ },
354
+ "copyLatest": {
355
+ "surface": "workflows-primitives-diagnostics",
356
+ "fixtures": ["command-descriptors.json"],
357
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/messages.test.ts"],
358
+ "pythonTests": ["tests/test_workflows.py"],
359
+ "docs": ["references/backend-protocol.md", "references/python-parity.md", "../../README.md"]
360
+ },
361
+ "downloadLatest": {
362
+ "surface": "workflows-primitives-diagnostics",
363
+ "fixtures": ["command-descriptors.json"],
364
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/files.test.ts"],
365
+ "pythonTests": ["tests/test_workflows.py"],
366
+ "docs": ["references/backend-protocol.md", "references/troubleshooting.md", "../../README.md"]
367
+ },
368
+ "runPlan": {
369
+ "surface": "workflows-primitives-diagnostics",
370
+ "fixtures": ["named-plan-two-turn.json", "command-descriptors.json"],
371
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/sequence.test.ts"],
372
+ "pythonTests": ["tests/test_workflows.py", "tests/test_async_client.py"],
373
+ "docs": ["references/backend-protocol.md", "references/python-parity.md", "../../README.md"]
374
+ },
375
+ "doctor": {
376
+ "surface": "workflows-primitives-diagnostics",
377
+ "fixtures": ["doctor-bridge-upload.json", "command-descriptors.json"],
378
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/backend-dispatch.test.ts", "tests/unit/backend-conformance.test.ts"],
379
+ "pythonTests": ["tests/test_workflows.py", "tests/test_cross_language_conformance.py"],
380
+ "docs": ["references/troubleshooting.md", "references/backend-protocol.md", "references/python-parity.md"]
381
+ },
382
+ "createReport": {
383
+ "surface": "reports-redaction",
384
+ "fixtures": ["command-descriptors.json", "reports-create-redacted.json"],
385
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/safety.test.ts"],
386
+ "pythonTests": ["tests/test_workflows.py", "tests/test_reports.py"],
387
+ "docs": ["references/safety.md", "references/python-parity.md", "../../README.md"]
388
+ },
389
+ "reports.create": {
390
+ "surface": "reports-redaction",
391
+ "fixtures": ["reports-create-redacted.json"],
392
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/backend-conformance.test.ts"],
393
+ "pythonTests": ["tests/test_reports.py", "tests/test_async_client.py"],
394
+ "docs": ["references/safety.md", "references/python-parity.md"]
395
+ },
396
+ "reports.redact": {
397
+ "surface": "reports-redaction",
398
+ "fixtures": ["report-redaction-default.json"],
399
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/safety.test.ts", "tests/unit/backend-conformance.test.ts"],
400
+ "pythonTests": ["tests/test_reports.py", "tests/test_cross_language_conformance.py", "tests/test_async_client.py"],
401
+ "docs": ["references/safety.md", "references/python-parity.md"]
402
+ },
403
+ "reports.summarize": {
404
+ "surface": "reports-redaction",
405
+ "fixtures": ["reports-summarize-redacted.json"],
406
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/backend-conformance.test.ts"],
407
+ "pythonTests": ["tests/test_reports.py", "tests/test_cross_language_conformance.py"],
408
+ "docs": ["references/safety.md", "references/python-parity.md"]
409
+ },
410
+ "commands": {
411
+ "surface": "command-discovery",
412
+ "fixtures": ["command-descriptors.json"],
413
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/backend-dispatch.test.ts", "tests/unit/backend-conformance.test.ts"],
414
+ "pythonTests": ["tests/test_commands.py", "tests/test_async_client.py", "tests/test_cross_language_conformance.py"],
415
+ "docs": ["references/backend-protocol.md", "references/python-parity.md", "../../README.md"]
416
+ },
417
+ "describe": {
418
+ "surface": "command-discovery",
419
+ "fixtures": ["describe-runner-run.json"],
420
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/backend-dispatch.test.ts", "tests/unit/backend-conformance.test.ts"],
421
+ "pythonTests": ["tests/test_commands.py", "tests/test_cross_language_conformance.py"],
422
+ "docs": ["references/backend-protocol.md", "references/python-parity.md", "../../README.md"]
423
+ },
424
+ "help": {
425
+ "surface": "command-discovery",
426
+ "fixtures": ["help-root.json"],
427
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/backend-dispatch.test.ts", "tests/unit/backend-conformance.test.ts"],
428
+ "pythonTests": ["tests/test_commands.py", "tests/test_cross_language_conformance.py"],
429
+ "docs": ["references/backend-protocol.md", "references/python-parity.md", "../../README.md"]
430
+ },
431
+ "session.bootstrap": {
432
+ "surface": "workflows-primitives-diagnostics",
433
+ "fixtures": ["primitive-bootstrap-blocker.json"],
434
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/backend-conformance.test.ts"],
435
+ "pythonTests": ["tests/test_primitives.py", "tests/test_cross_language_conformance.py", "tests/test_async_client.py"],
436
+ "docs": ["references/troubleshooting.md", "references/backend-protocol.md", "references/python-parity.md"]
437
+ },
438
+ "threads.new": {
439
+ "surface": "workflows-primitives-diagnostics",
440
+ "fixtures": ["command-descriptors.json"],
441
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/runner.test.ts"],
442
+ "pythonTests": ["tests/test_primitives.py"],
443
+ "docs": ["references/backend-protocol.md", "references/troubleshooting.md", "../../README.md"]
444
+ },
445
+ "threads.search": {
446
+ "surface": "workflows-primitives-diagnostics",
447
+ "fixtures": ["command-descriptors.json"],
448
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/selectors.test.ts", "tests/unit/sequence.test.ts"],
449
+ "pythonTests": ["tests/test_primitives.py", "tests/test_thread_entrypoint.py"],
450
+ "docs": ["references/backend-protocol.md", "references/troubleshooting.md", "../../README.md"]
451
+ },
452
+ "threads.open": {
453
+ "surface": "workflows-primitives-diagnostics",
454
+ "fixtures": ["command-descriptors.json"],
455
+ "nodeTests": ["tests/unit/client.test.ts", "tests/unit/runner.test.ts", "tests/unit/sequence.test.ts"],
456
+ "pythonTests": ["tests/test_primitives.py", "tests/test_thread_entrypoint.py"],
457
+ "docs": ["references/backend-protocol.md", "references/troubleshooting.md", "../../README.md"]
458
+ },
459
+ "messages.compose": {
460
+ "surface": "workflows-primitives-diagnostics",
461
+ "fixtures": ["command-descriptors.json"],
462
+ "nodeTests": ["tests/unit/messages.test.ts", "tests/unit/client.test.ts"],
463
+ "pythonTests": ["tests/test_primitives.py"],
464
+ "docs": ["references/backend-protocol.md", "references/python-parity.md"]
465
+ },
466
+ "messages.submit": {
467
+ "surface": "workflows-primitives-diagnostics",
468
+ "fixtures": ["command-descriptors.json", "stream-submitted-completed.ndjson"],
469
+ "nodeTests": ["tests/unit/messages.test.ts", "tests/unit/stream.test.ts"],
470
+ "pythonTests": ["tests/test_primitives.py"],
471
+ "docs": ["references/backend-protocol.md", "references/streaming.md", "references/python-parity.md"]
472
+ },
473
+ "messages.ask": {
474
+ "surface": "workflows-primitives-diagnostics",
475
+ "fixtures": ["workflow-ask-success.json", "command-descriptors.json"],
476
+ "nodeTests": ["tests/unit/messages.test.ts", "tests/unit/sequence.test.ts", "tests/unit/client.test.ts"],
477
+ "pythonTests": ["tests/test_primitives.py"],
478
+ "docs": ["references/backend-protocol.md", "references/python-parity.md"]
479
+ },
480
+ "messages.wait": {
481
+ "surface": "workflows-primitives-diagnostics",
482
+ "fixtures": ["command-descriptors.json"],
483
+ "nodeTests": ["tests/unit/messages.test.ts", "tests/unit/polling.test.ts"],
484
+ "pythonTests": ["tests/test_primitives.py"],
485
+ "docs": ["references/backend-protocol.md", "references/troubleshooting.md", "references/python-parity.md"]
486
+ },
487
+ "messages.readLatest": {
488
+ "surface": "workflows-primitives-diagnostics",
489
+ "fixtures": ["command-descriptors.json", "run-basic-success.json"],
490
+ "nodeTests": ["tests/unit/messages.test.ts", "tests/unit/client.test.ts"],
491
+ "pythonTests": ["tests/test_primitives.py"],
492
+ "docs": ["references/backend-protocol.md", "references/python-parity.md"]
493
+ },
494
+ "messages.waitAndRead": {
495
+ "surface": "workflows-primitives-diagnostics",
496
+ "fixtures": ["command-descriptors.json", "workflow-ask-success.json"],
497
+ "nodeTests": ["tests/unit/messages.test.ts", "tests/unit/sequence.test.ts"],
498
+ "pythonTests": ["tests/test_primitives.py"],
499
+ "docs": ["references/backend-protocol.md", "references/python-parity.md"]
500
+ },
501
+ "files.attach": {
502
+ "surface": "workflows-primitives-diagnostics",
503
+ "fixtures": ["run-file-attach-success.json", "command-descriptors.json"],
504
+ "nodeTests": ["tests/unit/files.test.ts", "tests/unit/runner.test.ts"],
505
+ "pythonTests": ["tests/test_primitives.py"],
506
+ "docs": ["references/backend-protocol.md", "references/troubleshooting.md", "references/python-parity.md"]
507
+ },
508
+ "files.downloadLatest": {
509
+ "surface": "workflows-primitives-diagnostics",
510
+ "fixtures": ["command-descriptors.json"],
511
+ "nodeTests": ["tests/unit/files.test.ts", "tests/unit/client.test.ts"],
512
+ "pythonTests": ["tests/test_primitives.py"],
513
+ "docs": ["references/backend-protocol.md", "references/troubleshooting.md", "references/python-parity.md"]
514
+ },
515
+ "modes.set": {
516
+ "surface": "workflows-primitives-diagnostics",
517
+ "fixtures": ["command-descriptors.json"],
518
+ "nodeTests": ["tests/unit/modes.test.ts", "tests/unit/client.test.ts"],
519
+ "pythonTests": ["tests/test_primitives.py"],
520
+ "docs": ["references/backend-protocol.md", "references/troubleshooting.md"]
521
+ },
522
+ "tools.select": {
523
+ "surface": "workflows-primitives-diagnostics",
524
+ "fixtures": ["command-descriptors.json"],
525
+ "nodeTests": ["tests/unit/modes.test.ts", "tests/unit/client.test.ts"],
526
+ "pythonTests": ["tests/test_primitives.py"],
527
+ "docs": ["references/backend-protocol.md", "references/troubleshooting.md"]
528
+ },
529
+ "response.copy": {
530
+ "surface": "workflows-primitives-diagnostics",
531
+ "fixtures": ["command-descriptors.json"],
532
+ "nodeTests": ["tests/unit/messages.test.ts", "tests/unit/client.test.ts"],
533
+ "pythonTests": ["tests/test_primitives.py"],
534
+ "docs": ["references/backend-protocol.md", "references/python-parity.md"]
535
+ }
536
+ },
537
+ "gates": [
538
+ {
539
+ "id": "node.test",
540
+ "cwd": "packages/node",
541
+ "command": "npm test",
542
+ "ciRequired": true
543
+ },
544
+ {
545
+ "id": "node.build",
546
+ "cwd": "packages/node",
547
+ "command": "npm run build",
548
+ "ciRequired": true
549
+ },
550
+ {
551
+ "id": "node.bundle",
552
+ "cwd": "packages/node",
553
+ "command": "npm run bundle",
554
+ "ciRequired": true
555
+ },
556
+ {
557
+ "id": "node.bundle-live-smoke",
558
+ "cwd": "packages/node",
559
+ "command": "npm run bundle:live-smoke",
560
+ "ciRequired": true
561
+ },
562
+ {
563
+ "id": "node.bundle-backend",
564
+ "cwd": "packages/node",
565
+ "command": "npm run bundle:backend",
566
+ "ciRequired": true
567
+ },
568
+ {
569
+ "id": "node.contract-validate",
570
+ "cwd": "packages/node",
571
+ "command": "npm run contract:validate",
572
+ "ciRequired": true
573
+ },
574
+ {
575
+ "id": "node.parity-fixtures",
576
+ "cwd": "packages/node",
577
+ "command": "npm run parity:fixtures",
578
+ "ciRequired": true
579
+ },
580
+ {
581
+ "id": "node.parity-suite",
582
+ "cwd": "packages/node",
583
+ "command": "npm run parity:suite",
584
+ "ciRequired": true
585
+ },
586
+ {
587
+ "id": "node.backend-conformance",
588
+ "cwd": "packages/node",
589
+ "command": "npm run test:backend-conformance",
590
+ "ciRequired": true
591
+ },
592
+ {
593
+ "id": "python.install-dev",
594
+ "cwd": "packages/python",
595
+ "command": "python -m pip install -e \".[dev]\"",
596
+ "ciRequired": true
597
+ },
598
+ {
599
+ "id": "python.unittest",
600
+ "cwd": "packages/python",
601
+ "command": "python -m unittest discover -s tests",
602
+ "ciRequired": true
603
+ },
604
+ {
605
+ "id": "python.compile-src",
606
+ "cwd": "packages/python",
607
+ "command": "python -m compileall -q src",
608
+ "ciRequired": true
609
+ },
610
+ {
611
+ "id": "python.compile-examples",
612
+ "cwd": "packages/python",
613
+ "command": "python -m compileall -q examples",
614
+ "ciRequired": true
615
+ },
616
+ {
617
+ "id": "python.pyright",
618
+ "cwd": "packages/python",
619
+ "command": "python -m pyright --pythonpath \"$(which python)\" src tests",
620
+ "ciRequired": true
621
+ },
622
+ {
623
+ "id": "python.ordinary-shell-smoke",
624
+ "cwd": "packages/python",
625
+ "command": "python scripts/live_smoke.py --mode ordinary-shell",
626
+ "ciRequired": true
627
+ },
628
+ {
629
+ "id": "node.audit",
630
+ "cwd": "packages/node",
631
+ "command": "npm audit",
632
+ "ciRequired": false
633
+ }
634
+ ]
635
+ }