greprag 5.32.0 → 5.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/codex-hook-events.d.ts +20 -0
  2. package/dist/codex-hook-events.js +156 -0
  3. package/dist/codex-hook-events.js.map +1 -0
  4. package/dist/commands/codex-app-server.d.ts +1 -0
  5. package/dist/commands/codex-app-server.js +179 -0
  6. package/dist/commands/codex-app-server.js.map +1 -0
  7. package/dist/commands/codex-doctor.js +3 -1
  8. package/dist/commands/codex-doctor.js.map +1 -1
  9. package/dist/commands/codex.js +6 -0
  10. package/dist/commands/codex.js.map +1 -1
  11. package/dist/commands/corpus/index.d.ts +1 -0
  12. package/dist/commands/corpus/index.js +5 -0
  13. package/dist/commands/corpus/index.js.map +1 -1
  14. package/dist/commands/corpus/refresh.d.ts +1 -0
  15. package/dist/commands/corpus/refresh.js +60 -0
  16. package/dist/commands/corpus/refresh.js.map +1 -1
  17. package/dist/commands/desk-line.d.ts +36 -0
  18. package/dist/commands/desk-line.js +230 -0
  19. package/dist/commands/desk-line.js.map +1 -0
  20. package/dist/commands/init.js +75 -7
  21. package/dist/commands/init.js.map +1 -1
  22. package/dist/commands/opencode-relay.d.ts +136 -0
  23. package/dist/commands/opencode-relay.js +529 -0
  24. package/dist/commands/opencode-relay.js.map +1 -0
  25. package/dist/commands/opencode-watch.d.ts +17 -0
  26. package/dist/commands/opencode-watch.js +493 -0
  27. package/dist/commands/opencode-watch.js.map +1 -0
  28. package/dist/commands/status.d.ts +2 -0
  29. package/dist/commands/status.js +5 -1
  30. package/dist/commands/status.js.map +1 -1
  31. package/dist/commands/watcher-registry.d.ts +8 -0
  32. package/dist/commands/watcher-registry.js +19 -0
  33. package/dist/commands/watcher-registry.js.map +1 -1
  34. package/dist/hook.js +54 -83
  35. package/dist/hook.js.map +1 -1
  36. package/dist/index.js +220 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/opencode-plugin-helpers.d.ts +200 -0
  39. package/dist/opencode-plugin-helpers.js +512 -0
  40. package/dist/opencode-plugin-helpers.js.map +1 -0
  41. package/dist/opencode-plugin.d.ts +37 -134
  42. package/dist/opencode-plugin.js +648 -364
  43. package/dist/opencode-plugin.js.map +1 -1
  44. package/dist/session-id.d.ts +8 -6
  45. package/dist/session-id.js +10 -9
  46. package/dist/session-id.js.map +1 -1
  47. package/package.json +8 -4
