claude-overnight 1.25.22 → 1.25.23

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.22";
1
+ export declare const VERSION = "1.25.23";
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.22";
2
+ export const VERSION = "1.25.23";
@@ -5,7 +5,7 @@
5
5
  // segfaults on some setups — the proxy inherits this bug).
6
6
  //
7
7
  // Update this list when Cursor adds/removes models. Run:
8
- // node ~/.local/share/cursor-agent/versions/*/index.js --list-models
8
+ // agent --list-models
9
9
  // to get the current list.
10
10
  //
11
11
  // The `priority` models always appear at the top of the picker in this order.
@@ -13,11 +13,19 @@
13
13
  // that isn't in this list goes into a "more..." sub-menu.
14
14
  import { modelDisplayName, formatContextWindow } from "./models.js";
15
15
  export const CURSOR_PRIORITY_MODELS = [
16
- { id: "composer-2", label: "composer-2", hint: "Cursor Composer 2 — latest, strongest Cursor model" },
16
+ { id: "claude-opus-4-7", label: "claude-opus-4-7", hint: "Claude Opus 4.7 — latest Anthropic flagship, best agentic coder" },
17
+ { id: "gpt-5.4", label: "gpt-5.4", hint: "GPT-5.4 — latest OpenAI flagship, 1M context" },
18
+ { id: "gemini-3.1-pro", label: "gemini-3.1-pro", hint: "Gemini 3.1 Pro — latest Google flagship" },
19
+ { id: "claude-sonnet-4-6", label: "claude-sonnet-4-6", hint: "Claude Sonnet 4.6 — best speed/intelligence balance" },
20
+ { id: "composer-2", label: "composer-2", hint: "Cursor Composer 2 — latest Cursor-native model" },
17
21
  { id: "auto", label: "auto", hint: "auto-delegates to the best available model" },
18
22
  ];
19
23
  export const CURSOR_KNOWN_MODELS = [
20
- { id: "composer", label: "composer", hint: "Cursor Composer — previous generation" },
24
+ { id: "composer-2-fast", label: "composer-2-fast", hint: "Cursor Composer 2 Fast faster, cheaper variant" },
25
+ { id: "composer-1.5", label: "composer-1.5", hint: "Cursor Composer 1.5 — previous generation" },
26
+ { id: "gpt-5.3-codex", label: "gpt-5.3-codex", hint: "Codex 5.3 — OpenAI's best agentic coder" },
27
+ { id: "grok-4-20", label: "grok-4-20", hint: "Grok 4.20 — xAI model" },
28
+ { id: "kimi-k2.5", label: "kimi-k2.5", hint: "Kimi K2.5 — Moonshot model" },
21
29
  ];
22
30
  /** All known model IDs as a Set for quick membership checks. */
