@elaraai/e3-ui-cli 1.0.79 → 1.0.80

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 (119) hide show
  1. package/README.md +8 -6
  2. package/dist/app/assets/{engine-DAHqaY4g-B9nTMQVT.js → engine-Bq3Rqc8f-Bi5uj9DS.js} +1 -1
  3. package/dist/app/assets/{index-CIIzwdrV.js → index-Cn_whZOl.js} +106 -106
  4. package/dist/app/index.html +1 -1
  5. package/dist/cli.js +2 -0
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/tui.d.ts +15 -3
  8. package/dist/commands/tui.d.ts.map +1 -1
  9. package/dist/commands/tui.js +14 -4
  10. package/dist/commands/tui.js.map +1 -1
  11. package/dist/e3-server.d.ts +6 -1
  12. package/dist/e3-server.d.ts.map +1 -1
  13. package/dist/e3-server.js +6 -1
  14. package/dist/e3-server.js.map +1 -1
  15. package/dist/load-source.d.ts +13 -11
  16. package/dist/load-source.d.ts.map +1 -1
  17. package/dist/load-source.js +9 -10
  18. package/dist/load-source.js.map +1 -1
  19. package/dist/tui/api.d.ts +15 -1
  20. package/dist/tui/api.d.ts.map +1 -1
  21. package/dist/tui/api.js +5 -1
  22. package/dist/tui/api.js.map +1 -1
  23. package/dist/tui/app.d.ts.map +1 -1
  24. package/dist/tui/app.js +19 -1
  25. package/dist/tui/app.js.map +1 -1
  26. package/dist/tui/controller.d.ts +3 -1
  27. package/dist/tui/controller.d.ts.map +1 -1
  28. package/dist/tui/controller.js +48 -20
  29. package/dist/tui/controller.js.map +1 -1
  30. package/dist/tui/data/dataflow.d.ts +1 -2
  31. package/dist/tui/data/dataflow.d.ts.map +1 -1
  32. package/dist/tui/data/dataflow.js +1 -3
  33. package/dist/tui/data/dataflow.js.map +1 -1
  34. package/dist/tui/data/dataset.d.ts +24 -5
  35. package/dist/tui/data/dataset.d.ts.map +1 -1
  36. package/dist/tui/data/dataset.js +100 -25
  37. package/dist/tui/data/dataset.js.map +1 -1
  38. package/dist/tui/data/feeds.d.ts +3 -0
  39. package/dist/tui/data/feeds.d.ts.map +1 -1
  40. package/dist/tui/data/feeds.js +16 -1
  41. package/dist/tui/data/feeds.js.map +1 -1
  42. package/dist/tui/data/records.d.ts +63 -0
  43. package/dist/tui/data/records.d.ts.map +1 -0
  44. package/dist/tui/data/records.js +144 -0
  45. package/dist/tui/data/records.js.map +1 -0
  46. package/dist/tui/input/commands.d.ts +14 -11
  47. package/dist/tui/input/commands.d.ts.map +1 -1
  48. package/dist/tui/input/commands.js +20 -15
  49. package/dist/tui/input/commands.js.map +1 -1
  50. package/dist/tui/input/completion.d.ts +10 -4
  51. package/dist/tui/input/completion.d.ts.map +1 -1
  52. package/dist/tui/input/completion.js +6 -0
  53. package/dist/tui/input/completion.js.map +1 -1
  54. package/dist/tui/model/catalogue.d.ts.map +1 -1
  55. package/dist/tui/model/catalogue.js +39 -3
  56. package/dist/tui/model/catalogue.js.map +1 -1
  57. package/dist/tui/model/help.d.ts.map +1 -1
  58. package/dist/tui/model/help.js +44 -4
  59. package/dist/tui/model/help.js.map +1 -1
  60. package/dist/tui/model/status.d.ts +31 -2
  61. package/dist/tui/model/status.d.ts.map +1 -1
  62. package/dist/tui/model/status.js +63 -4
  63. package/dist/tui/model/status.js.map +1 -1
  64. package/dist/tui/model/tree.d.ts +36 -1
  65. package/dist/tui/model/tree.d.ts.map +1 -1
  66. package/dist/tui/model/tree.js +58 -8
  67. package/dist/tui/model/tree.js.map +1 -1
  68. package/dist/tui/render/glyphs.d.ts +2 -0
  69. package/dist/tui/render/glyphs.d.ts.map +1 -1
  70. package/dist/tui/render/glyphs.js +2 -0
  71. package/dist/tui/render/glyphs.js.map +1 -1
  72. package/dist/tui/render/layout.d.ts +1 -1
  73. package/dist/tui/render/layout.d.ts.map +1 -1
  74. package/dist/tui/render/layout.js +36 -5
  75. package/dist/tui/render/layout.js.map +1 -1
  76. package/dist/tui/session.d.ts.map +1 -1
  77. package/dist/tui/session.js +7 -0
  78. package/dist/tui/session.js.map +1 -1
  79. package/dist/tui/state/actions.d.ts +64 -5
  80. package/dist/tui/state/actions.d.ts.map +1 -1
  81. package/dist/tui/state/actions.js +9 -1
  82. package/dist/tui/state/actions.js.map +1 -1
  83. package/dist/tui/state/persist.d.ts +1 -1
  84. package/dist/tui/state/persist.d.ts.map +1 -1
  85. package/dist/tui/state/reducer.d.ts.map +1 -1
  86. package/dist/tui/state/reducer.js +16 -2
  87. package/dist/tui/state/reducer.js.map +1 -1
  88. package/dist/tui/ui/App.js +1 -1
  89. package/dist/tui/ui/App.js.map +1 -1
  90. package/dist/tui/ui/shell/chrome.d.ts +6 -1
  91. package/dist/tui/ui/shell/chrome.d.ts.map +1 -1
  92. package/dist/tui/ui/shell/chrome.js +26 -23
  93. package/dist/tui/ui/shell/chrome.js.map +1 -1
  94. package/dist/tui/ui/views/all.d.ts +1 -0
  95. package/dist/tui/ui/views/all.d.ts.map +1 -1
  96. package/dist/tui/ui/views/all.js +1 -0
  97. package/dist/tui/ui/views/all.js.map +1 -1
  98. package/dist/tui/ui/views/dashboard.d.ts +66 -15
  99. package/dist/tui/ui/views/dashboard.d.ts.map +1 -1
  100. package/dist/tui/ui/views/dashboard.js +160 -37
  101. package/dist/tui/ui/views/dashboard.js.map +1 -1
  102. package/dist/tui/ui/views/help.js +1 -1
  103. package/dist/tui/ui/views/record.d.ts +38 -0
  104. package/dist/tui/ui/views/record.d.ts.map +1 -0
  105. package/dist/tui/ui/views/record.js +298 -0
  106. package/dist/tui/ui/views/record.js.map +1 -0
  107. package/dist/tui/ui/widgets/reads.d.ts +7 -7
  108. package/dist/tui/ui/widgets/reads.d.ts.map +1 -1
  109. package/dist/tui/ui/widgets/reads.js +9 -21
  110. package/dist/tui/ui/widgets/reads.js.map +1 -1
  111. package/dist/tui/ui/widgets/runs.d.ts +2 -2
  112. package/dist/tui/ui/widgets/runs.d.ts.map +1 -1
  113. package/dist/tui/ui/widgets/runs.js +3 -2
  114. package/dist/tui/ui/widgets/runs.js.map +1 -1
  115. package/dist/tui/ui/widgets/tree.d.ts +11 -6
  116. package/dist/tui/ui/widgets/tree.d.ts.map +1 -1
  117. package/dist/tui/ui/widgets/tree.js +28 -17
  118. package/dist/tui/ui/widgets/tree.js.map +1 -1
  119. package/package.json +14 -14
