@aui.io/apollo 0.1.25 → 0.1.26

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@aui.io/apollo-cli",
3
- "version": "0.1.25",
3
+ "version": "0.1.26",
4
4
  "description": "Command-line client for the Apollo runtime",
5
5
  "type": "module",
6
6
  "engines": {
@@ -28,12 +28,12 @@
28
28
  "test": "vitest run"
29
29
  },
30
30
  "dependencies": {
31
- "@aui.io/apollo-core": "0.1.25",
31
+ "@aui.io/apollo-core": "0.1.26",
32
32
  "commander": "^14.0.3",
33
33
  "picocolors": "^1.1.1"
34
34
  },
35
35
  "optionalDependencies": {
36
- "@aui.io/apollo-tui": "0.1.25"
36
+ "@aui.io/apollo-tui": "0.1.26"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@eslint/js": "^9.39.5",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aui.io/apollo-core",
3
- "version": "0.1.25",
3
+ "version": "0.1.26",
4
4
  "description": "Shared Apollo console core — API clients, config, and services",
5
5
  "type": "module",
6
6
  "engines": {
@@ -2566,7 +2566,7 @@ function App({ context: initialContext, initialScope, onQuit }) {
2566
2566
  retryOperation(op);
2567
2567
  else
2568
2568
  setActivityCursor(index);
2569
- } })) : mode === "author" ? (authorViewEffective === "home" ? (_jsx(AuthorHome, { scope: scope, snapshot: snapshot, validation: validation, version: VERSION, paneTitle: paneTitle, paneLines: paneLines, resources: resourcesSummary(resourcesData), scenarios: scenariosSummary(scenariosData), session: authorSession, sessionRows: sessionRowsView, sessionCursor: clampPickerCursor(sessionCursor, authorSession?.units.length ?? 0), sessionScrollRef: contentScrollRef, sessionUnitRefs: sessionUnitRefs, backendLabel: authorBackend.label, backendDetection: backendDetection, splashRoomy: termWidth >= 90 && termHeight >= 28, onSelectUnit: (unit) => {
2569
+ } })) : mode === "author" ? (authorViewEffective === "home" ? (_jsx(AuthorHome, { scope: scope, snapshot: snapshot, validation: validation, version: VERSION, paneTitle: paneTitle, paneLines: paneLines, resources: resourcesSummary(resourcesData), scenarios: scenariosSummary(scenariosData), session: authorSession, sessionRows: sessionRowsView, sessionCursor: clampPickerCursor(sessionCursor, authorSession?.units.length ?? 0), sessionScrollRef: contentScrollRef, sessionUnitRefs: sessionUnitRefs, backendLabel: authorBackend.label, backendDetection: backendDetection, splashRoomy: termWidth >= 90 && termHeight >= 30, onSelectUnit: (unit) => {
2570
2570
  const clamped = clampPickerCursor(sessionCursor, authorSession?.units.length ?? 0);
2571
2571
  // Click selects; clicking the selected unit toggles its body.
2572
2572
  if (unit === clamped)
@@ -2,11 +2,15 @@ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
2
2
  /**
3
3
  * Welcome splash card — the boxed wordmark atop Author's setup screen.
4
4
  *
5
- * On unicode + color terminals the mark plays the ignite/aurora sequence,
6
- * and on roomy terminals it sits inside the thinking neural field (frame
7
- * math in ui/wordmark.ts; this component only ticks a counter). Everywhere
8
- * else NO_COLOR, APOLLO_GLYPHS=ascii, bare consolesit stays the static
9
- * card the TUI has always shown, so the render-check fallback pass and the
5
+ * On unicode + color terminals the card plays the "waking mind" cinematic:
6
+ * a seed of light grows a synapse constellation, the word assembles from
7
+ * particles streaming out of the core, a shockwave detonates as it locks,
8
+ * and the canvas then lives onthought pulses, orbiting satellites,
9
+ * sonar pings, and an EEG wave strip under the mark (frame math in
10
+ * ui/wordmark.ts; this component only ticks a counter). Roomy terminals
11
+ * get the full neural field; narrow ones a compact cut. Everywhere else —
12
+ * NO_COLOR, APOLLO_GLYPHS=ascii, bare consoles — it stays the static card
13
+ * the TUI has always shown, so the render-check fallback pass and the
10
14
  * monochrome guarantee are untouched.
11
15
  */
12
16
  import { useEffect, useState } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"SplashCard.js","sourceRoot":"","sources":["../../../src/ui/SplashCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SplashCard.js","sourceRoot":"","sources":["../../../src/ui/SplashCard.tsx"],"names":[],"mappings":"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"}
@@ -1,29 +1,40 @@
1
1
  /**
2
- * Splash wordmark animation — pure frame math for the welcome card's block
3
- * "apollo" mark. The component (ui/SplashCard.tsx) ticks a frame counter on
4
- * an interval; everything visible derives deterministically from that number
5
- * here (hash-based, no Math.random), so the whole sequence is unit-testable
6
- * without a renderer and identical across runs.
2
+ * Splash "waking mind" animation — pure frame math for the welcome card's
3
+ * block "apollo" mark. The component (ui/SplashCard.tsx) ticks a frame
4
+ * counter on an interval; everything visible derives deterministically from
5
+ * that number here (hash-based, no Math.random), so the whole sequence is
6
+ * unit-testable without a renderer and identical across runs.
7
7
  *
8
- * Two layouts share the same phases:
8
+ * Two layouts share the same cinematic:
9
9
  *
10
- * compact (44 wide) — the mark, its reflection, and twinkling gutter stars
11
- * field (64 wide) — the mark suspended in a thinking neural field: a
12
- * constellation of synapse nodes joined by dotted
13
- * links, firing pulses that travel the graph, pass
14
- * behind the word, and feed it through five ports —
15
- * letters surge with light as each thought arrives
10
+ * compact (44 wide) — the seed, the particle assembly, orbiting
11
+ * satellites, the EEG wave strip, and twinkling
12
+ * gutter stars around the mark
13
+ * field (72 wide) — the full cortex: dendrites grow a synapse
14
+ * constellation out of the seed, thought pulses
15
+ * travel the graph and feed the word through ports,
16
+ * satellites orbit the mark, sonar pings sweep the
17
+ * canvas, and a code-rain whispers at the edges
16
18
  *
17
- * The shared sequence:
19
+ * The sequence (one tick = 80ms):
18
20
  *
19
- * ignite — columns materialize left→right out of half-block static,
20
- * each cell flashing bright as it snaps into place; the
21
- * field wakes only after the mark has settled
22
- * aurora — a diagonal light band sweeps the mark every few seconds,
23
- * alternating direction, its crest cycling mint ice
24
- * violet; field pulses carry the active crest color
25
- * reflection a mirrored, rippling echo of the mark's bottom row
26
- * decode the subtitle types on through cycling static
21
+ * seed f0–2 a single point of light pulses alone in the dark
22
+ * genesis f3–14 (field) dendrites shoot from the seed; each synapse
23
+ * node ignites the moment its filament arrives, then
24
+ * the scaffolding fades and the constellation remains
25
+ * assembly f3–31 letters stream out of the seed as bright particles,
26
+ * condense through half-block static, and flash into
27
+ * place left right the mind speaks the word
28
+ * shock f30–… a ring of light detonates from the word across the
29
+ * canvas; the border catches it as it passes
30
+ * alive f38+ aurora sweeps (mint → ice → violet), thought pulses
31
+ * with easing heads and fading tails, counter-orbiting
32
+ * satellites that pass behind the word, sonar pings
33
+ * every ~9s, a live EEG wave under the word that
34
+ * spikes as thoughts arrive, rare amber "insight"
35
+ * flashes, and one-frame glitch shimmers of light
36
+ * across the letters
37
+ * decode f10+ the subtitle types on through cycling static
27
38
  *
28
39
  * Colors are hex literals on the theme's teal axis (#4fb8b0 = TEAL,
29
40
  * #2e6b66 = TEAL_DIM): the animated path only runs on unicode + color
@@ -35,18 +46,18 @@ export declare const TICK_MS = 80;
35
46
  /** Compact card outer width (narrow terminals). */
36
47
  export declare const CARD_WIDTH = 44;
37
48
  /** Neural-field card outer width (roomy terminals). */
38
- export declare const CARD_WIDTH_FIELD = 64;
49
+ export declare const CARD_WIDTH_FIELD = 72;
39
50
  /** One run of same-colored cells on a splash row. */
40
51
  export interface Chunk {
41
52
  text: string;
42
53
  fg: string;
43
54
  }
44
55
  export interface SplashFrame {
45
- /** Compact: mark rows + reflection. Field: the full six-row canvas. */
56
+ /** Compact: mark rows + EEG wave. Field: the full nine-row canvas. */
46
57
  rows: Chunk[][];
47
- /** Card border — breathes near TEAL_DIM, catching the band at the edges. */
58
+ /** Card border — breathes near TEAL_DIM, catching sweeps and shockwaves. */
48
59
  border: string;
49
- /** Version line tone: faint during ignition, settles to dim. */
60
+ /** Version line tone: faint during assembly, settles to dim. */
50
61
  version: string;
51
62
  /** Decoding subtitle: [locked, forming, caret cell, pad]. Constant width. */
52
63
  subtitle: Chunk[];
@@ -54,10 +65,10 @@ export interface SplashFrame {
54
65
  /**
55
66
  * The splash's own glyph face: 4×6-pixel letters (4 cols × 3 half-block
56
67
  * rows) covering what "apollo" needs. @opentui/core's tiny face is only two
57
- * rows tall — at card size the word read as a thin ribbon, and the aurora
58
- * and reflection could overwhelm it. Heavier full-block strokes keep the
59
- * word legible while the effects play. Only MIRROR-alphabet characters are
60
- * used, so the reflection stays a faithful vertical flip (asserted in
68
+ * rows tall — at card size the word read as a thin ribbon, and the effects
69
+ * would overwhelm it. Heavier full-block strokes keep the word legible
70
+ * while the show plays. Only block elements (▀▄█) are used, so the face
71
+ * renders wherever the wave strip and scramble static do (asserted in
61
72
  * tests/wordmark.test.ts).
62
73
  */
63
74
  export declare const APOLLO_CHARS: Readonly<Record<string, readonly string[]>>;
@@ -1,29 +1,40 @@
1
1
  /**
2
- * Splash wordmark animation — pure frame math for the welcome card's block
3
- * "apollo" mark. The component (ui/SplashCard.tsx) ticks a frame counter on
4
- * an interval; everything visible derives deterministically from that number
5
- * here (hash-based, no Math.random), so the whole sequence is unit-testable
6
- * without a renderer and identical across runs.
2
+ * Splash "waking mind" animation — pure frame math for the welcome card's
3
+ * block "apollo" mark. The component (ui/SplashCard.tsx) ticks a frame
4
+ * counter on an interval; everything visible derives deterministically from
5
+ * that number here (hash-based, no Math.random), so the whole sequence is
6
+ * unit-testable without a renderer and identical across runs.
7
7
  *
8
- * Two layouts share the same phases:
8
+ * Two layouts share the same cinematic:
9
9
  *
10
- * compact (44 wide) — the mark, its reflection, and twinkling gutter stars
11
- * field (64 wide) — the mark suspended in a thinking neural field: a
12
- * constellation of synapse nodes joined by dotted
13
- * links, firing pulses that travel the graph, pass
14
- * behind the word, and feed it through five ports —
15
- * letters surge with light as each thought arrives
10
+ * compact (44 wide) — the seed, the particle assembly, orbiting
11
+ * satellites, the EEG wave strip, and twinkling
12
+ * gutter stars around the mark
13
+ * field (72 wide) — the full cortex: dendrites grow a synapse
14
+ * constellation out of the seed, thought pulses
15
+ * travel the graph and feed the word through ports,
16
+ * satellites orbit the mark, sonar pings sweep the
17
+ * canvas, and a code-rain whispers at the edges
16
18
  *
17
- * The shared sequence:
19
+ * The sequence (one tick = 80ms):
18
20
  *
19
- * ignite — columns materialize left→right out of half-block static,
20
- * each cell flashing bright as it snaps into place; the
21
- * field wakes only after the mark has settled
22
- * aurora — a diagonal light band sweeps the mark every few seconds,
23
- * alternating direction, its crest cycling mint ice
24
- * violet; field pulses carry the active crest color
25
- * reflection a mirrored, rippling echo of the mark's bottom row
26
- * decode the subtitle types on through cycling static
21
+ * seed f0–2 a single point of light pulses alone in the dark
22
+ * genesis f3–14 (field) dendrites shoot from the seed; each synapse
23
+ * node ignites the moment its filament arrives, then
24
+ * the scaffolding fades and the constellation remains
25
+ * assembly f3–31 letters stream out of the seed as bright particles,
26
+ * condense through half-block static, and flash into
27
+ * place left right the mind speaks the word
28
+ * shock f30–… a ring of light detonates from the word across the
29
+ * canvas; the border catches it as it passes
30
+ * alive f38+ aurora sweeps (mint → ice → violet), thought pulses
31
+ * with easing heads and fading tails, counter-orbiting
32
+ * satellites that pass behind the word, sonar pings
33
+ * every ~9s, a live EEG wave under the word that
34
+ * spikes as thoughts arrive, rare amber "insight"
35
+ * flashes, and one-frame glitch shimmers of light
36
+ * across the letters
37
+ * decode f10+ the subtitle types on through cycling static
27
38
  *
28
39
  * Colors are hex literals on the theme's teal axis (#4fb8b0 = TEAL,
29
40
  * #2e6b66 = TEAL_DIM): the animated path only runs on unicode + color
@@ -35,32 +46,35 @@ export const TICK_MS = 80;
35
46
  /** Compact card outer width (narrow terminals). */
36
47
  export const CARD_WIDTH = 44;
37
48
  /** Neural-field card outer width (roomy terminals). */
38
- export const CARD_WIDTH_FIELD = 64;
49
+ export const CARD_WIDTH_FIELD = 72;
39
50
  const INNER_COMPACT = CARD_WIDTH - 2;
40
51
  const INNER_FIELD = CARD_WIDTH_FIELD - 2;
41
52
  const SCRAMBLE = "▖▗▘▝▚▞";
42
53
  const DECODE = "░▒∙·";
43
- /** Vertical mirror for half-block glyphs the reflection's alphabet. */
44
- const MIRROR = {
45
- "▀": "▄",
46
- "▄": "▀",
47
- "▘": "▖",
48
- "▖": "▘",
49
- "▝": "▗",
50
- "▗": "▝",
51
- "▚": "▞",
52
- "▞": "▚",
53
- "█": "█",
54
- };
55
- /** Crest color per sweep — mint, ice, violet, then around again. */
54
+ /** EEG wave levels, quiet → spike (block eighths render wherever ▀▄█ do). */
55
+ const WAVE_GLYPHS = "▁▂▃▄▅▆▇";
56
+ /** Crest color per aurora sweep — mint, ice, violet, then around again. */
56
57
  const AURORA = ["#f2fffd", "#bfe8ff", "#d9c9ff"];
58
+ // The dark→bright ramp the show draws with. Everything below DIM_T is
59
+ // "chrome" — the word and the moving lights get the bright half.
60
+ const BG = "#143430"; // blank-cell tone (keeps chunk runs merged)
61
+ const TROUGH = "#0f2a27"; // EEG at rest
62
+ const GHOST = "#16413c"; // faintest chrome: link dots, rain tails, ring echoes
63
+ const FAINT_T = "#1b4a45"; // pulse tails, orbital wake
64
+ const IDLE = "#1f524d"; // idle synapse ring, rain heads
65
+ const DIM_T = "#2e6b66"; // = TEAL_DIM token
66
+ const MID_T = "#3e938c"; // border breathe high, wave spikes
67
+ const BASE_T = "#4fb8b0"; // = TEAL token
68
+ const MINT = "#8ff2e9"; // highlights, pulse heads, satellite
69
+ const HOT = "#f2fffd"; // flashes, impacts, the seed
70
+ const EMBER = "#ffd9a0"; // rare insight flash — the only warm accent
57
71
  /**
58
72
  * The splash's own glyph face: 4×6-pixel letters (4 cols × 3 half-block
59
73
  * rows) covering what "apollo" needs. @opentui/core's tiny face is only two
60
- * rows tall — at card size the word read as a thin ribbon, and the aurora
61
- * and reflection could overwhelm it. Heavier full-block strokes keep the
62
- * word legible while the effects play. Only MIRROR-alphabet characters are
63
- * used, so the reflection stays a faithful vertical flip (asserted in
74
+ * rows tall — at card size the word read as a thin ribbon, and the effects
75
+ * would overwhelm it. Heavier full-block strokes keep the word legible
76
+ * while the show plays. Only block elements (▀▄█) are used, so the face
77
+ * renders wherever the wave strip and scramble static do (asserted in
64
78
  * tests/wordmark.test.ts).
65
79
  */
66
80
  export const APOLLO_CHARS = {
@@ -70,24 +84,34 @@ export const APOLLO_CHARS = {
70
84
  L: ["█ ", "█ ", "█▄▄▄"],
71
85
  " ": [" ", " ", " "],
72
86
  };
73
- const IGNITE_SPAN = 14; // frames for the ignition front to cross the mark
74
- const LEAD = 4; // scramble frames before a cell snaps into place
87
+ // Timeline (frames). The intro runs ~2.6s, then the canvas lives forever.
88
+ const SEED_DELAY = 12; // seed pulses alone before letters stream out
89
+ const IGNITE_SPAN = 14; // frames for the birth front to cross the mark
90
+ const FLIGHT = 9; // pre-birth runway: particle flight, then static
91
+ const LEAD = 4; // condensing static frames before a cell snaps
75
92
  const FLASH = 2; // bright frames as it snaps
76
- const TYPE_START = 6; // subtitle decoding begins mid-ignition
93
+ const ASSEMBLY_END = SEED_DELAY + IGNITE_SPAN + 3 + FLASH + 1; // bbox seals
94
+ const SEED_END = SEED_DELAY + Math.round(IGNITE_SPAN / 2) + 2; // word swallows it
95
+ const SHOCK_AT = ASSEMBLY_END - 2; // shockwave as the last cells land
96
+ const TYPE_START = 10; // subtitle decoding begins mid-assembly
77
97
  const CARET_BLINKS = 24; // frames the caret lingers after the line locks
78
- const WAVE_START = 26; // first aurora sweep begins after ignition settles
98
+ const WAVE_START = 38; // first aurora sweep after the shock clears
79
99
  const WAVE_PERIOD = 44; // frames from one sweep start to the next
80
100
  const WAVE_LEN = 22; // frames a sweep takes to cross the mark
81
101
  const SPARK_PERIOD = 16; // one glint window per period, most stay empty
102
+ const PING_PERIOD = 110; // sonar ping of the living mind (~9s)
103
+ const ORBIT_PERIOD = 56; // satellite lap time (~4.5s)
104
+ const INSIGHT_PERIOD = 128; // one amber node flash per window (~10s)
105
+ const GLITCH_PERIOD = 48; // glitch shimmer window (1 in 4 fire, 2 frames)
82
106
  const REST = 0.35; // gradient position of the resting base (= TEAL)
83
107
  // Neural field geometry and rhythm.
84
- const FIELD_ROWS_TOP = 2; // canvas rows above the mark
85
- const FIELD_ROWS_BOTTOM = 1; // canvas rows below the reflection
86
- const NODE_COUNT = 12;
87
- const LINK_COUNT = 7;
108
+ const FIELD_ROWS_TOP = 3; // canvas rows above the mark
109
+ const FIELD_ROWS_BOTTOM = 2; // canvas rows below the wave strip
110
+ const NODE_COUNT = 14;
111
+ const LINK_COUNT = 9;
88
112
  const PULSE_TRAVEL = 18; // frames a pulse takes to cross its link
89
- const NODES_WAKE = 16; // nodes fade in as ignition ends
90
- const LINKS_WAKE = 20; // constellation dots follow
113
+ const DENDRITES_START = 3; // filaments grow after the seed's first pulse
114
+ const LINKS_WAKE = 18; // constellation dots + code rain follow ignition
91
115
  const PULSES_WAKE = WAVE_START; // thoughts start with the first sweep
92
116
  /** Deterministic 32-bit hash — the animation's only source of "randomness". */
93
117
  function hash(n) {
@@ -150,7 +174,7 @@ export function wordGrid(word, chars) {
150
174
  /** Frame when the cell at (row, col) snaps from static to its real glyph. */
151
175
  function birthAt(row, col, cols) {
152
176
  const sweep = Math.round((col / Math.max(cols - 1, 1)) * IGNITE_SPAN);
153
- return sweep + (hash(col * 31 + row * 17) % 4);
177
+ return SEED_DELAY + sweep + (hash(col * 31 + row * 17) % 4);
154
178
  }
155
179
  /** Merge a cell run into chunks; spaces adopt the current color to merge. */
156
180
  function toChunks(cells) {
@@ -181,7 +205,7 @@ function fieldNodes(rows, colsTotal, excluded) {
181
205
  const y = hash(i * 43 + attempt * 89 + 7) % rows;
182
206
  if (excluded(x, y))
183
207
  continue;
184
- if (nodes.some((n) => Math.abs(n.x - x) + Math.abs(n.y - y) * 3 < 6))
208
+ if (nodes.some((n) => Math.abs(n.x - x) + Math.abs(n.y - y) * 3 < 7))
185
209
  continue;
186
210
  placed = { x, y };
187
211
  }
@@ -193,14 +217,20 @@ function fieldNodes(rows, colsTotal, excluded) {
193
217
  /** Compute one full frame of the splash from a tick counter. */
194
218
  export function splashFrame(frame, grid, subtitle, field = false) {
195
219
  const inner = field ? INNER_FIELD : INNER_COMPACT;
220
+ const gridRows = grid.length;
196
221
  const cols = grid.reduce((w, line) => Math.max(w, line.length), 0);
197
222
  const leftPad = Math.max(Math.floor((inner - cols) / 2), 0);
198
- const rightPad = Math.max(inner - cols - leftPad, 0);
223
+ const markTop = field ? FIELD_ROWS_TOP : 0;
224
+ const waveRow = markTop + gridRows;
225
+ const canvasRows = waveRow + 1 + (field ? FIELD_ROWS_BOTTOM : 0);
226
+ // The seed — where the word streams out of, and every ring's origin.
227
+ const cx = leftPad + (cols - 1) / 2;
228
+ const cy = markTop + (gridRows - 1) / 2;
199
229
  // Aurora band: alternating direction, crest color cycling per sweep.
200
230
  const sweepIdx = frame >= WAVE_START ? Math.floor((frame - WAVE_START) / WAVE_PERIOD) : -1;
201
231
  const phase = frame >= WAVE_START ? (frame - WAVE_START) % WAVE_PERIOD : -1;
202
232
  const sweeping = phase >= 0 && phase < WAVE_LEN;
203
- const crest = AURORA[((sweepIdx % AURORA.length) + AURORA.length) % AURORA.length] ?? "#f2fffd";
233
+ const crest = AURORA[((sweepIdx % AURORA.length) + AURORA.length) % AURORA.length] ?? HOT;
204
234
  let center = 0;
205
235
  if (sweeping) {
206
236
  const u = phase / WAVE_LEN;
@@ -214,6 +244,14 @@ export function splashFrame(frame, grid, subtitle, field = false) {
214
244
  const d = col + row * 2 - center;
215
245
  return Math.exp(-(d * d) / (2 * 2.4 * 2.4));
216
246
  };
247
+ // Birth frame per glyph cell (-1 for gaps) — the assembly's choreography.
248
+ const born = grid.map((line, row) => {
249
+ const out = [];
250
+ for (let col = 0; col < cols; col++) {
251
+ out.push(line.charAt(col) !== " " && col < line.length ? birthAt(row, col, cols) : -1);
252
+ }
253
+ return out;
254
+ });
217
255
  // Glints: at most one lit cell, two frames long, in a third of the windows.
218
256
  const filled = [];
219
257
  grid.forEach((line, row) => {
@@ -229,39 +267,131 @@ export function splashFrame(frame, grid, subtitle, field = false) {
229
267
  hash(sparkWindow) % 3 === 0;
230
268
  const spark = sparkOn ? filled[hash(sparkWindow * 7 + 1) % filled.length] : undefined;
231
269
  // ------------------------------------------------------------------ //
232
- // Neural field (field mode): nodes, links, and thought pulses. Pulses
233
- // feeding the mark accumulate per-column excitement the logo colors read.
270
+ // The canvas. Both layouts draw into it back-to-front; the wordmark is
271
+ // placed last so it always wins its own cells. Until the assembly seals,
272
+ // particles may fly through the mark's bounding box; afterwards it is a
273
+ // sanctuary nothing may stamp into — the word floats in negative space.
234
274
  // ------------------------------------------------------------------ //
275
+ const canvas = Array.from({ length: canvasRows }, () => Array.from({ length: inner }, () => ({ ch: " ", fg: BG })));
276
+ const inSanctuary = (py, px) => py >= markTop && py < waveRow && px >= leftPad - 1 && px <= leftPad + cols;
277
+ const stamp = (x, y, ch, fg, over = false) => {
278
+ const px = Math.round(x);
279
+ const py = Math.round(y);
280
+ if (py < 0 || py >= canvasRows || px < 0 || px >= inner)
281
+ return;
282
+ if (frame >= ASSEMBLY_END && inSanctuary(py, px))
283
+ return;
284
+ const rowArr = canvas[py];
285
+ if (!rowArr)
286
+ return;
287
+ const cell = rowArr[px];
288
+ if (!cell)
289
+ return;
290
+ if (!over && cell.ch !== " ")
291
+ return;
292
+ rowArr[px] = { ch, fg };
293
+ };
294
+ /** Like stamp, but never enters the mark's box — even during assembly.
295
+ * For standing chrome (link dots, rings) that would read as dirt between
296
+ * the forming letters; transient movers may still fly through. */
297
+ const stampClear = (x, y, ch, fg, over = false) => {
298
+ if (inSanctuary(Math.round(y), Math.round(x)))
299
+ return;
300
+ stamp(x, y, ch, fg, over);
301
+ };
302
+ // Per-column surge the wordmark and the wave strip both read: arriving
303
+ // thoughts (field mode) push energy into the letters above their port.
235
304
  const excite = Array.from({ length: cols }, () => 0);
236
- const markTop = FIELD_ROWS_TOP;
237
- const reflRow = FIELD_ROWS_TOP + grid.length;
238
- const canvasRows = FIELD_ROWS_TOP + grid.length + 1 + FIELD_ROWS_BOTTOM;
239
- const canvas = field
240
- ? Array.from({ length: canvasRows }, () => Array.from({ length: inner }, () => ({ ch: " ", fg: "#143430" })))
241
- : undefined;
242
- if (canvas) {
243
- const stamp = (x, y, ch, fg) => {
244
- const cx = Math.round(x);
245
- const cy = Math.round(y);
246
- if (cy < 0 || cy >= canvas.length)
247
- return;
248
- const rowArr = canvas[cy];
249
- if (!rowArr || cx < 0 || cx >= rowArr.length)
250
- return;
251
- // Never draw over the mark or its water — pulses pass behind the word.
252
- if (cy >= markTop && cy <= reflRow && cx >= leftPad - 1 && cx <= leftPad + cols)
253
- return;
254
- rowArr[cx] = { ch, fg };
255
- };
256
- const nodeExcluded = (x, y) => y >= markTop && y <= reflRow && x >= leftPad - 2 && x <= leftPad + cols + 1;
305
+ if (field) {
306
+ // -------------------------------------------------------------- //
307
+ // Synapse constellation: nodes off the mark and the wave strip.
308
+ // -------------------------------------------------------------- //
309
+ const nodeExcluded = (x, y) => y === waveRow ||
310
+ (y >= markTop && y <= waveRow && x >= leftPad - 2 && x <= leftPad + cols + 1);
257
311
  const nodes = fieldNodes(canvasRows, inner, nodeExcluded);
258
312
  const nodeAt = (i) => nodes[i % nodes.length] ?? { x: 0, y: 0 };
313
+ /** Frame this node's dendrite arrives and the synapse ignites. */
314
+ const reachAt = (i) => 6 + (hash(i * 19 + 7) % 9);
315
+ // Code rain: one faint bit-stream falling inside each card edge.
316
+ if (frame >= LINKS_WAKE) {
317
+ for (const side of [0, 1]) {
318
+ const x = side === 0 ? 2 : inner - 3;
319
+ const cycle = canvasRows + 5;
320
+ const fall = Math.floor(frame / 2) + (hash(side * 7 + 3) % cycle);
321
+ const head = (fall % cycle) - 2;
322
+ const lap = Math.floor(fall / cycle);
323
+ for (let k = 0; k < 3; k++) {
324
+ const y = head - k;
325
+ const bit = hash(y * 11 + side * 5 + lap * 3) % 2;
326
+ stamp(x, y, k === 0 ? String(bit) : "·", k === 0 ? IDLE : GHOST);
327
+ }
328
+ }
329
+ }
330
+ // Genesis: dendrites grow from the seed to every node; the filament is
331
+ // scaffolding — it fades right after its synapse ignites.
332
+ nodes.forEach((n, i) => {
333
+ const reach = reachAt(i);
334
+ const grow0 = DENDRITES_START + (hash(i * 5 + 1) % 3);
335
+ if (frame >= grow0 && frame <= reach + 4 && reach > grow0) {
336
+ const u = Math.min((frame - grow0) / (reach - grow0), 1);
337
+ const fade = frame <= reach ? 1 : (reach + 4 - frame) / 4;
338
+ const dx = n.x - cx;
339
+ const dy = n.y - cy;
340
+ const steps = Math.ceil(Math.max(Math.abs(dx), Math.abs(dy) * 2, 1) / 1.6);
341
+ for (let s = 1; s <= Math.floor(steps * u); s++) {
342
+ const t = s / steps;
343
+ stamp(cx + dx * t, cy + dy * t, s % 2 === 0 ? "∙" : "·", fade > 0.6 ? FAINT_T : GHOST);
344
+ }
345
+ if (frame < reach)
346
+ stamp(cx + dx * u, cy + dy * u, "✦", MINT, true);
347
+ }
348
+ // The synapse itself: ignition flash → mint afterglow → idle shimmer,
349
+ // with one amber "insight" flash somewhere in the field every ~10s.
350
+ if (frame >= reach) {
351
+ const age = frame - reach;
352
+ if (age < 2) {
353
+ stamp(n.x, n.y, "✦", HOT, true);
354
+ }
355
+ else if (age < 4) {
356
+ stamp(n.x, n.y, "●", MINT, true);
357
+ }
358
+ else {
359
+ const iw = Math.floor(frame / INSIGHT_PERIOD);
360
+ const insight = hash(iw * 13 + 5) % NODE_COUNT === i && frame % INSIGHT_PERIOD < 3;
361
+ if (insight) {
362
+ stamp(n.x, n.y, "✦", EMBER, true);
363
+ }
364
+ else {
365
+ const period = 18 + (hash(i * 3 + 2) % 14);
366
+ const tw = (frame + hash(i * 29 + 4)) % period;
367
+ const active = tw < 3;
368
+ stamp(n.x, n.y, active ? "●" : "○", active ? DIM_T : IDLE, true);
369
+ }
370
+ }
371
+ }
372
+ });
373
+ // Links prefer near neighbors (of three hash candidates) so the graph
374
+ // reads as a web, not spaghetti; a few long hauls survive for drama.
375
+ const dist2 = (a, b) => {
376
+ const dx = a.x - b.x;
377
+ const dy = (a.y - b.y) * 2;
378
+ return dx * dx + dy * dy;
379
+ };
259
380
  const links = Array.from({ length: LINK_COUNT }, (_v, i) => {
260
381
  const a = hash(i * 91 + 3) % NODE_COUNT;
261
- const b = (a + 1 + (hash(i * 17 + 5) % (NODE_COUNT - 1))) % NODE_COUNT;
382
+ let best = (a + 1) % NODE_COUNT;
383
+ let bestD = Infinity;
384
+ for (let c = 0; c < 3; c++) {
385
+ const cand = (a + 1 + (hash(i * 17 + c * 7 + 5) % (NODE_COUNT - 1))) % NODE_COUNT;
386
+ const d = dist2(nodeAt(a), nodeAt(cand));
387
+ if (cand !== a && d < bestD) {
388
+ best = cand;
389
+ bestD = d;
390
+ }
391
+ }
262
392
  return {
263
393
  from: nodeAt(a),
264
- to: nodeAt(b),
394
+ to: nodeAt(best),
265
395
  period: 34 + (hash(i * 29 + 1) % 26),
266
396
  phase: hash(i * 61 + 9) % 60,
267
397
  port: -1,
@@ -284,27 +414,23 @@ export function splashFrame(frame, grid, subtitle, field = false) {
284
414
  phase: hash(i * 53 + 17) % 80,
285
415
  port: def.logoCol,
286
416
  }));
287
- // Constellation: two faint dots hint at each link's path.
417
+ const wires = [...links, ...portLinks];
418
+ // Constellation: three faint dots hint at each link's path; roughly one
419
+ // link per window "fires", its whole path lifting for two frames.
288
420
  if (frame >= LINKS_WAKE) {
289
- for (const link of [...links, ...portLinks]) {
290
- for (const u of [0.35, 0.65]) {
291
- stamp(link.from.x + (link.to.x - link.from.x) * u, link.from.y + (link.to.y - link.from.y) * u, "·", "#16413c");
421
+ const fireWin = Math.floor(frame / 90);
422
+ wires.forEach((link, li) => {
423
+ const firing = hash(fireWin * 31 + li * 7) % wires.length === li && frame % 90 < 2;
424
+ for (const u of [0.3, 0.5, 0.7]) {
425
+ stampClear(link.from.x + (link.to.x - link.from.x) * u, link.from.y + (link.to.y - link.from.y) * u, "·", firing ? DIM_T : GHOST);
292
426
  }
293
- }
294
- }
295
- // Nodes idle-shimmer on their own cycles.
296
- if (frame >= NODES_WAKE) {
297
- nodes.forEach((n, id) => {
298
- const period = 18 + (hash(id * 3 + 2) % 14);
299
- const tw = (frame + hash(id * 29 + 4)) % period;
300
- const active = tw < 3;
301
- stamp(n.x, n.y, active ? "●" : "○", active ? "#2e6b66" : "#1f524d");
302
427
  });
303
428
  }
304
429
  // Pulses: a bright head with a fading tail, smoothstepped along the
305
- // link; port pulses excite the mark as they arrive and flash on impact.
430
+ // link. Port pulses excite the mark as they arrive and flash on impact;
431
+ // node-to-node pulses flash the receiving synapse instead.
306
432
  if (frame >= PULSES_WAKE) {
307
- for (const link of [...links, ...portLinks]) {
433
+ for (const link of wires) {
308
434
  const tick = (frame + link.phase) % link.period;
309
435
  if (tick < PULSE_TRAVEL) {
310
436
  const at = (u) => ({
@@ -312,17 +438,17 @@ export function splashFrame(frame, grid, subtitle, field = false) {
312
438
  y: link.from.y + (link.to.y - link.from.y) * ease(u),
313
439
  });
314
440
  const head = at(tick / PULSE_TRAVEL);
315
- stamp(head.x, head.y, "•", sweeping ? crest : "#8ff2e9");
441
+ stamp(head.x, head.y, "•", sweeping ? crest : MINT, true);
316
442
  if (tick >= 2) {
317
443
  const trail = at((tick - 1.5) / PULSE_TRAVEL);
318
- stamp(trail.x, trail.y, "∙", "#2e6b66");
444
+ stamp(trail.x, trail.y, "∙", DIM_T, true);
319
445
  }
320
446
  if (tick >= 4) {
321
447
  const tail = at((tick - 3) / PULSE_TRAVEL);
322
- stamp(tail.x, tail.y, "·", "#1b4a45");
448
+ stamp(tail.x, tail.y, "·", FAINT_T);
323
449
  }
324
450
  if (tick < 2)
325
- stamp(link.from.x, link.from.y, "✦", "#f2fffd");
451
+ stamp(link.from.x, link.from.y, "✦", HOT, true);
326
452
  }
327
453
  if (link.port >= 0) {
328
454
  // Arrival glow: swells just before impact, decays just after.
@@ -336,132 +462,213 @@ export function splashFrame(frame, grid, subtitle, field = false) {
336
462
  }
337
463
  }
338
464
  if (arr >= 0 && arr < 2)
339
- stamp(link.to.x, link.to.y, "✦", "#f2fffd");
465
+ stamp(link.to.x, link.to.y, "✦", HOT, true);
340
466
  }
341
467
  }
468
+ else {
469
+ const arr = tick - PULSE_TRAVEL;
470
+ if (arr >= 0 && arr < 2)
471
+ stamp(link.to.x, link.to.y, "✦", sweeping ? crest : MINT, true);
472
+ }
473
+ }
474
+ }
475
+ }
476
+ // The seed: a lone heartbeat of light where the word will stand. It dies
477
+ // the moment the word's center solidifies around it — swallowed whole.
478
+ if (frame < SEED_END) {
479
+ const ph = frame % 6;
480
+ stamp(cx, cy, ph < 2 ? "✦" : ph < 4 ? "●" : "∙", ph < 2 ? HOT : MINT, true);
481
+ }
482
+ // Assembly: every letter cell streams out of the seed as a particle,
483
+ // easing toward its slot, then hands off to the condensing static.
484
+ if (frame < ASSEMBLY_END) {
485
+ grid.forEach((line, row) => {
486
+ for (let col = 0; col < line.length; col++) {
487
+ const b = born[row]?.[col] ?? -1;
488
+ if (b < 0)
489
+ continue;
490
+ const start = b - FLIGHT;
491
+ const land = b - LEAD;
492
+ if (frame < start || frame >= land)
493
+ continue;
494
+ const u = ease((frame - start) / (FLIGHT - LEAD));
495
+ const x = cx + (leftPad + col - cx) * u;
496
+ const y = cy + (markTop + row - cy) * u;
497
+ stamp(x, y, u < 0.45 ? "∙" : "•", u < 0.45 ? HOT : MINT, true);
498
+ }
499
+ });
500
+ }
501
+ // Shock rings and sonar pings: expanding ellipses from the seed. The
502
+ // shock detonates as the word locks; pings echo it every ~9s after.
503
+ const ringRs = [];
504
+ if (field) {
505
+ const rings = [
506
+ { t0: SHOCK_AT, shock: true },
507
+ { t0: SHOCK_AT + 3, shock: true },
508
+ ];
509
+ const pinged = frame - (SHOCK_AT + 20);
510
+ if (pinged >= 0) {
511
+ rings.push({ t0: SHOCK_AT + 20 + Math.floor(pinged / PING_PERIOD) * PING_PERIOD, shock: false });
512
+ }
513
+ const rMax = inner * 0.6;
514
+ for (const ring of rings) {
515
+ const age = frame - ring.t0;
516
+ if (age < 0)
517
+ continue;
518
+ const r = age * 1.9 + 0.5;
519
+ if (r > rMax)
520
+ continue;
521
+ ringRs.push(r);
522
+ const u = r / rMax;
523
+ const ch = u < 0.3 ? "○" : u < 0.65 ? "∘" : "·";
524
+ const fg = ring.shock
525
+ ? u < 0.3
526
+ ? MINT
527
+ : u < 0.65
528
+ ? DIM_T
529
+ : GHOST
530
+ : u < 0.4
531
+ ? DIM_T
532
+ : GHOST;
533
+ for (let y = 0; y < canvasRows; y++) {
534
+ if (y === waveRow)
535
+ continue;
536
+ const wy = (y - cy) * 2.6;
537
+ for (let x = 0; x < inner; x++) {
538
+ const d = Math.sqrt((x - cx) * (x - cx) + wy * wy);
539
+ if (Math.abs(d - r) < 1.1)
540
+ stampClear(x, y, ch, fg);
541
+ }
542
+ }
543
+ }
544
+ }
545
+ // Compact gutters: twinkling stars beside the mark once the show settles.
546
+ if (!field && frame >= WAVE_START - 6) {
547
+ for (let row = 0; row < gridRows; row++) {
548
+ for (let k = 0; k < 2; k++) {
549
+ for (const side of [0, 1]) {
550
+ const padWidth = side === 0 ? leftPad : inner - leftPad - cols;
551
+ if (padWidth < 3)
552
+ continue;
553
+ const id = side * 16 + row * 2 + k;
554
+ const colIn = hash(id * 97 + 5) % (padWidth - 1);
555
+ const x = side === 0 ? colIn : leftPad + cols + colIn;
556
+ const period = 20 + (hash(id * 7 + 3) % 16);
557
+ const tick = (frame + hash(id * 13 + 1)) % period;
558
+ if (tick < 2)
559
+ stamp(x, markTop + row, "✦", MINT);
560
+ else if (tick < 4)
561
+ stamp(x, markTop + row, "·", DIM_T);
562
+ }
563
+ }
564
+ }
565
+ }
566
+ // EEG wave strip: the mind's live trace under the word. It idles as a
567
+ // slow interference ripple, lifts under the aurora, jumps where rings
568
+ // cross it, and spikes hard beneath arriving thoughts.
569
+ const waveArr = canvas[waveRow];
570
+ if (waveArr) {
571
+ const wake = Math.min(Math.max((frame - SEED_DELAY) / 20, 0.12), 1);
572
+ for (let x = 0; x < inner; x++) {
573
+ const logoCol = Math.min(Math.max(x - leftPad, 0), cols - 1);
574
+ const outside = x < leftPad ? leftPad - x : x >= leftPad + cols ? x - (leftPad + cols - 1) : 0;
575
+ const e = (excite[logoCol] ?? 0) * Math.exp(-(outside * outside) / 40);
576
+ const base = 0.5 + 0.5 * Math.sin(frame / 5 + x / 2.6 + 0.8 * Math.sin(x / 9 - frame / 13));
577
+ let v = 0.08 + 0.38 * base * wake + 0.55 * Math.min(e, 1) + 0.3 * bandAt(x - leftPad, 1);
578
+ for (const r of ringRs) {
579
+ const d = Math.abs(x - cx) - r;
580
+ v += 0.4 * Math.exp(-(d * d) / 8);
342
581
  }
582
+ v = Math.min(Math.max(v, 0.02), 1);
583
+ // Quantize the tone so neighboring cells merge into color runs.
584
+ const q = Math.round(v * 8) / 8;
585
+ const lvl = Math.min(Math.floor(v * WAVE_GLYPHS.length), WAVE_GLYPHS.length - 1);
586
+ const fg = q < 0.4
587
+ ? lerpHex(TROUGH, FAINT_T, q / 0.4)
588
+ : q < 0.75
589
+ ? lerpHex(FAINT_T, DIM_T, (q - 0.4) / 0.35)
590
+ : lerpHex(DIM_T, MID_T, (q - 0.75) / 0.25);
591
+ waveArr[x] = { ch: WAVE_GLYPHS.charAt(lvl), fg };
592
+ }
593
+ }
594
+ // Satellites: two counter-orbiting lights on an ellipse around the word —
595
+ // they pass in front of the wave strip and vanish behind the mark.
596
+ if (frame >= SHOCK_AT) {
597
+ const a = cols / 2 + (field ? 5 : 3.5);
598
+ const b = field ? 2.6 : 1.7;
599
+ for (const s of [0, 1]) {
600
+ const dir = s === 0 ? 1 : -1;
601
+ const orbit = (f) => {
602
+ const ang = ((f * dir) / ORBIT_PERIOD + s * 0.5) * Math.PI * 2;
603
+ return { x: cx + a * Math.cos(ang), y: cy + b * Math.sin(ang) };
604
+ };
605
+ const p2 = orbit(frame - 3.2);
606
+ stamp(p2.x, p2.y, "·", FAINT_T);
607
+ const p1 = orbit(frame - 1.6);
608
+ stamp(p1.x, p1.y, "∙", DIM_T);
609
+ const p0 = orbit(frame);
610
+ stamp(p0.x, p0.y, "✦", sweeping ? crest : MINT, true);
343
611
  }
344
612
  }
613
+ // Wordmark color: the base breathes around REST; the aurora lifts it to
614
+ // the crest, arriving thoughts surge the nearby columns, and a rare
615
+ // glitch shimmer washes a five-column slice for two frames.
616
+ const glitchWin = Math.floor(frame / GLITCH_PERIOD);
617
+ const glitchOn = frame >= WAVE_START && hash(glitchWin * 11 + 2) % 4 === 0 && frame % GLITCH_PERIOD < 2;
618
+ const glitchC0 = hash(glitchWin * 17 + 9) % Math.max(cols - 5, 1);
345
619
  const colorAt = (row, col) => {
346
- // The base breathes a touch around REST; the band lifts it to the
347
- // crest, and arriving thoughts surge the nearby columns.
348
- const t = REST +
349
- 0.05 * Math.sin(frame / 9 + col / 5 + row) +
620
+ let t = REST +
621
+ 0.06 * Math.sin(frame / 9 + col / 5 + row) +
350
622
  0.65 * bandAt(col, row) +
351
623
  0.5 * Math.min(excite[col] ?? 0, 1);
624
+ if (glitchOn && col >= glitchC0 && col < glitchC0 + 5)
625
+ t += 0.4;
352
626
  // Quantize so neighboring cells merge into longer same-color runs.
353
627
  return gradientAt(Math.round(Math.min(Math.max(t, 0), 1) * 14) / 14, crest);
354
628
  };
355
- // Wordmark cells (logo coordinates, placed into the layout below).
356
- const logo = grid.map((line, row) => {
357
- const cells = [];
629
+ // The wordmark itself, placed last so it always wins its cells: flight is
630
+ // above (canvas particles), then condensing static, flash, settled glyph.
631
+ grid.forEach((line, row) => {
632
+ const rowArr = canvas[markTop + row];
633
+ if (!rowArr)
634
+ return;
358
635
  for (let col = 0; col < line.length; col++) {
359
636
  const glyph = line.charAt(col);
360
- if (glyph === " ") {
361
- cells.push({ ch: " ", fg: "#4fb8b0" });
637
+ const target = leftPad + col;
638
+ if (target >= inner)
639
+ break;
640
+ if (glyph === " ")
362
641
  continue;
363
- }
364
- const born = birthAt(row, col, cols);
365
- if (frame < born - LEAD) {
366
- cells.push({ ch: " ", fg: "#4fb8b0" });
367
- }
368
- else if (frame < born) {
369
- cells.push({
642
+ const b = born[row]?.[col] ?? -1;
643
+ if (b < 0 || frame < b - LEAD)
644
+ continue;
645
+ if (frame < b) {
646
+ rowArr[target] = {
370
647
  ch: SCRAMBLE.charAt(hash(frame * 97 + col * 13 + row * 7) % SCRAMBLE.length),
371
- fg: "#2e6b66",
372
- });
648
+ fg: frame % 2 === 0 ? BASE_T : DIM_T,
649
+ };
373
650
  }
374
- else if (frame < born + FLASH) {
375
- cells.push({ ch: glyph, fg: "#f2fffd" });
376
- }
377
- else if (spark?.row === row && spark?.col === col) {
378
- cells.push({ ch: glyph, fg: "#f2fffd" });
651
+ else if (frame < b + FLASH || (spark?.row === row && spark?.col === col)) {
652
+ rowArr[target] = { ch: glyph, fg: HOT };
379
653
  }
380
654
  else {
381
- cells.push({ ch: glyph, fg: colorAt(row, col) });
655
+ rowArr[target] = { ch: glyph, fg: colorAt(row, col) };
382
656
  }
383
657
  }
384
- return cells;
385
- });
386
- // Reflection: the bottom row mirrored under the mark, rippling like water
387
- // and lit faintly by the band. Kept sparse (under half the cells) and deep
388
- // in the dark range so the water never competes with the letterforms.
389
- const bottom = logo[logo.length - 1] ?? [];
390
- const reflection = bottom.map((cell, col) => {
391
- const mirrored = MIRROR[cell.ch] ?? " ";
392
- const ripple = Math.sin(frame / 6 + col / 1.7 + (hash(col * 29) % 10) / 3);
393
- if (mirrored === " " || ripple <= 0.2)
394
- return { ch: " ", fg: "#143430" };
395
- return {
396
- ch: mirrored,
397
- fg: lerpHex("#0f2a27", "#245852", Math.min(bandAt(col, 2), 0.8)),
398
- };
399
658
  });
400
- let rows;
401
- if (canvas) {
402
- // Place the mark and its water into the field canvas.
403
- logo.forEach((cells, row) => {
404
- const rowArr = canvas[markTop + row];
405
- if (!rowArr)
406
- return;
407
- cells.forEach((cell, col) => {
408
- rowArr[leftPad + col] = cell;
409
- });
410
- });
411
- const reflArr = canvas[reflRow];
412
- if (reflArr) {
413
- reflection.forEach((cell, col) => {
414
- reflArr[leftPad + col] = cell;
415
- });
416
- }
417
- rows = canvas.map(toChunks);
418
- }
419
- else {
420
- // Compact: star gutters beside the mark, reflection underneath.
421
- const gutters = grid.map((_line, row) => {
422
- const left = Array.from({ length: leftPad }, () => ({ ch: " ", fg: "#4fb8b0" }));
423
- const right = Array.from({ length: rightPad }, () => ({ ch: " ", fg: "#4fb8b0" }));
424
- if (frame >= WAVE_START - 4) {
425
- for (let k = 0; k < 2; k++) {
426
- for (const [side, cellsSide, padWidth] of [
427
- [0, left, leftPad],
428
- [1, right, rightPad],
429
- ]) {
430
- if (padWidth < 3)
431
- continue;
432
- const id = side * 16 + row * 2 + k;
433
- const col = hash(id * 97 + 5) % (padWidth - 1);
434
- const period = 20 + (hash(id * 7 + 3) % 16);
435
- const tick = (frame + hash(id * 13 + 1)) % period;
436
- const cell = cellsSide[col];
437
- if (cell === undefined)
438
- continue;
439
- if (tick < 2) {
440
- cell.ch = "✦";
441
- cell.fg = "#8ff2e9";
442
- }
443
- else if (tick < 4) {
444
- cell.ch = "·";
445
- cell.fg = "#2e6b66";
446
- }
447
- }
448
- }
449
- }
450
- return [left, right];
451
- });
452
- const pad = (width) => Array.from({ length: width }, () => ({ ch: " ", fg: "#143430" }));
453
- rows = [
454
- ...logo.map((cells, row) => {
455
- const side = gutters[row] ?? [[], []];
456
- return toChunks([...(side[0] ?? []), ...cells, ...(side[1] ?? [])]);
457
- }),
458
- toChunks([...pad(leftPad), ...reflection, ...pad(rightPad)]),
459
- ];
460
- }
461
- // Border: breathes near TEAL_DIM and catches the band entering or leaving.
462
- const breathe = lerpHex("#2e6b66", "#3e938c", 0.5 + 0.5 * Math.sin(frame / 16));
659
+ const rows = canvas.map(toChunks);
660
+ // Border: breathes near TEAL_DIM, catches the aurora at the edges, rides
661
+ // outgoing rings, and pops white for the shockwave itself.
662
+ const breathe = lerpHex(DIM_T, MID_T, 0.5 + 0.5 * Math.sin(frame / 16));
463
663
  const edgeGlow = Math.max(bandAt(0, 0), bandAt(cols - 1, 1));
464
- const border = lerpHex(breathe, crest, edgeGlow * 0.4);
664
+ let ringGlow = 0;
665
+ for (const r of ringRs) {
666
+ const d = r - inner * 0.55;
667
+ ringGlow = Math.max(ringGlow, Math.exp(-(d * d) / 18));
668
+ }
669
+ let border = lerpHex(breathe, crest, Math.min(edgeGlow * 0.4 + ringGlow * 0.45, 0.6));
670
+ if (frame >= SHOCK_AT && frame < SHOCK_AT + 3)
671
+ border = lerpHex(border, HOT, 0.45);
465
672
  // Subtitle decodes on: locked text, then a short zone of cycling static,
466
673
  // then the caret. Width stays constant so nothing reflows.
467
674
  const lockedLen = Math.min(Math.max(frame - TYPE_START, 0), subtitle.length);
@@ -476,7 +683,7 @@ export function splashFrame(frame, grid, subtitle, field = false) {
476
683
  return {
477
684
  rows,
478
685
  border,
479
- version: frame < IGNITE_SPAN + 8 ? "#5c5c5c" : "#8a8a8a",
686
+ version: frame < ASSEMBLY_END + 4 ? "#5c5c5c" : "#8a8a8a",
480
687
  subtitle: [
481
688
  { text: subtitle.slice(0, lockedLen), fg: "#8a8a8a" },
482
689
  { text: forming, fg: "#2e6b66" },
@@ -1 +1 @@
1
- {"version":3,"file":"wordmark.js","sourceRoot":"","sources":["../../../src/ui/wordmark.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wordmark.js","sourceRoot":"","sources":["../../../src/ui/wordmark.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aui.io/apollo-tui",
3
- "version": "0.1.25",
3
+ "version": "0.1.26",
4
4
  "description": "Interactive Apollo operator TUI built on OpenTUI",
5
5
  "type": "module",
6
6
  "engines": {
@@ -35,7 +35,7 @@
35
35
  "start": "node ./bin/apollo-tui.js"
36
36
  },
37
37
  "dependencies": {
38
- "@aui.io/apollo-core": "0.1.25",
38
+ "@aui.io/apollo-core": "0.1.26",
39
39
  "@opentui/core": "^0.4.5",
40
40
  "@opentui/react": "^0.4.5",
41
41
  "diff": "8.0.2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aui.io/apollo",
3
- "version": "0.1.25",
3
+ "version": "0.1.26",
4
4
  "description": "Apollo operator console — CLI + interactive TUI",
5
5
  "type": "module",
6
6
  "engines": {
@@ -31,9 +31,9 @@
31
31
  "postpack": "node ./scripts/clean-bundle.mjs"
32
32
  },
33
33
  "dependencies": {
34
- "@aui.io/apollo-core": "0.1.25",
35
- "@aui.io/apollo-cli": "0.1.25",
36
- "@aui.io/apollo-tui": "0.1.25",
34
+ "@aui.io/apollo-core": "0.1.26",
35
+ "@aui.io/apollo-cli": "0.1.26",
36
+ "@aui.io/apollo-tui": "0.1.26",
37
37
  "picocolors": "^1.1.1",
38
38
  "yaml": "^2.9.0",
39
39
  "commander": "^14.0.3",