sleev 0.0.11 → 0.0.13

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.
Files changed (144) hide show
  1. package/README.md +19 -39
  2. package/dist/auth/browser.d.ts +12 -0
  3. package/dist/auth/browser.js +33 -24
  4. package/dist/auth/browser.js.map +1 -0
  5. package/dist/auth/firebase-tokens.d.ts +39 -0
  6. package/dist/auth/firebase-tokens.js +173 -0
  7. package/dist/auth/firebase-tokens.js.map +1 -0
  8. package/dist/auth/firebase.d.ts +17 -0
  9. package/dist/auth/firebase.js +55 -0
  10. package/dist/auth/firebase.js.map +1 -0
  11. package/dist/auth/login.d.ts +22 -0
  12. package/dist/auth/login.js +31 -28
  13. package/dist/auth/login.js.map +1 -0
  14. package/dist/auth/loopback.d.ts +19 -0
  15. package/dist/auth/loopback.js +114 -44
  16. package/dist/auth/loopback.js.map +1 -0
  17. package/dist/auth/schema.d.ts +26 -0
  18. package/dist/auth/schema.js +59 -17
  19. package/dist/auth/schema.js.map +1 -0
  20. package/dist/auth/token.d.ts +19 -0
  21. package/dist/auth/token.js +53 -0
  22. package/dist/auth/token.js.map +1 -0
  23. package/dist/auth/verify.d.ts +6 -0
  24. package/dist/auth/verify.js +22 -0
  25. package/dist/auth/verify.js.map +1 -0
  26. package/dist/cli.d.ts +8 -0
  27. package/dist/cli.js +245 -59
  28. package/dist/cli.js.map +1 -0
  29. package/dist/config/paths.d.ts +12 -0
  30. package/dist/config/paths.js +34 -0
  31. package/dist/config/paths.js.map +1 -0
  32. package/dist/config/store.d.ts +63 -0
  33. package/dist/config/store.js +270 -0
  34. package/dist/config/store.js.map +1 -0
  35. package/dist/control/local-installations.d.ts +13 -0
  36. package/dist/control/local-installations.js +37 -0
  37. package/dist/control/local-installations.js.map +1 -0
  38. package/dist/daemon/config.d.ts +10 -0
  39. package/dist/daemon/config.js +52 -0
  40. package/dist/daemon/config.js.map +1 -0
  41. package/dist/daemon/controller.d.ts +29 -0
  42. package/dist/daemon/controller.js +34 -0
  43. package/dist/daemon/controller.js.map +1 -0
  44. package/dist/daemon/health.d.ts +8 -0
  45. package/dist/daemon/health.js +47 -0
  46. package/dist/daemon/health.js.map +1 -0
  47. package/dist/daemon/start.d.ts +5 -0
  48. package/dist/daemon/start.js +24 -0
  49. package/dist/daemon/start.js.map +1 -0
  50. package/dist/daemon/systemd.d.ts +35 -0
  51. package/dist/daemon/systemd.js +181 -0
  52. package/dist/daemon/systemd.js.map +1 -0
  53. package/dist/gateway/acquire.d.ts +14 -0
  54. package/dist/gateway/acquire.js +112 -0
  55. package/dist/gateway/acquire.js.map +1 -0
  56. package/dist/gateway/manifest.d.ts +26 -0
  57. package/dist/gateway/manifest.js +98 -0
  58. package/dist/gateway/manifest.js.map +1 -0
  59. package/dist/gateway/platform.d.ts +5 -0
  60. package/dist/gateway/platform.js +27 -0
  61. package/dist/gateway/platform.js.map +1 -0
  62. package/dist/harness/claude.d.ts +8 -0
  63. package/dist/{apps → harness}/claude.js +28 -28
  64. package/dist/harness/claude.js.map +1 -0
  65. package/dist/harness/codex.d.ts +10 -0
  66. package/dist/harness/codex.js +213 -0
  67. package/dist/harness/codex.js.map +1 -0
  68. package/dist/harness/index.d.ts +13 -0
  69. package/dist/harness/index.js +63 -0
  70. package/dist/harness/index.js.map +1 -0
  71. package/dist/harness/opencode-config.d.ts +8 -0
  72. package/dist/{apps → harness}/opencode-config.js +116 -83
  73. package/dist/harness/opencode-config.js.map +1 -0
  74. package/dist/harness/opencode.d.ts +14 -0
  75. package/dist/harness/opencode.js +50 -0
  76. package/dist/harness/opencode.js.map +1 -0
  77. package/dist/harness/providers.d.ts +8 -0
  78. package/dist/harness/providers.js +30 -0
  79. package/dist/harness/providers.js.map +1 -0
  80. package/dist/harness/types.d.ts +14 -0
  81. package/dist/harness/types.js +2 -0
  82. package/dist/harness/types.js.map +1 -0
  83. package/dist/product.d.ts +12 -0
  84. package/dist/product.js +53 -10
  85. package/dist/product.js.map +1 -0
  86. package/dist/tui/clipboard.d.ts +1 -0
  87. package/dist/tui/clipboard.js +48 -0
  88. package/dist/tui/clipboard.js.map +1 -0
  89. package/dist/tui/openTuiApp.d.ts +1 -0
  90. package/dist/tui/openTuiApp.js +1436 -0
  91. package/dist/tui/openTuiApp.js.map +1 -0
  92. package/dist/tui/pages/flow-screen.d.ts +50 -0
  93. package/dist/tui/pages/flow-screen.js +435 -0
  94. package/dist/tui/pages/flow-screen.js.map +1 -0
  95. package/dist/tui/pages/footer.d.ts +7 -0
  96. package/dist/tui/pages/footer.js +14 -0
  97. package/dist/tui/pages/footer.js.map +1 -0
  98. package/dist/tui/pages/home-screen.d.ts +19 -0
  99. package/dist/tui/pages/home-screen.js +89 -0
  100. package/dist/tui/pages/home-screen.js.map +1 -0
  101. package/dist/tui/pages/index.d.ts +17 -0
  102. package/dist/tui/pages/index.js +11 -0
  103. package/dist/tui/pages/index.js.map +1 -0
  104. package/dist/tui/pages/local-setup-screen.d.ts +23 -0
  105. package/dist/tui/pages/local-setup-screen.js +134 -0
  106. package/dist/tui/pages/local-setup-screen.js.map +1 -0
  107. package/dist/tui/pages/location-card.d.ts +19 -0
  108. package/dist/tui/pages/location-card.js +116 -0
  109. package/dist/tui/pages/location-card.js.map +1 -0
  110. package/dist/tui/pages/menu-screen.d.ts +24 -0
  111. package/dist/tui/pages/menu-screen.js +117 -0
  112. package/dist/tui/pages/menu-screen.js.map +1 -0
  113. package/dist/tui/pages/session-grid.d.ts +23 -0
  114. package/dist/tui/pages/session-grid.js +552 -0
  115. package/dist/tui/pages/session-grid.js.map +1 -0
  116. package/dist/tui/pages/setup-screen.d.ts +15 -0
  117. package/dist/tui/pages/setup-screen.js +80 -0
  118. package/dist/tui/pages/setup-screen.js.map +1 -0
  119. package/dist/tui/pages/terminal-log.d.ts +14 -0
  120. package/dist/tui/pages/terminal-log.js +104 -0
  121. package/dist/tui/pages/terminal-log.js.map +1 -0
  122. package/dist/tui/pages/welcome-screen.d.ts +16 -0
  123. package/dist/tui/pages/welcome-screen.js +80 -0
  124. package/dist/tui/pages/welcome-screen.js.map +1 -0
  125. package/dist/tui/saved-tokens.d.ts +10 -0
  126. package/dist/tui/saved-tokens.js +104 -0
  127. package/dist/tui/saved-tokens.js.map +1 -0
  128. package/dist/tui/theme.d.ts +25 -0
  129. package/dist/tui/theme.js +27 -0
  130. package/dist/tui/theme.js.map +1 -0
  131. package/package.json +55 -38
  132. package/dist/apps/codex.js +0 -184
  133. package/dist/apps/opencode.js +0 -158
  134. package/dist/apps.js +0 -148
  135. package/dist/auth/command.js +0 -109
  136. package/dist/auth/index.js +0 -2
  137. package/dist/auth/validation.js +0 -27
  138. package/dist/credentials/index.js +0 -3
  139. package/dist/credentials/schema.js +0 -63
  140. package/dist/credentials/store.js +0 -52
  141. package/dist/harnesses.js +0 -66
  142. package/dist/index.js +0 -3
  143. package/dist/providers.js +0 -30
  144. package/dist/terminal.js +0 -55