23
31
  export const KNOWN_CURSOR_MODEL_IDS = new Set([
@@ -43,5 +51,9 @@ export function cursorModelHint(modelId) {
43
51
  return "Gemini model via Cursor";
44
52
  if (m.startsWith("grok"))
45
53
  return "Grok model via Cursor";
54
+ if (m.startsWith("kimi"))
55
+ return "Kimi model via Cursor";
56
+ if (m.startsWith("claude"))
57
+ return "Claude model via Cursor";
46
58
  return "Cursor model";
47
59
  }
package/dist/models.js CHANGED
@@ -19,20 +19,73 @@
19
19
  // Chroma hallucination study. "relaxed" = 95%+ on all three axes.
20
20
  export const MODEL_CAPABILITIES = {
21
21
  // ── Anthropic Claude (Apr 2026) ──
22
- // Opus: only model that earns "relaxed". 100% on 38-task routing, 95%+ IFEval.
22
+ // Opus 4.7: only model that earns "relaxed". 100% on 38-task routing, 95%+ IFEval.
23
+ // Step-change agentic coding over Opus 4.6. 1M tokens, 128K output.
23
24
  "claude-opus-4-7": { contextWindow: 1_000_000, safeContext: 400_000, contextConstraint: "relaxed", displayName: "Opus 4.7" },
24
- "claude-opus-4-6": { contextWindow: 1_000_000, safeContext: 400_000, contextConstraint: "relaxed", displayName: "Opus 4.6" },
25
- // Sonnet: good but loses thread more than Opus on autonomous multi-file work.
26
- "claude-sonnet-4-6": { contextWindow: 1_000_000, safeContext: 300_000, contextConstraint: "moderate", displayName: "Sonnet 4.6" },
27
- // Haiku: cheapest Claude. Skips steps more often. No 1M upgrade.
25
+ "claude-opus-4.7": { contextWindow: 1_000_000, safeContext: 400_000, contextConstraint: "relaxed", displayName: "Opus 4.7" },
26
+ "claude-opus-4-7-low": { contextWindow: 1_000_000, safeContext: 400_000, contextConstraint: "moderate", displayName: "Opus 4.7 Low" },
27
+ "claude-opus-4-7-medium": { contextWindow: 1_000_000, safeContext: 400_000, contextConstraint: "relaxed", displayName: "Opus 4.7 Medium" },
28
+ "claude-opus-4-7-high": { contextWindow: 1_000_000, safeContext: 400_000, contextConstraint: "relaxed", displayName: "Opus 4.7 High" },
29
+ "claude-opus-4-7-xhigh": { contextWindow: 1_000_000, safeContext: 400_000, contextConstraint: "relaxed", displayName: "Opus 4.7 Extra High" },
30
+ "claude-opus-4-7-max": { contextWindow: 1_000_000, safeContext: 400_000, contextConstraint: "relaxed", displayName: "Opus 4.7 Max" },
31
+ "claude-opus-4-7-thinking": { contextWindow: 1_000_000, safeContext: 400_000, contextConstraint: "relaxed", displayName: "Opus 4.7 Thinking" },
32
+ "claude-opus-4-7-thinking-low": { contextWindow: 1_000_000, safeContext: 400_000, contextConstraint: "moderate", displayName: "Opus 4.7 Low Thinking" },
33
+ "claude-opus-4-7-thinking-medium": { contextWindow: 1_000_000, safeContext: 400_000, contextConstraint: "relaxed", displayName: "Opus 4.7 Medium Thinking" },
34
+ "claude-opus-4-7-thinking-high": { contextWindow: 1_000_000, safeContext: 400_000, contextConstraint: "relaxed", displayName: "Opus 4.7 High Thinking" },
35
+ "claude-opus-4-7-thinking-xhigh": { contextWindow: 1_000_000, safeContext: 400_000, contextConstraint: "relaxed", displayName: "Opus 4.7 Extra High Thinking" },
36
+ "claude-opus-4-7-thinking-max": { contextWindow: 1_000_000, safeContext: 400_000, contextConstraint: "relaxed", displayName: "Opus 4.7 Max Thinking" },
37
+ // Sonnet 4.6: 200K context, tight constraint.
38
+ "claude-sonnet-4-6": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "tight", displayName: "Sonnet 4.6" },
39
+ "claude-sonnet-4.6": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "tight", displayName: "Sonnet 4.6" },
40
+ "claude-4.6-sonnet-medium": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "tight", displayName: "Sonnet 4.6 Medium" },
41
+ "claude-sonnet-4-6-thinking": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "tight", displayName: "Sonnet 4.6 Thinking" },
42
+ "claude-4.6-sonnet-medium-thinking": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "tight", displayName: "Sonnet 4.6 Medium Thinking" },
43
+ // Sonnet 4.5: 200K context.
44
+ "claude-sonnet-4-5": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "moderate", displayName: "Sonnet 4.5" },
45
+ "claude-sonnet-4.5": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "moderate", displayName: "Sonnet 4.5" },
46
+ "claude-4.5-sonnet": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "moderate", displayName: "Sonnet 4.5" },
47
+ "claude-sonnet-4-5-thinking": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "moderate", displayName: "Sonnet 4.5 Thinking" },
48
+ "claude-4.5-sonnet-thinking": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "moderate", displayName: "Sonnet 4.5 Thinking" },
49
+ // Claude 4 Opus/Sonnet (original): deprecated June 2026. 200K context.
50
+ "claude-opus-4": { contextWindow: 200_000, safeContext: 80_000, contextConstraint: "moderate", displayName: "Opus 4.0" },
51
+ "claude-sonnet-4": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "moderate", displayName: "Sonnet 4.0" },
52
+ "claude-4-sonnet": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "moderate", displayName: "Sonnet 4" },
53
+ "claude-4-sonnet-1m": { contextWindow: 1_000_000, safeContext: 300_000, contextConstraint: "moderate", displayName: "Sonnet 4 1M" },
54
+ "claude-sonnet-4-thinking": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "moderate", displayName: "Sonnet 4 Thinking" },
55
+ "claude-4-sonnet-thinking": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "moderate", displayName: "Sonnet 4 Thinking" },
56
+ "claude-4-sonnet-1m-thinking": { contextWindow: 1_000_000, safeContext: 300_000, contextConstraint: "moderate", displayName: "Sonnet 4 1M Thinking" },
57
+ // Haiku 4.5: cheapest Claude. 200K context, near-frontier smarts.
28
58
  "claude-haiku-4-5": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "moderate", displayName: "Haiku 4.5" },
