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.
Files changed (188) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +50 -0
  4. package/README.ja.md +77 -30
  5. package/README.ko.md +77 -30
  6. package/README.md +71 -29
  7. package/README.zh-CN.md +77 -30
  8. package/README.zh-TW.md +74 -29
  9. package/config/routing.schema.json +3 -0
  10. package/dist/src/api-caller-work.js +58 -14
  11. package/dist/src/api-caller-work.js.map +1 -1
  12. package/dist/src/api-contracts.d.ts +56 -0
  13. package/dist/src/api-controller-handoff.d.ts +5 -1
  14. package/dist/src/api-controller-handoff.js +178 -38
  15. package/dist/src/api-controller-handoff.js.map +1 -1
  16. package/dist/src/api-run-verification.d.ts +3 -0
  17. package/dist/src/api-run-verification.js +174 -0
  18. package/dist/src/api-run-verification.js.map +1 -0
  19. package/dist/src/api-runtime-lifecycle.d.ts +6 -1
  20. package/dist/src/api-runtime-lifecycle.js +97 -8
  21. package/dist/src/api-runtime-lifecycle.js.map +1 -1
  22. package/dist/src/api.d.ts +26 -4
  23. package/dist/src/api.js +111 -40
  24. package/dist/src/api.js.map +1 -1
  25. package/dist/src/browser/browser-adapter.d.ts +41 -0
  26. package/dist/src/browser/codex-iab/bootstrap.d.ts +21 -0
  27. package/dist/src/browser/codex-iab/bootstrap.js +174 -9
  28. package/dist/src/browser/codex-iab/bootstrap.js.map +1 -1
  29. package/dist/src/browser/codex-iab/chatgpt-client.d.ts +3 -0
  30. package/dist/src/browser/codex-iab/chatgpt-client.js +216 -70
  31. package/dist/src/browser/codex-iab/chatgpt-client.js.map +1 -1
  32. package/dist/src/browser/codex-iab/probe.d.ts +36 -0
  33. package/dist/src/browser/codex-iab/probe.js +217 -0
  34. package/dist/src/browser/codex-iab/probe.js.map +1 -0
  35. package/dist/src/browser/codex-iab/recovery-evidence.d.ts +1 -1
  36. package/dist/src/browser/codex-iab/recovery-evidence.js +7 -10
  37. package/dist/src/browser/codex-iab/recovery-evidence.js.map +1 -1
  38. package/dist/src/browser/codex-iab/selectors.d.ts +1 -0
  39. package/dist/src/browser/codex-iab/selectors.js +1 -0
  40. package/dist/src/browser/codex-iab/selectors.js.map +1 -1
  41. package/dist/src/browser/codex-iab/send-button.d.ts +5 -0
  42. package/dist/src/browser/codex-iab/send-button.js +62 -0
  43. package/dist/src/browser/codex-iab/send-button.js.map +1 -0
  44. package/dist/src/browser/codex-iab/submission-url.js +6 -15
  45. package/dist/src/browser/codex-iab/submission-url.js.map +1 -1
  46. package/dist/src/browser/codex-iab/tab-discovery.js +45 -12
  47. package/dist/src/browser/codex-iab/tab-discovery.js.map +1 -1
  48. package/dist/src/browser/codex-iab/timing-options.d.ts +1 -0
  49. package/dist/src/browser/codex-iab/timing-options.js +5 -0
  50. package/dist/src/browser/codex-iab/timing-options.js.map +1 -0
  51. package/dist/src/cli/health-commands.d.ts +2 -0
  52. package/dist/src/cli/health-commands.js +265 -0
  53. package/dist/src/cli/health-commands.js.map +1 -0
  54. package/dist/src/cli/io.d.ts +4 -0
  55. package/dist/src/cli/io.js +2 -0
  56. package/dist/src/cli/io.js.map +1 -0
  57. package/dist/src/cli/main.d.ts +1 -5
  58. package/dist/src/cli/main.js +187 -84
  59. package/dist/src/cli/main.js.map +1 -1
  60. package/dist/src/cli/observation-commands.d.ts +2 -0
  61. package/dist/src/cli/observation-commands.js +350 -0
  62. package/dist/src/cli/observation-commands.js.map +1 -0
  63. package/dist/src/cli/run-status-view.d.ts +87 -0
  64. package/dist/src/cli/run-status-view.js +121 -0
  65. package/dist/src/cli/run-status-view.js.map +1 -0
  66. package/dist/src/core/controller-command-execution.d.ts +2 -2
  67. package/dist/src/core/controller-command-execution.js +82 -16
  68. package/dist/src/core/controller-command-execution.js.map +1 -1
  69. package/dist/src/core/controller-conversation-archive.d.ts +11 -0
  70. package/dist/src/core/controller-conversation-archive.js +109 -0
  71. package/dist/src/core/controller-conversation-archive.js.map +1 -0
  72. package/dist/src/core/controller-loop.d.ts +7 -1
  73. package/dist/src/core/controller-loop.js +136 -23
  74. package/dist/src/core/controller-loop.js.map +1 -1
  75. package/dist/src/core/controller-turn.d.ts +21 -3
  76. package/dist/src/core/controller-turn.js +182 -41
  77. package/dist/src/core/controller-turn.js.map +1 -1
  78. package/dist/src/core/controller-types.d.ts +2 -0
  79. package/dist/src/core/conversation-url.d.ts +3 -0
  80. package/dist/src/core/conversation-url.js +34 -0
  81. package/dist/src/core/conversation-url.js.map +1 -0
  82. package/dist/src/core/run-status.d.ts +17 -2
  83. package/dist/src/core/run-status.js +64 -25
  84. package/dist/src/core/run-status.js.map +1 -1
  85. package/dist/src/core/state-machine.d.ts +36 -1
  86. package/dist/src/core/state-machine.js +242 -13
  87. package/dist/src/core/state-machine.js.map +1 -1
  88. package/dist/src/core/timing.d.ts +9 -0
  89. package/dist/src/core/timing.js +22 -0
  90. package/dist/src/core/timing.js.map +1 -0
  91. package/dist/src/diagnostics/run-doctor.d.ts +22 -0
  92. package/dist/src/diagnostics/run-doctor.js +197 -0
  93. package/dist/src/diagnostics/run-doctor.js.map +1 -0
  94. package/dist/src/jobs/status.d.ts +5 -2
  95. package/dist/src/jobs/status.js +172 -12
  96. package/dist/src/jobs/status.js.map +1 -1
  97. package/dist/src/jobs/supervisor.js +57 -8
  98. package/dist/src/jobs/supervisor.js.map +1 -1
  99. package/dist/src/observation/run-diff.d.ts +39 -0
  100. package/dist/src/observation/run-diff.js +67 -0
  101. package/dist/src/observation/run-diff.js.map +1 -0
  102. package/dist/src/observation/run-graph.d.ts +17 -0
  103. package/dist/src/observation/run-graph.js +77 -0
  104. package/dist/src/observation/run-graph.js.map +1 -0
  105. package/dist/src/observation/run-handoff.d.ts +86 -0
  106. package/dist/src/observation/run-handoff.js +309 -0
  107. package/dist/src/observation/run-handoff.js.map +1 -0
  108. package/dist/src/observation/run-status-at.d.ts +41 -0
  109. package/dist/src/observation/run-status-at.js +65 -0
  110. package/dist/src/observation/run-status-at.js.map +1 -0
  111. package/dist/src/observation/run-timeline.d.ts +32 -0
  112. package/dist/src/observation/run-timeline.js +279 -0
  113. package/dist/src/observation/run-timeline.js.map +1 -0
  114. package/dist/src/observation/run-watch.d.ts +15 -0
  115. package/dist/src/observation/run-watch.js +82 -0
  116. package/dist/src/observation/run-watch.js.map +1 -0
  117. package/dist/src/protocol/limits.d.ts +3 -0
  118. package/dist/src/protocol/limits.js +4 -0
  119. package/dist/src/protocol/limits.js.map +1 -0
  120. package/dist/src/protocol/lint-command.d.ts +24 -0
  121. package/dist/src/protocol/lint-command.js +210 -0
  122. package/dist/src/protocol/lint-command.js.map +1 -0
  123. package/dist/src/protocol/parse-command.js +4 -0
  124. package/dist/src/protocol/parse-command.js.map +1 -1
  125. package/dist/src/protocol/types.d.ts +12 -0
  126. package/dist/src/protocol/validate-command.js +76 -3
  127. package/dist/src/protocol/validate-command.js.map +1 -1
  128. package/dist/src/router/config-loader.js +23 -2
  129. package/dist/src/router/config-loader.js.map +1 -1
  130. package/dist/src/router/explain.d.ts +28 -0
  131. package/dist/src/router/explain.js +86 -0
  132. package/dist/src/router/explain.js.map +1 -0
  133. package/dist/src/router/resolver.d.ts +2 -1
  134. package/dist/src/router/resolver.js +11 -6
  135. package/dist/src/router/resolver.js.map +1 -1
  136. package/dist/src/runners/process-runner.js +55 -12
  137. package/dist/src/runners/process-runner.js.map +1 -1
  138. package/dist/src/runners/runner-adapter.d.ts +2 -0
  139. package/dist/src/runners/runner-adapter.js.map +1 -1
  140. package/dist/src/state/atomic-write.d.ts +6 -0
  141. package/dist/src/state/atomic-write.js +43 -2
  142. package/dist/src/state/atomic-write.js.map +1 -1
  143. package/dist/src/state/cancellation.js +38 -4
  144. package/dist/src/state/cancellation.js.map +1 -1
  145. package/dist/src/state/event-log.js +5 -4
  146. package/dist/src/state/event-log.js.map +1 -1
  147. package/dist/src/state/private-directory.d.ts +5 -0
  148. package/dist/src/state/private-directory.js +37 -0
  149. package/dist/src/state/private-directory.js.map +1 -0
  150. package/dist/src/state/runtime-lease.js +19 -39
  151. package/dist/src/state/runtime-lease.js.map +1 -1
  152. package/dist/src/state/runtime-record-validation.d.ts +6 -0
  153. package/dist/src/state/runtime-record-validation.js +44 -0
  154. package/dist/src/state/runtime-record-validation.js.map +1 -0
  155. package/dist/src/state/runtime-retirement.js +58 -18
  156. package/dist/src/state/runtime-retirement.js.map +1 -1
  157. package/dist/src/state/runtime-takeover-intent.js +2 -2
  158. package/dist/src/state/runtime-takeover-intent.js.map +1 -1
  159. package/dist/src/state/store.d.ts +1 -0
  160. package/dist/src/state/store.js +12 -6
  161. package/dist/src/state/store.js.map +1 -1
  162. package/dist/src/version.d.ts +1 -1
  163. package/dist/src/version.js +1 -1
  164. package/docs/architecture.md +4 -4
  165. package/docs/assets/README.md +3 -1
  166. package/docs/assets/cueline-architecture-en.svg +63 -0
  167. package/docs/assets/cueline-architecture-ja.svg +63 -0
  168. package/docs/assets/cueline-architecture-ko.svg +63 -0
  169. package/docs/assets/cueline-architecture-zh-CN.svg +63 -0
  170. package/docs/assets/cueline-architecture-zh-TW.svg +63 -0
  171. package/docs/assets/cueline-states-en.svg +50 -0
  172. package/docs/assets/cueline-states-ja.svg +48 -0
  173. package/docs/assets/cueline-states-ko.svg +48 -0
  174. package/docs/assets/cueline-states-zh-CN.svg +48 -0
  175. package/docs/assets/cueline-states-zh-TW.svg +48 -0
  176. package/docs/compatibility.md +1 -1
  177. package/docs/controller-protocol.md +44 -7
  178. package/docs/experiments/protocol-lint.md +40 -0
  179. package/docs/experiments/run-doctor.md +39 -0
  180. package/docs/experiments/run-handoff.md +39 -0
  181. package/docs/experiments/run-timeline.md +35 -0
  182. package/docs/experiments/run-watch.md +31 -0
  183. package/docs/multi-model-routing.md +256 -0
  184. package/docs/runner-contract.md +4 -3
  185. package/docs/state-and-recovery.md +45 -5
  186. package/package.json +1 -1
  187. package/schemas/controller-command.schema.json +89 -4
  188. 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, normalizedConversationUrl, normalizedMessageText } from "./recovery-evidence.js";
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 findVisibleSendButtonCoordinates(tab) {
56
- if (!tab.cua?.click)
57
- return undefined;
58
- const target = await tab.playwright.evaluate(({ sendButtonNames }) => {
59
- const normalize = (value) => String(value ?? "").trim().replace(/\s+/g, " ");
60
- const candidates = Array.from(document.querySelectorAll("button")).filter((element) => {
61
- const button = element;
62
- const style = window.getComputedStyle(button);
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
- normalizedConversationUrl(cachedUrl) === normalizedConversationUrl(expected))) {
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
- return (await readPageChatState(tab).catch(() => ({
224
- pageUrl: "",
225
- isAnswering: false,
226
- assistantText: "",
227
- assistantMessageCount: 0,
228
- assistantModelSlug: null,
229
- lastUserText: null,
230
- lastMessageRole: null,
231
- }))).isAnswering;
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
- if (await this.#submissionStarted(tab, previousUrl))
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 (normalizedConversationUrl(state.pageUrl) !==
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 (normalizedConversationUrl(recoveredUrl) !==
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":"AAWA,OAAO,EACL,6BAA6B,IAAI,iBAAiB,EAClD,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,GAKlB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,kCAAkC,EAClC,UAAU,EACV,cAAc,EACd,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAc5D,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AAC3C,MAAM,wBAAwB,GAAG,KAAK,CAAC;AACvC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC,MAAM,6BAA6B,GAAG,KAAK,CAAC;AAC5C,MAAM,iCAAiC,GAAG,0CAA0C,CAAC;AACrF,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AACvD,MAAM,oBAAoB,GAAG,KAAK,CAAC;AACnC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AACrC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAC1C,MAAM,yBAAyB,GAAG,MAAM,CAAC;AACzC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,6BAA6B,GAAG,6CAA6C,CAAC;AACpF,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAcxC,SAAS,gBAAgB,CAAC,MAA+B;IACvD,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI;QAAE,OAAO;IACrC,IAAI,MAAM,CAAC,MAAM,YAAY,YAAY;QAAE,MAAM,MAAM,CAAC,MAAM,CAAC;IAC/D,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,yCAAyC,EAAE;QACjF,KAAK,EAAE,MAAM,CAAC,MAAM;KACrB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,KAAK,CAAC,YAAoB,EAAE,MAAoB;IACvD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,YAAY,CAAC,CAAC;QACjB,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC;gBACH,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,GAAW,EACX,IAAY,EACZ,KAAwB;IAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,OAAmB;IACpD,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,GAAW;IAC7C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC9C,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAC3E,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,6BAA6B,EAAE,CAAC,CAAC;QACzF,OAAO,CAAC,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,OAAO,IAAI,YAAY,CACrB,iCAAiC,EACjC,sJAAsJ,EACtJ,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAgB;IAEhB,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,qBAAqB,CAAC;IACzD,OAAO,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC;AAChE,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,GAAW;IAC/C,OAAO,GAAG,CAAC,UAAU,CAAC,QAAQ,CAC5B,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE;QAC1B,MAAM,UAAU,GAAG,2GAA2G,CAAC;QAC/H,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;aACtE,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YAClB,IAAK,OAAuB,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAClD,IAAI,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,MAAM;gBAAE,OAAO,KAAK,CAAC;YACjE,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1G,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACf,MAAM,CACJ,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;YAC/B,OAAuB,CAAC,SAAS;YAClC,OAAO,CAAC,WAAW;YACnB,EAAE,CACL,CACF;aACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;aACjD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC,EACD,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,CAC/C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,+BAA+B,CAC5C,GAAW,EACX,MAAoB;IAEpB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,yBAAyB,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACxE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACjC,IAAI,OAAO,GAAG,yBAAyB,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,6BAA6B,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,eAAe;IACV,4BAA4B,GAAG,gBAAyB,CAAC;IACzD,QAAQ,CAC6C;IAC9D,QAAQ,CAAyB;IACjC,IAAI,CAAqB;IACzB,gBAAgB,CAAqB;IAErC,YAAY,OAA+B;QACzC,IACE,OAAO,CAAC,eAAe,KAAK,SAAS;YACrC,CAAC,iBAAiB,CAAC,OAAO,CAAC,eAAe,CAAC,EAC3C,CAAC;YACD,MAAM,IAAI,YAAY,CACpB,wCAAwC,EACxC,qGAAqG,CACtG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG;YACd,SAAS,EAAE,qBAAqB,CAC9B,WAAW,EACX,OAAO,CAAC,SAAS,IAAI,kBAAkB,EACvC,CAAC,EACD,qBAAqB,CACtB;YACD,cAAc,EAAE,qBAAqB,CACnC,gBAAgB,EAChB,OAAO,CAAC,cAAc,IAAI,wBAAwB,EAClD,CAAC,EACD,2BAA2B,CAC5B;YACD,QAAQ,EAAE,qBAAqB,CAC7B,UAAU,EACV,OAAO,CAAC,QAAQ,IAAI,iBAAiB,EACrC,CAAC,EACD,2BAA2B,CAC5B;YACD,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YACtE,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;SAC/F,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,QAAQ,KAAK,MAAM,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACvC,IACE,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;oBACjC,CAAC,QAAQ,KAAK,SAAS;wBACrB,0BAA0B,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAClD,CAAC;oBACD,OAAO,IAAI,CAAC,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;YACjD,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACxB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,MAAoB;QACrD,IAAI,KAAK,GAAG,MAAM,+BAA+B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/D,IAAI,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,YAAY,CACpB,wBAAwB,EACxB,8FAA8F,CAC/F,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,YAAY,CACpB,uBAAuB,EACvB,qBAAqB,KAAK,6CAA6C,CACxE,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,YAAY,CACpB,uBAAuB,EACvB,qBAAqB,KAAK,4DAA4D,CACvF,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,YAAY,CACpB,uBAAuB,EACvB,qBAAqB,KAAK,6CAA6C,CACxE,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,MAAM,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACzC,KAAK,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,6DAA6D,KAAK,IAAI,SAAS,IAAI,CACpF,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,GAAW,EACX,WAAmB,EACnB,QAAuB,EACvB,aAA6B;QAE7B,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,WAAW,CAAC;QAC7E,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GACT,aAAa;YACb,CAAC,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBACzC,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,KAAK;gBAClB,aAAa,EAAE,EAAE;gBACjB,gBAAgB,EAAE,CAAC;gBACnB,qBAAqB,EAAE,CAAC;gBACxB,kBAAkB,EAAE,IAAI;gBACxB,YAAY,EAAE,IAAI;gBAClB,eAAe,EAAE,IAAI;aACtB,CAAC,CAAC,CAAC,CAAC;QACP,IACE,iBAAiB,CAAC,WAAW,CAAC;YAC9B,CAAC,0BAA0B,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,EACvD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,CACL,KAAK,CAAC,WAAW;YACjB,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,CAAC;YAChE,KAAK,CAAC,qBAAqB,GAAG,QAAQ,CAAC,qBAAqB,CAC7D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,GAAW;QAClC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAC1E,IAAI,OAAO;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,gCAAgC,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,UAAU;YAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,CAAC;QAC7D,MAAM,IAAI,YAAY,CACpB,qBAAqB,EACrB,uCAAuC,CACxC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,GAAW,EACX,MAAkB,EAClB,QAAuB,EACvB,KAAuB,EACvB,OAA2B,EAC3B,KAAwB;QAExB,MAAM,WAAW,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC,GAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,eAAe,CACxB,KAAK,EACL,GAAG,EACH,OAAO,EACP,KAAK,EACL,eAAe,EACf,OAAO,EACP,SAAS,EACT,QAAQ,IAAI,IAAI,EAChB,KAAK,CACN,CAAC;YACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,qBAAqB,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAC9C,MAAM,wBAAwB,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC;gBAAE,OAAO;YAChF,IAAI,qBAAqB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC9C,MAAM,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,GAAW,EACX,QAAuB,EACvB,eAAqD,EACrD,MAAoB;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QACtD,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC3C,IACE,eAAe,KAAK,SAAS;gBAC7B,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,EACpE,CAAC;gBACD,MAAM,IAAI,YAAY,CACpB,2CAA2C,EAC3C,uGAAuG,EACvG;oBACE,OAAO,EAAE;wBACP,KAAK,EAAE,iBAAiB;wBACxB,gBAAgB,EAAE,eAAe;wBACjC,oBAAoB,EAAE,eAAe,CAAC,kBAAkB;wBACxD,2BAA2B,EACzB,eAAe,CAAC,wBAAwB;wBAC1C,2BAA2B,EAAE,KAAK,CAAC,gBAAgB,IAAI,CAAC;qBACzD;iBACF,CACF,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,qBAAqB,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;gBACtF,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;YACD,IAAI,eAAe,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,aAAa,KAAK,EAAE,EAAE,CAAC;gBACxE,IAAI,KAAK,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;oBACvC,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC;oBACjC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC3B,CAAC;gBACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACvD,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC;gBACjC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,CAAC;YACD,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,IAAI,YAAY,CAAC,0BAA0B,EAAE,wCAAwC,CAAC,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,2BAA2B,CAC/B,GAAW,EACX,cAAsB,EACtB,0BAAmC,EACnC,mBAA4B,EAC5B,6BAAiD,EACjD,uBAA+B,EAC/B,gBAA4C,EAC5C,MAAoB;QAEpB,MAAM,kBAAkB,GAAG,0BAA0B;YACnD,CAAC,CAAC,6BAA6B;YAC/B,CAAC,CAAC,SAAS,CAAC;QACd,IACE,0BAA0B;YAC1B,kBAAkB,KAAK,SAAS;YAChC,CAAC,mBAAmB,EACpB,CAAC;YACD,MAAM,IAAI,YAAY,CACpB,6CAA6C,EAC7C,4HAA4H,CAC7H,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QACtD,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAC9C,GAAG,EACH,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,CACjB,CAAC;YACF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,KAAK,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;oBACvC,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC;oBACjC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC3B,CAAC;gBACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;oBAAE,OAAO,KAAK,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,EAAE,CAAC;gBAChB,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,CAAC;YACD,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,IAAI,YAAY,CACpB,mCAAmC,EACnC,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,GAAW,EACX,cAAsB,EACtB,0BAAmC,EACnC,mBAA4B,EAC5B,kBAAsC,EACtC,uBAA+B,EAC/B,gBAA4C;QAE5C,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,OAAO,EAAE,uBAAuB,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,YAAY,CACpB,iDAAiD,EACjD,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QACD,IACE,kBAAkB,KAAK,SAAS;YAChC,KAAK,CAAC,qBAAqB,IAAI,kBAAkB;YACjD,OAAO,SAAS,CAAC;QACnB,IACE,mBAAmB;YACnB,kBAAkB,KAAK,SAAS;YAChC,CAAC,kCAAkC,CAAC,KAAK,CAAC,aAAa,EAAE,gBAAgB,CAAC;YAC1E,OAAO,SAAS,CAAC;QACnB,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,mBAAmB;YAAE,OAAO,SAAS,CAAC;QAC1E,IACE,CAAC,0BAA0B;YAC3B,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,qBAAqB,CAAC,cAAc,CAAC,EACnF,CAAC;YACD,MAAM,IAAI,YAAY,CACpB,oCAAoC,EACpC,iIAAiI,CAClI,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,WAAW;YACvB,KAAK,CAAC,eAAe,KAAK,WAAW;YACrC,KAAK,CAAC,aAAa,KAAK,EAAE;YAC1B,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,2BAA2B,CAC/B,GAAW,EACX,cAAsB,EACtB,0BAAmC,EACnC,mBAA4B,EAC5B,6BAAiD,EACjD,uBAA+B,EAC/B,gBAA4C,EAC5C,MAAoB;QAEpB,IACE,0BAA0B;YAC1B,6BAA6B,KAAK,SAAS;YAC3C,CAAC,mBAAmB,EACpB,CAAC;YACD,MAAM,IAAI,YAAY,CACpB,6CAA6C,EAC7C,4HAA4H,CAC7H,CAAC;QACJ,CAAC;QACD,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAC9C,GAAG,EACH,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS,EACtE,uBAAuB,EACvB,gBAAgB,CACjB,CAAC;QACF,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC;YAAE,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAC/C,GAAG,EACH,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS,EACtE,uBAAuB,EACvB,gBAAgB,CACjB,CAAC;QACF,OAAO,MAAM,KAAK,SAAS;YACzB,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa;YAC5C,MAAM,CAAC,qBAAqB,KAAK,KAAK,CAAC,qBAAqB;YAC5D,MAAM,CAAC,kBAAkB,KAAK,KAAK,CAAC,kBAAkB;YACtD,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,GAAW,EACX,cAAsB,EACtB,uBAA+B,EAC/B,MAAoB;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3F,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrF,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,SAAS,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;YAClF,SAAS,GAAG,KAAK,CAAC;YAClB,MAAM,KAAK,GACT,KAAK,CAAC,iBAAiB;gBACvB,CAAC,KAAK,CAAC,KAAK,KAAK,cAAc;oBAC7B,CAAC,KAAK,CAAC,KAAK,KAAK,kBAAkB;wBACjC,KAAK,CAAC,eAAe,GAAG,uBAAuB,CAAC,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YACjH,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;oBAClC,eAAe,GAAG,SAAS,CAAC;oBAC5B,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC3B,CAAC;gBACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,IAAI,iBAAiB,IAAI,KAAK,EAAE,CAAC;oBAC3D,OAAO,KAAK,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC;gBAC9E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,eAAe,GAAG,EAAE,CAAC;gBACrB,WAAW,GAAG,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,IAAI,YAAY,CACpB,6BAA6B,EAC7B,2HAA2H,EAC3H,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,SAAS,CAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,CAAC,eAAe,EAAE,EAAE,CAC9F,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,GAAW,EACX,kBAA0B,EAC1B,SAAwB;QAExB,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,YAAY,CACpB,oBAAoB,EACpB,2BAA2B,SAAS,CAAC,kBAAkB,IAAI,SAAS,6DAA6D,EACjI;gBACE,OAAO,EAAE;oBACP,oBAAoB,EAAE,kBAAkB;oBACxC,mBAAmB,EAAE,SAAS,CAAC,kBAAkB;iBAClD;aACF,CACF,CAAC;QACJ,CAAC;QACD,sEAAsE;QACtE,wEAAwE;QACxE,gDAAgD;QAChD,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC;QAC1C,IAAI,iBAAiB,CAAC,eAAe,CAAC;YAAE,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QAChF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;QAClC,MAAM,KAAK,GAA4B;YACrC,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,kBAAkB;YACjC,iBAAiB,EAAE,SAAS,CAAC,kBAAkB;YAC/C,MAAM,EAAE,uBAAuB;SAChC,CAAC;QACF,OAAO;YACL,IAAI,EAAE,SAAS,CAAC,aAAa;YAC7B,KAAK;YACL,GAAG,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC;YACtD,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;SAC1D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAuB,EACvB,OAA2B,EAC3B,KAAwB,EACxB,4BAA4B,GAAG,KAAK;QAEpC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,QAAQ,GACZ,CAAC,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC,MAAM,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,4CAA4C,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,CAAC,kBAAkB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3E,OAAO,CAAC,QAAQ,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC5C,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,CAAC;YAChE,IACE,CAAC,0BAA0B,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC,eAAe,CAAC;gBAC9E,gBAAgB,KAAK,KAAK,CAAC,eAAe,CAAC,wBAAwB,EACnE,CAAC;gBACD,MAAM,IAAI,YAAY,CACpB,2CAA2C,EAC3C,0GAA0G,EAC1G;oBACE,OAAO,EAAE;wBACP,KAAK,EAAE,YAAY;wBACnB,gBAAgB,EAAE,qBAAqB;wBACvC,oBAAoB,EAAE,KAAK,CAAC,eAAe,CAAC,kBAAkB;wBAC9D,2BAA2B,EACzB,KAAK,CAAC,eAAe,CAAC,wBAAwB;wBAChD,2BAA2B,EAAE,gBAAgB;qBAC9C;iBACF,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAClD,GAAG,EACH,KAAK,CAAC,MAAM,EACZ,iBAAiB,CAClB,CAAC;QACF,IAAI,gBAAgB,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,YAAY,CACpB,6BAA6B,EAC7B,6GAA6G,EAC7G;gBACE,OAAO,EAAE;oBACP,cAAc,EAAE,gBAAgB,CAAC,KAAK;oBACtC,gBAAgB,EAAE,gBAAgB,CAAC,eAAe;iBACnD;aACF,CACF,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,OAAO,CAAC,mBAAmB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAC5D,GAAG,EACH,KAAK,CAAC,MAAM,EACZ,gBAAgB,CAAC,eAAe,EAChC,KAAK,CAAC,MAAM,CACb,CAAC;QACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,eAAe,CACxB,KAAK,EACL,GAAG,EACH,OAAO,EACP,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,OAAO,CAAC,QAAQ,CACjB,CAAC;QACF,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;QAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAChF,IAAI,4BAA4B,EAAE,CAAC;YACjC,IAAI,CAAC,gBAAgB,GAAG,MAAM,iCAAiC,CAC7D,GAAG,EACH,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,IAAI,CAAC,QAAQ,CAAC,cAAc,EAC5B,KAAK,CAAC,MAAM,CACb,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC;QAC5B,MAAM,IAAI,CAAC,eAAe,CACxB,KAAK,EACL,GAAG,EACH,OAAO,EACP,KAAK,EACL,WAAW,EACX,UAAU,EACV,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,EAChE,OAAO,CAAC,QAAQ,CACjB,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,KAAuB,EACvB,OAA2B,EAC3B,KAAwB;QAExB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC7C,GAAG,EACH,OAAO,CAAC,QAAS,EACjB,KAAK,CAAC,eAAe,EACrB,KAAK,CAAC,MAAM,CACb,CAAC;QACF,OAAO,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,kBAAmB,EAAE,SAAS,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAuB,EACvB,GAAW,EACX,OAA2B,EAC3B,KAAmC,EACnC,eAA6D,EAC7D,iBAAsD,EACtD,uBAAgC,EAChC,aAAoC,EACpC,UAAoB;QAEpB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,OAAO,CAAC,mBAAmB;YAAE,OAAO;QAC7F,MAAM,UAAU,GAAG,uBAAuB,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtF,MAAM,aAAa,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACzF,IAAI,aAAa,KAAK,SAAS,IAAI,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,gBAAgB,GAAG,aAAa,CAAC;QACxC,CAAC;QACD,MAAM,QAAQ,GACZ,aAAa,KAAK,IAAI;YACpB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,aAAa,IAAI,CAAC,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7E,MAAM,2BAA2B,GAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,KAAK,IAAI;YACpC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QACxE,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC;YAC1B,eAAe;YACf,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAChD,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,iBAAiB,CAAC,aAAa,CAAC;gBACjE,CAAC,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE;gBACpC,CAAC,CAAC,EAAE,CAAC;YACP,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;YACrC,mBAAmB,EAAE,UAAU;YAC/B,wBAAwB,EAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC;YAChE,6BAA6B,EAAE,OAAO,CAAC,QAAQ,CAAC,qBAAqB;YACrE,2BAA2B;YAC3B,iBAAiB;YACjB,GAAG,CAAC,UAAU,YAAY,KAAK;gBAC7B,CAAC,CAAC;oBACE,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC7C,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;iBACpD;gBACH,CAAC,CAAC,UAAU,KAAK,SAAS;oBACxB,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,QAAQ,KAAK,SAAS;gBACxB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,WAAW,EAAE;wBACX,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,IAAI,CAAC;wBAChD,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;wBACrD,eAAe,EAAE,QAAQ,CAAC,eAAe;wBACzC,mBAAmB,EACjB,QAAQ,CAAC,YAAY,KAAK,IAAI;4BAC5B,CAAC,CAAC,IAAI;4BACN,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;wBAC/D,WAAW,EAAE,QAAQ,CAAC,WAAW;qBAClC;iBACF,CAAC;SACP,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CACb,KAAc,EACd,OAA2B,EAC3B,KAAuB;QAEvB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,eAAe,GAAG,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/D,MAAM,eAAe,GACnB,KAAK,YAAY,YAAY;YAC7B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;YACjC,KAAK,CAAC,OAAO,KAAK,IAAI;YACtB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAC3B,CAAC,CAAE,KAAK,CAAC,OAAmC;YAC5C,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,IAAI,YAAY,CACrB,KAAK,YAAY,YAAY;YAC3B,CAAC,CAAC,KAAK,CAAC,IAAI;YACZ,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,YAAY;gBAC9B,CAAC,CAAC,mBAAmB;gBACrB,CAAC,CAAC,8BAA8B,EACpC,OAAO,EACP;YACE,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE;gBACP,GAAG,eAAe;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,gBAAgB,EAAE,eAAe;gBACjC,UAAU,EAAE,KAAK,CAAC,SAAS;aAC5B;SACF,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAuB,EAAE,KAAwB;QAC9D,MAAM,OAAO,GAAuB,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAC5D,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACrF,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;YACtB,IAAI,OAAO,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAuB,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;gBACjE,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE;oBACzE,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACxC,MAAM,IAAI,YAAY,CACpB,qBAAqB,EACrB,uHAAuH,EACvH;oBACE,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE;wBACP,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,gBAAgB,EAAE,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC;wBACxD,UAAU,EAAE,KAAK,CAAC,SAAS;qBAC5B;iBACF,CACF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,kBAAkB;gBAAE,MAAM,KAAK,CAAC;YAClE,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC1C,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC;gBAC7D,MAAM,eAAe,GACnB,cAAc,CAAC,WAAW;oBAC1B,cAAc,CAAC,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC;gBAChF,IAAI,OAAO,CAAC,KAAK,KAAK,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvD,MAAM,IAAI,YAAY,CACpB,qBAAqB,EACrB,gIAAgI,EAChI;wBACE,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE;4BACP,KAAK,EAAE,OAAO,CAAC,KAAK;4BACpB,gBAAgB,EAAE,eAAe;4BACjC,UAAU,EAAE,KAAK,CAAC,SAAS;yBAC5B;qBACF,CACF,CAAC;gBACJ,CAAC;gBACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC7C,YAAY,EACZ,OAAO,CAAC,QAAQ,EAChB,KAAK,CAAC,eAAe,EACrB,KAAK,CAAC,MAAM,CACb,CAAC;gBACF,OAAO,IAAI,CAAC,wBAAwB,CAClC,YAAY,EACZ,OAAO,CAAC,kBAAkB,EAC1B,SAAS,CACV,CAAC;YACJ,CAAC;YAAC,OAAO,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAuB,EAAE,KAAwB;QAChE,MAAM,OAAO,GAAuB,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;gBACpE,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;YACtB,MAAM,YAAY,GAAuB,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;YACjE,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE;gBAChF,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,KAAuB,EACvB,iBAA0B;QAE1B,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,YAAY,CACpB,wCAAwC,EACxC,wFAAwF,EACxF;gBACE,OAAO,EAAE;oBACP,KAAK,EAAE,aAAa;oBACpB,gBAAgB,EAAE,eAAe;oBACjC,UAAU,EAAE,KAAK,CAAC,SAAS;iBAC5B;aACF,CACF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,kBAAkB,GAAG,MAAM,+BAA+B,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACpF,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,YAAY,CACpB,4CAA4C,EAC5C,sIAAsI,CACvI,CAAC;QACJ,CAAC;QACD,MAAM,0BAA0B,GAC9B,KAAK,CAAC,mBAAmB,KAAK,IAAI,IAAI,KAAK,CAAC,wBAAwB,KAAK,IAAI,CAAC;QAChF,MAAM,6BAA6B,GACjC,OAAO,KAAK,CAAC,6BAA6B,KAAK,QAAQ;YACvD,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,6BAA6B,CAAC;YACzD,KAAK,CAAC,6BAA6B,IAAI,CAAC;YACtC,CAAC,CAAC,KAAK,CAAC,6BAA6B;YACrC,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,gBAAgB,GAA+B;YACnD,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;SACnE,CAAC;QACF,MAAM,SAAS,GAAG,iBAAiB;YACjC,CAAC,CAAC,MAAM,IAAI,CAAC,2BAA2B,CACpC,GAAG,EACH,KAAK,CAAC,MAAM,EACZ,0BAA0B,EAC1B,KAAK,CAAC,mBAAmB,KAAK,IAAI,EAClC,6BAA6B,EAC7B,IAAI,CAAC,gBAAgB,EACrB,gBAAgB,EAChB,KAAK,CAAC,MAAM,CACb;YACH,CAAC,CAAC,MAAM,IAAI,CAAC,2BAA2B,CACpC,GAAG,EACH,KAAK,CAAC,MAAM,EACZ,0BAA0B,EAC1B,KAAK,CAAC,mBAAmB,KAAK,IAAI,EAClC,6BAA6B,EAC7B,IAAI,CAAC,gBAAgB,EACrB,gBAAgB,EAChB,KAAK,CAAC,MAAM,CACb,CAAC;QACN,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,IACE,KAAK,CAAC,eAAe,KAAK,SAAS;YACnC,CAAC,SAAS,CAAC,gBAAgB,IAAI,CAAC,CAAC;gBAC/B,KAAK,CAAC,eAAe,CAAC,wBAAwB,GAAG,CAAC,EACpD,CAAC;YACD,MAAM,IAAI,YAAY,CACpB,2CAA2C,EAC3C,oFAAoF,EACpF;gBACE,OAAO,EAAE;oBACP,KAAK,EAAE,mBAAmB;oBAC1B,gBAAgB,EAAE,eAAe;oBACjC,oBAAoB,EAAE,KAAK,CAAC,eAAe,CAAC,kBAAkB;oBAC9D,2BAA2B,EACzB,KAAK,CAAC,eAAe,CAAC,wBAAwB;oBAChD,2BAA2B,EAAE,SAAS,CAAC,gBAAgB,IAAI,CAAC;iBAC7D;aACF,CACF,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,YAAY,CACpB,iDAAiD,EACjD,sFAAsF,CACvF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;IAC3E,CAAC;IAED,sBAAsB,CAAC,KAAc,EAAE,KAAuB;QAC5D,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,eAAe,GACnB,KAAK,YAAY,YAAY;YAC7B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;YACjC,KAAK,CAAC,OAAO,KAAK,IAAI;YACtB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAC3B,CAAC,CAAE,KAAK,CAAC,OAAmC;YAC5C,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,IAAI,YAAY,CACrB,KAAK,YAAY,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,EACxE,OAAO,EACP;YACE,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE;gBACP,GAAG,eAAe;gBAClB,KAAK,EAAE,aAAa;gBACpB,gBAAgB,EAAE,eAAe;gBACjC,UAAU,EAAE,KAAK,CAAC,SAAS;aAC5B;SACF,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAuB;QACvC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAuB;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACvD,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAClF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,KAAsC,EACtC,KAAK,GAAoC,EAAE;QAE3C,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,YAAY,CACpB,8CAA8C,EAC9C,gEAAgE,CACjE,CAAC;QACJ,CAAC;QACD,IACE,IAAI,CAAC,gBAAgB,KAAK,SAAS;YACnC,CAAC,0BAA0B,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,eAAe,CAAC,EACzE,CAAC;YACD,MAAM,IAAI,YAAY,CACpB,0CAA0C,EAC1C,iFAAiF,CAClF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,eAAe,CAAC;QAC9C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,YAAY,CACpB,0CAA0C,EAC1C,sEAAsE,CACvE,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,YAAY,CACpB,0CAA0C,EAC1C,mEAAmE,CACpE,CAAC;QACJ,CAAC;QACD,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1B,MAAM,IAAI,YAAY,CACpB,4CAA4C,EAC5C,+EAA+E,CAChF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,YAAY,CACpB,6CAA6C,EAC7C,kEAAkE,CACnE,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAC5E,IAAI,CAAC,CAAC,MAAM,mBAAmB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,YAAY,CACpB,6CAA6C,EAC7C,mFAAmF,CACpF,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,iBAAiB,CACzC,GAAG,EACH,UAAU,EACV,sBAAsB,CACvB,CAAC;QACF,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,YAAY,CACpB,6CAA6C,EAC7C,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,0BAA0B,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,YAAY,CACpB,0CAA0C,EAC1C,8FAA8F,CAC/F,CAAC;QACJ,CAAC;QACD,IAAI,cAAc,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,YAAY,CACpB,4CAA4C,EAC5C,+FAA+F,CAChG,CAAC;QACJ,CAAC;QAED,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC;QACrC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,mBAAmB,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YACpF,MAAM,IAAI,YAAY,CACpB,0CAA0C,EAC1C,mGAAmG,CACpG,CAAC;QACJ,CAAC;QACD,IAAI,mBAAmB,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,IAAI,YAAY,CACpB,4CAA4C,EAC5C,oGAAoG,CACrG,CAAC;QACJ,CAAC;QAED,IAAI,YAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,GAAG,KAAK,CAAC;QACvB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC;QAC1F,OAAO,IAAI,EAAE,CAAC;YACZ,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/B,MAAM,aAAa,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;YACrE,IACE,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC;gBACrC,CAAC,0BAA0B,CAAC,aAAa,EAAE,KAAK,CAAC,eAAe,CAAC,EACjE,CAAC;gBACD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;gBACtB,OAAO;oBACL,eAAe,EAAE,KAAK,CAAC,eAAe;oBACtC,KAAK,EAAE,0BAA0B;oBACjC,aAAa;iBACd,CAAC;YACJ,CAAC;YACD,MAAM,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1C,IAAI,WAAW,IAAI,CAAC;gBAAE,MAAM;YAC5B,MAAM,GAAG,CAAC,UAAU,CAAC,cAAc,CACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,CACpD,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,YAAY,CACpB,2CAA2C,EAC3C,qHAAqH,EACrH,EAAE,KAAK,EAAE,YAAY,EAAE,CACxB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAO,GAA2B,EAAE;IACxE,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
@@ -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>;