@tryglen/cli 0.26.0 → 0.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/takeover/_utils/import-codex-desktop-thread.d.ts +6 -1
- package/dist/commands/takeover/_utils/import-codex-desktop-thread.js +190 -40
- package/dist/commands/takeover/_utils/import-codex-desktop-thread.js.map +1 -1
- package/dist/commands/takeover/_utils/write-codex-desktop-session.d.ts +3 -1
- package/dist/commands/takeover/_utils/write-codex-desktop-session.js +75 -36
- package/dist/commands/takeover/_utils/write-codex-desktop-session.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,6 +4,11 @@ declare const importCodexDesktopThread: (input: {
|
|
|
4
4
|
readonly binary: string;
|
|
5
5
|
readonly workspace: string;
|
|
6
6
|
readonly name: string | null;
|
|
7
|
-
readonly
|
|
7
|
+
readonly sessionPath: string;
|
|
8
|
+
readonly messages: readonly {
|
|
9
|
+
readonly role: "user" | "assistant";
|
|
10
|
+
readonly content: string;
|
|
11
|
+
}[];
|
|
12
|
+
readonly provenanceItem: Record<string, unknown>;
|
|
8
13
|
}) => Promise<Result<string, CliError>>;
|
|
9
14
|
export { importCodexDesktopThread };
|
|
@@ -4,13 +4,56 @@ import { err, ok } from "../../../_utils/result.js";
|
|
|
4
4
|
import { cliVersion } from "../../../_utils/version.js";
|
|
5
5
|
import { archiveCodexDesktopThread } from "./archive-codex-desktop-thread.js";
|
|
6
6
|
const TIMEOUT_MS = 15_000;
|
|
7
|
+
const IMPORT_MARKER = "<EXTERNAL SESSION IMPORTED>";
|
|
8
|
+
const transcriptMessage = (role, content) => ({
|
|
9
|
+
role,
|
|
10
|
+
content,
|
|
11
|
+
});
|
|
12
|
+
const visibleMessages = (value) => {
|
|
13
|
+
const turns = value && typeof value === "object" && "thread" in value
|
|
14
|
+
? value.thread?.turns
|
|
15
|
+
: null;
|
|
16
|
+
if (!Array.isArray(turns))
|
|
17
|
+
return [];
|
|
18
|
+
return turns.flatMap((turn) => {
|
|
19
|
+
const items = turn && typeof turn === "object" && "items" in turn
|
|
20
|
+
? turn.items
|
|
21
|
+
: null;
|
|
22
|
+
if (!Array.isArray(items))
|
|
23
|
+
return [];
|
|
24
|
+
return items.flatMap((item) => {
|
|
25
|
+
if (!item || typeof item !== "object" || !("type" in item))
|
|
26
|
+
return [];
|
|
27
|
+
const typed = item;
|
|
28
|
+
if (typed.type === "agentMessage")
|
|
29
|
+
return typeof typed.text === "string" && typed.text !== IMPORT_MARKER
|
|
30
|
+
? [transcriptMessage("assistant", typed.text)]
|
|
31
|
+
: [];
|
|
32
|
+
if (typed.type !== "userMessage" || !Array.isArray(typed.content))
|
|
33
|
+
return [];
|
|
34
|
+
const text = typed.content
|
|
35
|
+
.flatMap((part) => part &&
|
|
36
|
+
typeof part === "object" &&
|
|
37
|
+
"type" in part &&
|
|
38
|
+
part.type === "text" &&
|
|
39
|
+
"text" in part &&
|
|
40
|
+
typeof part.text === "string"
|
|
41
|
+
? [part.text]
|
|
42
|
+
: [])
|
|
43
|
+
.join("");
|
|
44
|
+
return [transcriptMessage("user", text)];
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
};
|
|
7
48
|
const importCodexDesktopThread = (input) => new Promise((resolve) => {
|
|
8
49
|
const child = spawn(input.binary, ["app-server"], {
|
|
9
50
|
stdio: ["pipe", "pipe", "ignore"],
|
|
10
51
|
});
|
|
11
52
|
const state = {
|
|
12
53
|
buffer: "",
|
|
54
|
+
importId: null,
|
|
13
55
|
threadId: null,
|
|
56
|
+
archiveQueue: [],
|
|
14
57
|
pendingError: null,
|
|
15
58
|
finished: false,
|
|
16
59
|
};
|
|
@@ -20,13 +63,21 @@ const importCodexDesktopThread = (input) => new Promise((resolve) => {
|
|
|
20
63
|
state.finished = true;
|
|
21
64
|
clearTimeout(timer);
|
|
22
65
|
child.kill();
|
|
23
|
-
const
|
|
24
|
-
?
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
:
|
|
29
|
-
|
|
66
|
+
const cleanupIds = cleanupPartialThread
|
|
67
|
+
? [state.threadId, ...state.archiveQueue].flatMap((threadId) => threadId ? [threadId] : [])
|
|
68
|
+
: [];
|
|
69
|
+
const uniqueCleanupIds = [...new Set(cleanupIds)];
|
|
70
|
+
const cleanup = Promise.all(uniqueCleanupIds.map((threadId) => archiveCodexDesktopThread({
|
|
71
|
+
binary: input.binary,
|
|
72
|
+
threadId,
|
|
73
|
+
})));
|
|
74
|
+
void cleanup.then((archived) => resolve(archived.some((didArchive) => !didArchive)
|
|
75
|
+
? err(cliErr({
|
|
76
|
+
what: "Codex Desktop left partial imported tasks behind",
|
|
77
|
+
why: `could not archive ${uniqueCleanupIds.join(", ")}`,
|
|
78
|
+
remedy: `archive tasks ${uniqueCleanupIds.join(", ")} in Codex Desktop, then retry`,
|
|
79
|
+
}))
|
|
80
|
+
: result));
|
|
30
81
|
};
|
|
31
82
|
const failure = (why) => cliErr({
|
|
32
83
|
what: "Codex Desktop could not import the verified transcript",
|
|
@@ -38,6 +89,33 @@ const importCodexDesktopThread = (input) => new Promise((resolve) => {
|
|
|
38
89
|
return;
|
|
39
90
|
child.stdin.write(`${JSON.stringify({ jsonrpc: "2.0", ...message })}\n`);
|
|
40
91
|
};
|
|
92
|
+
const archiveNext = () => {
|
|
93
|
+
const threadId = state.archiveQueue[0];
|
|
94
|
+
if (!threadId) {
|
|
95
|
+
const pendingError = state.pendingError;
|
|
96
|
+
finish(err(pendingError ??
|
|
97
|
+
failure("imported task cleanup finished without an error")));
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
write({
|
|
101
|
+
id: 6,
|
|
102
|
+
method: "thread/archive",
|
|
103
|
+
params: { threadId },
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
const rejectImportedThreads = (error, threadIds) => {
|
|
107
|
+
const uniqueThreadIds = [...new Set(threadIds)];
|
|
108
|
+
if (uniqueThreadIds.length === 0) {
|
|
109
|
+
finish(err(error));
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
state.pendingError = error;
|
|
113
|
+
state.archiveQueue = uniqueThreadIds;
|
|
114
|
+
archiveNext();
|
|
115
|
+
};
|
|
116
|
+
const rejectImportedThread = (error) => {
|
|
117
|
+
rejectImportedThreads(error, state.threadId ? [state.threadId] : []);
|
|
118
|
+
};
|
|
41
119
|
const timer = setTimeout(() => finish(err(failure("codex app-server timed out")), true), TIMEOUT_MS);
|
|
42
120
|
child.on("error", () => finish(err(failure("could not start codex app-server"))));
|
|
43
121
|
child.on("close", () => finish(err(failure("codex app-server exited before import completed")), true));
|
|
@@ -57,27 +135,66 @@ const importCodexDesktopThread = (input) => new Promise((resolve) => {
|
|
|
57
135
|
return null;
|
|
58
136
|
}
|
|
59
137
|
})();
|
|
60
|
-
if (!message
|
|
138
|
+
if (!message)
|
|
139
|
+
continue;
|
|
140
|
+
if (message.method === "externalAgentConfig/import/completed") {
|
|
141
|
+
const params = message.params;
|
|
142
|
+
if (params?.importId !== state.importId)
|
|
143
|
+
continue;
|
|
144
|
+
const results = Array.isArray(params.itemTypeResults)
|
|
145
|
+
? params.itemTypeResults
|
|
146
|
+
: [];
|
|
147
|
+
const sessionResult = results.find((result) => result &&
|
|
148
|
+
typeof result === "object" &&
|
|
149
|
+
"itemType" in result &&
|
|
150
|
+
result.itemType === "SESSIONS");
|
|
151
|
+
const failures = Array.isArray(sessionResult?.failures)
|
|
152
|
+
? sessionResult.failures
|
|
153
|
+
: [];
|
|
154
|
+
const targets = (Array.isArray(sessionResult?.successes)
|
|
155
|
+
? sessionResult.successes
|
|
156
|
+
: []).flatMap((success) => success &&
|
|
157
|
+
typeof success === "object" &&
|
|
158
|
+
"target" in success &&
|
|
159
|
+
typeof success.target === "string"
|
|
160
|
+
? [success.target]
|
|
161
|
+
: []);
|
|
162
|
+
if (failures.length > 0) {
|
|
163
|
+
const reported = failures[0];
|
|
164
|
+
rejectImportedThreads(failure(typeof reported.message === "string"
|
|
165
|
+
? reported.message
|
|
166
|
+
: "external session import failed"), targets);
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
if (targets.length !== 1) {
|
|
170
|
+
rejectImportedThreads(failure(targets.length === 0
|
|
171
|
+
? "session import returned no task ID"
|
|
172
|
+
: "session import returned more than one task ID"), targets);
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
state.threadId = targets[0] ?? null;
|
|
176
|
+
write({
|
|
177
|
+
id: 3,
|
|
178
|
+
method: "thread/read",
|
|
179
|
+
params: { threadId: state.threadId, includeTurns: true },
|
|
180
|
+
});
|
|
61
181
|
continue;
|
|
62
|
-
|
|
63
|
-
if (
|
|
64
|
-
|
|
65
|
-
|
|
182
|
+
}
|
|
183
|
+
if (typeof message.id !== "number")
|
|
184
|
+
continue;
|
|
185
|
+
if (message.error) {
|
|
186
|
+
const reported = typeof message.error.message === "string"
|
|
187
|
+
? message.error.message
|
|
66
188
|
: "unknown app-server error";
|
|
67
189
|
const importedError = failure(reported);
|
|
68
|
-
if (
|
|
69
|
-
state.pendingError
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
params: { threadId: state.threadId },
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
else if (message.id === 5 && state.pendingError) {
|
|
77
|
-
finish(err(state.pendingError), true);
|
|
190
|
+
if (message.id >= 3 && state.threadId) {
|
|
191
|
+
if (message.id === 6 && state.pendingError)
|
|
192
|
+
finish(err(state.pendingError), true);
|
|
193
|
+
else
|
|
194
|
+
rejectImportedThread(importedError);
|
|
78
195
|
}
|
|
79
196
|
else {
|
|
80
|
-
finish(err(importedError)
|
|
197
|
+
finish(err(importedError));
|
|
81
198
|
}
|
|
82
199
|
continue;
|
|
83
200
|
}
|
|
@@ -85,34 +202,66 @@ const importCodexDesktopThread = (input) => new Promise((resolve) => {
|
|
|
85
202
|
write({ method: "initialized", params: {} });
|
|
86
203
|
write({
|
|
87
204
|
id: 2,
|
|
88
|
-
method: "
|
|
205
|
+
method: "externalAgentConfig/import",
|
|
89
206
|
params: {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
207
|
+
source: "glen",
|
|
208
|
+
migrationItems: [
|
|
209
|
+
{
|
|
210
|
+
itemType: "SESSIONS",
|
|
211
|
+
description: "Import Glen takeover transcript",
|
|
212
|
+
cwd: input.workspace,
|
|
213
|
+
details: {
|
|
214
|
+
sessions: [
|
|
215
|
+
{
|
|
216
|
+
path: input.sessionPath,
|
|
217
|
+
cwd: input.workspace,
|
|
218
|
+
title: input.name,
|
|
219
|
+
},
|
|
220
|
+
],
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
],
|
|
94
224
|
},
|
|
95
225
|
});
|
|
96
226
|
continue;
|
|
97
227
|
}
|
|
98
228
|
if (message.id === 2) {
|
|
99
|
-
const
|
|
100
|
-
if (typeof
|
|
101
|
-
finish(err(failure("
|
|
229
|
+
const importId = message.result?.importId;
|
|
230
|
+
if (typeof importId !== "string" || !importId) {
|
|
231
|
+
finish(err(failure("session import returned no import ID")));
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
state.importId = importId;
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
if (message.id === 3 && state.threadId) {
|
|
238
|
+
const importedMessages = visibleMessages(message.result);
|
|
239
|
+
if (JSON.stringify(importedMessages) !== JSON.stringify(input.messages)) {
|
|
240
|
+
rejectImportedThread(failure("imported task did not expose the canonical visible turns"));
|
|
102
241
|
continue;
|
|
103
242
|
}
|
|
104
|
-
state.threadId = threadId;
|
|
105
243
|
write({
|
|
106
|
-
id:
|
|
244
|
+
id: 4,
|
|
245
|
+
method: "thread/resume",
|
|
246
|
+
params: { threadId: state.threadId },
|
|
247
|
+
});
|
|
248
|
+
continue;
|
|
249
|
+
}
|
|
250
|
+
if (message.id === 4 && state.threadId) {
|
|
251
|
+
write({
|
|
252
|
+
id: 5,
|
|
107
253
|
method: "thread/inject_items",
|
|
108
|
-
params: {
|
|
254
|
+
params: {
|
|
255
|
+
threadId: state.threadId,
|
|
256
|
+
items: [input.provenanceItem],
|
|
257
|
+
},
|
|
109
258
|
});
|
|
110
259
|
continue;
|
|
111
260
|
}
|
|
112
|
-
if (message.id ===
|
|
261
|
+
if (message.id === 5 && state.threadId) {
|
|
113
262
|
if (input.name) {
|
|
114
263
|
write({
|
|
115
|
-
id:
|
|
264
|
+
id: 7,
|
|
116
265
|
method: "thread/name/set",
|
|
117
266
|
params: { threadId: state.threadId, name: input.name },
|
|
118
267
|
});
|
|
@@ -120,12 +269,13 @@ const importCodexDesktopThread = (input) => new Promise((resolve) => {
|
|
|
120
269
|
else {
|
|
121
270
|
finish(ok(state.threadId));
|
|
122
271
|
}
|
|
123
|
-
continue;
|
|
124
272
|
}
|
|
125
|
-
if (message.id ===
|
|
273
|
+
if (message.id === 6 && state.pendingError) {
|
|
274
|
+
state.archiveQueue = state.archiveQueue.slice(1);
|
|
275
|
+
archiveNext();
|
|
276
|
+
}
|
|
277
|
+
if (message.id === 7 && state.threadId)
|
|
126
278
|
finish(ok(state.threadId));
|
|
127
|
-
if (message.id === 5 && state.pendingError)
|
|
128
|
-
finish(err(state.pendingError));
|
|
129
279
|
}
|
|
130
280
|
});
|
|
131
281
|
queueMicrotask(() => {
|
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
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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"}
|
|
@@ -3,6 +3,7 @@ import { codexDesktopRecovery } from "./codex-desktop-recovery.js";
|
|
|
3
3
|
import { importCodexDesktopThread } from "./import-codex-desktop-thread.js";
|
|
4
4
|
import { launchDesktopUrl } from "./launch-desktop-url.js";
|
|
5
5
|
import { provenanceContext } from "./provenance-context.js";
|
|
6
|
+
declare const removeCodexDesktopSource: (path: string) => Promise<import("../../../_utils/result.js").Result<void, unknown>>;
|
|
6
7
|
declare const writeCodexDesktopSession: (payload: {
|
|
7
8
|
readonly takeoverId: string;
|
|
8
9
|
readonly canonicalDigest: string;
|
|
@@ -18,6 +19,7 @@ declare const writeCodexDesktopSession: (payload: {
|
|
|
18
19
|
readonly launchUrl?: typeof launchDesktopUrl;
|
|
19
20
|
readonly recovery?: typeof codexDesktopRecovery;
|
|
20
21
|
readonly archiveThread?: typeof archiveCodexDesktopThread;
|
|
22
|
+
readonly removeSource?: typeof removeCodexDesktopSource;
|
|
21
23
|
}) => {
|
|
22
24
|
probe: () => Promise<import("../../../_utils/result.js").Result<{
|
|
23
25
|
binary: string;
|
|
@@ -45,7 +47,7 @@ declare const writeCodexDesktopSession: (payload: {
|
|
|
45
47
|
} | {
|
|
46
48
|
readonly ok: true;
|
|
47
49
|
readonly value: {
|
|
48
|
-
role:
|
|
50
|
+
role: "user" | "assistant";
|
|
49
51
|
content: string;
|
|
50
52
|
}[];
|
|
51
53
|
}>;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
1
2
|
import { readFile } from "node:fs/promises";
|
|
3
|
+
import { rm } from "node:fs/promises";
|
|
2
4
|
import { cliErr } from "../../../_utils/cli-error.js";
|
|
3
5
|
import { findBin, isExecutable } from "../../../_utils/find-bin.js";
|
|
4
6
|
import { err, fromPromise, ok } from "../../../_utils/result.js";
|
|
7
|
+
import { agentPaths } from "./agent-paths.js";
|
|
5
8
|
import { archiveCodexDesktopThread } from "./archive-codex-desktop-thread.js";
|
|
6
9
|
import { codexDesktopRecovery } from "./codex-desktop-recovery.js";
|
|
7
10
|
import { importCodexDesktopThread } from "./import-codex-desktop-thread.js";
|
|
@@ -10,37 +13,48 @@ import { nativeFile } from "./native-file.js";
|
|
|
10
13
|
import { probeAgent } from "./probe-agent.js";
|
|
11
14
|
import { provenanceContext } from "./provenance-context.js";
|
|
12
15
|
const bundledCodexPath = "/Applications/ChatGPT.app/Contents/Resources/codex";
|
|
16
|
+
const transcriptMessage = (role, content) => ({
|
|
17
|
+
role,
|
|
18
|
+
content,
|
|
19
|
+
});
|
|
20
|
+
const removeCodexDesktopSource = (path) => fromPromise(rm(path, { force: true }));
|
|
13
21
|
const writeCodexDesktopSession = (payload, workspace, options = {}) => {
|
|
14
22
|
const recovery = options.recovery ?? codexDesktopRecovery;
|
|
15
23
|
const archiveThread = options.archiveThread ?? archiveCodexDesktopThread;
|
|
24
|
+
const removeSource = options.removeSource ?? removeCodexDesktopSource;
|
|
16
25
|
const resolveBinary = () => options.binary ??
|
|
17
26
|
process.env.GLEN_CODEX_DESKTOP_BIN ??
|
|
18
27
|
(process.platform === "darwin" && isExecutable(bundledCodexPath)
|
|
19
28
|
? bundledCodexPath
|
|
20
29
|
: findBin("codex"));
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
type: "message",
|
|
24
|
-
role: "developer",
|
|
25
|
-
content: [
|
|
26
|
-
{
|
|
27
|
-
type: "input_text",
|
|
28
|
-
text: `<glen_takeover_provenance>${provenanceContext(payload.provenance)}</glen_takeover_provenance>`,
|
|
29
|
-
},
|
|
30
|
-
],
|
|
31
|
-
},
|
|
30
|
+
const timestamp = new Date().toISOString();
|
|
31
|
+
const records = [
|
|
32
32
|
...payload.messages.map((message) => ({
|
|
33
|
-
type:
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
type: message.role,
|
|
34
|
+
cwd: workspace,
|
|
35
|
+
timestamp,
|
|
36
|
+
message: { content: message.content },
|
|
37
|
+
})),
|
|
38
|
+
...(payload.provenance.sourceTitle
|
|
39
|
+
? [
|
|
36
40
|
{
|
|
37
|
-
type:
|
|
38
|
-
|
|
41
|
+
type: "custom-title",
|
|
42
|
+
customTitle: payload.provenance.sourceTitle,
|
|
39
43
|
},
|
|
40
|
-
]
|
|
41
|
-
|
|
44
|
+
]
|
|
45
|
+
: []),
|
|
42
46
|
];
|
|
43
|
-
const
|
|
47
|
+
const provenanceItem = {
|
|
48
|
+
type: "message",
|
|
49
|
+
role: "developer",
|
|
50
|
+
content: [
|
|
51
|
+
{
|
|
52
|
+
type: "input_text",
|
|
53
|
+
text: `<glen_takeover_provenance>${provenanceContext(payload.provenance)}</glen_takeover_provenance>`,
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
};
|
|
57
|
+
const parseRecords = async (path) => {
|
|
44
58
|
const raw = await fromPromise(readFile(path, "utf8"));
|
|
45
59
|
if (!raw.ok)
|
|
46
60
|
return err(cliErr({
|
|
@@ -66,6 +80,16 @@ const writeCodexDesktopSession = (payload, workspace, options = {}) => {
|
|
|
66
80
|
}));
|
|
67
81
|
return ok(parsed);
|
|
68
82
|
};
|
|
83
|
+
const messagesFromRecords = (parsed) => parsed.flatMap((record) => {
|
|
84
|
+
if (record.type !== "user" && record.type !== "assistant")
|
|
85
|
+
return [];
|
|
86
|
+
const message = record.message && typeof record.message === "object"
|
|
87
|
+
? record.message
|
|
88
|
+
: null;
|
|
89
|
+
return typeof message?.content === "string"
|
|
90
|
+
? [transcriptMessage(record.type, message.content)]
|
|
91
|
+
: [];
|
|
92
|
+
});
|
|
69
93
|
const installedFromId = (destinationSessionId) => {
|
|
70
94
|
const url = `codex://threads/${encodeURIComponent(destinationSessionId)}`;
|
|
71
95
|
return {
|
|
@@ -108,28 +132,16 @@ const writeCodexDesktopSession = (payload, workspace, options = {}) => {
|
|
|
108
132
|
});
|
|
109
133
|
},
|
|
110
134
|
stage: async () => {
|
|
111
|
-
const staged = await nativeFile.stage("glen-codex-desktop-takeover-",
|
|
135
|
+
const staged = await nativeFile.stage("glen-codex-desktop-takeover-", records);
|
|
112
136
|
return staged.ok
|
|
113
137
|
? ok({ ...staged.value, recoveryCommand: "open Codex Desktop" })
|
|
114
138
|
: staged;
|
|
115
139
|
},
|
|
116
140
|
parse: async (staged) => {
|
|
117
|
-
const parsed = await
|
|
141
|
+
const parsed = await parseRecords(staged.path);
|
|
118
142
|
if (!parsed.ok)
|
|
119
143
|
return parsed;
|
|
120
|
-
|
|
121
|
-
if (item.role !== "user" && item.role !== "assistant")
|
|
122
|
-
return [];
|
|
123
|
-
const content = Array.isArray(item.content) ? item.content : [];
|
|
124
|
-
const text = content
|
|
125
|
-
.map((part) => part && typeof part === "object" && "text" in part
|
|
126
|
-
? part.text
|
|
127
|
-
: null)
|
|
128
|
-
.filter((part) => typeof part === "string")
|
|
129
|
-
.join("");
|
|
130
|
-
return [{ role: item.role, content: text }];
|
|
131
|
-
});
|
|
132
|
-
return ok(messages);
|
|
144
|
+
return ok(messagesFromRecords(parsed.value));
|
|
133
145
|
},
|
|
134
146
|
install: async (staged) => {
|
|
135
147
|
const binary = resolveBinary();
|
|
@@ -138,15 +150,42 @@ const writeCodexDesktopSession = (payload, workspace, options = {}) => {
|
|
|
138
150
|
what: "Codex Desktop is not installed or discoverable",
|
|
139
151
|
remedy: "install or update Codex Desktop, then retry",
|
|
140
152
|
}));
|
|
141
|
-
const parsed = await
|
|
153
|
+
const parsed = await parseRecords(staged.path);
|
|
142
154
|
if (!parsed.ok)
|
|
143
155
|
return parsed;
|
|
156
|
+
const messages = messagesFromRecords(parsed.value);
|
|
157
|
+
const sourcePath = agentPaths.claude(workspace, `.glen-takeover-${randomUUID()}`);
|
|
158
|
+
const sourceInstalled = await nativeFile.install(staged.path, sourcePath, "");
|
|
159
|
+
if (!sourceInstalled.ok)
|
|
160
|
+
return sourceInstalled;
|
|
144
161
|
const imported = await (options.importThread ?? importCodexDesktopThread)({
|
|
145
162
|
binary,
|
|
146
163
|
workspace,
|
|
147
164
|
name: payload.provenance.sourceTitle,
|
|
148
|
-
|
|
165
|
+
sessionPath: sourcePath,
|
|
166
|
+
messages,
|
|
167
|
+
provenanceItem,
|
|
149
168
|
});
|
|
169
|
+
const sourceRemoved = await removeSource(sourcePath);
|
|
170
|
+
if (!sourceRemoved.ok) {
|
|
171
|
+
if (imported.ok) {
|
|
172
|
+
const archived = await archiveThread({
|
|
173
|
+
binary,
|
|
174
|
+
threadId: imported.value,
|
|
175
|
+
});
|
|
176
|
+
if (!archived)
|
|
177
|
+
return err(cliErr({
|
|
178
|
+
what: "temporary Codex import cleanup failed and the imported task remains",
|
|
179
|
+
path: sourcePath,
|
|
180
|
+
remedy: `archive task ${imported.value} in Codex Desktop, remove the reported temporary session, then retry`,
|
|
181
|
+
}));
|
|
182
|
+
}
|
|
183
|
+
return err(cliErr({
|
|
184
|
+
what: "could not remove the temporary Codex import source",
|
|
185
|
+
path: sourcePath,
|
|
186
|
+
remedy: "remove the reported temporary session, then retry the takeover",
|
|
187
|
+
}));
|
|
188
|
+
}
|
|
150
189
|
if (!imported.ok)
|
|
151
190
|
return imported;
|
|
152
191
|
const saved = await recovery.save({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-codex-desktop-session.js","sourceRoot":"","sources":["../../../../src/commands/takeover/_utils/write-codex-desktop-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,gBAAgB,GAAG,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"write-codex-desktop-session.js","sourceRoot":"","sources":["../../../../src/commands/takeover/_utils/write-codex-desktop-session.ts"],"names":[],"mappings":"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"}
|