leedab 0.2.5 → 0.2.6

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/bin/leedab.js CHANGED
@@ -174,10 +174,34 @@ program
174
174
  .option("-c, --config <path>", "Path to config file", resolve(STATE_DIR, "config.json"))
175
175
  .option("-p, --dashboard-port <port>", "Dashboard port", "3000")
176
176
  .action(async (opts) => {
177
+ const startupMessages = [
178
+ "Loading skills...",
179
+ "Waking up the agent...",
180
+ "Connecting channels...",
181
+ "Warming up the model...",
182
+ "Syncing memory...",
183
+ "Checking in with the gateway...",
184
+ "Polishing the SOUL...",
185
+ "Calibrating heartbeat...",
186
+ "Reading the workspace...",
187
+ "Tuning the agent's instincts...",
188
+ "Pouring the coffee...",
189
+ "Almost there...",
190
+ ];
177
191
  const spinner = ora("Starting LeedAB agent...").start();
192
+ let lastIdx = -1;
193
+ const rotate = setInterval(() => {
194
+ let next;
195
+ do {
196
+ next = Math.floor(Math.random() * startupMessages.length);
197
+ } while (next === lastIdx && startupMessages.length > 1);
198
+ lastIdx = next;
199
+ spinner.text = startupMessages[next];
200
+ }, 4500);
178
201
  try {
179
202
  const config = await loadConfig(opts.config);
180
203
  const { logPath } = await startGateway(config);
204
+ clearInterval(rotate);
181
205
  spinner.succeed(chalk.green("LeedAB is live"));
182
206
  await startDashboard(config, parseInt(opts.dashboardPort));
183
207
 
@@ -198,6 +222,7 @@ program
198
222
  console.log(chalk.dim(` Logs: ${logPath}`));
199
223
  console.log();
200
224
  } catch (err) {
225
+ clearInterval(rotate);
201
226
  spinner.fail(chalk.red(`Failed to start: ${err.message}`));
202
227
  process.exit(1);
203
228
  }
package/dist/gateway.js CHANGED
@@ -198,16 +198,17 @@ async function seedWorkspace() {
198
198
  console.warn("[leedab] workspace seed failed:", err);
199
199
  }
200
200
  }
201
- async function waitForGateway(port, timeoutMs = 20000) {
201
+ async function waitForGateway(port, timeoutMs = 90000) {
202
202
  const bin = resolveOpenClawBin();
203
203
  const stateDir = STATE_DIR;
204
204
  const start = Date.now();
205
205
  while (Date.now() - start < timeoutMs) {
206
206
  try {
207
- // Use openclaw's own health check which knows the WS protocol
207
+ // Use openclaw's own health check which knows the WS protocol.
208
+ // Child timeout must exceed openclaw CLI cold-start time (~15s).
208
209
  await execFileAsync(bin, ["gateway", "health"], {
209
210
  env: openclawEnv(stateDir),
210
- timeout: 5000,
211
+ timeout: 30000,
211
212
  });
212
213
  return;
213
214
  }
@@ -12,7 +12,7 @@ const PROVIDERS = [
12
12
  name: "Anthropic (Claude)", value: "anthropic", flag: "--anthropic-api-key", envVar: "ANTHROPIC_API_KEY",
13
13
  defaultModelIndex: 1,
14
14
  models: [
15
- { name: "Claude Opus 4.6 — most capable", value: "claude-opus-4-6", openclaw: "anthropic/claude-opus-4-6" },
15
+ { name: "Claude Opus 4.7 — most capable", value: "claude-opus-4-7", openclaw: "anthropic/claude-opus-4-7" },
16
16
  { name: "Claude Sonnet 4.6 — fast, capable (recommended)", value: "claude-sonnet-4-6", openclaw: "anthropic/claude-sonnet-4-6" },
17
17
  { name: "Claude Haiku 4.5 — fastest, cheapest", value: "claude-haiku-4-5", openclaw: "anthropic/claude-haiku-4-5" },
18
18
  ],
@@ -55,7 +55,7 @@ const PROVIDERS = [
55
55
  defaultModelIndex: 0,
56
56
  models: [
57
57
  { name: "Claude Sonnet 4.6 via Bedrock", value: "anthropic.claude-sonnet-4-6", openclaw: "anthropic/claude-sonnet-4-6" },
58
- { name: "Claude Opus 4.6 via Bedrock", value: "anthropic.claude-opus-4-6", openclaw: "anthropic/claude-opus-4-6" },
58
+ { name: "Claude Opus 4.7 via Bedrock", value: "anthropic.claude-opus-4-7", openclaw: "anthropic/claude-opus-4-7" },
59
59
  { name: "Claude Haiku 4.5 via Bedrock", value: "anthropic.claude-haiku-4-5", openclaw: "anthropic/claude-haiku-4-5" },
60
60
  ],
61
61
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "leedab",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "LeedAB — Your enterprise AI agent. Local-first, private by default.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": "LeedAB <hello@leedab.com>",
@@ -31,7 +31,7 @@
31
31
  "conf": "^13.0.0",
32
32
  "grammy": "^1.41.1",
33
33
  "inquirer": "^12.11.1",
34
- "openclaw": "^2026.3.31",
34
+ "openclaw": "2026.4.15",
35
35
  "ora": "^8.1.0"
36
36
  },
37
37
  "devDependencies": {