@@ -0,0 +1,298 @@
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 { registerViewHooks } from '../../controller.js';
6
+ import { listModel, registerListModel } from '../../model/index.js';
7
+ import { recordSource } from '../../model/tree.js';
8
+ import { compactType } from '../../model/types.js';
9
+ import { breakpoint, columnPlan } from '../../render/layout.js';
10
+ import { formatInt, formatSize, formatStamp, hashMid } from '../../render/text.js';
11
+ import { RECORD_TABS } from '../../state/actions.js';
12
+ import { blank, d, lrLine, rule, t } from '../lines.js';
13
+ import { centredBlock, renderTable, tabStrip, tabStripHits, withScrollbar } from '../shell/widgets.js';
14
+ import { clickTree, renderTreeRows, restoreTree, scrollTree, treeCommand, treeContext, treeFooter, treeKey, treeModel, treeToolbar, TREE_CHROME_ROWS } from '../widgets/tree.js';
15
+ import { datasetLine } from './task.js';
16
+ import { registerView } from './index.js';
17
+ const TAB_LABELS = { state: 'State', history: 'History' };
18
+ /** Rows the header lines, the dashed rule and the history table's header take. */
19
+ export const HISTORY_CHROME_ROWS = 4;
20
+ /** How close to the last commit read the selection comes before the next page is read. */
21
+ const MORE_WITHIN = 5;
22
+ /**
23
+ * The title line's right side: `RECORD · 200,000 rows · 3 mutations · 1 index`.
24
+ *
25
+ * @param facts - What is known of the record
26
+ * @param g - The glyph set
27
+ * @returns The line
28
+ */
29
+ export function recordTitle(facts, g) {
30
+ const parts = ['RECORD'];
31
+ if (facts?.rows != null)
32
+ parts.push(`${formatInt(facts.rows)} rows`);
33
+ const signature = facts?.signature ?? null;
34
+ if (signature !== null) {
35
+ const m = signature.mutations.length;
36
+ const i = signature.indexes.length;
37
+ parts.push(`${m} mutation${m === 1 ? '' : 's'}`, `${i} ind${i === 1 ? 'ex' : 'exes'}`);
38
+ }
39
+ return [d(parts.join(` ${g.sep} `))];
40
+ }
41
+ /**
42
+ * The line under the tabs while an index is shown:
43
+ * `.records.ledger · index by_site · String key · joins each row · 200,000 entries · 3.1 MB`.
44
+ *
45
+ * @param state - The store state
46
+ * @param ws - The workspace
47
+ * @param name - The record
48
+ * @param index - The index shown
49
+ * @param g - The glyph set
50
+ * @returns The line
51
+ */
52
+ function indexLine(state, ws, name, index, g) {
53
+ const data = state.data.dataset[ws]?.[recordSource(name, index)];
54
+ const declared = state.data.records[ws]?.[name]?.signature?.indexes.find(i => i.name === index);
55
+ const parts = [`.records.${name}`, `index ${index}`];
56
+ if (declared !== undefined) {
57
+ parts.push(`${compactType(declared.keyType)} key${declared.multi ? 's' : ''}`);
58
+ parts.push(declared.valueType.type === 'Null' ? 'joins each row' : `projects ${compactType(declared.valueType)}`);
59
+ }
60
+ if (data?.mode.kind === 'paged')
61
+ parts.push(`${formatInt(data.mode.totalRows)} entries`, formatSize(data.mode.totalBytes));
62
+ return [t(' '), d(parts.join(` ${g.sep} `))];
63
+ }
64
+ /**
65
+ * The commits of a record the History tab lists, newest first.
66
+ *
67
+ * @param state - The store state
68
+ * @param ws - The workspace
69
+ * @param name - The record
70
+ * @returns The commits read so far
71
+ */
72
+ export function commitsOf(state, ws, name) {
73
+ return state.data.records[ws]?.[name]?.history ?? [];
74
+ }
75
+ /** The history table's rows: e3's own commits (`$deploy`, `$compact`, …) muted, the newest marked. */
76
+ function historyRows(commits, g) {
77
+ return commits.map((commit, i) => ({
78
+ cells: {
79
+ when: formatStamp(commit.at),
80
+ mutation: { text: commit.mutation, tone: commit.mutation.startsWith('$') ? 'muted' : undefined },
81
+ actor: commit.actor,
82
+ commit: `${hashMid(commit.hash)}${i === 0 ? ` ${g.left} head` : ''}`,
83
+ },
84
+ }));
85
+ }
86
+ registerListModel('record', (state, layout) => {
87
+ if (state.view.kind !== 'record')
88
+ return { count: 0, visible: 0 };
89
+ const { ws, name, tab } = state.view;
90
+ if (tab === 'history')
91
+ return { count: commitsOf(state, ws, name).length, visible: Math.max(1, layout.bodyRows - HISTORY_CHROME_ROWS) };
92
+ const tctx = treeContext(state);
93
+ if (tctx === null)
94
+ return { count: 0, visible: 0 };
95
+ const model = treeModel(tctx.data, tctx.tree, tctx.editable);
96
+ return { count: model?.total ?? 0, visible: Math.max(1, layout.bodyRows - TREE_CHROME_ROWS) };
97
+ });
98
+ registerView('record', (state, ctx) => {
99
+ if (state.view.kind !== 'record')
100
+ return { body: [], hints: { left: '', right: '' } };
101
+ const { ws, name, tab, index } = state.view;
102
+ const g = ctx.g;
103
+ const width = ctx.layout.columns;
104
+ const labels = RECORD_TABS.map(x => TAB_LABELS[x]);
105
+ const facts = state.data.records[ws]?.[name];
106
+ const rowsPath = recordSource(name, null);
107
+ const body = [
108
+ lrLine(tabStrip(name, labels, RECORD_TABS.indexOf(tab), g), [...recordTitle(facts, g), t(' ')], width),
109
+ index === null || tab === 'history' ? datasetLine(state.data.dataset[ws]?.[rowsPath], rowsPath, false, ctx) : indexLine(state, ws, name, index, g),
110
+ rule(width, g.dashed),
111
+ ];
112
+ const hits = tabStripHits(name, labels, g).map(h => ({ row: 0, x0: h.x0, x1: h.x1, target: { kind: 'tab', index: h.index } }));
113
+ if (tab === 'history') {
114
+ const commits = commitsOf(state, ws, name);
115
+ const visible = Math.max(1, ctx.layout.bodyRows - HISTORY_CHROME_ROWS);
116
+ const list = state.view.history;
117
+ // A chain rewritten under the view is shorter than where it was scrolled to.
118
+ const top = Math.max(0, Math.min(list.top, Math.max(0, commits.length - visible)));
119
+ const table = renderTable(columnPlan('history', breakpoint(state.size)), historyRows(commits, g), list.sel, top, visible, width - 1, g);
120
+ const rows = table.slice(1);
121
+ if (commits.length === 0)
122
+ rows.push([t(' '), d(facts?.history == null ? 'loading…' : 'no commits')]);
123
+ while (rows.length < visible)
124
+ rows.push(blank(width - 1));
125
+ body.push(table[0], ...withScrollbar(rows.slice(0, visible), width, commits.length, visible, top, g));
126
+ for (let i = top; i < Math.min(commits.length, top + visible); i++)
127
+ hits.push({ row: HISTORY_CHROME_ROWS + (i - top), x0: 0, x1: width - 1, target: { kind: 'list', index: i } });
128
+ const pane = { top: HISTORY_CHROME_ROWS, rows: visible, total: commits.length, visible, scrollTop: top };
129
+ // Nothing is counted until the first page is read.
130
+ const count = facts?.history == null ? ''
131
+ : `${formatInt(commits.length)}${facts.complete === false && commits.length > 0 ? '+' : ''} commit${commits.length === 1 ? '' : 's'}`;
132
+ return { body, hits, pane, hints: { left: `${g.up}${g.down} move 1 state esc back`, right: count } };
133
+ }
134
+ const data = state.data.dataset[ws]?.[recordSource(name, index)];
135
+ const rows = Math.max(1, ctx.layout.bodyRows - TREE_CHROME_ROWS);
136
+ const screen = (glyph, tone, title, lines) => {
137
+ const block = centredBlock(glyph, tone, title, lines, width);
138
+ while (block.length < rows + 1)
139
+ block.push(blank(width));
140
+ body.push(...block.slice(0, rows + 1));
141
+ };
142
+ const idle = { left: '2 history esc back', right: '' };
143
+ if (data === undefined || data.mode.kind === 'loading') {
144
+ screen(g.loading, 'muted', 'LOADING', [data === undefined ? 'reading the record' : index === null ? 'fetching its rows' : `fetching index ${index}`]);
145
+ return { body, hits, hints: idle };
146
+ }
147
+ switch (data.mode.kind) {
148
+ case 'unset':
149
+ case 'null':
150
+ screen(g.empty, 'muted', 'NO STATE', [`${name} holds no state yet`]);
151
+ return { body, hits, hints: idle };
152
+ case 'error':
153
+ screen(g.cross, 'neg', 'COULD NOT LOAD', [data.mode.message, index === null ? 'R retry' : 'R retry /index primary the rows']);
154
+ return { body, hits, hints: idle };
155
+ case 'too-large':
156
+ case 'not-indexed':
157
+ screen(g.half, 'warn', 'TOO LARGE TO SHOW INLINE', [
158
+ `${name} ${g.sep} ${data.type !== null ? compactType(data.type) : '?'} ${g.sep} ${formatSize(data.size)} — not a collection, so it cannot be paged`,
159
+ `s save to ${ws}.${name}.beast2`,
160
+ ]);
161
+ return { body, hits, hints: idle };
162
+ default:
163
+ break;
164
+ }
165
+ const tctx = treeContext(state);
166
+ const model = tctx === null ? null : treeModel(tctx.data, tctx.tree, tctx.editable);
167
+ const left = `${g.up}${g.down} move ${g.right} expand ${g.left} collapse /find <key> /goto <row|%> /index <name> s save 2 history`;
168
+ if (tctx === null || model === null)
169
+ return { body, hits, hints: { left, right: '' } };
170
+ const loading = data.mode.kind === 'paged' ? data.mode.loading : [];
171
+ body.push(...renderTreeRows(model, tctx.tree, loading, rows, width, g));
172
+ body.push(treeFooter(model, tctx.tree, loading, rows, width, g, 's save .beast2'));
173
+ const top = Math.max(0, Math.min(tctx.tree.top, Math.max(0, model.total - rows)));
174
+ for (let i = top; i < Math.min(model.total, top + rows); i++) {
175
+ const at = model.at(i);
176
+ hits.push({ row: 3 + (i - top), x0: 0, x1: width - 1, target: { kind: 'tree', flat: i, twistX: at?.kind === 'model' ? 1 + 2 * at.row.depth : null } });
177
+ }
178
+ const footer = 3 + rows;
179
+ const toolbar = `${g.expanded} expand all ${g.collapsed} collapse all s save .beast2 `;
180
+ const start = width - toolbar.length;
181
+ for (const [text, action] of [[`${g.expanded} expand all`, 'expandAll'], [`${g.collapsed} collapse all`, 'collapseAll'], ['s save .beast2', 'save']]) {
182
+ const at = toolbar.indexOf(text);
183
+ if (at >= 0)
184
+ hits.push({ row: footer, x0: start + at, x1: start + at + text.length, target: { kind: 'toolbar', action } });
185
+ }
186
+ const pane = { top: 3, rows, total: model.total, visible: rows, scrollTop: top };
187
+ return { body, hits, pane, hints: { left, right: '' } };
188
+ });
189
+ /**
190
+ * `/index <name>` pages through one of the record's indexes, and
191
+ * `/index primary` through its rows again. An index the record does not
192
+ * declare is refused once its signature is read; before then the loader
193
+ * says so.
194
+ *
195
+ * @param state - The store state
196
+ * @param controller - The controller
197
+ * @param index - The index, or `primary`
198
+ */
199
+ function switchIndex(state, controller, index) {
200
+ if (state.view.kind !== 'record')
201
+ return;
202
+ const { ws, name } = state.view;
203
+ const next = index === 'primary' ? null : index;
204
+ const signature = state.data.records[ws]?.[name]?.signature ?? null;
205
+ const declared = signature?.indexes.map(i => i.name) ?? [];
206
+ if (next !== null && signature !== null && !declared.includes(next)) {
207
+ controller.toast(declared.length > 0 ? `${name} has no index ${next} — it has ${declared.join(', ')}` : `${name} declares no index`, 'warn');
208
+ return;
209
+ }
210
+ if (next !== state.view.index)
211
+ controller.dispatch({ type: 'record/index', index: next });
212
+ if (state.view.tab !== 'state')
213
+ controller.dispatch({ type: 'record/tab', tab: 'state' });
214
+ if (next !== state.view.index)
215
+ restoreTree(controller, ws, recordSource(name, next));
216
+ }
217
+ /** Reads the next page of the history once the selection nears the last commit read. */
218
+ function historyMore(controller) {
219
+ const state = controller.state();
220
+ if (state.view.kind !== 'record' || state.view.tab !== 'history')
221
+ return;
222
+ const { ws, name } = state.view;
223
+ const facts = state.data.records[ws]?.[name];
224
+ const commits = facts?.history ?? [];
225
+ if (facts === undefined || facts.complete || commits.length === 0)
226
+ return;
227
+ if (state.view.history.sel >= commits.length - MORE_WITHIN)
228
+ void controller.deps.feeds.records.history(ws, name, true);
229
+ }
230
+ registerViewHooks('record', {
231
+ click: (target, event, state, controller) => {
232
+ if (state.view.kind !== 'record')
233
+ return false;
234
+ if (state.view.tab === 'history') {
235
+ if (target.kind !== 'list')
236
+ return false;
237
+ const model = listModel(state);
238
+ controller.dispatch({ type: 'list/select', index: target.index, count: model.count, visible: model.visible });
239
+ historyMore(controller);
240
+ return true;
241
+ }
242
+ if (target.kind === 'tree') {
243
+ clickTree(state, controller, target.flat, target.twistX !== null && event.x === target.twistX);
244
+ return true;
245
+ }
246
+ if (target.kind === 'toolbar') {
247
+ if (target.action === 'save')
248
+ void controller.execute('/save');
249
+ else
250
+ treeToolbar(state, controller, target.action);
251
+ return true;
252
+ }
253
+ return false;
254
+ },
255
+ scroll: (to, state, controller) => {
256
+ if (state.view.kind !== 'record')
257
+ return false;
258
+ if (state.view.tab === 'state') {
259
+ scrollTree(state, controller, to);
260
+ return true;
261
+ }
262
+ const model = listModel(state);
263
+ if (model.count === 0)
264
+ return true;
265
+ const delta = 'delta' in to ? to.delta : to.top - state.view.history.top;
266
+ controller.dispatch({ type: 'list/scroll', delta, count: model.count, visible: model.visible });
267
+ historyMore(controller);
268
+ return true;
269
+ },
270
+ tree: (action, state, controller) => (state.view.kind === 'record' && state.view.tab === 'state' ? treeKey(action, state, controller) : false),
271
+ key: (action, state, controller) => {
272
+ if (state.view.kind !== 'record')
273
+ return false;
274
+ if (state.view.tab === 'history') {
275
+ if (action.kind !== 'move')
276
+ return false;
277
+ const model = listModel(state);
278
+ controller.dispatch({ type: 'list/move', op: action.op, count: model.count, visible: model.visible });
279
+ historyMore(controller);
280
+ return true;
281
+ }
282
+ if (action.kind === 'back' || action.kind === 'save' || action.kind === 'next' || action.kind === 'prev')
283
+ return treeKey(action, state, controller);
284
+ return false;
285
+ },
286
+ command: async (command, state, controller) => {
287
+ if (state.view.kind !== 'record')
288
+ return false;
289
+ if (command.name === 'index') {
290
+ switchIndex(state, controller, command.target);
291
+ return true;
292
+ }
293
+ if (state.view.tab === 'state')
294
+ return treeCommand(command, state, controller);
295
+ return false;
296
+ },
297
+ });
298
+ //# sourceMappingURL=record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/tui/ui/views/record.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,14 @@
3
3
  * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
