@elaraai/e3-cli 0.0.2-beta.8 → 1.0.0

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 (135) hide show
  1. package/LICENSE.md +4 -0
  2. package/README.md +169 -46
  3. package/dist/src/cli.js +197 -73
  4. package/dist/src/cli.js.map +1 -1
  5. package/dist/src/commands/auth.d.ts +23 -0
  6. package/dist/src/commands/auth.d.ts.map +1 -0
  7. package/dist/src/commands/auth.js +200 -0
  8. package/dist/src/commands/auth.js.map +1 -0
  9. package/dist/src/commands/complete.d.ts +14 -0
  10. package/dist/src/commands/complete.d.ts.map +1 -0
  11. package/dist/src/commands/complete.js +166 -0
  12. package/dist/src/commands/complete.js.map +1 -0
  13. package/dist/src/commands/complete.spec.d.ts +6 -0
  14. package/dist/src/commands/complete.spec.d.ts.map +1 -0
  15. package/dist/src/commands/complete.spec.js +63 -0
  16. package/dist/src/commands/complete.spec.js.map +1 -0
  17. package/dist/src/commands/completion-install.d.ts +47 -0
  18. package/dist/src/commands/completion-install.d.ts.map +1 -0
  19. package/dist/src/commands/completion-install.js +141 -0
  20. package/dist/src/commands/completion-install.js.map +1 -0
  21. package/dist/src/commands/completion-install.spec.d.ts +6 -0
  22. package/dist/src/commands/completion-install.spec.d.ts.map +1 -0
  23. package/dist/src/commands/completion-install.spec.js +136 -0
  24. package/dist/src/commands/completion-install.spec.js.map +1 -0
  25. package/dist/src/commands/completion.d.ts +12 -0
  26. package/dist/src/commands/completion.d.ts.map +1 -0
  27. package/dist/src/commands/completion.js +75 -0
  28. package/dist/src/commands/completion.js.map +1 -0
  29. package/dist/src/commands/completion.spec.d.ts +6 -0
  30. package/dist/src/commands/completion.spec.d.ts.map +1 -0
  31. package/dist/src/commands/completion.spec.js +48 -0
  32. package/dist/src/commands/completion.spec.js.map +1 -0
  33. package/dist/src/commands/convert.impl.spec.d.ts +6 -0
  34. package/dist/src/commands/convert.impl.spec.d.ts.map +1 -0
  35. package/dist/src/commands/convert.impl.spec.js +245 -0
  36. package/dist/src/commands/convert.impl.spec.js.map +1 -0
  37. package/dist/src/commands/dataset-status.d.ts +9 -0
  38. package/dist/src/commands/dataset-status.d.ts.map +1 -0
  39. package/dist/src/commands/dataset-status.js +77 -0
  40. package/dist/src/commands/dataset-status.js.map +1 -0
  41. package/dist/src/commands/find.d.ts +17 -0
  42. package/dist/src/commands/find.d.ts.map +1 -0
  43. package/dist/src/commands/find.js +59 -0
  44. package/dist/src/commands/find.js.map +1 -0
  45. package/dist/src/commands/find.spec.d.ts +6 -0
  46. package/dist/src/commands/find.spec.d.ts.map +1 -0
  47. package/dist/src/commands/find.spec.js +43 -0
  48. package/dist/src/commands/find.spec.js.map +1 -0
  49. package/dist/src/commands/get.d.ts +3 -0
  50. package/dist/src/commands/get.d.ts.map +1 -1
  51. package/dist/src/commands/get.js +43 -20
  52. package/dist/src/commands/get.js.map +1 -1
  53. package/dist/src/commands/get.spec.d.ts +6 -0
  54. package/dist/src/commands/get.spec.d.ts.map +1 -0
  55. package/dist/src/commands/get.spec.js +28 -0
  56. package/dist/src/commands/get.spec.js.map +1 -0
  57. package/dist/src/commands/list.d.ts +6 -2
  58. package/dist/src/commands/list.d.ts.map +1 -1
  59. package/dist/src/commands/list.js +189 -30
  60. package/dist/src/commands/list.js.map +1 -1
  61. package/dist/src/commands/logs.d.ts.map +1 -1
  62. package/dist/src/commands/logs.js +96 -70
  63. package/dist/src/commands/logs.js.map +1 -1
  64. package/dist/src/commands/package.d.ts.map +1 -1
  65. package/dist/src/commands/package.js +78 -18
  66. package/dist/src/commands/package.js.map +1 -1
  67. package/dist/src/commands/repo.d.ts +44 -0
  68. package/dist/src/commands/repo.d.ts.map +1 -0
  69. package/dist/src/commands/repo.js +278 -0
  70. package/dist/src/commands/repo.js.map +1 -0
  71. package/dist/src/commands/run.d.ts +12 -0
  72. package/dist/src/commands/run.d.ts.map +1 -1
  73. package/dist/src/commands/run.js +21 -13
  74. package/dist/src/commands/run.js.map +1 -1
  75. package/dist/src/commands/run.spec.d.ts +6 -0
  76. package/dist/src/commands/run.spec.d.ts.map +1 -0
  77. package/dist/src/commands/run.spec.js +39 -0
  78. package/dist/src/commands/run.spec.js.map +1 -0
  79. package/dist/src/commands/set.d.ts +1 -0
  80. package/dist/src/commands/set.d.ts.map +1 -1
  81. package/dist/src/commands/set.js +33 -32
  82. package/dist/src/commands/set.js.map +1 -1
  83. package/dist/src/commands/start.d.ts.map +1 -1
  84. package/dist/src/commands/start.js +270 -52
  85. package/dist/src/commands/start.js.map +1 -1
  86. package/dist/src/commands/watch.d.ts +5 -2
  87. package/dist/src/commands/watch.d.ts.map +1 -1
  88. package/dist/src/commands/watch.js +32 -26
  89. package/dist/src/commands/watch.js.map +1 -1
  90. package/dist/src/commands/workspace.d.ts +12 -1
  91. package/dist/src/commands/workspace.d.ts.map +1 -1
  92. package/dist/src/commands/workspace.js +332 -38
  93. package/dist/src/commands/workspace.js.map +1 -1
  94. package/dist/src/credentials.d.ts +123 -0
  95. package/dist/src/credentials.d.ts.map +1 -0
  96. package/dist/src/credentials.js +213 -0
  97. package/dist/src/credentials.js.map +1 -0
  98. package/dist/src/format.d.ts +18 -0
  99. package/dist/src/format.d.ts.map +1 -0
  100. package/dist/src/format.js +43 -0
  101. package/dist/src/format.js.map +1 -0
  102. package/dist/src/path-resolver.d.ts +86 -0
  103. package/dist/src/path-resolver.d.ts.map +1 -0
  104. package/dist/src/path-resolver.js +241 -0
  105. package/dist/src/path-resolver.js.map +1 -0
  106. package/dist/src/path-resolver.spec.d.ts +6 -0
  107. package/dist/src/path-resolver.spec.d.ts.map +1 -0
  108. package/dist/src/path-resolver.spec.js +247 -0
  109. package/dist/src/path-resolver.spec.js.map +1 -0
  110. package/dist/src/utils.d.ts +76 -1
  111. package/dist/src/utils.d.ts.map +1 -1
  112. package/dist/src/utils.js +104 -1
  113. package/dist/src/utils.js.map +1 -1
  114. package/dist/src/utils.spec.d.ts +6 -0
  115. package/dist/src/utils.spec.d.ts.map +1 -0
  116. package/dist/src/utils.spec.js +199 -0
  117. package/dist/src/utils.spec.js.map +1 -0
  118. package/package.json +22 -18
  119. package/scripts/postinstall.cjs +26 -0
  120. package/dist/src/commands/gc.d.ts +0 -12
  121. package/dist/src/commands/gc.d.ts.map +0 -1
  122. package/dist/src/commands/gc.js +0 -44
  123. package/dist/src/commands/gc.js.map +0 -1
  124. package/dist/src/commands/init.d.ts +0 -9
  125. package/dist/src/commands/init.d.ts.map +0 -1
  126. package/dist/src/commands/init.js +0 -33
  127. package/dist/src/commands/init.js.map +0 -1
  128. package/dist/src/commands/status.d.ts +0 -9
  129. package/dist/src/commands/status.d.ts.map +0 -1
  130. package/dist/src/commands/status.js +0 -157
  131. package/dist/src/commands/status.js.map +0 -1
  132. package/dist/src/commands/tree.d.ts +0 -14
  133. package/dist/src/commands/tree.d.ts.map +0 -1
  134. package/dist/src/commands/tree.js +0 -77
  135. package/dist/src/commands/tree.js.map +0 -1
