buildless-cli 0.1.8 → 0.1.10

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 (46) hide show
  1. package/README.md +0 -20
  2. package/dist/index.js +2347 -83
  3. package/dist/index.js.map +1 -1
  4. package/package.json +4 -3
  5. package/dist/ai.d.ts +0 -8
  6. package/dist/ai.d.ts.map +0 -1
  7. package/dist/ai.js +0 -25
  8. package/dist/ai.js.map +0 -1
  9. package/dist/app.d.ts +0 -9
  10. package/dist/app.d.ts.map +0 -1
  11. package/dist/app.js +0 -67
  12. package/dist/app.js.map +0 -1
  13. package/dist/auth.d.ts +0 -14
  14. package/dist/auth.d.ts.map +0 -1
  15. package/dist/auth.js +0 -100
  16. package/dist/auth.js.map +0 -1
  17. package/dist/config.d.ts +0 -14
  18. package/dist/config.d.ts.map +0 -1
  19. package/dist/config.js +0 -45
  20. package/dist/config.js.map +0 -1
  21. package/dist/firestore.d.ts +0 -28
  22. package/dist/firestore.d.ts.map +0 -1
  23. package/dist/firestore.js +0 -340
  24. package/dist/firestore.js.map +0 -1
  25. package/dist/index.d.ts +0 -3
  26. package/dist/index.d.ts.map +0 -1
  27. package/dist/log.d.ts +0 -3
  28. package/dist/log.d.ts.map +0 -1
  29. package/dist/log.js +0 -10
  30. package/dist/log.js.map +0 -1
  31. package/dist/ui/app-search.d.ts +0 -11
  32. package/dist/ui/app-search.d.ts.map +0 -1
  33. package/dist/ui/app-search.js +0 -83
  34. package/dist/ui/app-search.js.map +0 -1
  35. package/dist/ui/runner.d.ts +0 -14
  36. package/dist/ui/runner.d.ts.map +0 -1
  37. package/dist/ui/runner.js +0 -506
  38. package/dist/ui/runner.js.map +0 -1
  39. package/dist/ui/useRunnerRenderSource.d.ts +0 -53
  40. package/dist/ui/useRunnerRenderSource.d.ts.map +0 -1
  41. package/dist/ui/useRunnerRenderSource.js +0 -69
  42. package/dist/ui/useRunnerRenderSource.js.map +0 -1
  43. package/dist/ui/useRunnerSession.d.ts +0 -16
  44. package/dist/ui/useRunnerSession.d.ts.map +0 -1
  45. package/dist/ui/useRunnerSession.js +0 -188
  46. package/dist/ui/useRunnerSession.js.map +0 -1