29
59
  "claude-haiku-4-5-20251001": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "moderate", displayName: "Haiku 4.5" },
60
+ "claude-haiku-4-6": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "moderate", displayName: "Haiku 4.6" },
61
+ "claude-haiku-4": { contextWindow: 200_000, safeContext: 60_000, contextConstraint: "moderate", displayName: "Haiku 4" },
30
62
  // ── OpenAI (Apr 2026 — GPT-4.1/o3/o4-mini retired Feb 2026) ──
31
63
  // GPT-5.4: current flagship. 1M context, 128K output. Good but literal.
32
64
  "gpt-5.4": { contextWindow: 1_050_000, safeContext: 300_000, contextConstraint: "moderate", displayName: "GPT-5.4" },
33
- "gpt-5.4-mini": { contextWindow: 1_050_000, safeContext: 200_000, contextConstraint: "moderate", displayName: "GPT-5.4 Mini" },
65
+ "gpt-5.4-low": { contextWindow: 1_050_000, safeContext: 300_000, contextConstraint: "moderate", displayName: "GPT-5.4 Low" },
66
+ "gpt-5.4-medium": { contextWindow: 1_050_000, safeContext: 300_000, contextConstraint: "moderate", displayName: "GPT-5.4 Medium" },
67
+ "gpt-5.4-medium-fast": { contextWindow: 1_050_000, safeContext: 300_000, contextConstraint: "moderate", displayName: "GPT-5.4 Fast" },
68
+ "gpt-5.4-high": { contextWindow: 1_050_000, safeContext: 300_000, contextConstraint: "moderate", displayName: "GPT-5.4 High" },
69
+ "gpt-5.4-high-fast": { contextWindow: 1_050_000, safeContext: 300_000, contextConstraint: "moderate", displayName: "GPT-5.4 High Fast" },
70
+ "gpt-5.4-xhigh": { contextWindow: 1_050_000, safeContext: 300_000, contextConstraint: "moderate", displayName: "GPT-5.4 Extra High" },
71
+ "gpt-5.4-xhigh-fast": { contextWindow: 1_050_000, safeContext: 300_000, contextConstraint: "moderate", displayName: "GPT-5.4 Extra High Fast" },
72
+ "gpt-5.4-mini": { contextWindow: 1_050_000, safeContext: 200_000, contextConstraint: "tight", displayName: "GPT-5.4 Mini" },
73
+ "gpt-5.4-mini-low": { contextWindow: 1_050_000, safeContext: 200_000, contextConstraint: "tight", displayName: "GPT-5.4 Mini Low" },
74
+ "gpt-5.4-mini-medium": { contextWindow: 1_050_000, safeContext: 200_000, contextConstraint: "tight", displayName: "GPT-5.4 Mini" },
75
+ "gpt-5.4-mini-high": { contextWindow: 1_050_000, safeContext: 200_000, contextConstraint: "tight", displayName: "GPT-5.4 Mini High" },
76
+ "gpt-5.4-mini-xhigh": { contextWindow: 1_050_000, safeContext: 200_000, contextConstraint: "tight", displayName: "GPT-5.4 Mini Extra High" },
34
77
  // Codex 5.3: best agentic coder from OpenAI. 400K context, 128K output.
