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 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/store/events.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,UAAU;IACD;IAApB,YAAoB,EAAgB;QAAhB,OAAE,GAAF,EAAE,CAAc;IAAG,CAAC;IAExC,MAAM,CAAC,SAAiB,EAAE,KAAiB,EAAE,GAAa;QACxD,oBAAoB;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,8EAA8E,CAAC,CAAC,GAAG,CAAC,SAAS,CAAuB,CAAC;QACjJ,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEpH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAG5B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3F,2CAA2C;QAC3C,mBAAmB;QACnB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,SAAiB,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,kFAAkF,CACnF,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAA0B,CAAC;QACzD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAe,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,CAAC,SAAiB;QACvB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iEAAiE,CAAC,CAAC,GAAG,CAAC,SAAS,CAA0B,CAAC;IACpI,CAAC;IAED,KAAK,CAAC,SAAiB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC,GAAG,CAAC,SAAS,CAAkB,CAAC;QACrH,OAAO,GAAG,CAAC,CAAC,CAAC;IACf,CAAC;IAED,IAAI,CAAC,SAAiB;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0EAA0E,CAAC,CAAC,GAAG,CAAC,SAAS,CAAyB,CAAC;QAC/I,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAe,CAAC;IAC1D,CAAC;CACF"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/store/events.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,UAAU;IACD;IAApB,YAAoB,EAAgB;QAAhB,OAAE,GAAF,EAAE,CAAc;IAAG,CAAC;IAExC,MAAM,CAAC,SAAiB,EAAE,KAAiB,EAAE,GAAa;QACxD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC9B,6EAA6E,CAC9E,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAqC,CAAC;YACtE,IAAI,QAAQ;gBAAE,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,oBAAoB;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,8EAA8E,CAAC,CAAC,GAAG,CAAC,SAAS,CAAuB,CAAC;QACjJ,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEpH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAG5B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;QACvG,2CAA2C;QAC3C,mBAAmB;QACnB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,SAAiB,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,kFAAkF,CACnF,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAA0B,CAAC;QACzD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAe,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,CAAC,SAAiB;QACvB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iEAAiE,CAAC,CAAC,GAAG,CAAC,SAAS,CAA0B,CAAC;IACpI,CAAC;IAED,KAAK,CAAC,SAAiB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC,GAAG,CAAC,SAAS,CAAkB,CAAC;QACrH,OAAO,GAAG,CAAC,CAAC,CAAC;IACf,CAAC;IAED,IAAI,CAAC,SAAiB;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0EAA0E,CAAC,CAAC,GAAG,CAAC,SAAS,CAAyB,CAAC;QAC/I,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAe,CAAC;IAC1D,CAAC;CACF"}
@@ -1,10 +1,23 @@
1
1
  function rowToSession(row) {
2
+ // `failure` is stored as JSON text; tolerate a corrupt blob rather than
3
+ // losing the whole session row over it.
4
+ let failure;
5
+ if (row.failure) {
6
+ try {
7
+ failure = JSON.parse(row.failure);
8
+ }
9
+ catch { }
10
+ }
2
11
  return {
3
12
  id: row.id,
4
13
  name: row.name ?? undefined,
5
14
  agent: row.agent,
6
15
  nativeSessionId: row.native_session_id ?? undefined,
7
16
  model: row.model ?? undefined,
17
+ effort: row.effort ?? undefined,
18
+ // Stored as INTEGER; normalise to a real boolean so `ps --json` and the
19
+ // resume path never see 0/1/null.
20
+ fast: !!row.fast,
8
21
  status: row.status,
9
22
  repository: row.repository ?? undefined,
10
23
  cwd: row.cwd,
@@ -12,6 +25,7 @@ function rowToSession(row) {
12
25
  branch: row.branch ?? undefined,
13
26
  baseCommit: row.base_commit ?? undefined,
14
27
  pid: row.pid ?? undefined,
28
+ pidStartTime: row.pid_start_time ?? undefined,
15
29
  createdAt: new Date(row.created_at),
16
30
  updatedAt: new Date(row.updated_at),
17
31
  completedAt: row.completed_at ? new Date(row.completed_at) : undefined,
@@ -26,6 +40,9 @@ function rowToSession(row) {
26
40
  }
27
41
  : undefined,
28
42
  lastEvent: row.last_event ?? undefined,
43
+ failure,
44
+ logOffset: row.log_offset ?? undefined,
45
+ stderrOffset: row.stderr_offset ?? undefined,
29
46
  };
30
47
  }
31
48
  export class SessionStore {
@@ -38,12 +55,12 @@ export class SessionStore {
38
55
  INSERT INTO sessions (
39
56
  id, name, agent, native_session_id, model, status,
40
57
  repository, cwd, worktree, branch, base_commit, pid,
41
- created_at, updated_at, completed_at,
58
+ pid_start_time, created_at, updated_at, completed_at,
42
59
  usage_input_tokens, usage_output_tokens, usage_cached_tokens, usage_cost,
43
- last_event
44
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
60
+ last_event, effort, fast, failure, log_offset, stderr_offset
61
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
45
62
  `);
46
- stmt.run(session.id, session.name ?? null, session.agent, session.nativeSessionId ?? null, session.model ?? null, session.status, session.repository ?? null, session.cwd, session.worktree ?? null, session.branch ?? null, session.baseCommit ?? null, session.pid ?? null, session.createdAt.toISOString(), session.updatedAt.toISOString(), session.completedAt ? session.completedAt.toISOString() : null, session.usage?.inputTokens ?? null, session.usage?.outputTokens ?? null, session.usage?.cachedTokens ?? null, session.usage?.cost ?? null, session.lastEvent ?? null);
63
+ stmt.run(session.id, session.name ?? null, session.agent, session.nativeSessionId ?? null, session.model ?? null, session.status, session.repository ?? null, session.cwd, session.worktree ?? null, session.branch ?? null, session.baseCommit ?? null, session.pid ?? null, session.pidStartTime ?? null, session.createdAt.toISOString(), session.updatedAt.toISOString(), session.completedAt ? session.completedAt.toISOString() : null, session.usage?.inputTokens ?? null, session.usage?.outputTokens ?? null, session.usage?.cachedTokens ?? null, session.usage?.cost ?? null, session.lastEvent ?? null, session.effort ?? null, session.fast ? 1 : 0, session.failure ? JSON.stringify(session.failure) : null, session.logOffset ?? null, session.stderrOffset ?? null);
47
64
  }
48
65
  get(id) {
49
66
  // Support prefix matching like git short hash: if exact not found, try prefix
@@ -93,6 +110,12 @@ export class SessionStore {
93
110
  usage_cached_tokens: patch.usage?.cachedTokens,
94
111
  usage_cost: patch.usage?.cost,
95
112
  last_event: patch.lastEvent,
113
+ effort: patch.effort,
114
+ fast: patch.fast === undefined ? undefined : patch.fast ? 1 : 0,
115
+ pid_start_time: patch.pidStartTime,
116
+ log_offset: patch.logOffset,
117
+ stderr_offset: patch.stderrOffset,
118
+ failure: patch.failure === undefined ? undefined : JSON.stringify(patch.failure),
96
119
  };
97
120
  for (const [col, val] of Object.entries(map)) {
98
121
  if (val !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/store/sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/store/sessions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
- import { execSync } from "node:child_process";
1
+ import { execFile, execSync } from "node:child_process";
2
+ import fs from "node:fs";
3
+ import { promisify } from "node:util";
4
+ const execFileAsync = promisify(execFile);
2
5
  export function which(cmd) {
3
6
  try {
4
7
  const out = execSync(`which ${cmd} 2>/dev/null`, { encoding: "utf-8" }).trim();
@@ -8,15 +11,112 @@ export function which(cmd) {
8
11
  return null;
9
12
  }
10
13
  }
14
+ export function sleep(ms) {
15
+ const { promise, resolve } = Promise.withResolvers();
16
+ setTimeout(resolve, ms);
17
+ return promise;
18
+ }
19
+ export function processAlive(pid) {
20
+ try {
21
+ process.kill(pid, 0);
22
+ return true;
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ }
28
+ export function processGroupAlive(pid) {
29
+ try {
30
+ process.kill(-pid, 0);
31
+ return true;
32
+ }
33
+ catch {
34
+ return false;
35
+ }
36
+ }
37
+ // Linux exposes a monotonic process start tick in /proc/<pid>/stat. Persisting
38
+ // it beside the PID closes the reuse race: after a daemon restart, a recycled
39
+ // PID is not mistaken for the harness that CodeDeck launched.
40
+ export function processStartTime(pid) {
41
+ try {
42
+ const stat = fs.readFileSync(`/proc/${pid}/stat`, "utf8");
43
+ const commEnd = stat.lastIndexOf(")");
44
+ if (commEnd < 0)
45
+ return undefined;
46
+ const fields = stat.slice(commEnd + 2).trim().split(/\s+/);
47
+ // The slice starts at field 3 (state); starttime is field 22.
48
+ return fields[19] || undefined;
49
+ }
50
+ catch {
51
+ return undefined;
52
+ }
53
+ }
54
+ // Harnesses run detached in their own process group, so signal the GROUP:
55
+ // they spawn children of their own (omp sub-agents) that must die with them.
56
+ // If an expected start time is supplied, refuse to signal a recycled PID.
57
+ export async function killTree(pid, graceMs = 3000, expectedStartTime) {
58
+ const matchesExpectedLeader = () => {
59
+ if (expectedStartTime === undefined)
60
+ return true;
61
+ const current = processStartTime(pid);
62
+ return current !== undefined && current === expectedStartTime;
63
+ };
64
+ let groupSignaled = false;
65
+ const canSignalGroup = () => matchesExpectedLeader() || (!processAlive(pid) && processGroupAlive(pid));
66
+ const signal = (sig, allowGroupAfterLeaderExit = false) => {
67
+ if (!allowGroupAfterLeaderExit && !canSignalGroup())
68
+ return false;
69
+ try {
70
+ process.kill(-pid, sig);
71
+ if (sig === "SIGTERM")
72
+ groupSignaled = true;
73
+ return true;
74
+ }
75
+ catch {
76
+ if (allowGroupAfterLeaderExit)
77
+ return false;
78
+ // The group may disappear between the group signal and this fallback.
79
+ // Recheck identity immediately before signaling a positive PID.
80
+ if (!matchesExpectedLeader())
81
+ return false;
82
+ try {
83
+ process.kill(pid, sig);
84
+ return true;
85
+ }
86
+ catch {
87
+ return false;
88
+ }
89
+ }
90
+ };
91
+ if (!signal("SIGTERM"))
92
+ return;
93
+ const deadline = Date.now() + graceMs;
94
+ while (Date.now() < deadline) {
95
+ const leaderAlive = processAlive(pid);
96
+ const groupAlive = processGroupAlive(pid);
97
+ if (!leaderAlive && !groupAlive)
98
+ break;
99
+ if (leaderAlive && !matchesExpectedLeader())
100
+ break;
101
+ await sleep(150);
102
+ }
103
+ // If TERM let the leader exit but a sub-process remains in its original
104
+ // group, escalate the already-signaled group. Do not guess at a new PID.
105
+ if (processGroupAlive(pid) && (groupSignaled || expectedStartTime === undefined)) {
106
+ signal("SIGKILL", true);
107
+ }
108
+ else if (processAlive(pid) && matchesExpectedLeader()) {
109
+ signal("SIGKILL");
110
+ }
111
+ // Settle window so a follow-up start() doesn't race the dying process.
112
+ await sleep(100);
113
+ }
11
114
  export async function detectBinary(cmd) {
12
115
  const path = which(cmd);
13
116
  if (!path)
14
117
  return { installed: false };
15
118
  let version;
16
119
  try {
17
- const { execFile } = await import("node:child_process");
18
- const { promisify } = await import("node:util");
19
- const execFileAsync = promisify(execFile);
20
120
  try {
21
121
  const { stdout } = await execFileAsync(cmd, ["--version"], { timeout: 5000 });
22
122
  version = stdout.trim().split("\n")[0].slice(0, 100);
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/utils/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAOxE,MAAM,UAAU,KAAK,CAAC,GAAW;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,GAAG,cAAc,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/E,OAAO,GAAG,IAAI,IAAI,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACvC,IAAI,OAA2B,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACxD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9E,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3E,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/utils/process.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codedeck",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "CodeDeck, a local runtime for coding agents with session management, process supervision, event normalization, and git isolation",
5
5
  "type": "module",
6
6
  "bin": {
@@ -18,7 +18,15 @@
18
18
  "doctor": "node dist/cli/index.js doctor",
19
19
  "prepublishOnly": "npm run build && npm test"
20
20
  },
21
- "keywords": ["agent", "coding-agent", "runtime", "claude", "codex", "opencode", "omp"],
21
+ "keywords": [
22
+ "agent",
23
+ "coding-agent",
24
+ "runtime",
25
+ "claude",
26
+ "codex",
27
+ "opencode",
28
+ "omp"
29
+ ],
22
30
  "author": "",
23
31
  "license": "MIT",
24
32
  "repository": {