@essentialai/cogent-bridge 3.19.2 → 3.20.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.
@@ -0,0 +1,398 @@
1
+ import path from "node:path";
2
+ import fs from "node:fs/promises";
3
+ import { spawn } from "node:child_process";
4
+ import WebSocket from "ws";
5
+ import { getConfig } from "../config.js";
6
+ import { codexHomeDir } from "./agent-config.js";
7
+ const defaultWsFactory = (url, opts) => new WebSocket(url, opts);
8
+ /** Control socket for the codex app-server daemon under a given codex home. */
9
+ export function appServerSocketPath(codexHome = codexHomeDir()) {
10
+ return path.join(codexHome, "app-server-control", "app-server-control.sock");
11
+ }
12
+ /** The `ws+unix://<sock>:/rpc` URL the daemon speaks JSON-RPC over. */
13
+ export function rpcUrl(sock) {
14
+ return `ws+unix://${sock}:/rpc`;
15
+ }
16
+ /**
17
+ * Whether the app-server daemon has been ensured in THIS bridge process. The
18
+ * daemon is a long-lived background process, so we start/confirm it once and
19
+ * cache the socket; if it later dies, the ws connect fails → appServerUnavailable
20
+ * → graceful fallback (and the cache is left for the next process). Reset for
21
+ * test isolation. Mirrors the `sandboxOverride` module-cache pattern.
22
+ */
23
+ let ensuredSock = null;
24
+ export function resetDaemonCache() {
25
+ ensuredSock = null;
26
+ }
27
+ const defaultRun = (cmd, args, env) => new Promise((resolve) => {
28
+ const child = spawn(cmd, args, { env, stdio: ["ignore", "pipe", "pipe"] });
29
+ let stdout = "";
30
+ let stderr = "";
31
+ child.stdout.on("data", (c) => (stdout += c.toString()));
32
+ child.stderr.on("data", (c) => (stderr += c.toString()));
33
+ child.on("error", (err) => resolve({ stdout, stderr: stderr + String(err), code: 127 }));
34
+ child.on("close", (code) => resolve({ stdout, stderr, code }));
35
+ });
36
+ const defaultSocketExists = async (p) => {
37
+ try {
38
+ await fs.stat(p);
39
+ return true;
40
+ }
41
+ catch {
42
+ return false;
43
+ }
44
+ };
45
+ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
46
+ /**
47
+ * Ensure the codex app-server daemon is running for `codexHome` and return its
48
+ * control socket. Idempotent (`codex app-server daemon start` is a no-op when the
49
+ * daemon is already up). Throws if the socket never appears — the caller
50
+ * (`execRemote`) catches this and falls back to the `exec-resume` rail.
51
+ */
52
+ export async function ensureDaemon(codexHome = codexHomeDir(), deps = {}) {
53
+ if (ensuredSock)
54
+ return ensuredSock;
55
+ const run = deps.run ?? defaultRun;
56
+ const socketExists = deps.socketExists ?? defaultSocketExists;
57
+ const waitMs = deps.waitMs ?? 8000;
58
+ const pollMs = deps.pollMs ?? 150;
59
+ const codexPath = getConfig().COGENT_CODEX_PATH;
60
+ const env = { ...process.env, CODEX_HOME: codexHome };
61
+ const res = await run(codexPath, ["app-server", "daemon", "start"], env);
62
+ // The app-server daemon spawns/updates from a MANAGED-STANDALONE codex install
63
+ // at a fixed path; the npm/Homebrew `@openai/codex` package does NOT create it,
64
+ // so the daemon refuses to start. Surface codex's official remediation clearly
65
+ // (the caller falls back to exec-resume → the honest "queued" message).
66
+ if (/managed standalone Codex install not found/i.test(`${res.stdout}\n${res.stderr}`)) {
67
+ throw new Error("MANAGED_CODEX_REQUIRED: the codex app-server daemon needs the managed-standalone " +
68
+ "codex install, which the npm/Homebrew @openai/codex package does not provide. " +
69
+ "Install it with: curl -fsSL https://chatgpt.com/codex/install.sh | sh " +
70
+ "then relaunch via cogent-codex. (Until then, codex answers at its next turn, not in real time.)");
71
+ }
72
+ // `daemon start` prints JSON with the socketPath; fall back to the derived path.
73
+ let sock = appServerSocketPath(codexHome);
74
+ try {
75
+ const parsed = JSON.parse(res.stdout.trim());
76
+ if (parsed && typeof parsed.socketPath === "string")
77
+ sock = parsed.socketPath;
78
+ }
79
+ catch {
80
+ /* non-JSON stdout (e.g. "already running") → derived path */
81
+ }
82
+ const deadline = Date.now() + waitMs;
83
+ while (!(await socketExists(sock))) {
84
+ if (Date.now() >= deadline) {
85
+ throw new Error(`app-server daemon socket did not appear at ${sock} within ${waitMs}ms (stderr: ${res.stderr.trim() || "none"})`);
86
+ }
87
+ await sleep(pollMs);
88
+ }
89
+ ensuredSock = sock;
90
+ return sock;
91
+ }
92
+ /** True if an item looks like the agent's final message ("agentMessage"/"agent_message"). */
93
+ function isAgentMessage(item) {
94
+ return typeof item?.type === "string" && /^agent[_-]?message$/i.test(item.type);
95
+ }
96
+ /** Pull the text out of an agent-message item (plain `.text` or a content[] of text parts). */
97
+ function itemText(item) {
98
+ if (typeof item?.text === "string")
99
+ return item.text;
100
+ if (Array.isArray(item?.content)) {
101
+ return item.content
102
+ .filter((c) => typeof c?.text === "string")
103
+ .map((c) => c.text)
104
+ .join("");
105
+ }
106
+ return "";
107
+ }
108
+ /**
109
+ * Extract the agent's reply text from the collected turn notifications. Prefers
110
+ * the final `turn/completed` items; falls back to streamed `item/completed`
111
+ * agent messages when the completed turn carries none. Tolerant of the exact
112
+ * shape (experimental API) — the live test pins the real wire format.
113
+ */
114
+ export function extractAgentMessageText(notes) {
115
+ const fromCompleted = [];
116
+ const fromStream = [];
117
+ for (const n of notes) {
118
+ if (n.method === "turn/completed") {
119
+ const items = n.params?.items ?? n.params?.turn?.items ?? [];
120
+ for (const it of items)
121
+ if (isAgentMessage(it))
122
+ fromCompleted.push(itemText(it));
123
+ }
124
+ else if (n.method === "item/completed") {
125
+ const it = n.params?.item;
126
+ if (isAgentMessage(it))
127
+ fromStream.push(itemText(it));
128
+ }
129
+ }
130
+ const chosen = fromCompleted.length > 0 ? fromCompleted : fromStream;
131
+ return chosen.join("").trim();
132
+ }
133
+ /**
134
+ * A thin JSON-RPC-over-WebSocket client for the codex app-server daemon.
135
+ * `connect()` resolves once the socket is open + `initialize` succeeds.
136
+ */
137
+ export class AppServerClient {
138
+ ws;
139
+ nextId = 1;
140
+ pending = new Map();
141
+ notifyListeners = new Set();
142
+ opened;
143
+ openResolved = false;
144
+ constructor(ws) {
145
+ this.ws = ws;
146
+ this.opened = new Promise((resolve, reject) => {
147
+ ws.on("open", () => {
148
+ this.openResolved = true;
149
+ resolve();
150
+ });
151
+ ws.on("unexpected-response", (_req, res) => {
152
+ if (!this.openResolved)
153
+ reject(new Error(`app-server ws upgrade rejected: HTTP ${res?.statusCode}`));
154
+ });
155
+ ws.on("error", (err) => {
156
+ if (!this.openResolved)
157
+ reject(err);
158
+ else
159
+ this._failAll(err);
160
+ });
161
+ ws.on("close", () => {
162
+ if (this.openResolved)
163
+ this._failAll(new Error("app-server ws closed"));
164
+ });
165
+ });
166
+ ws.on("message", (data) => this._onMessage(data));
167
+ }
168
+ /** Await the open handshake. Rejects (before open) on connect/upgrade errors. */
169
+ waitOpen() {
170
+ return this.opened;
171
+ }
172
+ _failAll(err) {
173
+ for (const [, p] of this.pending)
174
+ p.reject(err);
175
+ this.pending.clear();
176
+ }
177
+ _onMessage(data) {
178
+ let msg;
179
+ try {
180
+ msg = JSON.parse(data.toString());
181
+ }
182
+ catch {
183
+ return; // ignore non-JSON frames
184
+ }
185
+ if (typeof msg.id === "number" && this.pending.has(msg.id)) {
186
+ const p = this.pending.get(msg.id);
187
+ this.pending.delete(msg.id);
188
+ if (msg.error)
189
+ p.reject(Object.assign(new Error(msg.error.message ?? "rpc error"), { rpcError: msg.error }));
190
+ else
191
+ p.resolve(msg.result);
192
+ return;
193
+ }
194
+ if (typeof msg.method === "string") {
195
+ for (const cb of this.notifyListeners)
196
+ cb(msg);
197
+ }
198
+ }
199
+ /** Issue a JSON-RPC request and resolve with its result (rejects on rpc error). */
200
+ request(method, params) {
201
+ const id = this.nextId++;
202
+ const p = new Promise((resolve, reject) => {
203
+ this.pending.set(id, { resolve, reject });
204
+ });
205
+ this.ws.send(JSON.stringify({ jsonrpc: "2.0", id, method, params }));
206
+ return p;
207
+ }
208
+ /** Subscribe to server notifications; returns an unsubscribe fn. */
209
+ onNotification(cb) {
210
+ this.notifyListeners.add(cb);
211
+ return () => this.notifyListeners.delete(cb);
212
+ }
213
+ close() {
214
+ try {
215
+ this.ws.close();
216
+ }
217
+ catch {
218
+ /* ignore */
219
+ }
220
+ }
221
+ }
222
+ /**
223
+ * Map COGENT_CODEX_SANDBOX to an explicit turn/start `sandboxPolicy`, so a PEER's
224
+ * injected turn is bounded by the CONFIGURED sandbox — not by whatever privilege
225
+ * the human happened to launch codex with (a live thread may be
226
+ * danger-full-access). Keeps the app-server rail's sandbox consistent with the
227
+ * exec-resume rail. Default (workspace-write) allows edits under the cwd, no net.
228
+ */
229
+ export function sandboxPolicyFor(mode, cwd) {
230
+ switch (mode) {
231
+ case "read-only":
232
+ return { type: "readOnly", networkAccess: false };
233
+ case "danger-full-access":
234
+ case "bypass":
235
+ return { type: "dangerFullAccess" };
236
+ case "workspace-write":
237
+ case "full-auto":
238
+ default:
239
+ return {
240
+ type: "workspaceWrite",
241
+ writableRoots: [cwd],
242
+ networkAccess: false,
243
+ excludeTmpdirEnvVar: false,
244
+ excludeSlashTmp: false,
245
+ };
246
+ }
247
+ }
248
+ const idempotencyCache = new Map();
249
+ /** How long a completed injection is remembered to suppress a duplicate delivery. */
250
+ const IDEMPOTENCY_TTL_MS = 300_000;
251
+ /** Clear the injection idempotency cache (test isolation). */
252
+ export function resetAppServerIdempotency() {
253
+ idempotencyCache.clear();
254
+ }
255
+ /**
256
+ * Inject `message` as a turn into the codex thread `threadId` via the app-server
257
+ * daemon, and return the agent's reply as a {@link CliExecResult} (parallel to
258
+ * `execCodex`). When `deps.idempotencyKey` is set, a duplicate injection of the
259
+ * same message into the same thread is coalesced/short-circuited (never a second
260
+ * daemon turn). Closing our client afterward only detaches THIS client — the
261
+ * daemon + thread (and the human's TUI) persist.
262
+ */
263
+ export function execCodexViaAppServer(threadId, message, cwd, timeoutMs, deps = {}) {
264
+ const key = deps.idempotencyKey ? `${threadId}::${deps.idempotencyKey}` : null;
265
+ if (!key)
266
+ return _injectTurn(threadId, message, cwd, timeoutMs, deps);
267
+ const existing = idempotencyCache.get(key);
268
+ if (existing) {
269
+ // Completed within TTL → same result (no second turn). Still in-flight →
270
+ // coalesce onto the same promise (e.g. a redelivery while the daemon runs).
271
+ return existing.done ? Promise.resolve(existing.done.result) : existing.promise;
272
+ }
273
+ const promise = _injectTurn(threadId, message, cwd, timeoutMs, deps);
274
+ const entry = { promise };
275
+ idempotencyCache.set(key, entry);
276
+ // `_injectTurn` always RESOLVES a CliExecResult (never throws); cache success
277
+ // AND failure for the TTL so a redelivery is suppressed either way, then evict.
278
+ void promise.then((result) => {
279
+ entry.done = { result, at: Date.now() };
280
+ const t = setTimeout(() => idempotencyCache.delete(key), IDEMPOTENCY_TTL_MS);
281
+ if (typeof t.unref === "function")
282
+ t.unref();
283
+ });
284
+ return promise;
285
+ }
286
+ async function _injectTurn(threadId, message, cwd, timeoutMs, deps = {}) {
287
+ const config = getConfig();
288
+ const effectiveTimeout = timeoutMs ?? config.COGENT_TIMEOUT_MS;
289
+ const truncated = config.COGENT_CHAR_LIMIT > 0 && message.length > config.COGENT_CHAR_LIMIT
290
+ ? message.slice(0, config.COGENT_CHAR_LIMIT) + "\n...[truncated]"
291
+ : message;
292
+ const sock = deps.socketPath ?? appServerSocketPath();
293
+ const wsFactory = deps.wsFactory ?? defaultWsFactory;
294
+ let client;
295
+ try {
296
+ const ws = wsFactory(rpcUrl(sock), { perMessageDeflate: false, headers: { Host: "localhost" } });
297
+ client = new AppServerClient(ws);
298
+ await client.waitOpen();
299
+ await client.request("initialize", {
300
+ clientInfo: { name: "cogent-bridge", version: "1" },
301
+ capabilities: { experimentalApi: true },
302
+ });
303
+ }
304
+ catch (err) {
305
+ // Could not reach/handshake the daemon → let the caller fall back to exec-resume.
306
+ return {
307
+ stdout: "",
308
+ stderr: `APP_SERVER_UNAVAILABLE: ${err.message}`,
309
+ exitCode: 1,
310
+ appServerUnavailable: true,
311
+ };
312
+ }
313
+ try {
314
+ // Attach to the human's existing live thread (does NOT create a new one),
315
+ // then inject the peer message as a turn on THAT thread.
316
+ await client.request("thread/resume", { threadId, cwd });
317
+ // Subscribe BEFORE turn/start so no completion is missed; buffer until we know
318
+ // OUR turn id. Verified against codex 0.147: turn/completed carries
319
+ // `params.turn.id` (the same id turn/start returns). We match on it so a
320
+ // CONCURRENT turn on the same thread — e.g. the human's own turn — can never be
321
+ // captured as this peer's reply. If the daemon omits the id (older codex),
322
+ // fall back to a threadId match.
323
+ const buffered = [];
324
+ let myTurnId;
325
+ const isMine = (msg) => msg.method === "turn/completed" &&
326
+ (myTurnId !== undefined ? msg.params?.turn?.id === myTurnId : msg.params?.threadId === threadId);
327
+ let deliver = null;
328
+ const off = client.onNotification((msg) => {
329
+ if (msg.method !== "turn/completed")
330
+ return;
331
+ if (myTurnId === undefined) {
332
+ buffered.push(msg); // hold until we learn our turn id
333
+ return;
334
+ }
335
+ if (isMine(msg) && deliver) {
336
+ const d = deliver;
337
+ deliver = null;
338
+ d(msg);
339
+ }
340
+ });
341
+ const startResult = await client.request("turn/start", {
342
+ threadId,
343
+ input: [{ type: "text", text: truncated }],
344
+ // Bound the injected peer turn by the CONFIGURED sandbox (not the human
345
+ // session's privilege). See sandboxPolicyFor.
346
+ sandboxPolicy: sandboxPolicyFor(config.COGENT_CODEX_SANDBOX, cwd),
347
+ // Native correlation id (daemon does NOT auto-dedupe on it — our own
348
+ // idempotency guard does; this is for daemon-side correlation/telemetry).
349
+ ...(deps.idempotencyKey ? { clientUserMessageId: deps.idempotencyKey } : {}),
350
+ });
351
+ myTurnId = startResult?.turn?.id;
352
+ const turnCompleted = await new Promise((resolve) => {
353
+ deliver = resolve;
354
+ const early = buffered.find(isMine); // did our completion arrive before we knew the id?
355
+ if (early) {
356
+ deliver = null;
357
+ resolve(early);
358
+ return;
359
+ }
360
+ setTimeout(() => {
361
+ if (deliver) {
362
+ deliver = null;
363
+ resolve(null);
364
+ }
365
+ }, effectiveTimeout);
366
+ });
367
+ off();
368
+ if (!turnCompleted) {
369
+ return {
370
+ stdout: "",
371
+ stderr: `CLI_TIMEOUT: app-server turn did not complete within ${effectiveTimeout}ms`,
372
+ exitCode: null,
373
+ };
374
+ }
375
+ const text = extractAgentMessageText([turnCompleted]);
376
+ return {
377
+ stdout: text,
378
+ stderr: "",
379
+ exitCode: 0,
380
+ captureContract: "event_stream",
381
+ stable: true,
382
+ };
383
+ }
384
+ catch (err) {
385
+ // A turn/thread RPC errored on the daemon. This is NOT a reachability
386
+ // problem, so do not flag appServerUnavailable (falling back to exec-resume
387
+ // would hit the same live thread and also fail).
388
+ return {
389
+ stdout: "",
390
+ stderr: `CLI_EXEC_FAILED: app-server turn failed: ${err.message}`,
391
+ exitCode: 1,
392
+ };
393
+ }
394
+ finally {
395
+ client.close();
396
+ }
397
+ }
398
+ //# sourceMappingURL=codex-app-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-app-server.js","sourceRoot":"","sources":["../../src/services/codex-app-server.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,14 @@ export declare function effectiveSandbox(config: Config): Config["COGENT_CODEX_S
15
15
  * remedy instead of a generic exec failure.
