whale-igniter 1.3.7 → 1.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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,25 @@
1
+ # Changelog
2
+
3
+ All notable changes to Whale Igniter are documented here.
4
+
5
+ ## 1.4.0 - 2026-06-03
6
+
7
+ ### Added
8
+
9
+ - Local UI theme engine for generated landing pages, with Atlas, Harbor, and Aurora themes.
10
+ - `whale themes list` for browsing shipped themes.
11
+ - Capability-gated `whale ignite` splash with color, Unicode, and plain fallbacks.
12
+ - README Data & privacy section, generated-output ownership note, and font attribution.
13
+
14
+ ### Changed
15
+
16
+ - Generated landing CSS now emits theme-driven custom properties for color, typography, structure, interaction, and motion.
17
+ - Selene response cache writes now ensure `.whale/` is ignored in the target project's `.gitignore`.
18
+ - Reworded older brand-planning docs to avoid vague status language.
19
+
20
+ ### Verified
21
+
22
+ - Selene API keys are read from environment variables and used only in provider request headers.
23
+ - Selene cache stores response text under `.whale/selene/cache`; it does not store API keys.
24
+ - No font binaries are shipped.
25
+ - No telemetry or analytics code is present.
package/README.md CHANGED
@@ -43,6 +43,8 @@ my-app/
43
43
 
44
44
  The agent doesn't guess anymore. It reads.
45
45
 
46
+ Generated output belongs to you. Files created by Whale Igniter, including generated HTML, CSS, CLAUDE.md, AGENTS.md, wiki pages, and copied theme files, are yours to use and modify; they are not restricted by this project's MIT license.
47
+
46
48
  ---
47
49
 
48
50
  ## What agents can read — and write
@@ -148,6 +150,20 @@ whale selene describe src/components/Button.tsx
148
150
 
149
151
  ---
150
152
 
153
+ ## Data & privacy
154
+
155
+ Whale Igniter runs offline by default. Core flows such as themes, drift detection, wiki generation, MCP, and local project analysis do not require an API key and do not send project data over the network.
156
+
157
+ AI features are opt-in. When you enable Selene API mode, Whale sends the prompt and project context to the selected provider, Anthropic or OpenAI, under that provider's terms. You are responsible for reviewing context before sending it and for keeping secrets or sensitive data out of prompts.
158
+
159
+ API keys are read from environment variables only: `ANTHROPIC_API_KEY` or `OPENAI_API_KEY`. The key is used only in request headers, and Whale does not log it, write it to config, or persist it on disk.
160
+
161
+ Selene's local cache stores response text under `.whale/selene/cache` in the target project. It does not store API keys. Whale also ensures `.whale/` is ignored by the target project's `.gitignore` when writing Selene cache entries.
162
+
163
+ Whale Igniter has no telemetry or analytics.
164
+
165
+ ---
166
+
151
167
  ## Requirements
152
168
 
153
169
  - Node ≥ 20
@@ -155,6 +171,12 @@ whale selene describe src/components/Button.tsx
155
171
 
156
172
  ---
157
173
 
174
+ ## Credits
175
+
176
+ Brand assets reference JetBrains Mono (SIL Open Font License 1.1) and Special Elite (Apache License 2.0). No font binaries are shipped.
177
+
178
+ ---
179
+
158
180
  ## Links
159
181
 
160
182
  - Roadmap: [`docs/ROADMAP.md`](docs/ROADMAP.md)
@@ -44,6 +44,7 @@ export async function writeCache(target, model, prompt, text) {
44
44
  const key = cacheKey(model, prompt);
45
45
  const dir = path.join(target, CACHE_DIR_REL);
46
46
  await fs.ensureDir(dir);
47
+ await ensureWhaleGitignore(target);
47
48
  const entry = {
48
49
  key,
49
50
  model,
@@ -66,3 +67,13 @@ export async function clearCache(target) {
66
67
  }
67
68
  return removed;
68
69
  }
70
+ async function ensureWhaleGitignore(target) {
71
+ const gitignore = path.join(target, ".gitignore");
72
+ const entry = ".whale/";
73
+ const existing = (await fs.pathExists(gitignore)) ? await fs.readFile(gitignore, "utf8") : "";
74
+ const lines = existing.split(/\r?\n/).map((line) => line.trim());
75
+ if (lines.includes(entry))
76
+ return;
77
+ const prefix = existing.length > 0 && !existing.endsWith("\n") ? "\n" : "";
78
+ await fs.appendFile(gitignore, `${prefix}${entry}\n`, "utf8");
79
+ }
package/dist/ui/splash.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * 2. Unicode, no color — same layout, no color
7
7
  * 3. Plain — single ASCII line, no glyphs
8
8
  *
9
- * Rules: no chalk imports, no direct env var reads, no "premium".
9
+ * Rules: no chalk imports, no direct env var reads, no vague status copy.
10
10
  * Uses `capabilities()` from capabilities.js and `ui` atoms.
11
11
  */
12
12
  import { capabilities } from "./capabilities.js";
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const PACKAGE_VERSION = "1.3.7";
1
+ export const PACKAGE_VERSION = "1.4.0";
package/docs/ROADMAP.md CHANGED
@@ -85,7 +85,7 @@ reveals that the next plan needs revising, we revise it before shipping.
85
85
  - **Test coverage.** 44 unit tests + MCP smoke test that spawns the
86
86
  server and exercises real protocol calls end-to-end.
87
87
 
88
- ### v1.1 — Premium runtime UI
88
+ ### v1.1 — Polished runtime UI
89
89
 
90
90
  The terminal output became the product surface. Commands stopped reaching
91
91
  for chalk directly; every command now consumes a semantic UI layer where
@@ -96,7 +96,7 @@ pair) and the active theme decides what each intent looks like.
96
96
  with ASCII fallbacks), blocks (header, section, kv, panel, summary,
97
97
  next, ok/fail/warn/note), theme dispatcher. Commands import from `ui/`
98
98
  rather than chalk; chalk is now confined to the theme module.
99
- - **Single premium theme — graphite.** Cyan accent, charcoal grays, three
99
+ - **Single polished theme — graphite.** Cyan accent, charcoal grays, three
100
100
  text-hierarchy levels. Structure ready for v1.2's multi-theme without
101
101
  touching any command.
102
102
  - **Capability detection.** Auto-detects color and Unicode support; falls
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "whale-igniter",
3
- "version": "1.3.7",
3
+ "version": "1.4.0",
4
4
  "description": "CLI-first operational intelligence. Bootstraps and adopts AI-readable project context so agents like Claude Code, Codex and Cursor understand your design system from the first commit. Includes an MCP server, a file watcher, deterministic insights, and an opt-in AI bridge (Selene).",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -14,6 +14,7 @@
14
14
  "themes",
15
15
  "ui-references",
16
16
  "README.md",
17
+ "CHANGELOG.md",
17
18
  "LICENSE",
18
19
  "docs/ROADMAP.md"
19
20
  ],