package/dist/ui/runner.js DELETED
@@ -1,506 +0,0 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- import { useEffect, useMemo, useRef, useState } from "react";
3
- import { Box, Text, useInput } from "ink";
4
- import { callUnifiedChat } from "../ai.js";
5
- import { useRunnerSession } from "./useRunnerSession.js";
6
- import { useRunnerRenderSource } from "./useRunnerRenderSource.js";
7
- export const Runner = ({ projectId, versionId, terminalUrl, idToken, firebaseProjectId, appCheckToken, onBackToApps, onExit, }) => {
8
- const { screen: rawScreen, error, connecting, sessionId, sendMessage } = useRunnerSession({
9
- projectId,
10
- versionId,
11
- terminalUrl,
12
- idToken,
13
- });
14
- const [listScrollOffsets, setListScrollOffsets] = useState({});
15
- const { screen, listScrollInfo, lineWidgetIds } = useRunnerRenderSource(rawScreen, listScrollOffsets);
16
- const [inputMode, setInputMode] = useState(false);
17
- const [activeInputIndex, setActiveInputIndex] = useState(0);
18
- const [fieldValues, setFieldValues] = useState({});
19
- // AI chat mode state
20
- const [aiMode, setAiMode] = useState(false);
21
- const [aiMessages, setAiMessages] = useState([]);
22
- const [aiInput, setAiInput] = useState("");
23
- const [aiLoading, setAiLoading] = useState(false);
24
- const aiRequestRef = useRef(0);
25
- const sendAiMessage = async (text) => {
26
- if (!text.trim() || aiLoading)
27
- return;
28
- const userMsg = { role: "user", text: text.trim() };
29
- const updatedMessages = [...aiMessages, userMsg];
30
- setAiMessages(updatedMessages);
31
- setAiInput("");
32
- setAiLoading(true);
33
- const requestId = ++aiRequestRef.current;
34
- try {
35
- const response = await callUnifiedChat({
36
- firebaseProjectId,
37
- idToken,
38
- appCheckToken,
39
- payload: {
40
- projectId,
41
- versionId: versionId || "published",
42
- message: text.trim(),
43
- screenId: rawScreen?.screen,
44
- conversation: updatedMessages,
45
- },
46
- });
47
- if (requestId !== aiRequestRef.current)
48
- return;
49
- const newMessages = [];
50
- if (response.operations?.length) {
51
- for (const op of response.operations) {
52
- const isError = op.result && typeof op.result === "object" && "error" in op.result;
53
- const summary = isError
54
- ? `${op.tool}: error - ${op.result.error}`
55
- : `${op.tool}: OK`;
56
- newMessages.push({ role: "tool", text: summary, toolName: op.tool });
57
- }
58
- }
59
- newMessages.push({ role: "assistant", text: response.text });
60
- setAiMessages((prev) => [...prev, ...newMessages]);
61
- }
62
- catch (err) {
63
- if (requestId !== aiRequestRef.current)
64
- return;
65
- const errMsg = err instanceof Error ? err.message : String(err);
66
- setAiMessages((prev) => [...prev, { role: "assistant", text: `Error: ${errMsg}` }]);
67
- }
68
- finally {
69
- if (requestId === aiRequestRef.current)
70
- setAiLoading(false);
71
- }
72
- };
73
- const inputFields = useMemo(() => {
74
- if (!screen)
75
- return [];
76
- if (screen.inputFields && screen.inputFields.length > 0)
77
- return screen.inputFields;
78
- if (screen.inputField)
79
- return [screen.inputField];
80
- return [];
81
- }, [screen]);
82
- const selectableLines = useMemo(() => {
83
- return (screen?.actionLines || [])
84
- .filter((line) => line.selectable && (line.target || line.aidAlias || line.action))
85
- .sort((a, b) => a.index - b.index);
86
- }, [screen?.actionLines]);
87
- const shortcutByKey = useMemo(() => {
88
- const map = new Map();
89
- for (const s of screen?.shortcuts || []) {
90
- const k = String(s.key || "").trim().toLowerCase();
91
- if (k)
92
- map.set(k, s);
93
- }
94
- return map;
95
- }, [screen?.shortcuts]);
96
- const [selectedLineIndex, setSelectedLineIndex] = useState(0);
97
- useEffect(() => {
98
- setSelectedLineIndex(0);
99
- setListScrollOffsets({});
100
- }, [screen?.sessionId]);
101
- useEffect(() => {
102
- if (selectableLines.length > 0) {
103
- setSelectedLineIndex((prev) => Math.min(prev, selectableLines.length - 1));
104
- }
105
- }, [selectableLines.length]);
106
- useEffect(() => {
107
- if (!inputFields.length) {
108
- setInputMode(false);
109
- setActiveInputIndex(0);
110
- return;
111
- }
112
- setActiveInputIndex((prev) => Math.min(prev, inputFields.length - 1));
113
- }, [inputFields.length]);
114
- useEffect(() => {
115
- if (!inputFields.length)
116
- return;
117
- setFieldValues((prev) => {
118
- const next = { ...prev };
119
- for (const field of inputFields) {
120
- const isNonEditable = (field.maxLength ?? 0) === 0;
121
- if (isNonEditable || next[field.id] === undefined) {
122
- next[field.id] = String(field.value || "");
123
- }
124
- }
125
- return next;
126
- });
127
- }, [inputFields]);
128
- const collectFields = (extra) => {
129
- return { ...fieldValues, ...extra };
130
- };
131
- const applySelectedLine = (line) => {
132
- const fields = collectFields(line.fields);
133
- if (line.target) {
134
- sendMessage({ type: "nav", target: line.target, fields });
135
- return;
136
- }
137
- if (line.aidAlias) {
138
- sendMessage({ type: "aid", key: line.aidAlias, fields });
139
- return;
140
- }
141
- if (line.action) {
142
- sendMessage({ type: "action", action: line.action, fields });
143
- }
144
- };
145
- const executeShortcut = (shortcut) => {
146
- const fields = collectFields(shortcut.fields);
147
- if (shortcut.target) {
148
- sendMessage({ type: "nav", target: shortcut.target, fields });
149
- return;
150
- }
151
- if (shortcut.action) {
152
- sendMessage({ type: "action", action: shortcut.action, fields });
153
- return;
154
- }
155
- if (shortcut.aidAlias) {
156
- sendMessage({ type: "aid", key: shortcut.aidAlias, fields });
157
- }
158
- };
159
- const toggleActiveCheckbox = () => {
160
- const activeField = inputFields[activeInputIndex];
161
- if (!activeField)
162
- return;
163
- const toggleAction = activeField.action ?? { type: "data.toggleFlag", path: activeField.id };
164
- sendMessage({ type: "action", action: toggleAction, fields: collectFields() });
165
- };
166
- const activeField = inputFields[activeInputIndex] ?? null;
167
- const isEditable = activeField != null && (activeField.maxLength ?? 0) > 0;
168
- const isMultiLine = isEditable && (activeField.rows ?? 1) > 1;
169
- useInput((input, key) => {
170
- if (key.ctrl && input === "c") {
171
- onExit();
172
- return;
173
- }
174
- if (!screen)
175
- return;
176
- // -- AI chat mode --
177
- if (aiMode) {
178
- if (key.escape) {
179
- setAiMode(false);
180
- return;
181
- }
182
- if (key.backspace || key.delete) {
183
- setAiInput((prev) => prev.slice(0, -1));
184
- return;
185
- }
186
- if (key.return && !aiLoading) {
187
- void sendAiMessage(aiInput);
188
- return;
189
- }
190
- if (input && !key.ctrl && !key.meta) {
191
- setAiInput((prev) => prev + input);
192
- }
193
- return;
194
- }
195
- // -- Input mode (typing into a text field) --
196
- if (inputMode) {
197
- if (!activeField)
198
- return;
199
- if (key.escape) {
200
- sendMessage({ type: "aid", key: "B", fields: fieldValues });
201
- setInputMode(false);
202
- return;
203
- }
204
- // Non-editable field (checkbox/select/radio/number/date): arrow keys cycle fields, Enter/Space toggle
205
- if (!isEditable) {
206
- if (key.tab || input === "\t" || key.downArrow || key.rightArrow) {
207
- setActiveInputIndex((prev) => (prev + 1) % inputFields.length);
208
- return;
209
- }
210
- if (key.upArrow || key.leftArrow) {
211
- setActiveInputIndex((prev) => inputFields.length ? (prev - 1 + inputFields.length) % inputFields.length : 0);
212
- return;
213
- }
214
- if (key.return || input === " ") {
215
- toggleActiveCheckbox();
216
- return;
217
- }
218
- // Pass through to shortcut handling below
219
- if (input) {
220
- const shortcut = shortcutByKey.get(input.toLowerCase());
221
- if (shortcut) {
222
- executeShortcut(shortcut);
223
- return;
224
- }
225
- }
226
- return;
227
- }
228
- // Editable text field
229
- if (key.tab || input === "\t") {
230
- // Tab submits the field values and exits input mode
231
- sendMessage({ type: "aid", key: "ENTER", fields: fieldValues });
232
- setInputMode(false);
233
- return;
234
- }
235
- if (key.backspace || key.delete) {
236
- setFieldValues((prev) => ({
237
- ...prev,
238
- [activeField.id]: (prev[activeField.id] || "").slice(0, -1),
239
- }));
240
- return;
241
- }
242
- if (key.return) {
243
- if (isMultiLine) {
244
- // Enter in multi-line: add newline
245
- setFieldValues((prev) => {
246
- const current = prev[activeField.id] || "";
247
- if (current.length >= activeField.maxLength)
248
- return prev;
249
- return { ...prev, [activeField.id]: current + "\n" };
250
- });
251
- return;
252
- }
253
- // Single-line Enter: submit
254
- sendMessage({ type: "aid", key: "ENTER", fields: fieldValues });
255
- setInputMode(false);
256
- return;
257
- }
258
- if (input) {
259
- setFieldValues((prev) => {
260
- const current = prev[activeField.id] || "";
261
- if (current.length >= activeField.maxLength)
262
- return prev;
263
- return { ...prev, [activeField.id]: current + input };
264
- });
265
- }
266
- return;
267
- }
268
- // -- Normal mode (not typing) --
269
- if (input === "x" || input === "q") {
270
- onBackToApps();
271
- return;
272
- }
273
- if (key.escape) {
274
- sendMessage({ type: "aid", key: "B", fields: fieldValues });
275
- return;
276
- }
277
- // Ctrl+Enter: ENTER_BACK
278
- if (key.return && (key.ctrl || key.meta)) {
279
- sendMessage({ type: "aid", key: "ENTER_BACK", fields: fieldValues });
280
- return;
281
- }
282
- // Space: toggle checkbox when focused on non-editable field
283
- if (input === " " && activeField && !isEditable) {
284
- toggleActiveCheckbox();
285
- return;
286
- }
287
- if (key.return) {
288
- // Non-editable field focused: toggle checkbox
289
- if (activeField && !isEditable) {
290
- toggleActiveCheckbox();
291
- return;
292
- }
293
- // Editable field focused: enter input mode
294
- if (inputFields.length > 0 && isEditable) {
295
- setInputMode(true);
296
- return;
297
- }
298
- // Selectable action line: execute it
299
- const line = selectableLines[selectedLineIndex];
300
- if (line) {
301
- applySelectedLine(line);
302
- return;
303
- }
304
- // Default: send ENTER
305
- sendMessage({ type: "aid", key: "ENTER", fields: fieldValues });
306
- return;
307
- }
308
- // PageUp/PageDown: scroll list by a full page
309
- if (key.pageUp || key.pageDown) {
310
- const delta = key.pageDown ? 1 : -1;
311
- const currentLine = selectableLines[selectedLineIndex];
312
- const wId = currentLine ? lineWidgetIds?.[currentLine.index] : undefined;
313
- if (wId && listScrollInfo?.[wId]) {
314
- const info = listScrollInfo[wId];
315
- const scrollAmount = delta * info.visibleRows;
316
- const newOffset = Math.max(0, Math.min(info.offset + scrollAmount, info.totalRows - info.visibleRows));
317
- if (newOffset !== info.offset) {
318
- setListScrollOffsets((prev) => ({ ...prev, [wId]: newOffset }));
319
- }
320
- }
321
- return;
322
- }
323
- // Arrow keys: map to date picker shortcuts (h/l/j/k) when available,
324
- // otherwise cycle input fields or selectable lines
325
- if (key.upArrow || key.downArrow || key.leftArrow || key.rightArrow) {
326
- const arrowMap = {
327
- // ink key names aren't available as event.key, so we check the boolean flags
328
- };
329
- let mapped;
330
- if (key.leftArrow)
331
- mapped = "h";
332
- else if (key.rightArrow)
333
- mapped = "l";
334
- else if (key.upArrow)
335
- mapped = "k";
336
- else if (key.downArrow)
337
- mapped = "j";
338
- if (mapped) {
339
- const shortcut = shortcutByKey.get(mapped);
340
- if (shortcut) {
341
- executeShortcut(shortcut);
342
- return;
343
- }
344
- }
345
- // Up/Down: cycle input fields if present, otherwise selectable lines
346
- if (key.upArrow || key.downArrow) {
347
- const delta = key.downArrow ? 1 : -1;
348
- if (inputFields.length > 0) {
349
- setActiveInputIndex((prev) => (prev + delta + inputFields.length) % inputFields.length);
350
- }
351
- else if (selectableLines.length > 0) {
352
- const nextIdx = selectedLineIndex + delta;
353
- // Check if at boundary and can scroll a list widget
354
- if (nextIdx < 0 || nextIdx >= selectableLines.length) {
355
- const currentLine = selectableLines[selectedLineIndex];
356
- const wId = currentLine ? lineWidgetIds?.[currentLine.index] : undefined;
357
- if (wId && listScrollInfo?.[wId]) {
358
- const info = listScrollInfo[wId];
359
- if (delta > 0 && info.offset + info.visibleRows < info.totalRows) {
360
- setListScrollOffsets((prev) => ({ ...prev, [wId]: info.offset + 1 }));
361
- return;
362
- }
363
- if (delta < 0 && info.offset > 0) {
364
- setListScrollOffsets((prev) => ({ ...prev, [wId]: info.offset - 1 }));
365
- return;
366
- }
367
- }
368
- }
369
- setSelectedLineIndex((prev) => (prev + delta + selectableLines.length) % selectableLines.length);
370
- }
371
- }
372
- return;
373
- }
374
- if ((key.tab || input === "\t" || input === "i") && inputFields.length > 0) {
375
- setInputMode(true);
376
- return;
377
- }
378
- // Shortcut keys (checked before hardcoded aids so screen-defined hotkeys take priority)
379
- if (input) {
380
- const shortcut = shortcutByKey.get(input.toLowerCase());
381
- if (shortcut) {
382
- executeShortcut(shortcut);
383
- return;
384
- }
385
- }
386
- if (input === "/" && !shortcutByKey.has("/")) {
387
- setAiMode(true);
388
- return;
389
- }
390
- if (input === "b") {
391
- sendMessage({ type: "aid", key: "B", fields: fieldValues });
392
- return;
393
- }
394
- if (input === "c") {
395
- sendMessage({ type: "aid", key: "C", fields: fieldValues });
396
- return;
397
- }
398
- });
399
- // Build a map of lineIndex -> fieldId for all input fields (including multi-line spans)
400
- // NOTE: all useMemo/useEffect hooks must be before early returns
401
- const fieldLineMap = useMemo(() => {
402
- const map = new Map();
403
- for (const field of inputFields) {
404
- if (typeof field.lineIndex !== "number")
405
- continue;
406
- const rows = Math.max(1, Number(field.rows ?? 1));
407
- const lineStep = Math.max(1, Number(field.lineStep ?? 1));
408
- for (let r = 0; r < rows; r++) {
409
- map.set(field.lineIndex + r * lineStep, {
410
- fieldId: field.id,
411
- rowOffset: r,
412
- label: field.label || field.id,
413
- rows,
414
- });
415
- }
416
- }
417
- return map;
418
- }, [inputFields]);
419
- // Build display lines with inline editing
420
- const displayLines = useMemo(() => {
421
- if (!screen)
422
- return [];
423
- const lines = [...(screen.lines || [])];
424
- if (!inputMode || !activeField || !isEditable)
425
- return lines;
426
- const fieldId = activeField.id;
427
- const editValue = fieldValues[fieldId] || "";
428
- const label = activeField.label || activeField.id;
429
- const labelPrefix = label ? `${label}: ` : "";
430
- const indent = " ".repeat(labelPrefix.length);
431
- const rows = Math.max(1, Number(activeField.rows ?? 1));
432
- const lineStep = Math.max(1, Number(activeField.lineStep ?? 1));
433
- if (typeof activeField.lineIndex !== "number")
434
- return lines;
435
- // Split the edited value into display rows
436
- const editLines = editValue.split(/\r?\n/);
437
- const paddedEditLines = editLines.slice(0, rows);
438
- while (paddedEditLines.length < rows)
439
- paddedEditLines.push("");
440
- for (let r = 0; r < rows; r++) {
441
- const lineIdx = activeField.lineIndex + r * lineStep;
442
- if (lineIdx >= 0 && lineIdx < lines.length) {
443
- const prefix = r === 0 ? labelPrefix : indent;
444
- const text = paddedEditLines[r] || "";
445
- // Show cursor on the last row with content, or last visible row if overflowing
446
- const cursor = (r === editLines.length - 1 || (r === rows - 1 && editLines.length >= rows)) ? "\u2588" : "";
447
- lines[lineIdx] = `${prefix}${text}${cursor}`;
448
- }
449
- }
450
- return lines;
451
- }, [screen, inputMode, activeField, isEditable, fieldValues, inputFields]);
452
- // Hints for status bar
453
- const hintText = useMemo(() => {
454
- if (aiMode)
455
- return "Type message, Enter=send, Esc=back to app";
456
- if (!activeField)
457
- return "Enter=select, /=AI, b=back, Tab/i=edit, arrows=nav, x=apps";
458
- if (inputMode && isEditable) {
459
- return isMultiLine
460
- ? "Type to edit, Enter=newline, Tab=submit, Esc=cancel"
461
- : "Type to edit, Enter=submit, Tab=submit, Esc=cancel";
462
- }
463
- if (isEditable)
464
- return "Enter=edit, Tab=next field, arrows=nav, b=back, x=apps";
465
- return "Enter/Space=toggle, arrows=nav, b=back, x=apps";
466
- }, [activeField, aiMode, inputMode, isEditable, isMultiLine]);
467
- if (error) {
468
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: "red", children: ["Runner error: ", error] }), _jsx(Text, { children: "Press x to return to apps, or Ctrl+C to exit." })] }));
469
- }
470
- if (connecting || !screen) {
471
- return (_jsx(Box, { flexDirection: "column", children: _jsx(Text, { color: "green", children: "Starting runner..." }) }));
472
- }
473
- const selectedLine = selectableLines[selectedLineIndex];
474
- if (aiMode) {
475
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: "green", children: ["AI CHAT | project=", projectId, " | screen=", rawScreen?.screen || "-"] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [aiMessages.length === 0 && !aiLoading && (_jsx(Text, { color: "gray", children: "Ask anything about this app or screen." })), aiMessages.map((msg, idx) => {
476
- const prefix = msg.role === "user" ? "You: " : msg.role === "tool" ? `TOOL(${msg.toolName || "?"}): ` : "AI: ";
477
- const color = msg.role === "user" ? "cyan" : msg.role === "tool" ? "yellow" : "white";
478
- return (_jsx(Box, { flexDirection: "column", children: _jsxs(Text, { color: color, wrap: "wrap", children: [prefix, msg.text] }) }, idx));
479
- }), aiLoading && _jsx(Text, { color: "yellow", children: "Thinking..." })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { color: "green", children: ["> ", aiInput, _jsx(Text, { color: "green", children: "\u2588" })] }), _jsx(Text, { color: "gray", children: hintText })] })] }));
480
- }
481
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: "green", children: ["RUNNER | project=", projectId, " | version=", versionId || "published", " | session=", sessionId || "-"] }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: displayLines.map((line, idx) => {
482
- const match = selectableLines.findIndex((entry) => entry.index === idx);
483
- const isSelectedActionLine = match >= 0 && selectableLines[match] === selectedLine;
484
- const fieldInfo = fieldLineMap.get(idx);
485
- const isActiveInputLine = fieldInfo != null && fieldInfo.fieldId === activeField?.id;
486
- const isAnyInputLine = fieldInfo != null;
487
- const lineColor = isSelectedActionLine
488
- ? "green"
489
- : isActiveInputLine
490
- ? inputMode
491
- ? "yellow"
492
- : "cyan"
493
- : isAnyInputLine
494
- ? "cyan"
495
- : undefined;
496
- const lineBackground = isActiveInputLine && inputMode ? "blackBright" : undefined;
497
- // Add spacing before standalone action buttons (like web's isButton marginTop)
498
- const actionLine = match >= 0 ? selectableLines[match] : undefined;
499
- const isButton = actionLine && !actionLine.fields;
500
- const prevWidgetId = idx > 0 ? lineWidgetIds?.[idx - 1] : undefined;
501
- const curWidgetId = lineWidgetIds?.[idx];
502
- const needsTopSpace = isButton && prevWidgetId && prevWidgetId !== curWidgetId;
503
- return (_jsx(Box, { flexDirection: "column", marginTop: needsTopSpace ? 1 : 0, children: _jsx(Text, { color: lineColor, backgroundColor: lineBackground, bold: isActiveInputLine, children: line }) }, `${idx}-${line}`));
504
- }) }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: "gray", children: screen.statusLine }), _jsx(Text, { color: "gray", children: hintText })] })] }));
505
- };
506
- //# sourceMappingURL=runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/ui/runner.tsx"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- import type { TerminalActionLine, TerminalScreenPayload } from "@blo/shared/terminal";
2
- import type { ListScrollInfo } from "@blo/shared/screen-runtime";
3
- export declare const useRunnerRenderSource: (screen: TerminalScreenPayload | null, listScrollOffsets?: Record<string, number>) => {
4
- screen: TerminalScreenPayload | null;
5
- listScrollInfo: Record<string, ListScrollInfo> | undefined;
6
- lineWidgetIds?: undefined;
7
- } | {
8
- screen: {
9
- lines: string[];
10
- actionLines: TerminalActionLine[];
11
- inputFields: {
12
- lineIndex: number | undefined;
13
- id: string;
14
- value: string;
15
- maxLength: number;
16
- label?: string;
17
- rows?: number;
18
- lineStep?: number;
19
- action?: import("@blo/shared/screen-spec").ScreenAction;
20
- }[];
21
- inputField: {
22
- id: string;
23
- value: string;
24
- maxLength: number;
25
- label: string | undefined;
26
- lineIndex: number | undefined;
27
- rows: number | undefined;
28
- action: import("@blo/shared/screen-spec").ScreenAction | undefined;
29
- } | undefined;
30
- shortcuts: import("@blo/shared/screen-runtime").RuntimeShortcut[];
31
- statusLine: string;
32
- type: "screen";
33
- sessionId: string;
34
- screen: string;
35
- runnerVersion?: string;
36
- terminalVersion?: string;
37
- screenSpec?: import("@blo/shared/screen-spec").TerminalScreenSpecV2;
38
- state?: {
39
- activeScreenId: string;
40
- fields: Record<string, string>;
41
- fieldErrors?: Record<string, string>;
42
- data: Record<string, unknown>;
43
- statusLine: string;
44
- };
45
- actionId?: string;
46
- clientSeq?: number;
47
- revision?: number;
48
- deduped?: boolean;
49
- };
50
- listScrollInfo: Record<string, ListScrollInfo> | undefined;
51
- lineWidgetIds: (string | undefined)[];
52
- };
53
- //# sourceMappingURL=useRunnerRenderSource.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRunnerRenderSource.d.ts","sourceRoot":"","sources":["../../src/ui/useRunnerRenderSource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGjE,eAAO,MAAM,qBAAqB,GAChC,QAAQ,qBAAqB,GAAG,IAAI,EACpC,oBAAoB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;oBAGiD,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAuC5H,CAAC;;;;;;;;;;;CA8BX,CAAC"}