16
16
  */
17
17
  export declare const SANDBOX_FAILURE_RE: RegExp;
18
+ /**
19
+ * Signature of the codex >=0.145 SINGLE-WRITER thread-store conflict: the target
20
+ * thread is held by a live interactive TUI, so `codex exec resume` cannot open
21
+ * its writer and fast-fails. Used to tag `CliExecResult.codexLiveSession` so the
22
+ * caller surfaces an honest "queued — will answer next turn" message (and points
23
+ * at the app-server rail) instead of a generic capture failure.
24
+ */
25
+ export declare const ACTIVE_WRITER_RE: RegExp;
18
26
  /**
19
27
  * Resume a Codex session non-interactively and return its final agent message.
20
28
  * Parallel to execClaude() in cc-cli.ts. Uses `-o <file>` to capture the last
@@ -1 +1 @@
1
- {"version":3,"file":"codex-cli.d.ts","sourceRoot":"","sources":["../../src/services/codex-cli.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAqCtD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,IAAI,GAAG,IAAI,CAEpF;AACD,2CAA2C;AAC3C,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AACD,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAE/E;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,QAC+J,CAAC;AAE/L;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CA8HxB;AA2FD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmBnF;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAuBnD;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAW9E"}
1
+ {"version":3,"file":"codex-cli.d.ts","sourceRoot":"","sources":["../../src/services/codex-cli.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAqCtD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,IAAI,GAAG,IAAI,CAEpF;AACD,2CAA2C;AAC3C,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AACD,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAE/E;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,QAC+J,CAAC;AAE/L;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,QAA+D,CAAC;AAE7F;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAkIxB;AA2FD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmBnF;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAuBnD;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAW9E"}
@@ -58,6 +58,14 @@ export function effectiveSandbox(config) {
58
58
  * remedy instead of a generic exec failure.
59
59
  */
