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,167 @@
1
+ import type { AskArgs, AttachFilesArgs, BootstrapArgs, CommandResult, CopyResponseArgs, DownloadLatestArgs, NewThreadArgs, OpenThreadArgs, ReadLatestArgs, RuntimeEnv, SearchThreadsArgs, SelectToolArgs, SequencePlan, SetModeArgs, ThreadTarget, WaitArgs } from "./types.js";
2
+ import { type DoctorArgs, type DoctorReport } from "./commands/doctor.js";
3
+ import { type RunReportData, type RunReportOptions } from "./commands/reports.js";
4
+ import { type CommandDescriptor } from "./commands/registry.js";
5
+ import type { ChatGPTAgent, ChatGPTAgentConfig, ChatGPTResponse, ChatGPTRunner, ChatGPTRunInput, ChatGPTRunResult } from "./runner/types.js";
6
+ import { type ChatGPTResponsesCreateArgs } from "./runner/responses.js";
7
+ import { type ReportRedactionOptions } from "./safety/report-redaction.js";
8
+ export type ChatGPTClientOptions = RuntimeEnv & {
9
+ defaults?: {
10
+ mode?: SetModeArgs;
11
+ wait?: boolean | WaitArgs;
12
+ read?: boolean | ReadLatestArgs;
13
+ existingTab?: BootstrapArgs["existingTab"];
14
+ preferExistingTab?: boolean;
15
+ };
16
+ limits?: Partial<RunLimits>;
17
+ reporting?: RunReportOptions;
18
+ };
19
+ export type RunLimits = {
20
+ maxPromptsPerRun: number;
21
+ maxThreadsOpenedPerRun: number;
22
+ maxMessagesReadPerRun: number;
23
+ maxReportBytesPerRun: number;
24
+ maxReportPreviewChars: number;
25
+ };
26
+ export type ThreadSelector = {
27
+ type: "new";
28
+ } | {
29
+ type: "current";
30
+ } | {
31
+ type: "url";
32
+ url: string;
33
+ } | {
34
+ type: "conversationId";
35
+ conversationId: string;
36
+ } | {
37
+ type: "conversation_id";
38
+ conversationId: string;
39
+ } | {
40
+ type: "search";
41
+ query: string;
42
+ select?: "first" | {
43
+ index: number;
44
+ } | {
45
+ title: string;
46
+ };
47
+ limit?: number;
48
+ } | {
49
+ type: "title";
50
+ title: string;
51
+ };
52
+ export type WorkflowThread = ThreadTarget | ThreadSelector;
53
+ export type FileInput = string | {
54
+ path: string;
55
+ };
56
+ export type AskWorkflowArgs = {
57
+ prompt: string;
58
+ thread?: WorkflowThread;
59
+ existingTab?: BootstrapArgs["existingTab"];
60
+ preferExistingTab?: boolean;
61
+ mode?: SetModeArgs;
62
+ tools?: SelectToolArgs[];
63
+ files?: FileInput[];
64
+ attachments?: FileInput[];
65
+ wait?: boolean | WaitArgs;
66
+ read?: boolean | ReadLatestArgs;
67
+ download?: DownloadLatestArgs;
68
+ report?: boolean | RunReportOptions;
69
+ };
70
+ export type AskInThreadWorkflowArgs = Omit<AskWorkflowArgs, "thread"> & {
71
+ thread: Exclude<WorkflowThread, {
72
+ type: "new";
73
+ }>;
74
+ };
75
+ export type AskWithFilesWorkflowArgs = Omit<AskWorkflowArgs, "files" | "attachments"> & {
76
+ files: FileInput[];
77
+ };
78
+ export type AskAndDownloadWorkflowArgs = AskWorkflowArgs & {
79
+ download: DownloadLatestArgs;
80
+ };
81
+ export type RunMessagesArgs = {
82
+ thread?: WorkflowThread;
83
+ existingTab?: BootstrapArgs["existingTab"];
84
+ preferExistingTab?: boolean;
85
+ mode?: SetModeArgs;
86
+ messages: Array<{
87
+ id?: string;
88
+ prompt: string;
89
+ wait?: boolean | WaitArgs;
90
+ read?: boolean | ReadLatestArgs;
91
+ }>;
92
+ report?: boolean | RunReportOptions;
93
+ };
94
+ export type NamedWorkflowInvocation = {
95
+ name: string;
96
+ input?: Record<string, unknown>;
97
+ report?: boolean | RunReportOptions;
98
+ };
99
+ export type ChatGPTClient = {
100
+ agent<TOutput = string>(config: ChatGPTAgentConfig<TOutput>): ChatGPTAgent<TOutput>;
101
+ run<TOutput = string>(agent: ChatGPTAgent<TOutput>, input: ChatGPTRunInput): Promise<ChatGPTRunResult<TOutput>>;
102
+ runner: ChatGPTRunner;
103
+ responses: {
104
+ create(args: ChatGPTResponsesCreateArgs | Record<string, unknown>): Promise<ChatGPTResponse>;
105
+ };
106
+ ask(args: AskWorkflowArgs): Promise<CommandResult<unknown>>;
107
+ askInThread(args: AskInThreadWorkflowArgs): Promise<CommandResult<unknown>>;
108
+ askWithFiles(args: AskWithFilesWorkflowArgs): Promise<CommandResult<unknown>>;
109
+ askAndDownload(args: AskAndDownloadWorkflowArgs): Promise<CommandResult<unknown>>;
110
+ runMessages(args: RunMessagesArgs): Promise<CommandResult<unknown>>;
111
+ openThread(thread: WorkflowThread): Promise<CommandResult<unknown>>;
112
+ readLatest(args?: ReadLatestArgs): Promise<CommandResult<unknown>>;
113
+ copyLatest(args?: CopyResponseArgs): Promise<CommandResult<unknown>>;
114
+ downloadLatest(args: DownloadLatestArgs): Promise<CommandResult<unknown>>;
115
+ runPlan(plan: SequencePlan | NamedWorkflowInvocation): Promise<CommandResult<unknown>>;
116
+ doctor(args?: DoctorArgs): Promise<CommandResult<DoctorReport>>;
117
+ createReport(result: CommandResult<unknown>, args?: RunReportOptions): Promise<CommandResult<RunReportData>>;
118
+ reports: {
119
+ create(result: CommandResult<unknown>, args?: RunReportOptions): Promise<CommandResult<RunReportData>>;
120
+ redact(value: unknown, args?: ReportRedactionOptions): Promise<CommandResult<unknown>>;
121
+ summarize(result: CommandResult<unknown>, args?: ReportRedactionOptions): Promise<CommandResult<unknown>>;
122
+ };
123
+ plan(name: string, args?: unknown): SequencePlan | undefined;
124
+ commands(filter?: {
125
+ layer?: CommandDescriptor["layer"];
126
+ }): CommandDescriptor[];
127
+ describe(name: string): CommandDescriptor | undefined;
128
+ help(topic?: string): string;
129
+ session: {
130
+ bootstrap(args?: BootstrapArgs): Promise<CommandResult<unknown>>;
131
+ };
132
+ threads: {
133
+ "new"(args?: NewThreadArgs): Promise<CommandResult<unknown>>;
134
+ search(args: SearchThreadsArgs): Promise<CommandResult<unknown>>;
135
+ open(args: OpenThreadArgs): Promise<CommandResult<unknown>>;
136
+ };
137
+ messages: {
138
+ compose(args: {
139
+ text: string;
140
+ mode?: "replace" | "append";
141
+ timeoutMs?: number;
142
+ }): Promise<CommandResult<unknown>>;
143
+ submit(args?: {
144
+ text?: string;
145
+ previousTurnCount?: number;
146
+ timeoutMs?: number;
147
+ }): Promise<CommandResult<unknown>>;
148
+ ask(args: AskArgs): Promise<CommandResult<unknown>>;
149
+ wait(args?: WaitArgs): Promise<CommandResult<unknown>>;
150
+ readLatest(args?: ReadLatestArgs): Promise<CommandResult<unknown>>;
151
+ waitAndRead(args?: WaitArgs & ReadLatestArgs): Promise<CommandResult<unknown>>;
152
+ };
153
+ files: {
154
+ attach(args: AttachFilesArgs): Promise<CommandResult<unknown>>;
155
+ downloadLatest(args: DownloadLatestArgs): Promise<CommandResult<unknown>>;
156
+ };
157
+ modes: {
158
+ set(args: SetModeArgs): Promise<CommandResult<unknown>>;
159
+ };
160
+ tools: {
161
+ select(args: SelectToolArgs): Promise<CommandResult<unknown>>;
162
+ };
163
+ response: {
164
+ copy(args?: CopyResponseArgs): Promise<CommandResult<unknown>>;
165
+ };
166
+ };
167
+ export declare function createChatGPT(options?: ChatGPTClientOptions): ChatGPTClient;