bajaclaw 0.11.1 → 0.11.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.
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  ██╔══██╗██╔══██║██ ██║██╔══██║ ██║ ██║ ██╔══██║██║███╗██║
8
8
  ██████╔╝██║ ██║╚█████╔╝██║ ██║ ╚██████╗███████╗██║ ██║╚███╔███╔╝
9
9
  ╚═════╝ ╚═╝ ╚═╝ ╚════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝╚═╝ ╚═╝ ╚══╝╚══╝
10
- autonomous agents on your terms · MIT · v0.11.1
10
+ autonomous agents on your terms · MIT · v0.11.3
11
11
  ```
12
12
 
13
13
  **BajaClaw is a long-running agent runtime for the `claude` CLI.** It turns
package/dist/claude.js CHANGED
@@ -64,6 +64,13 @@ export function buildCommand(prompt, opts) {
64
64
  args.push("--mcp-config", opts.mcpConfig);
65
65
  if (opts.systemPrompt)
66
66
  args.push("--system-prompt", opts.systemPrompt);
67
+ // Skip interactive permission prompts. BajaClaw spawns claude with
68
+ // stdin closed, so the interactive prompt would hang / auto-deny.
69
+ // The agent is trusted within the user's account; if they want
70
+ // per-tool confirmations they should use `claude` directly.
71
+ if (opts.skipPermissions !== false) {
72
+ args.push("--dangerously-skip-permissions");
73
+ }
67
74
  // JSON output always included when the flag is supported. runOnce checks support.
68
75
  return args;
69
76
  }
@@ -136,36 +143,98 @@ function parseResult(stdout, stderr, exitCode, start, jsonMode, command) {
136
143
  durationMs: Date.now() - start,
137
144
  command,
138
145
  };
139
- if (exitCode !== 0)
140
- base.error = stderr || `exit ${exitCode}`;
141
- if (!jsonMode)
142
- return base;
143
- try {
144
- const parsed = JSON.parse(stdout);
145
- if (Array.isArray(parsed))
146
- base.events = parsed;
147
- else if (parsed && typeof parsed === "object") {
148
- const obj = parsed;
149
- if (Array.isArray(obj.messages))
150
- base.events = obj.messages;
151
- if (typeof obj.result === "string")
152
- base.text = obj.result;
153
- if (typeof obj.total_cost_usd === "number")
154
- base.costUsd = obj.total_cost_usd;
155
- else if (typeof obj.cost_usd === "number")
156
- base.costUsd = obj.cost_usd;
157
- const usage = obj.usage;
158
- if (usage) {
159
- base.inputTokens = usage.input_tokens;
160
- base.outputTokens = usage.output_tokens;
146
+ // Try JSON parse regardless of exit code — claude sometimes emits
147
+ // useful error detail in JSON even when exiting non-zero.
148
+ if (jsonMode) {
149
+ try {
150
+ const parsed = JSON.parse(stdout);
151
+ if (Array.isArray(parsed)) {
152
+ base.events = parsed;
153
+ }
154
+ else if (parsed && typeof parsed === "object") {
155
+ const obj = parsed;
156
+ if (Array.isArray(obj.messages))
157
+ base.events = obj.messages;
158
+ if (typeof obj.result === "string")
159
+ base.text = obj.result;
160
+ if (typeof obj.total_cost_usd === "number")
161
+ base.costUsd = obj.total_cost_usd;
162
+ else if (typeof obj.cost_usd === "number")
163
+ base.costUsd = obj.cost_usd;
164
+ const usage = obj.usage;
165
+ if (usage) {
166
+ // Sum all input-side token classes so the displayed "in" count
167
+ // reflects the true scale the model processed. Cache reads are
168
+ // cheap but still count toward context.
169
+ base.inputTokens =
170
+ (usage.input_tokens ?? 0) +
171
+ (usage.cache_creation_input_tokens ?? 0) +
172
+ (usage.cache_read_input_tokens ?? 0);
173
+ base.outputTokens = usage.output_tokens;
174
+ }
175
+ if (typeof obj.num_turns === "number")
176
+ base.turns = obj.num_turns;
177
+ // Error extraction. Claude's result wrapper sets is_error:true
178
+ // for a handful of terminal conditions (max_turns, execution
179
+ // error, rate limit mid-run). Normalize each subtype into a
180
+ // clean, actionable message. Also force ok=false and clear
181
+ // base.text so the raw JSON never bleeds into the agent's
182
+ // "response".
183
+ if (typeof obj.error === "string") {
184
+ base.error = obj.error;
185
+ base.ok = false;
186
+ base.text = "";
187
+ }
188
+ else if (obj.type === "error" && typeof obj.message === "string") {
189
+ base.error = obj.message;
190
+ base.ok = false;
191
+ base.text = "";
192
+ }
193
+ else if (obj.is_error === true) {
194
+ const subtype = typeof obj.subtype === "string" ? obj.subtype : "";
195
+ const numTurns = typeof obj.num_turns === "number" ? obj.num_turns : undefined;
196
+ if (subtype === "error_max_turns") {
197
+ // Sentinel format. chat.ts pretty-prints; other callers
198
+ // see a short machine-parseable prefix.
199
+ base.error = `max_turns_hit:${numTurns ?? "?"}`;
200
+ }
201
+ else if (subtype === "error_during_execution") {
202
+ const detail = typeof obj.result === "string" ? obj.result : "";
203
+ base.error = `backend error during execution${detail ? `: ${detail}` : ""}`;
204
+ }
205
+ else if (typeof obj.result === "string") {
206
+ base.error = obj.result;
207
+ }
208
+ else if (subtype) {
209
+ base.error = `backend error (${subtype})`;
210
+ }
211
+ else {
212
+ base.error = "backend reported an error with no message";
213
+ }
214
+ base.ok = false;
215
+ base.text = "";
216
+ }
161
217
  }
162
- if (typeof obj.num_turns === "number")
163
- base.turns = obj.num_turns;
218
+ }
219
+ catch {
220
+ // Non-JSON stdout. Could be a streaming fragment or a warning.
221
+ // Leave text as raw stdout.
164
222
  }
165
223
  }
166
- catch {
167
- // Non-JSON stdout; leave text as-is.
224
+ if (exitCode !== 0 && !base.error) {
225
+ // Prefer stderr, then stdout first-line fallback. Never echo the
226
+ // entire stdout into the error field — it may be a multi-KB JSON.
227
+ const trimmedStderr = stderr.trim();
228
+ if (trimmedStderr)
229
+ base.error = trimmedStderr.slice(0, 400);
230
+ else if (stdout.trim())
231
+ base.error = stdout.trim().split("\n")[0].slice(0, 400);
232
+ else
233
+ base.error = `backend exited ${exitCode} with no output`;
168
234
  }
235
+ // If we determined an error from JSON but exit was 0, still mark not-ok.
236
+ if (base.error && base.ok)
237
+ base.ok = false;
169
238
  return base;
170
239
  }
171
240
  export function resetCache() {
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../src/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../src/claude.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,18 @@
1
- // `bajaclaw chat [profile]` — interactive REPL for conversing with an
2
- // agent turn-by-turn. Each user message runs one BajaClaw cycle.
3
- // Session history is injected into the next prompt's "Recent Chat"
4
- // section so the agent remembers within the session.
1
+ // `bajaclaw chat [profile]` — interactive REPL.
5
2
  //
6
- // Uses event-based readline (`on('line')`) rather than the promise
7
- // `.question()` API because the promise form had a habit of resolving
8
- // the outer chain in a way that let Node exit unexpectedly between
9
- // turns. The event-based loop explicitly keeps the interface live
10
- // until the user types /exit or hits Ctrl-D.
11
- import { createInterface } from "node:readline";
3
+ // Design notes:
4
+ // - Uses `readline/promises` with `.question()` in a `while` loop.
5
+ // Readline is only "active" while awaiting user input while the
6
+ // cycle runs, it's idle, so stdout writes don't fight with its
7
+ // terminal-mode redraw logic.
8
+ // - No animated spinner. A static "…is thinking…" line is written
9
+ // once and erased with cursor-up + clear-line (no `\r` writes,
10
+ // which would trigger readline's prompt-redraw behavior).
11
+ // - Each turn is fully sequential: read input → run cycle → print
12
+ // response → loop. No concurrent dispatch, no race conditions.
13
+ // - Errors are surfaced with friendly context. Raw `exit 1` is
14
+ // translated into actionable text.
15
+ import { createInterface } from "node:readline/promises";
12
16
  import { stdin, stdout } from "node:process";
13
17
  import chalk from "chalk";
14
18
  import { runCycle } from "../agent.js";
@@ -60,117 +64,117 @@ export async function runChat(opts) {
60
64
  const rl = createInterface({
61
65
  input: stdin,
62
66
  output: stdout,
63
- terminal: true,
64
- prompt: chalk.cyan("you › "),
65
- });
66
- rl.prompt();
67
- // Serial line processing: while a turn is running, incoming "line"
68
- // events are ignored (they just print another prompt). Prevents
69
- // stomping on an in-flight cycle.
70
- let busy = false;
71
- // Wrap the whole REPL in a promise that resolves on rl 'close'.
72
- // runChat awaits this promise, which keeps the Node event loop
73
- // alive for the duration of the chat session.
74
- await new Promise((resolve) => {
75
- const handleLine = async (line) => {
76
- if (busy) {
77
- rl.prompt();
78
- return;
79
- }
80
- busy = true;
81
- const input = line.trim();
82
- if (!input) {
83
- busy = false;
84
- rl.prompt();
85
- return;
86
- }
87
- try {
88
- if (input.startsWith("/")) {
89
- const action = await handleSlash(input, {
90
- profile: opts.profile,
91
- cfg,
92
- agentName,
93
- history,
94
- stats,
95
- getModel: () => modelOverride,
96
- setModel: (m) => { modelOverride = m; },
97
- });
98
- if (action === "exit") {
99
- rl.close();
100
- return;
101
- }
102
- busy = false;
103
- rl.prompt();
104
- return;
105
- }
106
- history.push({ role: "user", content: input, ts: Date.now() });
107
- const stopThinking = startThinking(agentName);
108
- let r;
109
- try {
110
- const recent = history.slice(-HISTORY_LIMIT - 1, -1);
111
- r = await runCycle({
112
- profile: opts.profile,
113
- task: input,
114
- modelOverride,
115
- sessionHistory: recent,
116
- });
117
- }
118
- finally {
119
- stopThinking();
120
- }
121
- if (!r.ok) {
122
- console.log(chalk.red(`${agentName} › `) + chalk.red(r.error ?? "(error)"));
123
- console.log("");
124
- history.pop();
125
- }
126
- else {
127
- console.log(chalk.green(`${agentName} › `) + r.text);
128
- console.log("");
129
- history.push({ role: "assistant", content: r.text, ts: Date.now() });
130
- stats.turnCount += 1;
131
- stats.inputTokens += r.inputTokens ?? 0;
132
- stats.outputTokens += r.outputTokens ?? 0;
133
- stats.costUsd += r.costUsd ?? 0;
134
- printStatusLine(r, cfg);
135
- }
136
- }
137
- catch (e) {
138
- console.log(chalk.red("error: ") + e.message);
139
- console.log("");
140
- }
141
- finally {
142
- busy = false;
143
- rl.prompt();
144
- }
145
- };
146
- rl.on("line", (line) => {
147
- // fire-and-forget; errors are caught inside handleLine
148
- void handleLine(line);
149
- });
150
- rl.on("close", () => {
151
- printSessionSummary(stats);
152
- resolve();
153
- });
154
67
  });
68
+ const youLabel = chalk.cyan("you › ");
69
+ // Main loop. One turn at a time, no concurrency.
70
+ while (true) {
71
+ let input;
72
+ try {
73
+ input = (await rl.question(youLabel)).trim();
74
+ }
75
+ catch {
76
+ break; // rl closed (EOF / Ctrl-D)
77
+ }
78
+ if (!input)
79
+ continue;
80
+ // Slash commands
81
+ if (input.startsWith("/")) {
82
+ const action = await handleSlash(input, {
83
+ profile: opts.profile,
84
+ cfg,
85
+ agentName,
86
+ history,
87
+ stats,
88
+ getModel: () => modelOverride,
89
+ setModel: (m) => { modelOverride = m; },
90
+ });
91
+ if (action === "exit")
92
+ break;
93
+ continue;
94
+ }
95
+ // Normal turn: run a cycle.
96
+ history.push({ role: "user", content: input, ts: Date.now() });
97
+ writeThinkingLine(agentName);
98
+ let r = null;
99
+ let caughtError = null;
100
+ try {
101
+ const recent = history.slice(-HISTORY_LIMIT - 1, -1);
102
+ r = await runCycle({
103
+ profile: opts.profile,
104
+ task: input,
105
+ modelOverride,
106
+ sessionHistory: recent,
107
+ });
108
+ }
109
+ catch (e) {
110
+ caughtError = e;
111
+ }
112
+ eraseThinkingLine();
113
+ if (caughtError) {
114
+ console.log(chalk.red(`${agentName} › `) + chalk.red(`error: ${caughtError.message}`));
115
+ console.log("");
116
+ history.pop();
117
+ continue;
118
+ }
119
+ if (!r || !r.ok) {
120
+ console.log(chalk.red(`${agentName} › `) + chalk.red(formatCycleError(r)));
121
+ console.log("");
122
+ history.pop();
123
+ continue;
124
+ }
125
+ const responseText = (r.text ?? "").trim() || chalk.dim("(empty response)");
126
+ console.log(chalk.green(`${agentName} › `) + responseText);
127
+ console.log("");
128
+ history.push({ role: "assistant", content: r.text ?? "", ts: Date.now() });
129
+ stats.turnCount += 1;
130
+ stats.inputTokens += r.inputTokens ?? 0;
131
+ stats.outputTokens += r.outputTokens ?? 0;
132
+ stats.costUsd += r.costUsd ?? 0;
133
+ printStatusLine(r, cfg);
134
+ }
135
+ rl.close();
136
+ printSessionSummary(stats);
155
137
  }
156
138
  // ───────────────────────────────────────────────────────────────
157
- // "thinking…" animationplain-text interval, no ora
139
+ // Thinking indicatorstatic, erased on response
158
140
  // ───────────────────────────────────────────────────────────────
159
- function startThinking(agentName) {
160
- let dots = 0;
161
- const render = () => {
162
- // clear line + move cursor to column 0, then write status
163
- const bar = ".".repeat((dots % 3) + 1).padEnd(3, " ");
164
- stdout.write(`\r\x1b[2K${chalk.dim(`${agentName} is thinking${bar}`)}`);
165
- dots += 1;
166
- };
167
- render();
168
- const timer = setInterval(render, 400);
169
- return () => {
170
- clearInterval(timer);
171
- // clear the line so the response starts clean
172
- stdout.write("\r\x1b[2K");
173
- };
141
+ function writeThinkingLine(agentName) {
142
+ stdout.write(chalk.dim(`${agentName} is thinking…\n`));
143
+ }
144
+ function eraseThinkingLine() {
145
+ // Cursor up one line, erase in line. Avoids `\r` which can trigger
146
+ // readline's prompt-redraw machinery.
147
+ stdout.write("\x1b[1A\x1b[2K");
148
+ }
149
+ // ───────────────────────────────────────────────────────────────
150
+ // Error formatting
151
+ // ───────────────────────────────────────────────────────────────
152
+ function formatCycleError(r) {
153
+ if (!r)
154
+ return "no response from backend";
155
+ const raw = (r.error ?? "").trim();
156
+ if (!raw)
157
+ return "backend returned no output";
158
+ // Max turns — translate claude.ts sentinel into a chat-friendly tip.
159
+ const maxTurnsMatch = raw.match(/^max_turns_hit:(\d+|\?)/);
160
+ if (maxTurnsMatch) {
161
+ const used = maxTurnsMatch[1];
162
+ return `ran out of turns (${used} used this cycle). The task needed more tool calls than the per-cycle budget. Try: (a) break it into smaller asks, (b) "/model opus" for a higher cap, or (c) just send the request again — the agent often finishes on retry.`;
163
+ }
164
+ if (/permission|needs write/i.test(raw)) {
165
+ return `backend wanted to use a tool that needs approval, and BajaClaw closes stdin. Fixed in v0.11.2+ via --dangerously-skip-permissions. If you're seeing this, update: npm install -g bajaclaw@latest`;
166
+ }
167
+ if (/rate[- ]?limit/i.test(raw)) {
168
+ return "rate-limited by Anthropic. Wait a few minutes and retry.";
169
+ }
170
+ if (/credit|quota|billing/i.test(raw)) {
171
+ return `${raw} — check your Anthropic plan at anthropic.com.`;
172
+ }
173
+ if (/^exit \d+$/i.test(raw)) {
174
+ return `backend exited (${raw}) with no detail. Check the profile log: bajaclaw daemon logs`;
175
+ }
176
+ // Fallback: first line + truncate. Never echo multi-KB JSON.
177
+ return raw.split("\n")[0].slice(0, 400);
174
178
  }