@@ -10,13 +10,14 @@
10
10
  * e3 logs . ws.taskName # Show logs for task's latest execution
11
11
  * e3 logs . ws.taskName --follow # Follow log output
12
12
  */
13
- import { workspaceListTasks, workspaceGetTaskHash, executionListForTask, executionReadLog, executionGet, inputsHash, workspaceGetDatasetHash, workspaceGetTask, isProcessAlive, } from '@elaraai/e3-core';
14
- import { resolveRepo, formatError, exitError } from '../utils.js';
13
+ import { workspaceListTasks, workspaceGetTaskHash, executionListForTask, executionReadLog, executionGetLatest, executionFindCurrent, isProcessAlive, LocalStorage, } from '@elaraai/e3-core';
14
+ import { taskList as taskListRemote, taskExecutionList as taskExecutionListRemote, taskLogs as taskLogsRemote, ApiError, } from '@elaraai/e3-api-client';
15
+ import { parseRepoLocation, formatError, exitError, HASH_DISPLAY_WIDTH } from '../utils.js';
15
16
  /**
16
- * Format a hash for display (abbreviated).
17
+ * Format a hash for display (abbreviated to `HASH_DISPLAY_WIDTH`).
17
18
  */
18
19
  function abbrev(hash) {
19
- return hash.slice(0, 8);
20
+ return hash.slice(0, HASH_DISPLAY_WIDTH);
20
21
  }