35
78
  "gpt-5.3-codex": { contextWindow: 400_000, safeContext: 160_000, contextConstraint: "moderate", displayName: "Codex 5.3" },
79
+ "gpt-5.3-codex-low": { contextWindow: 400_000, safeContext: 160_000, contextConstraint: "moderate", displayName: "Codex 5.3 Low" },
80
+ "gpt-5.3-codex-high": { contextWindow: 400_000, safeContext: 160_000, contextConstraint: "moderate", displayName: "Codex 5.3 High" },
81
+ "gpt-5.3-codex-xhigh": { contextWindow: 400_000, safeContext: 160_000, contextConstraint: "moderate", displayName: "Codex 5.3 Extra High" },
82
+ "gpt-5.3-codex-fast": { contextWindow: 400_000, safeContext: 160_000, contextConstraint: "moderate", displayName: "Codex 5.3 Fast" },
83
+ // Older OpenAI
84
+ "gpt-5.2": { contextWindow: 400_000, safeContext: 160_000, contextConstraint: "moderate", displayName: "GPT-5.2" },
85
+ "gpt-5.2-codex": { contextWindow: 400_000, safeContext: 160_000, contextConstraint: "moderate", displayName: "Codex 5.2" },
86
+ "gpt-5.1": { contextWindow: 400_000, safeContext: 160_000, contextConstraint: "moderate", displayName: "GPT-5.1" },
87
+ "gpt-5": { contextWindow: 400_000, safeContext: 160_000, contextConstraint: "moderate", displayName: "GPT-5" },
88
+ "gpt-5.1-codex-mini": { contextWindow: 400_000, safeContext: 160_000, contextConstraint: "moderate", displayName: "Codex 5.1 Mini" },
36
89
  // ── Google Gemini 3 (Apr 2026 — Gemini 2.5 deprecated June 2026) ──
37
90
  // Large context but terrible at agentic coding: 13.5% SWE-bench (vs Sonnet 31.2%).
38
91
  // Good for reading lots of code, bad at following through. Needs surgical tasks.
