wavebrain-cursor 0.3.0 → 0.4.0

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,5 +1,5 @@
1
1
  name: wavebrain
2
- version: 0.3.0
2
+ version: 0.4.0
3
3
  description: "WaveBrain: records your agent's deploys, pushes, releases, emails, payments and other real-world actions to its audit log, even when the model forgets to call log_action."
4
4
  author: Tambo Labs
5
5
  homepage: https://getwavebrain.com
@@ -39,7 +39,8 @@ export function loadConfig(env = process.env) {
39
39
  cfg = JSON.parse(fs.readFileSync(path.join(home(env), "config.json"), "utf8"));
40
40
  } catch {}
41
41
  return {
42
- apiKey: env.WAVEBRAIN_API_KEY || cfg.apiKey || null,
42
+ // Claude Code plugin: the key from the plugin's own prompt, stored in the system keychain.
43
+ apiKey: env.WAVEBRAIN_API_KEY || env.CLAUDE_PLUGIN_OPTION_API_KEY || cfg.apiKey || null,
43
44
  apiUrl: env.WAVEBRAIN_API_URL || cfg.apiUrl || DEFAULT_API_URL,
44
45
  enabled: env.WAVEBRAIN_HOOKS !== "off" && cfg.autoCapture !== false,
45
46
  };
package/lib/cli.mjs CHANGED
@@ -6,10 +6,11 @@ import { loadState, ownedBy, saveState, statePath } from "./state.mjs";
6
6
  import { stageCapture, unstageCapture } from "./capture.mjs";
7
7
  import { KEY_ENV, allTargets, targetById, tilde } from "./targets.mjs";
8
8
 
9
- export const VERSION = "0.3.0";
9
+ export const VERSION = "0.4.0";
10
10
  const DEFAULT_URL = "https://getwavebrain.com/api/mcp";
11
11
  const SETUP_URL = "https://getwavebrain.com/dashboard/setup";
12
12
 
13
+ // Internal multi-agent entry, used by tests; the published installers go through harness.mjs.
13
14
  const HELP = `wavebrain ${VERSION}: connect your AI agents to WaveBrain (https://getwavebrain.com)
14
15
 
15
16
  Usage:
@@ -195,7 +196,10 @@ export async function init(o, ctx, io) {
195
196
 
196
197
  if (!o.dryRun) saveState(ctx, state);
197
198
  if (nextSteps.length) io.out(`\nNext:\n${nextSteps.map((s) => ` ${s}`).join("\n")}`);
198
- if (!o.dryRun && session.changes.some((c) => c.backup)) io.out(`\nBackups end in .bak-wavebrain. Undo with: ${o.undo ?? "npx wavebrain remove"}`);
199
+ if (!o.dryRun && session.changes.length) {
200
+ const backups = session.changes.some((c) => c.backup) ? "Backups end in .bak-wavebrain. " : "";
201
+ io.out(`\n${backups}Undo with: ${o.undo ?? "npx wavebrain remove"}`);
202
+ }
199
203
  return failed ? 1 : 0;
200
204
  }
201
205
 
package/lib/harness.mjs CHANGED
@@ -1,5 +1,5 @@
1
- // One installer per agent harness: wavebrain-claude-code, wavebrain-codex, wavebrain-cursor and
2
- // wavebrain-hermes. Each is a thin front end over the shared engine in cli.mjs, limited to its
1
+ // Installers for the agents with no plugin marketplace that covers WaveBrain: wavebrain-cursor and
2
+ // wavebrain-hermes (Claude Code and Codex install the plugin from their own marketplaces). Each is a thin front end over the shared engine in cli.mjs, limited to its
3
3
  // own agent's targets, with install / uninstall / status.
4
4
 
5
5
  import { UsageError, VERSION, defaultCtx, defaultIo, init, pick, remove, status } from "./cli.mjs";
@@ -10,18 +10,6 @@ const SETUP_URL = "https://getwavebrain.com/dashboard/setup";
10
10
 
11
11
  /** The harness installers. `targets(ctx, o, io)` returns the engine targets to act on. */
12
12
  export const HARNESSES = {
13
- "claude-code": {
14
- label: "Claude Code",
15
- gets: "the WaveBrain MCP server, auto-capture hooks and a when-to-log skill",
16
- options: ` --no-claude-permission Don't pre-approve WaveBrain's tools (mcp__wavebrain__*), so
17
- narrow --allowedTools runs (claude -p) can't log`,
18
- targets: (ctx) => [targetById(ctx, "claude-code")],
19
- },
20
- codex: {
21
- label: "Codex CLI",
22
- gets: "the WaveBrain MCP server, auto-capture hooks and a when-to-log skill",
23
- targets: (ctx) => [targetById(ctx, "codex")],
24
- },
25
13
  cursor: {
26
14
  label: "Cursor",
27
15
  gets: "the WaveBrain MCP server and auto-capture hooks",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wavebrain-cursor",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Connect Cursor to WaveBrain: MCP server and auto-capture hooks.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -25,7 +25,7 @@
25
25
  "homepage": "https://getwavebrain.com",
26
26
  "repository": {
27
27
  "type": "git",
28
- "url": "git+https://github.com/GuillermoCoding/wavebrain.git",
28
+ "url": "git+https://github.com/tambo-ai-labs/wavebrain.git",
29
29
  "directory": "packages/cursor"
30
30
  },
31
31
  "license": "UNLICENSED"