cueline 0.1.6 → 0.2.0
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/CHANGELOG.md +50 -0
- package/README.ja.md +77 -30
- package/README.ko.md +77 -30
- package/README.md +71 -29
- package/README.zh-CN.md +77 -30
- package/README.zh-TW.md +74 -29
- package/config/routing.schema.json +3 -0
- package/dist/src/api-caller-work.js +58 -14
- package/dist/src/api-caller-work.js.map +1 -1
- package/dist/src/api-contracts.d.ts +56 -0
- package/dist/src/api-controller-handoff.d.ts +5 -1
- package/dist/src/api-controller-handoff.js +178 -38
- package/dist/src/api-controller-handoff.js.map +1 -1
- package/dist/src/api-run-verification.d.ts +3 -0
- package/dist/src/api-run-verification.js +174 -0
- package/dist/src/api-run-verification.js.map +1 -0
- package/dist/src/api-runtime-lifecycle.d.ts +6 -1
- package/dist/src/api-runtime-lifecycle.js +97 -8
- package/dist/src/api-runtime-lifecycle.js.map +1 -1
- package/dist/src/api.d.ts +26 -4
- package/dist/src/api.js +111 -40
- package/dist/src/api.js.map +1 -1
- package/dist/src/browser/browser-adapter.d.ts +41 -0
- package/dist/src/browser/codex-iab/bootstrap.d.ts +21 -0
- package/dist/src/browser/codex-iab/bootstrap.js +174 -9
- package/dist/src/browser/codex-iab/bootstrap.js.map +1 -1
- package/dist/src/browser/codex-iab/chatgpt-client.d.ts +3 -0
- package/dist/src/browser/codex-iab/chatgpt-client.js +216 -70
- package/dist/src/browser/codex-iab/chatgpt-client.js.map +1 -1
- package/dist/src/browser/codex-iab/probe.d.ts +36 -0
- package/dist/src/browser/codex-iab/probe.js +217 -0
- package/dist/src/browser/codex-iab/probe.js.map +1 -0
- package/dist/src/browser/codex-iab/recovery-evidence.d.ts +1 -1
- package/dist/src/browser/codex-iab/recovery-evidence.js +7 -10
- package/dist/src/browser/codex-iab/recovery-evidence.js.map +1 -1
- package/dist/src/browser/codex-iab/selectors.d.ts +1 -0
- package/dist/src/browser/codex-iab/selectors.js +1 -0
- package/dist/src/browser/codex-iab/selectors.js.map +1 -1
- package/dist/src/browser/codex-iab/send-button.d.ts +5 -0
- package/dist/src/browser/codex-iab/send-button.js +62 -0
- package/dist/src/browser/codex-iab/send-button.js.map +1 -0
- package/dist/src/browser/codex-iab/submission-url.js +6 -15
- package/dist/src/browser/codex-iab/submission-url.js.map +1 -1
- package/dist/src/browser/codex-iab/tab-discovery.js +45 -12
- package/dist/src/browser/codex-iab/tab-discovery.js.map +1 -1
- package/dist/src/browser/codex-iab/timing-options.d.ts +1 -0
- package/dist/src/browser/codex-iab/timing-options.js +5 -0
- package/dist/src/browser/codex-iab/timing-options.js.map +1 -0
- package/dist/src/cli/health-commands.d.ts +2 -0
- package/dist/src/cli/health-commands.js +265 -0
- package/dist/src/cli/health-commands.js.map +1 -0
- package/dist/src/cli/io.d.ts +4 -0
- package/dist/src/cli/io.js +2 -0
- package/dist/src/cli/io.js.map +1 -0
- package/dist/src/cli/main.d.ts +1 -5
- package/dist/src/cli/main.js +187 -84
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/observation-commands.d.ts +2 -0
- package/dist/src/cli/observation-commands.js +350 -0
- package/dist/src/cli/observation-commands.js.map +1 -0
- package/dist/src/cli/run-status-view.d.ts +87 -0
- package/dist/src/cli/run-status-view.js +121 -0
- package/dist/src/cli/run-status-view.js.map +1 -0
- package/dist/src/core/controller-command-execution.d.ts +2 -2
- package/dist/src/core/controller-command-execution.js +82 -16
- package/dist/src/core/controller-command-execution.js.map +1 -1
- package/dist/src/core/controller-conversation-archive.d.ts +11 -0
- package/dist/src/core/controller-conversation-archive.js +109 -0
- package/dist/src/core/controller-conversation-archive.js.map +1 -0
- package/dist/src/core/controller-loop.d.ts +7 -1
- package/dist/src/core/controller-loop.js +136 -23
- package/dist/src/core/controller-loop.js.map +1 -1
- package/dist/src/core/controller-turn.d.ts +21 -3
- package/dist/src/core/controller-turn.js +182 -41
- package/dist/src/core/controller-turn.js.map +1 -1
- package/dist/src/core/controller-types.d.ts +2 -0
- package/dist/src/core/conversation-url.d.ts +3 -0
- package/dist/src/core/conversation-url.js +34 -0
- package/dist/src/core/conversation-url.js.map +1 -0
- package/dist/src/core/run-status.d.ts +17 -2
- package/dist/src/core/run-status.js +64 -25
- package/dist/src/core/run-status.js.map +1 -1
- package/dist/src/core/state-machine.d.ts +36 -1
- package/dist/src/core/state-machine.js +242 -13
- package/dist/src/core/state-machine.js.map +1 -1
- package/dist/src/core/timing.d.ts +9 -0
- package/dist/src/core/timing.js +22 -0
- package/dist/src/core/timing.js.map +1 -0
- package/dist/src/diagnostics/run-doctor.d.ts +22 -0
- package/dist/src/diagnostics/run-doctor.js +197 -0
- package/dist/src/diagnostics/run-doctor.js.map +1 -0
- package/dist/src/jobs/status.d.ts +5 -2
- package/dist/src/jobs/status.js +172 -12
- package/dist/src/jobs/status.js.map +1 -1
- package/dist/src/jobs/supervisor.js +57 -8
- package/dist/src/jobs/supervisor.js.map +1 -1
- package/dist/src/observation/run-diff.d.ts +39 -0
- package/dist/src/observation/run-diff.js +67 -0
- package/dist/src/observation/run-diff.js.map +1 -0
- package/dist/src/observation/run-graph.d.ts +17 -0
- package/dist/src/observation/run-graph.js +77 -0
- package/dist/src/observation/run-graph.js.map +1 -0
- package/dist/src/observation/run-handoff.d.ts +86 -0
- package/dist/src/observation/run-handoff.js +309 -0
- package/dist/src/observation/run-handoff.js.map +1 -0
- package/dist/src/observation/run-status-at.d.ts +41 -0
- package/dist/src/observation/run-status-at.js +65 -0
- package/dist/src/observation/run-status-at.js.map +1 -0
- package/dist/src/observation/run-timeline.d.ts +32 -0
- package/dist/src/observation/run-timeline.js +279 -0
- package/dist/src/observation/run-timeline.js.map +1 -0
- package/dist/src/observation/run-watch.d.ts +15 -0
- package/dist/src/observation/run-watch.js +82 -0
- package/dist/src/observation/run-watch.js.map +1 -0
- package/dist/src/protocol/limits.d.ts +3 -0
- package/dist/src/protocol/limits.js +4 -0
- package/dist/src/protocol/limits.js.map +1 -0
- package/dist/src/protocol/lint-command.d.ts +24 -0
- package/dist/src/protocol/lint-command.js +210 -0
- package/dist/src/protocol/lint-command.js.map +1 -0
- package/dist/src/protocol/parse-command.js +4 -0
- package/dist/src/protocol/parse-command.js.map +1 -1
- package/dist/src/protocol/types.d.ts +12 -0
- package/dist/src/protocol/validate-command.js +76 -3
- package/dist/src/protocol/validate-command.js.map +1 -1
- package/dist/src/router/config-loader.js +23 -2
- package/dist/src/router/config-loader.js.map +1 -1
- package/dist/src/router/explain.d.ts +28 -0
- package/dist/src/router/explain.js +86 -0
- package/dist/src/router/explain.js.map +1 -0
- package/dist/src/router/resolver.d.ts +2 -1
- package/dist/src/router/resolver.js +11 -6
- package/dist/src/router/resolver.js.map +1 -1
- package/dist/src/runners/process-runner.js +55 -12
- package/dist/src/runners/process-runner.js.map +1 -1
- package/dist/src/runners/runner-adapter.d.ts +2 -0
- package/dist/src/runners/runner-adapter.js.map +1 -1
- package/dist/src/state/atomic-write.d.ts +6 -0
- package/dist/src/state/atomic-write.js +43 -2
- package/dist/src/state/atomic-write.js.map +1 -1
- package/dist/src/state/cancellation.js +38 -4
- package/dist/src/state/cancellation.js.map +1 -1
- package/dist/src/state/event-log.js +5 -4
- package/dist/src/state/event-log.js.map +1 -1
- package/dist/src/state/private-directory.d.ts +5 -0
- package/dist/src/state/private-directory.js +37 -0
- package/dist/src/state/private-directory.js.map +1 -0
- package/dist/src/state/runtime-lease.js +19 -39
- package/dist/src/state/runtime-lease.js.map +1 -1
- package/dist/src/state/runtime-record-validation.d.ts +6 -0
- package/dist/src/state/runtime-record-validation.js +44 -0
- package/dist/src/state/runtime-record-validation.js.map +1 -0
- package/dist/src/state/runtime-retirement.js +58 -18
- package/dist/src/state/runtime-retirement.js.map +1 -1
- package/dist/src/state/runtime-takeover-intent.js +2 -2
- package/dist/src/state/runtime-takeover-intent.js.map +1 -1
- package/dist/src/state/store.d.ts +1 -0
- package/dist/src/state/store.js +12 -6
- package/dist/src/state/store.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/docs/architecture.md +4 -4
- package/docs/assets/README.md +3 -1
- package/docs/assets/cueline-architecture-en.svg +63 -0
- package/docs/assets/cueline-architecture-ja.svg +63 -0
- package/docs/assets/cueline-architecture-ko.svg +63 -0
- package/docs/assets/cueline-architecture-zh-CN.svg +63 -0
- package/docs/assets/cueline-architecture-zh-TW.svg +63 -0
- package/docs/assets/cueline-states-en.svg +50 -0
- package/docs/assets/cueline-states-ja.svg +48 -0
- package/docs/assets/cueline-states-ko.svg +48 -0
- package/docs/assets/cueline-states-zh-CN.svg +48 -0
- package/docs/assets/cueline-states-zh-TW.svg +48 -0
- package/docs/compatibility.md +1 -1
- package/docs/controller-protocol.md +44 -7
- package/docs/experiments/protocol-lint.md +40 -0
- package/docs/experiments/run-doctor.md +39 -0
- package/docs/experiments/run-handoff.md +39 -0
- package/docs/experiments/run-timeline.md +35 -0
- package/docs/experiments/run-watch.md +31 -0
- package/docs/multi-model-routing.md +256 -0
- package/docs/runner-contract.md +4 -3
- package/docs/state-and-recovery.md +45 -5
- package/package.json +1 -1
- package/schemas/controller-command.schema.json +89 -4
- package/skills/cueline/SKILL.md +13 -7
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import { isExactChatGptConversationUrl as isConversationUrl, sameChatGptConversationUrl, } from "../../core/conversation-url.js";
|
|
1
2
|
import { CueLineError } from "../../core/errors.js";
|
|
3
|
+
import { commandHash } from "../../core/ids.js";
|
|
2
4
|
import { readPageChatState, readPageComposerState, resolveIabBrowser, } from "./bootstrap.js";
|
|
3
|
-
import { CHATGPT_URL, COMPOSER_TEXTBOX_NAMES, SEND_BUTTON_NAMES } from "./selectors.js";
|
|
4
|
-
import { hasExactControllerEnvelopeIdentity, isProLabel, isProModelSlug,
|
|
5
|
+
import { ARCHIVE_MENUITEM_NAMES, CHATGPT_URL, COMPOSER_TEXTBOX_NAMES, SEND_BUTTON_NAMES, } from "./selectors.js";
|
|
6
|
+
import { hasExactControllerEnvelopeIdentity, isProLabel, isProModelSlug, normalizedMessageText, } from "./recovery-evidence.js";
|
|
5
7
|
import { captureConversationUrlAfterSubmit } from "./submission-url.js";
|
|
8
|
+
import { findVisibleSendButtonCoordinates } from "./send-button.js";
|
|
6
9
|
import { acquireChatGptTab, isTabUnavailableError } from "./tab-discovery.js";
|
|
10
|
+
import { validatedTimingOption } from "./timing-options.js";
|
|
7
11
|
const DEFAULT_TIMEOUT_MS = 30 * 60 * 1_000;
|
|
8
12
|
const DEFAULT_POLL_INTERVAL_MS = 1_000;
|
|
9
13
|
const DEFAULT_STABLE_MS = 1_500;
|
|
@@ -15,6 +19,8 @@ const MODEL_LABEL_READ_ATTEMPTS = 50;
|
|
|
15
19
|
const MODEL_LABEL_RETRY_INTERVAL_MS = 100;
|
|
16
20
|
const COMPOSER_READY_TIMEOUT_MS = 30_000;
|
|
17
21
|
const COMPOSER_READY_STABLE_MS = 250;
|
|
22
|
+
const CONVERSATION_OPTIONS_SELECTOR = '[data-testid="conversation-options-button"]';
|
|
23
|
+
const ARCHIVE_PROOF_TIMEOUT_MS = 10_000;
|
|
18
24
|
function throwIfCancelled(signal) {
|
|
19
25
|
if (signal?.aborted !== true)
|
|
20
26
|
return;
|
|
@@ -52,44 +58,14 @@ async function findUniqueLocator(tab, role, names) {
|
|
|
52
58
|
}
|
|
53
59
|
return undefined;
|
|
54
60
|
}
|
|
55
|
-
async function
|
|
56
|
-
if (
|
|
57
|
-
return
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const rect = button.getBoundingClientRect();
|
|
64
|
-
const label = normalize(button.getAttribute("aria-label") ?? button.innerText ?? button.textContent);
|
|
65
|
-
return (sendButtonNames.some((name) => name === label) &&
|
|
66
|
-
!button.disabled &&
|
|
67
|
-
button.getAttribute("aria-disabled") !== "true" &&
|
|
68
|
-
style.display !== "none" &&
|
|
69
|
-
style.visibility !== "hidden" &&
|
|
70
|
-
rect.width > 0 &&
|
|
71
|
-
rect.height > 0 &&
|
|
72
|
-
rect.right > 0 &&
|
|
73
|
-
rect.bottom > 0 &&
|
|
74
|
-
rect.left < window.innerWidth &&
|
|
75
|
-
rect.top < window.innerHeight);
|
|
76
|
-
});
|
|
77
|
-
if (candidates.length !== 1)
|
|
78
|
-
return null;
|
|
79
|
-
const rect = candidates[0].getBoundingClientRect();
|
|
80
|
-
return {
|
|
81
|
-
x: rect.left + rect.width / 2,
|
|
82
|
-
y: rect.top + rect.height / 2,
|
|
83
|
-
};
|
|
84
|
-
}, { sendButtonNames: [...SEND_BUTTON_NAMES] }).catch(() => null);
|
|
85
|
-
if (target === null ||
|
|
86
|
-
!Number.isFinite(target.x) ||
|
|
87
|
-
!Number.isFinite(target.y) ||
|
|
88
|
-
target.x < 0 ||
|
|
89
|
-
target.y < 0) {
|
|
90
|
-
return undefined;
|
|
91
|
-
}
|
|
92
|
-
return { x: Math.round(target.x), y: Math.round(target.y) };
|
|
61
|
+
async function isActionableLocator(locator) {
|
|
62
|
+
if ((await locator.count()) !== 1)
|
|
63
|
+
return false;
|
|
64
|
+
if (locator.isVisible && !(await locator.isVisible()))
|
|
65
|
+
return false;
|
|
66
|
+
if (locator.isEnabled && !(await locator.isEnabled()))
|
|
67
|
+
return false;
|
|
68
|
+
return true;
|
|
93
69
|
}
|
|
94
70
|
async function findHydratedComposer(tab) {
|
|
95
71
|
if (!tab.playwright.locator)
|
|
@@ -103,9 +79,6 @@ async function findHydratedComposer(tab) {
|
|
|
103
79
|
return undefined;
|
|
104
80
|
}
|
|
105
81
|
}
|
|
106
|
-
function isConversationUrl(url) {
|
|
107
|
-
return /^https:\/\/chatgpt\.com\/c\/[A-Za-z0-9-]+/.test(url);
|
|
108
|
-
}
|
|
109
82
|
function ambiguousSubmissionError(error) {
|
|
110
83
|
return new CueLineError("CONTROLLER_SUBMISSION_AMBIGUOUS", "The send-button click failed without proving whether ChatGPT accepted the prompt. Refusing a second click; reconcile the exact conversation instead.", { cause: error });
|
|
111
84
|
}
|
|
@@ -154,10 +127,14 @@ class CodexIabAdapter {
|
|
|
154
127
|
#tab;
|
|
155
128
|
#conversationUrl;
|
|
156
129
|
constructor(options) {
|
|
130
|
+
if (options.conversationUrl !== undefined &&
|
|
131
|
+
!isConversationUrl(options.conversationUrl)) {
|
|
132
|
+
throw new CueLineError("CONTROLLER_RECONCILIATION_URL_REQUIRED", "CueLine requires an exact ChatGPT /c/<conversation-id> URL for an existing controller conversation.");
|
|
133
|
+
}
|
|
157
134
|
this.#options = {
|
|
158
|
-
timeoutMs: options.timeoutMs ?? DEFAULT_TIMEOUT_MS,
|
|
159
|
-
pollIntervalMs: options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS,
|
|
160
|
-
stableMs: options.stableMs ?? DEFAULT_STABLE_MS,
|
|
135
|
+
timeoutMs: validatedTimingOption("timeoutMs", options.timeoutMs ?? DEFAULT_TIMEOUT_MS, 1, "IAB_TIMEOUT_INVALID"),
|
|
136
|
+
pollIntervalMs: validatedTimingOption("pollIntervalMs", options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS, 1, "IAB_POLL_INTERVAL_INVALID"),
|
|
137
|
+
stableMs: validatedTimingOption("stableMs", options.stableMs ?? DEFAULT_STABLE_MS, 0, "IAB_STABLE_WINDOW_INVALID"),
|
|
161
138
|
...(options.browser === undefined ? {} : { browser: options.browser }),
|
|
162
139
|
...(options.conversationUrl === undefined ? {} : { conversationUrl: options.conversationUrl }),
|
|
163
140
|
};
|
|
@@ -174,7 +151,7 @@ class CodexIabAdapter {
|
|
|
174
151
|
const expected = this.#conversationUrl;
|
|
175
152
|
if (cachedUrl.startsWith(CHATGPT_URL) &&
|
|
176
153
|
(expected === undefined ||
|
|
177
|
-
|
|
154
|
+
sameChatGptConversationUrl(cachedUrl, expected))) {
|
|
178
155
|
return this.#tab;
|
|
179
156
|
}
|
|
180
157
|
}
|
|
@@ -215,20 +192,29 @@ class CodexIabAdapter {
|
|
|
215
192
|
}
|
|
216
193
|
return label;
|
|
217
194
|
}
|
|
218
|
-
async #submissionStarted(tab, previousUrl) {
|
|
195
|
+
async #submissionStarted(tab, previousUrl, baseline, observedState) {
|
|
219
196
|
const currentUrl = (await tab.url().catch(() => previousUrl)) ?? previousUrl;
|
|
220
197
|
if (!isConversationUrl(previousUrl) && isConversationUrl(currentUrl)) {
|
|
221
198
|
return true;
|
|
222
199
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
200
|
+
const state = observedState ??
|
|
201
|
+
(await readPageChatState(tab).catch(() => ({
|
|
202
|
+
pageUrl: "",
|
|
203
|
+
isAnswering: false,
|
|
204
|
+
assistantText: "",
|
|
205
|
+
userMessageCount: 0,
|
|
206
|
+
assistantMessageCount: 0,
|
|
207
|
+
assistantModelSlug: null,
|
|
208
|
+
lastUserText: null,
|
|
209
|
+
lastMessageRole: null,
|
|
210
|
+
})));
|
|
211
|
+
if (isConversationUrl(previousUrl) &&
|
|
212
|
+
!sameChatGptConversationUrl(state.pageUrl, previousUrl)) {
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
return (state.isAnswering ||
|
|
216
|
+
(state.userMessageCount ?? 0) > (baseline.userMessageCount ?? 0) ||
|
|
217
|
+
state.assistantMessageCount > baseline.assistantMessageCount);
|
|
232
218
|
}
|
|
233
219
|
async #resolveSendTarget(tab) {
|
|
234
220
|
const locator = await findUniqueLocator(tab, "button", SEND_BUTTON_NAMES);
|
|
@@ -239,7 +225,7 @@ class CodexIabAdapter {
|
|
|
239
225
|
return { kind: "coordinate", ...coordinate };
|
|
240
226
|
throw new CueLineError("SEND_BUTTON_MISSING", "Could not find ChatGPT's send button.");
|
|
241
227
|
}
|
|
242
|
-
async #clickSend(tab, target) {
|
|
228
|
+
async #clickSend(tab, target, baseline, input, context, hooks) {
|
|
243
229
|
const previousUrl = (await tab.url()) ?? "";
|
|
244
230
|
try {
|
|
245
231
|
if (target.kind === "locator") {
|
|
@@ -251,14 +237,21 @@ class CodexIabAdapter {
|
|
|
251
237
|
}
|
|
252
238
|
}
|
|
253
239
|
catch (error) {
|
|
254
|
-
|
|
240
|
+
const observed = await readPageChatState(tab).catch(() => undefined);
|
|
241
|
+
await this.#emitCheckpoint(input, tab, context, hooks, "possibly_sent", "error", undefined, observed ?? null, error);
|
|
242
|
+
if (observed === undefined) {
|
|
243
|
+
if (isTabUnavailableError(error))
|
|
244
|
+
throw error;
|
|
245
|
+
throw ambiguousSubmissionError(error);
|
|
246
|
+
}
|
|
247
|
+
if (await this.#submissionStarted(tab, previousUrl, baseline, observed))
|
|
255
248
|
return;
|
|
256
249
|
if (isTabUnavailableError(error))
|
|
257
250
|
throw error;
|
|
258
251
|
throw ambiguousSubmissionError(error);
|
|
259
252
|
}
|
|
260
253
|
}
|
|
261
|
-
async #waitForCompletion(tab, baseline, signal) {
|
|
254
|
+
async #waitForCompletion(tab, baseline, notSentRecovery, signal) {
|
|
262
255
|
const deadline = Date.now() + this.#options.timeoutMs;
|
|
263
256
|
let stableText = "";
|
|
264
257
|
let stableSince = 0;
|
|
@@ -266,6 +259,18 @@ class CodexIabAdapter {
|
|
|
266
259
|
while (Date.now() < deadline) {
|
|
267
260
|
throwIfCancelled(signal);
|
|
268
261
|
const state = await readPageChatState(tab);
|
|
262
|
+
if (notSentRecovery !== undefined &&
|
|
263
|
+
(state.userMessageCount ?? 0) > (baseline.userMessageCount ?? 0) + 1) {
|
|
264
|
+
throw new CueLineError("CONTROLLER_NOT_SENT_CONFIRMATION_CONFLICT", "The abandoned controller message appeared after the operator-confirmed retry began; freezing the run.", {
|
|
265
|
+
details: {
|
|
266
|
+
stage: "observing_retry",
|
|
267
|
+
submission_state: "possibly_sent",
|
|
268
|
+
abandoned_request_id: notSentRecovery.abandonedRequestId,
|
|
269
|
+
baseline_user_message_count: notSentRecovery.baselineUserMessageCount,
|
|
270
|
+
observed_user_message_count: state.userMessageCount ?? 0,
|
|
271
|
+
},
|
|
272
|
+
});
|
|
273
|
+
}
|
|
269
274
|
if (state.isAnswering || state.assistantMessageCount > baseline.assistantMessageCount) {
|
|
270
275
|
responseStarted = true;
|
|
271
276
|
}
|
|
@@ -319,8 +324,7 @@ class CodexIabAdapter {
|
|
|
319
324
|
}
|
|
320
325
|
async #readRecoveredCandidate(tab, expectedPrompt, allowVisiblePromptMismatch, manualSendConfirmed, attachmentBaseline, expectedConversationUrl, expectedIdentity) {
|
|
321
326
|
const state = await readPageChatState(tab);
|
|
322
|
-
if (
|
|
323
|
-
normalizedConversationUrl(expectedConversationUrl)) {
|
|
327
|
+
if (!sameChatGptConversationUrl(state.pageUrl, expectedConversationUrl)) {
|
|
324
328
|
throw new CueLineError("CONTROLLER_RECONCILIATION_CONVERSATION_MISMATCH", "The response evidence was read from a different ChatGPT conversation DOM.");
|
|
325
329
|
}
|
|
326
330
|
if (attachmentBaseline !== undefined &&
|
|
@@ -434,6 +438,22 @@ class CodexIabAdapter {
|
|
|
434
438
|
}
|
|
435
439
|
context.selectedModelLabel = await this.#ensureProModel(tab, input.signal);
|
|
436
440
|
context.baseline = await readPageChatState(tab);
|
|
441
|
+
if (input.notSentRecovery !== undefined) {
|
|
442
|
+
const currentUrl = context.baseline.pageUrl;
|
|
443
|
+
const userMessageCount = context.baseline.userMessageCount ?? 0;
|
|
444
|
+
if (!sameChatGptConversationUrl(currentUrl, input.notSentRecovery.conversationUrl) ||
|
|
445
|
+
userMessageCount !== input.notSentRecovery.baselineUserMessageCount) {
|
|
446
|
+
throw new CueLineError("CONTROLLER_NOT_SENT_CONFIRMATION_CONFLICT", "The exact conversation no longer matches the operator-confirmed not-sent baseline; refusing retry click.", {
|
|
447
|
+
details: {
|
|
448
|
+
stage: "pre_submit",
|
|
449
|
+
submission_state: "definitely_not_sent",
|
|
450
|
+
abandoned_request_id: input.notSentRecovery.abandonedRequestId,
|
|
451
|
+
baseline_user_message_count: input.notSentRecovery.baselineUserMessageCount,
|
|
452
|
+
observed_user_message_count: userMessageCount,
|
|
453
|
+
},
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
}
|
|
437
457
|
const composerBaseline = await readPageComposerState(tab, input.prompt, SEND_BUTTON_NAMES);
|
|
438
458
|
if (composerBaseline.attachmentCount > 0) {
|
|
439
459
|
throw new CueLineError("CONTROLLER_PROMPT_NOT_READY", "The ChatGPT composer already contains an attachment. Refusing to mix it with the current controller prompt.", {
|
|
@@ -447,22 +467,22 @@ class CodexIabAdapter {
|
|
|
447
467
|
throwIfCancelled(input.signal);
|
|
448
468
|
context.composerPromptState = await this.#waitForComposerReady(tab, input.prompt, composerBaseline.attachmentCount, input.signal);
|
|
449
469
|
const sendTarget = await this.#resolveSendTarget(tab);
|
|
450
|
-
await this.#emitCheckpoint(tab, context, hooks, "submitting");
|
|
470
|
+
await this.#emitCheckpoint(input, tab, context, hooks, "submitting", "attempting", undefined, context.baseline);
|
|
451
471
|
context.stage = "submitting";
|
|
452
|
-
await this.#clickSend(tab, sendTarget);
|
|
472
|
+
await this.#clickSend(tab, sendTarget, context.baseline, input, context, hooks);
|
|
453
473
|
if (requireRecoverableCheckpoint) {
|
|
454
474
|
this.#conversationUrl = await captureConversationUrlAfterSubmit(tab, this.#conversationUrl, this.#options.timeoutMs, this.#options.pollIntervalMs, input.signal);
|
|
455
475
|
}
|
|
456
476
|
context.stage = "submitted";
|
|
457
|
-
await this.#emitCheckpoint(tab, context, hooks, "submitted", requireRecoverableCheckpoint ? this.#conversationUrl : undefined);
|
|
477
|
+
await this.#emitCheckpoint(input, tab, context, hooks, "submitted", "accepted", requireRecoverableCheckpoint ? this.#conversationUrl : undefined, context.baseline);
|
|
458
478
|
return tab;
|
|
459
479
|
}
|
|
460
480
|
async #sendTurnOnce(input, context, hooks) {
|
|
461
481
|
const tab = await this.#submitTurnOnce(input, context, hooks);
|
|
462
|
-
const completed = await this.#waitForCompletion(tab, context.baseline, input.signal);
|
|
482
|
+
const completed = await this.#waitForCompletion(tab, context.baseline, input.notSentRecovery, input.signal);
|
|
463
483
|
return this.#resultFromCompletedTurn(tab, context.selectedModelLabel, completed);
|
|
464
484
|
}
|
|
465
|
-
async #emitCheckpoint(tab, context, hooks, submissionState, capturedConversationUrl) {
|
|
485
|
+
async #emitCheckpoint(input, tab, context, hooks, submissionState, clickAttemptState, capturedConversationUrl, observedState, clickError) {
|
|
466
486
|
if (!context.baseline || !context.selectedModelLabel || !context.composerPromptState)
|
|
467
487
|
return;
|
|
468
488
|
const currentUrl = capturedConversationUrl ?? (await tab.url().catch(() => "")) ?? "";
|
|
@@ -470,6 +490,12 @@ class CodexIabAdapter {
|
|
|
470
490
|
if (checkpointUrl !== undefined && isConversationUrl(checkpointUrl)) {
|
|
471
491
|
this.#conversationUrl = checkpointUrl;
|
|
472
492
|
}
|
|
493
|
+
const domState = observedState === null
|
|
494
|
+
? undefined
|
|
495
|
+
: observedState ?? (await readPageChatState(tab).catch(() => undefined));
|
|
496
|
+
const baselineLastUserMessageHash = context.baseline.lastUserText === null
|
|
497
|
+
? null
|
|
498
|
+
: commandHash(normalizedMessageText(context.baseline.lastUserText));
|
|
473
499
|
await hooks?.onCheckpoint?.({
|
|
474
500
|
submissionState,
|
|
475
501
|
composerPromptState: context.composerPromptState,
|
|
@@ -477,7 +503,37 @@ class CodexIabAdapter {
|
|
|
477
503
|
? { conversationUrl: checkpointUrl }
|
|
478
504
|
: {}),
|
|
479
505
|
selectedModelLabel: context.selectedModelLabel,
|
|
506
|
+
runId: input.runId,
|
|
507
|
+
round: input.round,
|
|
508
|
+
requestId: input.requestId,
|
|
509
|
+
promptHash: commandHash(input.prompt),
|
|
510
|
+
modelEvidenceSource: "composer",
|
|
511
|
+
baselineUserMessageCount: context.baseline.userMessageCount ?? 0,
|
|
480
512
|
baselineAssistantMessageCount: context.baseline.assistantMessageCount,
|
|
513
|
+
baselineLastUserMessageHash,
|
|
514
|
+
clickAttemptState,
|
|
515
|
+
...(clickError instanceof Error
|
|
516
|
+
? {
|
|
517
|
+
clickErrorName: clickError.name.slice(0, 128),
|
|
518
|
+
clickErrorMessage: clickError.message.slice(0, 500),
|
|
519
|
+
}
|
|
520
|
+
: clickError === undefined
|
|
521
|
+
? {}
|
|
522
|
+
: { clickErrorMessage: String(clickError).slice(0, 500) }),
|
|
523
|
+
...(domState === undefined
|
|
524
|
+
? {}
|
|
525
|
+
: {
|
|
526
|
+
domEvidence: {
|
|
527
|
+
pageUrl: domState.pageUrl,
|
|
528
|
+
userMessageCount: domState.userMessageCount ?? 0,
|
|
529
|
+
assistantMessageCount: domState.assistantMessageCount,
|
|
530
|
+
lastMessageRole: domState.lastMessageRole,
|
|
531
|
+
lastUserMessageHash: domState.lastUserText === null
|
|
532
|
+
? null
|
|
533
|
+
: commandHash(normalizedMessageText(domState.lastUserText)),
|
|
534
|
+
isAnswering: domState.isAnswering,
|
|
535
|
+
},
|
|
536
|
+
}),
|
|
481
537
|
});
|
|
482
538
|
}
|
|
483
539
|
#browserFailure(error, context, input) {
|
|
@@ -545,7 +601,7 @@ class CodexIabAdapter {
|
|
|
545
601
|
},
|
|
546
602
|
});
|
|
547
603
|
}
|
|
548
|
-
const completed = await this.#waitForCompletion(recoveredTab, context.baseline, input.signal);
|
|
604
|
+
const completed = await this.#waitForCompletion(recoveredTab, context.baseline, input.notSentRecovery, input.signal);
|
|
549
605
|
return this.#resultFromCompletedTurn(recoveredTab, context.selectedModelLabel, completed);
|
|
550
606
|
}
|
|
551
607
|
catch (recoveryError) {
|
|
@@ -600,9 +656,21 @@ class CodexIabAdapter {
|
|
|
600
656
|
: await this.#observeRecoveredCompletion(tab, input.prompt, allowVisiblePromptMismatch, input.manualSendConfirmed === true, baselineAssistantMessageCount, this.#conversationUrl, expectedIdentity, input.signal);
|
|
601
657
|
if (completed === undefined)
|
|
602
658
|
return undefined;
|
|
659
|
+
if (input.notSentRecovery !== undefined &&
|
|
660
|
+
(completed.userMessageCount ?? 0) >
|
|
661
|
+
input.notSentRecovery.baselineUserMessageCount + 1) {
|
|
662
|
+
throw new CueLineError("CONTROLLER_NOT_SENT_CONFIRMATION_CONFLICT", "The abandoned controller message appeared during retry recovery; freezing the run.", {
|
|
663
|
+
details: {
|
|
664
|
+
stage: "reconciling_retry",
|
|
665
|
+
submission_state: "possibly_sent",
|
|
666
|
+
abandoned_request_id: input.notSentRecovery.abandonedRequestId,
|
|
667
|
+
baseline_user_message_count: input.notSentRecovery.baselineUserMessageCount,
|
|
668
|
+
observed_user_message_count: completed.userMessageCount ?? 0,
|
|
669
|
+
},
|
|
670
|
+
});
|
|
671
|
+
}
|
|
603
672
|
const recoveredUrl = (await tab.url()) ?? "";
|
|
604
|
-
if (
|
|
605
|
-
normalizedConversationUrl(this.#conversationUrl)) {
|
|
673
|
+
if (!sameChatGptConversationUrl(recoveredUrl, this.#conversationUrl)) {
|
|
606
674
|
throw new CueLineError("CONTROLLER_RECONCILIATION_CONVERSATION_MISMATCH", "The recovered response is no longer on the exact persisted ChatGPT conversation URL.");
|
|
607
675
|
}
|
|
608
676
|
return this.#resultFromCompletedTurn(tab, selectedModelLabel, completed);
|
|
@@ -644,6 +712,84 @@ class CodexIabAdapter {
|
|
|
644
712
|
throw this.#reconciliationFailure(error, input);
|
|
645
713
|
}
|
|
646
714
|
}
|
|
715
|
+
async archiveConversation(input, hooks = {}) {
|
|
716
|
+
throwIfCancelled(input.signal);
|
|
717
|
+
if (!isConversationUrl(input.conversationUrl)) {
|
|
718
|
+
throw new CueLineError("CONTROLLER_CONVERSATION_ARCHIVE_URL_REQUIRED", "Archiving requires one exact ChatGPT /c/<conversation-id> URL.");
|
|
719
|
+
}
|
|
720
|
+
if (this.#conversationUrl !== undefined &&
|
|
721
|
+
!sameChatGptConversationUrl(this.#conversationUrl, input.conversationUrl)) {
|
|
722
|
+
throw new CueLineError("CONTROLLER_CONVERSATION_ARCHIVE_MISMATCH", "The archive request does not match the adapter's bound controller conversation.");
|
|
723
|
+
}
|
|
724
|
+
this.#conversationUrl = input.conversationUrl;
|
|
725
|
+
const tab = await this.#getTab();
|
|
726
|
+
const pageUrl = (await tab.url()) ?? "";
|
|
727
|
+
if (!sameChatGptConversationUrl(pageUrl, input.conversationUrl)) {
|
|
728
|
+
throw new CueLineError("CONTROLLER_CONVERSATION_ARCHIVE_MISMATCH", "The active ChatGPT tab is not the completed controller conversation.");
|
|
729
|
+
}
|
|
730
|
+
const pageState = await readPageChatState(tab);
|
|
731
|
+
if (!sameChatGptConversationUrl(pageState.pageUrl, input.conversationUrl)) {
|
|
732
|
+
throw new CueLineError("CONTROLLER_CONVERSATION_ARCHIVE_MISMATCH", "The ChatGPT page changed before archive controls could be opened.");
|
|
733
|
+
}
|
|
734
|
+
if (pageState.isAnswering) {
|
|
735
|
+
throw new CueLineError("CONTROLLER_CONVERSATION_ARCHIVE_PRO_ACTIVE", "ChatGPT Pro is still answering. Refusing to open or archive the conversation.");
|
|
736
|
+
}
|
|
737
|
+
if (!tab.playwright.locator) {
|
|
738
|
+
throw new CueLineError("CONTROLLER_CONVERSATION_ARCHIVE_UNAVAILABLE", "The browser cannot locate ChatGPT's conversation options button.");
|
|
739
|
+
}
|
|
740
|
+
const optionsButton = tab.playwright.locator(CONVERSATION_OPTIONS_SELECTOR);
|
|
741
|
+
if (!(await isActionableLocator(optionsButton))) {
|
|
742
|
+
throw new CueLineError("CONTROLLER_CONVERSATION_ARCHIVE_UNAVAILABLE", "ChatGPT's conversation options button is missing, hidden, disabled, or ambiguous.");
|
|
743
|
+
}
|
|
744
|
+
await optionsButton.click({ timeoutMs: 10_000 });
|
|
745
|
+
const archiveItem = await findUniqueLocator(tab, "menuitem", ARCHIVE_MENUITEM_NAMES);
|
|
746
|
+
if (!archiveItem || !(await isActionableLocator(archiveItem))) {
|
|
747
|
+
throw new CueLineError("CONTROLLER_CONVERSATION_ARCHIVE_UNAVAILABLE", "ChatGPT's Archive menu item is missing, hidden, disabled, or ambiguous.");
|
|
748
|
+
}
|
|
749
|
+
const finalPageState = await readPageChatState(tab);
|
|
750
|
+
if (!sameChatGptConversationUrl(finalPageState.pageUrl, input.conversationUrl)) {
|
|
751
|
+
throw new CueLineError("CONTROLLER_CONVERSATION_ARCHIVE_MISMATCH", "The ChatGPT page changed before the archive click. Refusing to archive another conversation.");
|
|
752
|
+
}
|
|
753
|
+
if (finalPageState.isAnswering) {
|
|
754
|
+
throw new CueLineError("CONTROLLER_CONVERSATION_ARCHIVE_PRO_ACTIVE", "ChatGPT Pro started answering before the archive click. Refusing to archive the conversation.");
|
|
755
|
+
}
|
|
756
|
+
throwIfCancelled(input.signal);
|
|
757
|
+
await hooks.onBeforeArchiveClick?.();
|
|
758
|
+
throwIfCancelled(input.signal);
|
|
759
|
+
const checkpointPageState = await readPageChatState(tab);
|
|
760
|
+
if (!sameChatGptConversationUrl(checkpointPageState.pageUrl, input.conversationUrl)) {
|
|
761
|
+
throw new CueLineError("CONTROLLER_CONVERSATION_ARCHIVE_MISMATCH", "The ChatGPT page changed during the archive checkpoint. Refusing to archive another conversation.");
|
|
762
|
+
}
|
|
763
|
+
if (checkpointPageState.isAnswering) {
|
|
764
|
+
throw new CueLineError("CONTROLLER_CONVERSATION_ARCHIVE_PRO_ACTIVE", "ChatGPT Pro started answering during the archive checkpoint. Refusing to archive the conversation.");
|
|
765
|
+
}
|
|
766
|
+
let clickFailure;
|
|
767
|
+
try {
|
|
768
|
+
await archiveItem.click({ timeoutMs: 10_000 });
|
|
769
|
+
}
|
|
770
|
+
catch (error) {
|
|
771
|
+
clickFailure = error;
|
|
772
|
+
}
|
|
773
|
+
const deadline = Date.now() + Math.min(this.#options.timeoutMs, ARCHIVE_PROOF_TIMEOUT_MS);
|
|
774
|
+
while (true) {
|
|
775
|
+
throwIfCancelled(input.signal);
|
|
776
|
+
const postActionUrl = (await tab.url().catch(() => undefined)) ?? "";
|
|
777
|
+
if (postActionUrl.startsWith(CHATGPT_URL) &&
|
|
778
|
+
!sameChatGptConversationUrl(postActionUrl, input.conversationUrl)) {
|
|
779
|
+
this.#tab = undefined;
|
|
780
|
+
return {
|
|
781
|
+
conversationUrl: input.conversationUrl,
|
|
782
|
+
proof: "conversation_url_changed",
|
|
783
|
+
postActionUrl,
|
|
784
|
+
};
|
|
785
|
+
}
|
|
786
|
+
const remainingMs = deadline - Date.now();
|
|
787
|
+
if (remainingMs <= 0)
|
|
788
|
+
break;
|
|
789
|
+
await tab.playwright.waitForTimeout(Math.min(this.#options.pollIntervalMs, remainingMs));
|
|
790
|
+
}
|
|
791
|
+
throw new CueLineError("CONTROLLER_CONVERSATION_ARCHIVE_AMBIGUOUS", "ChatGPT did not expose durable proof that the controller conversation was archived. Refusing another archive click.", { cause: clickFailure });
|
|
792
|
+
}
|
|
647
793
|
}
|
|
648
794
|
export function createCodexIabAdapter(options = {}) {
|
|
649
795
|
return new CodexIabAdapter(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatgpt-client.js","sourceRoot":"","sources":["../../../../src/browser/codex-iab/chatgpt-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chatgpt-client.js","sourceRoot":"","sources":["../../../../src/browser/codex-iab/chatgpt-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type IabBrowser, type PageProbeState } from "./bootstrap.js";
|
|
2
|
+
export interface CodexIabProbeOptions {
|
|
3
|
+
browser?: IabBrowser;
|
|
4
|
+
/** Restrict the probe to this exact ChatGPT conversation URL. */
|
|
5
|
+
conversationUrl?: string;
|
|
6
|
+
}
|
|
7
|
+
export type CodexIabProbeStatus = "ready" | "browser_missing" | "target_invalid" | "tab_not_found" | "tab_ambiguous" | "attach_failed";
|
|
8
|
+
export type CodexIabBrowserSource = "injected" | "global_browser" | "legacy_iab" | "agent";
|
|
9
|
+
export type CodexIabTabSource = "selected" | "session" | "user";
|
|
10
|
+
export interface CodexIabPageProbe {
|
|
11
|
+
url: string;
|
|
12
|
+
isConversation: boolean;
|
|
13
|
+
isAnswering: boolean;
|
|
14
|
+
assistantMessageCount: number;
|
|
15
|
+
lastMessageRole: "assistant" | "user" | null;
|
|
16
|
+
assistantModelSlug: string | null;
|
|
17
|
+
selectedModelLabel: string | null;
|
|
18
|
+
modelEvidence: "pro" | "pro_response_only" | "non_pro" | "conflict" | "missing" | "ambiguous";
|
|
19
|
+
composerState: PageProbeState["composerState"];
|
|
20
|
+
inlineTextLength: number;
|
|
21
|
+
attachmentCount: number;
|
|
22
|
+
sendButtonState: PageProbeState["sendButtonState"];
|
|
23
|
+
}
|
|
24
|
+
export interface CodexIabProbeResult {
|
|
25
|
+
status: CodexIabProbeStatus;
|
|
26
|
+
errorCode: string | null;
|
|
27
|
+
browserSource: CodexIabBrowserSource | null;
|
|
28
|
+
tabSource: CodexIabTabSource | null;
|
|
29
|
+
targetConversationUrl: string | null;
|
|
30
|
+
page: CodexIabPageProbe | null;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Inspect an existing ChatGPT tab without creating, navigating, filling, or
|
|
34
|
+
* clicking. The result is deliberately redacted and safe for diagnostics.
|
|
35
|
+
*/
|
|
36
|
+
export declare function probeCodexIab(options?: CodexIabProbeOptions): Promise<CodexIabProbeResult>;
|