@elaraai/e3-cli 0.0.2-beta.11 → 0.0.2-beta.13

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 (63) hide show
  1. package/README.md +21 -9
  2. package/dist/src/cli.js +29 -14
  3. package/dist/src/cli.js.map +1 -1
  4. package/dist/src/commands/auth.d.ts +21 -0
  5. package/dist/src/commands/auth.d.ts.map +1 -0
  6. package/dist/src/commands/auth.js +185 -0
  7. package/dist/src/commands/auth.js.map +1 -0
  8. package/dist/src/commands/get.d.ts.map +1 -1
  9. package/dist/src/commands/get.js +32 -14
  10. package/dist/src/commands/get.js.map +1 -1
  11. package/dist/src/commands/list.d.ts.map +1 -1
  12. package/dist/src/commands/list.js +47 -14
  13. package/dist/src/commands/list.js.map +1 -1
  14. package/dist/src/commands/logs.d.ts.map +1 -1
  15. package/dist/src/commands/logs.js +126 -54
  16. package/dist/src/commands/logs.js.map +1 -1
  17. package/dist/src/commands/package.d.ts.map +1 -1
  18. package/dist/src/commands/package.js +55 -18
  19. package/dist/src/commands/package.js.map +1 -1
  20. package/dist/src/commands/repo.d.ts +29 -0
  21. package/dist/src/commands/repo.d.ts.map +1 -0
  22. package/dist/src/commands/repo.js +231 -0
  23. package/dist/src/commands/repo.js.map +1 -0
  24. package/dist/src/commands/run.d.ts.map +1 -1
  25. package/dist/src/commands/run.js +4 -3
  26. package/dist/src/commands/run.js.map +1 -1
  27. package/dist/src/commands/set.d.ts.map +1 -1
  28. package/dist/src/commands/set.js +16 -5
  29. package/dist/src/commands/set.js.map +1 -1
  30. package/dist/src/commands/start.d.ts.map +1 -1
  31. package/dist/src/commands/start.js +166 -47
  32. package/dist/src/commands/start.js.map +1 -1
  33. package/dist/src/commands/tree.d.ts.map +1 -1
  34. package/dist/src/commands/tree.js +110 -16
  35. package/dist/src/commands/tree.js.map +1 -1
  36. package/dist/src/commands/watch.d.ts.map +1 -1
  37. package/dist/src/commands/watch.js +8 -6
  38. package/dist/src/commands/watch.js.map +1 -1
  39. package/dist/src/commands/workspace.d.ts +4 -0
  40. package/dist/src/commands/workspace.d.ts.map +1 -1
  41. package/dist/src/commands/workspace.js +269 -29
  42. package/dist/src/commands/workspace.js.map +1 -1
  43. package/dist/src/credentials.d.ts +123 -0
  44. package/dist/src/credentials.d.ts.map +1 -0
  45. package/dist/src/credentials.js +213 -0
  46. package/dist/src/credentials.js.map +1 -0
  47. package/dist/src/utils.d.ts +48 -0
  48. package/dist/src/utils.d.ts.map +1 -1
  49. package/dist/src/utils.js +58 -0
  50. package/dist/src/utils.js.map +1 -1
  51. package/package.json +7 -6
  52. package/dist/src/commands/gc.d.ts +0 -12
  53. package/dist/src/commands/gc.d.ts.map +0 -1
  54. package/dist/src/commands/gc.js +0 -44
  55. package/dist/src/commands/gc.js.map +0 -1
  56. package/dist/src/commands/init.d.ts +0 -9
  57. package/dist/src/commands/init.d.ts.map +0 -1
  58. package/dist/src/commands/init.js +0 -33
  59. package/dist/src/commands/init.js.map +0 -1
  60. package/dist/src/commands/status.d.ts +0 -9
  61. package/dist/src/commands/status.d.ts.map +0 -1
  62. package/dist/src/commands/status.js +0 -157
  63. package/dist/src/commands/status.js.map +0 -1
package/README.md CHANGED
@@ -13,18 +13,19 @@ npm install -g @elaraai/e3-cli
13
13
  ### Repository
14
14
 
