cloffice-bridge 0.3.0 → 0.3.2

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/cli.js CHANGED
@@ -1,7 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import { doc, setDoc, serverTimestamp } from 'firebase/firestore';
3
+ import { existsSync } from 'node:fs';
4
+ import { homedir } from 'node:os';
5
+ import { join } from 'node:path';
3
6
  import { SessionWatcher } from './watcher.js';
4
7
  import { parseLine } from './parser.js';
8
+ import { parseCodexLine } from './codex-parser.js';
5
9
  import { initFirebase } from './firebase-init.js';
6
10
  import { FirestoreSync } from './firestore-sync.js';
7
11
  const ACTIVITY_LABELS = {
@@ -12,6 +16,10 @@ const ACTIVITY_LABELS = {
12
16
  user_prompt: '👤 User Prompt',
13
17
  idle: '💤 Idle'
14
18
  };
19
+ const PROVIDER_LABELS = {
20
+ claude: 'Claude',
21
+ codex: 'Codex'
22
+ };
15
23
  function parseArgs(argv) {
16
24
  let token;
17
25
  let name;
@@ -34,6 +42,18 @@ function decodeToken(token) {
34
42
  throw new Error('Invalid token format');
35
43
  return { email: parts[0], password: parts[1], roomId: parts[2] };
36
44
  }
45
+ function handleLine(raw, sync) {
46
+ const event = raw.provider === 'codex' ? parseCodexLine(raw.content, raw.filePath) : parseLine(raw.content);
47
+ if (!event)
48
+ return;
49
+ const { activity, tool, detail, provider } = event.currentState;
50
+ const label = ACTIVITY_LABELS[activity] ?? activity;
51
+ const providerLabel = PROVIDER_LABELS[provider ?? 'claude'] ?? provider;
52
+ const toolStr = tool ? ` → ${tool}` : '';
53
+ const detailStr = detail ? ` (${detail})` : '';
54
+ console.log(`[${providerLabel}] [${event.project}] ${label}${toolStr}${detailStr}`);
55
+ sync.handleEvent(event);
56
+ }
37
57
  async function main() {
38
58
  const args = parseArgs(process.argv);
39
59
  if (!args) {
@@ -63,31 +83,37 @@ async function main() {
63
83
  await sync.start();
64
84
  await sync.cleanupStaleSessions().catch(() => { });
65
85
  console.log(`Sync ready (room: ${roomId.slice(0, 8)}...).\n`);
66
- const watcher = new SessionWatcher();
67
- watcher.on('line', (raw) => {
68
- const event = parseLine(raw.content);
69
- if (!event)
70
- return;
71
- const { activity, tool, detail } = event.currentState;
72
- const label = ACTIVITY_LABELS[activity] ?? activity;
73
- const toolStr = tool ? ` → ${tool}` : '';
74
- const detailStr = detail ? ` (${detail})` : '';
75
- console.log(`[${event.project}] ${label}${toolStr}${detailStr}`);
76
- sync.handleEvent(event);
77
- });
78
- watcher.on('error', (err) => {
79
- console.error('Watcher error:', err.message);
80
- });
86
+ // Create watchers for each available provider
87
+ const watchers = [];
88
+ // Always watch Claude Code sessions
89
+ const claudeWatcher = new SessionWatcher({ provider: 'claude' });
90
+ watchers.push(claudeWatcher);
91
+ // Watch Codex sessions if ~/.codex/sessions exists
92
+ const codexDir = join(homedir(), '.codex', 'sessions');
93
+ if (existsSync(codexDir)) {
94
+ const codexWatcher = new SessionWatcher({ provider: 'codex' });
95
+ watchers.push(codexWatcher);
96
+ console.log('Codex sessions directory detected — monitoring Codex usage.');
97
+ }
98
+ else {
99
+ console.log('No Codex sessions directory found — skipping Codex monitoring.');
100
+ }
101
+ for (const watcher of watchers) {
102
+ watcher.on('line', (raw) => handleLine(raw, sync));
103
+ watcher.on('error', (err) => {
104
+ console.error('Watcher error:', err.message);
105
+ });
106
+ }
81
107
  const shutdown = async () => {
82
108
  console.log('\nShutting down...');
83
109
  await sync.shutdown();
84
- await watcher.stop();
110
+ await Promise.all(watchers.map((w) => w.stop()));
85
111
  console.log('Goodbye!');
86
112
  process.exit(0);
87
113
  };
88
114
  process.on('SIGINT', shutdown);
89
115
  process.on('SIGTERM', shutdown);
90
- await watcher.start();
116
+ await Promise.all(watchers.map((w) => w.start()));
91
117
  }
92
118
  main().catch((err) => {
93
119
  console.error('Fatal error:', err);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { ParsedEvent } from './parser.js';
2
+ /**
3
+ * Derive a session ID from a rollout file path.
4
+ * Codex files: ~/.codex/sessions/2025/06/15/rollout-abc123.jsonl
5
+ * We use the filename stem as the session ID.
6
+ */
7
+ export declare function sessionIdFromPath(filePath: string): string;
8
+ /**
9
+ * Parse a single JSONL line from a Codex rollout file.
10
+ * Returns a ParsedEvent with provider='codex', or null if the line
11
+ * doesn't represent a trackable activity change.
12
+ */
13
+ export declare function parseCodexLine(raw: string, filePath: string): ParsedEvent | null;
@@ -0,0 +1,300 @@
1
+ import { basename } from 'node:path';
2
+ function extractCodexToolContext(name, args) {
3
+ switch (name) {
4
+ case 'shell': {
5
+ // args.cmd is typically ["cmd", ...args] or a command string
6
+ const cmd = args.cmd ?? args.command;
7
+ let detail = null;
8
+ if (Array.isArray(cmd)) {
9
+ detail = cmd.join(' ').slice(0, 80);
10
+ }
11
+ else if (typeof cmd === 'string') {
12
+ detail = cmd.slice(0, 80);
13
+ }
14
+ return { tool: 'Bash', detail };
15
+ }
16
+ case 'exec_command':
17
+ case 'write_stdin': {
18
+ const cmd = args.cmd ?? args.command;
19
+ let detail = null;
20
+ if (Array.isArray(cmd)) {
21
+ detail = cmd.join(' ').slice(0, 80);
22
+ }
23
+ else if (typeof cmd === 'string') {
24
+ detail = cmd.slice(0, 80);
25
+ }
26
+ return { tool: 'Bash', detail };
27
+ }
28
+ case 'apply_patch':
29
+ return { tool: 'Edit', detail: typeof args.path === 'string' ? basename(args.path) : null };
30
+ case 'read_file':
31
+ return {
32
+ tool: 'Read',
33
+ detail: typeof args.path === 'string' ? basename(args.path) : null
34
+ };
35
+ case 'write_file':
36
+ return {
37
+ tool: 'Write',
38
+ detail: typeof args.path === 'string' ? basename(args.path) : null
39
+ };
40
+ case 'list_dir':
41
+ return { tool: 'Read', detail: typeof args.path === 'string' ? basename(args.path) : null };
42
+ case 'glob_file_search':
43
+ case 'glob':
44
+ return { tool: 'Glob', detail: typeof args.pattern === 'string' ? args.pattern : null };
45
+ case 'rg':
46
+ case 'grep':
47
+ return { tool: 'Grep', detail: typeof args.pattern === 'string' ? args.pattern : null };
48
+ case 'web_search':
49
+ return { tool: 'WebSearch', detail: typeof args.query === 'string' ? args.query : null };
50
+ case 'spawn_agent':
51
+ case 'parallel':
52
+ return {
53
+ tool: 'Task',
54
+ detail: typeof args.role === 'string' ? args.role : null
55
+ };
56
+ case 'send_input':
57
+ return { tool: 'Task', detail: 'message' };
58
+ default: {
59
+ // MCP tools from Codex also use mcp__ prefix
60
+ if (name.startsWith('mcp__')) {
61
+ const parts = name.split('__');
62
+ const shortName = parts[parts.length - 1] ?? name;
63
+ return { tool: shortName, detail: null };
64
+ }
65
+ return { tool: name, detail: null };
66
+ }
67
+ }
68
+ }
69
+ function asString(value) {
70
+ return typeof value === 'string' ? value : undefined;
71
+ }
72
+ function asStringifiedJson(value) {
73
+ if (typeof value === 'string')
74
+ return value;
75
+ if (value && typeof value === 'object')
76
+ return JSON.stringify(value);
77
+ return undefined;
78
+ }
79
+ /**
80
+ * Derive a session ID from a rollout file path.
81
+ * Codex files: ~/.codex/sessions/2025/06/15/rollout-abc123.jsonl
82
+ * We use the filename stem as the session ID.
83
+ */
84
+ export function sessionIdFromPath(filePath) {
85
+ const name = basename(filePath).replace(/\.(jsonl|json)$/i, '');
86
+ return `codex-${name}`;
87
+ }
88
+ /**
89
+ * Derive a project name from session metadata cwd or file path.
90
+ * Falls back to extracting date from the file path structure.
91
+ */
92
+ function projectFromContext(cwd, filePath) {
93
+ if (cwd)
94
+ return basename(cwd);
95
+ // Try to extract something useful from the path
96
+ return basename(filePath).replace(/\.(jsonl|json)$/i, '');
97
+ }
98
+ /**
99
+ * Parse a single JSONL line from a Codex rollout file.
100
+ * Returns a ParsedEvent with provider='codex', or null if the line
101
+ * doesn't represent a trackable activity change.
102
+ */
103
+ export function parseCodexLine(raw, filePath) {
104
+ let line;
105
+ try {
106
+ line = JSON.parse(raw);
107
+ }
108
+ catch {
109
+ return null;
110
+ }
111
+ const sessionId = sessionIdFromPath(filePath);
112
+ const timestamp = line.timestamp ?? new Date().toISOString();
113
+ // --- Envelope format: { type: "...", payload: { ... } } ---
114
+ if (line.type && line.payload) {
115
+ return parseEnvelopeLine(line, sessionId, timestamp, filePath);
116
+ }
117
+ // --- Legacy bare item format ---
118
+ return parseLegacyLine(line, sessionId, timestamp, filePath);
119
+ }
120
+ function makeEvent(sessionId, project, timestamp, currentState) {
121
+ return { sessionId, project, timestamp, currentState };
122
+ }
123
+ function parseEnvelopeLine(line, sessionId, timestamp, filePath) {
124
+ const payload = line.payload;
125
+ const payloadType = payload.type;
126
+ const project = projectFromContext(asString(payload.cwd) ?? line.cwd, filePath);
127
+ // Session metadata — extract cwd for project name
128
+ if (line.type === 'session_meta' || payloadType === 'session_meta') {
129
+ return makeEvent(sessionId, project, timestamp, {
130
+ activity: 'waiting',
131
+ tool: null,
132
+ detail: null,
133
+ provider: 'codex'
134
+ });
135
+ }
136
+ // Token count events — skip (telemetry only)
137
+ if (payloadType === 'token_count') {
138
+ return null;
139
+ }
140
+ // Current Codex logs emit most activity as `response_item` and `event_msg`
141
+ // wrappers instead of payload.item.
142
+ if (line.type === 'response_item') {
143
+ if (payloadType === 'function_call') {
144
+ return parseItem({
145
+ type: 'function_call',
146
+ name: asString(payload.name),
147
+ arguments: asStringifiedJson(payload.arguments),
148
+ call_id: asString(payload.call_id)
149
+ }, sessionId, project, timestamp);
150
+ }
151
+ if (payloadType === 'function_call_output') {
152
+ return parseItem({
153
+ type: 'function_call_output',
154
+ call_id: asString(payload.call_id),
155
+ output: asString(payload.output)
156
+ }, sessionId, project, timestamp);
157
+ }
158
+ if (payloadType === 'reasoning') {
159
+ return parseItem({ type: 'reasoning' }, sessionId, project, timestamp);
160
+ }
161
+ if (payloadType === 'message') {
162
+ const role = asString(payload.role);
163
+ if (role === 'assistant') {
164
+ return parseItem({ type: 'assistant_message' }, sessionId, project, timestamp);
165
+ }
166
+ return null;
167
+ }
168
+ }
169
+ if (line.type === 'turn_context') {
170
+ return makeEvent(sessionId, project, timestamp, {
171
+ activity: 'waiting',
172
+ tool: null,
173
+ detail: null,
174
+ provider: 'codex'
175
+ });
176
+ }
177
+ if (line.type === 'event_msg') {
178
+ if (payloadType === 'agent_reasoning') {
179
+ return makeEvent(sessionId, project, timestamp, {
180
+ activity: 'thinking',
181
+ tool: null,
182
+ detail: null,
183
+ provider: 'codex'
184
+ });
185
+ }
186
+ if (payloadType === 'agent_message') {
187
+ return makeEvent(sessionId, project, timestamp, {
188
+ activity: 'responding',
189
+ tool: null,
190
+ detail: null,
191
+ provider: 'codex'
192
+ });
193
+ }
194
+ if (payloadType === 'user_message') {
195
+ return makeEvent(sessionId, project, timestamp, {
196
+ activity: 'user_prompt',
197
+ tool: null,
198
+ detail: null,
199
+ provider: 'codex'
200
+ });
201
+ }
202
+ if (payloadType === 'turn_aborted' || payloadType === 'turn_completed' || payloadType === 'turn_failed') {
203
+ return makeEvent(sessionId, project, timestamp, {
204
+ activity: 'waiting',
205
+ tool: null,
206
+ detail: null,
207
+ provider: 'codex'
208
+ });
209
+ }
210
+ }
211
+ // Item events — the main activity signals
212
+ const item = payload.item;
213
+ if (item) {
214
+ return parseItem(item, sessionId, project, timestamp);
215
+ }
216
+ // Event-level type hints (turn.started, turn.completed, etc.)
217
+ if (payloadType === 'turn.started') {
218
+ return makeEvent(sessionId, project, timestamp, {
219
+ activity: 'thinking',
220
+ tool: null,
221
+ detail: null,
222
+ provider: 'codex'
223
+ });
224
+ }
225
+ if (payloadType === 'turn.completed' || payloadType === 'turn.failed') {
226
+ return makeEvent(sessionId, project, timestamp, {
227
+ activity: 'waiting',
228
+ tool: null,
229
+ detail: null,
230
+ provider: 'codex'
231
+ });
232
+ }
233
+ return null;
234
+ }
235
+ function parseLegacyLine(line, sessionId, timestamp, filePath) {
236
+ const project = projectFromContext(line.cwd, filePath);
237
+ const itemType = line.item_type ?? line.type;
238
+ if (!itemType)
239
+ return null;
240
+ // Treat bare lines as items
241
+ const bareItem = {
242
+ type: itemType,
243
+ name: line.name,
244
+ arguments: line.arguments
245
+ };
246
+ return parseItem(bareItem, sessionId, project, timestamp);
247
+ }
248
+ function parseItem(item, sessionId, project, timestamp) {
249
+ switch (item.type) {
250
+ case 'function_call': {
251
+ const fc = item;
252
+ const name = fc.name ?? 'unknown';
253
+ let args = {};
254
+ if (fc.arguments) {
255
+ try {
256
+ args = JSON.parse(fc.arguments);
257
+ }
258
+ catch {
259
+ // arguments might be plaintext for custom tools
260
+ args = { raw: fc.arguments };
261
+ }
262
+ }
263
+ const { tool, detail } = extractCodexToolContext(name, args);
264
+ return makeEvent(sessionId, project, timestamp, {
265
+ activity: 'tool_use',
266
+ tool,
267
+ detail,
268
+ provider: 'codex'
269
+ });
270
+ }
271
+ case 'agent_message':
272
+ case 'assistant_message': {
273
+ return makeEvent(sessionId, project, timestamp, {
274
+ activity: 'responding',
275
+ tool: null,
276
+ detail: null,
277
+ provider: 'codex'
278
+ });
279
+ }
280
+ case 'function_call_output': {
281
+ return makeEvent(sessionId, project, timestamp, {
282
+ activity: 'thinking',
283
+ tool: null,
284
+ detail: null,
285
+ provider: 'codex'
286
+ });
287
+ }
288
+ case 'reasoning': {
289
+ return makeEvent(sessionId, project, timestamp, {
290
+ activity: 'thinking',
291
+ tool: null,
292
+ detail: null,
293
+ provider: 'codex'
294
+ });
295
+ }
296
+ default:
297
+ return null;
298
+ }
299
+ }
300
+ //# sourceMappingURL=codex-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-parser.js","sourceRoot":"","sources":["../src/codex-parser.ts"],"names":[],"mappings":"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"}
@@ -29,15 +29,24 @@ export class FirestoreSync {
29
29
  if (changed)
30
30
  this.onShowProjectChanged().catch(() => { });
31
31
  });
32
- this.flushTimer = setInterval(() => this.flush(), 5000);
33
- this.heartbeatTimer = setInterval(() => this.heartbeat(), 60000);
32
+ // Codex state can change multiple times within a few seconds, so keep
33
+ // session status flushes frequent enough for responsive UI updates.
34
+ this.flushTimer = setInterval(() => this.flush(), 1000);
35
+ this.heartbeatTimer = setInterval(() => this.heartbeat(), 300000);
34
36
  }
35
37
  handleEvent(event) {
36
38
  const existing = this.sessions.get(event.sessionId);
37
39
  if (existing) {
38
40
  if (!existing.owned)
39
41
  return;
40
- existing.dirty = true;
42
+ const prev = existing.lastEvent.currentState;
43
+ const next = event.currentState;
44
+ if (prev.activity !== next.activity ||
45
+ prev.tool !== next.tool ||
46
+ prev.detail !== next.detail ||
47
+ prev.provider !== next.provider) {
48
+ existing.dirty = true;
49
+ }
41
50
  existing.lastEvent = event;
42
51
  }
43
52
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"firestore-sync.js","sourceRoot":"","sources":["../src/firestore-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firestore-sync.js","sourceRoot":"","sources":["../src/firestore-sync.ts"],"names":[],"mappings":"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"}
package/dist/parser.d.ts CHANGED
@@ -2,6 +2,7 @@ export interface SessionCurrentState {
2
2
  activity: 'thinking' | 'responding' | 'waiting' | 'tool_use' | 'user_prompt' | 'idle';
3
3
  tool: string | null;
4
4
  detail: string | null;
5
+ provider?: 'claude' | 'codex';
5
6
  }
6
7
  export interface ParsedEvent {
7
8
  sessionId: string;
package/dist/parser.js CHANGED
@@ -56,7 +56,7 @@ export function parseLine(raw) {
56
56
  sessionId,
57
57
  project,
58
58
  timestamp,
59
- currentState: { activity: 'user_prompt', tool: null, detail: null }
59
+ currentState: { activity: 'user_prompt', tool: null, detail: null, provider: 'claude' }
60
60
  };
61
61
  }
62
62
  // Assistant message = Claude is responding
@@ -70,7 +70,7 @@ export function parseLine(raw) {
70
70
  sessionId,
71
71
  project,
72
72
  timestamp,
73
- currentState: { activity: 'tool_use', tool, detail }
73
+ currentState: { activity: 'tool_use', tool, detail, provider: 'claude' }
74
74
  };
75
75
  }
76
76
  // Text-only response = Claude is responding with text
@@ -80,7 +80,7 @@ export function parseLine(raw) {
80
80
  sessionId,
81
81
  project,
82
82
  timestamp,
83
- currentState: { activity: 'responding', tool: null, detail: null }
83
+ currentState: { activity: 'responding', tool: null, detail: null, provider: 'claude' }
84
84
  };
85
85
  }
86
86
  }
@@ -90,7 +90,7 @@ export function parseLine(raw) {
90
90
  sessionId,
91
91
  project,
92
92
  timestamp,
93
- currentState: { activity: 'thinking', tool: null, detail: null }
93
+ currentState: { activity: 'thinking', tool: null, detail: null, provider: 'claude' }
94
94
  };
95
95
  }
96
96
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAsCrC,SAAS,YAAY,CAAC,QAAiB;IACtC,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC9C,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,KAA8B;IACvE,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACV,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,KAAK,MAAM;YACV,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnG,KAAK,MAAM;YACV,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3F,KAAK,MAAM;YACV,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3F,KAAK,MAAM;YACV,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvG,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU;YACd,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACrC,OAAO,CAAC,CAAC,CAAC;YACT,iDAAiD;YACjD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;gBAClD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC1C,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACrC,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,GAAuB;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW;IACpC,IAAI,IAAe,CAAC;IACpB,IAAI,CAAC;QACJ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7D,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzC,yCAAyC;IACzC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC7D,OAAO;YACN,SAAS;YACT,OAAO;YACP,SAAS;YACT,YAAY,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;SACvF,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAErC,4BAA4B;QAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAC3D,IAAI,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACrC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAgC,CAAC,CAAC;YACpG,OAAO;gBACN,SAAS;gBACT,OAAO;gBACP,SAAS;gBACT,YAAY,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;aACxE,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,OAAO,EAAE,CAAC;YACb,OAAO;gBACN,SAAS;gBACT,OAAO;gBACP,SAAS;gBACT,YAAY,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;aACtF,CAAC;QACH,CAAC;IACF,CAAC;IAED,gEAAgE;IAChE,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC7D,OAAO;YACN,SAAS;YACT,OAAO;YACP,SAAS;YACT,YAAY,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;SACpF,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
package/dist/watcher.d.ts CHANGED
@@ -1,13 +1,20 @@
1
1
  import { EventEmitter } from 'node:events';
2
+ export type Provider = 'claude' | 'codex';
2
3
  export interface RawLine {
3
4
  content: string;
4
5
  filePath: string;
6
+ provider: Provider;
7
+ }
8
+ export interface WatcherOptions {
9
+ provider: Provider;
10
+ dir?: string;
5
11
  }
6
12
  export declare class SessionWatcher extends EventEmitter {
7
13
  private filePositions;
8
- private claudeDir;
14
+ private watchDir;
15
+ private provider;
9
16
  private watcher;
10
- constructor();
17
+ constructor(options?: WatcherOptions);
11
18
  start(): Promise<void>;
12
19
  stop(): Promise<void>;
13
20
  private handleFile;
package/dist/watcher.js CHANGED
@@ -3,25 +3,32 @@ import { open, stat } from 'node:fs/promises';
3
3
  import { homedir } from 'node:os';
4
4
  import { join } from 'node:path';
5
5
  import { EventEmitter } from 'node:events';
6
+ const DEFAULT_DIRS = {
7
+ claude: join(homedir(), '.claude', 'projects'),
8
+ codex: join(homedir(), '.codex', 'sessions')
9
+ };
6
10
  export class SessionWatcher extends EventEmitter {
7
11
  filePositions = new Map();
8
- claudeDir;
12
+ watchDir;
13
+ provider;
9
14
  watcher = null;
10
- constructor() {
15
+ constructor(options) {
11
16
  super();
12
- this.claudeDir = join(homedir(), '.claude', 'projects');
17
+ this.provider = options?.provider ?? 'claude';
18
+ this.watchDir = options?.dir ?? DEFAULT_DIRS[this.provider];
13
19
  }
14
20
  async start() {
15
- this.watcher = watch(this.claudeDir, {
21
+ this.watcher = watch(this.watchDir, {
16
22
  persistent: true,
17
23
  ignoreInitial: false,
18
24
  depth: 5
19
25
  });
20
- const isJsonl = (p) => p.endsWith('.jsonl');
21
- this.watcher.on('add', (filePath) => isJsonl(filePath) && this.handleFile(filePath, true));
22
- this.watcher.on('change', (filePath) => isJsonl(filePath) && this.handleFile(filePath, false));
26
+ const isSessionFile = (p) => p.endsWith('.jsonl') || (this.provider === 'codex' && p.endsWith('.json'));
27
+ this.watcher.on('add', (filePath) => isSessionFile(filePath) && this.handleFile(filePath, true));
28
+ this.watcher.on('change', (filePath) => isSessionFile(filePath) && this.handleFile(filePath, false));
23
29
  this.watcher.on('error', (err) => this.emit('error', err));
24
- console.log(`Watching ${this.claudeDir} for JSONL files...`);
30
+ const watchedExt = this.provider === 'codex' ? 'JSONL/JSON' : 'JSONL';
31
+ console.log(`Watching ${this.watchDir} for ${this.provider} ${watchedExt} files...`);
25
32
  }
26
33
  async stop() {
27
34
  await this.watcher?.close();
@@ -54,7 +61,7 @@ export class SessionWatcher extends EventEmitter {
54
61
  const newContent = buffer.toString('utf-8');
55
62
  const lines = newContent.split('\n').filter((l) => l.trim());
56
63
  for (const line of lines) {
57
- this.emit('line', { content: line, filePath });
64
+ this.emit('line', { content: line, filePath, provider: this.provider });
58
65
  }
59
66
  }
60
67
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloffice-bridge",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "Bridge CLI that syncs local Claude Code sessions to a Cloffice room",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -11,7 +11,9 @@
11
11
  "bin": {
12
12
  "cloffice-bridge": "./dist/cli.js"
13
13
  },
14
- "files": ["dist"],
14
+ "files": [
15
+ "dist"
16
+ ],
15
17
  "engines": {
16
18
  "node": ">=18"
17
19
  },