@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.
Files changed (220) hide show
  1. package/README.md +46 -21
  2. package/bin/e3-ui.mjs +6 -0
  3. package/dist/app/assets/{engine-BKZbmXkC-DmcCFcnb.js → engine-Bm-cIDd_-DwUdGcTZ.js} +1 -1
  4. package/dist/app/assets/{index-BJNWHnRv.js → index-mj-YVVN1.js} +91 -91
  5. package/dist/app/index.html +1 -1
  6. package/dist/cli.js +36 -5
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/tui.d.ts +84 -0
  9. package/dist/commands/tui.d.ts.map +1 -0
  10. package/dist/commands/tui.js +89 -0
  11. package/dist/commands/tui.js.map +1 -0
  12. package/dist/tui/api.d.ts +108 -0
  13. package/dist/tui/api.d.ts.map +1 -0
  14. package/dist/tui/api.js +130 -0
  15. package/dist/tui/api.js.map +1 -0
  16. package/dist/tui/app.d.ts +23 -0
  17. package/dist/tui/app.d.ts.map +1 -0
  18. package/dist/tui/app.js +244 -0
  19. package/dist/tui/app.js.map +1 -0
  20. package/dist/tui/controller.d.ts +116 -0
  21. package/dist/tui/controller.d.ts.map +1 -0
  22. package/dist/tui/controller.js +644 -0
  23. package/dist/tui/controller.js.map +1 -0
  24. package/dist/tui/data/dataflow.d.ts +68 -0
  25. package/dist/tui/data/dataflow.d.ts.map +1 -0
  26. package/dist/tui/data/dataflow.js +137 -0
  27. package/dist/tui/data/dataflow.js.map +1 -0
  28. package/dist/tui/data/dataset.d.ts +80 -0
  29. package/dist/tui/data/dataset.d.ts.map +1 -0
  30. package/dist/tui/data/dataset.js +297 -0
  31. package/dist/tui/data/dataset.js.map +1 -0
  32. package/dist/tui/data/edit-buffer.d.ts +74 -0
  33. package/dist/tui/data/edit-buffer.d.ts.map +1 -0
  34. package/dist/tui/data/edit-buffer.js +120 -0
  35. package/dist/tui/data/edit-buffer.js.map +1 -0
  36. package/dist/tui/data/feeds.d.ts +45 -0
  37. package/dist/tui/data/feeds.d.ts.map +1 -0
  38. package/dist/tui/data/feeds.js +318 -0
  39. package/dist/tui/data/feeds.js.map +1 -0
  40. package/dist/tui/data/logs.d.ts +68 -0
  41. package/dist/tui/data/logs.d.ts.map +1 -0
  42. package/dist/tui/data/logs.js +134 -0
  43. package/dist/tui/data/logs.js.map +1 -0
  44. package/dist/tui/input/commands.d.ts +159 -0
  45. package/dist/tui/input/commands.d.ts.map +1 -0
  46. package/dist/tui/input/commands.js +259 -0
  47. package/dist/tui/input/commands.js.map +1 -0
  48. package/dist/tui/input/completion.d.ts +63 -0
  49. package/dist/tui/input/completion.d.ts.map +1 -0
  50. package/dist/tui/input/completion.js +128 -0
  51. package/dist/tui/input/completion.js.map +1 -0
  52. package/dist/tui/input/keymap.d.ts +153 -0
  53. package/dist/tui/input/keymap.d.ts.map +1 -0
  54. package/dist/tui/input/keymap.js +206 -0
  55. package/dist/tui/input/keymap.js.map +1 -0
  56. package/dist/tui/input/mouse.d.ts +52 -0
  57. package/dist/tui/input/mouse.d.ts.map +1 -0
  58. package/dist/tui/input/mouse.js +55 -0
  59. package/dist/tui/input/mouse.js.map +1 -0
  60. package/dist/tui/lifecycle.d.ts +61 -0
  61. package/dist/tui/lifecycle.d.ts.map +1 -0
  62. package/dist/tui/lifecycle.js +99 -0
  63. package/dist/tui/lifecycle.js.map +1 -0
  64. package/dist/tui/model/catalogue.d.ts +28 -0
  65. package/dist/tui/model/catalogue.d.ts.map +1 -0
  66. package/dist/tui/model/catalogue.js +94 -0
  67. package/dist/tui/model/catalogue.js.map +1 -0
  68. package/dist/tui/model/help.d.ts +37 -0
  69. package/dist/tui/model/help.d.ts.map +1 -0
  70. package/dist/tui/model/help.js +210 -0
  71. package/dist/tui/model/help.js.map +1 -0
  72. package/dist/tui/model/index.d.ts +42 -0
  73. package/dist/tui/model/index.d.ts.map +1 -0
  74. package/dist/tui/model/index.js +50 -0
  75. package/dist/tui/model/index.js.map +1 -0
  76. package/dist/tui/model/status.d.ts +88 -0
  77. package/dist/tui/model/status.d.ts.map +1 -0
  78. package/dist/tui/model/status.js +137 -0
  79. package/dist/tui/model/status.js.map +1 -0
  80. package/dist/tui/model/tree.d.ts +126 -0
  81. package/dist/tui/model/tree.d.ts.map +1 -0
  82. package/dist/tui/model/tree.js +217 -0
  83. package/dist/tui/model/tree.js.map +1 -0
  84. package/dist/tui/model/types.d.ts +21 -0
  85. package/dist/tui/model/types.d.ts.map +1 -0
  86. package/dist/tui/model/types.js +46 -0
  87. package/dist/tui/model/types.js.map +1 -0
  88. package/dist/tui/render/glyphs.d.ts +122 -0
  89. package/dist/tui/render/glyphs.d.ts.map +1 -0
  90. package/dist/tui/render/glyphs.js +122 -0
  91. package/dist/tui/render/glyphs.js.map +1 -0
  92. package/dist/tui/render/layout.d.ts +145 -0
  93. package/dist/tui/render/layout.d.ts.map +1 -0
  94. package/dist/tui/render/layout.js +209 -0
  95. package/dist/tui/render/layout.js.map +1 -0
  96. package/dist/tui/render/text.d.ts +153 -0
  97. package/dist/tui/render/text.d.ts.map +1 -0
  98. package/dist/tui/render/text.js +320 -0
  99. package/dist/tui/render/text.js.map +1 -0
  100. package/dist/tui/render/theme.d.ts +88 -0
  101. package/dist/tui/render/theme.d.ts.map +1 -0
  102. package/dist/tui/render/theme.js +145 -0
  103. package/dist/tui/render/theme.js.map +1 -0
  104. package/dist/tui/session.d.ts +78 -0
  105. package/dist/tui/session.d.ts.map +1 -0
  106. package/dist/tui/session.js +237 -0
  107. package/dist/tui/session.js.map +1 -0
  108. package/dist/tui/state/actions.d.ts +584 -0
  109. package/dist/tui/state/actions.d.ts.map +1 -0
  110. package/dist/tui/state/actions.js +62 -0
  111. package/dist/tui/state/actions.js.map +1 -0
  112. package/dist/tui/state/persist.d.ts +114 -0
  113. package/dist/tui/state/persist.d.ts.map +1 -0
  114. package/dist/tui/state/persist.js +187 -0
  115. package/dist/tui/state/persist.js.map +1 -0
  116. package/dist/tui/state/poll.d.ts +99 -0
  117. package/dist/tui/state/poll.d.ts.map +1 -0
  118. package/dist/tui/state/poll.js +160 -0
  119. package/dist/tui/state/poll.js.map +1 -0
  120. package/dist/tui/state/reducer.d.ts +16 -0
  121. package/dist/tui/state/reducer.d.ts.map +1 -0
  122. package/dist/tui/state/reducer.js +363 -0
  123. package/dist/tui/state/reducer.js.map +1 -0
  124. package/dist/tui/state/store.d.ts +37 -0
  125. package/dist/tui/state/store.d.ts.map +1 -0
  126. package/dist/tui/state/store.js +84 -0
  127. package/dist/tui/state/store.js.map +1 -0
  128. package/dist/tui/suspend.d.ts +17 -0
  129. package/dist/tui/suspend.d.ts.map +1 -0
  130. package/dist/tui/suspend.js +33 -0
  131. package/dist/tui/suspend.js.map +1 -0
  132. package/dist/tui/ui/App.d.ts +44 -0
  133. package/dist/tui/ui/App.d.ts.map +1 -0
  134. package/dist/tui/ui/App.js +105 -0
  135. package/dist/tui/ui/App.js.map +1 -0
  136. package/dist/tui/ui/frame.d.ts +86 -0
  137. package/dist/tui/ui/frame.d.ts.map +1 -0
  138. package/dist/tui/ui/frame.js +42 -0
  139. package/dist/tui/ui/frame.js.map +1 -0
  140. package/dist/tui/ui/lines.d.ts +92 -0
  141. package/dist/tui/ui/lines.d.ts.map +1 -0
  142. package/dist/tui/ui/lines.js +94 -0
  143. package/dist/tui/ui/lines.js.map +1 -0
  144. package/dist/tui/ui/shell/chrome.d.ts +61 -0
  145. package/dist/tui/ui/shell/chrome.d.ts.map +1 -0
  146. package/dist/tui/ui/shell/chrome.js +272 -0
  147. package/dist/tui/ui/shell/chrome.js.map +1 -0
  148. package/dist/tui/ui/shell/widgets.d.ts +116 -0
  149. package/dist/tui/ui/shell/widgets.d.ts.map +1 -0
  150. package/dist/tui/ui/shell/widgets.js +183 -0
  151. package/dist/tui/ui/shell/widgets.js.map +1 -0
  152. package/dist/tui/ui/views/about.d.ts +20 -0
  153. package/dist/tui/ui/views/about.d.ts.map +1 -0
  154. package/dist/tui/ui/views/about.js +40 -0
  155. package/dist/tui/ui/views/about.js.map +1 -0
  156. package/dist/tui/ui/views/all.d.ts +17 -0
  157. package/dist/tui/ui/views/all.d.ts.map +1 -0
  158. package/dist/tui/ui/views/all.js +17 -0
  159. package/dist/tui/ui/views/all.js.map +1 -0
  160. package/dist/tui/ui/views/dashboard.d.ts +211 -0
  161. package/dist/tui/ui/views/dashboard.d.ts.map +1 -0
  162. package/dist/tui/ui/views/dashboard.js +651 -0
  163. package/dist/tui/ui/views/dashboard.js.map +1 -0
  164. package/dist/tui/ui/views/help.d.ts +17 -0
  165. package/dist/tui/ui/views/help.d.ts.map +1 -0
  166. package/dist/tui/ui/views/help.js +65 -0
  167. package/dist/tui/ui/views/help.js.map +1 -0
  168. package/dist/tui/ui/views/index.d.ts +42 -0
  169. package/dist/tui/ui/views/index.d.ts.map +1 -0
  170. package/dist/tui/ui/views/index.js +42 -0
  171. package/dist/tui/ui/views/index.js.map +1 -0
  172. package/dist/tui/ui/views/input.d.ts +6 -0
  173. package/dist/tui/ui/views/input.d.ts.map +1 -0
  174. package/dist/tui/ui/views/input.js +494 -0
  175. package/dist/tui/ui/views/input.js.map +1 -0
  176. package/dist/tui/ui/views/launch.d.ts +16 -0
  177. package/dist/tui/ui/views/launch.d.ts.map +1 -0
  178. package/dist/tui/ui/views/launch.js +43 -0
  179. package/dist/tui/ui/views/launch.js.map +1 -0
  180. package/dist/tui/ui/views/refusal.d.ts +20 -0
  181. package/dist/tui/ui/views/refusal.d.ts.map +1 -0
  182. package/dist/tui/ui/views/refusal.js +47 -0
  183. package/dist/tui/ui/views/refusal.js.map +1 -0
  184. package/dist/tui/ui/views/repos.d.ts +10 -0
  185. package/dist/tui/ui/views/repos.d.ts.map +1 -0
  186. package/dist/tui/ui/views/repos.js +93 -0
  187. package/dist/tui/ui/views/repos.js.map +1 -0
  188. package/dist/tui/ui/views/task.d.ts +17 -0
  189. package/dist/tui/ui/views/task.d.ts.map +1 -0
  190. package/dist/tui/ui/views/task.js +309 -0
  191. package/dist/tui/ui/views/task.js.map +1 -0
  192. package/dist/tui/ui/views/wordmark.d.ts +15 -0
  193. package/dist/tui/ui/views/wordmark.d.ts.map +1 -0
  194. package/dist/tui/ui/views/wordmark.js +50 -0
  195. package/dist/tui/ui/views/wordmark.js.map +1 -0
  196. package/dist/tui/ui/views/workspaces.d.ts +17 -0
  197. package/dist/tui/ui/views/workspaces.d.ts.map +1 -0
  198. package/dist/tui/ui/views/workspaces.js +127 -0
  199. package/dist/tui/ui/views/workspaces.js.map +1 -0
  200. package/dist/tui/ui/widgets/leaf-editor.d.ts +58 -0
  201. package/dist/tui/ui/widgets/leaf-editor.d.ts.map +1 -0
  202. package/dist/tui/ui/widgets/leaf-editor.js +119 -0
  203. package/dist/tui/ui/widgets/leaf-editor.js.map +1 -0
  204. package/dist/tui/ui/widgets/logs.d.ts +99 -0
  205. package/dist/tui/ui/widgets/logs.d.ts.map +1 -0
  206. package/dist/tui/ui/widgets/logs.js +291 -0
  207. package/dist/tui/ui/widgets/logs.js.map +1 -0
  208. package/dist/tui/ui/widgets/reads.d.ts +62 -0
  209. package/dist/tui/ui/widgets/reads.d.ts.map +1 -0
  210. package/dist/tui/ui/widgets/reads.js +122 -0
  211. package/dist/tui/ui/widgets/reads.js.map +1 -0
  212. package/dist/tui/ui/widgets/runs.d.ts +51 -0
  213. package/dist/tui/ui/widgets/runs.d.ts.map +1 -0
  214. package/dist/tui/ui/widgets/runs.js +86 -0
  215. package/dist/tui/ui/widgets/runs.js.map +1 -0
  216. package/dist/tui/ui/widgets/tree.d.ts +149 -0
  217. package/dist/tui/ui/widgets/tree.d.ts.map +1 -0
  218. package/dist/tui/ui/widgets/tree.js +584 -0
  219. package/dist/tui/ui/widgets/tree.js.map +1 -0
  220. 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"}