15
15
  ```bash
16
- e3 init <repo> # Initialize a new repository
17
- e3 status <repo> # Show repository status
18
- e3 gc <repo> [--dry-run] # Remove unreferenced objects
16
+ e3 repo create <repo> # Create a new repository
17
+ e3 repo status <repo> # Show repository status
18
+ e3 repo remove <repo> # Remove a repository
19
+ e3 repo gc <repo> [--dry-run] # Remove unreferenced objects
19
20
  ```
20
21
 
21
22
  ### Packages
22
23
 
23
24
  ```bash
24
- e3 package import <repo> <zip> # Import package from .zip
25
+ e3 package import <repo> <zip> # Import package from .zip
25
26
  e3 package export <repo> <pkg> <zip> # Export package to .zip
26
- e3 package list <repo> # List installed packages
27
- e3 package remove <repo> <pkg> # Remove a package
27
+ e3 package list <repo> # List installed packages
28
+ e3 package remove <repo> <pkg> # Remove a package
28
29
  ```
29
30
 
30
31
  ### Workspaces
@@ -34,6 +35,7 @@ e3 workspace create <repo> <name> # Create empty workspace
34
35
  e3 workspace deploy <repo> <ws> <pkg> # Deploy package to workspace
35
36
  e3 workspace export <repo> <ws> <zip> # Export workspace as package
36
37
  e3 workspace list <repo> # List workspaces
38
+ e3 workspace status <repo> <ws> # Show workspace status
37
39
  e3 workspace remove <repo> <ws> # Remove workspace
38
40
  ```
39
41
 
@@ -41,6 +43,7 @@ e3 workspace remove <repo> <ws> # Remove workspace
41
43
 
42
44
  ```bash
43
45
  e3 list <repo> [path] # List workspaces or tree contents
46
+ e3 tree <repo> <path> # Show full tree structure
44
47
  e3 get <repo> <path> [-f format] # Get dataset value (east/json/beast2)
45
48
  e3 set <repo> <path> <file> # Set dataset value from file
46
49
  ```
@@ -48,8 +51,9 @@ e3 set <repo> <path> <file> # Set dataset value from file
48
51
  ### Execution
49
52
 
50
53
  ```bash
51
- e3 run <repo> <task> [inputs...] # Run task ad-hoc
52
54
  e3 start <repo> <ws> # Execute tasks in workspace
55
+ e3 run <repo> <task> [inputs...] # Run task ad-hoc
56
+ e3 watch <repo> <ws> <source.ts> # Watch and auto-deploy on changes
53
57
  e3 logs <repo> <path> [--follow] # View task logs
54
58
  ```
55
59
 
@@ -59,11 +63,19 @@ e3 logs <repo> <path> [--follow] # View task logs
59
63
  e3 convert [input] --to <format> # Convert between .east/.json/.beast2
60
64
  ```
61
65
 
66
+ ### Authentication (for remote servers)
67
+
68
+ ```bash
69
+ e3 login <url> # Authenticate with remote server
70
+ e3 logout <url> # Clear stored credentials
71
+ e3 auth status # Show authentication status
72
+ ```
73
+
62
74
  ## Example
63
75
 