4
  */
5
5
  /**
6
- * The Reads tab of a `ui` task — its data manifest (`decodeManifest` from
7
- * `@elaraai/e3-ui/internal`): the dataset paths it reads (each `⏎` opens
6
+ * The Reads tab of a `ui` task — the data manifest its task object carries
7
+ * as its `ui` role: the dataset paths it reads (each `⏎` opens
8
8
  * as a dataset), the paths it reads by window, the package functions it
9
- * calls and the records it binds.
9
+ * calls and the records it binds (each `⏎` opens the record).
10
10
  *
11
11
  * @packageDocumentation
12
12
  */
13
- import { type DataManifest } from '@elaraai/e3-ui/internal';
13
+ import type { DataManifest } from '@elaraai/e3-ui/internal';
14
14
  import type { TaskDetails } from '@elaraai/e3-api-client';
15
15
  import type { Controller } from '../../controller.js';
16
16
  import type { Glyphs } from '../../render/glyphs.js';
@@ -20,14 +20,14 @@ import { type Line } from '../lines.js';
20
20
  export interface ReadRow {
21
21
  kind: 'path' | 'page' | 'function' | 'record';
22
22
  text: string;
23
- /** The dataset path a `path` / `page` row opens. */
23
+ /** The dataset path a `path` / `page` row opens (a `record` row opens the record it names). */
24
24
  path: string | null;
25
25
  }
