@elaraai/e3-ui-cli 1.0.73 → 1.0.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/e3-ui.mjs +6 -0
- package/dist/app/assets/{engine-Bm-cIDd_-DwUdGcTZ.js → engine-DAHqaY4g-CeN5Sr3o.js} +1 -1
- package/dist/app/assets/{index-mj-YVVN1.js → index-oIzAaxly.js} +107 -105
- package/dist/app/index.html +1 -1
- package/dist/commands/tui.d.ts.map +1 -1
- package/dist/commands/tui.js +4 -1
- package/dist/commands/tui.js.map +1 -1
- package/dist/tui/app.d.ts.map +1 -1
- package/dist/tui/app.js +3 -0
- package/dist/tui/app.js.map +1 -1
- package/dist/tui/controller.d.ts.map +1 -1
- package/dist/tui/controller.js +27 -3
- package/dist/tui/controller.js.map +1 -1
- package/dist/tui/model/tree.d.ts +16 -2
- package/dist/tui/model/tree.d.ts.map +1 -1
- package/dist/tui/model/tree.js +72 -33
- package/dist/tui/model/tree.js.map +1 -1
- package/dist/tui/render/text.d.ts +7 -3
- package/dist/tui/render/text.d.ts.map +1 -1
- package/dist/tui/render/text.js +64 -32
- package/dist/tui/render/text.js.map +1 -1
- package/dist/tui/ui/App.d.ts +6 -3
- package/dist/tui/ui/App.d.ts.map +1 -1
- package/dist/tui/ui/App.js +16 -3
- package/dist/tui/ui/App.js.map +1 -1
- package/dist/tui/ui/shell/widgets.d.ts +41 -0
- package/dist/tui/ui/shell/widgets.d.ts.map +1 -1
- package/dist/tui/ui/shell/widgets.js +63 -40
- package/dist/tui/ui/shell/widgets.js.map +1 -1
- package/dist/tui/ui/views/dashboard.d.ts +79 -24
- package/dist/tui/ui/views/dashboard.d.ts.map +1 -1
- package/dist/tui/ui/views/dashboard.js +221 -169
- package/dist/tui/ui/views/dashboard.js.map +1 -1
- package/package.json +14 -14
|
@@ -10,12 +10,22 @@
|
|
|
10
10
|
* failed task's logs. Status detail is inline (`✗ failed · exit 2`,
|
|
11
11
|
* `◐ waiting`, `◔ in-progress`).
|
|
12
12
|
*
|
|
13
|
+
* The column is built in two steps. {@link dashboardModel} derives what
|
|
14
|
+
* follows from the data and the width — the counts, the events the panel
|
|
15
|
+
* lists, the latest event per task, the dataset map, the fitted table
|
|
16
|
+
* plans, each row's cells and where each selectable row sits — once per
|
|
17
|
+
* data change: a single-entry cache keyed on the identity of the status,
|
|
18
|
+
* the execution, the dataset list, the task list, the width and the
|
|
19
|
+
* breakpoint. {@link dashboardLines} then renders only the lines on
|
|
20
|
+
* screen, restyling the selected row and stamping the clock and the
|
|
21
|
+
* spinner. A selection move costs the window, not the workspace.
|
|
22
|
+
*
|
|
13
23
|
* @packageDocumentation
|
|
14
24
|
*/
|
|
15
25
|
import type { DataflowEvent, WorkspaceStatusResult } from '@elaraai/e3-api-client';
|
|
16
26
|
import type { Glyphs } from '../../render/glyphs.js';
|
|
17
|
-
import { type Breakpoint } from '../../render/layout.js';
|
|
18
|
-
import type { NavOp, TuiState } from '../../state/actions.js';
|
|
27
|
+
import { type Breakpoint, type ColumnSpec } from '../../render/layout.js';
|
|
28
|
+
import type { ExecutionData, NavOp, TuiState } from '../../state/actions.js';
|
|
19
29
|
import { type Controller } from '../../controller.js';
|
|
20
30
|
import type { Hit, Pane } from '../frame.js';
|
|
21
31
|
import { type Line, type RenderCtx } from '../lines.js';
|
|
@@ -35,11 +45,6 @@ export interface DashboardRow {
|
|
|
35
45
|
name: string;
|
|
36
46
|
line: number;
|
|
37
47
|
}
|
|
38
|
-
/** The column under the title: its lines and the selectable rows. */
|
|
39
|
-
export interface DashboardColumn {
|
|
40
|
-
lines: Line[];
|
|
41
|
-
rows: DashboardRow[];
|
|
42
|
-
}
|
|
43
48
|
/** Event rows the execution panel shows at most. */
|
|
44
49
|
export declare const MAX_EVENT_ROWS = 6;
|
|
45
50
|
/**
|
|
@@ -74,36 +79,86 @@ export declare function accountedBar(tasks: readonly TaskInfo[], g: Glyphs): {
|
|
|
74
79
|
* @returns One event per task
|
|
75
80
|
*/
|
|
76
81
|
export declare function latestPerTask(events: readonly DataflowEvent[]): DataflowEvent[];
|
|
82
|
+
/** A task's row: the cells that follow from the data, and what the `SIZE · LAST RUN` cell is stamped from per frame. */
|
|
83
|
+
export interface TaskRowModel {
|
|
84
|
+
task: TaskInfo;
|
|
85
|
+
/** The cells the data decides (`size` is stamped at render — it carries the clock and the spinner while the task runs). */
|
|
86
|
+
cells: TableRow['cells'];
|
|
87
|
+
/** The output's size text (`12.1 MB` / `—`). */
|
|
88
|
+
size: string;
|
|
89
|
+
/** The task's latest dataflow event, if any. */
|
|
90
|
+
event: DataflowEvent | undefined;
|
|
91
|
+
}
|
|
77
92
|
/**
|
|
78
|
-
* The
|
|
93
|
+
* The data-derived column: everything that follows from the workspace's
|
|
94
|
+
* data and the terminal width. Built by {@link dashboardModel}, rendered
|
|
95
|
+
* by {@link dashboardLines}.
|
|
79
96
|
*
|
|
80
|
-
* @
|
|
81
|
-
* @
|
|
82
|
-
* @
|
|
83
|
-
* @
|
|
84
|
-
* @
|
|
97
|
+
* @property status - The status the model follows (undefined → `placeholder` is the whole column)
|
|
98
|
+
* @property placeholder - The column while there is no status: nothing deployed, an error, or loading
|
|
99
|
+
* @property counts - The counts block (the two stat groups and the accounted bar)
|
|
100
|
+
* @property execution - The execution the panel shows
|
|
101
|
+
* @property live - Whether the panel shows the live feed
|
|
102
|
+
* @property done - Events past `start` (the live feed's `N of M tasks`)
|
|
103
|
+
* @property events - The events the panel lists: the latest per task — the last ones while live, the failures after
|
|
104
|
+
* @property latest - The latest event per task
|
|
105
|
+
* @property taskPlan - The tasks table's fitted column plan
|
|
106
|
+
* @property tasks - The task rows
|
|
107
|
+
* @property inputPlan - The inputs table's fitted column plan
|
|
108
|
+
* @property inputs - The input rows
|
|
109
|
+
* @property inputNames - The input names, in row order
|
|
110
|
+
* @property rows - The selectable rows in column order (failures, tasks, inputs) with their line indices
|
|
111
|
+
* @property total - Lines in the column
|
|
112
|
+
* @property panelAt - The execution panel's first line
|
|
113
|
+
* @property tasksAt - The TASKS section line (the header follows, then the rows)
|
|
114
|
+
* @property inputsAt - The INPUTS section line
|
|
85
115
|
*/
|
|
86
|
-
export
|
|
116
|
+
export interface DashboardModel {
|
|
117
|
+
status: WorkspaceStatusResult | undefined;
|
|
118
|
+
placeholder: Line[];
|
|
119
|
+
counts: Line[];
|
|
120
|
+
execution: ExecutionData | undefined;
|
|
121
|
+
live: boolean;
|
|
122
|
+
done: number;
|
|
123
|
+
events: DataflowEvent[];
|
|
124
|
+
latest: ReadonlyMap<string, DataflowEvent>;
|
|
125
|
+
taskPlan: ColumnSpec[];
|
|
126
|
+
tasks: TaskRowModel[];
|
|
127
|
+
inputPlan: ColumnSpec[];
|
|
128
|
+
inputs: TableRow[];
|
|
129
|
+
inputNames: string[];
|
|
130
|
+
rows: DashboardRow[];
|
|
131
|
+
total: number;
|
|
132
|
+
panelAt: number;
|
|
133
|
+
tasksAt: number;
|
|
134
|
+
inputsAt: number;
|
|
135
|
+
}
|
|
87
136
|
/**
|
|
88
|
-
* The
|
|
137
|
+
* The dashboard model for a workspace — built once per data change and
|
|
138
|
+
* returned as the same object until the status, the execution, the
|
|
139
|
+
* dataset list, the task list, the width or the breakpoint changes. The
|
|
140
|
+
* clock, the spinner and the selection are not inputs: they restyle lines
|
|
141
|
+
* at render ({@link dashboardLines}).
|
|
89
142
|
*
|
|
90
143
|
* @param state - The store state
|
|
91
144
|
* @param ws - The workspace
|
|
92
|
-
* @param
|
|
93
|
-
* @
|
|
94
|
-
* @returns The rows, in the status order
|
|
145
|
+
* @param dctx - The dashboard context (its width and breakpoint key the cache)
|
|
146
|
+
* @returns The model
|
|
95
147
|
*/
|
|
96
|
-
export declare function
|
|
148
|
+
export declare function dashboardModel(state: TuiState, ws: string, dctx: DashboardCtx): DashboardModel;
|
|
97
149
|
/**
|
|
98
|
-
*
|
|
150
|
+
* The column's lines in `[top, top + visible)` — the window the screen
|
|
151
|
+
* shows, rendered from the model with the selected row restyled and the
|
|
152
|
+
* clock and the spinner stamped in.
|
|
99
153
|
*
|
|
100
|
-
* @param
|
|
101
|
-
* @param ws - The workspace
|
|
154
|
+
* @param model - The dashboard model
|
|
102
155
|
* @param dctx - The dashboard context
|
|
103
156
|
* @param sel - The selected row index
|
|
104
|
-
* @
|
|
157
|
+
* @param top - The first line
|
|
158
|
+
* @param visible - Lines in the window
|
|
159
|
+
* @returns The lines (fewer when the column ends first)
|
|
105
160
|
*/
|
|
106
|
-
export declare function
|
|
161
|
+
export declare function dashboardLines(model: DashboardModel, dctx: DashboardCtx, sel: number, top: number, visible: number): Line[];
|
|
107
162
|
/**
|
|
108
163
|
* The dashboard body: the fixed title, then the column window with its
|
|
109
164
|
* scrollbar — plus the window's clickable rows and pane for the mouse.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/views/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/views/dashboard.ts"],"names":[],"mappings":"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"}
|