64
76
  ```bash
65
- # Initialize repository and import a package
66
- e3 init ./my-project
77
+ # Create repository and import a package
78
+ e3 repo create ./my-project
67
79
  e3 package import ./my-project ./greeting-pkg-1.0.0.zip
68
80
 
69
81
  # Create workspace and deploy package
package/dist/src/cli.js CHANGED
@@ -10,9 +10,9 @@
10
10
  */
11
11
  import { createRequire } from 'node:module';
12
12
  import { Command } from 'commander';
13
- import { initCommand } from './commands/init.js';
14
13
  const require = createRequire(import.meta.url);
15
14
  const packageJson = require('../../package.json');
15
+ 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';
@@ -22,10 +22,9 @@ import { setCommand } from './commands/set.js';
22
22
  import { startCommand } from './commands/start.js';
23
23
  import { runCommand } from './commands/run.js';
24
24
  import { logsCommand } from './commands/logs.js';
25
- import { statusCommand } from './commands/status.js';
26
- import { gcCommand } from './commands/gc.js';
27
25
  import { convertCommand } from './commands/convert.js';
28
26
  import { watchCommand } from './commands/watch.js';
27
+ import { createAuthCommand, createLoginCommand, createLogoutCommand } from './commands/auth.js';
29
28
  const program = new Command();
30
29
  program
31
30
  .name('e3')
@@ -33,19 +32,26 @@ program
33
32
  .version(packageJson.version);
34
33
  // Repository commands
35
34
  program
36
- .command('init <repo>')
37
- .description('Initialize a new e3 repository')
38
- .action(initCommand);
39
- program
40
- .command('status <repo> [workspace]')
41
- .description('Show repository status, or detailed workspace status if workspace provided')
42
- .action(statusCommand);
43
- program
44
- .command('gc <repo>')
35
+ .command('repo')
36
+ .description('Repository operations')
37
+ .addCommand(new Command('create')
38
+ .description('Create a new repository')
39
+ .argument('<repo>', 'Repository path or URL')
40
+ .action(repoCommand.create))
41
+ .addCommand(new Command('remove')
42
+ .description('Remove a repository')
43
+ .argument('<repo>', 'Repository path or URL')
44
+ .action(repoCommand.remove))
45
+ .addCommand(new Command('status')
46
+ .description('Show repository status')
47
+ .argument('<repo>', 'Repository path or URL')
48
+ .action(repoCommand.status))
49
+ .addCommand(new Command('gc')
45
50
  .description('Remove unreferenced objects')
51
+ .argument('<repo>', 'Repository path or URL')
46
52
  .option('--dry-run', 'Report what would be deleted without deleting')
47
53
  .option('--min-age <ms>', 'Minimum file age in ms before deletion', '60000')
48
- .action(gcCommand);
54
+ .action(repoCommand.gc));
49
55
  // Package commands
50
56
  program
51
57
  .command('package')
@@ -101,7 +107,12 @@ program
101
107
  .description('Remove a workspace')
102
108
  .argument('<repo>', 'Repository path')
103
109
  .argument('<ws>', 'Workspace name')
104
- .action(workspaceCommand.remove));
110
+ .action(workspaceCommand.remove))
111
+ .addCommand(new Command('status')
112
+ .description('Show detailed workspace status (tasks, datasets, locks)')
113
+ .argument('<repo>', 'Repository path')
114
+ .argument('<ws>', 'Workspace name')
115
+ .action(workspaceCommand.status));
105
116
  // Dataset commands
106
117
  program
107
118
  .command('list <repo> [path]')
@@ -158,5 +169,9 @@ program
158
169
  .option('-o, --output <path>', 'Output file path (default: stdout)')
159
170
  .option('--type <typespec>', 'Type specification in .east format')
160
171
  .action(convertCommand);
172
+ // Authentication commands
173
+ program.addCommand(createLoginCommand());
174
+ program.addCommand(createLogoutCommand());
175
+ program.addCommand(createAuthCommand());
161
176
  program.parse();
162
177
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Authentication commands for e3 CLI.
7
+ */
8
+ import { Command } from 'commander';
9
+ /**
10
+ * Create the auth command group.
11
+ */
12
+ export declare function createAuthCommand(): Command;
13
+ /**
14
+ * Create the login command.
15
+ */
16
+ export declare function createLoginCommand(): Command;
17
+ /**
18
+ * Create the logout command.
19
+ */
20
+ export declare function createLogoutCommand(): Command;
21
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/commands/auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyCpC;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CA8D3C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CA6E5C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAa7C"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Authentication commands for e3 CLI.
7
+ */
8
+ import { Command } from 'commander';
9
+ import { fetchDiscovery, startDeviceAuth, pollForTokens, setCredential, removeCredential, listCredentials, getCredential, isExpired, decodeJwtPayload, normalizeServerUrl, } from '../credentials.js';
10
+ /**
11
+ * Try to open a URL in the default browser.
12
+ */
13
+ async function openBrowser(url) {
14
+ const { exec } = await import('node:child_process');
15
+ const { platform } = await import('node:os');
16
+ return new Promise((resolve) => {
17
+ let command;
18
+ switch (platform()) {
19
+ case 'darwin':
20
+ command = `open "${url}"`;
21
+ break;
22
+ case 'win32':
23
+ command = `start "" "${url}"`;
24
+ break;
25
+ default:
26
+ command = `xdg-open "${url}"`;
27
+ }
28
+ exec(command, (error) => {
29
+ resolve(!error);
30
+ });
31
+ });
32
+ }
33
+ /**
34
+ * Create the auth command group.
35
+ */
36
+ export function createAuthCommand() {
37
+ const auth = new Command('auth')
38
+ .description('Authentication commands');
39
+ // e3 auth status - List all saved credentials
40
+ auth
41
+ .command('status')
42
+ .description('List saved credentials')
43
+ .action(() => {
44
+ const creds = listCredentials();
45
+ if (creds.length === 0) {
46
+ console.log('No saved credentials.');
47
+ console.log('Run: e3 login <server>');
48
+ return;
49
+ }
50
+ console.log('Saved credentials:\n');
51
+ for (const { server, expiresAt } of creds) {
52
+ const expired = isExpired(expiresAt);
53
+ const status = expired ? '(expired)' : '(valid)';
54
+ console.log(` ${server} ${status}`);
55
+ console.log(` Token expires: ${expiresAt}`);
56
+ }
57
+ });
58
+ // e3 auth whoami [server] - Show current identity
59
+ auth
60
+ .command('whoami')
61
+ .description('Show current identity')
62
+ .argument('[server]', 'Server URL')
63
+ .action((server) => {
64
+ const creds = listCredentials();
65
+ if (creds.length === 0) {
66
+ console.log('Not logged in to any servers.');
67
+ return;
68
+ }
69
+ const servers = server ? [server] : creds.map((c) => c.server);
70
+ for (const serverUrl of servers) {
71
+ const credential = getCredential(serverUrl);
72
+ if (!credential) {
73
+ console.log(`${serverUrl}: Not logged in`);
74
+ continue;
75
+ }
76
+ try {
77
+ const payload = decodeJwtPayload(credential.accessToken);
78
+ const expired = isExpired(credential.expiresAt);
79
+ const status = expired ? '(token expired)' : '';
80
+ console.log(`${serverUrl}: ${status}`);
81
+ console.log(` Subject: ${payload.sub ?? 'unknown'}`);
82
+ if (payload.email) {
83
+ console.log(` Email: ${payload.email}`);
84
+ }
85
+ console.log(` Issuer: ${payload.iss ?? 'unknown'}`);
86
+ }
87
+ catch {
88
+ console.log(`${serverUrl}: Invalid token`);
89
+ }
90
+ }
91
+ });
92
+ return auth;
93
+ }
94
+ /**
95
+ * Create the login command.
96
+ */
97
+ export function createLoginCommand() {
98
+ return new Command('login')
99
+ .description('Log in to a server using OAuth2 Device Flow')
100
+ .argument('<server>', 'Server URL (e.g., http://localhost:3000)')
101
+ .option('--no-browser', 'Do not open browser (for CI/headless environments)')
102
+ .action(async (server, options) => {
103
+ const serverUrl = normalizeServerUrl(server);
104
+ console.log(`Logging in to ${serverUrl}...`);
105
+ // Fetch OIDC discovery document
106
+ let discovery;
107
+ try {
108
+ discovery = await fetchDiscovery(serverUrl);
109
+ }
110
+ catch (err) {
111
+ const message = err instanceof Error ? err.message : 'unknown error';
112
+ console.error(`Failed to connect to server: ${message}`);
113
+ console.error('Make sure the server is running with --oidc enabled.');
114
+ process.exit(1);
115
+ }
116
+ // Start device authorization
117
+ let deviceAuth;
118
+ try {
119
+ deviceAuth = await startDeviceAuth(discovery);
120
+ }
121
+ catch (err) {
122
+ const message = err instanceof Error ? err.message : 'unknown error';
123
+ console.error(`Failed to start login: ${message}`);
124
+ process.exit(1);
125
+ }
126
+ // Display user code and URL (unless in quiet CI mode)
127
+ if (options.browser) {
128
+ console.log('\nTo complete login:');
129
+ console.log(` 1. Open: ${deviceAuth.verification_uri}`);
130
+ console.log(` 2. Enter code: ${deviceAuth.user_code}`);
131
+ console.log(`\nOr visit this URL directly:`);
132
+ console.log(` ${deviceAuth.verification_uri_complete}`);
133
+ // Try to open browser
134
+ const opened = await openBrowser(deviceAuth.verification_uri_complete);
135
+ if (opened) {
136
+ console.log('\nBrowser opened. Waiting for approval...');
137
+ }
138
+ else {
139
+ console.log('\nWaiting for approval...');
140
+ }
141
+ }
142
+ else {
143
+ console.log('Waiting for server approval (--no-browser mode)...');
144
+ }
145
+ // Poll for tokens
146
+ try {
147
+ const tokens = await pollForTokens(discovery, deviceAuth.device_code, deviceAuth.interval, deviceAuth.expires_in);
148
+ // Save credentials
149
+ const entry = {
150
+ accessToken: tokens.access_token,
151
+ refreshToken: tokens.refresh_token,
152
+ expiresAt: new Date(Date.now() + tokens.expires_in * 1000).toISOString(),
153
+ };
154
+ setCredential(serverUrl, entry);
155
+ // Show identity
156
+ const payload = decodeJwtPayload(tokens.access_token);
157
+ console.log(`\nSuccessfully logged in as: ${payload.sub ?? 'unknown'}`);
158
+ console.log(`Token expires: ${entry.expiresAt}`);
159
+ }
160
+ catch (err) {
161
+ const message = err instanceof Error ? err.message : 'unknown error';
162
+ console.error(`\nLogin failed: ${message}`);
163
+ process.exit(1);
164
+ }
165
+ });
166
+ }
167
+ /**
168
+ * Create the logout command.
169
+ */
170
+ export function createLogoutCommand() {
171
+ return new Command('logout')
172
+ .description('Log out from a server')
173
+ .argument('<server>', 'Server URL')
174
+ .action((server) => {
175
+ const serverUrl = normalizeServerUrl(server);
176
+ const removed = removeCredential(serverUrl);
177
+ if (removed) {
178
+ console.log(`Logged out from ${serverUrl}`);
179
+ }
180
+ else {
181
+ console.log(`Not logged in to ${serverUrl}`);
182
+ }
183
+ });
184
+ }
185
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/commands/auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,cAAc,EACd,eAAe,EACf,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,kBAAkB,GAEnB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,KAAK,UAAU,WAAW,CAAC,GAAW;IACpC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACpD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAE7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAe,CAAC;QACpB,QAAQ,QAAQ,EAAE,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC;gBAC1B,MAAM;YACR,KAAK,OAAO;gBACV,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;gBAC9B,MAAM;YACR;gBACE,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACtB,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;SAC7B,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAE1C,8CAA8C;IAC9C,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,KAAK,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,KAAK,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,kDAAkD;IAClD,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uBAAuB,CAAC;SACpC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;SAClC,MAAM,CAAC,CAAC,MAAe,EAAE,EAAE;QAC1B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC/D,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,iBAAiB,CAAC,CAAC;gBAC3C,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBACzD,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,KAAK,MAAM,EAAE,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC;gBACtD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC3C,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,iBAAiB,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;SACxB,WAAW,CAAC,6CAA6C,CAAC;SAC1D,QAAQ,CAAC,UAAU,EAAE,0CAA0C,CAAC;SAChE,MAAM,CAAC,cAAc,EAAE,oDAAoD,CAAC;SAC5E,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAA6B,EAAE,EAAE;QAC9D,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,KAAK,CAAC,CAAC;QAE7C,gCAAgC;QAChC,IAAI,SAAS,CAAC;QACd,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,OAAO,CAAC,KAAK,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,6BAA6B;QAC7B,IAAI,UAAU,CAAC;QACf,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,OAAO,CAAC,KAAK,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,sDAAsD;QACtD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;YAEzD,sBAAsB;YACtB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;YACvE,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QACpE,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,SAAS,EACT,UAAU,CAAC,WAAW,EACtB,UAAU,CAAC,QAAQ,EACnB,UAAU,CAAC,UAAU,CACtB,CAAC;YAEF,mBAAmB;YACnB,MAAM,KAAK,GAAoB;gBAC7B,WAAW,EAAE,MAAM,CAAC,YAAY;gBAChC,YAAY,EAAE,MAAM,CAAC,aAAa;gBAClC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;aACzE,CAAC;YACF,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAEhC,gBAAgB;YAChB,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,gCAAgC,OAAO,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,OAAO,CAAC,KAAK,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,uBAAuB,CAAC;SACpC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;SAClC,MAAM,CAAC,CAAC,MAAc,EAAE,EAAE;QACzB,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS,EAAE,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/get.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,IAAI,CAAC,CA+Cf"}
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/get.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,IAAI,CAAC,CAuEf"}
@@ -8,32 +8,50 @@
8
8
  * Usage:
9
9
  * e3 get . ws.path.to.dataset
10
10
  * e3 get . ws.path.to.dataset -f json
11
+ * e3 get https://server/repos/myrepo ws.path.to.dataset
11
12
  */
12
- import { workspaceGetDatasetHash, datasetRead } from '@elaraai/e3-core';
13
- import { printFor, toJSONFor } from '@elaraai/east';
14
- import { resolveRepo, parseDatasetPath, formatError, exitError } from '../utils.js';
13
+ import { workspaceGetDatasetHash, datasetRead, LocalStorage } from '@elaraai/e3-core';
14
+ import { datasetGet as datasetGetRemote } from '@elaraai/e3-api-client';
15
+ import { printFor, toJSONFor, decodeBeast2, toEastTypeValue, isVariant } from '@elaraai/east';
16
+ import { parseRepoLocation, parseDatasetPath, formatError, exitError } from '../utils.js';
15
17
  /**
16
18
  * Get dataset value at a path.
17
19
  */
18
20
  export async function getCommand(repoArg, pathSpec, options) {
19
21
  try {
20
- const repoPath = resolveRepo(repoArg);
22
+ const location = await parseRepoLocation(repoArg);
21
23
  const { ws, path } = parseDatasetPath(pathSpec);
22
24
  if (path.length === 0) {
23
25
  exitError('Path must include at least one field (e.g., ws.field)');
24
26
  }
25
- // Get the hash first, then read with type info
26
- const { refType, hash } = await workspaceGetDatasetHash(repoPath, ws, path);
27
- if (refType === 'unassigned') {
28
- exitError('Dataset is unassigned (pending task output)');
27
+ const format = options.format ?? 'east';
28
+ let type;
29
+ let value;
30
+ if (location.type === 'local') {
31
+ const storage = new LocalStorage();
32
+ // Get the hash first, then read with type info
33
+ const { refType, hash } = await workspaceGetDatasetHash(storage, location.path, ws, path);
34
+ if (refType === 'unassigned') {
35
+ exitError('Dataset is unassigned (pending task output)');
36
+ }
37
+ if (refType === 'null' || hash === null) {
38
+ console.log('null');
39
+ return;
40
+ }
41
+ // Read the dataset to get both value and type
42
+ const dataset = await datasetRead(storage, location.path, hash);
43
+ // Convert EastType to EastTypeValue if necessary
44
+ type = isVariant(dataset.type) ? dataset.type : toEastTypeValue(dataset.type);
45
+ value = dataset.value;
29
46
  }
30
- if (refType === 'null' || hash === null) {
31
- console.log('null');
32
- return;
47
+ else {
48
+ // Remote: get raw BEAST2 bytes and decode
49
+ const beast2Data = await datasetGetRemote(location.baseUrl, location.repo, ws, path, { token: location.token });
50
+ // Decode BEAST2 to get type and value
51
+ const decoded = decodeBeast2(beast2Data);
52
+ type = decoded.type;
53
+ value = decoded.value;
33
54
  }
34
- // Read the dataset to get both value and type
35
- const { type, value } = await datasetRead(repoPath, hash);
36
- const format = options.format ?? 'east';
37
55
  switch (format) {
38
56
  case 'east': {
39
57
  const printer = printFor(type);
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/get.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AAEH,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEpF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,QAAgB,EAChB,OAA4B;IAE5B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,uDAAuD,CAAC,CAAC;QACrE,CAAC;QAED,+CAA+C;QAC/C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAE5E,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC7B,SAAS,CAAC,6CAA6C,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,OAAO,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,8CAA8C;QAC9C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;QAExC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5B,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChD,MAAM;YACR,CAAC;YACD,KAAK,QAAQ;gBACX,SAAS,CAAC,0DAA0D,CAAC,CAAC;gBACtE,MAAM;YACR;gBACE,SAAS,CAAC,mBAAmB,MAAM,2BAA2B,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/get.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCnF"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwBH;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqFnF"}
@@ -10,35 +10,68 @@
10
10
  * e3 list . ws # List root tree of workspace
11
11
  * e3 list . ws.inputs # List fields under inputs
12
12
  */
13
- import { workspaceList, workspaceListTree, workspaceGetState, } from '@elaraai/e3-core';
14
- import { resolveRepo, parseDatasetPath, formatError, exitError } from '../utils.js';
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 { parseRepoLocation, parseDatasetPath, formatError, exitError } from '../utils.js';
15
16
  /**
16
17
  * List workspaces or tree contents at a path.
17
18
  */
18
19
  export async function listCommand(repoArg, pathSpec) {
19
20
  try {
20
- const repoPath = resolveRepo(repoArg);
21
+ const location = await parseRepoLocation(repoArg);
21
22
  // If no path, list workspaces
22
23
  if (!pathSpec) {
23
- const workspaces = await workspaceList(repoPath);
24
- if (workspaces.length === 0) {
25
- console.log('No workspaces');
26
- return;
24
+ if (location.type === 'local') {
25
+ const storage = new LocalStorage();
26
+ const workspaces = await workspaceList(storage, location.path);
27
+ if (workspaces.length === 0) {
28
+ console.log('No workspaces');
29
+ return;
30
+ }
31
+ for (const ws of workspaces) {
32
+ const state = await workspaceGetState(storage, location.path, ws);
33
+ if (state) {
34
+ console.log(`${ws} (${state.packageName}@${state.packageVersion})`);
35
+ }
36
+ else {
37
+ console.log(`${ws} (not deployed)`);
38
+ }
39
+ }
27
40
  }
28
- for (const ws of workspaces) {
29
- const state = await workspaceGetState(repoPath, ws);
30
- if (state) {
31
- console.log(`${ws} (${state.packageName}@${state.packageVersion})`);
41
+ else {
42
+ // Remote: list workspaces
43
+ const workspaces = await workspaceListRemote(location.baseUrl, location.repo, { token: location.token });
44
+ if (workspaces.length === 0) {
45
+ console.log('No workspaces');
46
+ return;
32
47
  }
33
- else {
34
- console.log(`${ws} (not deployed)`);
48
+ for (const ws of workspaces) {
49
+ if (ws.deployed && ws.packageName.type === 'some' && ws.packageVersion.type === 'some') {
50
+ console.log(`${ws.name} (${ws.packageName.value}@${ws.packageVersion.value})`);
51
+ }
52
+ else {
53
+ console.log(`${ws.name} (not deployed)`);
54
+ }
35
55
  }
36
56
  }
37
57
  return;
38
58
  }
39
59
  // Parse path and list tree contents
40
60
  const { ws, path } = parseDatasetPath(pathSpec);
41
- const fields = await workspaceListTree(repoPath, ws, path);
61
+ let fields;
62
+ if (location.type === 'local') {
63
+ const storage = new LocalStorage();
64
+ fields = await workspaceListTree(storage, location.path, ws, path);
65
+ }
66
+ else {
67
+ // Remote: list tree contents
68
+ if (path.length === 0) {
69
+ fields = await datasetListRemote(location.baseUrl, location.repo, ws, { token: location.token });
70
+ }
71
+ else {
72
+ fields = await datasetListAtRemote(location.baseUrl, location.repo, ws, path, { token: location.token });
73
+ }
74
+ }
42
75
  if (fields.length === 0) {
43
76
  console.log('(empty)');
44
77
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEpF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe,EAAE,QAAiB;IAClE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAEtC,8BAA8B;QAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAEjD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACpD,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;gBACvE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,oCAAoC;QACpC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,IAAI,mBAAmB,EACpC,WAAW,IAAI,iBAAiB,EAChC,aAAa,IAAI,mBAAmB,GACrC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1F;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe,EAAE,QAAiB;IAClE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAElD,8BAA8B;QAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;gBACnC,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAE/D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;oBAC7B,OAAO;gBACT,CAAC;gBAED,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;oBAC5B,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAClE,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;oBACvE,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;oBACvC,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,0BAA0B;gBAC1B,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAC1C,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,IAAI,EACb,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAC1B,CAAC;gBAEF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;oBAC7B,OAAO;gBACT,CAAC;gBAED,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;oBAC5B,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBACvF,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC;oBAClF,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,kBAAkB,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,oCAAoC;QACpC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAgB,CAAC;QAErB,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;YACnC,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,GAAG,MAAM,iBAAiB,CAC9B,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,IAAI,EACb,EAAE,EACF,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAC1B,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,MAAM,mBAAmB,CAChC,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,IAAI,EACb,EAAE,EACF,IAAI,EACJ,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAC1B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/commands/logs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2MH;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,IAAI,CAAC,CAgCf"}
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/commands/logs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6RH;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,IAAI,CAAC,CAgDf"}