26
26
  /**
27
27
  * The manifest of a task's details, if it carries one.
28
28
  *
29
29
  * @param details - The task details
30
- * @returns The manifest, or null (no metadata, or not a manifest)
30
+ * @returns The manifest, or null for a data task
31
31
  */
32
32
  export declare function manifestOf(details: TaskDetails | undefined): DataManifest | null;
33
33
  /** `manifest: 3 reads · 1 function` for the title line. */
@@ -53,7 +53,7 @@ export declare function renderReads(manifest: DataManifest | null, sel: number,
53
53
  total: number;
54
54
  };
55
55
  /**
56
- * `⏎` on a Reads row opens the dataset.
56
+ * `⏎` on a Reads row opens the dataset, or the record.
57
57
  *
58
58
  * @param state - The store state
59
59
  * @param controller - The controller
@@ -1 +1 @@
1
- {"version":3,"file":"reads.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/widgets/reads.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAW,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAGjD,gCAAgC;AAChC,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,IAAI,CAOhF;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMzE;AAED,wEAAwE;AACxE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,EAAE,CAO1D;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA0BjM;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAWtE"}
1
+ {"version":3,"file":"reads.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/widgets/reads.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAW,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAGjD,gCAAgC;AAChC,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,+FAA+F;IAC/F,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,IAAI,CAEhF;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMzE;AAED,wEAAwE;AACxE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,EAAE,CAO1D;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA0BjM;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAetE"}
@@ -2,15 +2,6 @@
2
2
  * Copyright (c) 2025 Elara AI Pty Ltd
3
3
  * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
4
  */