@@ -0,0 +1,552 @@
1
+ // Ports the landing-page CTA session grid into OpenTUI cells for the home screen.
2
+ import { theme } from "../theme.js";
3
+ const cols = 14;
4
+ const rows = 14;
5
+ const gap = 14;
6
+ const tokens = 808;
7
+ const fill = 900;
8
+ const shutdownDuration = 500;
9
+ const shutdownSpan = 500;
10
+ const appendDuration = 260;
11
+ const appendSpan = 1240;
12
+ const resetPause = 500;
13
+ const resetDelay = shutdownSpan + shutdownDuration + resetPause;
14
+ const cellGap = 2;
15
+ const gridWidth = (cols - 1) * cellGap + 1;
16
+ const recapHeight = 3;
17
+ const gridChrome = 2;
18
+ export const SESSION_GRID_WIDTH = gridWidth + 4;
19
+ export const SESSION_GRID_MAX_HEIGHT = recapHeight + gridChrome + rows;
20
+ export function createSessionGridAnimation(start = Date.now()) {
21
+ const rng = seeded(42);
22
+ const first = makeView(seeded(99));
23
+ const events = [];
24
+ let view = hiddenView(first);
25
+ let side = "noise";
26
+ let transition = baseTransition(start, view, side);
27
+ function later(run, delay, anchor) {
28
+ events.push({ at: anchor + delay, run });
29
+ }
30
+ function process(now) {
31
+ events.sort((a, b) => a.at - b.at);
32
+ const next = events[0];
33
+ if (!next || next.at > now)
34
+ return;
35
+ events.shift();
36
+ next.run(next.at);
37
+ process(now);
38
+ }
39
+ function draw(next, nextSide, at) {
40
+ transition = {
41
+ start: at,
42
+ from: currentDots(transition, at),
43
+ to: dotsFor(next, nextSide),
44
+ fromRows: currentRows(transition, at),
45
+ toRows: rowsFor(next, nextSide),
46
+ fromStats: currentStats(transition, at),
47
+ toStats: statsFor(next, nextSide),
48
+ };
49
+ view = next;
50
+ side = nextSide;
51
+ }
52
+ function layer(delay, anchor) {
53
+ later((at) => {
54
+ const current = view;
55
+ const next = makeLayerView(current, rng);
56
+ draw({
57
+ ...view,
58
+ noise: {
59
+ ...next.noise,
60
+ dots: hideAddedDots(current.clean.dots, next.noise.dots),
61
+ },
62
+ clean: next.clean,
63
+ bar: next.bar,
64
+ }, "noise", at);
65
+ later((appendAt) => draw({
66
+ ...view,
67
+ noise: {
68
+ ...next.noise,
69
+ dots: appendAddedDots(current.clean.dots, next.noise.dots),
70
+ },
71
+ clean: next.clean,
72
+ bar: next.bar,
73
+ }, "noise", appendAt), 50, at);
74
+ }, delay, anchor);
75
+ }
76
+ function prune(delay, anchor, clean) {
77
+ later((at) => {
78
+ draw(clean ? { ...view, clean } : view, "clean", at);
79
+ }, delay + 110, anchor);
80
+ }
81
+ function cycle(fresh, anchor) {
82
+ const next = fresh ? makeView(rng) : null;
83
+ const base = fresh ? 1000 : 0;
84
+ if (next) {
85
+ const seed = Math.floor(rng() * 100000);
86
+ later((at) => draw(shutdownView(view, seed), "clean", at), 0, anchor);
87
+ later((at) => draw(hiddenView(next), "noise", at), 1000, anchor);
88
+ later((at) => draw(appendView(next), "noise", at), resetDelay, anchor);
89
+ }
90
+ prune(base + 2000, anchor, next?.clean);
91
+ layer(base + 4110, anchor);
92
+ prune(base + 6110, anchor);
93
+ layer(base + 8220, anchor);
94
+ prune(base + 10220, anchor);
95
+ later((at) => cycle(true, at), base + 12330, anchor);
96
+ }
97
+ later((at) => draw(appendView(first), "noise", at), 50, start);
98
+ cycle(false, start);
99
+ return {
100
+ snapshot(now = Date.now()) {
101
+ process(now);
102
+ const stats = currentStats(transition, now);
103
+ return {
104
+ dots: terminalDots(currentDots(transition, now), currentRows(transition, now)),
105
+ rows: Math.max(1, Math.min(rows, Math.ceil(currentRows(transition, now)))),
106
+ rawWidth: stats.rawWidth,
107
+ currentWidth: stats.currentWidth,
108
+ currentTokens: stats.currentTokens,
109
+ savedTokens: stats.savedTokens,
110
+ };
111
+ },
112
+ };
113
+ }
114
+ export function SessionGrid(core, snapshot) {
115
+ return core.Box({
116
+ width: SESSION_GRID_WIDTH,
117
+ flexDirection: "column",
118
+ }, recapCard(core, snapshot), gridCard(core, snapshot));
119
+ }
120
+ export function sessionGridHeight(snapshot) {
121
+ return recapHeight + gridChrome + snapshot.rows;
122
+ }
123
+ function recapCard(core, snapshot) {
124
+ const inner = SESSION_GRID_WIDTH - 4;
125
+ const raw = Math.round((snapshot.rawWidth / 100) * inner);
126
+ const current = Math.round((snapshot.currentWidth / 100) * inner);
127
+ return core.Box({
128
+ width: SESSION_GRID_WIDTH,
129
+ height: recapHeight,
130
+ backgroundColor: theme.color.card,
131
+ paddingLeft: 1,
132
+ paddingRight: 1,
133
+ flexDirection: "column",
134
+ }, core.Text({
135
+ content: splitLine(inner, "SESSION", "SAVED"),
136
+ fg: theme.color.quiet,
137
+ attributes: core.TextAttributes.DIM,
138
+ selectable: false,
139
+ }), core.Text({
140
+ content: splitLine(inner, `${format(snapshot.currentTokens)} tokens`, format(snapshot.savedTokens)),
141
+ fg: theme.color.text,
142
+ selectable: false,
143
+ }), core.Box({
144
+ position: "relative",
145
+ width: inner,
146
+ height: 1,
147
+ backgroundColor: theme.color.footer,
148
+ }, ...bar(raw, theme.color.accentDim).map((layer) => core.Box(layer)), ...bar(current, theme.color.accent).map((layer) => core.Box(layer))));
149
+ }
150
+ function gridCard(core, snapshot) {
151
+ return core.Box({
152
+ width: SESSION_GRID_WIDTH,
153
+ height: snapshot.rows + gridChrome,
154
+ backgroundColor: theme.color.card,
155
+ paddingLeft: 2,
156
+ paddingRight: 2,
157
+ paddingTop: 1,
158
+ paddingBottom: 1,
159
+ }, core.Box({
160
+ position: "relative",
161
+ width: gridWidth,
162
+ height: snapshot.rows,
163
+ }, ...snapshot.dots.map((dot) => core.Text({
164
+ content: "■",
165
+ position: "absolute",
166
+ left: dot.x,
167
+ top: dot.y,
168
+ fg: dotColor(dot.opacity),
169
+ selectable: false,
170
+ }))));
171
+ }
172
+ function bar(width, color) {
173
+ if (width <= 0)
174
+ return [];
175
+ return [
176
+ {
177
+ position: "absolute",
178
+ left: 0,
179
+ top: 0,
180
+ width,
181
+ height: 1,
182
+ backgroundColor: color,
183
+ },
184
+ ];
185
+ }
186
+ function terminalDots(dots, visible) {
187
+ return dots.flatMap((d) => {
188
+ const opacity = Math.min(d.o * 1.18, 1);
189
+ const y = Math.round(d.ty / gap);
190
+ if (opacity <= 0.03 || y >= visible)
191
+ return [];
192
+ return {
193
+ x: Math.round((d.tx / gap) * cellGap),
194
+ y,
195
+ opacity,
196
+ };
197
+ });
198
+ }
199
+ function dotColor(opacity) {
200
+ if (opacity < 0.12)
201
+ return theme.color.ghost;
202
+ if (opacity < 0.28)
203
+ return theme.color.accentDim;
204
+ if (opacity < 0.55)
205
+ return theme.color.quiet;
206
+ if (opacity < 0.82)
207
+ return theme.color.muted;
208
+ return theme.color.text;
209
+ }
210
+ function splitLine(width, left, right) {
211
+ const gap = Math.max(1, width - left.length - right.length);
212
+ return `${left}${" ".repeat(gap)}${right}`.slice(0, width);
213
+ }
214
+ function format(value) {
215
+ return Math.round(value).toLocaleString();
216
+ }
217
+ function baseTransition(start, view, side) {
218
+ const dots = dotsFor(view, side);
219
+ const stats = statsFor(view, side);
220
+ const active = rowsFor(view, side);
221
+ return {
222
+ start,
223
+ from: dots,
224
+ to: dots,
225
+ fromRows: active,
226
+ toRows: active,
227
+ fromStats: stats,
228
+ toStats: stats,
229
+ };
230
+ }
231
+ function currentDots(transition, now) {
232
+ return transition.to.map((to, i) => {
233
+ const from = transition.from[i] ?? { ...to, o: 0 };
234
+ const delay = to.delay ?? (Math.floor(i / cols) + (i % cols)) * 24;
235
+ const duration = to.duration ?? fill;
236
+ const amount = duration === 0
237
+ ? 1
238
+ : ease((now - transition.start - delay) / duration);
239
+ return {
240
+ tx: lerp(from.tx, to.tx, amount),
241
+ ty: lerp(from.ty, to.ty, amount),
242
+ o: lerp(from.o, to.o, amount),
243
+ };
244
+ });
245
+ }
246
+ function currentRows(transition, now) {
247
+ return lerp(transition.fromRows, transition.toRows, ease((now - transition.start) / fill));
248
+ }
249
+ function currentStats(transition, now) {
250
+ const amount = ease((now - transition.start) / fill);
251
+ return {
252
+ rawWidth: lerp(transition.fromStats.rawWidth, transition.toStats.rawWidth, amount),
253
+ currentWidth: lerp(transition.fromStats.currentWidth, transition.toStats.currentWidth, amount),
254
+ currentTokens: lerp(transition.fromStats.currentTokens, transition.toStats.currentTokens, amount),
255
+ savedTokens: lerp(transition.fromStats.savedTokens, transition.toStats.savedTokens, amount),
256
+ };
257
+ }
258
+ function dotsFor(view, side) {
259
+ return side === "noise" ? view.noise.dots : view.clean.dots;
260
+ }
261
+ function rowsFor(view, side) {
262
+ return side === "noise" ? view.noise.rows : view.clean.rows;
263
+ }
264
+ function statsFor(view, side) {
265
+ const rawDots = view.bar.raw;
266
+ const currentDots = side === "clean" ? view.bar.clean : view.bar.current;
267
+ const deletedDots = Math.max(0, rawDots - currentDots);
268
+ const maxDots = rows * cols + cols * 8;
269
+ const currentTokens = currentDots === 0 ? 0 : currentDots * tokens + view.clean.rows * 137;
270
+ return {
271
+ rawWidth: (rawDots / maxDots) * 100,
272
+ currentWidth: (currentDots / maxDots) * 100,
273
+ currentTokens,
274
+ savedTokens: deletedDots * tokens,
275
+ };
276
+ }
277
+ function seeded(seed) {
278
+ return () => {
279
+ seed = (seed * 16807 + 0) % 2147483647;
280
+ return seed / 2147483647;
281
+ };
282
+ }
283
+ function dotOpacity(rng) {
284
+ const dim = rng() < 0.6;
285
+ return dim ? 0.05 + rng() * 0.15 : 0.6 + rng() * 0.4;
286
+ }
287
+ function visibleRows(dots) {
288
+ const last = dots.reduce((max, d) => {
289
+ if (d.o <= 0)
290
+ return max;
291
+ return Math.max(max, Math.round(d.ty / gap));
292
+ }, -1);
293
+ return Math.max(1, last + 1);
294
+ }
295
+ function buildGrid(seed, active) {
296
+ const rng = seeded(seed);
297
+ const dots = [];
298
+ for (let r = 0; r < rows; r += 1) {
299
+ for (let c = 0; c < cols; c += 1) {
300
+ if (r >= active) {
301
+ dots.push({ tx: c * gap, ty: r * gap, o: 0 });
302
+ continue;
303
+ }
304
+ dots.push({
305
+ tx: c * gap,
306
+ ty: r * gap,
307
+ o: dotOpacity(rng),
308
+ });
309
+ }
310
+ }
311
+ const pool = [];
312
+ for (let i = 0; i < dots.length; i += 1) {
313
+ if (Math.floor(i / cols) < active)
314
+ pool.push(i);
315
+ }
316
+ const swaps = Math.floor(pool.length * (0.025 + rng() * 0.05));
317
+ for (let i = 0; i < swaps; i += 1) {
318
+ const a = pool[Math.floor(rng() * pool.length)];
319
+ const b = pool[Math.floor(rng() * pool.length)];
320
+ if (a === undefined || b === undefined || a === b)
321
+ continue;
322
+ const tmp = { tx: dots[a].tx, ty: dots[a].ty };
323
+ dots[a].tx = dots[b].tx;
324
+ dots[a].ty = dots[b].ty;
325
+ dots[b].tx = tmp.tx;
326
+ dots[b].ty = tmp.ty;
327
+ }
328
+ return dots;
329
+ }
330
+ function cleanGrid(dots, active, preserve = 0) {
331
+ const previous = new Set(dots
332
+ .map((d, i) => ({ i, d }))
333
+ .filter((entry) => entry.d.o > 0 && entry.d.ty < active * gap)
334
+ .sort((a, b) => a.d.ty - b.d.ty || a.d.tx - b.d.tx)
335
+ .slice(0, preserve)
336
+ .map((entry) => entry.i));
337
+ const scored = dots
338
+ .map((d, i) => ({ i, score: d.o }))
339
+ .filter((d) => dots[d.i].o > 0 &&
340
+ dots[d.i].ty < active * gap &&
341
+ !previous.has(d.i));
342
+ const kept = new Set([
343
+ ...previous,
344
+ ...scored.filter((d) => d.score >= 0.4).map((d) => d.i),
345
+ ]);
346
+ const packed = dots
347
+ .map((d, i) => ({ i, d }))
348
+ .filter((entry) => entry.d.o > 0 && entry.d.ty < active * gap && kept.has(entry.i))
349
+ .sort((a, b) => a.d.ty - b.d.ty || a.d.tx - b.d.tx);
350
+ const slots = new Map(packed.map((entry, i) => [
351
+ entry.i,
352
+ {
353
+ tx: (i % cols) * gap,
354
+ ty: Math.floor(i / cols) * gap,
355
+ },
356
+ ]));
357
+ return dots.map((d, i) => {
358
+ if (d.o > 0 && d.ty < active * gap && !kept.has(i)) {
359
+ return { ...d, delay: scanDelay(d, active), o: 0 };
360
+ }
361
+ const slot = slots.get(i);
362
+ return {
363
+ tx: slot?.tx ?? d.tx,
364
+ ty: slot?.ty ?? d.ty,
365
+ delay: scanDelay(d, active),
366
+ o: d.o,
367
+ };
368
+ });
369
+ }
370
+ function layerGrid(base, active, seed) {
371
+ const rng = seeded(seed);
372
+ let layer = 0;
373
+ const start = base.dots.filter((d) => d.o > 0).length;
374
+ return base.dots.map((d) => {
375
+ if (d.o > 0)
376
+ return { ...d, delay: undefined };
377
+ if (layer >= (active - base.rows) * cols)
378
+ return { ...d, o: 0 };
379
+ const slot = start + layer;
380
+ const r = Math.floor(slot / cols);
381
+ const c = slot % cols;
382
+ layer += 1;
383
+ return {
384
+ tx: c * gap,
385
+ ty: r * gap,
386
+ o: dotOpacity(rng),
387
+ };
388
+ });
389
+ }
390
+ function scanDelay(d, active) {
391
+ const r = Math.round(d.ty / gap);
392
+ const c = Math.round(d.tx / gap);
393
+ return (active - 1 - r + c * 0.18) * 42;
394
+ }
395
+ function orderDelay(d, active, span) {
396
+ const r = Math.round(d.ty / gap);
397
+ const c = Math.round(d.tx / gap);
398
+ const max = Math.max(1, active * cols - 1);
399
+ const order = Math.min(max, Math.max(0, r * cols + c));
400
+ return Math.round((order / max) * span);
401
+ }
402
+ function randomDelay(seed, index, span) {
403
+ const x = Math.sin(seed + index * 78.233) * 43758.5453;
404
+ return Math.round((x - Math.floor(x)) * span);
405
+ }
406
+ function shutdownDots(dots, seed) {
407
+ return dots.map((d, i) => ({
408
+ ...d,
409
+ delay: randomDelay(seed, i, shutdownSpan),
410
+ duration: shutdownDuration,
411
+ o: 0,
412
+ }));
413
+ }
414
+ function hiddenDots(dots) {
415
+ return dots.map((d) => ({ ...d, delay: 0, duration: 0, o: 0 }));
416
+ }
417
+ function appendDots(dots, active) {
418
+ return dots.map((d) => ({
419
+ ...d,
420
+ delay: orderDelay(d, active, appendSpan),
421
+ duration: appendDuration,
422
+ }));
423
+ }
424
+ function hideAddedDots(base, next) {
425
+ return next.map((d, i) => {
426
+ if ((base[i]?.o ?? 0) > 0 || d.o <= 0) {
427
+ return { ...d, delay: undefined, duration: undefined };
428
+ }
429
+ return { ...d, delay: 0, duration: 0, o: 0 };
430
+ });
431
+ }
432
+ function appendAddedDots(base, next) {
433
+ const added = next
434
+ .map((d, i) => ({ i, d }))
435
+ .filter((entry) => (base[entry.i]?.o ?? 0) <= 0 && entry.d.o > 0)
436
+ .sort((a, b) => a.d.ty - b.d.ty || a.d.tx - b.d.tx);
437
+ const max = Math.max(1, added.length - 1);
438
+ const delays = new Map(added.map((entry, i) => [entry.i, Math.round((i / max) * appendSpan)]));
439
+ return next.map((d, i) => {
440
+ const delay = delays.get(i);
441
+ if (delay === undefined)
442
+ return { ...d, delay: undefined, duration: undefined };
443
+ return { ...d, delay, duration: appendDuration };
444
+ });
445
+ }
446
+ function shutdownView(view, seed) {
447
+ return {
448
+ ...view,
449
+ noise: { ...view.noise, dots: shutdownDots(view.noise.dots, seed) },
450
+ clean: {
451
+ ...view.clean,
452
+ dots: shutdownDots(view.clean.dots, seed + 10000),
453
+ },
454
+ bar: { raw: 0, current: 0, clean: 0 },
455
+ };
456
+ }
457
+ function hiddenView(view) {
458
+ return {
459
+ ...view,
460
+ noise: { ...view.noise, dots: hiddenDots(view.noise.dots) },
461
+ bar: { raw: 0, current: 0, clean: 0 },
462
+ };
463
+ }
464
+ function appendView(view) {
465
+ return {
466
+ ...view,
467
+ noise: {
468
+ ...view.noise,
469
+ dots: appendDots(view.noise.dots, view.noise.rows),
470
+ },
471
+ };
472
+ }
473
+ function makeScene(rng) {
474
+ const noiseRows = 5 + Math.floor(rng() * 2);
475
+ const noiseSeed = Math.floor(rng() * 100000);
476
+ const rawNoiseDots = buildGrid(noiseSeed, noiseRows);
477
+ const cleanDots = cleanGrid(rawNoiseDots, noiseRows);
478
+ const cleanRows = visibleRows(cleanDots);
479
+ const cut = Math.round((1 -
480
+ activeDots(cleanDots, cleanRows) /
481
+ activeDots(rawNoiseDots, noiseRows)) *
482
+ 100);
483
+ const saved = Math.round((cut * (1.7 + rng() * 0.8)) / 5) * 5;
484
+ return {
485
+ noiseRows,
486
+ cleanRows,
487
+ cut,
488
+ saved,
489
+ noiseDots: rawNoiseDots,
490
+ cleanDots,
491
+ };
492
+ }
493
+ function activeDots(dots, active) {
494
+ return dots.filter((d) => d.o > 0 && d.ty < active * gap).length;
495
+ }
496
+ function makeView(rng) {
497
+ const scene = makeScene(rng);
498
+ return {
499
+ noise: {
500
+ rows: scene.noiseRows,
501
+ dots: scene.noiseDots,
502
+ cut: scene.cut,
503
+ saved: scene.saved,
504
+ },
505
+ clean: { rows: scene.cleanRows, dots: scene.cleanDots, cut: scene.cut },
506
+ bar: {
507
+ raw: activeDots(scene.noiseDots, scene.noiseRows),
508
+ current: activeDots(scene.noiseDots, scene.noiseRows),
509
+ clean: activeDots(scene.cleanDots, scene.cleanRows),
510
+ },
511
+ };
512
+ }
513
+ function makeLayerView(view, rng) {
514
+ const add = 6 + Math.floor(rng() * 2);
515
+ const preserve = view.clean.dots.filter((d) => d.o > 0).length;
516
+ const noiseRows = Math.min(rows, view.clean.rows + add);
517
+ const rawNoiseDots = layerGrid(view.clean, noiseRows, Math.floor(rng() * 100000));
518
+ const cleanDots = cleanGrid(rawNoiseDots, noiseRows, preserve);
519
+ const cleanRows = visibleRows(cleanDots);
520
+ const added = rawNoiseDots.filter((d, i) => d.o > 0 && (view.clean.dots[i]?.o ?? 0) <= 0).length;
521
+ const cut = Math.round((1 -
522
+ activeDots(cleanDots, cleanRows) /
523
+ activeDots(rawNoiseDots, noiseRows)) *
524
+ 100);
525
+ const cleaned = activeDots(cleanDots, cleanRows);
526
+ return {
527
+ noise: {
528
+ rows: noiseRows,
529
+ dots: rawNoiseDots,
530
+ cut,
531
+ saved: view.noise.saved,
532
+ },
533
+ clean: {
534
+ rows: cleanRows,
535
+ dots: cleanDots,
536
+ cut,
537
+ },
538
+ bar: {
539
+ raw: view.bar.raw + added,
540
+ current: view.bar.clean + added,
541
+ clean: cleaned,
542
+ },
543
+ };
544
+ }
545
+ function lerp(from, to, amount) {
546
+ return from + (to - from) * amount;
547
+ }
548
+ function ease(value) {
549
+ const progress = Math.min(Math.max(value, 0), 1);
550
+ return 1 - (1 - progress) ** 3;
551
+ }
552
+ //# sourceMappingURL=session-grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-grid.js","sourceRoot":"","sources":["../../../src/tui/pages/session-grid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { LocationAction } from "./location-card.js";
2
+ type OpenTuiCore = typeof import("@opentui/core");
3
+ type SetupCore = Pick<OpenTuiCore, "Box" | "Text" | "TextAttributes">;
4
+ export type SetupScreenProps = {
5
+ mode: LocationAction;
6
+ columns: number;
7
+ rows: number;
8
+ logs: string[];
9
+ logOffset: number;
10
+ logNotice: string | null;
11
+ onLogScroll: (delta: number) => void;
12
+ onLogLink: (url: string) => void;
13
+ };
14
+ export declare function SetupScreen(core: SetupCore, props: SetupScreenProps): import("@opentui/core").ProxiedVNode<typeof import("@opentui/core").BoxRenderable>;
15
+ export {};