bajaclaw 0.13.2 → 0.14.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.
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  ██╔══██╗██╔══██║██ ██║██╔══██║ ██║ ██║ ██╔══██║██║███╗██║
8
8
  ██████╔╝██║ ██║╚█████╔╝██║ ██║ ╚██████╗███████╗██║ ██║╚███╔███╔╝
9
9
  ╚═════╝ ╚═╝ ╚═╝ ╚════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝╚═╝ ╚═╝ ╚══╝╚══╝
10
- autonomous agents on your terms · MIT · v0.13.2
10
+ autonomous agents on your terms · MIT · v0.14.1
11
11
  ```
12
12
 
13
13
  **BajaClaw is a long-running agent runtime for the `claude` CLI.** It turns
@@ -17,6 +17,9 @@ OS-native scheduling, and first-class MCP integration.
17
17
 
18
18
  You install it once. It sets itself up. You run `bajaclaw start`. It goes.
19
19
 
20
+ > The name is a tribute to Baja Blast — the author's favorite soda. The
21
+ > dashboard ships in that same tropical-lime teal on purpose.
22
+
20
23
  ---
21
24
 
22
25
  ## Install
@@ -1,8 +1,6 @@
1
1
  export declare function runDashboard(profile: string): Promise<void>;
2
- /** Start the dashboard in the background and return. Caller owns the
3
- * lifetime — the returned server is null if the listen attempt
4
- * failed (port in use, etc.). No throws: the caller can log the
5
- * onError result and carry on. */
2
+ /** Start the dashboard in the background and return. Port-in-use is
3
+ * non-fatal — the caller gets an `ok: false` result to log. */
6
4
  export declare function startDashboardInProcess(profile: string): Promise<{
7
5
  port: number;
8
6
  ok: boolean;
@@ -3,101 +3,293 @@ import { readFileSync, existsSync } from "node:fs";
3
3
  import { dirname, join } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import chalk from "chalk";
6
- import { loadConfig } from "../config.js";
6
+ import { loadConfig, saveConfig } from "../config.js";
7
7
  import { openDb } from "../db.js";
8
8
  import { listRecent } from "../memory/recall.js";
9
+ import { runCycle } from "../agent.js";
10
+ import { loadAllSkillsRaw, runtimeSkipReason } from "../skills/loader.js";
11
+ import { currentVersion } from "../updater.js";
9
12
  const __dirname = dirname(fileURLToPath(import.meta.url));
10
- // __dirname is <repo>/src/commands (tsx) or <repo>/dist/commands (built).
11
13
  const DASHBOARD_HTML = join(__dirname, "..", "..", "src", "dashboard.html");
14
+ // Daemon start time — when the dashboard starts in-process, we capture
15
+ // it for the /api/status uptime readout.
16
+ const START_TIME = Date.now();
12
17
  export async function runDashboard(profile) {
13
18
  const cfg = loadConfig(profile);
14
19
  const port = cfg.dashboardPort ?? 7337;
15
- const srv = createServer((req, res) => {
16
- try {
17
- handle(req, res, profile);
18
- }
19
- catch (e) {
20
- res.writeHead(500);
21
- res.end(e.message);
22
- }
23
- });
20
+ const srv = createServer((req, res) => route(req, res, profile));
24
21
  srv.listen(port, () => {
25
22
  console.log(chalk.green(`✓ dashboard: http://localhost:${port}/`));
26
23
  });
27
24
  }
28
- /** Start the dashboard in the background and return. Caller owns the
29
- * lifetime — the returned server is null if the listen attempt
30
- * failed (port in use, etc.). No throws: the caller can log the
31
- * onError result and carry on. */
25
+ /** Start the dashboard in the background and return. Port-in-use is
26
+ * non-fatal — the caller gets an `ok: false` result to log. */
32
27
  export async function startDashboardInProcess(profile) {
33
28
  const cfg = loadConfig(profile);
34
29
  const port = cfg.dashboardPort ?? 7337;
35
30
  return new Promise((resolve) => {
36
- const srv = createServer((req, res) => {
37
- try {
38
- handle(req, res, profile);
39
- }
40
- catch (e) {
41
- res.writeHead(500);
42
- res.end(e.message);
43
- }
44
- });
31
+ const srv = createServer((req, res) => route(req, res, profile));
45
32
  srv.on("error", (err) => {
46
33
  resolve({ port, ok: false, error: err.code === "EADDRINUSE" ? `port ${port} already in use` : err.message });
47
34
  });
48
- srv.listen(port, () => {
49
- resolve({ port, ok: true });
50
- });
35
+ srv.listen(port, () => resolve({ port, ok: true }));
36
+ });
37
+ }
38
+ function route(req, res, profile) {
39
+ // Surface errors as JSON when the client is asking for JSON, HTML
40
+ // otherwise. Saves the frontend from parsing error pages.
41
+ const handler = async () => {
42
+ const url = req.url ?? "/";
43
+ const method = req.method ?? "GET";
44
+ // Static shell.
45
+ if (method === "GET" && (url === "/" || url === "/index.html")) {
46
+ return sendHtml(res);
47
+ }
48
+ // API routes.
49
+ if (url.startsWith("/api/")) {
50
+ await dispatchApi(req, res, profile, url, method);
51
+ return;
52
+ }
53
+ res.writeHead(404);
54
+ res.end();
55
+ };
56
+ handler().catch((err) => {
57
+ if (!res.headersSent) {
58
+ res.writeHead(500, { "content-type": "application/json" });
59
+ res.end(JSON.stringify({ error: err.message }));
60
+ }
51
61
  });
52
62
  }
