jinn-cli 0.4.0 → 0.5.1

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 (81) hide show
  1. package/dist/src/engines/claude.d.ts +1 -0
  2. package/dist/src/engines/claude.d.ts.map +1 -1
  3. package/dist/src/engines/claude.js +65 -3
  4. package/dist/src/engines/claude.js.map +1 -1
  5. package/dist/src/engines/codex.d.ts.map +1 -1
  6. package/dist/src/engines/codex.js +5 -0
  7. package/dist/src/engines/codex.js.map +1 -1
  8. package/dist/src/gateway/api.d.ts.map +1 -1
  9. package/dist/src/gateway/api.js +123 -18
  10. package/dist/src/gateway/api.js.map +1 -1
  11. package/dist/src/gateway/files.d.ts.map +1 -1
  12. package/dist/src/gateway/files.js +5 -1
  13. package/dist/src/gateway/files.js.map +1 -1
  14. package/dist/src/gateway/server.d.ts.map +1 -1
  15. package/dist/src/gateway/server.js +38 -3
  16. package/dist/src/gateway/server.js.map +1 -1
  17. package/dist/src/mcp/gateway-server.js +5 -4
  18. package/dist/src/mcp/gateway-server.js.map +1 -1
  19. package/dist/src/sessions/context.d.ts.map +1 -1
  20. package/dist/src/sessions/context.js +248 -219
  21. package/dist/src/sessions/context.js.map +1 -1
  22. package/dist/src/sessions/limits.js +1 -1
  23. package/dist/src/sessions/limits.js.map +1 -1
  24. package/dist/src/sessions/manager.d.ts.map +1 -1
  25. package/dist/src/sessions/manager.js +28 -13
  26. package/dist/src/sessions/manager.js.map +1 -1
  27. package/dist/src/sessions/queue.d.ts +1 -1
  28. package/dist/src/sessions/queue.d.ts.map +1 -1
  29. package/dist/src/sessions/queue.js +2 -0
  30. package/dist/src/sessions/queue.js.map +1 -1
  31. package/dist/src/sessions/registry.d.ts +7 -1
  32. package/dist/src/sessions/registry.d.ts.map +1 -1
  33. package/dist/src/sessions/registry.js +12 -2
  34. package/dist/src/sessions/registry.js.map +1 -1
  35. package/dist/src/shared/types.d.ts +6 -2
  36. package/dist/src/shared/types.d.ts.map +1 -1
  37. package/dist/web/404.html +1 -1
  38. package/dist/web/_next/static/chunks/282-4e9c26e9a600c58e.js +1 -0
  39. package/dist/web/_next/static/chunks/700-a7cbf54fe1fbf4bc.js +1 -0
  40. package/dist/web/_next/static/chunks/app/chat/{page-2f3c561ed768ed58.js → page-757fcd211d059cb7.js} +1 -1
  41. package/dist/web/_next/static/chunks/app/costs/{page-13a6f2c65a827f8a.js → page-7940c2fe7e3dace1.js} +1 -1
  42. package/dist/web/_next/static/chunks/app/cron/{page-0ee07a679c7b79aa.js → page-f81a986689712af7.js} +1 -1
  43. package/dist/web/_next/static/chunks/app/kanban/page-6ab8586b063ca3ac.js +1 -0
  44. package/dist/web/_next/static/chunks/app/layout-c24e2d25774ff71a.js +1 -0
  45. package/dist/web/_next/static/chunks/app/logs/{page-6de6b16523e85193.js → page-388b787cb847ca97.js} +1 -1
  46. package/dist/web/_next/static/chunks/app/org/{page-cd9d362e77f4799e.js → page-3d44d51e94edb85e.js} +1 -1
  47. package/dist/web/_next/static/chunks/app/{page-b98417ed4f4d45a0.js → page-7ac43789d477a51f.js} +1 -1
  48. package/dist/web/_next/static/chunks/app/sessions/{page-9f83fa32b654db3b.js → page-18757fcd067b7e9d.js} +1 -1
  49. package/dist/web/_next/static/chunks/app/settings/page-beb4dce244545649.js +1 -0
  50. package/dist/web/_next/static/chunks/app/skills/page-26b727333df9db45.js +1 -0
  51. package/dist/web/_next/static/css/bd612b1ca9b40306.css +1 -0
  52. package/dist/web/chat.html +1 -1
  53. package/dist/web/chat.txt +5 -5
  54. package/dist/web/costs.html +2 -2
  55. package/dist/web/costs.txt +5 -5
  56. package/dist/web/cron.html +1 -1
  57. package/dist/web/cron.txt +5 -5
  58. package/dist/web/index.html +1 -1
  59. package/dist/web/index.txt +5 -5
  60. package/dist/web/kanban.html +1 -1
  61. package/dist/web/kanban.txt +5 -5
  62. package/dist/web/logs.html +2 -2
  63. package/dist/web/logs.txt +5 -5
  64. package/dist/web/org.html +1 -1
  65. package/dist/web/org.txt +5 -5
  66. package/dist/web/sessions.html +1 -1
  67. package/dist/web/sessions.txt +5 -5
  68. package/dist/web/settings.html +1 -1
  69. package/dist/web/settings.txt +5 -5
  70. package/dist/web/skills.html +1 -1
  71. package/dist/web/skills.txt +5 -5
  72. package/package.json +1 -1
  73. package/dist/web/_next/static/chunks/704-ca24be493a922639.js +0 -1
  74. package/dist/web/_next/static/chunks/73-2d6e730cea0fe6c8.js +0 -1
  75. package/dist/web/_next/static/chunks/app/kanban/page-a7facadd4194faae.js +0 -1
  76. package/dist/web/_next/static/chunks/app/layout-fd975d16033dab25.js +0 -1
  77. package/dist/web/_next/static/chunks/app/settings/page-34c9276e2a012445.js +0 -1
  78. package/dist/web/_next/static/chunks/app/skills/page-18cf3b7bb9a7339c.js +0 -1
  79. package/dist/web/_next/static/css/24da9dfc818cea32.css +0 -1
  80. /package/dist/web/_next/static/{Tn0FXDHalXGkNoojna-vg → PdaYoul-532GSdcvOaz-m}/_buildManifest.js +0 -0
  81. /package/dist/web/_next/static/{Tn0FXDHalXGkNoojna-vg → PdaYoul-532GSdcvOaz-m}/_ssgManifest.js +0 -0
