@elaraai/e3-cli 0.0.2-beta.33 → 0.0.2-beta.35
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 +3 -1
- package/dist/src/cli.js +7 -7
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/dataset-status.d.ts +9 -0
- package/dist/src/commands/dataset-status.d.ts.map +1 -0
- package/dist/src/commands/dataset-status.js +77 -0
- package/dist/src/commands/dataset-status.js.map +1 -0
- package/dist/src/commands/list.d.ts +6 -1
- package/dist/src/commands/list.d.ts.map +1 -1
- package/dist/src/commands/list.js +215 -6
- package/dist/src/commands/list.js.map +1 -1
- package/dist/src/format.d.ts +15 -0
- package/dist/src/format.d.ts.map +1 -0
- package/dist/src/format.js +29 -0
- package/dist/src/format.js.map +1 -0
- package/package.json +1 -1
- package/dist/src/commands/tree.d.ts +0 -14
- package/dist/src/commands/tree.d.ts.map +0 -1
- package/dist/src/commands/tree.js +0 -171
- package/dist/src/commands/tree.js.map +0 -1
package/README.md
CHANGED
|
@@ -43,7 +43,9 @@ e3 workspace remove <repo> <ws> # Remove workspace
|
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
45
|
e3 list <repo> [path] # List workspaces or tree contents
|
|
46
|
-
e3
|
|
46
|
+
e3 list <repo> <path> -r # List all dataset paths recursively
|
|
47
|
+
e3 list <repo> <path> -l # List immediate children with type/status/size
|
|
48
|
+
e3 list <repo> <path> -r -l # List all datasets with type/status/size
|
|
47
49
|
e3 get <repo> <path> [-f format] # Get dataset value (east/json/beast2)
|
|
48
50
|
e3 set <repo> <path> <file> # Set dataset value from file
|
|
49
51
|
```
|
package/dist/src/cli.js
CHANGED
|
@@ -16,12 +16,12 @@ import { repoCommand } from './commands/repo.js';
|
|
|
16
16
|
import { packageCommand } from './commands/package.js';
|
|
17
17
|
import { workspaceCommand } from './commands/workspace.js';
|
|
18
18
|
import { listCommand } from './commands/list.js';
|
|
19
|
-
import { treeCommand } from './commands/tree.js';
|
|
20
19
|
import { getCommand } from './commands/get.js';
|
|
21
20
|
import { setCommand } from './commands/set.js';
|
|
22
21
|
import { startCommand } from './commands/start.js';
|
|
23
22
|
import { runCommand } from './commands/run.js';
|
|
24
23
|
import { logsCommand } from './commands/logs.js';
|
|
24
|
+
import { datasetStatusCommand } from './commands/dataset-status.js';
|
|
25
25
|
import { convertCommand } from './commands/convert.js';
|
|
26
26
|
import { watchCommand } from './commands/watch.js';
|
|
27
27
|
import { createAuthCommand, createLoginCommand, createLogoutCommand } from './commands/auth.js';
|
|
@@ -121,13 +121,9 @@ program
|
|
|
121
121
|
program
|
|
122
122
|
.command('list <repo> [path]')
|
|
123
123
|
.description('List workspaces or tree contents at path (ws.path.to.tree)')
|
|
124
|
+
.option('-r, --recursive', 'List all datasets recursively')
|
|
125
|
+
.option('-l, --long', 'Show detailed information (type, status, size)')
|
|
124
126
|
.action(listCommand);
|
|
125
|
-
program
|
|
126
|
-
.command('tree <repo> <path>')
|
|
127
|
-
.description('Show full tree structure at path (ws or ws.subtree)')
|
|
128
|
-
.option('--depth <n>', 'Maximum depth to display')
|
|
129
|
-
.option('--types', 'Show dataset types')
|
|
130
|
-
.action(treeCommand);
|
|
131
127
|
program
|
|
132
128
|
.command('get <repo> <path>')
|
|
133
129
|
.description('Get dataset value at path (ws.path.to.dataset)')
|
|
@@ -138,6 +134,10 @@ program
|
|
|
138
134
|
.description('Set dataset value from file (ws.path.to.dataset)')
|
|
139
135
|
.option('--type <typespec>', 'Type specification in .east format (required for .json/.csv files)')
|
|
140
136
|
.action(setCommand);
|
|
137
|
+
program
|
|
138
|
+
.command('status <repo> <path>')
|
|
139
|
+
.description('Show dataset status at path (ws.path.to.dataset)')
|
|
140
|
+
.action(datasetStatusCommand);
|
|
141
141
|
// Execution commands
|
|
142
142
|
program
|
|
143
143
|
.command('run <repo> <task> [inputs...]')
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Show status detail for a single dataset at a path.
|
|
7
|
+
*/
|
|
8
|
+
export declare function datasetStatusCommand(repoArg: string, pathSpec: string): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=dataset-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataset-status.d.ts","sourceRoot":"","sources":["../../../src/commands/dataset-status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAgEf"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* e3 status command - Show dataset status detail
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* e3 status . ws.path.to.dataset
|
|
10
|
+
* e3 status https://server/repos/myrepo ws.path.to.dataset
|
|
11
|
+
*/
|
|
12
|
+
import { workspaceGetDatasetStatus, LocalStorage } from '@elaraai/e3-core';
|
|
13
|
+
import { datasetGetStatus as datasetGetStatusRemote } from '@elaraai/e3-api-client';
|
|
14
|
+
import { printFor, EastTypeType, isVariant, toEastTypeValue } from '@elaraai/east';
|
|
15
|
+
import { parseRepoLocation, parseDatasetPath, formatError, exitError } from '../utils.js';
|
|
16
|
+
import { formatSize } from '../format.js';
|
|
17
|
+
/**
|
|
18
|
+
* Show status detail for a single dataset at a path.
|
|
19
|
+
*/
|
|
20
|
+
export async function datasetStatusCommand(repoArg, pathSpec) {
|
|
21
|
+
try {
|
|
22
|
+
const location = await parseRepoLocation(repoArg);
|
|
23
|
+
const { ws, path } = parseDatasetPath(pathSpec);
|
|
24
|
+
if (path.length === 0) {
|
|
25
|
+
exitError('Path must include at least one field (e.g., ws.field)');
|
|
26
|
+
}
|
|
27
|
+
const pathStr = '.' + path.map(s => s.value).join('.');
|
|
28
|
+
const printType = printFor(EastTypeType);
|
|
29
|
+
if (location.type === 'local') {
|
|
30
|
+
const storage = new LocalStorage();
|
|
31
|
+
const result = await workspaceGetDatasetStatus(storage, location.path, ws, path);
|
|
32
|
+
// Convert type to EastTypeValue if needed
|
|
33
|
+
const typeValue = isVariant(result.datasetType)
|
|
34
|
+
? result.datasetType
|
|
35
|
+
: toEastTypeValue(result.datasetType);
|
|
36
|
+
console.log(`Path: ${pathStr}`);
|
|
37
|
+
console.log(`Type: ${printType(typeValue)}`);
|
|
38
|
+
if (result.refType === 'unassigned') {
|
|
39
|
+
console.log('Status: unset');
|
|
40
|
+
}
|
|
41
|
+
else if (result.refType === 'null') {
|
|
42
|
+
console.log('Status: set');
|
|
43
|
+
console.log('Hash: (null)');
|
|
44
|
+
console.log('Size: 0 B');
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.log('Status: set');
|
|
48
|
+
console.log(`Hash: ${result.hash}`);
|
|
49
|
+
console.log(`Size: ${formatSize(result.size)}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
const detail = await datasetGetStatusRemote(location.baseUrl, location.repo, ws, path, { token: location.token });
|
|
54
|
+
console.log(`Path: ${detail.path}`);
|
|
55
|
+
console.log(`Type: ${printType(detail.type)}`);
|
|
56
|
+
if (detail.hash.type === 'none' && detail.size.type === 'none') {
|
|
57
|
+
console.log('Status: unset');
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
console.log('Status: set');
|
|
61
|
+
if (detail.hash.type === 'some') {
|
|
62
|
+
console.log(`Hash: ${detail.hash.value}`);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
console.log('Hash: (null)');
|
|
66
|
+
}
|
|
67
|
+
if (detail.size.type === 'some') {
|
|
68
|
+
console.log(`Size: ${formatSize(Number(detail.size.value))}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
exitError(formatError(err));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=dataset-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataset-status.js","sourceRoot":"","sources":["../../../src/commands/dataset-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,13 @@
|
|
|
2
2
|
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
3
|
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
|
+
interface ListOptions {
|
|
6
|
+
recursive?: boolean;
|
|
7
|
+
long?: boolean;
|
|
8
|
+
}
|
|
5
9
|
/**
|
|
6
10
|
* List workspaces or tree contents at a path.
|
|
7
11
|
*/
|
|
8
|
-
export declare function listCommand(repoArg: string, pathSpec
|
|
12
|
+
export declare function listCommand(repoArg: string, pathSpec: string | undefined, options: ListOptions): Promise<void>;
|
|
13
|
+
export {};
|
|
9
14
|
//# sourceMappingURL=list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqCH,UAAU,WAAW;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAiJD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkKpH"}
|
|
@@ -8,17 +8,155 @@
|
|
|
8
8
|
* Usage:
|
|
9
9
|
* e3 list . # List all workspaces
|
|
10
10
|
* e3 list . ws # List root tree of workspace
|
|
11
|
-
* e3 list . ws
|
|
11
|
+
* e3 list . ws -r # All descendant dataset paths
|
|
12
|
+
* e3 list . ws -l # Immediate children with type/status/size
|
|
13
|
+
* e3 list . ws -r -l # All descendants with type/status/size
|
|
12
14
|
*/
|
|
13
|
-
import { workspaceList, workspaceListTree, workspaceGetState, LocalStorage, } from '@elaraai/e3-core';
|
|
14
|
-
import { workspaceList as workspaceListRemote, datasetList as datasetListRemote, datasetListAt as datasetListAtRemote, } from '@elaraai/e3-api-client';
|
|
15
|
+
import { workspaceList, workspaceListTree, workspaceGetState, workspaceGetTree, LocalStorage, } from '@elaraai/e3-core';
|
|
16
|
+
import { workspaceList as workspaceListRemote, datasetList as datasetListRemote, datasetListAt as datasetListAtRemote, datasetListRecursive as datasetListRecursiveRemote, datasetListRecursivePaths as datasetListRecursivePathsRemote, datasetListWithStatus as datasetListWithStatusRemote, } from '@elaraai/e3-api-client';
|
|
17
|
+
import { printFor, EastTypeType } from '@elaraai/east';
|
|
15
18
|
import { parseRepoLocation, parseDatasetPath, formatError, exitError } from '../utils.js';
|
|
19
|
+
import { formatSize } from '../format.js';
|
|
20
|
+
const printTypeValue = printFor(EastTypeType);
|
|
21
|
+
/** Flatten tree nodes to collect leaf paths. */
|
|
22
|
+
function collectPaths(nodes, prefix, result) {
|
|
23
|
+
for (const node of nodes) {
|
|
24
|
+
const path = prefix ? `${prefix}.${node.name}` : `.${node.name}`;
|
|
25
|
+
if (node.kind === 'dataset') {
|
|
26
|
+
result.push(path);
|
|
27
|
+
}
|
|
28
|
+
else if (node.kind === 'tree') {
|
|
29
|
+
collectPaths(node.children, path, result);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** Derive status string from a tree leaf node. */
|
|
34
|
+
function leafStatus(node) {
|
|
35
|
+
if (node.refType === undefined)
|
|
36
|
+
return '-';
|
|
37
|
+
if (node.refType === 'unassigned')
|
|
38
|
+
return 'unset';
|
|
39
|
+
if (node.refType === 'null')
|
|
40
|
+
return 'null';
|
|
41
|
+
return 'set';
|
|
42
|
+
}
|
|
43
|
+
/** Derive size string from a tree leaf node. */
|
|
44
|
+
function leafSize(node) {
|
|
45
|
+
if (node.refType === 'unassigned')
|
|
46
|
+
return '-';
|
|
47
|
+
if (node.refType === 'null')
|
|
48
|
+
return '0 B';
|
|
49
|
+
if (node.size !== undefined)
|
|
50
|
+
return formatSize(node.size);
|
|
51
|
+
return '-';
|
|
52
|
+
}
|
|
53
|
+
/** Format type from a tree leaf node. */
|
|
54
|
+
function leafType(node) {
|
|
55
|
+
if (!node.datasetType)
|
|
56
|
+
return '-';
|
|
57
|
+
try {
|
|
58
|
+
return printTypeValue(node.datasetType);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return '?';
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/** Flatten tree to table rows (recursive), including tree entries. */
|
|
65
|
+
function collectRows(nodes, prefix, result) {
|
|
66
|
+
for (const node of nodes) {
|
|
67
|
+
const path = prefix ? `${prefix}.${node.name}` : `.${node.name}`;
|
|
68
|
+
if (node.kind === 'dataset') {
|
|
69
|
+
result.push({
|
|
70
|
+
name: path,
|
|
71
|
+
type: leafType(node),
|
|
72
|
+
status: leafStatus(node),
|
|
73
|
+
size: leafSize(node),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
else if (node.kind === 'tree') {
|
|
77
|
+
result.push({ name: path, type: '(tree)', status: '-', size: '-' });
|
|
78
|
+
collectRows(node.children, path, result);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** Collect immediate children as rows (both datasets and trees). */
|
|
83
|
+
function collectImmediateRows(nodes, prefix, result) {
|
|
84
|
+
for (const node of nodes) {
|
|
85
|
+
if (node.kind === 'dataset') {
|
|
86
|
+
result.push({
|
|
87
|
+
name: node.name,
|
|
88
|
+
type: leafType(node),
|
|
89
|
+
status: leafStatus(node),
|
|
90
|
+
size: leafSize(node),
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
else if (node.kind === 'tree') {
|
|
94
|
+
result.push({ name: node.name, type: '(tree)', status: '-', size: '-' });
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/** Convert a ListEntry variant to a table row. */
|
|
99
|
+
function entryToRow(entry, usePath) {
|
|
100
|
+
if (entry.type === 'tree') {
|
|
101
|
+
const name = usePath ? entry.value.path : entry.value.path.split('.').pop();
|
|
102
|
+
return { name, type: '(tree)', status: '-', size: '-' };
|
|
103
|
+
}
|
|
104
|
+
// entry.type === 'dataset'
|
|
105
|
+
const item = entry.value;
|
|
106
|
+
let typeStr;
|
|
107
|
+
try {
|
|
108
|
+
typeStr = printTypeValue(item.type);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
typeStr = '?';
|
|
112
|
+
}
|
|
113
|
+
let status;
|
|
114
|
+
let size;
|
|
115
|
+
if (item.hash.type === 'none' && item.size.type === 'none') {
|
|
116
|
+
status = 'unset';
|
|
117
|
+
size = '-';
|
|
118
|
+
}
|
|
119
|
+
else if (item.size.type === 'some' && item.size.value === 0n) {
|
|
120
|
+
status = 'null';
|
|
121
|
+
size = '0 B';
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
status = 'set';
|
|
125
|
+
size = item.size.type === 'some' ? formatSize(Number(item.size.value)) : '-';
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
name: usePath ? item.path : item.path.split('.').pop(),
|
|
129
|
+
type: typeStr,
|
|
130
|
+
status,
|
|
131
|
+
size,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/** Print rows as a padded table. */
|
|
135
|
+
function printTable(rows, nameHeader) {
|
|
136
|
+
if (rows.length === 0) {
|
|
137
|
+
console.log('(empty)');
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
// Calculate column widths
|
|
141
|
+
const nameWidth = Math.max(nameHeader.length, ...rows.map(r => r.name.length));
|
|
142
|
+
const typeWidth = Math.max(4, ...rows.map(r => r.type.length));
|
|
143
|
+
const statusWidth = Math.max(6, ...rows.map(r => r.status.length));
|
|
144
|
+
const sizeWidth = Math.max(4, ...rows.map(r => r.size.length));
|
|
145
|
+
// Print header
|
|
146
|
+
console.log(`${nameHeader.padEnd(nameWidth)} ${('TYPE').padEnd(typeWidth)} ${('STATUS').padEnd(statusWidth)} ${('SIZE').padEnd(sizeWidth)}`);
|
|
147
|
+
// Print rows
|
|
148
|
+
for (const row of rows) {
|
|
149
|
+
console.log(`${row.name.padEnd(nameWidth)} ${row.type.padEnd(typeWidth)} ${row.status.padEnd(statusWidth)} ${row.size.padEnd(sizeWidth)}`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
16
152
|
/**
|
|
17
153
|
* List workspaces or tree contents at a path.
|
|
18
154
|
*/
|
|
19
|
-
export async function listCommand(repoArg, pathSpec) {
|
|
155
|
+
export async function listCommand(repoArg, pathSpec, options) {
|
|
20
156
|
try {
|
|
21
157
|
const location = await parseRepoLocation(repoArg);
|
|
158
|
+
const recursive = options.recursive ?? false;
|
|
159
|
+
const long = options.long ?? false;
|
|
22
160
|
// If no path, list workspaces
|
|
23
161
|
if (!pathSpec) {
|
|
24
162
|
if (location.type === 'local') {
|
|
@@ -56,15 +194,86 @@ export async function listCommand(repoArg, pathSpec) {
|
|
|
56
194
|
}
|
|
57
195
|
return;
|
|
58
196
|
}
|
|
59
|
-
// Parse path
|
|
197
|
+
// Parse path
|
|
60
198
|
const { ws, path } = parseDatasetPath(pathSpec);
|
|
199
|
+
// -r -l: recursive with details
|
|
200
|
+
if (recursive && long) {
|
|
201
|
+
if (location.type === 'local') {
|
|
202
|
+
const storage = new LocalStorage();
|
|
203
|
+
const nodes = await workspaceGetTree(storage, location.path, ws, path, {
|
|
204
|
+
includeTypes: true,
|
|
205
|
+
includeStatus: true,
|
|
206
|
+
});
|
|
207
|
+
const rows = [];
|
|
208
|
+
const prefix = path.length > 0 ? '.' + path.map(s => s.value).join('.') : '';
|
|
209
|
+
collectRows(nodes, prefix, rows);
|
|
210
|
+
printTable(rows, 'PATH');
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
const items = await datasetListRecursiveRemote(location.baseUrl, location.repo, ws, path, { token: location.token });
|
|
214
|
+
const rows = items.map(item => entryToRow(item, true));
|
|
215
|
+
printTable(rows, 'PATH');
|
|
216
|
+
}
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
// -r: recursive paths only
|
|
220
|
+
if (recursive) {
|
|
221
|
+
if (location.type === 'local') {
|
|
222
|
+
const storage = new LocalStorage();
|
|
223
|
+
const nodes = await workspaceGetTree(storage, location.path, ws, path, {
|
|
224
|
+
includeTypes: false,
|
|
225
|
+
includeStatus: false,
|
|
226
|
+
});
|
|
227
|
+
const paths = [];
|
|
228
|
+
const prefix = path.length > 0 ? '.' + path.map(s => s.value).join('.') : '';
|
|
229
|
+
collectPaths(nodes, prefix, paths);
|
|
230
|
+
if (paths.length === 0) {
|
|
231
|
+
console.log('(empty)');
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
for (const p of paths) {
|
|
235
|
+
console.log(p);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
const paths = await datasetListRecursivePathsRemote(location.baseUrl, location.repo, ws, path, { token: location.token });
|
|
240
|
+
if (paths.length === 0) {
|
|
241
|
+
console.log('(empty)');
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
for (const p of paths) {
|
|
245
|
+
console.log(p);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
// -l: immediate children with details
|
|
251
|
+
if (long) {
|
|
252
|
+
if (location.type === 'local') {
|
|
253
|
+
const storage = new LocalStorage();
|
|
254
|
+
const nodes = await workspaceGetTree(storage, location.path, ws, path, {
|
|
255
|
+
maxDepth: 0,
|
|
256
|
+
includeTypes: true,
|
|
257
|
+
includeStatus: true,
|
|
258
|
+
});
|
|
259
|
+
const rows = [];
|
|
260
|
+
collectImmediateRows(nodes, '', rows);
|
|
261
|
+
printTable(rows, 'NAME');
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
const items = await datasetListWithStatusRemote(location.baseUrl, location.repo, ws, path, { token: location.token });
|
|
265
|
+
const rows = items.map(item => entryToRow(item, false));
|
|
266
|
+
printTable(rows, 'NAME');
|
|
267
|
+
}
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
// Default: list field names (unchanged)
|
|
61
271
|
let fields;
|
|
62
272
|
if (location.type === 'local') {
|
|
63
273
|
const storage = new LocalStorage();
|
|
64
274
|
fields = await workspaceListTree(storage, location.path, ws, path);
|
|
65
275
|
}
|
|
66
276
|
else {
|
|
67
|
-
// Remote: list tree contents
|
|
68
277
|
if (path.length === 0) {
|
|
69
278
|
fields = await datasetListRemote(location.baseUrl, location.repo, ws, { token: location.token });
|
|
70
279
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Shared formatting utilities for CLI commands.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Format a byte count as a human-readable string.
|
|
10
|
+
*
|
|
11
|
+
* @param bytes - Size in bytes
|
|
12
|
+
* @returns Formatted string like "42 B", "1.5 KB", "1 MB"
|
|
13
|
+
*/
|
|
14
|
+
export declare function formatSize(bytes: number): string;
|
|
15
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAahD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Shared formatting utilities for CLI commands.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Format a byte count as a human-readable string.
|
|
10
|
+
*
|
|
11
|
+
* @param bytes - Size in bytes
|
|
12
|
+
* @returns Formatted string like "42 B", "1.5 KB", "1 MB"
|
|
13
|
+
*/
|
|
14
|
+
export function formatSize(bytes) {
|
|
15
|
+
if (bytes < 1024)
|
|
16
|
+
return `${bytes} B`;
|
|
17
|
+
const units = ['KB', 'MB', 'GB', 'TB'];
|
|
18
|
+
let value = bytes;
|
|
19
|
+
for (const unit of units) {
|
|
20
|
+
value /= 1024;
|
|
21
|
+
if (value < 1024 || unit === 'TB') {
|
|
22
|
+
const formatted = value % 1 === 0 ? value.toFixed(0) : value.toFixed(1);
|
|
23
|
+
return `${formatted} ${unit}`;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
// unreachable, but TypeScript needs it
|
|
27
|
+
return `${bytes} B`;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,IAAI,IAAI,CAAC;QACd,IAAI,KAAK,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACxE,OAAO,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IACD,uCAAuC;IACvC,OAAO,GAAG,KAAK,IAAI,CAAC;AACtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
-
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
-
*/
|
|
5
|
-
interface TreeOptions {
|
|
6
|
-
depth?: string;
|
|
7
|
-
types?: boolean;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Show full tree structure of a workspace.
|
|
11
|
-
*/
|
|
12
|
-
export declare function treeCommand(repoArg: string, pathSpec: string, options: TreeOptions): Promise<void>;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=tree.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../src/commands/tree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAkHD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CA2Ef"}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
-
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* e3 tree command - Show full tree structure of a workspace
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* e3 tree . dev # Full tree for workspace
|
|
10
|
-
* e3 tree . dev.tasks # Tree from subtree
|
|
11
|
-
* e3 tree . dev --depth 2 # Limit depth
|
|
12
|
-
* e3 tree . dev --types # Show dataset types
|
|
13
|
-
*/
|
|
14
|
-
import { workspaceGetTree, LocalStorage } from '@elaraai/e3-core';
|
|
15
|
-
import { printFor, EastTypeType } from '@elaraai/east';
|
|
16
|
-
import { datasetListRecursive as datasetListRecursiveRemote } from '@elaraai/e3-api-client';
|
|
17
|
-
import { parseRepoLocation, parseDatasetPath, formatError, exitError } from '../utils.js';
|
|
18
|
-
// Printer for type values (decoded types are EastTypeValue, not EastType)
|
|
19
|
-
const printTypeValue = printFor(EastTypeType);
|
|
20
|
-
/**
|
|
21
|
-
* Render tree nodes with box-drawing characters.
|
|
22
|
-
*/
|
|
23
|
-
function renderTree(nodes, prefix = '', showTypes = false) {
|
|
24
|
-
const lines = [];
|
|
25
|
-
for (let i = 0; i < nodes.length; i++) {
|
|
26
|
-
const node = nodes[i];
|
|
27
|
-
const isLast = i === nodes.length - 1;
|
|
28
|
-
const connector = isLast ? '└── ' : '├── ';
|
|
29
|
-
const childPrefix = isLast ? ' ' : '│ ';
|
|
30
|
-
// Format node name with optional type
|
|
31
|
-
let nodeName = node.name;
|
|
32
|
-
if (showTypes && node.kind === 'dataset' && node.datasetType) {
|
|
33
|
-
try {
|
|
34
|
-
nodeName += ` (${printTypeValue(node.datasetType)})`;
|
|
35
|
-
}
|
|
36
|
-
catch {
|
|
37
|
-
nodeName += ' (?)';
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
lines.push(prefix + connector + nodeName);
|
|
41
|
-
// Recurse into children (only tree nodes have children)
|
|
42
|
-
if (node.kind === 'tree' && node.children.length > 0) {
|
|
43
|
-
const childLines = renderTree(node.children, prefix + childPrefix, showTypes);
|
|
44
|
-
lines.push(...childLines);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return lines;
|
|
48
|
-
}
|
|
49
|
-
function buildTreeFromFlat(items, showTypes) {
|
|
50
|
-
const root = { name: '', children: new Map(), isDataset: false };
|
|
51
|
-
for (const item of items) {
|
|
52
|
-
// Path is like ".inputs.a.x" - split into segments
|
|
53
|
-
const segments = item.path.split('.').filter(s => s !== '');
|
|
54
|
-
let current = root;
|
|
55
|
-
for (let i = 0; i < segments.length; i++) {
|
|
56
|
-
const segment = segments[i];
|
|
57
|
-
const isLast = i === segments.length - 1;
|
|
58
|
-
if (!current.children.has(segment)) {
|
|
59
|
-
current.children.set(segment, {
|
|
60
|
-
name: segment,
|
|
61
|
-
children: new Map(),
|
|
62
|
-
isDataset: false,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
const node = current.children.get(segment);
|
|
66
|
-
if (isLast) {
|
|
67
|
-
node.isDataset = true;
|
|
68
|
-
if (showTypes) {
|
|
69
|
-
try {
|
|
70
|
-
node.type = printTypeValue(item.type);
|
|
71
|
-
}
|
|
72
|
-
catch {
|
|
73
|
-
node.type = '?';
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
current = node;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return root;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Render flat tree structure with box-drawing characters.
|
|
84
|
-
*/
|
|
85
|
-
function renderFlatTree(node, prefix = '', showTypes = false) {
|
|
86
|
-
const lines = [];
|
|
87
|
-
const children = Array.from(node.children.values());
|
|
88
|
-
for (let i = 0; i < children.length; i++) {
|
|
89
|
-
const child = children[i];
|
|
90
|
-
const isLast = i === children.length - 1;
|
|
91
|
-
const connector = isLast ? '└── ' : '├── ';
|
|
92
|
-
const childPrefix = isLast ? ' ' : '│ ';
|
|
93
|
-
let nodeName = child.name;
|
|
94
|
-
if (showTypes && child.isDataset && child.type) {
|
|
95
|
-
nodeName += ` (${child.type})`;
|
|
96
|
-
}
|
|
97
|
-
lines.push(prefix + connector + nodeName);
|
|
98
|
-
// Recurse into children
|
|
99
|
-
if (child.children.size > 0) {
|
|
100
|
-
const childLines = renderFlatTree(child, prefix + childPrefix, showTypes);
|
|
101
|
-
lines.push(...childLines);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return lines;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Show full tree structure of a workspace.
|
|
108
|
-
*/
|
|
109
|
-
export async function treeCommand(repoArg, pathSpec, options) {
|
|
110
|
-
try {
|
|
111
|
-
const location = await parseRepoLocation(repoArg);
|
|
112
|
-
const { ws, path } = parseDatasetPath(pathSpec);
|
|
113
|
-
const maxDepth = options.depth !== undefined ? parseInt(options.depth, 10) : undefined;
|
|
114
|
-
const includeTypes = options.types ?? false;
|
|
115
|
-
if (location.type === 'local') {
|
|
116
|
-
const storage = new LocalStorage();
|
|
117
|
-
const nodes = await workspaceGetTree(storage, location.path, ws, path, {
|
|
118
|
-
maxDepth,
|
|
119
|
-
includeTypes,
|
|
120
|
-
});
|
|
121
|
-
if (nodes.length === 0) {
|
|
122
|
-
console.log('(empty)');
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
// Print root path
|
|
126
|
-
console.log(pathSpec);
|
|
127
|
-
// Render and print tree
|
|
128
|
-
const lines = renderTree(nodes, '', includeTypes);
|
|
129
|
-
for (const line of lines) {
|
|
130
|
-
console.log(line);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
// Remote: use flat list and build tree
|
|
135
|
-
const items = await datasetListRecursiveRemote(location.baseUrl, location.repo, ws, path, { token: location.token });
|
|
136
|
-
if (items.length === 0) {
|
|
137
|
-
console.log('(empty)');
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
// Print root path
|
|
141
|
-
console.log(pathSpec);
|
|
142
|
-
// Build tree from flat list and render
|
|
143
|
-
const tree = buildTreeFromFlat(items, includeTypes);
|
|
144
|
-
// Apply depth limit if specified
|
|
145
|
-
const lines = renderFlatTree(tree, '', includeTypes);
|
|
146
|
-
// Apply depth filter if needed
|
|
147
|
-
if (maxDepth !== undefined) {
|
|
148
|
-
const filteredLines = [];
|
|
149
|
-
for (const line of lines) {
|
|
150
|
-
// Count depth by counting connector patterns
|
|
151
|
-
const depth = (line.match(/[├└]/g) || []).length;
|
|
152
|
-
if (depth <= maxDepth) {
|
|
153
|
-
filteredLines.push(line);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
for (const line of filteredLines) {
|
|
157
|
-
console.log(line);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
for (const line of lines) {
|
|
162
|
-
console.log(line);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
catch (err) {
|
|
168
|
-
exitError(formatError(err));
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
//# sourceMappingURL=tree.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../src/commands/tree.ts"],"names":[],"mappings":"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"}
|