5
- /**
6
- * The Reads tab of a `ui` task — its data manifest (`decodeManifest` from
7
- * `@elaraai/e3-ui/internal`): the dataset paths it reads (each `⏎` opens
8
- * as a dataset), the paths it reads by window, the package functions it
9
- * calls and the records it binds.
10
- *
11
- * @packageDocumentation
12
- */
13
- import { decodeManifest } from '@elaraai/e3-ui/internal';
14
5
  import { dottedPath } from '../../api.js';
15
6
  import { b, d, t } from '../lines.js';
16
7
  import { withScrollbar } from '../shell/widgets.js';
@@ -18,17 +9,10 @@ import { withScrollbar } from '../shell/widgets.js';
18
9
  * The manifest of a task's details, if it carries one.
19
10
  *
20
11
  * @param details - The task details
21
- * @returns The manifest, or null (no metadata, or not a manifest)
12
+ * @returns The manifest, or null for a data task
22
13
  */
23
14
  export function manifestOf(details) {
24
- if (details === undefined || details.metadata.type !== 'some')
25
- return null;
26
- try {
27
- return decodeManifest(details.metadata.value);
28
- }
29
- catch {
30
- return null;
31
- }
15
+ return details?.role.type === 'ui' ? details.role.value : null;
32
16
  }