175
179
  // ───────────────────────────────────────────────────────────────
176
180
  // Header / status / summary
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -6,10 +6,11 @@ const DEFAULT = {
6
6
  // Override with a specific id to disable auto-selection.
7
7
  model: "auto",
8
8
  effort: "medium",
9
- // Capped low by default to keep token usage tight. Auto-picked tiers
10
- // further constrain turns per cycle. Bump explicitly for agents that
11
- // legitimately need long tool chains.
12
- maxTurns: 10,
9
+ // Generous default so complex multi-command tasks (setup flows,
10
+ // refactors, multi-file edits) complete without hitting the cap.
11
+ // The tier budget in src/model-picker.ts is the actual ceiling;
12
+ // this config is the floor.
13
+ maxTurns: 30,
13
14
  dashboardPort: 7337,
14
15
  memorySync: false,
15
16
  compaction: {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,OAAO,GAAyB;IACpC,mEAAmE;IACnE,yDAAyD;IACzD,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,QAAQ;IAChB,qEAAqE;IACrE,qEAAqE;IACrE,sCAAsC;IACtC,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE;QACV,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,EAAE;QACrB,cAAc,EAAE,EAAE;KACnB;CACF,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,cAAc,IAAI,2BAA2B,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAiB,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAgB;IACzC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAA6B;IAC1D,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAiB,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,OAAO,GAAyB;IACpC,mEAAmE;IACnE,yDAAyD;IACzD,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,QAAQ;IAChB,gEAAgE;IAChE,iEAAiE;IACjE,gEAAgE;IAChE,4BAA4B;IAC5B,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE;QACV,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,EAAE;QACrB,cAAc,EAAE,EAAE;KACnB;CACF,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,cAAc,IAAI,2BAA2B,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAiB,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAgB;IACzC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAA6B;IAC1D,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAiB,CAAC;AACnD,CAAC"}
@@ -45,16 +45,19 @@ export function tierFor(modelId) {
45
45
  return "haiku";
46
46
  return "sonnet";
47
47
  }
48
- // Context budgets per model tier. Tightened defaults for token economy.
48
+ // Context budgets per model tier. Generous turn caps so real work
49
+ // (multi-command setups, code refactors, research) doesn't truncate
50
+ // mid-task. Memory and skill counts are still tight to keep per-cycle
51
+ // prompts lean.
49
52
  export function budgetFor(tier) {
50
53
  switch (tier) {
51
54
  case "haiku":
52
- return { memoryCount: 3, memoryCharsEach: 180, skillCount: 1, maxTurns: 4 };
55
+ return { memoryCount: 3, memoryCharsEach: 180, skillCount: 1, maxTurns: 8 };
53
56
  case "opus":
54
- return { memoryCount: 7, memoryCharsEach: 280, skillCount: 3, maxTurns: 14 };
57
+ return { memoryCount: 7, memoryCharsEach: 280, skillCount: 3, maxTurns: 30 };
55
58
  case "sonnet":
56
59
  default:
57
- return { memoryCount: 5, memoryCharsEach: 220, skillCount: 2, maxTurns: 8 };
60
+ return { memoryCount: 5, memoryCharsEach: 220, skillCount: 2, maxTurns: 20 };
58
61
  }
59
62
  }
60
63
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"model-picker.js","sourceRoot":"","sources":["../src/model-picker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-picker.js","sourceRoot":"","sources":["../src/model-picker.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -11,6 +11,7 @@ export interface ClaudeOptions {
11
11
  printMode?: boolean;
12
12
  systemPrompt?: string;
13
13
  timeout?: number;
14
+ skipPermissions?: boolean;
14
15
  }
15
16
  export interface ClaudeResult {
16
17
  ok: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bajaclaw",
3
- "version": "0.11.1",
3
+ "version": "0.11.3",
4
4
  "description": "BajaClaw — autonomous agents on your terms",
5
5
  "type": "module",
6
6
  "bajaclaw": {
@@ -1,54 +1,107 @@
1
1
  ---
2
2
  name: setup-discord
3
- description: Walk the user through adding a Discord bot adapter to BajaClaw
4
- version: 0.1.0
3
+ description: Wire up a bidirectional Discord chat bridge between the user and the agent
4
+ version: 0.2.0
5
5
  tools: [Bash, Read, Write, Edit]
6
- triggers: ["setup discord", "help me with discord", "connect discord", "discord bot", "add discord", "discord setup"]
6
+ triggers: ["setup discord", "help me with discord", "connect discord", "discord bot", "add discord", "discord setup", "discord chat", "talk to you on discord"]
7
7
  effort: medium
8
8
  ---
9
9
 
10
- ## When to use
11
- The user asks you to connect Discord, wire up a Discord bot, route messages
12
- from a channel into BajaClaw, or reply from BajaClaw back to Discord.
13
-
14
- ## Quick reference
15
- - Adapter: `src/channels/gateway.ts`, uses `discord.js` (optional dep)
16
- - Token source: Discord Developer Portal → Applications → New Application →
17
- Bot Reset Token
18
- - Required bot intents: Guilds, GuildMessages, MessageContent, DirectMessages
19
- - Channel id: right-click a channel in Discord (Developer Mode on) →
20
- "Copy Channel ID"
21
-
22
- ## Procedure
23
- 1. Ask if the user already has a Discord bot token + invited the bot to
24
- their server.
25
- - If not: walk them to https://discord.com/developers/applications. Steps:
26
- New Application → Bot tab → Reset Token → copy. Under "Privileged Gateway
27
- Intents", enable "MESSAGE CONTENT INTENT". Under OAuth2 → URL Generator,
28
- tick `bot` + `applications.commands`, plus the message permissions,
29
- and visit the generated URL to add the bot to their server.
30
- 2. Ask for the channel id where the bot should listen (Discord Developer
31
- Mode must be on: Settings → Advanced → Developer Mode).
32
- 3. Ask for the user's numeric Discord user id (right-click own avatar →
33
- Copy User ID). This goes in the allowlist.
34
- 4. Run: `bajaclaw channel add <profile> discord --token <TOKEN> --channel-id <CHANNEL_ID>`
35
- 5. Edit `~/.bajaclaw/profiles/<profile>/config.json` and add the numeric
36
- user id to `channels[].allowlist` for the discord entry: `[<USER_ID>]`.
37
- 6. Start the gateway: `bajaclaw daemon start <profile>`.
38
- 7. Send a test message in the channel; expect it to appear as a task.
39
-
40
- ## Pitfalls
41
- - `npm install discord.js` if the dep is missing (optional).
42
- - The bot must be added to the server BEFORE it can read messages — OAuth2
43
- URL step is not optional.
44
- - Without the MessageContent intent enabled in the Developer Portal AND in
45
- the code (`discord.js` GatewayIntentBits.MessageContent), message bodies
46
- will be empty strings. The adapter already sets the intent; double-check
47
- the portal side.
48
- - DMs: set `channelId` to the user's DM channel id OR remove the
49
- `channelId` filter in the config to accept any channel the bot sees.
50
-
51
- ## Verification
52
- - `bajaclaw channel list <profile>` shows the discord entry.
53
- - Logs contain `gateway.discord.msg` entries after test messages.
54
- - `bajaclaw status <profile>` shows incremented pending-tasks count.
10
+ ## ⚠️ NON-NEGOTIABLE RULE: NEVER ASK "WHAT DO YOU WANT TO USE IT FOR?"
11
+
12
+ When the user says **anything** that triggers this skill "set up
13
+ discord", "connect discord", "discord bot", "talk to you on discord",
14
+ etc. the intent is **always the same**: a **two-way chat bridge**
15
+ so the user can message you in a Discord channel and you reply there.
16
+
17
+ You **must not** ask any of these:
18
+ - "What do you want to use Discord for?"
19
+ - "Notifications or something else?"
20
+ - "What should the bot do in the channel?"
21
+ - Any other meta-question about intent.
22
+
23
+ Just wire it up. If the user specifically says they want something
24
+ different, ADJUST then. Otherwise: collect credentials, run the
25
+ commands, confirm.
26
+
27
+ ## Execution plan
28
+
29
+ You have `Bash`, `Read`, `Write`, `Edit` tools. Permission prompts are
30
+ auto-approved. Do the work.
31
+
32
+ ### Step 1 Collect credentials from the user
33
+
34
+ Tell the user exactly three things:
35
+
36
+ ```
37
+ To wire up a Discord chat with me, I need three things. Steps:
38
+
39
+ 1) Go to https://discord.com/developers/applications
40
+ New Application → name it → create → "Bot" tab → Reset Token → copy.
41
+ Under "Privileged Gateway Intents", enable "MESSAGE CONTENT INTENT".
42
+
43
+ 2) In OAuth2 → URL Generator, tick `bot` + `applications.commands`
44
+ plus "Send Messages" + "Read Message History". Visit the generated
45
+ URL to add the bot to your server.
46
+
47
+ 3) In Discord, Settings → Advanced → Developer Mode ON.
48
+ Then right-click the channel you want the bot in Copy Channel ID.
49
+ And right-click your own avatar Copy User ID.
50
+
51
+ Paste the three values: bot token, channel id, your user id.
52
+ ```
53
+
54
+ Wait for all three. Don't proceed partial.
55
+
56
+ ### Step 2 — Wire the channel
57
+
58
+ ```bash
59
+ bajaclaw channel add <profile> discord --token <TOKEN> --channel-id <CHANNEL_ID>
60
+ ```
61
+
62
+ Then add the user id to the allowlist by editing
63
+ `~/.bajaclaw/profiles/<profile>/config.json`. Find the discord entry
64
+ under `channels[]` and set `allowlist: [<USER_ID>]` (as a number).
65
+
66
+ Verify:
67
+
68
+ ```bash
69
+ bajaclaw channel list <profile>
70
+ ```
71
+
72
+ ### Step 3 — Ensure the dep is present
73
+
74
+ ```bash
75
+ npm install -g discord.js
76
+ ```
77
+
78
+ ### Step 4 — Start the gateway
79
+
80
+ ```bash
81
+ bajaclaw daemon start <profile>
82
+ ```
83
+
84
+ ### Step 5 — Confirm and invite a test message
85
+
86
+ Say: "Done. Go to the channel you added me to and send any message —
87
+ I'll reply there."
88
+
89
+ ## Verification checklist
90
+
91
+ - `bajaclaw channel list <profile>` shows a `discord` entry with the
92
+ token masked and the allowlist containing the user id.
93
+ - `bajaclaw daemon status <profile>` shows `running`.
94
+ - A test message in the channel appears as `gateway.discord.msg` in
95
+ `bajaclaw daemon logs <profile> --lines 30`.
96
+ - The user sees the bot reply within ~10s.
97
+
98
+ ## Pitfalls (to anticipate, not pre-ask)
99
+
100
+ - If MESSAGE CONTENT INTENT is off in the portal, message bodies are
101
+ empty and the bot can't respond to content. Ask them to re-check
102
+ only if they report it's "not picking up messages."
103
+ - If the bot isn't in the server, the OAuth2 invite URL step was
104
+ missed — walk them through it if needed.
105
+ - To include DMs, remove the `channelId` filter from the config or
106
+ set it to the user's DM channel id.
107
+ - Don't echo the token back after it's in config.json.
@@ -1,54 +1,115 @@
1
1
  ---
2
2
  name: setup-telegram
3
- description: Walk the user through adding a Telegram bot adapter to BajaClaw
4
- version: 0.1.0
3
+ description: Wire up a bidirectional Telegram chat bridge between the user and the agent
4
+ version: 0.2.0
5
5
  tools: [Bash, Read, Write, Edit]
6
- triggers: ["setup telegram", "help me with telegram", "connect telegram", "telegram bot", "add telegram", "telegram setup"]
6
+ triggers: ["setup telegram", "help me with telegram", "connect telegram", "telegram bot", "add telegram", "telegram setup", "telegram chat", "message you on phone", "phone chat", "mobile chat"]
7
7
  effort: medium
8
8
  ---
9
9
 
10
- ## When to use
11
- The user asks you to connect Telegram, add a Telegram bot, forward DMs
12
- through a bot, or receive/send BajaClaw tasks over Telegram.
13
-
14
- ## Quick reference
15
- - Adapter: `src/channels/gateway.ts`, uses `node-telegram-bot-api` (optional dep)
16
- - Token source: Telegram's `@BotFather` `/newbot` → `/token`
17
- - Allowlist: the user's numeric Telegram user id (from `@userinfobot`)
18
- - Stored in: `~/.bajaclaw/profiles/<profile>/config.json` `channels[]`
19
-
20
- ## Procedure
21
- 1. Check for an existing token. Ask: "do you already have a Telegram bot token?"
22
- - If no: tell them to open Telegram, message `@BotFather`, send `/newbot`,
23
- pick a name and username. BotFather replies with a token shaped like
24
- `<digits>:<alphanumeric>`. Copy it.
25
- 2. Ask for their numeric Telegram user id. They can get it by messaging
26
- `@userinfobot`. Without this the allowlist is empty and no messages get
27
- through.
28
- 3. Run: `bajaclaw channel add <profile> telegram --token <TOKEN>` (replace
29
- `<profile>` with their active profile — default is `default`).
30
- 4. Edit `~/.bajaclaw/profiles/<profile>/config.json`. Inside
31
- `channels[0].allowlist`, put `[<NUMERIC_USER_ID>]`. Example:
32
- `"allowlist": [123456789]`
33
- 5. Start the gateway: `bajaclaw daemon start <profile>` (or a dedicated
34
- gateway subprocess if you're keeping the daemon off).
35
- 6. Ask the user to message their bot. Expect a new task to appear in
36
- `bajaclaw status <profile>` and a `gateway.telegram.msg` entry in the
37
- logs.
38
-
39
- ## Pitfalls
40
- - `npm install node-telegram-bot-api` in the BajaClaw install dir if the
41
- dependency is missing (it's an `optionalDependencies` entry).
42
- - Empty allowlist zero messages accepted. Confirm the id is present.
43
- - Bot cannot initiate a conversation the user must message the bot first
44
- OR the bot must be added to a group.
45
- - Never paste the token into a public log or chat. If it leaks, revoke via
46
- BotFather `/revoke`.
47
- - `bajaclaw uninstall` removes all channel configs as part of profile
48
- teardown.
49
-
50
- ## Verification
51
- - `bajaclaw channel list <profile>` shows the telegram entry.
52
- - `bajaclaw daemon logs <profile> --lines 50` includes `gateway.telegram.msg`
53
- after a test message.
54
- - `bajaclaw status <profile>` shows the pending-tasks counter rising.
10
+ ## ⚠️ NON-NEGOTIABLE RULE: NEVER ASK "WHAT DO YOU WANT TO USE IT FOR?"
11
+
12
+ When the user says **anything** that triggers this skill — "set up
13
+ telegram", "connect telegram", "telegram bot", "talk to you on my
14
+ phone", "message you from my phone", etc. — the intent is **always
15
+ the same**: a **two-way chat bridge** so the user can message you from
16
+ Telegram and you reply in the same thread.
17
+
18
+ You **must not** ask any of these:
19
+ - "What do you want to use Telegram for?"
20
+ - "Notifications, commands, or something else?"
21
+ - "What should this bot do?"
22
+ - Any other meta-question about intent.
23
+
24
+ The user already told you — they want to chat. Just wire it up.
25
+
26
+ If they specifically say they want something different (e.g.
27
+ "I want it for error alerts only"), ADJUST then. Otherwise: silence,
28
+ collect credentials, run the commands.
29
+
30
+ ## Execution plan
31
+
32
+ You have `Bash`, `Read`, `Write`, `Edit` tools. Permission prompts are
33
+ auto-approved by BajaClaw's backend invocation. Just do the work.
34
+
35
+ ### Step 1 Collect credentials from the user
36
+
37
+ Tell the user exactly two things to get:
38
+
39
+ ```
40
+ To wire up a Telegram chat with me, I need:
41
+
42
+ 1) A bot token from @BotFather
43
+ In Telegram, message @BotFather /newbot follow the prompts
44
+ copy the token (looks like 123456789:ABCdef...).
45
+
46
+ 2) Your numeric Telegram user ID from @userinfobot
47
+ Message @userinfobot copy the number it replies with.
48
+
49
+ Paste both here and I'll wire it up.
50
+ ```
51
+
52
+ Wait for the user to reply with the token + user id. Don't proceed
53
+ without both without the user id the allowlist is empty and no
54
+ messages will route through.
55
+
56
+ ### Step 2 — Wire the channel
57
+
58
+ Once you have both values, run:
59
+
60
+ ```bash
61
+ bajaclaw channel add <profile> telegram --token <TOKEN> --channel-id <USER_ID>
62
+ ```
63
+
64
+ Where `<profile>` is the currently active profile (default: `default`
65
+ unless BAJACLAW_PROFILE is set to something else in the environment).
66
+
67
+ Then verify:
68
+
69
+ ```bash
70
+ bajaclaw channel list <profile>
71
+ ```
72
+
73
+ ### Step 3 — Ensure the dep is present
74
+
75
+ The adapter uses `node-telegram-bot-api` (optional dependency). Check
76
+ if it's installed; if not, install it globally:
77
+
78
+ ```bash
79
+ npm install -g node-telegram-bot-api
80
+ ```
81
+
82
+ ### Step 4 — Start the gateway
83
+
84
+ ```bash
85
+ bajaclaw daemon start <profile>
86
+ ```
87
+
88
+ The daemon hosts the telegram adapter that polls for messages.
89
+
90
+ ### Step 5 — Confirm and invite the user to test
91
+
92
+ Say something like: "Done. Open Telegram, send any message to the bot
93
+ (it'll be named whatever you picked in @BotFather), and I'll reply."
94
+
95
+ ## Verification checklist
96
+
97
+ - `bajaclaw channel list <profile>` shows a `telegram` entry with the
98
+ token set (printed as `***…<last 4 chars>`) and the allowlist
99
+ containing the user's numeric id.
100
+ - `bajaclaw daemon status <profile>` shows `running`.
101
+ - Sending a message from Telegram lands in `bajaclaw daemon logs
102
+ <profile> --lines 30` as a `gateway.telegram.msg` entry.
103
+ - The user sees a reply in the Telegram thread (may take a few seconds
104
+ for the cycle to run on first message).
105
+
106
+ ## Pitfalls (to anticipate, not pre-ask)
107
+
108
+ - Bot cannot DM the user first — the user must message the bot first
109
+ OR add the bot to a group. Tell the user this only if they report
110
+ "I don't see anything happen."
111
+ - If the token is wrong: `gateway.telegram.error` will appear in the
112
+ daemon log within ~10 seconds. Ask them to re-check the token.
113
+ - Never echo the token back in the chat once it's in config.json.
114
+ - `bajaclaw uninstall --keep-data` preserves the channel config;
115
+ full uninstall removes it.