nterminal 1.3.2 → 1.3.3
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 +4 -2
- package/bin/nterminal.js +5 -0
- package/dist/client/assets/MarkdownPreview-CWK2qIZp.js +1 -0
- package/dist/client/assets/{TranscriptMarkdownBody-Cu7KK3bx.js → TranscriptMarkdownBody-Ddi-rw6X.js} +1 -1
- package/dist/client/assets/index-CcAQThtj.js +56 -0
- package/dist/client/assets/{index-CosXAR2f.js → index-DDCpqDNb.js} +1 -1
- package/dist/client/assets/{index-lQ2cyEWO.css → index-DTTX24tu.css} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/scripts/onboarding.js +9 -0
- package/dist/scripts/onboarding.js.map +1 -1
- package/dist/server/agent/agentProxy.d.ts +1 -0
- package/dist/server/agent/agentProxy.js +3 -1
- package/dist/server/agent/agentProxy.js.map +1 -1
- package/dist/server/agent/agentRoutes.js +16 -2
- package/dist/server/agent/agentRoutes.js.map +1 -1
- package/dist/server/index.js +2 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/agentManagementRoutes.js +13 -2
- package/dist/server/routes/agentManagementRoutes.js.map +1 -1
- package/dist/server/routes/terminalRoutes.js +19 -2
- package/dist/server/routes/terminalRoutes.js.map +1 -1
- package/dist/server/routes/transcriptQuery.d.ts +14 -0
- package/dist/server/routes/transcriptQuery.js +57 -0
- package/dist/server/routes/transcriptQuery.js.map +1 -0
- package/dist/server/terminal/PtyAdapter.d.ts +12 -0
- package/dist/server/terminal/PtyAdapter.js.map +1 -1
- package/dist/server/terminal/TerminalManager.d.ts +6 -7
- package/dist/server/terminal/TerminalManager.js +57 -11
- package/dist/server/terminal/TerminalManager.js.map +1 -1
- package/dist/server/terminal/TmuxPtyAdapter.d.ts +15 -1
- package/dist/server/terminal/TmuxPtyAdapter.js +284 -13
- package/dist/server/terminal/TmuxPtyAdapter.js.map +1 -1
- package/dist/server/terminal/codexTranscriptSource.d.ts +18 -1
- package/dist/server/terminal/codexTranscriptSource.js +263 -68
- package/dist/server/terminal/codexTranscriptSource.js.map +1 -1
- package/dist/server/terminal/sqliteReader.d.ts +21 -0
- package/dist/server/terminal/sqliteReader.js +158 -0
- package/dist/server/terminal/sqliteReader.js.map +1 -0
- package/dist/server/terminal/subagentSources.js +3 -2
- package/dist/server/terminal/subagentSources.js.map +1 -1
- package/dist/server/terminal/transcriptHistory.d.ts +34 -0
- package/dist/server/terminal/transcriptHistory.js +81 -36
- package/dist/server/terminal/transcriptHistory.js.map +1 -1
- package/dist/server/terminal/transcriptStore.d.ts +64 -0
- package/dist/server/terminal/transcriptStore.js +779 -0
- package/dist/server/terminal/transcriptStore.js.map +1 -0
- package/dist/shared/nodeVersion.d.ts +3 -0
- package/dist/shared/nodeVersion.js +12 -0
- package/dist/shared/nodeVersion.js.map +1 -0
- package/dist/shared/protocol.d.ts +33 -0
- package/dist/shared/protocol.js.map +1 -1
- package/dist/shared/transcriptSearch.d.ts +2 -0
- package/dist/shared/transcriptSearch.js +12 -0
- package/dist/shared/transcriptSearch.js.map +1 -0
- package/dist/src/shared/nodeVersion.js +12 -0
- package/dist/src/shared/nodeVersion.js.map +1 -0
- package/docs/terminal-history.md +22 -4
- package/package.json +2 -2
- package/scripts/nterminalctl +8 -4
- package/dist/client/assets/MarkdownPreview-CzA5ZyZ3.js +0 -1
- package/dist/client/assets/index-wiyTLXQg.js +0 -56
|
@@ -1,17 +1,23 @@
|
|
|
1
|
-
import { access, readFile, readdir, readlink, realpath } from 'node:fs/promises';
|
|
1
|
+
import { access, open, readFile, readdir, readlink, realpath, stat } from 'node:fs/promises';
|
|
2
2
|
import os from 'node:os';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { isSessionId, sessionIdPatternSource } from './sessionId.js';
|
|
5
5
|
import { readProcessStartedAtSecondsAsync } from './procfs.js';
|
|
6
6
|
import { TtlCache } from './ttlCache.js';
|
|
7
7
|
import { KeyedSingleFlight, mapWithConcurrency, runCommand } from './asyncCommand.js';
|
|
8
|
+
import { readSqlite } from './sqliteReader.js';
|
|
9
|
+
export const TRANSCRIPT_CANDIDATE_LIMIT = 50;
|
|
10
|
+
const ABSENT = { status: 'absent' };
|
|
11
|
+
const UNAVAILABLE = { status: 'unavailable' };
|
|
12
|
+
const PENDING = { status: 'pending' };
|
|
13
|
+
const AMBIGUOUS = { status: 'ambiguous' };
|
|
8
14
|
const PROCESS_START_SKEW_SECONDS = 2;
|
|
9
15
|
// Codex >= 0.157 TUIs hand the conversation to a shared app-server daemon
|
|
10
16
|
// that listens on /tmp/codex-daemon-<uid>/<hash>; the daemon, not the TUI,
|
|
11
17
|
// owns the rollout fd and tags the thread's log rows with its own pid.
|
|
12
18
|
const CODEX_DAEMON_SOCKET_DIR_PREFIX = 'codex-daemon-';
|
|
13
19
|
const SOCKET_FD_TARGET_PATTERN = /^socket:\[(\d+)\]$/;
|
|
14
|
-
const LOOKUP_CACHE_SUCCESS_TTL_MS =
|
|
20
|
+
const LOOKUP_CACHE_SUCCESS_TTL_MS = 3_000;
|
|
15
21
|
// Must exceed the client's steady transcript-source poll cadence (15s in
|
|
16
22
|
// XtermPane); a shorter negative TTL guarantees every poll misses the cache
|
|
17
23
|
// and re-runs the sqlite lookup.
|
|
@@ -25,6 +31,10 @@ const processLogLookupCache = new TtlCache();
|
|
|
25
31
|
const processLogLookupInflight = new KeyedSingleFlight();
|
|
26
32
|
const daemonLookupCache = new TtlCache();
|
|
27
33
|
const daemonLookupInflight = new KeyedSingleFlight();
|
|
34
|
+
function lookupTtl(result) {
|
|
35
|
+
return result.status === 'absent' || result.status === 'unavailable'
|
|
36
|
+
? LOOKUP_CACHE_FAILURE_TTL_MS : LOOKUP_CACHE_SUCCESS_TTL_MS;
|
|
37
|
+
}
|
|
28
38
|
export function clearCodexTranscriptLookupCache() {
|
|
29
39
|
processLogLookupCache.clear();
|
|
30
40
|
processLogLookupInflight.clear();
|
|
@@ -38,10 +48,12 @@ export async function resolveCodexTranscriptFromOpenFds(pid, options = {}) {
|
|
|
38
48
|
if (openRollouts.size !== 1)
|
|
39
49
|
return null;
|
|
40
50
|
const [sessionId, filePath] = [...openRollouts.entries()][0];
|
|
51
|
+
if (!(await rolloutReadable(filePath)))
|
|
52
|
+
return null;
|
|
41
53
|
return { provider: 'codex', sessionId, filePath };
|
|
42
54
|
}
|
|
43
|
-
// Rollouts `pid` holds open for writing, keyed by session id.
|
|
44
|
-
//
|
|
55
|
+
// Rollouts `pid` holds open for writing, keyed by session id. Unlinked FDs
|
|
56
|
+
// are ignored; other missing targets remain evidence against uniqueness.
|
|
45
57
|
async function listOpenCodexRollouts(procRoot, pid) {
|
|
46
58
|
const fdDir = path.join(procRoot, String(pid), 'fd');
|
|
47
59
|
let fdNames;
|
|
@@ -59,7 +71,6 @@ async function listOpenCodexRollouts(procRoot, pid) {
|
|
|
59
71
|
const match = CODEX_ROLLOUT_FILE_PATTERN.exec(path.basename(target));
|
|
60
72
|
if (!match || !(await isFdOpenForWritingAsync(procRoot, pid, fdName)))
|
|
61
73
|
return null;
|
|
62
|
-
await access(target);
|
|
63
74
|
return { sessionId: match[1], filePath: target };
|
|
64
75
|
}
|
|
65
76
|
catch {
|
|
@@ -94,8 +105,12 @@ function fdFlagsAllowWriting(raw) {
|
|
|
94
105
|
return accessMode === 0o1 || accessMode === 0o2;
|
|
95
106
|
}
|
|
96
107
|
export async function resolveCodexTranscriptFromProcessLogs(pid, options = {}) {
|
|
108
|
+
const result = await lookupCodexTranscriptFromProcessLogs(pid, options);
|
|
109
|
+
return result.status === 'matched' ? result.source : null;
|
|
110
|
+
}
|
|
111
|
+
export async function lookupCodexTranscriptFromProcessLogs(pid, options = {}) {
|
|
97
112
|
if (!Number.isInteger(pid) || pid <= 0)
|
|
98
|
-
return
|
|
113
|
+
return UNAVAILABLE;
|
|
99
114
|
const homeDir = options.homeDir ?? os.homedir();
|
|
100
115
|
const logsDb = path.join(homeDir, '.codex', 'logs_2.sqlite');
|
|
101
116
|
const stateDb = path.join(homeDir, '.codex', 'state_5.sqlite');
|
|
@@ -103,82 +118,99 @@ export async function resolveCodexTranscriptFromProcessLogs(pid, options = {}) {
|
|
|
103
118
|
await Promise.all([access(logsDb), access(stateDb)]);
|
|
104
119
|
}
|
|
105
120
|
catch {
|
|
106
|
-
return
|
|
121
|
+
return UNAVAILABLE;
|
|
107
122
|
}
|
|
108
123
|
const processStartedAtSeconds = options.processStartedAtSeconds !== undefined
|
|
109
124
|
? options.processStartedAtSeconds
|
|
110
125
|
: await readProcessStartedAtSecondsAsync(pid);
|
|
111
126
|
if (processStartedAtSeconds === null)
|
|
112
|
-
return
|
|
127
|
+
return UNAVAILABLE;
|
|
113
128
|
const cacheKey = `${logsDb}:${pid}:${processStartedAtSeconds}`;
|
|
129
|
+
if (options.bypassCache) {
|
|
130
|
+
return lookupCodexTranscriptInProcessLogs(pid, logsDb, stateDb, processStartedAtSeconds, options.runSqlite);
|
|
131
|
+
}
|
|
114
132
|
const cached = processLogLookupCache.get(cacheKey);
|
|
115
133
|
if (cached)
|
|
116
134
|
return cached.value;
|
|
117
135
|
return processLogLookupInflight.run(cacheKey, async () => {
|
|
118
136
|
const source = await lookupCodexTranscriptInProcessLogs(pid, logsDb, stateDb, processStartedAtSeconds, options.runSqlite);
|
|
119
|
-
processLogLookupCache.set(cacheKey, source, source
|
|
137
|
+
processLogLookupCache.set(cacheKey, source, lookupTtl(source));
|
|
120
138
|
return source;
|
|
121
139
|
});
|
|
122
140
|
}
|
|
123
141
|
async function lookupCodexTranscriptInProcessLogs(pid, logsDb, stateDb, processStartedAtSeconds, runSqliteOverride) {
|
|
124
142
|
const output = await runProcessLogQuery(pid, logsDb, stateDb, processStartedAtSeconds, runSqliteOverride);
|
|
125
|
-
return output === null ?
|
|
143
|
+
return output === null ? UNAVAILABLE : parseProcessLogMatchesAsync(output);
|
|
126
144
|
}
|
|
127
145
|
async function parseProcessLogMatchesAsync(output) {
|
|
128
146
|
const matches = new Map();
|
|
147
|
+
const choices = new Map();
|
|
148
|
+
let unresolvedLastLog = -Infinity;
|
|
129
149
|
for (const line of output.split('\n')) {
|
|
130
150
|
const trimmed = line.trim();
|
|
131
151
|
if (!trimmed)
|
|
132
152
|
continue;
|
|
133
|
-
const [sessionId, filePath, lastTsRaw] = trimmed.split('\t');
|
|
153
|
+
const [sessionId, filePath, lastTsRaw, source] = trimmed.split('\t');
|
|
134
154
|
if (!sessionId || !filePath || !isSessionId(sessionId) || !isCodexRolloutPath(filePath, sessionId))
|
|
135
155
|
continue;
|
|
136
|
-
|
|
137
|
-
|
|
156
|
+
const lastLogSeconds = Number(lastTsRaw);
|
|
157
|
+
const normalized = Number.isFinite(lastLogSeconds) ? lastLogSeconds : 0;
|
|
158
|
+
const tui = source === 'vscode' ? await isTuiRollout(filePath, sessionId) : true;
|
|
159
|
+
const candidate = await describeCandidate({ provider: 'codex', sessionId, filePath }, undefined, tui === null ? 'unknown' : 'verified');
|
|
160
|
+
if (tui !== false && (!choices.has(sessionId) || choices.get(sessionId).seconds < normalized)) {
|
|
161
|
+
choices.set(sessionId, { candidate, seconds: normalized });
|
|
138
162
|
}
|
|
139
|
-
|
|
163
|
+
if (tui !== true || !candidate.readable) {
|
|
164
|
+
unresolvedLastLog = Math.max(unresolvedLastLog, normalized);
|
|
140
165
|
continue;
|
|
141
166
|
}
|
|
142
|
-
const lastLogSeconds = Number(lastTsRaw);
|
|
143
|
-
const normalized = Number.isFinite(lastLogSeconds) ? lastLogSeconds : 0;
|
|
144
167
|
const existing = matches.get(sessionId);
|
|
145
168
|
if (!existing || existing.lastLogSeconds < normalized) {
|
|
146
169
|
matches.set(sessionId, { filePath, lastLogSeconds: normalized });
|
|
147
170
|
}
|
|
148
171
|
}
|
|
172
|
+
const latest = Math.max(unresolvedLastLog, ...[...choices.values()].map(entry => entry.seconds));
|
|
173
|
+
const metadata = { candidates: [...choices.values()].filter(entry => entry.seconds === latest)
|
|
174
|
+
.slice(0, TRANSCRIPT_CANDIDATE_LIMIT).map(entry => entry.candidate) };
|
|
149
175
|
if (matches.size === 0)
|
|
150
|
-
return
|
|
176
|
+
return { ...(output.trim() ? PENDING : ABSENT), ...metadata };
|
|
151
177
|
const ranked = [...matches.entries()].sort((a, b) => b[1].lastLogSeconds - a[1].lastLogSeconds);
|
|
178
|
+
if (ranked[0][1].lastLogSeconds <= unresolvedLastLog)
|
|
179
|
+
return { ...PENDING, ...metadata };
|
|
152
180
|
if (ranked.length > 1 && ranked[0][1].lastLogSeconds <= ranked[1][1].lastLogSeconds)
|
|
153
|
-
return
|
|
181
|
+
return { ...AMBIGUOUS, ...metadata };
|
|
154
182
|
const [sessionId, entry] = ranked[0];
|
|
155
|
-
return { provider: 'codex', sessionId, filePath: entry.filePath };
|
|
183
|
+
return { status: 'matched', source: { provider: 'codex', sessionId, filePath: entry.filePath }, ...metadata };
|
|
156
184
|
}
|
|
157
185
|
async function runProcessLogQuery(pid, logsDb, stateDb, processStartedAtSeconds, runSqliteOverride) {
|
|
158
186
|
const minLogSeconds = Math.max(0, Math.floor(processStartedAtSeconds) - PROCESS_START_SKEW_SECONDS);
|
|
159
|
-
const sql = processLogSql(pid,
|
|
187
|
+
const sql = processLogSql(pid, minLogSeconds);
|
|
160
188
|
if (runSqliteOverride) {
|
|
161
|
-
|
|
189
|
+
try {
|
|
190
|
+
return await runSqliteOverride(logsDb, sql);
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
162
195
|
}
|
|
163
196
|
try {
|
|
164
|
-
return
|
|
197
|
+
return await readSqlite(logsDb, sql, { attachments: { state: stateDb } });
|
|
165
198
|
}
|
|
166
199
|
catch {
|
|
167
200
|
return null;
|
|
168
201
|
}
|
|
169
202
|
}
|
|
170
|
-
function processLogSql(pid,
|
|
203
|
+
function processLogSql(pid, minLogSeconds) {
|
|
171
204
|
return [
|
|
172
|
-
|
|
173
|
-
'SELECT id
|
|
174
|
-
' SELECT t.id AS id, t.rollout_path AS rollout_path, (',
|
|
205
|
+
'SELECT id || char(9) || rollout_path || char(9) || last_ts || char(9) || source FROM (',
|
|
206
|
+
' SELECT t.id AS id, t.rollout_path AS rollout_path, t.source AS source, (',
|
|
175
207
|
' SELECT MAX(l.ts) FROM logs l',
|
|
176
208
|
' WHERE l.thread_id = t.id',
|
|
177
209
|
` AND l.ts >= ${minLogSeconds}`,
|
|
178
210
|
` AND l.process_uuid LIKE ${sqlString(`pid:${pid}:%`)}`,
|
|
179
211
|
' ) AS last_ts',
|
|
180
212
|
' FROM state.threads t',
|
|
181
|
-
" WHERE t.source
|
|
213
|
+
" WHERE t.source IN ('cli', 'vscode')",
|
|
182
214
|
" AND t.model_provider = 'openai'",
|
|
183
215
|
' AND t.rollout_path IS NOT NULL',
|
|
184
216
|
')',
|
|
@@ -193,35 +225,42 @@ function processLogSql(pid, stateDb, minLogSeconds) {
|
|
|
193
225
|
// following the TUI's unix socket to the daemon and narrowing the daemon's
|
|
194
226
|
// open rollouts to interactive threads started in the TUI's cwd.
|
|
195
227
|
export async function resolveCodexTranscriptFromDaemon(pid, options = {}) {
|
|
228
|
+
const result = await lookupCodexTranscriptFromDaemon(pid, options);
|
|
229
|
+
return result.status === 'matched' ? result.source : null;
|
|
230
|
+
}
|
|
231
|
+
export async function lookupCodexTranscriptFromDaemon(pid, options = {}) {
|
|
196
232
|
if (!Number.isInteger(pid) || pid <= 0)
|
|
197
|
-
return
|
|
233
|
+
return UNAVAILABLE;
|
|
198
234
|
const processStartedAtSeconds = options.processStartedAtSeconds !== undefined
|
|
199
235
|
? options.processStartedAtSeconds
|
|
200
236
|
: await readProcessStartedAtSecondsAsync(pid);
|
|
201
237
|
if (processStartedAtSeconds === null)
|
|
202
|
-
return
|
|
238
|
+
return UNAVAILABLE;
|
|
203
239
|
const procRoot = options.procRoot ?? '/proc';
|
|
204
|
-
const cacheKey = `${procRoot}:${pid}:${processStartedAtSeconds}`;
|
|
240
|
+
const cacheKey = `${options.homeDir ?? os.homedir()}:${procRoot}:${pid}:${processStartedAtSeconds}`;
|
|
205
241
|
const cached = daemonLookupCache.get(cacheKey);
|
|
206
242
|
if (cached)
|
|
207
243
|
return cached.value;
|
|
208
244
|
return daemonLookupInflight.run(cacheKey, async () => {
|
|
209
245
|
const source = await lookupCodexTranscriptInDaemon(pid, procRoot, options);
|
|
210
|
-
daemonLookupCache.set(cacheKey, source, source
|
|
246
|
+
daemonLookupCache.set(cacheKey, source, lookupTtl(source));
|
|
211
247
|
return source;
|
|
212
248
|
});
|
|
213
249
|
}
|
|
214
250
|
async function lookupCodexTranscriptInDaemon(pid, procRoot, options) {
|
|
215
251
|
const clientInodes = await listSocketInodes(procRoot, pid);
|
|
252
|
+
if (clientInodes === null)
|
|
253
|
+
return UNAVAILABLE;
|
|
216
254
|
if (clientInodes.size === 0)
|
|
217
|
-
return
|
|
218
|
-
const socketTable = await (options.readUnixSocketTable ?? readUnixSocketTable)();
|
|
255
|
+
return ABSENT;
|
|
256
|
+
const socketTable = await (options.readUnixSocketTable ?? readUnixSocketTable)().catch(() => null);
|
|
219
257
|
if (socketTable === null)
|
|
220
|
-
return
|
|
258
|
+
return UNAVAILABLE;
|
|
221
259
|
const daemonInodes = daemonPeerInodes(parseUnixSocketTable(socketTable), clientInodes);
|
|
222
260
|
if (daemonInodes.size === 0)
|
|
223
|
-
return
|
|
261
|
+
return ABSENT;
|
|
224
262
|
const daemonPids = await findProcessesOwningSockets(procRoot, daemonInodes);
|
|
263
|
+
const daemonBinding = await processBinding(procRoot, daemonPids);
|
|
225
264
|
const rollouts = new Map();
|
|
226
265
|
for (const daemonPid of daemonPids) {
|
|
227
266
|
for (const [sessionId, filePath] of await listOpenCodexRollouts(procRoot, daemonPid)) {
|
|
@@ -229,28 +268,47 @@ async function lookupCodexTranscriptInDaemon(pid, procRoot, options) {
|
|
|
229
268
|
}
|
|
230
269
|
}
|
|
231
270
|
if (rollouts.size === 0)
|
|
232
|
-
return
|
|
271
|
+
return PENDING;
|
|
233
272
|
const clientCwd = await readLinkOrNull(path.join(procRoot, String(pid), 'cwd'));
|
|
234
273
|
if (clientCwd === null)
|
|
235
|
-
return
|
|
236
|
-
const threadCwds = await readInteractiveThreadCwds(path.join(options.homeDir ?? os.homedir(), '.codex', 'state_5.sqlite'),
|
|
274
|
+
return PENDING;
|
|
275
|
+
const threadCwds = await readInteractiveThreadCwds(path.join(options.homeDir ?? os.homedir(), '.codex', 'state_5.sqlite'), rollouts, options.runSqlite);
|
|
237
276
|
if (threadCwds === null)
|
|
238
|
-
return
|
|
277
|
+
return PENDING;
|
|
239
278
|
const clientRealCwd = await realpathOrSelf(clientCwd);
|
|
240
279
|
const matching = [];
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
280
|
+
let unresolved = false;
|
|
281
|
+
for (const [sessionId, { cwd, verification }] of threadCwds) {
|
|
282
|
+
if (!cwd) {
|
|
283
|
+
unresolved = true;
|
|
284
|
+
continue;
|
|
285
|
+
}
|
|
286
|
+
if (cwd !== clientCwd && await realpathOrSelf(cwd) !== clientRealCwd)
|
|
287
|
+
continue;
|
|
288
|
+
if (matching.length === TRANSCRIPT_CANDIDATE_LIMIT) {
|
|
289
|
+
unresolved = true;
|
|
290
|
+
continue;
|
|
291
|
+
}
|
|
292
|
+
matching.push(await describeCandidate({ provider: 'codex', sessionId, filePath: rollouts.get(sessionId) }, cwd, verification));
|
|
293
|
+
}
|
|
294
|
+
// Launch args survive /new and /resume. They cannot disambiguate the
|
|
295
|
+
// conversations a shared daemon currently holds open in the same cwd.
|
|
296
|
+
if (daemonBinding !== await processBinding(procRoot, daemonPids))
|
|
297
|
+
return PENDING;
|
|
298
|
+
const metadata = {
|
|
299
|
+
candidates: matching.slice(0, TRANSCRIPT_CANDIDATE_LIMIT),
|
|
300
|
+
...(daemonBinding ? { binding: daemonBinding } : {})
|
|
301
|
+
};
|
|
302
|
+
if (matching.length > 1)
|
|
303
|
+
return { ...AMBIGUOUS, ...metadata };
|
|
304
|
+
if (unresolved)
|
|
305
|
+
return { ...PENDING, ...metadata };
|
|
306
|
+
if (matching.length === 0)
|
|
307
|
+
return PENDING;
|
|
308
|
+
const chosen = matching[0];
|
|
309
|
+
if (chosen.verification !== 'verified' || !chosen.readable)
|
|
310
|
+
return { ...PENDING, ...metadata };
|
|
311
|
+
return { status: 'matched', source: { provider: chosen.provider, sessionId: chosen.sessionId, filePath: chosen.filePath }, ...metadata };
|
|
254
312
|
}
|
|
255
313
|
// `ss -xn` rows: Netid State Recv-Q Send-Q <local addr> <inode> <peer addr> <peer inode>.
|
|
256
314
|
// The local address is the only field that can contain spaces, so the
|
|
@@ -302,7 +360,7 @@ async function listSocketInodes(procRoot, pid) {
|
|
|
302
360
|
fdNames = await readdir(fdDir);
|
|
303
361
|
}
|
|
304
362
|
catch {
|
|
305
|
-
return
|
|
363
|
+
return null;
|
|
306
364
|
}
|
|
307
365
|
const inodes = await mapWithConcurrency(fdNames, 16, async (fdName) => {
|
|
308
366
|
const match = SOCKET_FD_TARGET_PATTERN.exec((await readLinkOrNull(path.join(fdDir, fdName))) ?? '');
|
|
@@ -324,7 +382,7 @@ async function findProcessesOwningSockets(procRoot, inodes) {
|
|
|
324
382
|
const pid = Number(entry);
|
|
325
383
|
if (!isCodexAppServerArgs(await readCmdline(procRoot, pid)))
|
|
326
384
|
return null;
|
|
327
|
-
for (const inode of await listSocketInodes(procRoot, pid)) {
|
|
385
|
+
for (const inode of (await listSocketInodes(procRoot, pid)) ?? []) {
|
|
328
386
|
if (inodes.has(inode))
|
|
329
387
|
return pid;
|
|
330
388
|
}
|
|
@@ -336,24 +394,29 @@ function isCodexAppServerArgs(args) {
|
|
|
336
394
|
const first = args[0];
|
|
337
395
|
return first !== undefined && path.basename(first).toLowerCase() === 'codex' && args.includes('app-server');
|
|
338
396
|
}
|
|
339
|
-
async function readInteractiveThreadCwds(stateDb,
|
|
340
|
-
const ids =
|
|
397
|
+
async function readInteractiveThreadCwds(stateDb, rollouts, runSqliteOverride) {
|
|
398
|
+
const ids = [...rollouts.keys()].filter((sessionId) => isSessionId(sessionId));
|
|
341
399
|
if (ids.length === 0)
|
|
342
400
|
return new Map();
|
|
343
|
-
//
|
|
344
|
-
//
|
|
401
|
+
// Read all requested rows so known non-interactive threads can be excluded
|
|
402
|
+
// without confusing them with missing metadata. Verify vscode originators.
|
|
345
403
|
const sql = [
|
|
346
|
-
|
|
347
|
-
`
|
|
404
|
+
'SELECT id || char(9) || cwd || char(9) || source FROM threads',
|
|
405
|
+
`WHERE id IN (${ids.map(sqlString).join(', ')});`
|
|
348
406
|
].join('\n');
|
|
349
407
|
let output;
|
|
350
408
|
if (runSqliteOverride) {
|
|
351
|
-
|
|
409
|
+
try {
|
|
410
|
+
output = await runSqliteOverride(stateDb, sql);
|
|
411
|
+
}
|
|
412
|
+
catch {
|
|
413
|
+
output = null;
|
|
414
|
+
}
|
|
352
415
|
}
|
|
353
416
|
else {
|
|
354
417
|
try {
|
|
355
418
|
await access(stateDb);
|
|
356
|
-
output =
|
|
419
|
+
output = await readSqlite(stateDb, sql);
|
|
357
420
|
}
|
|
358
421
|
catch {
|
|
359
422
|
output = null;
|
|
@@ -362,17 +425,57 @@ async function readInteractiveThreadCwds(stateDb, sessionIds, runSqliteOverride)
|
|
|
362
425
|
if (output === null)
|
|
363
426
|
return null;
|
|
364
427
|
const cwds = new Map();
|
|
428
|
+
for (const id of ids)
|
|
429
|
+
cwds.set(id, { cwd: '', verification: 'unknown' });
|
|
365
430
|
for (const line of output.split('\n')) {
|
|
366
|
-
const
|
|
367
|
-
if (
|
|
431
|
+
const [sessionId, cwd, source] = line.split('\t');
|
|
432
|
+
if (!sessionId || !isSessionId(sessionId) || !cwd || !rollouts.has(sessionId))
|
|
368
433
|
continue;
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
434
|
+
if (source !== 'cli' && source !== 'vscode') {
|
|
435
|
+
cwds.delete(sessionId);
|
|
436
|
+
continue;
|
|
437
|
+
}
|
|
438
|
+
const tui = source === 'vscode' ? await isTuiRollout(rollouts.get(sessionId), sessionId) : true;
|
|
439
|
+
if (tui === false) {
|
|
440
|
+
cwds.delete(sessionId);
|
|
441
|
+
continue;
|
|
442
|
+
}
|
|
443
|
+
cwds.set(sessionId, { cwd, verification: tui === null ? 'unknown' : 'verified' });
|
|
373
444
|
}
|
|
374
445
|
return cwds;
|
|
375
446
|
}
|
|
447
|
+
async function isTuiRollout(filePath, sessionId) {
|
|
448
|
+
try {
|
|
449
|
+
const file = await open(filePath, 'r');
|
|
450
|
+
try {
|
|
451
|
+
// Only session_meta is needed; never read an entire conversation.
|
|
452
|
+
const buffer = Buffer.alloc(64 * 1024);
|
|
453
|
+
const chunks = [];
|
|
454
|
+
for (let offset = 0; offset < 512 * 1024;) {
|
|
455
|
+
const { bytesRead } = await file.read(buffer, 0, buffer.length, offset);
|
|
456
|
+
if (bytesRead === 0)
|
|
457
|
+
return null;
|
|
458
|
+
const newline = buffer.subarray(0, bytesRead).indexOf(10);
|
|
459
|
+
chunks.push(Buffer.from(buffer.subarray(0, newline === -1 ? bytesRead : newline)));
|
|
460
|
+
if (newline !== -1) {
|
|
461
|
+
const row = JSON.parse(Buffer.concat(chunks).toString('utf8'));
|
|
462
|
+
if (row?.type !== 'session_meta' || row.payload?.id !== sessionId)
|
|
463
|
+
return null;
|
|
464
|
+
return row.payload.originator === 'codex-tui' &&
|
|
465
|
+
(row.payload.source === 'cli' || row.payload.source === 'vscode');
|
|
466
|
+
}
|
|
467
|
+
offset += bytesRead;
|
|
468
|
+
}
|
|
469
|
+
return null;
|
|
470
|
+
}
|
|
471
|
+
finally {
|
|
472
|
+
await file.close();
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
catch {
|
|
476
|
+
return null;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
376
479
|
async function readCmdline(procRoot, pid) {
|
|
377
480
|
try {
|
|
378
481
|
return (await readFile(path.join(procRoot, String(pid), 'cmdline'), 'utf8')).split('\0').filter(Boolean);
|
|
@@ -401,6 +504,98 @@ function isCodexRolloutPath(filePath, sessionId) {
|
|
|
401
504
|
const base = path.basename(filePath);
|
|
402
505
|
return base.startsWith('rollout-') && base.endsWith(`${sessionId}.jsonl`);
|
|
403
506
|
}
|
|
507
|
+
async function rolloutReadable(filePath) {
|
|
508
|
+
try {
|
|
509
|
+
const file = await open(filePath, 'r');
|
|
510
|
+
try {
|
|
511
|
+
return (await file.stat()).isFile();
|
|
512
|
+
}
|
|
513
|
+
finally {
|
|
514
|
+
await file.close();
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
catch {
|
|
518
|
+
return false;
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
async function describeCandidate(source, cwd, verification = 'verified') {
|
|
522
|
+
const readable = await rolloutReadable(source.filePath);
|
|
523
|
+
let updatedAt;
|
|
524
|
+
try {
|
|
525
|
+
updatedAt = (await stat(source.filePath)).mtime.toISOString();
|
|
526
|
+
}
|
|
527
|
+
catch { /* Retain unavailable peers. */ }
|
|
528
|
+
return { ...source, ...(cwd ? { cwd } : {}), ...(updatedAt ? { updatedAt } : {}), verification, readable };
|
|
529
|
+
}
|
|
530
|
+
// Uses raw start ticks, avoiding clock conversion and any external command.
|
|
531
|
+
export async function processBinding(procRoot, pids) {
|
|
532
|
+
const identities = [];
|
|
533
|
+
for (const pid of [...new Set(pids)].sort((a, b) => a - b)) {
|
|
534
|
+
try {
|
|
535
|
+
const raw = await readFile(path.join(procRoot, String(pid), 'stat'), 'utf8');
|
|
536
|
+
const close = raw.lastIndexOf(')');
|
|
537
|
+
const ticks = close < 0 ? undefined : raw.slice(close + 2).trim().split(/\s+/)[19];
|
|
538
|
+
if (!ticks || !/^\d+$/.test(ticks))
|
|
539
|
+
return null;
|
|
540
|
+
identities.push(`${pid}:${ticks}`);
|
|
541
|
+
}
|
|
542
|
+
catch {
|
|
543
|
+
return null;
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
return identities.length ? identities.join(',') : null;
|
|
547
|
+
}
|
|
548
|
+
export async function lookupCodexTranscriptFromOpenFds(pid, options = {}) {
|
|
549
|
+
if (!Number.isInteger(pid) || pid <= 0)
|
|
550
|
+
return UNAVAILABLE;
|
|
551
|
+
const procRoot = options.procRoot ?? '/proc';
|
|
552
|
+
const rollouts = await listOpenCodexRollouts(procRoot, pid);
|
|
553
|
+
if (rollouts.size === 0)
|
|
554
|
+
return ABSENT;
|
|
555
|
+
const cwd = await readLinkOrNull(path.join(procRoot, String(pid), 'cwd'));
|
|
556
|
+
const candidates = await mapWithConcurrency([...rollouts.entries()].slice(0, TRANSCRIPT_CANDIDATE_LIMIT), 8, ([sessionId, filePath]) => describeCandidate({ provider: 'codex', sessionId, filePath }, cwd ?? undefined));
|
|
557
|
+
if (rollouts.size > 1)
|
|
558
|
+
return { ...AMBIGUOUS, candidates };
|
|
559
|
+
const source = candidates[0];
|
|
560
|
+
return source.readable ? { status: 'matched', source, candidates } : { ...PENDING, candidates };
|
|
561
|
+
}
|
|
562
|
+
// Pre-connection failure is not evidence against the independent PID log.
|
|
563
|
+
// Post-connection failures are PENDING and must never reach launch argv.
|
|
564
|
+
export async function lookupCodexTranscriptFromDaemonOrLogs(pid, options = {}) {
|
|
565
|
+
const daemon = await lookupCodexTranscriptFromDaemon(pid, options);
|
|
566
|
+
return daemon.status === 'absent' || daemon.status === 'unavailable'
|
|
567
|
+
? lookupCodexTranscriptFromProcessLogs(pid, options) : daemon;
|
|
568
|
+
}
|
|
569
|
+
export async function resolveCodexTranscriptCandidates(pid, options = {}) {
|
|
570
|
+
const empty = { binding: '', candidates: [] };
|
|
571
|
+
if (!Number.isInteger(pid) || pid <= 0)
|
|
572
|
+
return empty;
|
|
573
|
+
const procRoot = options.procRoot ?? '/proc';
|
|
574
|
+
const binding = await processBinding(procRoot, [pid]);
|
|
575
|
+
if (!binding)
|
|
576
|
+
return empty;
|
|
577
|
+
const cwd = await readLinkOrNull(path.join(procRoot, String(pid), 'cwd'));
|
|
578
|
+
let result = await lookupCodexTranscriptFromOpenFds(pid, options);
|
|
579
|
+
if (result.status === 'absent') {
|
|
580
|
+
// Selection requests always inspect current sockets/FDs, not the TTL cache.
|
|
581
|
+
result = await lookupCodexTranscriptInDaemon(pid, procRoot, options);
|
|
582
|
+
if (result.status === 'absent' || result.status === 'unavailable') {
|
|
583
|
+
result = await lookupCodexTranscriptFromProcessLogs(pid, { ...options, bypassCache: true });
|
|
584
|
+
}
|
|
585
|
+
else if (!result.binding) {
|
|
586
|
+
return { binding, candidates: [] };
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
const candidates = result.candidates ?? (result.status === 'matched'
|
|
590
|
+
? [await describeCandidate(result.source, cwd ?? undefined)] : []);
|
|
591
|
+
if (binding !== await processBinding(procRoot, [pid]) ||
|
|
592
|
+
cwd !== await readLinkOrNull(path.join(procRoot, String(pid), 'cwd')))
|
|
593
|
+
return empty;
|
|
594
|
+
return {
|
|
595
|
+
binding: `${binding}${result.binding ? `|daemon:${result.binding}` : ''}`,
|
|
596
|
+
candidates: candidates.map(candidate => ({ ...candidate, ...(!candidate.cwd && cwd ? { cwd } : {}) }))
|
|
597
|
+
};
|
|
598
|
+
}
|
|
404
599
|
export function sqlString(value) {
|
|
405
600
|
return `'${value.replace(/'/g, "''")}'`;
|
|
406
601
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexTranscriptSource.js","sourceRoot":"","sources":["../../../src/server/terminal/codexTranscriptSource.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codexTranscriptSource.js","sourceRoot":"","sources":["../../../src/server/terminal/codexTranscriptSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
interface ReadOptions {
|
|
2
|
+
timeoutMs?: number;
|
|
3
|
+
attachments?: Record<string, string>;
|
|
4
|
+
}
|
|
5
|
+
/** Internal, bounded, read-only SQL runner. SQL and paths never come from HTTP input. */
|
|
6
|
+
export declare class SqliteReader {
|
|
7
|
+
private child;
|
|
8
|
+
private retiring;
|
|
9
|
+
private active;
|
|
10
|
+
private queue;
|
|
11
|
+
private nextId;
|
|
12
|
+
private idleTimer;
|
|
13
|
+
private readonly lastWarnings;
|
|
14
|
+
read(databasePath: string, sql: string, options?: ReadOptions): Promise<string | null>;
|
|
15
|
+
close(): void;
|
|
16
|
+
private warn;
|
|
17
|
+
private reset;
|
|
18
|
+
private pump;
|
|
19
|
+
}
|
|
20
|
+
export declare const readSqlite: (databasePath: string, sql: string, options?: ReadOptions) => Promise<string | null>;
|
|
21
|
+
export {};
|