@elaraai/e3-ui-cli 1.0.72 → 1.0.74
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/README.md +46 -21
- package/bin/e3-ui.mjs +6 -0
- package/dist/app/assets/{engine-BKZbmXkC-DmcCFcnb.js → engine-Bm-cIDd_-DwUdGcTZ.js} +1 -1
- package/dist/app/assets/{index-BJNWHnRv.js → index-mj-YVVN1.js} +91 -91
- package/dist/app/index.html +1 -1
- package/dist/cli.js +36 -5
- package/dist/cli.js.map +1 -1
- package/dist/commands/tui.d.ts +84 -0
- package/dist/commands/tui.d.ts.map +1 -0
- package/dist/commands/tui.js +89 -0
- package/dist/commands/tui.js.map +1 -0
- package/dist/tui/api.d.ts +108 -0
- package/dist/tui/api.d.ts.map +1 -0
- package/dist/tui/api.js +130 -0
- package/dist/tui/api.js.map +1 -0
- package/dist/tui/app.d.ts +23 -0
- package/dist/tui/app.d.ts.map +1 -0
- package/dist/tui/app.js +244 -0
- package/dist/tui/app.js.map +1 -0
- package/dist/tui/controller.d.ts +116 -0
- package/dist/tui/controller.d.ts.map +1 -0
- package/dist/tui/controller.js +644 -0
- package/dist/tui/controller.js.map +1 -0
- package/dist/tui/data/dataflow.d.ts +68 -0
- package/dist/tui/data/dataflow.d.ts.map +1 -0
- package/dist/tui/data/dataflow.js +137 -0
- package/dist/tui/data/dataflow.js.map +1 -0
- package/dist/tui/data/dataset.d.ts +80 -0
- package/dist/tui/data/dataset.d.ts.map +1 -0
- package/dist/tui/data/dataset.js +297 -0
- package/dist/tui/data/dataset.js.map +1 -0
- package/dist/tui/data/edit-buffer.d.ts +74 -0
- package/dist/tui/data/edit-buffer.d.ts.map +1 -0
- package/dist/tui/data/edit-buffer.js +120 -0
- package/dist/tui/data/edit-buffer.js.map +1 -0
- package/dist/tui/data/feeds.d.ts +45 -0
- package/dist/tui/data/feeds.d.ts.map +1 -0
- package/dist/tui/data/feeds.js +318 -0
- package/dist/tui/data/feeds.js.map +1 -0
- package/dist/tui/data/logs.d.ts +68 -0
- package/dist/tui/data/logs.d.ts.map +1 -0
- package/dist/tui/data/logs.js +134 -0
- package/dist/tui/data/logs.js.map +1 -0
- package/dist/tui/input/commands.d.ts +159 -0
- package/dist/tui/input/commands.d.ts.map +1 -0
- package/dist/tui/input/commands.js +259 -0
- package/dist/tui/input/commands.js.map +1 -0
- package/dist/tui/input/completion.d.ts +63 -0
- package/dist/tui/input/completion.d.ts.map +1 -0
- package/dist/tui/input/completion.js +128 -0
- package/dist/tui/input/completion.js.map +1 -0
- package/dist/tui/input/keymap.d.ts +153 -0
- package/dist/tui/input/keymap.d.ts.map +1 -0
- package/dist/tui/input/keymap.js +206 -0
- package/dist/tui/input/keymap.js.map +1 -0
- package/dist/tui/input/mouse.d.ts +52 -0
- package/dist/tui/input/mouse.d.ts.map +1 -0
- package/dist/tui/input/mouse.js +55 -0
- package/dist/tui/input/mouse.js.map +1 -0
- package/dist/tui/lifecycle.d.ts +61 -0
- package/dist/tui/lifecycle.d.ts.map +1 -0
- package/dist/tui/lifecycle.js +99 -0
- package/dist/tui/lifecycle.js.map +1 -0
- package/dist/tui/model/catalogue.d.ts +28 -0
- package/dist/tui/model/catalogue.d.ts.map +1 -0
- package/dist/tui/model/catalogue.js +94 -0
- package/dist/tui/model/catalogue.js.map +1 -0
- package/dist/tui/model/help.d.ts +37 -0
- package/dist/tui/model/help.d.ts.map +1 -0
- package/dist/tui/model/help.js +210 -0
- package/dist/tui/model/help.js.map +1 -0
- package/dist/tui/model/index.d.ts +42 -0
- package/dist/tui/model/index.d.ts.map +1 -0
- package/dist/tui/model/index.js +50 -0
- package/dist/tui/model/index.js.map +1 -0
- package/dist/tui/model/status.d.ts +88 -0
- package/dist/tui/model/status.d.ts.map +1 -0
- package/dist/tui/model/status.js +137 -0
- package/dist/tui/model/status.js.map +1 -0
- package/dist/tui/model/tree.d.ts +126 -0
- package/dist/tui/model/tree.d.ts.map +1 -0
- package/dist/tui/model/tree.js +217 -0
- package/dist/tui/model/tree.js.map +1 -0
- package/dist/tui/model/types.d.ts +21 -0
- package/dist/tui/model/types.d.ts.map +1 -0
- package/dist/tui/model/types.js +46 -0
- package/dist/tui/model/types.js.map +1 -0
- package/dist/tui/render/glyphs.d.ts +122 -0
- package/dist/tui/render/glyphs.d.ts.map +1 -0
- package/dist/tui/render/glyphs.js +122 -0
- package/dist/tui/render/glyphs.js.map +1 -0
- package/dist/tui/render/layout.d.ts +145 -0
- package/dist/tui/render/layout.d.ts.map +1 -0
- package/dist/tui/render/layout.js +209 -0
- package/dist/tui/render/layout.js.map +1 -0
- package/dist/tui/render/text.d.ts +153 -0
- package/dist/tui/render/text.d.ts.map +1 -0
- package/dist/tui/render/text.js +320 -0
- package/dist/tui/render/text.js.map +1 -0
- package/dist/tui/render/theme.d.ts +88 -0
- package/dist/tui/render/theme.d.ts.map +1 -0
- package/dist/tui/render/theme.js +145 -0
- package/dist/tui/render/theme.js.map +1 -0
- package/dist/tui/session.d.ts +78 -0
- package/dist/tui/session.d.ts.map +1 -0
- package/dist/tui/session.js +237 -0
- package/dist/tui/session.js.map +1 -0
- package/dist/tui/state/actions.d.ts +584 -0
- package/dist/tui/state/actions.d.ts.map +1 -0
- package/dist/tui/state/actions.js +62 -0
- package/dist/tui/state/actions.js.map +1 -0
- package/dist/tui/state/persist.d.ts +114 -0
- package/dist/tui/state/persist.d.ts.map +1 -0
- package/dist/tui/state/persist.js +187 -0
- package/dist/tui/state/persist.js.map +1 -0
- package/dist/tui/state/poll.d.ts +99 -0
- package/dist/tui/state/poll.d.ts.map +1 -0
- package/dist/tui/state/poll.js +160 -0
- package/dist/tui/state/poll.js.map +1 -0
- package/dist/tui/state/reducer.d.ts +16 -0
- package/dist/tui/state/reducer.d.ts.map +1 -0
- package/dist/tui/state/reducer.js +363 -0
- package/dist/tui/state/reducer.js.map +1 -0
- package/dist/tui/state/store.d.ts +37 -0
- package/dist/tui/state/store.d.ts.map +1 -0
- package/dist/tui/state/store.js +84 -0
- package/dist/tui/state/store.js.map +1 -0
- package/dist/tui/suspend.d.ts +17 -0
- package/dist/tui/suspend.d.ts.map +1 -0
- package/dist/tui/suspend.js +33 -0
- package/dist/tui/suspend.js.map +1 -0
- package/dist/tui/ui/App.d.ts +44 -0
- package/dist/tui/ui/App.d.ts.map +1 -0
- package/dist/tui/ui/App.js +105 -0
- package/dist/tui/ui/App.js.map +1 -0
- package/dist/tui/ui/frame.d.ts +86 -0
- package/dist/tui/ui/frame.d.ts.map +1 -0
- package/dist/tui/ui/frame.js +42 -0
- package/dist/tui/ui/frame.js.map +1 -0
- package/dist/tui/ui/lines.d.ts +92 -0
- package/dist/tui/ui/lines.d.ts.map +1 -0
- package/dist/tui/ui/lines.js +94 -0
- package/dist/tui/ui/lines.js.map +1 -0
- package/dist/tui/ui/shell/chrome.d.ts +61 -0
- package/dist/tui/ui/shell/chrome.d.ts.map +1 -0
- package/dist/tui/ui/shell/chrome.js +272 -0
- package/dist/tui/ui/shell/chrome.js.map +1 -0
- package/dist/tui/ui/shell/widgets.d.ts +116 -0
- package/dist/tui/ui/shell/widgets.d.ts.map +1 -0
- package/dist/tui/ui/shell/widgets.js +183 -0
- package/dist/tui/ui/shell/widgets.js.map +1 -0
- package/dist/tui/ui/views/about.d.ts +20 -0
- package/dist/tui/ui/views/about.d.ts.map +1 -0
- package/dist/tui/ui/views/about.js +40 -0
- package/dist/tui/ui/views/about.js.map +1 -0
- package/dist/tui/ui/views/all.d.ts +17 -0
- package/dist/tui/ui/views/all.d.ts.map +1 -0
- package/dist/tui/ui/views/all.js +17 -0
- package/dist/tui/ui/views/all.js.map +1 -0
- package/dist/tui/ui/views/dashboard.d.ts +211 -0
- package/dist/tui/ui/views/dashboard.d.ts.map +1 -0
- package/dist/tui/ui/views/dashboard.js +651 -0
- package/dist/tui/ui/views/dashboard.js.map +1 -0
- package/dist/tui/ui/views/help.d.ts +17 -0
- package/dist/tui/ui/views/help.d.ts.map +1 -0
- package/dist/tui/ui/views/help.js +65 -0
- package/dist/tui/ui/views/help.js.map +1 -0
- package/dist/tui/ui/views/index.d.ts +42 -0
- package/dist/tui/ui/views/index.d.ts.map +1 -0
- package/dist/tui/ui/views/index.js +42 -0
- package/dist/tui/ui/views/index.js.map +1 -0
- package/dist/tui/ui/views/input.d.ts +6 -0
- package/dist/tui/ui/views/input.d.ts.map +1 -0
- package/dist/tui/ui/views/input.js +494 -0
- package/dist/tui/ui/views/input.js.map +1 -0
- package/dist/tui/ui/views/launch.d.ts +16 -0
- package/dist/tui/ui/views/launch.d.ts.map +1 -0
- package/dist/tui/ui/views/launch.js +43 -0
- package/dist/tui/ui/views/launch.js.map +1 -0
- package/dist/tui/ui/views/refusal.d.ts +20 -0
- package/dist/tui/ui/views/refusal.d.ts.map +1 -0
- package/dist/tui/ui/views/refusal.js +47 -0
- package/dist/tui/ui/views/refusal.js.map +1 -0
- package/dist/tui/ui/views/repos.d.ts +10 -0
- package/dist/tui/ui/views/repos.d.ts.map +1 -0
- package/dist/tui/ui/views/repos.js +93 -0
- package/dist/tui/ui/views/repos.js.map +1 -0
- package/dist/tui/ui/views/task.d.ts +17 -0
- package/dist/tui/ui/views/task.d.ts.map +1 -0
- package/dist/tui/ui/views/task.js +309 -0
- package/dist/tui/ui/views/task.js.map +1 -0
- package/dist/tui/ui/views/wordmark.d.ts +15 -0
- package/dist/tui/ui/views/wordmark.d.ts.map +1 -0
- package/dist/tui/ui/views/wordmark.js +50 -0
- package/dist/tui/ui/views/wordmark.js.map +1 -0
- package/dist/tui/ui/views/workspaces.d.ts +17 -0
- package/dist/tui/ui/views/workspaces.d.ts.map +1 -0
- package/dist/tui/ui/views/workspaces.js +127 -0
- package/dist/tui/ui/views/workspaces.js.map +1 -0
- package/dist/tui/ui/widgets/leaf-editor.d.ts +58 -0
- package/dist/tui/ui/widgets/leaf-editor.d.ts.map +1 -0
- package/dist/tui/ui/widgets/leaf-editor.js +119 -0
- package/dist/tui/ui/widgets/leaf-editor.js.map +1 -0
- package/dist/tui/ui/widgets/logs.d.ts +99 -0
- package/dist/tui/ui/widgets/logs.d.ts.map +1 -0
- package/dist/tui/ui/widgets/logs.js +291 -0
- package/dist/tui/ui/widgets/logs.js.map +1 -0
- package/dist/tui/ui/widgets/reads.d.ts +62 -0
- package/dist/tui/ui/widgets/reads.d.ts.map +1 -0
- package/dist/tui/ui/widgets/reads.js +122 -0
- package/dist/tui/ui/widgets/reads.js.map +1 -0
- package/dist/tui/ui/widgets/runs.d.ts +51 -0
- package/dist/tui/ui/widgets/runs.d.ts.map +1 -0
- package/dist/tui/ui/widgets/runs.js +86 -0
- package/dist/tui/ui/widgets/runs.js.map +1 -0
- package/dist/tui/ui/widgets/tree.d.ts +149 -0
- package/dist/tui/ui/widgets/tree.d.ts.map +1 -0
- package/dist/tui/ui/widgets/tree.js +584 -0
- package/dist/tui/ui/widgets/tree.js.map +1 -0
- package/package.json +22 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/tui/lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import type { Catalogue } from '../input/completion.js';
|
|
6
|
+
import type { Glyphs } from '../render/glyphs.js';
|
|
7
|
+
import type { TuiState } from '../state/actions.js';
|
|
8
|
+
/**
|
|
9
|
+
* The entry of a dataset in the workspace's dataset list (type / size), by
|
|
10
|
+
* dotted path. The recursive listing shows a task's subtree as one leaf at
|
|
11
|
+
* `.tasks.<name>` carrying the output's type / hash / size, while the status
|
|
12
|
+
* names the output `.tasks.<name>.output` — both spellings resolve.
|
|
13
|
+
*/
|
|
14
|
+
export declare function datasetEntries(state: TuiState, ws: string): Map<string, {
|
|
15
|
+
type: string;
|
|
16
|
+
size: number | null;
|
|
17
|
+
hash: string | null;
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Builds the catalogue.
|
|
21
|
+
*
|
|
22
|
+
* @param state - The store state
|
|
23
|
+
* @param g - The glyph set
|
|
24
|
+
* @param tags - Variant tags offered by `/tag` on the selected row
|
|
25
|
+
* @returns The catalogue
|
|
26
|
+
*/
|
|
27
|
+
export declare function buildCatalogue(state: TuiState, g: Glyphs, tags?: string[]): Catalogue;
|
|
28
|
+
//# sourceMappingURL=catalogue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalogue.d.ts","sourceRoot":"","sources":["../../../src/tui/model/catalogue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAmBnI;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CA+CrF"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { formatSize } from '../render/text.js';
|
|
6
|
+
import { compactType } from './types.js';
|
|
7
|
+
import { datasetStatusCell, statusText, taskStatusCell } from './status.js';
|
|
8
|
+
/**
|
|
9
|
+
* The entry of a dataset in the workspace's dataset list (type / size), by
|
|
10
|
+
* dotted path. The recursive listing shows a task's subtree as one leaf at
|
|
11
|
+
* `.tasks.<name>` carrying the output's type / hash / size, while the status
|
|
12
|
+
* names the output `.tasks.<name>.output` — both spellings resolve.
|
|
13
|
+
*/
|
|
14
|
+
export function datasetEntries(state, ws) {
|
|
15
|
+
const raw = new Map();
|
|
16
|
+
for (const entry of state.data.datasets[ws] ?? []) {
|
|
17
|
+
if (entry.type !== 'dataset')
|
|
18
|
+
continue;
|
|
19
|
+
raw.set(`.${entry.value.path.replace(/^\./, '')}`, {
|
|
20
|
+
type: entry.value.type,
|
|
21
|
+
size: entry.value.size.type === 'some' ? Number(entry.value.size.value) : null,
|
|
22
|
+
hash: entry.value.hash.type === 'some' ? entry.value.hash.value : null,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
for (const task of state.data.status[ws]?.result.tasks ?? []) {
|
|
26
|
+
if (raw.has(task.output))
|
|
27
|
+
continue;
|
|
28
|
+
const leaf = raw.get(task.output.replace(/\.output$/, ''));
|
|
29
|
+
if (leaf !== undefined)
|
|
30
|
+
raw.set(task.output, leaf);
|
|
31
|
+
}
|
|
32
|
+
const uiTasks = new Set((state.data.taskList[ws] ?? []).filter(t => t.kind.type === 'some' && t.kind.value === 'ui').map(t => `.tasks.${t.name}.output`));
|
|
33
|
+
const out = new Map();
|
|
34
|
+
for (const [path, entry] of raw)
|
|
35
|
+
out.set(path, { type: compactType(entry.type, uiTasks.has(path)), size: entry.size, hash: entry.hash });
|
|
36
|
+
return out;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Builds the catalogue.
|
|
40
|
+
*
|
|
41
|
+
* @param state - The store state
|
|
42
|
+
* @param g - The glyph set
|
|
43
|
+
* @param tags - Variant tags offered by `/tag` on the selected row
|
|
44
|
+
* @returns The catalogue
|
|
45
|
+
*/
|
|
46
|
+
export function buildCatalogue(state, g, tags) {
|
|
47
|
+
const items = [];
|
|
48
|
+
for (const w of state.data.workspaces ?? []) {
|
|
49
|
+
const pkg = w.packageName.type === 'some' ? `${w.packageName.value}${w.packageVersion.type === 'some' ? `@${w.packageVersion.value}` : ''}` : '';
|
|
50
|
+
items.push({ kind: 'workspace', name: w.name, workspace: null, status: w.deployed ? `${g.dot} DEPLOYED` : `${g.empty} EMPTY`, type: pkg, detail: '' });
|
|
51
|
+
}
|
|
52
|
+
for (const [ws, { result }] of Object.entries(state.data.status)) {
|
|
53
|
+
const entries = datasetEntries(state, ws);
|
|
54
|
+
for (const task of result.tasks) {
|
|
55
|
+
const entry = entries.get(task.output);
|
|
56
|
+
items.push({
|
|
57
|
+
kind: 'task',
|
|
58
|
+
name: task.name,
|
|
59
|
+
workspace: ws,
|
|
60
|
+
status: statusText(taskStatusCell(task.status, g)),
|
|
61
|
+
type: entry?.type ?? '',
|
|
62
|
+
detail: entry?.size != null ? formatSize(entry.size) : '—',
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
for (const dataset of result.datasets) {
|
|
66
|
+
const entry = entries.get(dataset.path);
|
|
67
|
+
const status = statusText(datasetStatusCell(dataset.status.type, g));
|
|
68
|
+
if (!dataset.isTaskOutput && dataset.path.startsWith('.inputs.')) {
|
|
69
|
+
items.push({
|
|
70
|
+
kind: 'input',
|
|
71
|
+
name: dataset.path.slice('.inputs.'.length),
|
|
72
|
+
workspace: ws,
|
|
73
|
+
status,
|
|
74
|
+
type: entry?.type ?? '',
|
|
75
|
+
detail: entry?.size != null ? formatSize(entry.size) : '—',
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
items.push({
|
|
79
|
+
kind: 'dataset',
|
|
80
|
+
name: dataset.path,
|
|
81
|
+
workspace: ws,
|
|
82
|
+
status,
|
|
83
|
+
type: '',
|
|
84
|
+
detail: entry?.size != null ? formatSize(entry.size) : '—',
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
for (const name of state.data.repos?.names ?? []) {
|
|
89
|
+
const status = state.data.repos?.status[name];
|
|
90
|
+
items.push({ kind: 'repo', name, workspace: null, status: status !== undefined ? `${status.workspaceCount} workspaces` : '', type: '', detail: '' });
|
|
91
|
+
}
|
|
92
|
+
return { items, tags };
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=catalogue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalogue.js","sourceRoot":"","sources":["../../../src/tui/model/catalogue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The help view's content — one tab per page (plus what works everywhere),
|
|
7
|
+
* so the commands and keys listed are exactly the ones that work where you
|
|
8
|
+
* are. `?` opens the tab of the page it was pressed on.
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
import type { HelpTab, ViewKind } from '../state/actions.js';
|
|
13
|
+
/** A help column: a heading and `[key, effect]` rows. */
|
|
14
|
+
export interface HelpColumn {
|
|
15
|
+
title: string;
|
|
16
|
+
rows: [string, string][];
|
|
17
|
+
}
|
|
18
|
+
/** The tabs in order, with their labels. */
|
|
19
|
+
export declare const HELP_TABS: readonly {
|
|
20
|
+
tab: HelpTab;
|
|
21
|
+
label: string;
|
|
22
|
+
}[];
|
|
23
|
+
/**
|
|
24
|
+
* The help tab a page opens on.
|
|
25
|
+
*
|
|
26
|
+
* @param from - The page `?` was pressed on
|
|
27
|
+
* @returns Its tab (`everywhere` for the launch / refusal / help / about screens)
|
|
28
|
+
*/
|
|
29
|
+
export declare function helpTabFor(from: ViewKind): HelpTab;
|
|
30
|
+
/**
|
|
31
|
+
* The columns of a help tab.
|
|
32
|
+
*
|
|
33
|
+
* @param tab - The tab
|
|
34
|
+
* @returns Three columns (some may be empty)
|
|
35
|
+
*/
|
|
36
|
+
export declare function helpColumns(tab: HelpTab): HelpColumn[];
|
|
37
|
+
//# sourceMappingURL=help.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/tui/model/help.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE7D,yDAAyD;AACzD,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;CAC5B;AAED,4CAA4C;AAC5C,eAAO,MAAM,SAAS,EAAE,SAAS;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAO/D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CASlD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,EAAE,CA6KtD"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/** The tabs in order, with their labels. */
|
|
6
|
+
export const HELP_TABS = [
|
|
7
|
+
{ tab: 'everywhere', label: 'Everywhere' },
|
|
8
|
+
{ tab: 'repos', label: 'Repos' },
|
|
9
|
+
{ tab: 'workspaces', label: 'Workspaces' },
|
|
10
|
+
{ tab: 'dashboard', label: 'Dashboard' },
|
|
11
|
+
{ tab: 'task', label: 'Task' },
|
|
12
|
+
{ tab: 'input', label: 'Input' },
|
|
13
|
+
];
|
|
14
|
+
/**
|
|
15
|
+
* The help tab a page opens on.
|
|
16
|
+
*
|
|
17
|
+
* @param from - The page `?` was pressed on
|
|
18
|
+
* @returns Its tab (`everywhere` for the launch / refusal / help / about screens)
|
|
19
|
+
*/
|
|
20
|
+
export function helpTabFor(from) {
|
|
21
|
+
switch (from) {
|
|
22
|
+
case 'repos': return 'repos';
|
|
23
|
+
case 'workspaces': return 'workspaces';
|
|
24
|
+
case 'dashboard': return 'dashboard';
|
|
25
|
+
case 'task': return 'task';
|
|
26
|
+
case 'input': return 'input';
|
|
27
|
+
default: return 'everywhere';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The columns of a help tab.
|
|
32
|
+
*
|
|
33
|
+
* @param tab - The tab
|
|
34
|
+
* @returns Three columns (some may be empty)
|
|
35
|
+
*/
|
|
36
|
+
export function helpColumns(tab) {
|
|
37
|
+
switch (tab) {
|
|
38
|
+
case 'everywhere':
|
|
39
|
+
return [
|
|
40
|
+
{
|
|
41
|
+
title: 'COMMANDS',
|
|
42
|
+
rows: [
|
|
43
|
+
['/task <name>', 'open a task'],
|
|
44
|
+
['/input <name>', 'open an input'],
|
|
45
|
+
['/dataset <path>', 'open a dataset'],
|
|
46
|
+
['/workspace <name>', 'switch workspace'],
|
|
47
|
+
['/workspaces /repos', 'the lists'],
|
|
48
|
+
['/repo <path|url>', 'open another repo'],
|
|
49
|
+
['/login <url>', 'device-flow login'],
|
|
50
|
+
['/refresh', 'poll everything now'],
|
|
51
|
+
['/help /about /quit', ''],
|
|
52
|
+
['', ''],
|
|
53
|
+
['typing without /', 'fuzzy-jumps anywhere'],
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
title: 'KEYS',
|
|
58
|
+
rows: [
|
|
59
|
+
['?', 'help for this page'],
|
|
60
|
+
['q ^c', 'quit'],
|
|
61
|
+
['esc ⌫', 'back'],
|
|
62
|
+
['tab ⇧tab', 'next / prev tab'],
|
|
63
|
+
['1 2 3 …', 'tabs'],
|
|
64
|
+
['R', 'refresh now'],
|
|
65
|
+
['/', 'a command'],
|
|
66
|
+
['↑↓ j k', 'move'],
|
|
67
|
+
['pgup pgdn ^u ^d', 'page'],
|
|
68
|
+
['gg G', 'top / bottom'],
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
title: 'MOUSE',
|
|
73
|
+
rows: [
|
|
74
|
+
['wheel', 'scroll'],
|
|
75
|
+
['click', 'select'],
|
|
76
|
+
['click ▸', 'toggle'],
|
|
77
|
+
['drag ▮', 'scrollbar'],
|
|
78
|
+
['click tab / crumb', 'act'],
|
|
79
|
+
['', ''],
|
|
80
|
+
['--no-mouse', 'keyboard only'],
|
|
81
|
+
],
|
|
82
|
+
},
|
|
83
|
+
];
|
|
84
|
+
case 'repos':
|
|
85
|
+
return [
|
|
86
|
+
{ title: 'COMMANDS', rows: [['/repo <name>', 'open a repository'], ['/login <url>', 'device-flow login'], ['/refresh', 'poll now']] },
|
|
87
|
+
{ title: 'KEYS', rows: [['↑↓ j k', 'move'], ['⏎ →', 'open the repository'], ['q', 'quit']] },
|
|
88
|
+
{ title: '', rows: [] },
|
|
89
|
+
];
|
|
90
|
+
case 'workspaces':
|
|
91
|
+
return [
|
|
92
|
+
{ title: 'COMMANDS', rows: [['/workspace <name>', 'open a workspace'], ['/repos', 'back to the repositories'], ['/refresh', 'poll now']] },
|
|
93
|
+
{ title: 'KEYS', rows: [['↑↓ j k', 'move'], ['⏎ →', 'open the workspace'], ['q', 'quit']] },
|
|
94
|
+
{ title: '', rows: [] },
|
|
95
|
+
];
|
|
96
|
+
case 'dashboard':
|
|
97
|
+
return [
|
|
98
|
+
{
|
|
99
|
+
title: 'COMMANDS',
|
|
100
|
+
rows: [
|
|
101
|
+
['/run [--force]', 'run the dataflow'],
|
|
102
|
+
['/run --filter <glob>', 'only matching tasks'],
|
|
103
|
+
['/run --concurrency <n>', ''],
|
|
104
|
+
['/stop', 'cancel the dataflow'],
|
|
105
|
+
['/task /input', 'open a row'],
|
|
106
|
+
['/logs <task> [stderr]', 'a task\'s logs'],
|
|
107
|
+
['/runs <task>', 'a task\'s runs'],
|
|
108
|
+
['/workspace <name>', 'switch workspace'],
|
|
109
|
+
],
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
title: 'KEYS',
|
|
113
|
+
rows: [
|
|
114
|
+
['↑↓ j k', 'move'],
|
|
115
|
+
['⏎ →', 'open the task / input'],
|
|
116
|
+
['r', 'prefill /run'],
|
|
117
|
+
['x', 'prefill /stop'],
|
|
118
|
+
['w', 'workspaces'],
|
|
119
|
+
['R', 'refresh now'],
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{ title: 'ROWS', rows: [['tasks', '● up-to-date ◐ waiting ◔ running'], ['', '○ ready ✗ failed'], ['inputs', '● up-to-date ◐ stale ○ unset'], ['execution', '⏎ on a failed row → logs']] },
|
|
123
|
+
];
|
|
124
|
+
case 'task':
|
|
125
|
+
return [
|
|
126
|
+
{
|
|
127
|
+
title: 'COMMANDS',
|
|
128
|
+
rows: [
|
|
129
|
+
['/find <"key">', 'exact key'],
|
|
130
|
+
['/find <prefix>', 'key prefix'],
|
|
131
|
+
['/find f1|f2', 'struct-key fields'],
|
|
132
|
+
['/goto <row> /goto N%', 'jump'],
|
|
133
|
+
['/save [file]', 'write .beast2 / .log'],
|
|
134
|
+
['/logs [stderr] /runs', 'switch tab'],
|
|
135
|
+
],
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
title: 'KEYS · VALUE TREE',
|
|
139
|
+
rows: [
|
|
140
|
+
['↑↓ j k', 'move'],
|
|
141
|
+
['→ l', 'expand'],
|
|
142
|
+
['← h', 'collapse'],
|
|
143
|
+
['⏎ space', 'toggle'],
|
|
144
|
+
['⇧←', 'collapse subtree'],
|
|
145
|
+
['pgup pgdn ^u ^d', 'page'],
|
|
146
|
+
['gg G', 'top / bottom'],
|
|
147
|
+
['n N', 'next / prev match'],
|
|
148
|
+
['s', 'save .beast2'],
|
|
149
|
+
['1 2 3 4 5', 'Output Stdout Stderr Runs Reads'],
|
|
150
|
+
['tab ⇧tab', 'next / prev tab'],
|
|
151
|
+
],
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
title: 'KEYS · STDOUT / STDERR',
|
|
155
|
+
rows: [
|
|
156
|
+
['↑↓ pgup pgdn', 'scroll'],
|
|
157
|
+
['G', 'end'],
|
|
158
|
+
['F', 'follow the tail'],
|
|
159
|
+
['← → tab', 'the other tabs'],
|
|
160
|
+
['n N', 'next / prev match'],
|
|
161
|
+
['s', 'save .log'],
|
|
162
|
+
['c', 'copy'],
|
|
163
|
+
['', ''],
|
|
164
|
+
['KEYS · RUNS', ''],
|
|
165
|
+
['⏎', 'expand the inputs'],
|
|
166
|
+
],
|
|
167
|
+
},
|
|
168
|
+
];
|
|
169
|
+
case 'input':
|
|
170
|
+
return [
|
|
171
|
+
{
|
|
172
|
+
title: 'COMMANDS',
|
|
173
|
+
rows: [
|
|
174
|
+
['/tag <name>', 'switch a variant tag'],
|
|
175
|
+
['/tag some /tag none', 'set / clear an option'],
|
|
176
|
+
['/add [key]', 'add an item / entry'],
|
|
177
|
+
['/remove', 'remove the item'],
|
|
178
|
+
['/apply /discard', 'the pending edits'],
|
|
179
|
+
['/find /goto', 'as in a task'],
|
|
180
|
+
],
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
title: 'KEYS',
|
|
184
|
+
rows: [
|
|
185
|
+
['e', 'edit the leaf'],
|
|
186
|
+
['a', 'add'],
|
|
187
|
+
['x', 'remove'],
|
|
188
|
+
['t', 'tag / set / clear'],
|
|
189
|
+
['⏎', 'apply all'],
|
|
190
|
+
['esc', 'discard'],
|
|
191
|
+
['↑↓ → ←', 'move / expand / collapse'],
|
|
192
|
+
],
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
title: 'EDITING',
|
|
196
|
+
rows: [
|
|
197
|
+
['⏎', 'commit the leaf'],
|
|
198
|
+
['esc', 'cancel the leaf'],
|
|
199
|
+
['space', 'toggle a boolean'],
|
|
200
|
+
['', ''],
|
|
201
|
+
['◆ N DIRTY', 'the header pill'],
|
|
202
|
+
['┆', 'a changed row'],
|
|
203
|
+
['conflict', 'the server changed:'],
|
|
204
|
+
['', '⏎ reload · esc keep'],
|
|
205
|
+
],
|
|
206
|
+
},
|
|
207
|
+
];
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/tui/model/help.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* View models — the pure selectors every view renders from and the
|
|
7
|
+
* controller navigates with. A view model is `{ rows, visible }` at
|
|
8
|
+
* minimum: the rows the primary list has and how many fit, so `list/move`
|
|
9
|
+
* is driven from one place.
|
|
10
|
+
*
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
import { type ShellLayout } from '../render/layout.js';
|
|
14
|
+
import type { TuiState } from '../state/actions.js';
|
|
15
|
+
/** The rows of the current view's primary list and how many are visible. */
|
|
16
|
+
export interface ListModel {
|
|
17
|
+
count: number;
|
|
18
|
+
visible: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The shell layout for the state (the commit bar shows while editing, the
|
|
22
|
+
* completion list while it has items).
|
|
23
|
+
*
|
|
24
|
+
* @param state - The store state
|
|
25
|
+
* @returns The layout
|
|
26
|
+
*/
|
|
27
|
+
export declare function layoutOf(state: TuiState): ShellLayout;
|
|
28
|
+
/**
|
|
29
|
+
* Registers a view's list model (called by each view model module on load).
|
|
30
|
+
*
|
|
31
|
+
* @param kind - The view kind
|
|
32
|
+
* @param model - The selector
|
|
33
|
+
*/
|
|
34
|
+
export declare function registerListModel(kind: string, model: (state: TuiState, layout: ShellLayout) => ListModel): void;
|
|
35
|
+
/**
|
|
36
|
+
* The current view's primary list model.
|
|
37
|
+
*
|
|
38
|
+
* @param state - The store state
|
|
39
|
+
* @returns The rows and visible count (0 / 0 for views without a list)
|
|
40
|
+
*/
|
|
41
|
+
export declare function listModel(state: TuiState): ListModel;
|
|
42
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tui/model/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,4EAA4E;AAC5E,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,WAAW,CAKrD;AAKD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,KAAK,SAAS,GAAG,IAAI,CAEhH;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAIpD"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* View models — the pure selectors every view renders from and the
|
|
7
|
+
* controller navigates with. A view model is `{ rows, visible }` at
|
|
8
|
+
* minimum: the rows the primary list has and how many fit, so `list/move`
|
|
9
|
+
* is driven from one place.
|
|
10
|
+
*
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
import { shellLayout } from '../render/layout.js';
|
|
14
|
+
/**
|
|
15
|
+
* The shell layout for the state (the commit bar shows while editing, the
|
|
16
|
+
* completion list while it has items).
|
|
17
|
+
*
|
|
18
|
+
* @param state - The store state
|
|
19
|
+
* @returns The layout
|
|
20
|
+
*/
|
|
21
|
+
export function layoutOf(state) {
|
|
22
|
+
return shellLayout(state.size, {
|
|
23
|
+
commit: state.edit !== null && state.edit.ops.length > 0,
|
|
24
|
+
completion: state.command.completion?.items.length ?? 0,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/** Extension point: per-view list models registered by the view modules. */
|
|
28
|
+
const listModels = new Map();
|
|
29
|
+
/**
|
|
30
|
+
* Registers a view's list model (called by each view model module on load).
|
|
31
|
+
*
|
|
32
|
+
* @param kind - The view kind
|
|
33
|
+
* @param model - The selector
|
|
34
|
+
*/
|
|
35
|
+
export function registerListModel(kind, model) {
|
|
36
|
+
listModels.set(kind, model);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The current view's primary list model.
|
|
40
|
+
*
|
|
41
|
+
* @param state - The store state
|
|
42
|
+
* @returns The rows and visible count (0 / 0 for views without a list)
|
|
43
|
+
*/
|
|
44
|
+
export function listModel(state) {
|
|
45
|
+
const model = listModels.get(state.view.kind);
|
|
46
|
+
if (model === undefined)
|
|
47
|
+
return { count: 0, visible: 0 };
|
|
48
|
+
return model(state, layoutOf(state));
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tui/model/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAoB,MAAM,qBAAqB,CAAC;AASpE;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAe;IACpC,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE;QAC3B,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;QACxD,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;KAC1D,CAAC,CAAC;AACP,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+D,CAAC;AAE1F;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,KAA0D;IACtG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAe;IACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACzD,OAAO,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Status words — the dot + word (+ inline detail) every table shows for
|
|
7
|
+
* a task, a dataset, a workspace, an execution or a connection: the cloud
|
|
8
|
+
* UI's `formatStatusDetail` cases made inline, and the same words
|
|
9
|
+
* `formatTaskStatus` (`e3 workspace status`) prints.
|
|
10
|
+
*
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
import type { DataflowExecutionState, ExecutionHistoryStatus, ExecutionStatus, TaskStatus, DataflowEvent } from '@elaraai/e3-api-client';
|
|
14
|
+
import type { Glyphs } from '../render/glyphs.js';
|
|
15
|
+
import type { Tone } from '../render/theme.js';
|
|
16
|
+
import type { ConnectionState } from '../state/poll.js';
|
|
17
|
+
/** A status cell: its glyph, its tone, the word and an inline detail. */
|
|
18
|
+
export interface StatusCell {
|
|
19
|
+
glyph: string;
|
|
20
|
+
tone: Tone;
|
|
21
|
+
word: string;
|
|
22
|
+
detail: string;
|
|
23
|
+
}
|
|
24
|
+
/** `● up-to-date`, `✗ failed · exit 2`, … */
|
|
25
|
+
export declare function statusText(cell: StatusCell, sep?: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* A task's status cell.
|
|
28
|
+
*
|
|
29
|
+
* @param status - The task status variant
|
|
30
|
+
* @param g - The glyph set
|
|
31
|
+
* @returns The cell
|
|
32
|
+
*/
|
|
33
|
+
export declare function taskStatusCell(status: TaskStatus, g: Glyphs): StatusCell;
|
|
34
|
+
/**
|
|
35
|
+
* A dataset's status cell.
|
|
36
|
+
*
|
|
37
|
+
* @param status - `unset` / `stale` / `up-to-date`
|
|
38
|
+
* @param g - The glyph set
|
|
39
|
+
* @returns The cell
|
|
40
|
+
*/
|
|
41
|
+
export declare function datasetStatusCell(status: 'unset' | 'stale' | 'up-to-date', g: Glyphs): StatusCell;
|
|
42
|
+
/**
|
|
43
|
+
* An execution's status cell (`✗ FAILED`, `◔ RUNNING`, `● COMPLETED`, `■ ABORTED`).
|
|
44
|
+
*
|
|
45
|
+
* @param status - The execution status
|
|
46
|
+
* @param g - The glyph set
|
|
47
|
+
* @returns The cell
|
|
48
|
+
*/
|
|
49
|
+
export declare function executionStatusCell(status: ExecutionStatus['type'], g: Glyphs): StatusCell;
|
|
50
|
+
/**
|
|
51
|
+
* A run-history item's status cell.
|
|
52
|
+
*
|
|
53
|
+
* @param status - The history status
|
|
54
|
+
* @param g - The glyph set
|
|
55
|
+
* @returns The cell
|
|
56
|
+
*/
|
|
57
|
+
export declare function historyStatusCell(status: ExecutionHistoryStatus['type'], g: Glyphs): StatusCell;
|
|
58
|
+
/**
|
|
59
|
+
* The connection pill.
|
|
60
|
+
*
|
|
61
|
+
* @param connection - The connection state
|
|
62
|
+
* @param g - The glyph set
|
|
63
|
+
* @returns The cell (`● CONNECTED`, `◐ RECONNECTING 3/4`, `✗ OFFLINE`)
|
|
64
|
+
*/
|
|
65
|
+
export declare function connectionCell(connection: ConnectionState, g: Glyphs): StatusCell | null;
|
|
66
|
+
/**
|
|
67
|
+
* An execution's wall-clock duration in milliseconds: the summary's, or
|
|
68
|
+
* `completedAt − startedAt` when the summary reports none (the server
|
|
69
|
+
* only times the runs it launched itself).
|
|
70
|
+
*
|
|
71
|
+
* @param state - The execution state
|
|
72
|
+
* @returns The duration, or `null` while it is still running
|
|
73
|
+
*/
|
|
74
|
+
export declare function executionDuration(state: DataflowExecutionState): number | null;
|
|
75
|
+
/**
|
|
76
|
+
* One dataflow event as the feed shows it — the cloud UI's
|
|
77
|
+
* `formatEventMessage` cases: the dot + word, the task, and the detail
|
|
78
|
+
* (duration, exit code, message, reason).
|
|
79
|
+
*
|
|
80
|
+
* @param event - The event
|
|
81
|
+
* @param g - The glyph set
|
|
82
|
+
* @returns The cell plus the task name
|
|
83
|
+
*/
|
|
84
|
+
export declare function eventCell(event: DataflowEvent, g: Glyphs): StatusCell & {
|
|
85
|
+
task: string;
|
|
86
|
+
timestamp: string;
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/tui/model/status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACzI,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,yEAAyE;AACzE,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,6CAA6C;AAC7C,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,SAAQ,GAAG,MAAM,CAEhE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAiBxE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,YAAY,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAMjG;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAO1F;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAO/F;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAOxF;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI,CAO9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAe3G"}
|