@tryglen/cli 0.38.4 → 0.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/_generated/contract/procedures.gen.js +2 -1
- package/dist/_generated/contract/procedures.gen.js.map +1 -1
- package/dist/_generated/contract/zod.gen.js +62 -0
- package/dist/_generated/contract/zod.gen.js.map +1 -1
- package/dist/bin.js +2 -2
- package/dist/bin.js.map +1 -1
- package/dist/commands/import/_utils/chunk-turns.js +21 -0
- package/dist/commands/import/_utils/chunk-turns.js.map +1 -0
- package/dist/commands/import/_utils/send-with-retry.js +15 -0
- package/dist/commands/import/_utils/send-with-retry.js.map +1 -0
- package/dist/commands/import/import.options.js +16 -1
- package/dist/commands/import/import.options.js.map +1 -1
- package/dist/commands/import/index.js +244 -42
- package/dist/commands/import/index.js.map +1 -1
- package/dist/commands/takeover/_utils/agent-paths.js +2 -1
- package/dist/commands/takeover/_utils/agent-paths.js.map +1 -1
- package/dist/commands/takeover/_utils/codex-thread-messages.js +23 -0
- package/dist/commands/takeover/_utils/codex-thread-messages.js.map +1 -0
- package/dist/commands/takeover/_utils/import-codex-desktop-thread.js +2 -19
- package/dist/commands/takeover/_utils/import-codex-desktop-thread.js.map +1 -1
- package/dist/commands/takeover/_utils/verify-codex-session.js +50 -0
- package/dist/commands/takeover/_utils/verify-codex-session.js.map +1 -0
- package/dist/commands/takeover/_utils/write-codex-session.js +22 -3
- package/dist/commands/takeover/_utils/write-codex-session.js.map +1 -1
- package/dist/core/state/import-job.js +66 -0
- package/dist/core/state/import-job.js.map +1 -0
- package/dist/core/system/env.js +0 -1
- package/dist/core/system/env.js.map +1 -1
- package/dist/jcode/plugin.json +1 -1
- package/dist/jcode/skills/import-transcripts/SKILL.md +12 -5
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { basename, dirname, join, resolve } from "node:path";
|
|
2
3
|
import { cliErr } from "../../core/errors/cli-error.js";
|
|
3
4
|
import { files } from "../../core/system/files.js";
|
|
4
5
|
import { callGlen } from "../../clients/glen-api/glen-api.js";
|
|
@@ -14,9 +15,14 @@ import { detectTranscriptFormat } from "./_utils/detect-transcript-format.js";
|
|
|
14
15
|
import { parseHarborAtif } from "./_utils/parse-harbor-atif.js";
|
|
15
16
|
import { resolveImportWorkspace } from "./_utils/resolve-import-workspace.js";
|
|
16
17
|
import { buildTranscriptTurns } from "./_utils/transcript-turns.js";
|
|
18
|
+
import { chunkTurns } from "./_utils/chunk-turns.js";
|
|
19
|
+
import { sendWithRetry } from "./_utils/send-with-retry.js";
|
|
20
|
+
import { importJob } from "../../core/state/import-job.js";
|
|
21
|
+
import { spawnSelfDetached } from "../../core/system/spawn-self.js";
|
|
17
22
|
import { benchmarkSidecarSchema } from "./import.schema.js";
|
|
18
23
|
import { importOptions } from "./import.options.js";
|
|
19
|
-
|
|
24
|
+
// One call writes up to 50 turns in order on the server (~0.3s each).
|
|
25
|
+
const IMPORT_TIMEOUT_MS = 120_000;
|
|
20
26
|
const WHERE_TRANSCRIPTS_LIVE = "Claude Code: ~/.claude/projects · Codex: ~/.codex/sessions · Pi: ~/.pi/agent/sessions · Cursor: ~/.config/Cursor/User/globalStorage/state.vscdb (macOS: ~/Library/Application Support/Cursor/…)";
|
|
21
27
|
const shortId = (id) => id.length > 12 ? `${id.slice(0, 12)}…` : id;
|
|
22
28
|
const conversationIdFor = (t) => `${t.format === "harbor-atif" ? "import:harbor:" : "import:"}${t.sessionId}`;
|
|
@@ -180,13 +186,14 @@ const parseFiles = async (paths) => {
|
|
|
180
186
|
warnUnreadable(s.file, s.transcript.unreadable, "transcript");
|
|
181
187
|
return { sessions, skipped: results.flatMap((r) => r.skipped) };
|
|
182
188
|
};
|
|
183
|
-
const
|
|
189
|
+
const postChunk = (session, chunk) => {
|
|
184
190
|
const conversationId = conversationIdFor(session.transcript);
|
|
185
|
-
|
|
186
|
-
return callGlen("importTranscript", {
|
|
191
|
+
return callGlen("importTranscriptBatch", {
|
|
187
192
|
conversationId,
|
|
188
|
-
|
|
189
|
-
|
|
193
|
+
turns: chunk.map(({ index, turn }) => ({
|
|
194
|
+
idempotencyKey: `${conversationId}:${index}`,
|
|
195
|
+
messages: turn,
|
|
196
|
+
})),
|
|
190
197
|
additionalContext: contextFor(session.transcript),
|
|
191
198
|
...(session.transcript.benchmarkRun
|
|
192
199
|
? { benchmarkRun: session.transcript.benchmarkRun }
|
|
@@ -195,8 +202,9 @@ const postTurn = (session, turnIndex) => {
|
|
|
195
202
|
// An import is a deliberate write: record it even when this machine is in incognito/off.
|
|
196
203
|
{ timeoutMs: IMPORT_TIMEOUT_MS, forceRecording: true });
|
|
197
204
|
};
|
|
198
|
-
// Sequential: the server assigns message order per
|
|
199
|
-
|
|
205
|
+
// Sequential: the server assigns message order per turn, so chunks go in order too. A chunk that
|
|
206
|
+
// still fails after retries ends the session: later turns would land out of order.
|
|
207
|
+
const importSession = async (session, onChunk) => {
|
|
200
208
|
const tally = {
|
|
201
209
|
imported: 0,
|
|
202
210
|
existing: 0,
|
|
@@ -204,19 +212,24 @@ const importSession = async (session) => {
|
|
|
204
212
|
messageIds: [],
|
|
205
213
|
failure: null,
|
|
206
214
|
};
|
|
207
|
-
for (const
|
|
208
|
-
const sent = await
|
|
215
|
+
for (const chunk of chunkTurns(session.turns, (t) => JSON.stringify(t).length)) {
|
|
216
|
+
const sent = await sendWithRetry(() => postChunk(session, chunk));
|
|
209
217
|
if (!sent.ok)
|
|
210
218
|
return { ...tally, failure: sent.error };
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
219
|
+
for (const turn of sent.value.turns) {
|
|
220
|
+
if (turn.alreadyIngested)
|
|
221
|
+
tally.existing += 1;
|
|
222
|
+
else
|
|
223
|
+
tally.imported += 1;
|
|
224
|
+
tally.backfilled += Math.max(0, turn.timestampsBackfilled);
|
|
225
|
+
tally.messageIds.push(...turn.messageIds);
|
|
226
|
+
}
|
|
227
|
+
await onChunk(tally);
|
|
217
228
|
}
|
|
218
229
|
return tally;
|
|
219
230
|
};
|
|
231
|
+
// Every later call would fail the same way, so the run stops instead of skipping.
|
|
232
|
+
const stopsTheRun = (e) => e._tag === "Auth" || e.code === "api.cli_outdated";
|
|
220
233
|
const writeImportReport = async (path, sessions) => mapErr(await files.writeAtomic(path, `${JSON.stringify({ sessions }, null, 2)}\n`), (f) => files.toError(f, {
|
|
221
234
|
code: "import.report_write_failed",
|
|
222
235
|
what: "could not write the import report",
|
|
@@ -231,7 +244,211 @@ const printDryRun = (sessions, totalTurns) => {
|
|
|
231
244
|
: `• ${s.transcript.agent} ${shortId(s.transcript.sessionId)}: ${s.turns.length} turn(s) (${s.file})`);
|
|
232
245
|
out.info(`dry run: ${sessions.length} conversation(s), ${totalTurns} turn(s); nothing imported`);
|
|
233
246
|
};
|
|
234
|
-
const
|
|
247
|
+
const REMEDY_BY_CODE = {
|
|
248
|
+
"api.auth_expired": "run `glen login`, then re-run the same `glen import`",
|
|
249
|
+
"api.not_connected": "run `glen login`, then re-run the same `glen import`",
|
|
250
|
+
"api.no_active_org": "run `glen org switch`, then re-run the same `glen import`",
|
|
251
|
+
"api.forbidden": "run `glen login`, then re-run the same `glen import`",
|
|
252
|
+
"api.cli_outdated": "run `glen update`, then re-run the same `glen import`",
|
|
253
|
+
};
|
|
254
|
+
const RESUME_HINT = "re-run the same `glen import` to resume (already-imported turns are skipped automatically)";
|
|
255
|
+
const saveProgress = async (job, total, end) => {
|
|
256
|
+
if (!job)
|
|
257
|
+
return;
|
|
258
|
+
const saved = await importJob.write({
|
|
259
|
+
id: job.id,
|
|
260
|
+
status: end.finished ? "finished" : "running",
|
|
261
|
+
startedAt: job.startedAt,
|
|
262
|
+
updatedAt: Date.now(),
|
|
263
|
+
conversations: job.conversations,
|
|
264
|
+
totalTurns: job.totalTurns,
|
|
265
|
+
imported: total.imported,
|
|
266
|
+
existing: total.existing,
|
|
267
|
+
failedConversations: total.failedConversations,
|
|
268
|
+
...(end.stoppedBy ? { stoppedBy: end.stoppedBy } : {}),
|
|
269
|
+
});
|
|
270
|
+
if (!saved.ok)
|
|
271
|
+
out.warn(saved.error);
|
|
272
|
+
};
|
|
273
|
+
const conversationFailed = (session, cause) => cliErr("Upstream", {
|
|
274
|
+
code: "import.conversation_failed",
|
|
275
|
+
what: `${session.transcript.agent} ${shortId(session.transcript.sessionId)}: could not import the rest of this conversation`,
|
|
276
|
+
why: cause.why ? `${cause.what}: ${cause.why}` : cause.what,
|
|
277
|
+
...(cause.httpStatus !== undefined ? { httpStatus: cause.httpStatus } : {}),
|
|
278
|
+
path: session.file,
|
|
279
|
+
remedy: "re-run the same `glen import` to retry it",
|
|
280
|
+
});
|
|
281
|
+
const runImport = async (sessions, totalTurns, skippedFiles, options) => {
|
|
282
|
+
const job = options.job
|
|
283
|
+
? {
|
|
284
|
+
id: options.job,
|
|
285
|
+
startedAt: Date.now(),
|
|
286
|
+
conversations: sessions.length,
|
|
287
|
+
totalTurns,
|
|
288
|
+
}
|
|
289
|
+
: null;
|
|
290
|
+
const total = {
|
|
291
|
+
imported: 0,
|
|
292
|
+
existing: 0,
|
|
293
|
+
backfilled: 0,
|
|
294
|
+
failedConversations: 0,
|
|
295
|
+
};
|
|
296
|
+
const reportSessions = [];
|
|
297
|
+
await saveProgress(job, total, { finished: false });
|
|
298
|
+
for (const session of sessions) {
|
|
299
|
+
const result = await importSession(session, (partial) => saveProgress(job, {
|
|
300
|
+
...total,
|
|
301
|
+
imported: total.imported + partial.imported,
|
|
302
|
+
existing: total.existing + partial.existing,
|
|
303
|
+
}, { finished: false }));
|
|
304
|
+
total.imported += result.imported;
|
|
305
|
+
total.existing += result.existing;
|
|
306
|
+
total.backfilled += result.backfilled;
|
|
307
|
+
if (result.failure && stopsTheRun(result.failure)) {
|
|
308
|
+
out.info(`imported ${total.imported} of ${totalTurns} turn(s) before failing`);
|
|
309
|
+
out.hint(RESUME_HINT);
|
|
310
|
+
await saveProgress(job, total, {
|
|
311
|
+
finished: true,
|
|
312
|
+
stoppedBy: result.failure.code,
|
|
313
|
+
});
|
|
314
|
+
return err(result.failure);
|
|
315
|
+
}
|
|
316
|
+
if (result.failure) {
|
|
317
|
+
total.failedConversations += 1;
|
|
318
|
+
out.warn(conversationFailed(session, result.failure));
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
reportSessions.push({
|
|
322
|
+
conversationId: conversationIdFor(session.transcript),
|
|
323
|
+
messageIds: result.messageIds,
|
|
324
|
+
});
|
|
325
|
+
out.success(`${session.transcript.agent} ${shortId(session.transcript.sessionId)}: ${result.imported} turn(s) imported${result.existing > 0 ? ` (${result.existing} already present)` : ""}${result.backfilled > 0
|
|
326
|
+
? `, ${result.backfilled} message timestamp(s) repaired`
|
|
327
|
+
: ""}`);
|
|
328
|
+
}
|
|
329
|
+
await saveProgress(job, total, { finished: false });
|
|
330
|
+
}
|
|
331
|
+
await saveProgress(job, total, { finished: true });
|
|
332
|
+
out.info(`done: ${total.imported} turn(s) imported, ${total.existing} already present, ${total.backfilled} message timestamp(s) repaired, across ${sessions.length} conversation(s)${total.failedConversations > 0
|
|
333
|
+
? `; ${total.failedConversations} conversation(s) failed`
|
|
334
|
+
: ""}${skippedFiles > 0 ? `; ${skippedFiles} file(s) skipped` : ""}`);
|
|
335
|
+
const report = options.report
|
|
336
|
+
? await writeImportReport(options.report, reportSessions)
|
|
337
|
+
: ok(undefined);
|
|
338
|
+
if (!report.ok)
|
|
339
|
+
return report;
|
|
340
|
+
return total.failedConversations > 0
|
|
341
|
+
? err(cliErr("Upstream", {
|
|
342
|
+
code: "import.some_failed",
|
|
343
|
+
what: `${total.failedConversations} conversation(s) could not be fully imported`,
|
|
344
|
+
remedy: "re-run the same `glen import` to retry them",
|
|
345
|
+
}))
|
|
346
|
+
: ok(undefined);
|
|
347
|
+
};
|
|
348
|
+
const startInBackground = async (paths, sessions, totalTurns, report) => {
|
|
349
|
+
const current = await importJob.read();
|
|
350
|
+
if (current?.status === "running" && !importJob.isStale(current))
|
|
351
|
+
return err(cliErr("Usage", {
|
|
352
|
+
code: "import.already_running",
|
|
353
|
+
what: "an import is already running in the background",
|
|
354
|
+
remedy: "check it with `glen import --status` and start this one once it finishes (or pass every path to a single `glen import`)",
|
|
355
|
+
}));
|
|
356
|
+
const id = randomUUID();
|
|
357
|
+
const now = Date.now();
|
|
358
|
+
const saved = await importJob.write({
|
|
359
|
+
id,
|
|
360
|
+
status: "running",
|
|
361
|
+
startedAt: now,
|
|
362
|
+
updatedAt: now,
|
|
363
|
+
conversations: sessions.length,
|
|
364
|
+
totalTurns,
|
|
365
|
+
imported: 0,
|
|
366
|
+
existing: 0,
|
|
367
|
+
failedConversations: 0,
|
|
368
|
+
});
|
|
369
|
+
if (!saved.ok)
|
|
370
|
+
return saved;
|
|
371
|
+
const started = spawnSelfDetached([
|
|
372
|
+
"import",
|
|
373
|
+
"--wait",
|
|
374
|
+
"--job",
|
|
375
|
+
id,
|
|
376
|
+
...(report ? ["--report", resolve(report)] : []),
|
|
377
|
+
...paths.map((p) => resolve(p)),
|
|
378
|
+
]);
|
|
379
|
+
if (!started) {
|
|
380
|
+
const closed = await importJob.write({
|
|
381
|
+
id,
|
|
382
|
+
status: "finished",
|
|
383
|
+
startedAt: now,
|
|
384
|
+
updatedAt: Date.now(),
|
|
385
|
+
conversations: sessions.length,
|
|
386
|
+
totalTurns,
|
|
387
|
+
imported: 0,
|
|
388
|
+
existing: 0,
|
|
389
|
+
failedConversations: 0,
|
|
390
|
+
stoppedBy: "import.spawn_failed",
|
|
391
|
+
});
|
|
392
|
+
if (!closed.ok)
|
|
393
|
+
out.warn(closed.error);
|
|
394
|
+
return err(cliErr("Exec", {
|
|
395
|
+
code: "import.spawn_failed",
|
|
396
|
+
what: "could not start the background import",
|
|
397
|
+
remedy: "run the same command with `--wait` to import in the foreground",
|
|
398
|
+
}));
|
|
399
|
+
}
|
|
400
|
+
out.success(`importing ${sessions.length} conversation(s), ${totalTurns} turn(s) in the background`);
|
|
401
|
+
out.hint("check progress with `glen import --status` until it says finished");
|
|
402
|
+
return ok(undefined);
|
|
403
|
+
};
|
|
404
|
+
const printStatus = async () => {
|
|
405
|
+
const job = await importJob.read();
|
|
406
|
+
if (!job) {
|
|
407
|
+
out.info("no background import has run on this machine");
|
|
408
|
+
return ok(undefined);
|
|
409
|
+
}
|
|
410
|
+
const stale = importJob.isStale(job);
|
|
411
|
+
const state = stale
|
|
412
|
+
? "stopped before finishing"
|
|
413
|
+
: job.status === "running"
|
|
414
|
+
? "running"
|
|
415
|
+
: job.stoppedBy
|
|
416
|
+
? `stopped early (${job.stoppedBy})`
|
|
417
|
+
: "finished";
|
|
418
|
+
out.info(`import ${state}: ${job.imported} turn(s) imported, ${job.existing} already present, of ${job.totalTurns} turn(s) in ${job.conversations} conversation(s)${job.failedConversations > 0
|
|
419
|
+
? `; ${job.failedConversations} conversation(s) failed`
|
|
420
|
+
: ""} (started ${new Date(job.startedAt).toISOString()})`);
|
|
421
|
+
if (job.status === "running" && !stale)
|
|
422
|
+
return ok(undefined);
|
|
423
|
+
out.hint((job.stoppedBy && REMEDY_BY_CODE[job.stoppedBy]) ??
|
|
424
|
+
(stale || job.stoppedBy || job.failedConversations > 0
|
|
425
|
+
? RESUME_HINT
|
|
426
|
+
: "nothing left to do"));
|
|
427
|
+
return ok(undefined);
|
|
428
|
+
};
|
|
429
|
+
// A worker that fails outside runImport would otherwise read as "running" until it goes stale.
|
|
430
|
+
const closeJobIfStillRunning = async (id, stoppedBy) => {
|
|
431
|
+
const job = await importJob.read();
|
|
432
|
+
if (job?.id !== id || job.status !== "running")
|
|
433
|
+
return;
|
|
434
|
+
const closed = await importJob.write({
|
|
435
|
+
...job,
|
|
436
|
+
status: "finished",
|
|
437
|
+
updatedAt: Date.now(),
|
|
438
|
+
stoppedBy,
|
|
439
|
+
});
|
|
440
|
+
if (!closed.ok)
|
|
441
|
+
out.warn(closed.error);
|
|
442
|
+
};
|
|
443
|
+
const importFrom = async ({ path: paths, ...options }) => {
|
|
444
|
+
if (options.status)
|
|
445
|
+
return printStatus();
|
|
446
|
+
if (paths.length === 0)
|
|
447
|
+
return err(cliErr("Usage", {
|
|
448
|
+
code: "import.no_paths",
|
|
449
|
+
what: "no transcript paths given",
|
|
450
|
+
remedy: `pass files or folders to import (${WHERE_TRANSCRIPTS_LIVE})`,
|
|
451
|
+
}));
|
|
235
452
|
const found = await collectImportFiles(paths);
|
|
236
453
|
if (!found.ok)
|
|
237
454
|
return found;
|
|
@@ -255,30 +472,15 @@ const importTranscripts = importOptions.handle(async ({ path: paths, ...options
|
|
|
255
472
|
printDryRun(sessions, totalTurns);
|
|
256
473
|
return ok(undefined);
|
|
257
474
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
out.hint("re-run `glen import` to resume (already-imported turns are skipped automatically)");
|
|
268
|
-
return err(result.failure);
|
|
269
|
-
}
|
|
270
|
-
reportSessions.push({
|
|
271
|
-
conversationId: conversationIdFor(session.transcript),
|
|
272
|
-
messageIds: result.messageIds,
|
|
273
|
-
});
|
|
274
|
-
out.success(`${session.transcript.agent} ${shortId(session.transcript.sessionId)}: ${result.imported} turn(s) imported${result.existing > 0 ? ` (${result.existing} already present)` : ""}${result.backfilled > 0
|
|
275
|
-
? `, ${result.backfilled} message timestamp(s) repaired`
|
|
276
|
-
: ""}`);
|
|
277
|
-
}
|
|
278
|
-
out.info(`done: ${total.imported} turn(s) imported, ${total.existing} already present, ${total.backfilled} message timestamp(s) repaired, across ${sessions.length} conversation(s)${skipped.length > 0 ? `; ${skipped.length} file(s) skipped` : ""}`);
|
|
279
|
-
return options.report
|
|
280
|
-
? writeImportReport(options.report, reportSessions)
|
|
281
|
-
: ok(undefined);
|
|
475
|
+
if (!options.wait)
|
|
476
|
+
return startInBackground(paths, sessions, totalTurns, options.report);
|
|
477
|
+
return runImport(sessions, totalTurns, skipped.length, options);
|
|
478
|
+
};
|
|
479
|
+
const importTranscripts = importOptions.handle(async (input) => {
|
|
480
|
+
const result = await importFrom(input);
|
|
481
|
+
if (input.job && !result.ok)
|
|
482
|
+
await closeJobIfStillRunning(input.job, result.error.code);
|
|
483
|
+
return result;
|
|
282
484
|
});
|
|
283
485
|
export { importTranscripts };
|
|
284
486
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/import/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/import/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { homedir } from "node:os";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
+
import { codexPaths } from "../../../clients/codex/codex-paths.js";
|
|
3
4
|
import { env } from "../../../core/system/env.js";
|
|
4
5
|
const projectKey = (workspace) => workspace.replaceAll("/", "-").replace(/[^A-Za-z0-9._-]/g, "-");
|
|
5
6
|
// pi's own encoding (getDefaultSessionDirPath): no leading separator, `/ \ :` → "-", wrapped in "--".
|
|
@@ -10,7 +11,7 @@ const agentPaths = {
|
|
|
10
11
|
return join(root, "projects", projectKey(workspace), `${sessionId}.jsonl`);
|
|
11
12
|
},
|
|
12
13
|
codex(sessionId, date = new Date()) {
|
|
13
|
-
const root =
|
|
14
|
+
const root = codexPaths.home();
|
|
14
15
|
// Codex parses the session id from this name: local time, seconds, no Z, or `codex resume` breaks.
|
|
15
16
|
const pad = (value) => String(value).padStart(2, "0");
|
|
16
17
|
const year = String(date.getFullYear());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-paths.js","sourceRoot":"","sources":["../../../../src/commands/takeover/_utils/agent-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAElD,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAU,EAAE,CAC/C,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AAElE,sGAAsG;AACtG,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAU,EAAE,CACjD,KAAK,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC;AAEnE,MAAM,UAAU,GAAG;IACjB,MAAM,CAAC,SAAiB,EAAE,SAAiB;QACzC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,CAAC,SAAiB,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE;QACxC,MAAM,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"agent-paths.js","sourceRoot":"","sources":["../../../../src/commands/takeover/_utils/agent-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAElD,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAU,EAAE,CAC/C,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AAElE,sGAAsG;AACtG,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAU,EAAE,CACjD,KAAK,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC;AAEnE,MAAM,UAAU,GAAG;IACjB,MAAM,CAAC,SAAiB,EAAE,SAAiB;QACzC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,CAAC,SAAiB,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QAC/B,mGAAmG;QACnG,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;QACxH,OAAO,IAAI,CACT,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,KAAK,EACL,GAAG,EACH,WAAW,SAAS,IAAI,SAAS,QAAQ,CAC1C,CAAC;IACJ,CAAC;IACD,EAAE,CAAC,SAAiB,EAAE,SAAiB,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE;QACxD,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,2BAA2B,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,GAAG,SAAS,IAAI,SAAS,QAAQ,CAAC;QAC/C,kFAAkF;QAClF,OAAO,WAAW;YAChB,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;YACzB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;CACF,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { field } from "../../../core/json/json-field.js";
|
|
2
|
+
const IMPORT_MARKER = "<EXTERNAL SESSION IMPORTED>";
|
|
3
|
+
const arrayOf = (v) => (Array.isArray(v) ? v : []);
|
|
4
|
+
// The user and assistant turns a `thread/read` result shows, in order.
|
|
5
|
+
const codexThreadMessages = (result) => arrayOf(field(field(result, "thread"), "turns")).flatMap((turn) => arrayOf(field(turn, "items")).flatMap((item) => {
|
|
6
|
+
const type = field(item, "type");
|
|
7
|
+
const text = field(item, "text");
|
|
8
|
+
if (type === "agentMessage")
|
|
9
|
+
return typeof text === "string" && text !== IMPORT_MARKER
|
|
10
|
+
? [{ role: "assistant", content: text }]
|
|
11
|
+
: [];
|
|
12
|
+
const content = field(item, "content");
|
|
13
|
+
if (type !== "userMessage" || !Array.isArray(content))
|
|
14
|
+
return [];
|
|
15
|
+
const joined = content
|
|
16
|
+
.filter((part) => field(part, "type") === "text")
|
|
17
|
+
.map((part) => field(part, "text"))
|
|
18
|
+
.filter((t) => typeof t === "string")
|
|
19
|
+
.join("");
|
|
20
|
+
return [{ role: "user", content: joined }];
|
|
21
|
+
}));
|
|
22
|
+
export { codexThreadMessages };
|
|
23
|
+
//# sourceMappingURL=codex-thread-messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-thread-messages.js","sourceRoot":"","sources":["../../../../src/commands/takeover/_utils/codex-thread-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,MAAM,aAAa,GAAG,6BAA6B,CAAC;AAEpD,MAAM,OAAO,GAAG,CAAC,CAAU,EAAa,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAEvE,uEAAuE;AACvE,MAAM,mBAAmB,GAAG,CAAC,MAAe,EAAE,EAAE,CAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAChE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CACnC,CAAC,IAAI,EAAqD,EAAE;IAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,cAAc;QACzB,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,aAAa;YACvD,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACjD,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,aAAa,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACjE,MAAM,MAAM,GAAG,OAAO;SACnB,MAAM,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;SACzD,GAAG,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SAC3C,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;SACjD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AACtD,CAAC,CACF,CACF,CAAC;AAEJ,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -4,8 +4,8 @@ import { err, ok } from "../../../core/errors/result.js";
|
|
|
4
4
|
import { cliVersion } from "../../../core/system/version.js";
|
|
5
5
|
import { agentProcess } from "./agent-process.js";
|
|
6
6
|
import { archiveCodexDesktopThread } from "./archive-codex-desktop-thread.js";
|
|
7
|
+
import { codexThreadMessages } from "./codex-thread-messages.js";
|
|
7
8
|
const TIMEOUT_MS = 15_000;
|
|
8
|
-
const IMPORT_MARKER = "<EXTERNAL SESSION IMPORTED>";
|
|
9
9
|
const TRANSPORT_WHY = {
|
|
10
10
|
start_failed: "could not start codex app-server",
|
|
11
11
|
exited: "codex app-server exited before import completed",
|
|
@@ -20,23 +20,6 @@ const failure = (why) => cliErr("Exec", {
|
|
|
20
20
|
});
|
|
21
21
|
const whyOf = (f) => f.kind === "rpc" ? f.message : TRANSPORT_WHY[f.reason];
|
|
22
22
|
const arrayOf = (v) => (Array.isArray(v) ? v : []);
|
|
23
|
-
const visibleMessages = (result) => arrayOf(field(field(result, "thread"), "turns")).flatMap((turn) => arrayOf(field(turn, "items")).flatMap((item) => {
|
|
24
|
-
const type = field(item, "type");
|
|
25
|
-
const text = field(item, "text");
|
|
26
|
-
if (type === "agentMessage")
|
|
27
|
-
return typeof text === "string" && text !== IMPORT_MARKER
|
|
28
|
-
? [{ role: "assistant", content: text }]
|
|
29
|
-
: [];
|
|
30
|
-
const content = field(item, "content");
|
|
31
|
-
if (type !== "userMessage" || !Array.isArray(content))
|
|
32
|
-
return [];
|
|
33
|
-
const joined = content
|
|
34
|
-
.filter((part) => field(part, "type") === "text")
|
|
35
|
-
.map((part) => field(part, "text"))
|
|
36
|
-
.filter((t) => typeof t === "string")
|
|
37
|
-
.join("");
|
|
38
|
-
return [{ role: "user", content: joined }];
|
|
39
|
-
}));
|
|
40
23
|
const archiveSeparately = async (rpc, input, error, threadIds) => {
|
|
41
24
|
rpc.close();
|
|
42
25
|
const archived = await Promise.all(threadIds.map((threadId) => archiveCodexDesktopThread({ binary: input.binary, threadId })));
|
|
@@ -122,7 +105,7 @@ const runImport = async (rpc, input) => {
|
|
|
122
105
|
});
|
|
123
106
|
if (!read.ok)
|
|
124
107
|
return afterThreadFailure(rpc, input, read.error, threadId);
|
|
125
|
-
if (JSON.stringify(
|
|
108
|
+
if (JSON.stringify(codexThreadMessages(read.value)) !==
|
|
126
109
|
JSON.stringify(input.messages))
|
|
127
110
|
return rejectThreads(rpc, input, failure("imported task did not expose the canonical visible turns"), [threadId]);
|
|
128
111
|
const steps = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-codex-desktop-thread.js","sourceRoot":"","sources":["../../../../src/commands/takeover/_utils/import-codex-desktop-thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAe,GAAG,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"import-codex-desktop-thread.js","sourceRoot":"","sources":["../../../../src/commands/takeover/_utils/import-codex-desktop-thread.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { cliErr } from "../../../core/errors/cli-error.js";
|
|
2
|
+
import { err, ok } from "../../../core/errors/result.js";
|
|
3
|
+
import { cliVersion } from "../../../core/system/version.js";
|
|
4
|
+
import { agentProcess } from "./agent-process.js";
|
|
5
|
+
import { codexThreadMessages } from "./codex-thread-messages.js";
|
|
6
|
+
const TIMEOUT_MS = 15_000;
|
|
7
|
+
const TRANSPORT_WHY = {
|
|
8
|
+
start_failed: "could not start codex app-server",
|
|
9
|
+
exited: "codex app-server exited before reading the session",
|
|
10
|
+
input_closed: "codex app-server input closed unexpectedly",
|
|
11
|
+
timed_out: "codex app-server timed out",
|
|
12
|
+
};
|
|
13
|
+
const failure = (why) => cliErr("Exec", {
|
|
14
|
+
code: "takeover.codex_verify_failed",
|
|
15
|
+
what: "Codex could not read back the installed session",
|
|
16
|
+
why,
|
|
17
|
+
remedy: "update Glen and Codex, then retry; the session was removed and nothing was taken over",
|
|
18
|
+
});
|
|
19
|
+
const whyOf = (f) => f.kind === "rpc" ? f.message : TRANSPORT_WHY[f.reason];
|
|
20
|
+
const readThread = async (rpc, sessionId) => {
|
|
21
|
+
const init = await rpc.request("initialize", {
|
|
22
|
+
clientInfo: { name: "glen", title: "Glen CLI", version: cliVersion },
|
|
23
|
+
capabilities: { experimentalApi: true },
|
|
24
|
+
});
|
|
25
|
+
if (!init.ok)
|
|
26
|
+
return init;
|
|
27
|
+
rpc.notify("initialized", {});
|
|
28
|
+
return rpc.request("thread/read", {
|
|
29
|
+
threadId: sessionId,
|
|
30
|
+
includeTurns: true,
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
// Codex is the judge of its own format: it must show exactly the turns we wrote.
|
|
34
|
+
const verifyCodexSession = async (input) => {
|
|
35
|
+
const rpc = agentProcess.startJsonRpc(input.binary, ["app-server"], TIMEOUT_MS);
|
|
36
|
+
const read = await readThread(rpc, input.sessionId);
|
|
37
|
+
rpc.close();
|
|
38
|
+
if (!read.ok)
|
|
39
|
+
return err(failure(whyOf(read.error)));
|
|
40
|
+
const expected = input.messages.map(({ role, content }) => ({
|
|
41
|
+
role,
|
|
42
|
+
content,
|
|
43
|
+
}));
|
|
44
|
+
return JSON.stringify(codexThreadMessages(read.value)) ===
|
|
45
|
+
JSON.stringify(expected)
|
|
46
|
+
? ok(undefined)
|
|
47
|
+
: err(failure("Codex showed different turns than the transcript"));
|
|
48
|
+
};
|
|
49
|
+
export { verifyCodexSession };
|
|
50
|
+
//# sourceMappingURL=verify-codex-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-codex-session.js","sourceRoot":"","sources":["../../../../src/commands/takeover/_utils/verify-codex-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAe,GAAG,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,UAAU,GAAG,MAAM,CAAC;AAQ1B,MAAM,aAAa,GAAG;IACpB,YAAY,EAAE,kCAAkC;IAChD,MAAM,EAAE,oDAAoD;IAC5D,YAAY,EAAE,4CAA4C;IAC1D,SAAS,EAAE,4BAA4B;CAC/B,CAAC;AAEX,MAAM,OAAO,GAAG,CAAC,GAAW,EAAY,EAAE,CACxC,MAAM,CAAC,MAAM,EAAE;IACb,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,iDAAiD;IACvD,GAAG;IACH,MAAM,EACJ,uFAAuF;CAC1F,CAAC,CAAC;AAEL,MAAM,KAAK,GAAG,CAAC,CAAa,EAAU,EAAE,CACtC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,UAAU,GAAG,KAAK,EACtB,GAAQ,EACR,SAAiB,EACqB,EAAE;IACxC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE;QAC3C,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE;QACpE,YAAY,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;KACxC,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1B,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE;QAChC,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,iFAAiF;AACjF,MAAM,kBAAkB,GAAG,KAAK,EAAE,KAOjC,EAAmC,EAAE;IACpC,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,CACnC,KAAK,CAAC,MAAM,EACZ,CAAC,YAAY,CAAC,EACd,UAAU,CACX,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACpD,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI;QACJ,OAAO;KACR,CAAC,CAAC,CAAC;IACJ,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxB,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;QACf,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|