codedeck 0.1.2 → 0.1.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.
Files changed (42) hide show
  1. package/README.md +50 -0
  2. package/dist/cli/commands/logs.js +5 -1
  3. package/dist/cli/commands/logs.js.map +1 -1
  4. package/dist/cli/commands/run.js +86 -24
  5. package/dist/cli/commands/run.js.map +1 -1
  6. package/dist/cli/commands/show.js +4 -0
  7. package/dist/cli/commands/show.js.map +1 -1
  8. package/dist/core/driver.js +9 -1
  9. package/dist/core/driver.js.map +1 -1
  10. package/dist/core/errors.js +56 -0
  11. package/dist/core/errors.js.map +1 -1
  12. package/dist/core/events.js.map +1 -1
  13. package/dist/core/session.js.map +1 -1
  14. package/dist/daemon/daemon.js +298 -71
  15. package/dist/daemon/daemon.js.map +1 -1
  16. package/dist/drivers/claude/driver.js +34 -205
  17. package/dist/drivers/claude/driver.js.map +1 -1
  18. package/dist/drivers/codex/driver.js +65 -205
  19. package/dist/drivers/codex/driver.js.map +1 -1
  20. package/dist/drivers/helpers.js +47 -37
  21. package/dist/drivers/helpers.js.map +1 -1
  22. package/dist/drivers/omp/driver.js +38 -206
  23. package/dist/drivers/omp/driver.js.map +1 -1
  24. package/dist/drivers/opencode/driver.js +30 -182
  25. package/dist/drivers/opencode/driver.js.map +1 -1
  26. package/dist/drivers/session-driver.js +122 -0
  27. package/dist/drivers/session-driver.js.map +1 -0
  28. package/dist/drivers/session-runtime.js +333 -0
  29. package/dist/drivers/session-runtime.js.map +1 -0
  30. package/dist/drivers/tailer.js +149 -0
  31. package/dist/drivers/tailer.js.map +1 -0
  32. package/dist/drivers/terminal.js +53 -0
  33. package/dist/drivers/terminal.js.map +1 -0
  34. package/dist/store/database.js +28 -1
  35. package/dist/store/database.js.map +1 -1
  36. package/dist/store/events.js +8 -3
  37. package/dist/store/events.js.map +1 -1
  38. package/dist/store/sessions.js +27 -4
  39. package/dist/store/sessions.js.map +1 -1
  40. package/dist/utils/process.js +104 -4
  41. package/dist/utils/process.js.map +1 -1
  42. package/package.json +10 -2
@@ -1,14 +1,54 @@
1
1
  import { spawn } from "node:child_process";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
2
4
  import { execFile } from "node:child_process";
3
5
  import { promisify } from "node:util";
4
6
  const execFileAsync = promisify(execFile);