@@ -40,6 +93,11 @@ export const MODEL_CAPABILITIES = {
40
93
  "gemini-3-pro": { contextWindow: 1_000_000, safeContext: 350_000, contextConstraint: "tight", displayName: "Gemini 3 Pro" },
41
94
  // Flash: 8.2% SWE-bench. Essentially unusable for autonomous agent work.
42
95
  "gemini-3-flash": { contextWindow: 1_000_000, safeContext: 250_000, contextConstraint: "tight", displayName: "Gemini 3 Flash" },
96
+ // ── xAI Grok ──
97
+ "grok-4-20": { contextWindow: 256_000, safeContext: 80_000, contextConstraint: "moderate", displayName: "Grok 4.20" },
98
+ "grok-4-20-thinking": { contextWindow: 256_000, safeContext: 80_000, contextConstraint: "moderate", displayName: "Grok 4.20 Thinking" },
99
+ // ── Moonshot ──
100
+ "kimi-k2.5": { contextWindow: 128_000, safeContext: 40_000, contextConstraint: "tight", displayName: "Kimi K2.5" },
43
101
  // ── DeepSeek V3.2 (Apr 2026 — V3/R1 superseded, V4 not yet out) ──
44
102
  "deepseek-chat": { contextWindow: 128_000, safeContext: 40_000, contextConstraint: "tight", displayName: "DeepSeek V3.2" },
45
103
  "deepseek-reasoner": { contextWindow: 128_000, safeContext: 45_000, contextConstraint: "moderate", displayName: "DeepSeek V3.2 Reasoner" },
@@ -50,7 +108,9 @@ export const MODEL_CAPABILITIES = {
50
108
  // ── Cursor models (opaque routing) ──
51
109
  "auto": { contextWindow: 256_000, safeContext: 60_000, contextConstraint: "moderate", displayName: "Cursor Auto" },
52
110
  "composer-2": { contextWindow: 200_000, safeContext: 40_000, contextConstraint: "tight", displayName: "Composer 2" },
111
+ "composer-2-fast": { contextWindow: 200_000, safeContext: 40_000, contextConstraint: "tight", displayName: "Composer 2 Fast" },
53
112
  "composer": { contextWindow: 128_000, safeContext: 30_000, contextConstraint: "tight", displayName: "Composer" },
113
+ "composer-1.5": { contextWindow: 128_000, safeContext: 30_000, contextConstraint: "tight", displayName: "Composer 1.5" },
54
114
  // ── Qwen (Apr 2026 — qwen3.6-plus is newest flagship) ──
55
115
  "qwen3.6-plus": { contextWindow: 1_000_000, safeContext: 200_000, contextConstraint: "moderate", displayName: "Qwen 3.6 Plus" },
56
116
  "qwen3-coder-plus": { contextWindow: 1_000_000, safeContext: 200_000, contextConstraint: "moderate", displayName: "Qwen 3 Coder Plus" },
@@ -30,9 +30,7 @@ export interface PlannerOpts {
30
30
  */
31
31
  maxTurns?: number;
32
32
  /**
33
- * Tools the planner agent may use. Defaults to read-only + Write (for outFile
34
- * resilience). Deliberately excludes Bash/Agent/TodoWrite/WebFetch to prevent
35
- * the multi-turn tool loops that cause error_max_turns with thinking models.
33
+ * Tools the planner agent may use. Defaults to the full Claude tool suite.
36
34
  */
37
35
  tools?: string[];
38
36
  }
@@ -2,6 +2,7 @@ import { query } from "@anthropic-ai/claude-agent-sdk";
2
2
  import { readFileSync } from "fs";
3
3
  import { NudgeError } from "./types.js";
4
4
  import { writeTranscriptEvent } from "./transcripts.js";
5
+ const DEFAULT_TOOLS = ["Read", "Glob", "Grep", "Write", "Bash", "WebFetch", "WebSearch", "TodoWrite", "Agent"];
5
6
  const DEFAULT_MAX_TURNS = 20;
6
7
  // ── Shared env resolver (set once at run start, used by every planner query) ──
7
8
  //
@@ -144,8 +145,8 @@ async function runPlannerQueryOnce(prompt, opts, onLog) {
144
145
  options: {
145
146
  cwd: opts.cwd,
146
147
  model: opts.model,
147
- tools: opts.tools ?? ["Read", "Glob", "Grep", "Write"],
148
- allowedTools: opts.tools ?? ["Read", "Glob", "Grep", "Write"],
148
+ tools: opts.tools ?? DEFAULT_TOOLS,
149
+ allowedTools: opts.tools ?? DEFAULT_TOOLS,
149
150
  permissionMode: opts.permissionMode,
150
151
  ...(opts.permissionMode === "bypassPermissions" && { allowDangerouslySkipPermissions: true }),
151
152
  persistSession: true,
package/dist/providers.js CHANGED
@@ -124,6 +124,29 @@ export function envFor(p) {
124
124
  // SDK replaces env for subprocesses — force these so nothing inherits a bad CI / skip flag.
125
125
  base.CI = "true";
126
126
  base.CURSOR_SKIP_KEYCHAIN = "1";
127
+ // Bridge mode controls the agent behavior: "plan" enables tool use (Read,
128
+ // Glob, Grep, Write, Bash), "ask" gives a chat-only assistant. Planner
129
+ // agents and workers must use "plan" so they actually interact with the codebase.
130
+ base.CURSOR_BRIDGE_MODE = "plan";
131
+ // Use system Node.js for agent subprocess to avoid macOS segfaults with
132
+ // bundled Node.js. Resolve lazily — same logic as startProxyProcess().
133
+ if (!base.CURSOR_AGENT_NODE || !base.CURSOR_AGENT_SCRIPT) {
134
+ try {
135
+ const sysNode = execSync("which node 2>/dev/null", { timeout: 2_000, encoding: "utf-8", shell: "bash" }).trim();
136
+ const agentPath = execSync("command -v agent 2>/dev/null || command -v cursor-agent 2>/dev/null", {
137
+ timeout: 2_000, encoding: "utf-8", shell: "bash",
138
+ }).trim();
139
+ if (sysNode && agentPath) {
140
+ const agentDir = dirname(realpathSync(agentPath));
141
+ const indexPath = `${agentDir}/index.js`;
142
+ if (existsSync(indexPath)) {
143
+ base.CURSOR_AGENT_NODE = sysNode;
144
+ base.CURSOR_AGENT_SCRIPT = indexPath;
145
+ }
146
+ }
147
+ }
148
+ catch { }
149
+ }
127
150
  return base;
128
151
  }
129
152
  const key = resolveKey(p);
@@ -878,6 +901,9 @@ async function startProxyProcess(baseUrl, url, port) {
878
901
  // the CLI path injects keychain-shim-inject.js via NODE_OPTIONS which no-ops
879
902
  // /usr/bin/security calls on macOS (cursor-composer/dist/lib/process.js).
880
903
  CURSOR_BRIDGE_USE_ACP: "0",
904
+ // Default bridge mode: "plan" enables tool use (Read, Glob, Grep, Write, Bash).
905
+ // "ask" gives a chat-only assistant that doesn't interact with the codebase.
906
+ CURSOR_BRIDGE_MODE: "plan",
881
907
  // cursor-composer chat-only mode fakes HOME to a temp dir; on macOS the agent still waits on
882
908
  // Keychain (~30s) for `cursor-user` despite CURSOR_API_KEY. Use the real workspace profile.
883
909
  CURSOR_BRIDGE_CHAT_ONLY_WORKSPACE: "false",
@@ -905,6 +931,7 @@ async function startProxyProcess(baseUrl, url, port) {
905
931
  childEnv: {
906
932
  CI: proxyEnv.CI,
907
933
  CURSOR_SKIP_KEYCHAIN: proxyEnv.CURSOR_SKIP_KEYCHAIN,
934
+ CURSOR_BRIDGE_MODE: proxyEnv.CURSOR_BRIDGE_MODE,
908
935
  CURSOR_BRIDGE_USE_ACP: proxyEnv.CURSOR_BRIDGE_USE_ACP,
909
936
  CURSOR_BRIDGE_CHAT_ONLY_WORKSPACE: proxyEnv.CURSOR_BRIDGE_CHAT_ONLY_WORKSPACE,
910
937
  CURSOR_API_KEY: "(set)",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-overnight",
3
- "version": "1.25.22",
3
+ "version": "1.25.23",
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": {
@@ -17,7 +17,7 @@
17
17
  "dependencies": {
18
18
  "@anthropic-ai/claude-agent-sdk": "^0.2.92",
19
19
  "chalk": "^5.4.1",
20
- "cursor-composer-in-claude": "0.9.0",
20
+ "cursor-composer-in-claude": "0.9.1",
21
21
  "jsonwebtoken": "^9.0.2"
22
22
  },
23
23
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-overnight",
3
- "version": "1.25.22",
3
+ "version": "1.25.23",
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"