60
60
  export const SANDBOX_FAILURE_RE = /bwrap:|setting up uid ?map|\/proc\/self\/(uid|gid)_map|newuidmap|user namespaces?|RTM_NEWADDR|unshare[^\n]*(Operation not permitted|Permission denied)|clone3?[^\n]*(EPERM|not permitted)/i;
61
+ /**
62
+ * Signature of the codex >=0.145 SINGLE-WRITER thread-store conflict: the target
63
+ * thread is held by a live interactive TUI, so `codex exec resume` cannot open
64
+ * its writer and fast-fails. Used to tag `CliExecResult.codexLiveSession` so the
65
+ * caller surfaces an honest "queued — will answer next turn" message (and points
66
+ * at the app-server rail) instead of a generic capture failure.
67
+ */
68
+ export const ACTIVE_WRITER_RE = /already has an active writer|thread-store conflict|-32600/i;
61
69
  /**
62
70
  * Resume a Codex session non-interactively and return its final agent message.
63
71
  * Parallel to execClaude() in cc-cli.ts. Uses `-o <file>` to capture the last
@@ -143,11 +151,15 @@ export function execCodex(sessionId, message, cwd, timeoutMs) {
143
151
  // Detect an OS-sandbox init failure (unprivileged userns blocked) so the
144
152
  // caller can surface an actionable remedy instead of a generic failure.
145
153
  const sandboxBlocked = SANDBOX_FAILURE_RE.test(stderr);
154
+ // codex >=0.145 single-writer conflict: the agent is live in a TUI, so
155
+ // this isn't a real failure — the message is effectively queued.
156
+ const codexLiveSession = ACTIVE_WRITER_RE.test(stderr);
146
157
  safeResolve({
147
158
  stdout: "",
148
159
  stderr: `CLI_EXEC_FAILED: codex exited with code ${code}. stderr: ${stderr}`,
149
160
  exitCode: code,
150
161
  ...(sandboxBlocked ? { sandboxBlocked: true } : {}),
162
+ ...(codexLiveSession ? { codexLiveSession: true } : {}),
151
163
  });
152
164
  return;
153
165
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codex-cli.js","sourceRoot":"","sources":["../../src/services/codex-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-cli.js","sourceRoot":"","sources":["../../src/services/codex-cli.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,9 @@ export type Platform = "cc" | "codex" | "slack" | "gchat" | "web";
5
5
  * the local peer's platform. Only "codex" diverges; everything else (and the
6
6
  * non-CLI platforms, which never reach auto-relay) uses the Claude path.
7
7
  */