21
22
  /**
22
23
  * Parse task path: ws.taskName
@@ -34,8 +35,8 @@ function parseTaskPath(pathSpec) {
34
35
  /**
35
36
  * List tasks in a workspace with their execution status.
36
37
  */
37
- async function listWorkspaceTasks(repoPath, ws) {
38
- const tasks = await workspaceListTasks(repoPath, ws);
38
+ async function listWorkspaceTasks(storage, repoPath, ws) {
39
+ const tasks = await workspaceListTasks(storage, repoPath, ws);
39
40
  if (tasks.length === 0) {
40
41
  console.log(`No tasks in workspace: ${ws}`);
41
42
  return;
@@ -43,15 +44,15 @@ async function listWorkspaceTasks(repoPath, ws) {
43
44
  console.log(`Tasks in workspace: ${ws}`);
44
45
  console.log('');
45
46
  for (const taskName of tasks) {
46
- const taskHash = await workspaceGetTaskHash(repoPath, ws, taskName);
47
- const executions = await executionListForTask(repoPath, taskHash);
47
+ const taskHash = await workspaceGetTaskHash(storage, repoPath, ws, taskName);
48
+ const executions = await executionListForTask(storage, repoPath, taskHash);
48
49
  if (executions.length === 0) {
49
50
  console.log(` ${taskName} (no executions)`);
50
51
  }
51
52
  else {
52
53
  // Get status of the most recent execution
53
54
  const latestInHash = executions[0];
54
- const status = await executionGet(repoPath, taskHash, latestInHash);
55
+ const status = await executionGetLatest(storage, repoPath, taskHash, latestInHash);
55
56
  let state = status?.type ?? 'unknown';
56
57
  // Check if running process is actually alive
57
58
  if (status?.type === 'running') {
@@ -70,41 +71,9 @@ async function listWorkspaceTasks(repoPath, ws) {
70
71
  console.log(`Use "e3 logs . ${ws}.<taskName>" to view logs.`);
71
72
  }
72
73
  /**
73
- * Find the inputs hash for the current workspace state of a task.
74
- * This matches the execution that corresponds to the current input values.
74
+ * Display logs and optionally follow for new output.
75
75
  */
76
- async function findCurrentExecution(repoPath, ws, taskName) {
77
- const taskHash = await workspaceGetTaskHash(repoPath, ws, taskName);
78
- const task = await workspaceGetTask(repoPath, ws, taskName);
79
- // Get the current input hashes from the workspace
80
- const currentInputHashes = [];
81
- for (const inputPath of task.inputs) {
82
- const { refType, hash } = await workspaceGetDatasetHash(repoPath, ws, inputPath);
83
- if (refType !== 'value' || hash === null) {
84
- // Input not assigned - can't find matching execution
85
- return null;
86
- }
87
- currentInputHashes.push(hash);
88
- }
89
- const inHash = inputsHash(currentInputHashes);
90
- // Check if this execution exists
91
- const executions = await executionListForTask(repoPath, taskHash);
92
- if (executions.includes(inHash)) {
93
- return { taskHash, inHash };
94
- }
95
- // Fall back to the most recent execution if current inputs don't match
96
- if (executions.length > 0) {
97
- return { taskHash, inHash: executions[0] };
98
- }
99
- return null;
100
- }
101
- /**
102
- * Show logs for a specific execution.
103
- */
104
- async function showLogs(repoPath, taskHash, inHash, follow) {
105
- // Read stdout and stderr
106
- const stdout = await executionReadLog(repoPath, taskHash, inHash, 'stdout');
107
- const stderr = await executionReadLog(repoPath, taskHash, inHash, 'stderr');
76
+ async function displayLogs(stdout, stderr, follow, poll) {
108
77
  if (stdout.totalSize === 0 && stderr.totalSize === 0) {
109
78
  console.log('No log output.');
110
79
  return;
@@ -121,19 +90,14 @@ async function showLogs(repoPath, taskHash, inHash, follow) {
121
90
  console.log(stderr.data);
122
91
  }
123
92
  if (follow) {
124
- // Follow mode: poll for new content
125
93
  let stdoutOffset = stdout.offset + stdout.size;
126
94
  let stderrOffset = stderr.offset + stderr.size;
127
95
  console.log('');
128
96
  console.log('[Following... press Ctrl+C to stop]');
129
97
  const pollInterval = 500; // ms
130
- const poll = async () => {
131
- const newStdout = await executionReadLog(repoPath, taskHash, inHash, 'stdout', {
132
- offset: stdoutOffset,
133
- });
134
- const newStderr = await executionReadLog(repoPath, taskHash, inHash, 'stderr', {
135
- offset: stderrOffset,
136
- });
98
+ const tick = async () => {
99
+ const newStdout = await poll('stdout', stdoutOffset);
100
+ const newStderr = await poll('stderr', stderrOffset);
137
101
  if (newStdout.size > 0) {
138
102
  process.stdout.write(newStdout.data);
139
103
  stdoutOffset += newStdout.size;
@@ -143,44 +107,106 @@ async function showLogs(repoPath, taskHash, inHash, follow) {
143
107
  stderrOffset += newStderr.size;
144
108
  }
145
109
  };
146
- // Keep polling until interrupted
147
- const intervalId = setInterval(() => void poll(), pollInterval);
110
+ const intervalId = setInterval(() => void tick(), pollInterval);
148
111
  process.on('SIGINT', () => {
149
112
  clearInterval(intervalId);
150
113
  console.log('\n[Stopped]');
151
114
  process.exit(0);
152
115
  });
153
- // Keep the process alive
154
- await new Promise(() => {
155
- // Never resolves - will be interrupted by Ctrl+C
156
- });
116
+ // Keep the process alive — interrupted by Ctrl+C
117
+ await new Promise(() => { });
157
118
  }
158
119
  }
120
+ /**
121
+ * List tasks in a workspace (remote).
122
+ */
123
+ async function listWorkspaceTasksRemote(baseUrl, repo, ws, token) {
124
+ const tasks = await taskListRemote(baseUrl, repo, ws, { token });
125
+ if (tasks.length === 0) {
126
+ console.log(`No tasks in workspace: ${ws}`);
127
+ return;
128
+ }
129
+ console.log(`Tasks in workspace: ${ws}`);
130
+ console.log('');
131
+ for (const task of tasks) {
132
+ const executions = await taskExecutionListRemote(baseUrl, repo, ws, task.name, { token });
133
+ if (executions.length === 0) {
134
+ console.log(` ${task.name} (no executions)`);
135
+ }
136
+ else {
137
+ // Get status of the most recent execution
138
+ const latest = executions[0];
139
+ const state = latest.status.type;
140
+ console.log(` ${task.name} [${state}] (${executions.length} execution(s))`);
141
+ }
142
+ }
143
+ console.log('');
144
+ console.log(`Use "e3 logs <repo> ${ws}.<taskName>" to view logs.`);
145
+ }
146
+ /** Convert a remote LogChunk (bigint fields) to LogData. */
147
+ function toLogData(chunk) {
148
+ return {
149
+ data: chunk.data,
150
+ offset: Number(chunk.offset),
151
+ size: Number(chunk.size),
152
+ totalSize: Number(chunk.totalSize),
153
+ complete: chunk.complete,
154
+ };
155
+ }
159
156
  /**
160
157
  * View execution logs for workspace tasks.
161
158
  */
162
159
  export async function logsCommand(repoArg, pathSpec, options = {}) {
163
160
  try {
164
- const repoPath = resolveRepo(repoArg);
161
+ const location = await parseRepoLocation(repoArg);
165
162
  if (!pathSpec) {
166
163
  exitError('Usage: e3 logs <repo> <ws> or e3 logs <repo> <ws.taskName>');
167
164
  }
168
165
  // Parse the path: ws or ws.taskName
169
166
  const { ws, taskName } = parseTaskPath(pathSpec);
170
- if (!taskName) {
171
- // No task specified - list tasks in workspace
172
- await listWorkspaceTasks(repoPath, ws);
173
- return;
167
+ if (location.type === 'local') {
168
+ const storage = new LocalStorage();
169
+ if (!taskName) {
170
+ // No task specified - list tasks in workspace
171
+ await listWorkspaceTasks(storage, location.path, ws);
172
+ return;
173
+ }
174
+ // Find the execution for this task
175
+ const execution = await executionFindCurrent(storage, location.path, ws, taskName);
176
+ if (!execution) {
177
+ exitError(`No executions found for task: ${ws}.${taskName}`);
178
+ }
179
+ const { taskHash, inputsHash, executionId } = execution;
180
+ console.log(`Task: ${ws}.${taskName}`);
181
+ console.log(`Execution: ${abbrev(taskHash)}/${abbrev(inputsHash)}/${abbrev(executionId)}`);
182
+ console.log('');
183
+ const stdout = await executionReadLog(storage, location.path, taskHash, inputsHash, executionId, 'stdout');
184
+ const stderr = await executionReadLog(storage, location.path, taskHash, inputsHash, executionId, 'stderr');
185
+ await displayLogs(stdout, stderr, options.follow ?? false, (stream, offset) => executionReadLog(storage, location.path, taskHash, inputsHash, executionId, stream, { offset }));
174
186
  }
175
- // Find the execution for this task
176
- const execution = await findCurrentExecution(repoPath, ws, taskName);
177
- if (!execution) {
178
- exitError(`No executions found for task: ${ws}.${taskName}`);
187
+ else {
188
+ // Remote
189
+ if (!taskName) {
190
+ // No task specified - list tasks in workspace
191
+ await listWorkspaceTasksRemote(location.baseUrl, location.repo, ws, location.token);
192
+ return;
193
+ }
194
+ console.log(`Task: ${ws}.${taskName}`);
195
+ console.log('');
196
+ const { baseUrl, repo, token } = location;
197
+ let stdout, stderr;
198
+ try {
199
+ stdout = toLogData(await taskLogsRemote(baseUrl, repo, ws, taskName, { stream: 'stdout' }, { token }));
200
+ stderr = toLogData(await taskLogsRemote(baseUrl, repo, ws, taskName, { stream: 'stderr' }, { token }));
201
+ }
202
+ catch (err) {
203
+ if (err instanceof ApiError && err.code === 'execution_not_found') {
204
+ exitError(`No executions found for task: ${ws}.${taskName}`);
205
+ }
206
+ throw err;
207
+ }
208
+ await displayLogs(stdout, stderr, options.follow ?? false, async (stream, offset) => toLogData(await taskLogsRemote(baseUrl, repo, ws, taskName, { stream, offset }, { token })));
179
209
  }
180
- console.log(`Task: ${ws}.${taskName}`);
181
- console.log(`Execution: ${abbrev(execution.taskHash)}/${abbrev(execution.inHash)}`);
182
- console.log('');
183
- await showLogs(repoPath, execution.taskHash, execution.inHash, options.follow ?? false);
184
210
  }
185
211
  catch (err) {
186
212
  exitError(formatError(err));
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/commands/logs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElE;;GAEG;AACH,SAAS,MAAM,CAAC,IAAY;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;QAC/B,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;KACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,QAAgB,EAAE,EAAU;IAC5D,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAErD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAElE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,mBAAmB,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,0CAA0C;YAC1C,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YACpE,IAAI,KAAK,GAAG,MAAM,EAAE,IAAI,IAAI,SAAS,CAAC;YAEtC,6CAA6C;YAC7C,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACvD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBACnC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;gBAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,KAAK,GAAG,eAAe,CAAC;gBAC1B,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,MAAM,KAAK,MAAM,UAAU,CAAC,MAAM,gBAAgB,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CACjC,QAAgB,EAChB,EAAU,EACV,QAAgB;IAEhB,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE5D,kDAAkD;IAClD,MAAM,kBAAkB,GAAa,EAAE,CAAC;IACxC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QACjF,IAAI,OAAO,KAAK,OAAO,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACzC,qDAAqD;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAE9C,iCAAiC;IACjC,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClE,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,uEAAuE;IACvE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,QAAQ,CACrB,QAAgB,EAChB,QAAgB,EAChB,MAAc,EACd,MAAe;IAEf,yBAAyB;IACzB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE5E,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,oCAAoC;QACpC,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;QAC/C,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;QAE/C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAEnD,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,KAAK;QAC/B,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC7E,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC7E,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;YAEH,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACrC,YAAY,IAAI,SAAS,CAAC,IAAI,CAAC;YACjC,CAAC;YAED,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACrC,YAAY,IAAI,SAAS,CAAC,IAAI,CAAC;YACjC,CAAC;QACH,CAAC,CAAC;QAEF,iCAAiC;QACjC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;QAChE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,aAAa,CAAC,UAAU,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,yBAAyB;QACzB,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE;YACrB,iDAAiD;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,QAAiB,EACjB,UAAgC,EAAE;IAElC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAEtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS,CAAC,4DAA4D,CAAC,CAAC;QAC1E,CAAC;QAED,oCAAoC;QACpC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,8CAA8C;YAC9C,MAAM,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,mCAAmC;QACnC,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAErE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,CAAC,iCAAiC,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,MAAM,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;IAC1F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/commands/logs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../../src/commands/package.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,eAAO,MAAM,cAAc;IACzB;;OAEG;oBACmB,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7D;;OAEG;oBACmB,MAAM,WAAW,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe9E;;OAEG;kBACiB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB1C;;OAEG;oBACmB,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAa9D,CAAC"}
1
+ {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../../src/commands/package.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH,eAAO,MAAM,cAAc;IACzB;;OAEG;oBACmB,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8C7D;;OAEG;oBACmB,MAAM,WAAW,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC9E;;OAEG;kBACiB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B1C;;OAEG;oBACmB,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAkB9D,CAAC"}
@@ -5,19 +5,52 @@
5
5
  /**
6
6
  * e3 package commands - Package management
7
7
  */
8
- import { packageImport, packageExport, packageList, packageRemove, } from '@elaraai/e3-core';
9
- import { resolveRepo, parsePackageSpec, formatError, exitError } from '../utils.js';
8
+ import { readFileSync, writeFileSync } from 'node:fs';
9
+ import { packageImport, packageExport, packageList, packageRemove, LocalStorage, } from '@elaraai/e3-core';
10
+ import { packageImport as packageImportRemote, packageExport as packageExportRemote, packageList as packageListRemote, packageRemove as packageRemoveRemote, } from '@elaraai/e3-api-client';
11
+ import { parseRepoLocation, parsePackageSpec, formatError, exitError } from '../utils.js';
12
+ import { writeExportProgress, clearProgress } from '../format.js';
10
13
  export const packageCommand = {
11
14
  /**
12
15
  * Import a package from a .zip file.
13
16
  */
14
17
  async import(repoArg, zipPath) {
15
18
  try {
16
- const repoPath = resolveRepo(repoArg);
17
- const result = await packageImport(repoPath, zipPath);
18
- console.log(`Imported ${result.name}@${result.version}`);
19
- console.log(` Package hash: ${result.packageHash.slice(0, 12)}...`);
20
- console.log(` Objects: ${result.objectCount}`);
19
+ const location = await parseRepoLocation(repoArg);
20
+ if (location.type === 'local') {
21
+ const storage = new LocalStorage();
22
+ const result = await packageImport(storage, location.path, zipPath);
23
+ console.log(`Imported ${result.name}@${result.version}`);
24
+ console.log(` Package hash: ${result.packageHash.slice(0, 12)}...`);
25
+ console.log(` Objects: ${result.objectCount}`);
26
+ }
27
+ else {
28
+ // Remote import - read local zip and send to server
29
+ const zipBytes = readFileSync(zipPath);
30
+ const result = await packageImportRemote(location.baseUrl, location.repo, new Uint8Array(zipBytes), { token: location.token }, {
31
+ onUploadProgress: (uploaded, total) => {
32
+ const pct = Math.round((uploaded / total) * 100);
33
+ const mb = (uploaded / 1024 / 1024).toFixed(1);
34
+ const totalMb = (total / 1024 / 1024).toFixed(1);
35
+ process.stdout.write(`\rUploading... ${mb}/${totalMb} MB (${pct}%)`);
36
+ },
37
+ onProgress: (progress) => {
38
+ if (progress.type === 'pending') {
39
+ process.stdout.write(`\rPending...\x1b[K`);
40
+ }
41
+ else if (progress.type === 'downloading') {
42
+ process.stdout.write(`\rPreparing...\x1b[K`);
43
+ }
44
+ else if (progress.type === 'importing') {
45
+ process.stdout.write(`\rImporting... ${progress.value.objectsProcessed} objects processed\x1b[K`);
46
+ }
47
+ },
48
+ });
49
+ clearProgress();
50
+ console.log(`Imported ${result.name}@${result.version}`);
51
+ console.log(` Package hash: ${result.packageHash.slice(0, 12)}...`);
52
+ console.log(` Objects: ${result.objectCount}`);
53
+ }
21
54
  }
22
55
  catch (err) {
23
56
  exitError(formatError(err));
@@ -28,12 +61,25 @@ export const packageCommand = {
28
61
  */
29
62
  async export(repoArg, pkgSpec, zipPath) {
30
63
  try {
31
- const repoPath = resolveRepo(repoArg);
64
+ const location = await parseRepoLocation(repoArg);
32
65
  const { name, version } = parsePackageSpec(pkgSpec);
33
- const result = await packageExport(repoPath, name, version, zipPath);
34
- console.log(`Exported ${name}@${version} to ${zipPath}`);
35
- console.log(` Package hash: ${result.packageHash.slice(0, 12)}...`);
36
- console.log(` Objects: ${result.objectCount}`);
66
+ if (location.type === 'local') {
67
+ const storage = new LocalStorage();
68
+ const result = await packageExport(storage, location.path, name, version, zipPath);
69
+ console.log(`Exported ${name}@${version} to ${zipPath}`);
70
+ console.log(` Package hash: ${result.packageHash.slice(0, 12)}...`);
71
+ console.log(` Objects: ${result.objectCount}`);
72
+ }
73
+ else {
74
+ // Remote export - fetch zip bytes and write locally
75
+ const zipBytes = await packageExportRemote(location.baseUrl, location.repo, name, version, { token: location.token }, {
76
+ onProgress: writeExportProgress,
77
+ });
78
+ clearProgress();
79
+ writeFileSync(zipPath, zipBytes);
80
+ console.log(`Exported ${name}@${version} to ${zipPath}`);
81
+ console.log(` Size: ${zipBytes.length} bytes`);
82
+ }
37
83
  }
38
84
  catch (err) {
39
85
  exitError(formatError(err));
@@ -44,8 +90,15 @@ export const packageCommand = {
44
90
  */
45
91
  async list(repoArg) {
46
92
  try {
47
- const repoPath = resolveRepo(repoArg);
48
- const packages = await packageList(repoPath);
93
+ const location = await parseRepoLocation(repoArg);
94
+ let packages;
95
+ if (location.type === 'local') {
96
+ const storage = new LocalStorage();
97
+ packages = await packageList(storage, location.path);
98
+ }
99
+ else {
100
+ packages = await packageListRemote(location.baseUrl, location.repo, { token: location.token });
101
+ }
49
102
  if (packages.length === 0) {
50
103
  console.log('No packages installed');
51
104
  return;
@@ -64,11 +117,18 @@ export const packageCommand = {
64
117
  */
65
118
  async remove(repoArg, pkgSpec) {
66
119
  try {
67
- const repoPath = resolveRepo(repoArg);
120
+ const location = await parseRepoLocation(repoArg);
68
121
  const { name, version } = parsePackageSpec(pkgSpec);
69
- await packageRemove(repoPath, name, version);
70
- console.log(`Removed ${name}@${version}`);
71
- console.log('Run `e3 gc` to reclaim disk space');
122
+ if (location.type === 'local') {
123
+ const storage = new LocalStorage();
124
+ await packageRemove(storage, location.path, name, version);
125
+ console.log(`Removed ${name}@${version}`);
126
+ console.log('Run `e3 gc` to reclaim disk space');
127
+ }
128
+ else {
129
+ await packageRemoveRemote(location.baseUrl, location.repo, name, version, { token: location.token });
130
+ console.log(`Removed ${name}@${version}`);
131
+ }
72
132
  }
73
133
  catch (err) {
74
134
  exitError(formatError(err));
@@ -1 +1 @@
1
- {"version":3,"file":"package.js","sourceRoot":"","sources":["../../../src/commands/package.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package.js","sourceRoot":"","sources":["../../../src/commands/package.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ export declare const repoCommand: {
6
+ /**
7
+ * Create a new repository.
8
+ *
9
+ * Local: e3 repo create <path>
10
+ * Remote: e3 repo create <url> (e.g., http://server/repos/name)
11
+ */
12
+ create(repoArg: string): Promise<void>;
13
+ /**
14
+ * Remove a repository.
15
+ *
16
+ * With `--recursive`, lists and removes all workspaces before removing the repository.
17
+ * Without `--recursive`, fails if the repository contains workspaces.
18
+ *
19
+ * @param locationArg - Repository path or URL
20
+ * @param options - Command options
21
+ * @param options.recursive - Remove all workspaces first
22
+ */
23
+ remove(locationArg: string, options: {
24
+ recursive?: boolean;
25
+ }): Promise<void>;
26
+ /**
27
+ * Show repository status.
28
+ */
29
+ status(locationArg: string): Promise<void>;
30
+ /**
31
+ * Run garbage collection.
32
+ */
33
+ gc(locationArg: string, options: {
34
+ dryRun?: boolean;
35
+ minAge?: string;
36
+ }): Promise<void>;
37
+ /**
38
+ * List repositories on a server.
39
+ *
40
+ * Remote only: e3 repo list <server-url>
41
+ */
42
+ list(serverUrl: string): Promise<void>;
43
+ };
44
+ //# sourceMappingURL=repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../../src/commands/repo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+CH,eAAO,MAAM,WAAW;IACtB;;;;;OAKG;oBACmB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC5C;;;;;;;;;OASG;wBACuB,MAAM,WAAW;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDlF;;OAEG;wBACuB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDhD;;OAEG;oBACmB,MAAM,WAAW;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiF5F;;;;OAIG;oBACmB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAyB7C,CAAC"}