53
- function handle(req, res, profile) {
54
- const url = req.url ?? "/";
55
- if (url === "/" || url === "/index.html") {
56
- const body = existsSync(DASHBOARD_HTML)
57
- ? readFileSync(DASHBOARD_HTML, "utf8")
58
- : fallbackHtml();
59
- res.writeHead(200, { "content-type": "text/html; charset=utf-8" });
60
- res.end(body);
63
+ async function dispatchApi(req, res, profile, url, method) {
64
+ // POST /api/chat blocks until the cycle finishes and returns the
65
+ // full result. Cycles are serialized per-profile by runCycle, so
66
+ // concurrent dashboard chats queue behind each other.
67
+ if (url === "/api/chat" && method === "POST") {
68
+ const body = await readJson(req);
69
+ const task = (body.message ?? "").trim();
70
+ if (!task) {
71
+ json(res, { error: "empty message" }, 400);
72
+ return;
73
+ }
74
+ const out = await runCycle({ profile, task });
75
+ json(res, {
76
+ ok: out.ok,
77
+ text: out.text,
78
+ cycleId: out.cycleId,
79
+ costUsd: out.costUsd,
80
+ inputTokens: out.inputTokens,
81
+ outputTokens: out.outputTokens,
82
+ turns: out.turns,
83
+ durationMs: out.durationMs,
84
+ model: out.model,
85
+ tier: out.tier,
86
+ error: out.error,
87
+ });
61
88
  return;
62
89
  }
63
- if (url.startsWith("/api/")) {
64
- const db = openDb(profile);
65
- try {
66
- if (url === "/api/cycles") {
67
- const rows = db.prepare("SELECT * FROM cycles ORDER BY id DESC LIMIT 50").all();
68
- return json(res, rows);
69
- }
70
- if (url === "/api/memories") {
71
- return json(res, listRecent(db, 100));
72
- }
73
- if (url === "/api/schedules") {
74
- const rows = db.prepare("SELECT * FROM schedules").all();
75
- return json(res, rows);
76
- }
77
- if (url === "/api/tasks") {
78
- const rows = db.prepare("SELECT * FROM tasks ORDER BY id DESC LIMIT 100").all();
79
- return json(res, rows);
80
- }
81
- if (url === "/api/summary") {
82
- const c = db.prepare("SELECT COUNT(*) c, SUM(cost_usd) cost FROM cycles").get();
83
- const m = db.prepare("SELECT COUNT(*) c FROM memories").get();
84
- return json(res, { profile, cycles: c.c, totalCostUsd: c.cost ?? 0, memories: m.c });
85
- }
90
+ // GET /api/config — safe subset of AgentConfig for the UI.
91
+ if (url === "/api/config" && method === "GET") {
92
+ const cfg = loadConfig(profile);
93
+ json(res, publicConfig(cfg));
94
+ return;
95
+ }
96
+ // PUT /api/config — merges a safe subset onto the on-disk config.
97
+ if (url === "/api/config" && method === "PUT") {
98
+ const body = await readJson(req);
99
+ const cfg = loadConfig(profile);
100
+ const next = mergeSafe(cfg, body);
101
+ saveConfig(next);
102
+ json(res, publicConfig(next));
103
+ return;
104
+ }
105
+ // GET /api/status daemon + gateway + version info.
106
+ if (url === "/api/status" && method === "GET") {
107
+ json(res, {
108
+ profile,
109
+ version: currentVersion(),
110
+ uptimeMs: Date.now() - START_TIME,
111
+ pid: process.pid,
112
+ now: new Date().toISOString(),
113
+ });
114
+ return;
115
+ }
116
+ // GET /api/channels — configured channels with tokens masked.
117
+ if (url === "/api/channels" && method === "GET") {
118
+ const cfg = loadConfig(profile);
119
+ json(res, (cfg.channels ?? []).map(maskChannel));
120
+ return;
121
+ }
122
+ // DELETE /api/channels/:kind — remove a configured channel.
123
+ const chDel = url.match(/^\/api\/channels\/(telegram|discord)$/);
124
+ if (chDel && method === "DELETE") {
125
+ const kind = chDel[1];
126
+ const cfg = loadConfig(profile);
127
+ cfg.channels = (cfg.channels ?? []).filter((c) => c.kind !== kind);
128
+ saveConfig(cfg);
129
+ json(res, (cfg.channels ?? []).map(maskChannel));
130
+ return;
131
+ }
132
+ // GET /api/skills — active + inactive skills with origin.
133
+ if (url === "/api/skills" && method === "GET") {
134
+ const skills = loadAllSkillsRaw(profile);
135
+ json(res, skills.map((s) => ({
136
+ name: s.name,
137
+ description: s.description,
138
+ origin: s.origin ?? "bajaclaw",
139
+ scope: s.scope,
140
+ version: s.version,
141
+ tags: s.tags,
142
+ requiredBins: s.requiredBins,
143
+ platforms: s.platforms,
144
+ homepage: s.homepage,
145
+ inactive: !!runtimeSkipReason(s),
146
+ inactiveReason: runtimeSkipReason(s),
147
+ })));
148
+ return;
149
+ }
150
+ // Existing DB-backed read endpoints.
151
+ const db = openDb(profile);
152
+ try {
153
+ if (url === "/api/cycles" && method === "GET") {
154
+ return json(res, db.prepare("SELECT * FROM cycles ORDER BY id DESC LIMIT 50").all());
86
155
  }
87
- finally {
88
- db.close();
156
+ if (url === "/api/memories" && method === "GET") {
157
+ return json(res, listRecent(db, 100));
158
+ }
159
+ if (url === "/api/schedules" && method === "GET") {
160
+ return json(res, db.prepare("SELECT * FROM schedules").all());
161
+ }
162
+ if (url === "/api/tasks" && method === "GET") {
163
+ return json(res, db.prepare("SELECT * FROM tasks ORDER BY id DESC LIMIT 100").all());
164
+ }
165
+ if (url === "/api/summary" && method === "GET") {
166
+ const since24 = new Date(Date.now() - 24 * 3600 * 1000).toISOString();
167
+ const since7d = new Date(Date.now() - 7 * 24 * 3600 * 1000).toISOString();
168
+ const all = db.prepare("SELECT COUNT(*) c, COALESCE(SUM(cost_usd),0) cost, COALESCE(SUM(input_tokens),0) inTok, COALESCE(SUM(output_tokens),0) outTok FROM cycles WHERE status='ok'").get();
169
+ const day = db.prepare("SELECT COUNT(*) c, COALESCE(SUM(cost_usd),0) cost FROM cycles WHERE status='ok' AND started_at > ?").get(since24);
170
+ const week = db.prepare("SELECT COUNT(*) c, COALESCE(SUM(cost_usd),0) cost FROM cycles WHERE status='ok' AND started_at > ?").get(since7d);
171
+ const memCount = db.prepare("SELECT COUNT(*) c FROM memories").get().c;
172
+ const pending = db.prepare("SELECT COUNT(*) c FROM tasks WHERE status='pending'").get().c;
173
+ return json(res, {
174
+ profile,
175
+ cycles: all.c,
176
+ cyclesDay: day.c,
177
+ cyclesWeek: week.c,
178
+ totalCostUsd: all.cost,
179
+ costDayUsd: day.cost,
180
+ costWeekUsd: week.cost,
181
+ inputTokens: all.inTok,
182
+ outputTokens: all.outTok,
183
+ memories: memCount,
184
+ pendingTasks: pending,
185
+ });
89
186
  }
90
187
  }
188
+ finally {
189
+ db.close();
190
+ }
91
191
  res.writeHead(404);
92
192
  res.end();
93
193
  }
94
- function json(res, data) {
95
- res.writeHead(200, { "content-type": "application/json" });
194
+ // ── Request helpers ────────────────────────────────────────────────
195
+ function readJson(req) {
196
+ return new Promise((resolve, reject) => {
197
+ let buf = "";
198
+ req.on("data", (chunk) => {
199
+ buf += chunk.toString("utf8");
200
+ if (buf.length > 1_000_000) {
201
+ req.destroy();
202
+ reject(new Error("request body too large"));
203
+ }
204
+ });
205
+ req.on("end", () => {
206
+ if (!buf)
207
+ return resolve({});
208
+ try {
209
+ resolve(JSON.parse(buf));
210
+ }
211
+ catch (e) {
212
+ reject(new Error(`invalid JSON body: ${e.message}`));
213
+ }
214
+ });
215
+ req.on("error", reject);
216
+ });
217
+ }
218
+ function json(res, data, status = 200) {
219
+ res.writeHead(status, { "content-type": "application/json" });
96
220
  res.end(JSON.stringify(data));
97
221
  }
222
+ function sendHtml(res) {
223
+ const body = existsSync(DASHBOARD_HTML)
224
+ ? readFileSync(DASHBOARD_HTML, "utf8")
225
+ : fallbackHtml();
226
+ res.writeHead(200, { "content-type": "text/html; charset=utf-8" });
227
+ res.end(body);
228
+ }
98
229
  function fallbackHtml() {
99
- return `<!doctype html><html><body style="font-family:system-ui;background:#111;color:#eee;padding:2rem">
230
+ return `<!doctype html><html><body style="font-family:system-ui;background:#09090B;color:#F0F0F3;padding:2rem">
100
231
  <h1>BajaClaw Dashboard</h1><p>dashboard.html not found — run <code>npm run build</code>.</p>
101
232
  </body></html>`;
102
233
  }
234
+ function publicConfig(cfg) {
235
+ return {
236
+ profile: cfg.profile,
237
+ name: cfg.name,
238
+ model: String(cfg.model ?? "auto"),
239
+ effort: cfg.effort,
240
+ contextWindow: cfg.contextWindow ?? "200k",
241
+ dashboardPort: cfg.dashboardPort ?? 7337,
242
+ dashboardAutostart: cfg.dashboardAutostart ?? true,
243
+ memorySync: cfg.memorySync ?? false,
244
+ maxBudgetUsd: cfg.maxBudgetUsd,
245
+ compaction: {
246
+ enabled: cfg.compaction?.enabled ?? true,
247
+ threshold: cfg.compaction?.threshold ?? 0.75,
248
+ schedule: cfg.compaction?.schedule ?? "both",
249
+ keepRecentPerKind: cfg.compaction?.keepRecentPerKind ?? 25,
250
+ pruneCycleDays: cfg.compaction?.pruneCycleDays ?? 30,
251
+ },
252
+ };
253
+ }
254
+ // Whitelist of fields the PUT /api/config endpoint will merge. Anything
255
+ // else is silently ignored — prevents an injection from rewriting e.g.
256
+ // the allowedTools list via the dashboard.
257
+ const ALLOWED_FIELDS = new Set([
258
+ "model", "effort", "contextWindow", "dashboardPort",
259
+ "dashboardAutostart", "memorySync", "maxBudgetUsd",
260
+ ]);
261
+ function mergeSafe(cfg, patch) {
262
+ const next = { ...cfg };
263
+ for (const [k, v] of Object.entries(patch)) {
264
+ if (!ALLOWED_FIELDS.has(k))
265
+ continue;
266
+ next[k] = v;
267
+ }
268
+ // Compaction has its own subsection — merge just the known numeric/boolean fields.
269
+ if (patch.compaction && typeof patch.compaction === "object") {
270
+ const p = patch.compaction;
271
+ next.compaction = { ...(cfg.compaction ?? {}) };
272
+ if (typeof p.enabled === "boolean")
273
+ next.compaction.enabled = p.enabled;
274
+ if (typeof p.threshold === "number")
275
+ next.compaction.threshold = p.threshold;
276
+ if (typeof p.schedule === "string")
277
+ next.compaction.schedule = p.schedule;
278
+ if (typeof p.keepRecentPerKind === "number")
279
+ next.compaction.keepRecentPerKind = p.keepRecentPerKind;
280
+ if (typeof p.pruneCycleDays === "number")
281
+ next.compaction.pruneCycleDays = p.pruneCycleDays;
282
+ }
283
+ return next;
284
+ }
285
+ function maskChannel(c) {
286
+ const t = c.token ?? "";
287
+ const masked = t.length > 8 ? `${t.slice(0, 4)}…${t.slice(-4)}` : "***";
288
+ return {
289
+ kind: c.kind,
290
+ tokenMasked: masked,
291
+ channelId: c.channelId,
292
+ allowlist: c.allowlist,
293
+ };
294
+ }
103
295
  //# sourceMappingURL=dashboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bajaclaw",
3
- "version": "0.13.2",
3
+ "version": "0.14.1",
4
4
  "description": "BajaClaw — autonomous agents on your terms",
5
5
  "type": "module",
6
6
  "bajaclaw": {