8
- export declare function execRemote(platform: Platform, sessionId: string, message: string, cwd: string, timeoutMs?: number): Promise<CliExecResult>;
8
+ export declare function execRemote(platform: Platform, sessionId: string, message: string, cwd: string, timeoutMs?: number, opts?: {
9
+ idempotencyKey?: string;
10
+ }): Promise<CliExecResult>;
9
11
  /** Platform-aware "find the current session id for this cwd". */
10
12
  export declare function detectCurrentSessionFor(platform: Platform, cwd: string): Promise<string | null>;
11
13
  /** Platform-aware "list all candidate sessions for this cwd" (name + mtime). */
@@ -1 +1 @@
1
- {"version":3,"file":"exec-remote.d.ts","sourceRoot":"","sources":["../../src/services/exec-remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAQxB;AAED,iEAAiE;AACjE,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAQnD;AAED,iEAAiE;AACjE,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC,CAQlB"}
1
+ {"version":3,"file":"exec-remote.d.ts","sourceRoot":"","sources":["../../src/services/exec-remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAM5C,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AA+BlE;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC,OAAO,CAAC,aAAa,CAAC,CAQxB;AAED,iEAAiE;AACjE,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAQnD;AAED,iEAAiE;AACjE,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC,CAQlB"}
@@ -1,14 +1,40 @@
1
+ import { getConfig } from "../config.js";
1
2
  import { execClaude, detectCurrentSession, validateSession, listCandidates } from "./cc-cli.js";
2
3
  import { execCodex, detectCurrentCodexSession, validateCodexSession, listCodexCandidates } from "./codex-cli.js";
4
+ import { ensureDaemon, execCodexViaAppServer } from "./codex-app-server.js";
5
+ /**
6
+ * Codex wake dispatch, honoring COGENT_CODEX_WAKE. Default `exec-resume` keeps
7
+ * the current `codex exec resume` behavior byte-for-byte. `app-server` injects
8
+ * the turn through the daemon (fixes the `-32600 active writer` wall on a LIVE
9
+ * interactive codex, codex >=0.145) and GRACEFULLY FALLS BACK to `exec-resume`
10
+ * when the daemon can't be reached — so a codex launched without the wrapper
11
+ * still degrades to current behavior (→ honest "queued" message) rather than
12
+ * failing outright.
13
+ */
14
+ async function execCodexWake(sessionId, message, cwd, timeoutMs, idempotencyKey) {
15
+ if (getConfig().COGENT_CODEX_WAKE === "app-server") {
16
+ try {
17
+ const sock = await ensureDaemon();
18
+ const result = await execCodexViaAppServer(sessionId, message, cwd, timeoutMs, { socketPath: sock, idempotencyKey });
19
+ if (!result.appServerUnavailable)
20
+ return result;
21
+ // daemon unreachable at RPC layer → fall through to exec-resume
22
+ }
23
+ catch {
24
+ // ensureDaemon failed (no daemon / socket never appeared) → fall through
25
+ }
26
+ }
27
+ return execCodex(sessionId, message, cwd, timeoutMs);
28
+ }
3
29
  /**
4
30
  * Dispatch a non-interactive "resume + send" to the local agent CLI based on
5
31
  * the local peer's platform. Only "codex" diverges; everything else (and the
6
32
  * non-CLI platforms, which never reach auto-relay) uses the Claude path.
7
33
  */
8
- export function execRemote(platform, sessionId, message, cwd, timeoutMs) {
34
+ export function execRemote(platform, sessionId, message, cwd, timeoutMs, opts) {
9
35
  switch (platform) {
10
36
  case "codex":
11
- return execCodex(sessionId, message, cwd, timeoutMs);
37
+ return execCodexWake(sessionId, message, cwd, timeoutMs, opts?.idempotencyKey);
12
38
  case "cc":
13
39
  default:
14
40
  return execClaude(sessionId, message, cwd, timeoutMs);
@@ -1 +1 @@
1
- {"version":3,"file":"exec-remote.js","sourceRoot":"","sources":["../../src/services/exec-remote.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAIjH;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,QAAkB,EAClB,SAAiB,EACjB,OAAe,EACf,GAAW,EACX,SAAkB;IAElB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACvD,KAAK,IAAI,CAAC;QACV;YACE,OAAO,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,uBAAuB,CACrC,QAAkB,EAClB,GAAW;IAEX,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,yBAAyB,CAAC,GAAG,CAAC,CAAC;QACxC,KAAK,IAAI,CAAC;QACV;YACE,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,iBAAiB,CAC/B,QAAkB,EAClB,GAAW;IAEX,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,IAAI,CAAC;QACV;YACE,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,kBAAkB,CAChC,QAAkB,EAClB,SAAiB,EACjB,GAAW;IAEX,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACzC,KAAK,IAAI,CAAC;QACV;YACE,OAAO,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"exec-remote.js","sourceRoot":"","sources":["../../src/services/exec-remote.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACjH,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAI5E;;;;;;;;GAQG;AACH,KAAK,UAAU,aAAa,CAC1B,SAAiB,EACjB,OAAe,EACf,GAAW,EACX,SAAkB,EAClB,cAAuB;IAEvB,IAAI,SAAS,EAAE,CAAC,iBAAiB,KAAK,YAAY,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;YACrH,IAAI,CAAC,MAAM,CAAC,oBAAoB;gBAAE,OAAO,MAAM,CAAC;YAChD,gEAAgE;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,yEAAyE;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,QAAkB,EAClB,SAAiB,EACjB,OAAe,EACf,GAAW,EACX,SAAkB,EAClB,IAAkC;IAElC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACjF,KAAK,IAAI,CAAC;QACV;YACE,OAAO,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,uBAAuB,CACrC,QAAkB,EAClB,GAAW;IAEX,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,yBAAyB,CAAC,GAAG,CAAC,CAAC;QACxC,KAAK,IAAI,CAAC;QACV;YACE,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,iBAAiB,CAC/B,QAAkB,EAClB,GAAW;IAEX,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,IAAI,CAAC;QACV;YACE,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,kBAAkB,CAChC,QAAkB,EAClB,SAAiB,EACjB,GAAW;IAEX,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACzC,KAAK,IAAI,CAAC;QACV;YACE,OAAO,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
package/dist/types.d.ts CHANGED
@@ -138,5 +138,22 @@ export interface CliExecResult {
138
138
  * actionable message instead of a generic failure. Absent otherwise.
139
139
  */
140
140
  sandboxBlocked?: boolean;
141
+ /**
142
+ * True when the `app-server` codex-wake rail could not REACH the daemon
143
+ * (socket missing, ws upgrade failed, initialize errored) — as opposed to a
144
+ * turn that ran but failed. Lets `execRemote` gracefully fall back to the
145
+ * `exec-resume` rail so a mis-launched agent still degrades to current
146
+ * behavior. Absent on the `exec-resume` rail and on successful app-server runs.
147
+ */
148
+ appServerUnavailable?: boolean;
149
+ /**
150
+ * True when a non-zero Codex exit was the SINGLE-WRITER thread-store conflict
151
+ * (`-32600 already has an active writer`) — i.e. the codex agent is live in an
152
+ * interactive TUI, so `codex exec resume` cannot get the writer. Lets auto-relay
153
+ * surface an honest "queued — answers at its next turn" message (and point at
154
+ * COGENT_CODEX_WAKE=app-server) instead of an alarming "could not capture a
155
+ * reply". Absent otherwise. Only the `exec-resume` rail sets it.
156
+ */
157
+ codexLiveSession?: boolean;
141
158
  }
142
159
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClD;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;IAC5D;;;;;OAKG;IACH,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED,wFAAwF;AACxF,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,cAAc,GAAG,eAAe,CAAC;IACnD,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClD;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;IAC5D;;;;;OAKG;IACH,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED,wFAAwF;AACxF,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,cAAc,GAAG,eAAe,CAAC;IACnD,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B"}