@elaraai/e3-cli 1.0.79 → 1.0.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +99 -25
- package/dist/src/cli.js +49 -9
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/budget.d.ts +32 -0
- package/dist/src/commands/budget.d.ts.map +1 -0
- package/dist/src/commands/budget.js +46 -0
- package/dist/src/commands/budget.js.map +1 -0
- package/dist/src/commands/call.d.ts +2 -1
- package/dist/src/commands/call.d.ts.map +1 -1
- package/dist/src/commands/call.js +5 -3
- package/dist/src/commands/call.js.map +1 -1
- package/dist/src/commands/compact.spec.js +7 -6
- package/dist/src/commands/compact.spec.js.map +1 -1
- package/dist/src/commands/history.d.ts +1 -0
- package/dist/src/commands/history.d.ts.map +1 -1
- package/dist/src/commands/history.js +30 -9
- package/dist/src/commands/history.js.map +1 -1
- package/dist/src/commands/logs.d.ts +2 -2
- package/dist/src/commands/logs.d.ts.map +1 -1
- package/dist/src/commands/logs.js +28 -28
- package/dist/src/commands/logs.js.map +1 -1
- package/dist/src/commands/logs.spec.js +4 -1
- package/dist/src/commands/logs.spec.js.map +1 -1
- package/dist/src/commands/mutate.d.ts +2 -1
- package/dist/src/commands/mutate.d.ts.map +1 -1
- package/dist/src/commands/mutate.js +42 -19
- package/dist/src/commands/mutate.js.map +1 -1
- package/dist/src/commands/reindex.d.ts +12 -0
- package/dist/src/commands/reindex.d.ts.map +1 -0
- package/dist/src/commands/reindex.js +67 -0
- package/dist/src/commands/reindex.js.map +1 -0
- package/dist/src/commands/repo.d.ts +4 -1
- package/dist/src/commands/repo.d.ts.map +1 -1
- package/dist/src/commands/repo.js +32 -16
- package/dist/src/commands/repo.js.map +1 -1
- package/dist/src/commands/run.d.ts +2 -1
- package/dist/src/commands/run.d.ts.map +1 -1
- package/dist/src/commands/run.js +15 -21
- package/dist/src/commands/run.js.map +1 -1
- package/dist/src/commands/set.d.ts.map +1 -1
- package/dist/src/commands/set.js +15 -15
- package/dist/src/commands/set.js.map +1 -1
- package/dist/src/commands/start.d.ts +2 -2
- package/dist/src/commands/start.d.ts.map +1 -1
- package/dist/src/commands/start.js +33 -27
- package/dist/src/commands/start.js.map +1 -1
- package/dist/src/commands/watch.d.ts +4 -2
- package/dist/src/commands/watch.d.ts.map +1 -1
- package/dist/src/commands/watch.js +35 -9
- package/dist/src/commands/watch.js.map +1 -1
- package/dist/src/commands/workspace.d.ts +25 -2
- package/dist/src/commands/workspace.d.ts.map +1 -1
- package/dist/src/commands/workspace.js +173 -21
- package/dist/src/commands/workspace.js.map +1 -1
- package/dist/src/format.d.ts +12 -0
- package/dist/src/format.d.ts.map +1 -1
- package/dist/src/format.js +19 -3
- package/dist/src/format.js.map +1 -1
- package/dist/src/path-resolver.d.ts.map +1 -1
- package/dist/src/path-resolver.js +3 -2
- package/dist/src/path-resolver.js.map +1 -1
- package/dist/src/utils.d.ts +15 -2
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +25 -7
- package/dist/src/utils.js.map +1 -1
- package/package.json +7 -7
- package/dist/src/commands/jobs.d.ts +0 -25
- package/dist/src/commands/jobs.d.ts.map +0 -1
- package/dist/src/commands/jobs.js +0 -39
- package/dist/src/commands/jobs.js.map +0 -1
|
@@ -8,8 +8,9 @@
|
|
|
8
8
|
* Usage:
|
|
9
9
|
* e3 mutate <repo> -w <ws> <record>.<mutation> [args...]
|
|
10
10
|
*
|
|
11
|
-
* A mutation is the only write door into a record: it runs
|
|
12
|
-
* server-side under optimistic concurrency and appends an audited
|
|
11
|
+
* A mutation is the only write door into a record: it runs the mutation's pure
|
|
12
|
+
* East program server-side under optimistic concurrency and appends an audited
|
|
13
|
+
* commit. Each
|
|
13
14
|
* positional argument is an .east literal or a .beast2/.json/.east file path,
|
|
14
15
|
* parsed against the mutation's declared parameter type. Records are
|
|
15
16
|
* workspace-scoped, so --workspace is required.
|
|
@@ -19,6 +20,7 @@ import { recordMutate, recordDescribe, LocalStorage, LocalTaskRunner, } from '@e
|
|
|
19
20
|
import { workspaceRecordDescribe, workspaceRecordMutate, } from '@elaraai/e3-api-client';
|
|
20
21
|
import { parseRepoLocation, formatError, exitError } from '../utils.js';
|
|
21
22
|
import { encodeArg } from './call.js';
|
|
23
|
+
import { commandBudget, refuseRemoteBudget } from './budget.js';
|
|
22
24
|
/** Split a `<record>.<mutation>` spec on its final dot. */
|
|
23
25
|
function parseMutationSpec(spec) {
|
|
24
26
|
const dot = spec.lastIndexOf('.');
|
|
@@ -32,7 +34,8 @@ function actor() {
|
|
|
32
34
|
}
|
|
33
35
|
/**
|
|
34
36
|
* Render a terminal mutation outcome. Both the local `MutationOutcome` and the
|
|
35
|
-
* remote `MutationResult.outcome` share these tags and payload field names
|
|
37
|
+
* remote `MutationResult.outcome` share these tags and payload field names;
|
|
38
|
+
* a conflict's `detail` is the local optional string.
|
|
36
39
|
*/
|
|
37
40
|
function renderOutcome(outcome) {
|
|
38
41
|
const kind = outcome.kind;
|
|
@@ -40,8 +43,8 @@ function renderOutcome(outcome) {
|
|
|
40
43
|
console.log(`Committed ${String(outcome.commitHash)}`);
|
|
41
44
|
return;
|
|
42
45
|
}
|
|
43
|
-
// Forward
|
|
44
|
-
//
|
|
46
|
+
// Forward the program's stderr (present on failed and timed_out) so its
|
|
47
|
+
// diagnostics reach the operator before we exit non-zero.
|
|
45
48
|
const stderr = String(outcome.stderr ?? '');
|
|
46
49
|
if (stderr.trim()) {
|
|
47
50
|
process.stderr.write(stderr);
|
|
@@ -49,18 +52,34 @@ function renderOutcome(outcome) {
|
|
|
49
52
|
process.stderr.write('\n');
|
|
50
53
|
}
|
|
51
54
|
if (kind === 'failed')
|
|
52
|
-
exitError(`Mutation
|
|
55
|
+
exitError(`Mutation failed (exit code ${String(outcome.exitCode)})`);
|
|
53
56
|
if (kind === 'invalid')
|
|
54
57
|
exitError(String(outcome.message));
|
|
55
|
-
if (kind === 'too_large')
|
|
56
|
-
exitError(`New state too large (${String(outcome.bytes)} bytes > ${String(outcome.limit)} limit)`);
|
|
57
58
|
if (kind === 'timed_out')
|
|
58
59
|
exitError(`Mutation timed out after ${String(outcome.ms)}ms`);
|
|
59
|
-
if (kind === 'conflict')
|
|
60
|
+
if (kind === 'conflict') {
|
|
61
|
+
// A lost compare-and-swap race is worth another try: another writer got
|
|
62
|
+
// there first. A write that disagreed with the state is not — it names
|
|
63
|
+
// the key, and the same write lands on the same state and disagrees again.
|
|
64
|
+
if (typeof outcome.detail === 'string') {
|
|
65
|
+
exitError(`Mutation conflicted: ${outcome.detail} — the write no longer matches the record; re-read it and resubmit`);
|
|
66
|
+
}
|
|
60
67
|
exitError(`Mutation conflicted after ${String(outcome.attempts)} attempts; try again`);
|
|
68
|
+
}
|
|
61
69
|
exitError(`Unknown mutation outcome '${kind}'`);
|
|
62
70
|
}
|
|
63
|
-
|
|
71
|
+
/** Refuses the wrong number of arguments, saying what the one argument of a
|
|
72
|
+
* `patch` mutation is — the state's patch, which is the thing people reach
|
|
73
|
+
* for a row instead. */
|
|
74
|
+
function checkArity(mutation, mut, got) {
|
|
75
|
+
if (got === mut.argTypes.length)
|
|
76
|
+
return;
|
|
77
|
+
const what = mut.form === 'patch'
|
|
78
|
+
? " — a patch mutation takes one argument, the record's patch (a .beast2/.json/.east file, or an .east literal)"
|
|
79
|
+
: '';
|
|
80
|
+
exitError(`Mutation '${mutation}' expects ${mut.argTypes.length} argument(s), got ${got}${what}`);
|
|
81
|
+
}
|
|
82
|
+
async function mutateLocal(repoPath, ws, record, mutation, rawArgs, budget, verbose) {
|
|
64
83
|
const storage = new LocalStorage();
|
|
65
84
|
const sig = await recordDescribe(storage, repoPath, ws, record);
|
|
66
85
|
if (!sig)
|
|
@@ -69,14 +88,12 @@ async function mutateLocal(repoPath, ws, record, mutation, rawArgs, verbose) {
|
|
|
69
88
|
if (!mut) {
|
|
70
89
|
exitError(`Mutation '${mutation}' not found on record '${record}'. Available: ${sig.mutations.map((m) => m.name).join(', ') || '(none)'}`);
|
|
71
90
|
}
|
|
72
|
-
|
|
73
|
-
exitError(`Mutation '${mutation}' expects ${mut.argTypes.length} argument(s), got ${rawArgs.length}`);
|
|
74
|
-
}
|
|
91
|
+
checkArity(mutation, mut, rawArgs.length);
|
|
75
92
|
const args = [];
|
|
76
93
|
for (let i = 0; i < rawArgs.length; i++) {
|
|
77
94
|
args.push(await encodeArg(rawArgs[i], mut.argTypes[i], i));
|
|
78
95
|
}
|
|
79
|
-
const outcome = await recordMutate(storage, new LocalTaskRunner(repoPath), repoPath, ws, record, mutation, args, { actor: actor(), verbose });
|
|
96
|
+
const outcome = await recordMutate(storage, new LocalTaskRunner(repoPath, budget), repoPath, ws, record, mutation, args, { actor: actor(), verbose });
|
|
80
97
|
renderOutcome(outcome);
|
|
81
98
|
}
|
|
82
99
|
async function mutateRemote(baseUrl, repo, token, ws, record, mutation, rawArgs, verbose) {
|
|
@@ -86,15 +103,20 @@ async function mutateRemote(baseUrl, repo, token, ws, record, mutation, rawArgs,
|
|
|
86
103
|
if (!mut) {
|
|
87
104
|
exitError(`Mutation '${mutation}' not found on record '${record}'. Available: ${sig.mutations.map((m) => m.name).join(', ') || '(none)'}`);
|
|
88
105
|
}
|
|
89
|
-
|
|
90
|
-
exitError(`Mutation '${mutation}' expects ${mut.argTypes.length} argument(s), got ${rawArgs.length}`);
|
|
91
|
-
}
|
|
106
|
+
checkArity(mutation, mut, rawArgs.length);
|
|
92
107
|
const args = [];
|
|
93
108
|
for (let i = 0; i < rawArgs.length; i++) {
|
|
94
109
|
args.push(await encodeArg(rawArgs[i], mut.argTypes[i], i));
|
|
95
110
|
}
|
|
96
111
|
const result = await workspaceRecordMutate(baseUrl, repo, ws, record, mutation, { args, actor: some(actor()), limits: none }, opts);
|
|
97
|
-
|
|
112
|
+
const outcome = result.outcome;
|
|
113
|
+
renderOutcome(outcome.type === 'conflict'
|
|
114
|
+
? {
|
|
115
|
+
kind: 'conflict',
|
|
116
|
+
attempts: outcome.value.attempts,
|
|
117
|
+
...(outcome.value.detail.type === 'some' && { detail: outcome.value.detail.value }),
|
|
118
|
+
}
|
|
119
|
+
: { kind: outcome.type, ...outcome.value });
|
|
98
120
|
}
|
|
99
121
|
/** `e3 mutate` entry point. */
|
|
100
122
|
export async function mutateCommand(repoArg, spec, args, options) {
|
|
@@ -105,9 +127,10 @@ export async function mutateCommand(repoArg, spec, args, options) {
|
|
|
105
127
|
const { record, mutation } = parseMutationSpec(spec);
|
|
106
128
|
const location = await parseRepoLocation(repoArg);
|
|
107
129
|
if (location.type === 'local') {
|
|
108
|
-
await mutateLocal(location.path, options.workspace, record, mutation, args, options.verbose);
|
|
130
|
+
await mutateLocal(location.path, options.workspace, record, mutation, args, commandBudget(options), options.verbose);
|
|
109
131
|
}
|
|
110
132
|
else {
|
|
133
|
+
refuseRemoteBudget(options);
|
|
111
134
|
await mutateRemote(location.baseUrl, location.repo, location.token, options.workspace, record, mutation, args, options.verbose);
|
|
112
135
|
}
|
|
113
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../../src/commands/mutate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH
|
|
1
|
+
{"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../../src/commands/mutate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { type BudgetFlags } from './budget.js';
|
|
6
|
+
/** `e3 reindex` entry point. */
|
|
7
|
+
export declare function reindexCommand(repoArg: string, record: string, options: BudgetFlags & {
|
|
8
|
+
workspace?: string;
|
|
9
|
+
index?: string;
|
|
10
|
+
verbose?: boolean;
|
|
11
|
+
}): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=reindex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reindex.d.ts","sourceRoot":"","sources":["../../../src/commands/reindex.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAM9D,gCAAgC;AAChC,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/E,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* e3 reindex command — rebuild a record's secondary indexes from its primary.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* e3 reindex <repo> -w <ws> <record> [--index <name>]
|
|
10
|
+
*
|
|
11
|
+
* An index is derived state, so this never loses anything and is always
|
|
12
|
+
* available: it is the exit when an index function turns out to be wrong (fix
|
|
13
|
+
* the function, redeploy, and the deploy plan rebuilds it), and it is what
|
|
14
|
+
* proves a maintained index is the one a rebuild writes — the two must agree
|
|
15
|
+
* byte for byte. The record's primary is untouched; only the index manifests
|
|
16
|
+
* move, under a `$reindex` commit so the audit chain records that they did.
|
|
17
|
+
*
|
|
18
|
+
* Records are workspace-scoped, so --workspace is required.
|
|
19
|
+
*/
|
|
20
|
+
import { LocalStorage, LocalTaskRunner, recordReindex } from '@elaraai/e3-core';
|
|
21
|
+
import { parseRepoLocation, formatError, exitError } from '../utils.js';
|
|
22
|
+
import { commandBudget } from './budget.js';
|
|
23
|
+
function actor() {
|
|
24
|
+
return `cli:${process.env.USER ?? process.env.USERNAME ?? 'unknown'}`;
|
|
25
|
+
}
|
|
26
|
+
/** `e3 reindex` entry point. */
|
|
27
|
+
export async function reindexCommand(repoArg, record, options) {
|
|
28
|
+
try {
|
|
29
|
+
if (!options.workspace) {
|
|
30
|
+
exitError('e3 reindex requires --workspace (records hold live workspace state)');
|
|
31
|
+
}
|
|
32
|
+
const location = await parseRepoLocation(repoArg);
|
|
33
|
+
if (location.type !== 'local') {
|
|
34
|
+
exitError('e3 reindex runs where the record is: point it at the repository path on the server, '
|
|
35
|
+
+ 'or redeploy the package, which rebuilds every index whose declaration changed.');
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const storage = new LocalStorage();
|
|
39
|
+
const outcome = await recordReindex(storage, new LocalTaskRunner(location.path, commandBudget(options)), location.path, options.workspace, record, {
|
|
40
|
+
actor: actor(),
|
|
41
|
+
...(options.index !== undefined && { index: options.index }),
|
|
42
|
+
...(options.verbose !== undefined && { verbose: options.verbose }),
|
|
43
|
+
});
|
|
44
|
+
const what = options.index === undefined ? "every index of" : `index '${options.index}' of`;
|
|
45
|
+
switch (outcome.kind) {
|
|
46
|
+
case 'committed':
|
|
47
|
+
console.log(`Rebuilt ${what} '${record}' → ${outcome.commitHash}`);
|
|
48
|
+
return;
|
|
49
|
+
case 'invalid':
|
|
50
|
+
exitError(outcome.message);
|
|
51
|
+
return;
|
|
52
|
+
case 'conflict':
|
|
53
|
+
exitError(`Reindex conflicted after ${outcome.attempts} attempts; try again`);
|
|
54
|
+
return;
|
|
55
|
+
case 'failed':
|
|
56
|
+
exitError(`An index build failed (exit ${outcome.exitCode})\n${outcome.stderr}`);
|
|
57
|
+
return;
|
|
58
|
+
case 'timed_out':
|
|
59
|
+
exitError(`An index build exceeded ${outcome.ms} ms\n${outcome.stderr}`);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
exitError(formatError(err));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=reindex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reindex.js","sourceRoot":"","sources":["../../../src/commands/reindex.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,aAAa,EAAoB,MAAM,aAAa,CAAC;AAE9D,SAAS,KAAK;IACZ,OAAO,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC;AACxE,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,MAAc,EACd,OAAgF;IAEhF,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,SAAS,CAAC,qEAAqE,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,SAAS,CACP,sFAAsF;kBACpF,gFAAgF,CACnF,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,OAAO,EAAE,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAC7G;YACE,KAAK,EAAE,KAAK,EAAE;YACd,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5D,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;SACnE,CACF,CAAC;QAEF,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,KAAK,MAAM,CAAC;QAC5F,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,WAAW;gBACd,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,KAAK,MAAM,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;gBACnE,OAAO;YACT,KAAK,SAAS;gBACZ,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3B,OAAO;YACT,KAAK,UAAU;gBACb,SAAS,CAAC,4BAA4B,OAAO,CAAC,QAAQ,sBAAsB,CAAC,CAAC;gBAC9E,OAAO;YACT,KAAK,QAAQ;gBACX,SAAS,CAAC,+BAA+B,OAAO,CAAC,QAAQ,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjF,OAAO;YACT,KAAK,WAAW;gBACd,SAAS,CAAC,2BAA2B,OAAO,CAAC,EAAE,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACzE,OAAO;QACX,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
|
|
@@ -30,11 +30,14 @@ export declare const repoCommand: {
|
|
|
30
30
|
*/
|
|
31
31
|
status(locationArg: string): Promise<void>;
|
|
32
32
|
/**
|
|
33
|
-
* Run garbage collection
|
|
33
|
+
* Run garbage collection: the runs and executions the repository no longer
|
|
34
|
+
* keeps go first, and then the objects nothing kept names.
|
|
34
35
|
*/
|
|
35
36
|
gc(locationArg: string, options: {
|
|
36
37
|
dryRun?: boolean;
|
|
37
38
|
minAge?: string;
|
|
39
|
+
keepRuns?: string;
|
|
40
|
+
keepDays?: string;
|
|
38
41
|
}): Promise<void>;
|
|
39
42
|
/**
|
|
40
43
|
* List repositories on a server.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../../src/commands/repo.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../../src/commands/repo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiDH,eAAO,MAAM,WAAW;IACtB;;;;;OAKG;oBACmB,MAAM,YAAW;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAQ,OAAO,CAAC,IAAI,CAAC;IAqCjF;;;;;;;;;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;;;OAGG;oBACmB,MAAM,WAAW;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgGlI;;;;OAIG;oBACmB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAyB7C,CAAC"}
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* e3 repo commands - Repository management
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
8
|
+
import { resolve } from 'path';
|
|
9
9
|
import { rmSync } from 'fs';
|
|
10
|
-
import { repoInit, repoGc, packageList, workspaceList, workspaceRemove, workspaceGetState, LocalStorage, } from '@elaraai/e3-core';
|
|
10
|
+
import { repoInit, repoGc, DEFAULT_KEEP_DAYS, DEFAULT_KEEP_RUNS, packageList, workspaceList, workspaceRemove, workspaceGetState, LocalStorage, } from '@elaraai/e3-core';
|
|
11
11
|
import { repoStatus as repoStatusRemote, repoGcStart as repoGcStartRemote, repoGcStatus as repoGcStatusRemote, repoCreate as repoCreateRemote, repoRemove as repoRemoveRemote, repoList as repoListRemote, workspaceList as workspaceListRemote, workspaceRemove as workspaceRemoveRemote, } from '@elaraai/e3-api-client';
|
|
12
12
|
import { some, none } from '@elaraai/east';
|
|
13
13
|
import { parseRepoLocation, formatError, exitError } from '../utils.js';
|
|
@@ -183,33 +183,45 @@ export const repoCommand = {
|
|
|
183
183
|
}
|
|
184
184
|
},
|
|
185
185
|
/**
|
|
186
|
-
* Run garbage collection
|
|
186
|
+
* Run garbage collection: the runs and executions the repository no longer
|
|
187
|
+
* keeps go first, and then the objects nothing kept names.
|
|
187
188
|
*/
|
|
188
189
|
async gc(locationArg, options) {
|
|
189
190
|
try {
|
|
190
191
|
const location = await parseRepoLocation(locationArg);
|
|
191
192
|
const minAge = options.minAge ? parseInt(options.minAge, 10) : 60000;
|
|
193
|
+
const keep = {};
|
|
194
|
+
for (const [key, flag] of [['keepRuns', '--keep-runs'], ['keepDays', '--keep-days']]) {
|
|
195
|
+
const value = options[key];
|
|
196
|
+
if (value === undefined)
|
|
197
|
+
continue;
|
|
198
|
+
if (!/^\d+$/.test(value))
|
|
199
|
+
exitError(`${flag} takes a whole number of zero or more, got '${value}'`);
|
|
200
|
+
keep[key] = Number(value);
|
|
201
|
+
}
|
|
192
202
|
if (options.dryRun) {
|
|
193
203
|
console.log('Dry run - no files will be deleted');
|
|
194
204
|
}
|
|
195
205
|
console.log(`Minimum age: ${minAge}ms`);
|
|
206
|
+
console.log(`History kept: the last ${keep.keepRuns ?? DEFAULT_KEEP_RUNS} runs of each workspace, and ${keep.keepDays ?? DEFAULT_KEEP_DAYS} days of runs and executions`);
|
|
196
207
|
console.log('');
|
|
197
208
|
if (location.type === 'local') {
|
|
198
|
-
|
|
199
|
-
// directory holding the repository — as e3-api-server configures it.
|
|
200
|
-
const storage = new LocalStorage(dirname(resolve(location.path)));
|
|
209
|
+
const storage = new LocalStorage();
|
|
201
210
|
const result = await repoGc(storage, location.path, {
|
|
202
211
|
dryRun: options.dryRun,
|
|
203
212
|
minAge,
|
|
213
|
+
...keep,
|
|
204
214
|
});
|
|
205
215
|
console.log('Garbage collection complete:');
|
|
206
|
-
console.log(`
|
|
207
|
-
console.log(`
|
|
208
|
-
console.log(`
|
|
209
|
-
console.log(`
|
|
216
|
+
console.log(` Runs deleted: ${result.deletedRuns}`);
|
|
217
|
+
console.log(` Executions deleted: ${result.deletedExecutions}`);
|
|
218
|
+
console.log(` Objects retained: ${result.retainedObjects}`);
|
|
219
|
+
console.log(` Objects deleted: ${result.deletedObjects}`);
|
|
220
|
+
console.log(` Partials deleted: ${result.deletedPartials}`);
|
|
221
|
+
console.log(` Skipped (young): ${result.skippedYoung}`);
|
|
210
222
|
if (result.bytesFreed > 0) {
|
|
211
223
|
const mb = (result.bytesFreed / 1024 / 1024).toFixed(2);
|
|
212
|
-
console.log(` Space reclaimed:
|
|
224
|
+
console.log(` Space reclaimed: ${mb} MB`);
|
|
213
225
|
}
|
|
214
226
|
}
|
|
215
227
|
else {
|
|
@@ -217,6 +229,8 @@ export const repoCommand = {
|
|
|
217
229
|
const { executionId } = await repoGcStartRemote(location.baseUrl, location.repo, {
|
|
218
230
|
dryRun: options.dryRun ?? false,
|
|
219
231
|
minAge: minAge ? some(BigInt(minAge)) : none,
|
|
232
|
+
keepRuns: keep.keepRuns === undefined ? none : some(BigInt(keep.keepRuns)),
|
|
233
|
+
keepDays: keep.keepDays === undefined ? none : some(BigInt(keep.keepDays)),
|
|
220
234
|
}, { token: location.token });
|
|
221
235
|
console.log('Running garbage collection...');
|
|
222
236
|
// Poll for completion
|
|
@@ -230,13 +244,15 @@ export const repoCommand = {
|
|
|
230
244
|
const result = status.stats.value;
|
|
231
245
|
console.log('');
|
|
232
246
|
console.log('Garbage collection complete:');
|
|
233
|
-
console.log(`
|
|
234
|
-
console.log(`
|
|
235
|
-
console.log(`
|
|
236
|
-
console.log(`
|
|
247
|
+
console.log(` Runs deleted: ${result.deletedRuns}`);
|
|
248
|
+
console.log(` Executions deleted: ${result.deletedExecutions}`);
|
|
249
|
+
console.log(` Objects retained: ${result.retainedObjects}`);
|
|
250
|
+
console.log(` Objects deleted: ${result.deletedObjects}`);
|
|
251
|
+
console.log(` Partials deleted: ${result.deletedPartials}`);
|
|
252
|
+
console.log(` Skipped (young): ${result.skippedYoung}`);
|
|
237
253
|
if (result.bytesFreed > 0n) {
|
|
238
254
|
const mb = (Number(result.bytesFreed) / 1024 / 1024).toFixed(2);
|
|
239
|
-
console.log(` Space reclaimed:
|
|
255
|
+
console.log(` Space reclaimed: ${mb} MB`);
|
|
240
256
|
}
|
|
241
257
|
break;
|
|
242
258
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo.js","sourceRoot":"","sources":["../../../src/commands/repo.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"repo.js","sourceRoot":"","sources":["../../../src/commands/repo.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
3
|
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
|
+
import { type BudgetFlags } from './budget.js';
|
|
5
6
|
/**
|
|
6
7
|
* Parse task specifier: `pkg.task` or `pkg@version.task`.
|
|
7
8
|
*
|
|
@@ -17,7 +18,7 @@ export declare function parseTaskSpec(spec: string): {
|
|
|
17
18
|
/**
|
|
18
19
|
* Run a task ad-hoc with file inputs and output.
|
|
19
20
|
*/
|
|
20
|
-
export declare function runCommand(repoArg: string, taskSpec: string, inputs: string[], options: {
|
|
21
|
+
export declare function runCommand(repoArg: string, taskSpec: string, inputs: string[], options: BudgetFlags & {
|
|
21
22
|
output?: string;
|
|
22
23
|
force?: boolean;
|
|
23
24
|
verbose?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9D;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAoB3F;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7E,OAAO,CAAC,IAAI,CAAC,CA8Ef"}
|
package/dist/src/commands/run.js
CHANGED
|
@@ -11,9 +11,10 @@
|
|
|
11
11
|
* e3 run . my-pkg/task ./data.beast2 -o ./out.beast2 --force
|
|
12
12
|
*/
|
|
13
13
|
import { readFile, writeFile } from 'fs/promises';
|
|
14
|
-
import { packageRead, objectWrite, objectRead, taskExecute,
|
|
15
|
-
import { decodeBeast2
|
|
16
|
-
import {
|
|
14
|
+
import { packageRead, objectWrite, objectRead, taskExecute, withRunningWork, LocalStorage, } from '@elaraai/e3-core';
|
|
15
|
+
import { decodeBeast2 } from '@elaraai/east';
|
|
16
|
+
import { openRepo, parsePackageSpec, formatError, exitError, shortHash } from '../utils.js';
|
|
17
|
+
import { commandBudget } from './budget.js';
|
|
17
18
|
/**
|
|
18
19
|
* Parse task specifier: `pkg.task` or `pkg@version.task`.
|
|
19
20
|
*
|
|
@@ -42,8 +43,10 @@ export function parseTaskSpec(spec) {
|
|
|
42
43
|
*/
|
|
43
44
|
export async function runCommand(repoArg, taskSpec, inputs, options) {
|
|
44
45
|
try {
|
|
45
|
-
const repoPath =
|
|
46
|
+
const repoPath = await openRepo(repoArg);
|
|
46
47
|
const storage = new LocalStorage();
|
|
48
|
+
// The budget a split task's units take from.
|
|
49
|
+
const budget = commandBudget(options);
|
|
47
50
|
// Parse task specifier
|
|
48
51
|
const { name, version, task } = parseTaskSpec(taskSpec);
|
|
49
52
|
// Validate output is provided
|
|
@@ -73,24 +76,15 @@ export async function runCommand(repoArg, taskSpec, inputs, options) {
|
|
|
73
76
|
inputHashes.push(hash);
|
|
74
77
|
console.log(` Input: ${inputPath} -> ${shortHash(hash)}`);
|
|
75
78
|
}
|
|
76
|
-
// Execute the task
|
|
77
|
-
//
|
|
78
|
-
//
|
|
79
|
-
const lock = await storage.locks.acquire(repoPath, TASKS_LOCK, variant('dataflow', null), { mode: 'shared' });
|
|
80
|
-
if (lock === null) {
|
|
81
|
-
exitError('run: a garbage collection is running in this repository — retry when it finishes');
|
|
82
|
-
}
|
|
79
|
+
// Execute the task as running work: gc takes the repository exclusively,
|
|
80
|
+
// so a sweep never runs while this execution's unrooted objects (carved
|
|
81
|
+
// slices, unit outputs) exist.
|
|
83
82
|
const startTime = Date.now();
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
finally {
|
|
92
|
-
await lock.release();
|
|
93
|
-
}
|
|
83
|
+
const result = await withRunningWork(storage, repoPath, () => taskExecute(storage, repoPath, taskHash, inputHashes, {
|
|
84
|
+
force: options.force,
|
|
85
|
+
verbose: options.verbose,
|
|
86
|
+
budget,
|
|
87
|
+
}));
|
|
94
88
|
const elapsed = Date.now() - startTime;
|
|
95
89
|
if (result.cached) {
|
|
96
90
|
console.log(`Cached (${elapsed}ms)`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../src/commands/set.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoFH;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACpE,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../src/commands/set.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoFH;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACpE,OAAO,CAAC,IAAI,CAAC,CA2If"}
|
package/dist/src/commands/set.js
CHANGED
|
@@ -19,10 +19,11 @@
|
|
|
19
19
|
* The positional form DECODES the file and re-encodes the value — a `.beast2`
|
|
20
20
|
* file's header type is checked against the declared type first, by ranged
|
|
21
21
|
* reads, so a drifted file is refused before it is read whole; `--from-file`
|
|
22
|
-
* ADOPTS a `.beast2` file
|
|
23
|
-
* header against the declared type
|
|
24
|
-
* object store
|
|
25
|
-
*
|
|
22
|
+
* ADOPTS a `.beast2` file without ever holding it — hashing it by streaming,
|
|
23
|
+
* checking its header against the declared type, and taking it into the
|
|
24
|
+
* object store: a collection split into segment objects a segment at a time,
|
|
25
|
+
* any other value by link or one kernel copy. That is the form for a delivery
|
|
26
|
+
* too big to decode at once, and the file is never modified.
|
|
26
27
|
*/
|
|
27
28
|
import { readFile } from 'fs/promises';
|
|
28
29
|
import { extname } from 'path';
|
|
@@ -30,8 +31,8 @@ import { stat } from 'node:fs/promises';
|
|
|
30
31
|
import { datasetAdoptFile, workspaceResolveDataset, workspaceSetDataset, LocalStorage } from '@elaraai/e3-core';
|
|
31
32
|
import { readDatasetFileHeader, readDatasetFileType, sha256File } from '@elaraai/e3';
|
|
32
33
|
import { datasetGetStatus as datasetGetStatusRemote, datasetSet as datasetSetRemote, datasetSetStream, } from '@elaraai/e3-api-client';
|
|
33
|
-
import { decodeBeast2, parseFor, fromJSONFor, decodeCsvFor,
|
|
34
|
-
import { checkDatasetType } from '@elaraai/e3-types';
|
|
34
|
+
import { decodeBeast2, parseFor, fromJSONFor, decodeCsvFor, EastTypeType, parseInferred, toEastTypeValue, } from '@elaraai/east';
|
|
35
|
+
import { checkDatasetType, encodeDatasetBlob } from '@elaraai/e3-types';
|
|
35
36
|
import { parseRepoLocation, formatError, exitError } from '../utils.js';
|
|
36
37
|
import { resolveDatasetPath } from '../path-resolver.js';
|
|
37
38
|
import { formatSize } from '../format.js';
|
|
@@ -68,19 +69,18 @@ export async function setCommand(repoArg, pathSpec, filePath, options = {}) {
|
|
|
68
69
|
exitError('Specify either --type or --type-file, not both');
|
|
69
70
|
}
|
|
70
71
|
if (options.fromFile) {
|
|
71
|
-
// --from-file
|
|
72
|
-
//
|
|
73
|
-
// exists to avoid.
|
|
72
|
+
// --from-file takes the file in under the type its header declares: a
|
|
73
|
+
// file read as another type is a delivery silently re-typed.
|
|
74
74
|
if (filePath)
|
|
75
75
|
exitError('Specify either a file argument or --from-file, not both');
|
|
76
76
|
if (options.type || options.typeFile) {
|
|
77
|
-
exitError('--from-file adopts the file
|
|
77
|
+
exitError('--from-file adopts the file under the type its header declares — --type / --type-file would re-type it');
|
|
78
78
|
}
|
|
79
79
|
// Awaited, so a refusal lands in the catch below and prints as one line.
|
|
80
80
|
return await setFromFile(repoArg, pathSpec, options.fromFile);
|
|
81
81
|
}
|
|
82
82
|
if (!filePath) {
|
|
83
|
-
exitError('Provide a file to read the value from, or --from-file to
|
|
83
|
+
exitError('Provide a file to read the value from, or --from-file to take in a .beast2 file without holding it');
|
|
84
84
|
}
|
|
85
85
|
const location = await parseRepoLocation(repoArg);
|
|
86
86
|
const { ws, path } = await resolveDatasetPath(location, pathSpec);
|
|
@@ -175,9 +175,9 @@ export async function setCommand(repoArg, pathSpec, filePath, options = {}) {
|
|
|
175
175
|
await workspaceSetDataset(storage, location.path, ws, path, value, type);
|
|
176
176
|
}
|
|
177
177
|
else {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
await datasetSetRemote(location.baseUrl, location.repo, ws, path,
|
|
178
|
+
// The dataset's own encoding — a collection segmented, as the server's
|
|
179
|
+
// door reads it a segment at a time.
|
|
180
|
+
await datasetSetRemote(location.baseUrl, location.repo, ws, path, encodeDatasetBlob(type, value), { token: location.token });
|
|
181
181
|
}
|
|
182
182
|
console.log(`Set ${pathSpec} from ${filePath}`);
|
|
183
183
|
}
|
|
@@ -186,7 +186,7 @@ export async function setCommand(repoArg, pathSpec, filePath, options = {}) {
|
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
/**
|
|
189
|
-
* Point a dataset at an existing `.beast2` file,
|
|
189
|
+
* Point a dataset at an existing `.beast2` file, adopted without holding it.
|
|
190
190
|
*
|
|
191
191
|
* Locally the file is adopted straight into the object store; against a remote
|
|
192
192
|
* repository it is streamed through the transfer protocol, whose commit runs
|