@@ -6,6 +6,7 @@ export declare class ClaudeEngine implements InterruptibleEngine {
6
6
  killAll(): void;
7
7
  isAlive(sessionId: string): boolean;
8
8
  run(opts: EngineRunOpts): Promise<EngineResult>;
9
+ private runOnce;
9
10
  private processStreamLine;
10
11
  private extractResult;
11
12
  private buildCleanEnv;
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/engines/claude.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAC;AAQxG,qBAAa,YAAa,YAAW,mBAAmB;IACtD,IAAI,EAAG,QAAQ,CAAU;IACzB,OAAO,CAAC,aAAa,CAAkC;IAEvD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,SAAgB,GAAG,IAAI;IAcrD,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAK7B,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA+KrD,OAAO,CAAC,iBAAiB;IA+DzB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,aAAa;CAYtB"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/engines/claude.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAC;AA6BxG,qBAAa,YAAa,YAAW,mBAAmB;IACtD,IAAI,EAAG,QAAQ,CAAU;IACzB,OAAO,CAAC,aAAa,CAAkC;IAEvD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,SAAgB,GAAG,IAAI;IAcrD,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAK7B,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;YAoCvC,OAAO;IAkMrB,OAAO,CAAC,iBAAiB;IA+DzB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,aAAa;CAYtB"}
@@ -1,5 +1,24 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import { logger } from "../shared/logger.js";
3
+ /** Errors that are likely transient and worth retrying */
4
+ const TRANSIENT_PATTERNS = [
5
+ /ECONNRESET/i,
6
+ /ETIMEDOUT/i,
7
+ /socket hang up/i,
8
+ /503/,
9
+ /529/,
10
+ /overloaded/i,
11
+ /rate limit/i,
12
+ /spawn.*EAGAIN/i,
13
+ ];
14
+ function isTransientError(stderr, code) {
15
+ // Exit code 1 with no meaningful stderr is often a transient crash
16
+ if (code === 1 && stderr.trim().length < 10)
17
+ return true;
18
+ return TRANSIENT_PATTERNS.some((pat) => pat.test(stderr));
19
+ }
20
+ const MAX_RETRIES = 2;
21
+ const RETRY_BASE_MS = 1000;
3
22
  export class ClaudeEngine {
4
23
  name = "claude";
5
24
  liveProcesses = new Map();
@@ -26,6 +45,34 @@ export class ClaudeEngine {
26
45
  return !!live && !live.proc.killed && live.proc.exitCode === null;
27
46
  }
28
47
  async run(opts) {
48
+ let lastResult;
49
+ for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
50
+ if (attempt > 0) {
51
+ const delayMs = RETRY_BASE_MS * Math.pow(2, attempt - 1);
52
+ logger.warn(`Claude engine retry ${attempt}/${MAX_RETRIES} for session ${opts.sessionId || "unknown"} after ${delayMs}ms`);
53
+ // Emit a status delta so the UI knows we're retrying
54
+ opts.onStream?.({ type: "status", content: `Retrying (attempt ${attempt + 1}/${MAX_RETRIES + 1})...` });
55
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
56
+ }
57
+ const result = await this.runOnce(opts);
58
+ lastResult = result;
59
+ // Success or non-transient error — return immediately
60
+ if (!result.error)
61
+ return result;
62
+ // If the process was intentionally killed, don't retry
63
+ if (result.error.startsWith("Interrupted"))
64
+ return result;
65
+ // Check if this is a transient failure worth retrying
66
+ if (attempt < MAX_RETRIES && isTransientError(result.error, null)) {
67
+ logger.warn(`Transient Claude failure (attempt ${attempt + 1}): ${result.error.slice(0, 200)}`);
68
+ continue;
69
+ }
70
+ // Non-transient or final attempt — return the error
71
+ return result;
72
+ }
73
+ return lastResult;
74
+ }
75
+ async runOnce(opts) {
29
76
  const streaming = !!opts.onStream;
30
77
  const args = ["-p", "--output-format", streaming ? "stream-json" : "json", "--verbose", "--dangerously-skip-permissions", "--chrome"];
31
78
  if (streaming)
@@ -71,12 +118,14 @@ export class ClaudeEngine {
71
118
  let lastResultMsg = null;
72
119
  let lineCount = 0;
73
120
  let inTool = false;
121
+ const STDERR_MAX = 10 * 1024; // 10KB rolling window for error reporting
74
122
  if (streaming && opts.onStream) {
75
123
  const onStream = opts.onStream;
76
124
  let lineBuf = "";
77
125
  proc.stdout.on("data", (d) => {
78
126
  const chunk = d.toString();
79
- stdout += chunk;
127
+ // Do not accumulate stdout in streaming mode — data is forwarded to
128
+ // the client as it arrives. Only lineBuf is needed for line parsing.
80
129
  lineBuf += chunk;
81
130
  const lines = lineBuf.split("\n");
82
131
  lineBuf = lines.pop() || "";
@@ -110,6 +159,10 @@ export class ClaudeEngine {
110
159
  proc.stderr.on("data", (d) => {
111
160
  const chunk = d.toString();
112
161
  stderr += chunk;
162
+ // Keep only the last 10KB of stderr to bound memory usage
163
+ if (stderr.length > STDERR_MAX) {
164
+ stderr = stderr.slice(stderr.length - STDERR_MAX);
165
+ }
113
166
  for (const line of chunk.trim().split("\n").filter(Boolean)) {
114
167
  logger.debug(`[claude stderr] ${line}`);
115
168
  }
@@ -169,8 +222,14 @@ export class ClaudeEngine {
169
222
  }
170
223
  return;
171
224
  }
172
- const errMsg = `Claude exited with code ${code}: ${stderr.slice(0, 500)}`;
225
+ // Non-zero exit code log full stderr for debugging
226
+ if (stderr.trim()) {
227
+ logger.error(`Claude stderr (exit code ${code}):\n${stderr}`);
228
+ }
229
+ const errMsg = `Claude exited with code ${code}${stderr.trim() ? `: ${stderr.slice(0, 500)}` : " (no stderr output)"}`;
173
230
  logger.error(errMsg);
231
+ // Emit error delta so WebSocket clients see the failure immediately
232
+ opts.onStream?.({ type: "error", content: errMsg });
174
233
  resolve({
175
234
  sessionId: opts.resumeSessionId || "",
176
235
  result: "",
@@ -184,7 +243,10 @@ export class ClaudeEngine {
184
243
  if (opts.sessionId) {
185
244
  this.liveProcesses.delete(opts.sessionId);
186
245
  }
187
- reject(new Error(`Failed to spawn Claude CLI: ${err.message}`));
246
+ const errMsg = `Failed to spawn Claude CLI: ${err.message}`;
247
+ logger.error(errMsg);
248
+ opts.onStream?.({ type: "error", content: errMsg });
249
+ reject(new Error(errMsg));
188
250
  });
189
251
  });
190
252
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/engines/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/engines/claude.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/engines/codex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAC;AAQxG,qBAAa,WAAY,YAAW,mBAAmB;IACrD,IAAI,EAAG,OAAO,CAAU;IACxB,OAAO,CAAC,aAAa,CAAkC;IAEvD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,SAAgB,GAAG,IAAI;IAcrD,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAK7B,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAkKrD,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,gBAAgB;IA4IxB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;CAYtB"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/engines/codex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAC;AAQxG,qBAAa,WAAY,YAAW,mBAAmB;IACrD,IAAI,EAAG,OAAO,CAAU;IACxB,OAAO,CAAC,aAAa,CAAkC;IAEvD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,SAAgB,GAAG,IAAI;IAcrD,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAK7B,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAuKrD,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,gBAAgB;IA4IxB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;CAYtB"}
@@ -60,6 +60,7 @@ export class CodexEngine {
60
60
  let turnError = null;
61
61
  let lineBuf = "";
62
62
  const onStream = opts.onStream || null;
63
+ const STDERR_MAX = 10 * 1024; // 10KB rolling window for error reporting
63
64
  proc.stdout.on("data", (d) => {
64
65
  lineBuf += d.toString();
65
66
  const lines = lineBuf.split("\n");
@@ -105,6 +106,10 @@ export class CodexEngine {
105
106
  proc.stderr.on("data", (d) => {
106
107
  const chunk = d.toString();
107
108
  stderr += chunk;
109
+ // Keep only the last 10KB of stderr to bound memory usage
110
+ if (stderr.length > STDERR_MAX) {
111
+ stderr = stderr.slice(stderr.length - STDERR_MAX);
112
+ }
108
113
  for (const line of chunk.trim().split("\n").filter(Boolean)) {
109
114
  logger.debug(`[codex stderr] ${line}`);
110
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/engines/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/engines/codex.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/gateway/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhF,OAAO,KAAK,EAAmB,UAAU,EAAW,MAAM,oBAAoB,CAAC;AAE/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA8B7D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,UAAU,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,SAAS,CAAC,CAAC;CACjE;AA0GD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAyxBf"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/gateway/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhF,OAAO,KAAK,EAAmB,UAAU,EAAW,MAAM,oBAAoB,CAAC;AAE/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA8B7D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,UAAU,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,SAAS,CAAC,CAAC;CACjE;AAoHD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CA82Bf"}
@@ -60,6 +60,16 @@ function readBodyRaw(req) {
60
60
  req.on("error", reject);
61
61
  });
62
62
  }
63
+ async function readJsonBody(req, res) {
64
+ const raw = await readBody(req);
65
+ try {
66
+ return { ok: true, body: JSON.parse(raw) };
67
+ }
68
+ catch {
69
+ badRequest(res, "Invalid JSON in request body");
70
+ return { ok: false };
71
+ }
72
+ }
63
73
  function json(res, data, status = 200) {
64
74
  res.writeHead(status, { "Content-Type": "application/json" });
65
75
  res.end(JSON.stringify(data));
@@ -128,6 +138,12 @@ export async function handleApiRequest(req, res, context) {
128
138
  const sessions = listSessions();
129
139
  return json(res, sessions.map((session) => serializeSession(session, context)));
130
140
  }
141
+ // GET /api/sessions/interrupted — list sessions that can be resumed after a restart
142
+ if (method === "GET" && pathname === "/api/sessions/interrupted") {
143
+ const { getInterruptedSessions } = await import("../sessions/registry.js");
144
+ const interrupted = getInterruptedSessions();
145
+ return json(res, interrupted.map((session) => serializeSession(session, context)));
146
+ }
131
147
  // GET /api/sessions/:id
132
148
  let params = matchRoute("/api/sessions/:id", pathname);
133
149
  if (method === "GET" && params) {
@@ -148,6 +164,7 @@ export async function handleApiRequest(req, res, context) {
148
164
  return json(res, { ...serializeSession(session, context), messages });
149
165
  }
150
166
  // DELETE /api/sessions/:id
167
+ params = matchRoute("/api/sessions/:id", pathname);
151
168
  if (method === "DELETE" && params) {
152
169
  const session = getSession(params.id);
153
170
  if (!session)
@@ -167,7 +184,11 @@ export async function handleApiRequest(req, res, context) {
167
184
  }
168
185
  // POST /api/sessions/bulk-delete
169
186
  if (method === "POST" && pathname === "/api/sessions/bulk-delete") {
170
- const body = JSON.parse(await readBody(req));
187
+ const _parsed = await readJsonBody(req, res);
188
+ if (!_parsed.ok)
189
+ return;
190
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
191
+ const body = _parsed.body;
171
192
  const ids = body.ids;
172
193
  if (!Array.isArray(ids) || ids.length === 0)
173
194
  return badRequest(res, "ids array is required");
@@ -197,7 +218,11 @@ export async function handleApiRequest(req, res, context) {
197
218
  // POST /api/sessions/stub — create a session with a pre-populated assistant
198
219
  // message but do NOT run the engine. Used for lazy onboarding.
199
220
  if (method === "POST" && pathname === "/api/sessions/stub") {
200
- const body = JSON.parse(await readBody(req));
221
+ const _parsed = await readJsonBody(req, res);
222
+ if (!_parsed.ok)
223
+ return;
224
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
225
+ const body = _parsed.body;
201
226
  const greeting = body.greeting || "Hey! Say hi when you're ready to get started.";
202
227
  const config = context.getConfig();
203
228
  const engineName = body.engine || config.engines.default;
@@ -219,7 +244,11 @@ export async function handleApiRequest(req, res, context) {
219
244
  }
220
245
  // POST /api/sessions
221
246
  if (method === "POST" && pathname === "/api/sessions") {
222
- const body = JSON.parse(await readBody(req));
247
+ const _parsed = await readJsonBody(req, res);
248
+ if (!_parsed.ok)
249
+ return;
250
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
251
+ const body = _parsed.body;
223
252
  const prompt = body.prompt || body.message;
224
253
  if (!prompt)
225
254
  return badRequest(res, "prompt or message is required");
@@ -267,7 +296,11 @@ export async function handleApiRequest(req, res, context) {
267
296
  const session = getSession(params.id);
268
297
  if (!session)
269
298
  return notFound(res);
270
- const body = JSON.parse(await readBody(req));
299
+ const _parsed = await readJsonBody(req, res);
300
+ if (!_parsed.ok)
301
+ return;
302
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
303
+ const body = _parsed.body;
271
304
  const prompt = body.message || body.prompt;
272
305
  if (!prompt)
273
306
  return badRequest(res, "message is required");
@@ -281,6 +314,16 @@ export async function handleApiRequest(req, res, context) {
281
314
  if (session.status === "running") {
282
315
  context.emit("session:queued", { sessionId: session.id, message: prompt });
283
316
  }
317
+ // If session was interrupted by a restart, clear the error and resume
318
+ if (session.status === "interrupted") {
319
+ logger.info(`Resuming interrupted session ${session.id} (engineSessionId: ${session.engineSessionId})`);
320
+ updateSession(session.id, {
321
+ status: "running",
322
+ lastActivity: new Date().toISOString(),
323
+ lastError: null,
324
+ });
325
+ context.emit("session:resumed", { sessionId: session.id });
326
+ }
284
327
  dispatchWebSessionRun(session, prompt, engine, config, context);
285
328
  return json(res, { status: "queued", sessionId: session.id });
286
329
  }
@@ -320,7 +363,11 @@ export async function handleApiRequest(req, res, context) {
320
363
  }
321
364
  // POST /api/cron — create new cron job
322
365
  if (method === "POST" && pathname === "/api/cron") {
323
- const body = JSON.parse(await readBody(req));
366
+ const _parsed = await readJsonBody(req, res);
367
+ if (!_parsed.ok)
368
+ return;
369
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
370
+ const body = _parsed.body;
324
371
  const jobs = loadJobs();
325
372
  const newJob = {
326
373
  id: body.id || crypto.randomUUID(),
@@ -346,7 +393,11 @@ export async function handleApiRequest(req, res, context) {
346
393
  const idx = jobs.findIndex((j) => j.id === params.id);
347
394
  if (idx === -1)
348
395
  return notFound(res);
349
- const body = JSON.parse(await readBody(req));
396
+ const _parsed = await readJsonBody(req, res);
397
+ if (!_parsed.ok)
398
+ return;
399
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
400
+ const body = _parsed.body;
350
401
  jobs[idx] = { ...jobs[idx], ...body, id: params.id };
351
402
  saveJobs(jobs);
352
403
  reloadScheduler(jobs);
@@ -458,7 +509,11 @@ export async function handleApiRequest(req, res, context) {
458
509
  const deptDir = path.join(ORG_DIR, p.name);
459
510
  if (!fs.existsSync(deptDir))
460
511
  return notFound(res);
461
- const body = JSON.parse(await readBody(req));
512
+ const _parsed = await readJsonBody(req, res);
513
+ if (!_parsed.ok)
514
+ return;
515
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
516
+ const body = _parsed.body;
462
517
  fs.writeFileSync(boardPath, JSON.stringify(body, null, 2));
463
518
  context.emit("board:updated", { department: p.name });
464
519
  return json(res, { status: "ok" });
@@ -469,8 +524,8 @@ export async function handleApiRequest(req, res, context) {
469
524
  if (!query)
470
525
  return badRequest(res, "q parameter is required");
471
526
  try {
472
- const { execSync } = await import("node:child_process");
473
- const output = execSync(`npx skills find ${JSON.stringify(query)}`, {
527
+ const { execFileSync } = await import("node:child_process");
528
+ const output = execFileSync("npx", ["skills", "find", query], {
474
529
  encoding: "utf-8",
475
530
  timeout: 30000,
476
531
  });
@@ -489,15 +544,19 @@ export async function handleApiRequest(req, res, context) {
489
544
  }
490
545
  // POST /api/skills/install — install a skill from skills.sh
491
546
  if (method === "POST" && pathname === "/api/skills/install") {
492
- const body = JSON.parse(await readBody(req));
547
+ const _parsed = await readJsonBody(req, res);
548
+ if (!_parsed.ok)
549
+ return;
550
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
551
+ const body = _parsed.body;
493
552
  const source = body.source;
494
553
  if (!source)
495
554
  return badRequest(res, "source is required");
496
555
  try {
497
556
  const { snapshotDirs, diffSnapshots, copySkillToInstance, upsertManifest, extractSkillName, findExistingSkill, } = await import("../cli/skills.js");
498
- const { execSync } = await import("node:child_process");
557
+ const { execFileSync } = await import("node:child_process");
499
558
  const before = snapshotDirs();
500
- execSync(`npx skills add ${JSON.stringify(source)} -g -y`, {
559
+ execFileSync("npx", ["skills", "add", String(source), "-g", "-y"], {
501
560
  encoding: "utf-8",
502
561
  timeout: 60000,
503
562
  });
@@ -578,6 +637,7 @@ export async function handleApiRequest(req, res, context) {
578
637
  return json(res, { name: params.name, content });
579
638
  }
580
639
  // DELETE /api/skills/:name — remove a skill
640
+ params = matchRoute("/api/skills/:name", pathname);
581
641
  if (method === "DELETE" && params) {
582
642
  const skillDir = path.join(SKILLS_DIR, params.name);
583
643
  if (!fs.existsSync(skillDir))
@@ -609,7 +669,33 @@ export async function handleApiRequest(req, res, context) {
609
669
  }
610
670
  // PUT /api/config
611
671
  if (method === "PUT" && pathname === "/api/config") {
612
- const body = JSON.parse(await readBody(req));
672
+ const _parsed = await readJsonBody(req, res);
673
+ if (!_parsed.ok)
674
+ return;
675
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
676
+ const body = _parsed.body;
677
+ // Basic validation: must be a plain object
678
+ if (!body || typeof body !== "object" || Array.isArray(body)) {
679
+ return badRequest(res, "Config must be a JSON object");
680
+ }
681
+ // Validate known top-level keys
682
+ const KNOWN_KEYS = ["gateway", "engines", "connectors", "mcp", "portal", "stt", "skills"];
683
+ const unknownKeys = Object.keys(body).filter((k) => !KNOWN_KEYS.includes(k));
684
+ if (unknownKeys.length > 0) {
685
+ return badRequest(res, `Unknown config keys: ${unknownKeys.join(", ")}`);
686
+ }
687
+ // Validate critical field types
688
+ if (body.gateway !== undefined) {
689
+ if (typeof body.gateway !== "object" || Array.isArray(body.gateway)) {
690
+ return badRequest(res, "gateway must be an object");
691
+ }
692
+ if (body.gateway.port !== undefined && typeof body.gateway.port !== "number") {
693
+ return badRequest(res, "gateway.port must be a number");
694
+ }
695
+ }
696
+ if (body.engines !== undefined && (typeof body.engines !== "object" || Array.isArray(body.engines))) {
697
+ return badRequest(res, "engines must be an object");
698
+ }
613
699
  const yamlStr = yaml.dump(body);
614
700
  fs.writeFileSync(CONFIG_PATH, yamlStr);
615
701
  logger.info("Config updated via API");
@@ -621,8 +707,15 @@ export async function handleApiRequest(req, res, context) {
621
707
  if (!fs.existsSync(logFile))
622
708
  return json(res, { lines: [] });
623
709
  const n = parseInt(url.searchParams.get("n") || "100", 10);
624
- const content = fs.readFileSync(logFile, "utf-8");
625
- const allLines = content.trim().split("\n");
710
+ // Read only the last 64KB to avoid loading the entire file into memory
711
+ const MAX_BYTES = 64 * 1024;
712
+ const stat = fs.statSync(logFile);
713
+ const readSize = Math.min(stat.size, MAX_BYTES);
714
+ const fd = fs.openSync(logFile, "r");
715
+ const buf = Buffer.alloc(readSize);
716
+ fs.readSync(fd, buf, 0, readSize, stat.size - readSize);
717
+ fs.closeSync(fd);
718
+ const allLines = buf.toString("utf-8").split("\n").filter(Boolean);
626
719
  const lines = allLines.slice(-n);
627
720
  return json(res, { lines });
628
721
  }
@@ -632,7 +725,11 @@ export async function handleApiRequest(req, res, context) {
632
725
  const connector = context.connectors.get(params.name);
633
726
  if (!connector)
634
727
  return notFound(res);
635
- const body = JSON.parse(await readBody(req));
728
+ const _parsed = await readJsonBody(req, res);
729
+ if (!_parsed.ok)
730
+ return;
731
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
732
+ const body = _parsed.body;
636
733
  if (!body.channel || !body.text)
637
734
  return badRequest(res, "channel and text are required");
638
735
  await connector.sendMessage({ channel: body.channel, thread: body.thread }, body.text);
@@ -685,7 +782,11 @@ export async function handleApiRequest(req, res, context) {
685
782
  }
686
783
  // POST /api/onboarding — persist portal personalization
687
784
  if (method === "POST" && pathname === "/api/onboarding") {
688
- const body = JSON.parse(await readBody(req));
785
+ const _parsed = await readJsonBody(req, res);
786
+ if (!_parsed.ok)
787
+ return;
788
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
789
+ const body = _parsed.body;
689
790
  const { portalName, operatorName, language } = body;
690
791
  // Read current config and merge portal settings
691
792
  const config = context.getConfig();
@@ -809,7 +910,11 @@ export async function handleApiRequest(req, res, context) {
809
910
  }
810
911
  }
811
912
  if (method === "PUT" && pathname === "/api/stt/config") {
812
- const body = JSON.parse(await readBody(req));
913
+ const _parsed = await readJsonBody(req, res);
914
+ if (!_parsed.ok)
915
+ return;
916
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
917
+ const body = _parsed.body;
813
918
  const langs = body.languages;
814
919
  if (!Array.isArray(langs) || langs.length === 0) {
815
920
  return badRequest(res, "languages must be a non-empty array");