33
17
  /** `manifest: 3 reads · 1 function` for the title line. */
34
18
  export function manifestSummary(manifest, g) {
@@ -87,7 +71,7 @@ export function renderReads(manifest, sel, top, visible, width, g) {
87
71
  lastKind = row.kind;
88
72
  }
89
73
  const selected = i === sel;
90
- const opens = row.path !== null;
74
+ const opens = row.path !== null || row.kind === 'record';
91
75
  rowLines.push(lines.length);
92
76
  lines.push([t(' '), selected ? b(g.sel, 'brand') : t(' '), selected ? b(row.text) : t(row.text), d(opens ? ` ${g.enter} open` : '')]);
93
77
  });
@@ -100,7 +84,7 @@ export function renderReads(manifest, sel, top, visible, width, g) {
100
84
  return { lines: withScrollbar(window, width, lines.length, visible, clampedTop, g), rowLines, top: clampedTop, total: lines.length };
101
85
  }
102
86
  /**
103
- * `⏎` on a Reads row opens the dataset.
87
+ * `⏎` on a Reads row opens the dataset, or the record.
104
88
  *
105
89
  * @param state - The store state
106
90
  * @param controller - The controller
@@ -113,8 +97,12 @@ export function openRead(state, controller) {
113
97
  const row = manifest === null ? undefined : readRows(manifest)[v.reads.sel];
114
98
  if (row === undefined)
115
99
  return;
100
+ if (row.kind === 'record') {
101
+ void controller.execute(`/record ${row.text}`);
102
+ return;
103
+ }
116
104
  if (row.path === null) {
117
- controller.toast(`${row.kind === 'function' ? 'a package function' : 'a record'} has no view here`, 'warn');
105
+ controller.toast('a package function has no view here', 'warn');
118
106
  return;
119
107
  }
120
108
  void controller.execute(`/dataset ${row.path}`);
@@ -1 +1 @@
1
- {"version":3,"file":"reads.js","sourceRoot":"","sources":["../../../../src/tui/ui/widgets/reads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reads.js","sourceRoot":"","sources":["../../../../src/tui/ui/widgets/reads.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@
4
4
  */