@@ -0,0 +1,493 @@
1
+ "use strict";
2
+ /**
3
+ * `greprag opencode watch` — SQLite-polling turn capture for opencode.
4
+ *
5
+ * Replaces the opencode plugin's `event` hook as the source of truth for
6
+ * episodic capture. The opencode Desktop event bus doesn't reliably emit
7
+ * `message.updated` for the user's active session, but opencode persists
8
+ * every message + part as a row in
9
+ * %USERPROFILE%\.local\share\opencode\opencode.db (SQLite)
10
+ * the moment the AI finishes streaming. This watcher polls that DB every
11
+ * 1-2s, joins `message` to `session` to recover the working directory,
12
+ * walks up to the greprag anchor, and POSTs the (user, assistant) pair
13
+ * to /v1/memory/turn. No event bus. No sidecar auth. No plugin loader.
14
+ *
15
+ * Plugin still ships because `chat.system.transform` is the right hook
16
+ * for the session-start recap injection — that path is unaffected.
17
+ */
18
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ var desc = Object.getOwnPropertyDescriptor(m, k);
21
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
22
+ desc = { enumerable: true, get: function() { return m[k]; } };
23
+ }
24
+ Object.defineProperty(o, k2, desc);
25
+ }) : (function(o, m, k, k2) {
26
+ if (k2 === undefined) k2 = k;
27
+ o[k2] = m[k];
28
+ }));
29
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
30
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
31
+ }) : function(o, v) {
32
+ o["default"] = v;
33
+ });
34
+ var __importStar = (this && this.__importStar) || (function () {
35
+ var ownKeys = function(o) {
36
+ ownKeys = Object.getOwnPropertyNames || function (o) {
37
+ var ar = [];
38
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
39
+ return ar;
40
+ };
41
+ return ownKeys(o);
42
+ };
43
+ return function (mod) {
44
+ if (mod && mod.__esModule) return mod;
45
+ var result = {};
46
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
47
+ __setModuleDefault(result, mod);
48
+ return result;
49
+ };
50
+ })();
51
+ var __importDefault = (this && this.__importDefault) || function (mod) {
52
+ return (mod && mod.__esModule) ? mod : { "default": mod };
53
+ };
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ exports.runOpencodeWatch = runOpencodeWatch;
56
+ const fs = __importStar(require("fs"));
57
+ const os = __importStar(require("os"));
58
+ const path = __importStar(require("path"));
59
+ const sql_js_1 = __importDefault(require("sql.js"));
60
+ const project_anchor_1 = require("../project-anchor");
61
+ const turn_provenance_1 = require("../turn-provenance");
62
+ const API_URL_DEFAULT = 'https://api.greprag.com';
63
+ const POLL_MS = 1500;
64
+ const TURN_API_PATH = '/v1/memory/turn';
65
+ const LOCK_FILE = path.join(home(), '.greprag', 'opencode-watch.lock');
66
+ function touchLockFile() {
67
+ try {
68
+ fs.mkdirSync(path.dirname(LOCK_FILE), { recursive: true });
69
+ fs.writeFileSync(LOCK_FILE, String(process.pid));
70
+ }
71
+ catch { /* best effort */ }
72
+ }
73
+ function releaseLockFile() {
74
+ try {
75
+ const current = fs.readFileSync(LOCK_FILE, 'utf-8').trim();
76
+ if (current === String(process.pid))
77
+ fs.unlinkSync(LOCK_FILE);
78
+ }
79
+ catch { /* raced */ }
80
+ }
81
+ function home() {
82
+ return process.env.HOME || process.env.USERPROFILE || os.homedir();
83
+ }
84
+ function loadEnvFile(filePath) {
85
+ try {
86
+ for (const line of fs.readFileSync(filePath, 'utf-8').split(/\r?\n/)) {
87
+ const trimmed = line.trim();
88
+ if (!trimmed || trimmed.startsWith('#'))
89
+ continue;
90
+ const idx = trimmed.indexOf('=');
91
+ if (idx < 1)
92
+ continue;
93
+ const key = trimmed.slice(0, idx).trim();
94
+ let value = trimmed.slice(idx + 1).trim();
95
+ if ((value.startsWith('"') && value.endsWith('"')) ||
96
+ (value.startsWith("'") && value.endsWith("'")))
97
+ value = value.slice(1, -1);
98
+ if (!process.env[key])
99
+ process.env[key] = value;
100
+ }
101
+ }
102
+ catch { /* missing */ }
103
+ }
104
+ function config() {
105
+ loadEnvFile(path.join(home(), '.greprag', '.env'));
106
+ if (!process.env.GREPRAG_API_KEY)
107
+ loadEnvFile(path.join(process.cwd(), '.env'));
108
+ return {
109
+ apiUrl: process.env.GREPRAG_API_URL || API_URL_DEFAULT,
110
+ apiKey: process.env.GREPRAG_API_KEY || '',
111
+ };
112
+ }
113
+ function getFlag(args, flag) {
114
+ const idx = args.indexOf(flag);
115
+ return idx >= 0 && idx + 1 < args.length ? args[idx + 1] : undefined;
116
+ }
117
+ function defaultCursorFile() {
118
+ return path.join(home(), '.greprag', 'opencode-watch.cursor');
119
+ }
120
+ function readCursor(file) {
121
+ try {
122
+ const raw = fs.readFileSync(file, 'utf-8').trim();
123
+ const n = parseInt(raw, 10);
124
+ return Number.isFinite(n) && n > 0 ? n : 0;
125
+ }
126
+ catch {
127
+ return 0;
128
+ }
129
+ }
130
+ function writeCursor(file, timeMs) {
131
+ try {
132
+ fs.mkdirSync(path.dirname(file), { recursive: true });
133
+ fs.writeFileSync(file, String(timeMs));
134
+ }
135
+ catch (err) {
136
+ console.error(`[opencode-watch] cursor write failed: ${err.message}`);
137
+ }
138
+ }
139
+ function defaultDbPath() {
140
+ return path.join(home(), '.local', 'share', 'opencode', 'opencode.db');
141
+ }
142
+ function resolveAnchorForDirectory(dir) {
143
+ if (!dir) {
144
+ return (0, project_anchor_1.readAnchor)(home());
145
+ }
146
+ // opencode stores directory as forward-slash on Windows (e.g. "C:/greprag").
147
+ // readAnchor walks up using path APIs — normalize to OS-native first.
148
+ const native = path.normalize(dir.replace(/\//g, path.sep));
149
+ return (0, project_anchor_1.readAnchor)(native);
150
+ }
151
+ function extractText(parts) {
152
+ const chunks = [];
153
+ for (const p of parts) {
154
+ try {
155
+ const d = JSON.parse(p.data);
156
+ if (d.type === 'text' && typeof d.text === 'string')
157
+ chunks.push(d.text);
158
+ }
159
+ catch { /* malformed part */ }
160
+ }
161
+ return chunks.join('\n').trim();
162
+ }
163
+ function extractFilesTouched(parts) {
164
+ const files = new Set();
165
+ for (const p of parts) {
166
+ try {
167
+ const d = JSON.parse(p.data);
168
+ if (d.type !== 'tool')
169
+ continue;
170
+ const input = d.state?.input;
171
+ if (input?.file_path)
172
+ files.add(input.file_path);
173
+ if (input?.filePath)
174
+ files.add(input.filePath);
175
+ }
176
+ catch { /* malformed */ }
177
+ }
178
+ return Array.from(files).sort();
179
+ }
180
+ function parseMessageData(data) {
181
+ try {
182
+ return JSON.parse(data);
183
+ }
184
+ catch {
185
+ return null;
186
+ }
187
+ }
188
+ async function storeTurn(apiUrl, apiKey, anchor, sessionId, envelope, workingDir, dryRun) {
189
+ const body = {
190
+ projectId: anchor.projectId,
191
+ projectName: anchor.projectName,
192
+ branch: null,
193
+ workingDir,
194
+ sessionIdExternal: sessionId,
195
+ turnId: crypto.randomUUID(),
196
+ model: null,
197
+ status: envelope.status,
198
+ userPrompt: envelope.userPrompt,
199
+ agentResponse: envelope.agentResponse,
200
+ toolCalls: [],
201
+ filesTouched: envelope.filesTouched,
202
+ artifacts: [],
203
+ source: 'opencode',
204
+ provenance: envelope.provenance,
205
+ };
206
+ if (dryRun) {
207
+ console.log(JSON.stringify({ event: 'dry-run', endpoint: `${apiUrl}${TURN_API_PATH}`, body }, null, 2));
208
+ return;
209
+ }
210
+ const res = await fetch(`${apiUrl}${TURN_API_PATH}`, {
211
+ method: 'POST',
212
+ headers: {
213
+ Authorization: `Bearer ${apiKey}`,
214
+ 'Content-Type': 'application/json',
215
+ },
216
+ body: JSON.stringify(body),
217
+ });
218
+ if (!res.ok) {
219
+ throw new Error(`store-turn ${res.status}: ${await res.text()}`);
220
+ }
221
+ }
222
+ async function pollOnce(db, opts, lastSeen) {
223
+ const sessions = new Map();
224
+ const sessRes = db.exec("SELECT id, directory, project_id, title FROM session");
225
+ if (sessRes[0]) {
226
+ for (const row of sessRes[0].values) {
227
+ sessions.set(row[0], {
228
+ id: row[0],
229
+ directory: row[1],
230
+ project_id: row[2],
231
+ title: row[3],
232
+ });
233
+ }
234
+ }
235
+ const msgRes = db.exec(`SELECT id, session_id, time_created, data FROM message
236
+ WHERE time_created > ${opts.sinceTimeMs}
237
+ ORDER BY time_created ASC`);
238
+ const all = [];
239
+ if (msgRes[0]) {
240
+ for (const row of msgRes[0].values) {
241
+ const id = row[0];
242
+ if (lastSeen.processed.has(id))
243
+ continue;
244
+ const sessionId = row[1];
245
+ const timeCreated = row[2];
246
+ const dataStr = row[3];
247
+ const parsed = parseMessageData(dataStr);
248
+ if (!parsed || !parsed.role)
249
+ continue;
250
+ // Pull parts for this message
251
+ const partRes = db.exec(`SELECT id, message_id, data FROM part WHERE message_id = '${id.replace(/'/g, "''")}' ORDER BY time_created ASC`);
252
+ const parts = [];
253
+ if (partRes[0]) {
254
+ for (const pr of partRes[0].values) {
255
+ parts.push({
256
+ id: pr[0],
257
+ message_id: pr[1],
258
+ data: pr[2],
259
+ });
260
+ }
261
+ }
262
+ all.push({
263
+ id,
264
+ sessionId,
265
+ data: parsed,
266
+ parts,
267
+ });
268
+ if (timeCreated > lastSeen.timeMs)
269
+ lastSeen.timeMs = timeCreated;
270
+ }
271
+ }
272
+ // Filter to only completed turns: assistant messages with time.completed,
273
+ // OR user messages (always deliverable).
274
+ return all.filter(m => {
275
+ if (m.data.role === 'user')
276
+ return true;
277
+ if (m.data.role === 'assistant')
278
+ return typeof m.data.time?.completed === 'number';
279
+ return false;
280
+ });
281
+ }
282
+ async function pairAndCapture(apiUrl, apiKey, messages, sessions, state, processed, opts, cursorRef) {
283
+ // Pair by parentID, not by time-completed order. opencode emits multiple
284
+ // assistant messages per user turn (continuations / re-writes) — each
285
+ // assistant carries `parentID = <user message id>`. Pre-sorting by
286
+ // time.completed would pair the wrong user with a continuation from a
287
+ // previous turn when the polled window spans turn boundaries.
288
+ const bySession = new Map();
289
+ for (const m of messages) {
290
+ if (!bySession.has(m.sessionId))
291
+ bySession.set(m.sessionId, []);
292
+ bySession.get(m.sessionId).push(m);
293
+ }
294
+ for (const [sessionId, msgs] of bySession) {
295
+ const userById = new Map();
296
+ const assistantsByParent = new Map();
297
+ for (const m of msgs) {
298
+ if (m.data.role === 'user') {
299
+ userById.set(m.id, m);
300
+ }
301
+ else if (m.data.role === 'assistant' && m.data.parentID) {
302
+ const arr = assistantsByParent.get(m.data.parentID) || [];
303
+ arr.push(m);
304
+ assistantsByParent.set(m.data.parentID, arr);
305
+ }
306
+ }
307
+ const session = sessions.get(sessionId);
308
+ if (!session)
309
+ continue;
310
+ if (opts.projectFilter && session.directory &&
311
+ path.normalize(session.directory.replace(/\//g, path.sep)) !==
312
+ path.normalize(opts.projectFilter.replace(/\//g, path.sep))) {
313
+ for (const m of msgs)
314
+ processed.add(m.id);
315
+ continue;
316
+ }
317
+ const anchor = resolveAnchorForDirectory(session.directory);
318
+ const workingDir = session.directory
319
+ ? path.normalize(session.directory.replace(/\//g, path.sep))
320
+ : home();
321
+ for (const [userId, userMsg] of userById) {
322
+ const candidates = assistantsByParent.get(userId) || [];
323
+ // opencode streams one user turn across multiple assistant messages
324
+ // (each is a "continuation" with the same parentID). The first one
325
+ // is often tool-calls only; the actual text lands in later ones.
326
+ // Capture the union: concat text + union files from all completed
327
+ // siblings so the stored envelope reflects the full turn.
328
+ const completedSiblings = candidates
329
+ .filter(c => typeof c.data.time?.completed === 'number')
330
+ .sort((a, b) => (a.data.time?.completed ?? 0) - (b.data.time?.completed ?? 0));
331
+ if (completedSiblings.length === 0) {
332
+ // No completed response yet — stash for the next tick.
333
+ const existing = state.pendingUserBySession.get(sessionId);
334
+ if (!existing || existing.id !== userId) {
335
+ state.pendingUserBySession.set(sessionId, {
336
+ id: userId,
337
+ parts: userMsg.parts,
338
+ rawText: extractText(userMsg.parts),
339
+ });
340
+ }
341
+ processed.add(userMsg.id);
342
+ continue;
343
+ }
344
+ const userText = extractText(userMsg.parts);
345
+ const provenance = (0, turn_provenance_1.classifyUserText)(userText);
346
+ const userPrompt = provenance === 'session-turn'
347
+ ? userText
348
+ : `[greprag: harness-injected ${provenance} elided from episodic capture]`;
349
+ // Concatenate text from every completed sibling in time order;
350
+ // dedupe files across the chain. A newlines separator preserves
351
+ // the assistant-message boundaries on the server side.
352
+ const agentResponse = completedSiblings
353
+ .map(s => extractText(s.parts))
354
+ .filter(t => t.length > 0)
355
+ .join('\n\n');
356
+ const filesTouched = Array.from(new Set(completedSiblings.flatMap(s => extractFilesTouched(s.parts)))).sort();
357
+ const envelope = {
358
+ userPrompt,
359
+ agentResponse,
360
+ filesTouched,
361
+ status: 'completed',
362
+ provenance,
363
+ };
364
+ try {
365
+ await storeTurn(apiUrl, apiKey, anchor, sessionId, envelope, workingDir, opts.dryRun);
366
+ const lastTs = completedSiblings[completedSiblings.length - 1].data.time?.completed ?? Date.now();
367
+ if (lastTs > cursorRef.lastCapturedTimeMs)
368
+ cursorRef.lastCapturedTimeMs = lastTs;
369
+ if (!opts.json) {
370
+ const proj = anchor.projectName;
371
+ const snippet = envelope.userPrompt.slice(0, 60).replace(/\n/g, ' ');
372
+ console.error(`[opencode-watch] captured turn @ ${proj} (${sessionId.slice(0, 12)}…): ${snippet}`);
373
+ }
374
+ else {
375
+ console.log(JSON.stringify({
376
+ event: 'captured',
377
+ sessionId,
378
+ project: anchor.projectName,
379
+ projectId: anchor.projectId,
380
+ userMessageId: userId,
381
+ assistantMessageIds: completedSiblings.map(s => s.id),
382
+ userSnippet: envelope.userPrompt.slice(0, 80),
383
+ filesTouched: envelope.filesTouched,
384
+ }));
385
+ }
386
+ }
387
+ catch (err) {
388
+ console.error(`[opencode-watch] storeTurn failed: ${err.message}`);
389
+ }
390
+ processed.add(userMsg.id);
391
+ for (const sib of completedSiblings)
392
+ processed.add(sib.id);
393
+ if (state.pendingUserBySession.get(sessionId)?.id === userId) {
394
+ state.pendingUserBySession.delete(sessionId);
395
+ }
396
+ }
397
+ }
398
+ }
399
+ async function runOpencodeWatch(args) {
400
+ const cursorFile = getFlag(args, '--cursor') || defaultCursorFile();
401
+ if (args.includes('--reset-cursor')) {
402
+ try {
403
+ fs.unlinkSync(cursorFile);
404
+ }
405
+ catch { /* missing */ }
406
+ if (!args.includes('--json'))
407
+ console.error(`[opencode-watch] cursor cleared: ${cursorFile}`);
408
+ }
409
+ const cursorTime = readCursor(cursorFile);
410
+ const sinceArg = getFlag(args, '--since');
411
+ const opts = {
412
+ intervalMs: parseInt(getFlag(args, '--interval') || String(POLL_MS), 10),
413
+ dbPath: getFlag(args, '--db') || defaultDbPath(),
414
+ json: args.includes('--json'),
415
+ dryRun: args.includes('--dry-run'),
416
+ sinceTimeMs: sinceArg ? parseInt(sinceArg, 10) : cursorTime,
417
+ projectFilter: getFlag(args, '--project') || null,
418
+ cursorFile,
419
+ };
420
+ if (!fs.existsSync(opts.dbPath)) {
421
+ console.error(`opencode DB not found at ${opts.dbPath}. Open opencode once to create it.`);
422
+ process.exit(1);
423
+ }
424
+ const cfg = config();
425
+ if (!cfg.apiKey) {
426
+ console.error('No GREPRAG_API_KEY. Run: greprag init --opencode');
427
+ process.exit(1);
428
+ }
429
+ if (!opts.json) {
430
+ console.error(`[opencode-watch] polling ${opts.dbPath} every ${opts.intervalMs}ms`);
431
+ if (opts.dryRun)
432
+ console.error('[opencode-watch] --dry-run: turns printed, not POSTed');
433
+ }
434
+ const SQL = await (0, sql_js_1.default)({
435
+ locateFile: (f) => path.join(path.dirname(require.resolve('sql.js')), f),
436
+ });
437
+ const lastSeen = { timeMs: opts.sinceTimeMs, processed: new Set() };
438
+ const cursorRef = { lastCapturedTimeMs: opts.sinceTimeMs };
439
+ const state = { pendingUserBySession: new Map() };
440
+ const reloadDb = () => {
441
+ const buf = fs.readFileSync(opts.dbPath);
442
+ return new SQL.Database(buf);
443
+ };
444
+ let db = reloadDb();
445
+ process.on('SIGINT', () => {
446
+ console.error('[opencode-watch] shutting down');
447
+ db.close();
448
+ releaseLockFile();
449
+ process.exit(0);
450
+ });
451
+ process.on('SIGTERM', () => {
452
+ console.error('[opencode-watch] shutting down');
453
+ db.close();
454
+ releaseLockFile();
455
+ process.exit(0);
456
+ });
457
+ process.on('exit', releaseLockFile);
458
+ while (true) {
459
+ touchLockFile();
460
+ try {
461
+ // Reload DB each tick — opencode holds a write lock; we read snapshot.
462
+ // The file is small (< 10MB typically) and reads are O(ms).
463
+ db.close();
464
+ db = reloadDb();
465
+ const messages = await pollOnce(db, opts, lastSeen);
466
+ if (messages.length) {
467
+ // Build a fresh session map from this snapshot
468
+ const sessions = new Map();
469
+ const sessRes = db.exec("SELECT id, directory, project_id, title FROM session");
470
+ if (sessRes[0]) {
471
+ for (const row of sessRes[0].values) {
472
+ sessions.set(row[0], {
473
+ id: row[0],
474
+ directory: row[1],
475
+ project_id: row[2],
476
+ title: row[3],
477
+ });
478
+ }
479
+ }
480
+ await pairAndCapture(cfg.apiUrl, cfg.apiKey, messages, sessions, state, lastSeen.processed, opts, cursorRef);
481
+ if (cursorRef.lastCapturedTimeMs > opts.sinceTimeMs && opts.cursorFile) {
482
+ writeCursor(opts.cursorFile, cursorRef.lastCapturedTimeMs);
483
+ opts.sinceTimeMs = cursorRef.lastCapturedTimeMs;
484
+ }
485
+ }
486
+ }
487
+ catch (err) {
488
+ console.error(`[opencode-watch] poll error: ${err.message}`);
489
+ }
490
+ await new Promise(r => setTimeout(r, opts.intervalMs));
491
+ }
492
+ }
493
+ //# sourceMappingURL=opencode-watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-watch.js","sourceRoot":"","sources":["../../src/commands/opencode-watch.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,8 @@ interface StatusReport {
36
36
  pre_tool_use_spawn_check: boolean;
37
37
  codex_user_prompt_submit?: boolean;
38
38
  codex_post_tool_use_inbox?: boolean;
39
+ codex_permission_request_context?: boolean;
40
+ codex_subagent_start_metadata?: boolean;
39
41
  codex_stop_store?: boolean;
40
42
  };
41
43
  platforms: Record<Platform, PlatformStatus>;
@@ -158,6 +158,8 @@ function buildStatus(cwd, platform = 'all') {
158
158
  session_id: hasCodexHook(codexHooks.hooks?.SessionStart, 'session-id'),
159
159
  user_prompt_submit: hasCodexHook(codexHooks.hooks?.UserPromptSubmit, 'codex-notify'),
160
160
  post_tool_use_inbox: hasCodexHook(codexHooks.hooks?.PostToolUse, 'codex-inbox'),
161
+ permission_request_context: hasCodexHook(codexHooks.hooks?.PermissionRequest, 'codex-permission-context'),
162
+ subagent_start_metadata: hasCodexHook(codexHooks.hooks?.SubagentStart, 'codex-subagent-start'),
161
163
  stop_store: hasCodexHook(codexHooks.hooks?.Stop, 'codex-store'),
162
164
  post_compact_session_id: hasCodexHook(codexHooks.hooks?.PostCompact, 'session-id'),
163
165
  };
@@ -182,6 +184,8 @@ function buildStatus(cwd, platform = 'all') {
182
184
  ...claudeHooks,
183
185
  codex_user_prompt_submit: codexHookStatus.user_prompt_submit,
184
186
  codex_post_tool_use_inbox: codexHookStatus.post_tool_use_inbox,
187
+ codex_permission_request_context: codexHookStatus.permission_request_context,
188
+ codex_subagent_start_metadata: codexHookStatus.subagent_start_metadata,
185
189
  codex_stop_store: codexHookStatus.stop_store,
186
190
  },
187
191
  platforms: {
@@ -243,7 +247,7 @@ function renderPlatform(name, p) {
243
247
  lines.push(` ${key}: ${yes(value)}`);
244
248
  }
245
249
  if (p.trust_required)
246
- lines.push(' Trust: Codex Desktop: Settings -> Settings -> Hooks, then trust the 6 GrepRAG hooks');
250
+ lines.push(' Trust: Codex Desktop: Settings -> Settings -> Hooks, then trust the GrepRAG hooks');
247
251
  return lines;
248
252
  }
249
253
  function renderHuman(s) {
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,14 @@ export declare function watcherAuditLog(event: string): void;
53
53
  * real watcher is gone and (b) lets re-arm stack new watchers on undead
54
54
  * orphans. A dead-PID pidfile is swept here so the next turn re-arms. */
55
55
  export declare function isLocallyArmed(short: string): boolean;
56
+ /** The local source of truth: every session whose watcher process is alive on
57
+ * THIS machine right now. Reads the pidfile registry and confirms each PID with
58
+ * the OS (`pidAlive`), sweeping any dead-PID leftover as it goes. This is the
59
+ * answer the desk-line returns when the cloud asks "what's truly active?" — it
60
+ * is computed on demand from ground truth, never a cached/replicated list, so it
61
+ * cannot go stale the way the cloud `/attached` registry does. adr:
62
+ * adr/monitor-resilience.md */
63
+ export declare function listLocalLiveWatchers(): WatcherPidRecord[];
56
64
  export interface ProcRow {
57
65
  pid: number;
58
66
  ppid: number;
@@ -65,6 +65,7 @@ exports.writeWatcherPidfile = writeWatcherPidfile;
65
65
  exports.removeWatcherPidfile = removeWatcherPidfile;
66
66
  exports.watcherAuditLog = watcherAuditLog;
67
67
  exports.isLocallyArmed = isLocallyArmed;
68
+ exports.listLocalLiveWatchers = listLocalLiveWatchers;
68
69
  exports.resolveClaudeOwnerPid = resolveClaudeOwnerPid;
69
70
  exports.severedVerdict = severedVerdict;
70
71
  exports.reapOrphanWatchers = reapOrphanWatchers;
@@ -249,6 +250,24 @@ function isLocallyArmed(short) {
249
250
  }
250
251
  return true;
251
252
  }
253
+ /** The local source of truth: every session whose watcher process is alive on
254
+ * THIS machine right now. Reads the pidfile registry and confirms each PID with
255
+ * the OS (`pidAlive`), sweeping any dead-PID leftover as it goes. This is the
256
+ * answer the desk-line returns when the cloud asks "what's truly active?" — it
257
+ * is computed on demand from ground truth, never a cached/replicated list, so it
258
+ * cannot go stale the way the cloud `/attached` registry does. adr:
259
+ * adr/monitor-resilience.md */
260
+ function listLocalLiveWatchers() {
261
+ const out = [];
262
+ for (const rec of readAllPidfiles()) {
263
+ if (pidAlive(rec.pid))
264
+ out.push(rec);
265
+ else
266
+ removeWatcherPidfile(rec.short); // stale leftover — drop it
267
+ }
268
+ // Stable order: most-recently-armed first.
269
+ return out.sort((a, b) => (b.startedAt || 0) - (a.startedAt || 0));
270
+ }
252
271
  /** Snapshot (pid, ppid, name, cmdline) for every process. Windows via one CIM
253
272
  * call (a single PowerShell invocation — avoids the per-PID `wmic` calls that
254
273
  * hung historically, see ADR 2026-05-26); POSIX via `ps`. Best-effort: any