claude-overnight 1.25.18 → 1.25.19

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.
@@ -1 +1 @@
1
- export declare const VERSION = "1.25.18";
1
+ export declare const VERSION = "1.25.19";
package/dist/_version.js CHANGED
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by build — do not edit manually.
2
- export const VERSION = "1.25.18";
2
+ export const VERSION = "1.25.19";
@@ -174,23 +174,34 @@ async function runPlannerQueryOnce(prompt, opts, onLog) {
174
174
  sessionId = msg.session_id;
175
175
  if (msg.type === "stream_event") {
176
176
  const ev = msg.event;
177
- if (ev?.type === "content_block_start" && ev.content_block?.type === "tool_use") {
178
- toolCount++;
179
- const toolName = ev.content_block.name;
180
- const input = ev.content_block.input;
181
- // Enrich event with target file/path for readability
182
- const target = input?.path ?? input?.file_path ?? input?.command
183
- ? (typeof input?.command === "string" ? input.command.split(" ").slice(0, 3).join(" ") : "")
184
- : "";
185
- lastLogText = target ? `${toolName} ${target}` : toolName;
186
- onLog(target ? `${toolName} → ${target}` : toolName, "event");
177
+ if (ev?.type === "content_block_start") {
178
+ const cb = ev.content_block;
179
+ if (cb?.type === "tool_use") {
180
+ toolCount++;
181
+ const toolName = cb.name;
182
+ const input = cb.input;
183
+ // Enrich event with target file/path for readability
184
+ const target = input?.path ?? input?.file_path ?? input?.command
185
+ ? (typeof input?.command === "string" ? input.command.split(" ").slice(0, 3).join(" ") : "")
186
+ : "";
187
+ lastLogText = target ? `${toolName} ${target}` : toolName;
188
+ onLog(target ? `${toolName} → ${target}` : toolName, "event");
189
+ }
190
+ else if (cb?.type === "thinking" || cb?.type === "redacted_thinking") {
191
+ lastLogText = "thinking…";
192
+ }
187
193
  }
188
194
  if (ev?.type === "content_block_delta") {
189
195
  const delta = ev.delta;
190
- if (delta?.type === "text_delta" && delta.text) {
191
- const snippet = delta.text.trim().replace(/[{}"\\,[\]]+/g, " ").replace(/\s+/g, " ").trim();
196
+ // thinking_delta carries reasoning text under `delta.thinking`;
197
+ // text_delta carries final-answer text under `delta.text`.
198
+ const raw = delta?.type === "text_delta" ? delta.text
199
+ : delta?.type === "thinking_delta" ? delta.thinking
200
+ : undefined;
201
+ if (typeof raw === "string" && raw) {
202
+ const snippet = raw.trim().replace(/[{}"\\,[\]]+/g, " ").replace(/\s+/g, " ").trim();
192
203
  if (snippet.length > 5)
193
- lastLogText = snippet.slice(0, 60);
204
+ lastLogText = snippet.slice(-60);
194
205
  }
195
206
  }
196
207
  }
package/dist/planner.js CHANGED
@@ -180,7 +180,15 @@ export async function planTasks(objective, cwd, plannerModel, workerModel, permi
180
180
  return tasks;
181
181
  }
182
182
  export async function identifyThemes(objective, count, cwd, model, permissionMode, onLog = () => { }) {
183
- const resultText = await runPlannerQuery(`Split this objective into exactly ${count} independent research angles for architects exploring a codebase. Each angle should cover a distinct aspect.\n\nObjective: ${objective}\n\nReturn ONLY a JSON object: {"themes": ["angle description", ...]}`, { cwd, model, permissionMode, outputFormat: THEMES_SCHEMA }, onLog);
183
+ const resultText = await runPlannerQuery(`You are picking ${count} research angles for architects who will deeply explore a codebase next.
184
+
185
+ First do a BRIEF recon (3-6 tool calls max, don't go deep): read package.json and README if present, glob the top-level directory, peek at one or two config files that reveal the stack. You are learning what this codebase actually IS -- not solving anything.
186
+
187
+ Then pick ${count} angles that carve up THIS specific codebase orthogonally. Prefer concrete subsystems you saw (e.g. "authentication + session handling", "time-tracking mutation paths") over generic buckets ("data layer", "UX").
188
+
189
+ Objective: ${objective}
190
+
191
+ Return ONLY a JSON object: {"themes": ["angle description", ...]}`, { cwd, model, permissionMode, outputFormat: THEMES_SCHEMA }, onLog);
184
192
  const parsed = attemptJsonParse(resultText);
185
193
  if (parsed?.themes && Array.isArray(parsed.themes))
186
194
  return parsed.themes.slice(0, count);
package/dist/swarm.js CHANGED
@@ -734,13 +734,20 @@ export class Swarm {
734
734
  const target = input?.path ?? input?.file_path ?? (typeof input?.command === "string" ? input.command.split(" ").slice(0, 3).join(" ") : "");
735
735
  this.log(agent.id, target ? `${cb.name} \u2192 ${target}` : cb.name);
736
736
  }
737
+ else if (cb?.type === "thinking" || cb?.type === "redacted_thinking") {
738
+ agent.lastText = "thinking…";
739
+ }
737
740
  }
738
741
  else if (ev.type === "content_block_delta") {
739
742
  const delta = ev.delta;
740
- if (delta?.type === "text_delta" && delta.text) {
741
- const t = delta.text.trim();
743
+ // thinking_delta: `delta.thinking`; text_delta: `delta.text`.
744
+ const raw = delta?.type === "text_delta" ? delta.text
745
+ : delta?.type === "thinking_delta" ? delta.thinking
746
+ : undefined;
747
+ if (typeof raw === "string") {
748
+ const t = raw.trim();
742
749
  if (t)
743
- agent.lastText = t.slice(0, 80);
750
+ agent.lastText = t.slice(-80);
744
751
  }
745
752
  }
746
753
  break;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-overnight",
3
- "version": "1.25.18",
3
+ "version": "1.25.19",
4
4
  "description": "Parallel Claude agents in git worktrees with a usage cap that reserves headroom for your interactive Claude Code. Crash-safe resume. Provider-agnostic model catalog (Anthropic, Cursor, OpenAI, Gemini, DeepSeek, Llama, Qwen) with capability-based task scoping.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-overnight",
3
- "version": "1.25.18",
3
+ "version": "1.25.19",
4
4
  "description": "Claude Code skill for understanding, installing, and inspecting claude-overnight runs -- parallel Claude agents in git worktrees with thinking waves, multi-wave steering, and crash-safe resume. Supports Cursor API Proxy, Qwen, OpenRouter.",
5
5
  "author": {
6
6
  "name": "Francesco Fornace"