5
5
  /**
6
6
  * The Runs tab — `taskExecutionList` (every attempt, `all=true`) newest
7
- * first: status, started, duration, exit code, the inputs hash (`← current`
8
- * on the newest when the task is up to date); `⏎` expands the selected
7
+ * first: status, started, duration, peak memory, exit code, the inputs hash
8
+ * (`← current` on the newest when the task is up to date); `⏎` expands the selected
9
9
  * run's input hashes, paired with the task's input paths. A retry after a
10
10
  * failure and a forced re-run each add a row under the same inputs hash.
11
11
  *
@@ -1 +1 @@
1
- {"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/widgets/runs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAW,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAA8B,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEhF,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAErF;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAcnG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,CAyBvH"}
1
+ {"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/widgets/runs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAW,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAA8B,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEhF,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAErF;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAenG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,CAyBvH"}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { dottedPath } from '../../api.js';
6
6
  import { breakpoint, columnPlan } from '../../render/layout.js';
7
- import { formatDuration, formatStamp, hashMid, hashTiny } from '../../render/text.js';
7
+ import { formatDuration, formatSize, formatStamp, hashMid, hashTiny } from '../../render/text.js';
8
8
  import { historyStatusCell } from '../../model/status.js';
9
9
  import { b, d, t } from '../lines.js';
10
10
  import { renderTable, withScrollbar } from '../shell/widgets.js';
@@ -37,6 +37,7 @@ export function runRows(runs, current, g) {
37
37
  status: { text: `${cell.glyph} ${cell.word}`, tone: cell.tone },
38
38
  started: formatStamp(run.startedAt),
39
39
  duration: run.duration.type === 'some' ? formatDuration(Number(run.duration.value)) : '—',
40
+ peak: run.peakBytes.type === 'some' ? formatSize(Number(run.peakBytes.value)) : '—',
40
41
  exit: run.exitCode.type === 'some' ? String(run.exitCode.value) : '—',
41
42
  inputs: hashMid(run.inputsHash),
42
43
  note: i === 0 && current ? `${g.left} current` : '',
@@ -71,7 +72,7 @@ export function renderRuns(state, ws, task, visible, width, g) {
71
72
  if (run !== undefined) {
72
73
  const inputs = state.data.taskDetails[ws]?.[task]?.inputs ?? [];
73
74
  const pairs = run.inputHashes.map((h, i) => {
74
- const p = inputs[i];
75
+ const p = inputs[i]?.path;
75
76
  const name = p === undefined ? `#${i + 1}` : dottedPath(p).replace(/^\.inputs\./, '').replace(/^\.tasks\./, '.tasks.');
76
77
  return `${name} ${hashTiny(h)}`;
77
78
  });
@@ -1 +1 @@
1
- {"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../../src/tui/ui/widgets/runs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../../src/tui/ui/widgets/runs.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025 Elara AI Pty Ltd
3
3
  * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
4
  */