5
- export function spawnHarness(cmd, args, cwd, env) {
6
- const proc = spawn(cmd, args, {
7
- cwd,
8
- env: { ...process.env, ...env },
9
- stdio: ["pipe", "pipe", "pipe"],
10
- });
11
- return proc;
7
+ // Spawn the harness DETACHED with stdout/stderr in FILES instead of pipes.
8
+ // This is the codedeck equivalent of the operator's `nohup … > file`:
9
+ // - `detached` gives the child its own process group, so it survives the
10
+ // daemon (and anything that kills the daemon's group);
11
+ // - file output has no reader to lose — a restarting daemon cannot EPIPE the
12
+ // child, and cannot apply pipe backpressure that freezes it;
13
+ // - the output stays on disk, so the next daemon reattaches by tailing the
14
+ // same files from a persisted offset.
15
+ export function spawnDetached(opts) {
16
+ fs.mkdirSync(path.dirname(opts.stdoutPath), { recursive: true });
17
+ fs.mkdirSync(path.dirname(opts.stderrPath), { recursive: true });
18
+ const sizeOf = (p) => {
19
+ try {
20
+ return fs.statSync(p).size;
21
+ }
22
+ catch {
23
+ return 0;
24
+ }
25
+ };
26
+ const stdoutOffset = sizeOf(opts.stdoutPath);
27
+ const stderrOffset = sizeOf(opts.stderrPath);
28
+ const out = fs.openSync(opts.stdoutPath, "a");
29
+ const err = fs.openSync(opts.stderrPath, "a");
30
+ try {
31
+ const proc = spawn(opts.cmd, opts.args, {
32
+ cwd: opts.cwd,
33
+ env: { ...process.env, ...opts.env },
34
+ detached: true,
35
+ // stdin is "ignore", never a closed pipe: a closed pipe works for some
36
+ // harnesses (they read EOF) but an OPEN one hangs forever waiting for
37
+ // input that never comes. "ignore" removes the whole failure class.
38
+ stdio: ["ignore", out, err],
39
+ });
40
+ return { proc, stdoutOffset, stderrOffset };
41
+ }
42
+ finally {
43
+ try {
44
+ fs.closeSync(out);
45
+ }
46
+ catch { }
47
+ try {
48
+ fs.closeSync(err);
49
+ }
50
+ catch { }
51
+ }
12
52
  }
13
53
  export async function detectBinary(cmd, versionArgs = ["--version"]) {
14
54
  try {
@@ -44,36 +84,6 @@ export async function detectBinary(cmd, versionArgs = ["--version"]) {
44
84
  return { installed: false, error: e instanceof Error ? e.message : String(e) };
45
85
  }
46
86
  }
47
- export function createLineReader(stream, onLine, onError) {
48
- let buf = "";
49
- const handler = (chunk) => {
50
- buf += chunk.toString();
51
- let idx;
52
- while ((idx = buf.indexOf("\n")) >= 0) {
53
- const line = buf.slice(0, idx).trim();
54
- buf = buf.slice(idx + 1);
55
- if (line) {
56
- try {
57
- onLine(line);
58
- }
59
- catch (e) {
60
- onError?.(e);
61
- }
62
- }
63
- }
64
- };
65
- stream.on("data", handler);
66
- const cleanup = () => {
67
- stream.off("data", handler);
68
- if (buf.trim()) {
69
- try {
70
- onLine(buf.trim());
71
- }
72
- catch { }
73
- }
74
- };
75
- return cleanup;
76
- }
77
87
  export function safeJsonParse(s) {
78
88
  try {
79
89
  return JSON.parse(s);
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/drivers/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/drivers/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { spawn } from "node:child_process";
2
- import { detectBinary, createLineReader } from "../helpers.js";
3
- import { EventEmitter } from "node:events";
1
+ import { detectBinary } from "../helpers.js";
2
+ import { classifyFailure } from "../../core/errors.js";
3
+ import { createRuntimeHooks, SessionDriver } from "../session-driver.js";
4
4
  export function parseOmpLine(line, sessionId) {
5
5
  let obj;
6
6
  try {
@@ -16,11 +16,13 @@ export function parseOmpLine(line, sessionId) {
16
16
  // Observed rpc mode may emit {"type":"text","text":"..."} etc.
17
17
  // Handle generic
18
18
  if (obj.error) {
19
+ const errText = typeof obj.error === "string" ? obj.error : obj.error.message || JSON.stringify(obj.error);
19
20
  events.push({
20
21
  type: "session.failed",
21
22
  sessionId,
22
23
  timestamp: ts,
23
- error: typeof obj.error === "string" ? obj.error : obj.error.message || JSON.stringify(obj.error),
24
+ error: errText,
25
+ failure: classifyFailure(errText),
24
26
  raw,
25
27
  });
26
28
  return events;
@@ -173,11 +175,14 @@ export function parseOmpLine(line, sessionId) {
173
175
  if (obj.type === "session.completed" || obj.type === "done" || obj.type === "result") {
174
176
  const isError = obj.is_error || obj.error;
175
177
  if (isError) {
178
+ const rawErr = obj.error || obj.result || "OMP failed";
179
+ const errText = typeof rawErr === "string" ? rawErr : JSON.stringify(rawErr);
176
180
  events.push({
177
181
  type: "session.failed",
178
182
  sessionId,
179
183
  timestamp: ts,
180
- error: obj.error || obj.result || "OMP failed",
184
+ error: errText,
185
+ failure: classifyFailure(errText),
181
186
  raw,
182
187
  });
183
188
  }
@@ -230,9 +235,35 @@ export function parseOmpLine(line, sessionId) {
230
235
  }
231
236
  return [];
232
237
  }
233
- export class OmpDriver {
238
+ // Pure so the flag spellings are testable without spawning omp.
239
+ export function buildOmpArgs(options) {
240
+ const args = [];
241
+ if (options.resumeSessionId)
242
+ args.push("--resume", options.resumeSessionId);
243
+ args.push("-p", "--mode", "json");
244
+ if (options.model)
245
+ args.push("--model", options.model);
246
+ // omp calls reasoning "thinking" and accepts a wider set of levels than the
247
+ // shared type (off/minimal/auto), but the shared levels map straight through.
248
+ if (options.effort)
249
+ args.push("--thinking", options.effort);
250
+ if (options.fast)
251
+ args.push("--service-tier", "priority");
252
+ args.push(options.prompt);
253
+ return args;
254
+ }
255
+ export class OmpDriver extends SessionDriver {
234
256
  id = "omp";
235
- handles = new Map();
257
+ hooks = createRuntimeHooks({
258
+ parse: parseOmpLine,
259
+ nativeKeys: ["session_id", "sessionID"],
260
+ harness: "OMP",
261
+ plainTextFallback: true,
262
+ });
263
+ resumeError = "No native session id for OMP resume";
264
+ buildArgs(options) {
265
+ return buildOmpArgs(options);
266
+ }
236
267
  capabilities() {
237
268
  return {
238
269
  streaming: true,
@@ -257,204 +288,5 @@ export class OmpDriver {
257
288
  }
258
289
  return { installed: true, path: res.path, version: res.version, details: "omp -p --mode json" };
259
290
  }
260
- async start(options) {
261
- // `--mode` picks the OUTPUT format: text (default), json, rpc, rpc-ui.
262
- // `rpc` is the interactive protocol SERVER — it prints a handshake and then
263
- // waits for request frames on stdin. Driving it with `-p <prompt>` never
264
- // runs a turn: measured against omp 18.0.7, `omp --mode rpc -p "..."` emits
265
- // only `ready` / `available_commands_update` and exits 0 in under a second,
266
- // with zero assistant frames. That is what made every OMP session here
267
- // complete instantly and empty.
268
- //
269
- // `-p/--print` is a BOOLEAN flag ("process prompt and exit") and the prompt
270
- // is POSITIONAL (`MESSAGES` in `omp --help`), so it must not be passed as
271
- // `-p <prompt>`. The non-interactive NDJSON stream this driver parses is
272
- // `--mode json`.
273
- const args = [];
274
- if (options.resumeSessionId)
275
- args.push("--resume", options.resumeSessionId);
276
- args.push("-p", "--mode", "json");
277
- if (options.model)
278
- args.push("--model", options.model);
279
- args.push(options.prompt);
280
- // stdin is ignored rather than an immediately-closed pipe. A closed pipe
281
- // does work (omp falls back to the positional prompt on EOF), but an OPEN
282
- // one does not: omp waits for EOF that never comes and hangs indefinitely.
283
- // `ignore` removes that failure mode instead of depending on stdin.end().
284
- const proc = spawn("omp", args, {
285
- cwd: options.cwd,
286
- env: { ...process.env },
287
- stdio: ["ignore", "pipe", "pipe"],
288
- });
289
- const emitter = new EventEmitter();
290
- const buffer = [];
291
- // The handle is built HERE, before the handlers, and mutated in place. It
292
- // used to be constructed at the END of start() out of local `done` /
293
- // `exitCode` / `nativeId` variables — which copies them BY VALUE. The close
294
- // handler flipped the locals while `handle.done` stayed false forever, so
295
- // events() never left its wait loop (an omp session hung after the process
296
- // had already exited), and `handle.nativeSessionId` stayed undefined, so
297
- // send() could never resume.
298
- const handle = {
299
- proc,
300
- emitter,
301
- buffer,
302
- done: false,
303
- exitCode: null,
304
- nativeSessionId: options.resumeSessionId,
305
- };
306
- const push = (ev) => {
307
- ev.sessionId = options.sessionId;
308
- const native = ev.nativeSessionId ?? ev.raw?.session_id ?? ev.raw?.sessionID;
309
- if (native)
310
- handle.nativeSessionId = native;
311
- buffer.push(ev);
312
- emitter.emit("event", ev);
313
- };
314
- createLineReader(proc.stdout, (line) => {
315
- const evs = parseOmpLine(line, options.sessionId);
316
- for (const ev of evs)
317
- push(ev);
318
- // Try to salvage session id
319
- try {
320
- const obj = JSON.parse(line);
321
- if (obj.session_id && !handle.nativeSessionId)
322
- handle.nativeSessionId = obj.session_id;
323
- if (obj.sessionID && !handle.nativeSessionId)
324
- handle.nativeSessionId = obj.sessionID;
325
- // Sometimes omp rpc emits {"id":"...","result":{...}}
326
- }
327
- catch {
328
- // If not JSON, treat as text delta?
329
- if (line.trim()) {
330
- push({
331
- type: "text.delta",
332
- sessionId: options.sessionId,
333
- timestamp: new Date().toISOString(),
334
- delta: line + "\n",
335
- raw: line,
336
- });
337
- }
338
- }
339
- });
340
- let stderrBuf = "";
341
- proc.stderr?.on("data", (c) => (stderrBuf += c.toString()));
342
- proc.on("close", (code) => {
343
- handle.exitCode = code;
344
- handle.done = true;
345
- const hasTerminal = buffer.some((e) => e.type === "session.completed" || e.type === "session.failed");
346
- if (!hasTerminal) {
347
- // If we got text but no terminal, emit completed
348
- const hasMessage = buffer.some((e) => e.type === "message" || e.type === "text.delta");
349
- if (code === 0) {
350
- if (!hasMessage && stderrBuf.trim()) {
351
- // May have printed to stderr?
352
- }
353
- push({
354
- type: "session.completed",
355
- sessionId: options.sessionId,
356
- timestamp: new Date().toISOString(),
357
- reason: "exit 0",
358
- exitCode: 0,
359
- raw: { stderr: stderrBuf.slice(0, 2000) },
360
- });
361
- }
362
- else {
363
- push({
364
- type: "session.failed",
365
- sessionId: options.sessionId,
366
- timestamp: new Date().toISOString(),
367
- error: stderrBuf.slice(0, 2000) || `OMP exited with code ${code}`,
368
- exitCode: code ?? 1,
369
- raw: { stderr: stderrBuf.slice(0, 2000) },
370
- });
371
- }
372
- }
373
- emitter.emit("done");
374
- });
375
- proc.on("error", (err) => {
376
- push({
377
- type: "session.failed",
378
- sessionId: options.sessionId,
379
- timestamp: new Date().toISOString(),
380
- error: err.message,
381
- raw: err,
382
- });
383
- handle.done = true;
384
- emitter.emit("done");
385
- });
386
- this.handles.set(options.sessionId, handle);
387
- return {
388
- id: options.sessionId,
389
- nativeSessionId: handle.nativeSessionId,
390
- pid: proc.pid,
391
- cwd: options.cwd,
392
- model: options.model,
393
- handle,
394
- };
395
- }
396
- async send(session, message) {
397
- const h = this.handles.get(session.id);
398
- let nativeId = session.nativeSessionId || h?.nativeSessionId;
399
- if (!nativeId)
400
- throw new Error("No native session id for OMP resume");
401
- const newSession = await this.start({
402
- sessionId: session.id,
403
- prompt: message,
404
- cwd: session.cwd,
405
- model: session.model,
406
- resumeSessionId: nativeId,
407
- });
408
- session.pid = newSession.pid;
409
- session.handle = newSession.handle;
410
- }
411
- async stop(session) {
412
- const h = this.handles.get(session.id);
413
- const proc = (h?.proc ?? session.handle?.proc);
414
- if (!proc || proc.killed)
415
- return;
416
- try {
417
- proc.kill("SIGTERM");
418
- await new Promise((resolve) => {
419
- let done = false;
420
- const t = setTimeout(() => { if (!done) {
421
- try {
422
- proc.kill("SIGKILL");
423
- }
424
- catch { }
425
- ;
426
- done = true;
427
- resolve();
428
- } }, 3000);
429
- proc.once("close", () => { if (!done) {
430
- clearTimeout(t);
431
- done = true;
432
- resolve();
433
- } });
434
- });
435
- }
436
- catch { }
437
- }
438
- async *events(session) {
439
- const h = this.handles.get(session.id);
440
- if (!h)
441
- return;
442
- let idx = 0;
443
- while (true) {
444
- while (idx < h.buffer.length)
445
- yield h.buffer[idx++];
446
- if (h.done && idx >= h.buffer.length)
447
- break;
448
- await new Promise((resolve) => {
449
- const onEvent = () => { h.emitter.off("event", onEvent); h.emitter.off("done", onDone); resolve(); };
450
- const onDone = () => { h.emitter.off("event", onEvent); h.emitter.off("done", onDone); resolve(); };
451
- h.emitter.once("event", onEvent);
452
- h.emitter.once("done", onDone);
453
- });
454
- }
455
- }
456
- getHandle(sessionId) {
457
- return this.handles.get(sessionId);
458
- }
459
291
  }
460
292
  //# sourceMappingURL=driver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/drivers/omp/driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/drivers/omp/driver.ts"],"names":[],"mappings":"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"}