5
- import { type EastTypeValue } from '@elaraai/east';
5
+ import type { EastTypeValue } from '@elaraai/east';
6
6
  import { type ParsedKeyInput, type RowModel } from '@elaraai/east-ui/internal';
7
7
  import type { Controller } from '../../controller.js';
8
8
  import type { ParsedCommand } from '../../input/commands.js';
@@ -62,8 +62,8 @@ export interface TreeContext {
62
62
  setTree: (tree: TreeUi) => View;
63
63
  }
64
64
  /**
65
- * The tree context of the current view (the task view's Output tab or an
66
- * input view).
65
+ * The tree context of the current view (the task view's Output tab, an
66
+ * input view, or the record view's State tab).
67
67
  *
68
68
  * @param state - The store state
69
69
  * @returns The context, or null
@@ -119,15 +119,20 @@ export declare function treeToolbar(state: TuiState, controller: Controller, act
119
119
  */
120
120
  export declare function treeKey(action: KeyAction, state: TuiState, controller: Controller): boolean;
121
121
  /**
122
- * Parses `/find` text for a key type: a quoted string is an exact key,
123
- * `a|b` are struct-key fields, anything else goes to the shared grammar.
122
+ * Parses `/find` text for a key type: `a|b` are struct-key fields, and the
123
+ * rest is the grammar the browser's search box uses — a quoted string is an
124
+ * exact key and `from..to` a range, here as there.
124
125
  *
125
126
  * @param keyType - The collection's key type
126
127
  * @param text - The typed text
127
128
  * @returns The wire query, or the hint to show
128
129
  */
129
130
  export declare function parseFindText(keyType: EastTypeValue, text: string): ParsedKeyInput;
130
- /** The `/save` target: `<ws>.<name>.beast2` in the working directory unless a file is given. */
131
+ /**
132
+ * The `/save` target: `<ws>.<name>.beast2` in the working directory unless a
133
+ * file is given. A record's index saves the record's rows, so it is named
134
+ * after the record.
135
+ */
131
136
  export declare function saveTarget(ws: string, dataset: string, file: string | undefined): string;
132
137
  /**
133
138
  * Handles `/find`, `/goto` and `/save` on the tree.
@@ -1 +1 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/widgets/tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/widgets/tree.ts"],"names":[],"mappings":"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"}