@aexhq/cli 0.25.1 → 0.26.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.
- package/README.md +12 -0
- package/dist/index.d.ts +2 -7
- package/dist/index.js +233 -7
- package/package.json +26 -29
- package/LICENSE +0 -201
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +0 -51
- package/dist/cli.js.map +0 -1
- package/dist/cli.mjs +0 -4657
- package/dist/cli.mjs.sha256 +0 -1
- package/dist/host/cancel.d.ts +0 -3
- package/dist/host/cancel.js +0 -30
- package/dist/host/cancel.js.map +0 -1
- package/dist/host/common.d.ts +0 -135
- package/dist/host/common.js +0 -281
- package/dist/host/common.js.map +0 -1
- package/dist/host/delete-asset.d.ts +0 -3
- package/dist/host/delete-asset.js +0 -34
- package/dist/host/delete-asset.js.map +0 -1
- package/dist/host/delete.d.ts +0 -3
- package/dist/host/delete.js +0 -30
- package/dist/host/delete.js.map +0 -1
- package/dist/host/download.d.ts +0 -3
- package/dist/host/download.js +0 -80
- package/dist/host/download.js.map +0 -1
- package/dist/host/events.d.ts +0 -3
- package/dist/host/events.js +0 -97
- package/dist/host/events.js.map +0 -1
- package/dist/host/index.d.ts +0 -17
- package/dist/host/index.js +0 -18
- package/dist/host/index.js.map +0 -1
- package/dist/host/outputs.d.ts +0 -3
- package/dist/host/outputs.js +0 -36
- package/dist/host/outputs.js.map +0 -1
- package/dist/host/run-cmd.d.ts +0 -3
- package/dist/host/run-cmd.js +0 -549
- package/dist/host/run-cmd.js.map +0 -1
- package/dist/host/skills-cmd.d.ts +0 -3
- package/dist/host/skills-cmd.js +0 -304
- package/dist/host/skills-cmd.js.map +0 -1
- package/dist/host/status.d.ts +0 -3
- package/dist/host/status.js +0 -31
- package/dist/host/status.js.map +0 -1
- package/dist/host/wait.d.ts +0 -3
- package/dist/host/wait.js +0 -88
- package/dist/host/wait.js.map +0 -1
- package/dist/host/whoami.d.ts +0 -3
- package/dist/host/whoami.js +0 -33
- package/dist/host/whoami.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/internal.d.ts +0 -53
- package/dist/internal.js +0 -10
- package/dist/internal.js.map +0 -1
- package/dist/outputs-sync.d.ts +0 -24
- package/dist/outputs-sync.js +0 -70
- package/dist/outputs-sync.js.map +0 -1
- package/dist/proxy.d.ts +0 -16
- package/dist/proxy.js +0 -316
- package/dist/proxy.js.map +0 -1
- package/dist/run.d.ts +0 -10
- package/dist/run.js +0 -166
- package/dist/run.js.map +0 -1
- package/dist/runtime.d.ts +0 -5
- package/dist/runtime.js +0 -4
- package/dist/runtime.js.map +0 -1
- package/scripts/finalize-bundle.mjs +0 -72
- package/src/cli.ts +0 -51
- package/src/host/cancel.ts +0 -39
- package/src/host/common.ts +0 -329
- package/src/host/delete-asset.ts +0 -43
- package/src/host/delete.ts +0 -39
- package/src/host/download.ts +0 -97
- package/src/host/events.ts +0 -113
- package/src/host/index.ts +0 -25
- package/src/host/outputs.ts +0 -45
- package/src/host/run-cmd.ts +0 -578
- package/src/host/skills-cmd.ts +0 -317
- package/src/host/status.ts +0 -40
- package/src/host/wait.ts +0 -110
- package/src/host/whoami.ts +0 -42
- package/src/index.ts +0 -7
- package/src/internal.ts +0 -63
- package/src/outputs-sync.ts +0 -76
- package/src/proxy.ts +0 -359
- package/src/run.ts +0 -187
- package/src/runtime.ts +0 -15
- package/test/cli.test.ts +0 -519
- package/test/host.test.ts +0 -1154
- package/test/no-env-vars.test.ts +0 -59
- package/test/outputs-sync.test.ts +0 -107
- package/tsconfig.build.json +0 -9
- package/tsconfig.json +0 -4
- package/vitest.config.ts +0 -14
package/dist/cli.mjs.sha256
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1b28b0b2c5ae5867dad0581510c232cf2cf956226db8efc20e66d97549a0d3b0 cli.mjs
|
package/dist/host/cancel.d.ts
DELETED
package/dist/host/cancel.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `aex cancel <run-id>` — POST /api/runs/{id}/cancel.
|
|
3
|
-
*/
|
|
4
|
-
import { operations } from "@aexhq/contracts";
|
|
5
|
-
import { SUCCESS, USAGE_ERR, emitJsonError, makeHttpClient, parseCommonHostFlags, refuseInsideManagedRun } from "./common.js";
|
|
6
|
-
export async function runCancelCmd(io, argv) {
|
|
7
|
-
if (await refuseInsideManagedRun(io, "cancel"))
|
|
8
|
-
return USAGE_ERR;
|
|
9
|
-
const common = parseCommonHostFlags(argv);
|
|
10
|
-
if (!common.ok) {
|
|
11
|
-
io.stderr(`${common.reason}\n`);
|
|
12
|
-
return USAGE_ERR;
|
|
13
|
-
}
|
|
14
|
-
const positional = common.rest.filter((arg) => !arg.startsWith("--"));
|
|
15
|
-
if (positional.length !== 1) {
|
|
16
|
-
io.stderr("usage: aex cancel <run-id> [common flags]\n");
|
|
17
|
-
return USAGE_ERR;
|
|
18
|
-
}
|
|
19
|
-
const runId = positional[0];
|
|
20
|
-
const http = makeHttpClient(io, common.flags);
|
|
21
|
-
try {
|
|
22
|
-
await operations.cancelRun(http, runId);
|
|
23
|
-
io.stdout(JSON.stringify({ runId, status: "cancel_requested" }) + "\n");
|
|
24
|
-
return SUCCESS;
|
|
25
|
-
}
|
|
26
|
-
catch (err) {
|
|
27
|
-
return emitJsonError(io, "cancel_failed", err.message ?? "cancel failed", { runId });
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=cancel.js.map
|
package/dist/host/cancel.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../src/host/cancel.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAEL,OAAO,EACP,SAAS,EACT,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAS,EAAE,IAAuB;IACnE,IAAI,MAAM,sBAAsB,CAAC,EAAE,EAAE,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAEjE,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;IAE7B,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,aAAa,CAAC,EAAE,EAAE,eAAe,EAAG,GAAa,CAAC,OAAO,IAAI,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAClG,CAAC;AACH,CAAC"}
|
package/dist/host/common.d.ts
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared helpers for every host-side aex subcommand. Common flag
|
|
3
|
-
* parsing, HttpClient construction, manifest detection so we can refuse
|
|
4
|
-
* to run host commands inside a managed run container, and exit codes
|
|
5
|
-
* shared with the in-container proxy command.
|
|
6
|
-
*/
|
|
7
|
-
import { HttpClient } from "@aexhq/contracts";
|
|
8
|
-
import { type CliIO } from "../internal.js";
|
|
9
|
-
export interface CliExitCode {
|
|
10
|
-
readonly code: number;
|
|
11
|
-
}
|
|
12
|
-
export declare const SUCCESS: CliExitCode;
|
|
13
|
-
export declare const USAGE_ERR: CliExitCode;
|
|
14
|
-
export declare const RUNTIME_ERR: CliExitCode;
|
|
15
|
-
/**
|
|
16
|
-
* Distinct exit code for "the wait/follow deadline elapsed before the
|
|
17
|
-
* run reached a terminal status". Separated from RUNTIME_ERR (1) so a
|
|
18
|
-
* script can tell a timeout apart from a run that finished non-succeeded
|
|
19
|
-
* (which is also RUNTIME_ERR). Mirrors the SDK's `waitForRun` throwing a
|
|
20
|
-
* dedicated timeout error.
|
|
21
|
-
*/
|
|
22
|
-
export declare const TIMEOUT_ERR: CliExitCode;
|
|
23
|
-
export interface CommonHostFlags {
|
|
24
|
-
readonly apiToken: string;
|
|
25
|
-
readonly aexUrl: string;
|
|
26
|
-
/** `--debug`: print a redacted per-request trace to stderr. Uploads nothing. */
|
|
27
|
-
readonly debug: boolean;
|
|
28
|
-
}
|
|
29
|
-
export type ParseCommonResult = {
|
|
30
|
-
readonly ok: true;
|
|
31
|
-
readonly flags: CommonHostFlags;
|
|
32
|
-
readonly rest: readonly string[];
|
|
33
|
-
} | {
|
|
34
|
-
readonly ok: false;
|
|
35
|
-
readonly reason: string;
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* Parse and remove the common flags every host-side subcommand needs,
|
|
39
|
-
* leaving the rest for the caller.
|
|
40
|
-
*
|
|
41
|
-
* The CLI is `flags_only` — no `AEX_*` env reads. `--api-token` is
|
|
42
|
-
* required; `--aex-url` defaults to `AEX_DEFAULT_BASE_URL`
|
|
43
|
-
* (`https://api.aex.dev`) so SaaS users never need to supply it.
|
|
44
|
-
*
|
|
45
|
-
* There is no `--workspace` flag: workspace identity is derived
|
|
46
|
-
* server-side from the API token.
|
|
47
|
-
*/
|
|
48
|
-
export declare function parseCommonHostFlags(argv: readonly string[]): ParseCommonResult;
|
|
49
|
-
export declare function makeHttpClient(io: CliIO, flags: CommonHostFlags): HttpClient;
|
|
50
|
-
/**
|
|
51
|
-
* Host subcommands refuse to run inside a managed run container. The
|
|
52
|
-
* heuristic: presence of the per-run manifest at AEX_INDEX_PATH
|
|
53
|
-
* (`/mnt/session/uploads/aex/index.json`) means we're inside a
|
|
54
|
-
* run and should expose `proxy`, not the platform-management verbs.
|
|
55
|
-
*
|
|
56
|
-
* Fails *closed* on read errors that are not "file not found": if the
|
|
57
|
-
* manifest exists but is unreadable for any other reason (permissions,
|
|
58
|
-
* IO error, etc.) we refuse to run the host verb rather than risk
|
|
59
|
-
* leaking workspace-management calls into a sandboxed container.
|
|
60
|
-
*/
|
|
61
|
-
export declare function refuseInsideManagedRun(io: CliIO, verb: string): Promise<boolean>;
|
|
62
|
-
/**
|
|
63
|
-
* Emit a JSON error body and return RUNTIME_ERR. The shape mirrors the
|
|
64
|
-
* in-container proxy error envelope so a script-shaped consumer can
|
|
65
|
-
* parse both surfaces the same way.
|
|
66
|
-
*/
|
|
67
|
-
export declare function emitJsonError(io: CliIO, code: string, message: string, extra?: Record<string, unknown>): CliExitCode;
|
|
68
|
-
/**
|
|
69
|
-
* Repeatable `--var key=value` / `--mcp-secret name=value` /
|
|
70
|
-
* `--proxy-auth name=value`-style flag parser. Returns the values in
|
|
71
|
-
* insertion order (last-wins on duplicate keys).
|
|
72
|
-
*/
|
|
73
|
-
export declare function collectRepeatedKv(rest: readonly string[], flag: string): {
|
|
74
|
-
readonly entries: Record<string, string>;
|
|
75
|
-
readonly remaining: readonly string[];
|
|
76
|
-
readonly error: string | null;
|
|
77
|
-
};
|
|
78
|
-
/**
|
|
79
|
-
* Repeatable `--flag <value>` collector. Each occurrence consumes one
|
|
80
|
-
* argv slot. Returns the collected values in insertion order alongside
|
|
81
|
-
* the remaining argv.
|
|
82
|
-
*/
|
|
83
|
-
export declare function collectRepeated(rest: readonly string[], flag: string): {
|
|
84
|
-
readonly values: readonly string[];
|
|
85
|
-
readonly remaining: readonly string[];
|
|
86
|
-
readonly error: string | null;
|
|
87
|
-
};
|
|
88
|
-
/**
|
|
89
|
-
* Repeatable `--flag KEY=VALUE` collector that PRESERVES every
|
|
90
|
-
* occurrence (no key-collision collapse). Use this when the same key
|
|
91
|
-
* may legitimately appear multiple times — for example,
|
|
92
|
-
* `--mcp-auth github=Authorization:Bearer t --mcp-auth github=X-Api-Key:k`
|
|
93
|
-
* needs to register both headers, not just the last one.
|
|
94
|
-
*
|
|
95
|
-
* Returns `[key, value]` pairs in argv order alongside the remaining
|
|
96
|
-
* argv with the consumed flags removed.
|
|
97
|
-
*/
|
|
98
|
-
export declare function collectRepeatedKvList(rest: readonly string[], flag: string): {
|
|
99
|
-
readonly entries: ReadonlyArray<readonly [string, string]>;
|
|
100
|
-
readonly remaining: readonly string[];
|
|
101
|
-
readonly error: string | null;
|
|
102
|
-
};
|
|
103
|
-
export declare function takeFlagValue(rest: readonly string[], flag: string): {
|
|
104
|
-
value: string | null;
|
|
105
|
-
remaining: readonly string[];
|
|
106
|
-
error: string | null;
|
|
107
|
-
};
|
|
108
|
-
/**
|
|
109
|
-
* Parse a human-friendly duration into milliseconds. Accepts a bare
|
|
110
|
-
* integer (interpreted as milliseconds) or `<number><unit>` where unit
|
|
111
|
-
* is one of `ms`, `s`, `m`, `h` — e.g. `500ms`, `30s`, `8m`, `1h`.
|
|
112
|
-
*
|
|
113
|
-
* Returns the millisecond count, or an `error` string describing the
|
|
114
|
-
* malformed input (the value is never silently coerced to 0). Rejects
|
|
115
|
-
* negatives and non-finite values so a `--timeout` can never disable the
|
|
116
|
-
* deadline by accident.
|
|
117
|
-
*/
|
|
118
|
-
export declare function parseDuration(input: string): {
|
|
119
|
-
readonly ms: number | null;
|
|
120
|
-
readonly error: string | null;
|
|
121
|
-
};
|
|
122
|
-
export declare function takeBooleanFlag(rest: readonly string[], flag: string): {
|
|
123
|
-
readonly present: boolean;
|
|
124
|
-
readonly remaining: readonly string[];
|
|
125
|
-
};
|
|
126
|
-
/**
|
|
127
|
-
* Take an option flag in either `--flag value` or `--flag=value` form.
|
|
128
|
-
* Returns the trailing value (or undefined when the flag is absent)
|
|
129
|
-
* plus the remaining args. Unlike `takeFlagValue`, this is permissive
|
|
130
|
-
* about the `=` form which CLI users frequently expect.
|
|
131
|
-
*/
|
|
132
|
-
export declare function takeOptionFlag(rest: readonly string[], flag: string): {
|
|
133
|
-
readonly value: string | undefined;
|
|
134
|
-
readonly remaining: readonly string[];
|
|
135
|
-
};
|
package/dist/host/common.js
DELETED
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared helpers for every host-side aex subcommand. Common flag
|
|
3
|
-
* parsing, HttpClient construction, manifest detection so we can refuse
|
|
4
|
-
* to run host commands inside a managed run container, and exit codes
|
|
5
|
-
* shared with the in-container proxy command.
|
|
6
|
-
*/
|
|
7
|
-
import { AEX_DEFAULT_BASE_URL, HttpClient } from "@aexhq/contracts";
|
|
8
|
-
import { AEX_INDEX_PATH } from "../internal.js";
|
|
9
|
-
export const SUCCESS = { code: 0 };
|
|
10
|
-
export const USAGE_ERR = { code: 2 };
|
|
11
|
-
export const RUNTIME_ERR = { code: 1 };
|
|
12
|
-
/**
|
|
13
|
-
* Distinct exit code for "the wait/follow deadline elapsed before the
|
|
14
|
-
* run reached a terminal status". Separated from RUNTIME_ERR (1) so a
|
|
15
|
-
* script can tell a timeout apart from a run that finished non-succeeded
|
|
16
|
-
* (which is also RUNTIME_ERR). Mirrors the SDK's `waitForRun` throwing a
|
|
17
|
-
* dedicated timeout error.
|
|
18
|
-
*/
|
|
19
|
-
export const TIMEOUT_ERR = { code: 3 };
|
|
20
|
-
/**
|
|
21
|
-
* Parse and remove the common flags every host-side subcommand needs,
|
|
22
|
-
* leaving the rest for the caller.
|
|
23
|
-
*
|
|
24
|
-
* The CLI is `flags_only` — no `AEX_*` env reads. `--api-token` is
|
|
25
|
-
* required; `--aex-url` defaults to `AEX_DEFAULT_BASE_URL`
|
|
26
|
-
* (`https://api.aex.dev`) so SaaS users never need to supply it.
|
|
27
|
-
*
|
|
28
|
-
* There is no `--workspace` flag: workspace identity is derived
|
|
29
|
-
* server-side from the API token.
|
|
30
|
-
*/
|
|
31
|
-
export function parseCommonHostFlags(argv) {
|
|
32
|
-
let apiToken = null;
|
|
33
|
-
let aexUrl = null;
|
|
34
|
-
let debug = false;
|
|
35
|
-
const rest = [];
|
|
36
|
-
for (let i = 0; i < argv.length; i++) {
|
|
37
|
-
const arg = argv[i];
|
|
38
|
-
if (arg === "--debug") {
|
|
39
|
-
debug = true;
|
|
40
|
-
continue;
|
|
41
|
-
}
|
|
42
|
-
if (arg === "--api-token") {
|
|
43
|
-
const v = argv[++i];
|
|
44
|
-
if (v === undefined)
|
|
45
|
-
return { ok: false, reason: "--api-token requires a value" };
|
|
46
|
-
apiToken = v;
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
if (arg === "--aex-url") {
|
|
50
|
-
const v = argv[++i];
|
|
51
|
-
if (v === undefined)
|
|
52
|
-
return { ok: false, reason: "--aex-url requires a value" };
|
|
53
|
-
aexUrl = v;
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
if (arg === "--workspace" || arg === "--workspace-id") {
|
|
57
|
-
// Removed in favor of server-side derivation from the API token.
|
|
58
|
-
// Bail out early with an actionable message instead of letting
|
|
59
|
-
// the flag fall through and produce a confusing positional-arg
|
|
60
|
-
// count error from the calling subcommand.
|
|
61
|
-
return {
|
|
62
|
-
ok: false,
|
|
63
|
-
reason: `unknown flag ${arg}: workspace is derived from --api-token on the server; drop this flag`
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
rest.push(arg);
|
|
67
|
-
}
|
|
68
|
-
if (!apiToken)
|
|
69
|
-
return { ok: false, reason: "--api-token is required" };
|
|
70
|
-
return {
|
|
71
|
-
ok: true,
|
|
72
|
-
flags: { apiToken, aexUrl: aexUrl ?? AEX_DEFAULT_BASE_URL, debug },
|
|
73
|
-
rest
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
export function makeHttpClient(io, flags) {
|
|
77
|
-
return new HttpClient({
|
|
78
|
-
baseUrl: flags.aexUrl,
|
|
79
|
-
apiToken: flags.apiToken,
|
|
80
|
-
fetch: io.fetchImpl,
|
|
81
|
-
// `--debug`: route the transport's redacted per-request traces to stderr.
|
|
82
|
-
...(flags.debug ? { debug: (line) => io.stderr(`${line}\n`) } : {})
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Host subcommands refuse to run inside a managed run container. The
|
|
87
|
-
* heuristic: presence of the per-run manifest at AEX_INDEX_PATH
|
|
88
|
-
* (`/mnt/session/uploads/aex/index.json`) means we're inside a
|
|
89
|
-
* run and should expose `proxy`, not the platform-management verbs.
|
|
90
|
-
*
|
|
91
|
-
* Fails *closed* on read errors that are not "file not found": if the
|
|
92
|
-
* manifest exists but is unreadable for any other reason (permissions,
|
|
93
|
-
* IO error, etc.) we refuse to run the host verb rather than risk
|
|
94
|
-
* leaking workspace-management calls into a sandboxed container.
|
|
95
|
-
*/
|
|
96
|
-
export async function refuseInsideManagedRun(io, verb) {
|
|
97
|
-
try {
|
|
98
|
-
await io.readFile(AEX_INDEX_PATH);
|
|
99
|
-
io.stderr(`\`aex ${verb}\` is a host command and cannot run inside a managed run container.\n` +
|
|
100
|
-
"Use `aex proxy ...` to call your declared upstream endpoints from inside the run.\n");
|
|
101
|
-
return true;
|
|
102
|
-
}
|
|
103
|
-
catch (err) {
|
|
104
|
-
const code = err?.code;
|
|
105
|
-
if (code === "ENOENT" || code === "ENOTDIR") {
|
|
106
|
-
// Manifest definitively absent; we are on a host. Allow the verb.
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
io.stderr(`\`aex ${verb}\` could not determine whether it is running inside a managed run ` +
|
|
110
|
-
`container (error reading ${AEX_INDEX_PATH}: ${err.message ?? "unknown"}). ` +
|
|
111
|
-
`Refusing to proceed.\n`);
|
|
112
|
-
return true;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Emit a JSON error body and return RUNTIME_ERR. The shape mirrors the
|
|
117
|
-
* in-container proxy error envelope so a script-shaped consumer can
|
|
118
|
-
* parse both surfaces the same way.
|
|
119
|
-
*/
|
|
120
|
-
export function emitJsonError(io, code, message, extra = {}) {
|
|
121
|
-
io.stderr(JSON.stringify({ error: code, message, ...extra }) + "\n");
|
|
122
|
-
return RUNTIME_ERR;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Repeatable `--var key=value` / `--mcp-secret name=value` /
|
|
126
|
-
* `--proxy-auth name=value`-style flag parser. Returns the values in
|
|
127
|
-
* insertion order (last-wins on duplicate keys).
|
|
128
|
-
*/
|
|
129
|
-
export function collectRepeatedKv(rest, flag) {
|
|
130
|
-
const entries = {};
|
|
131
|
-
const remaining = [];
|
|
132
|
-
for (let i = 0; i < rest.length; i++) {
|
|
133
|
-
const arg = rest[i];
|
|
134
|
-
if (arg === flag) {
|
|
135
|
-
const kv = rest[++i];
|
|
136
|
-
if (kv === undefined) {
|
|
137
|
-
return { entries, remaining, error: `${flag} requires a KEY=VALUE argument` };
|
|
138
|
-
}
|
|
139
|
-
const eq = kv.indexOf("=");
|
|
140
|
-
if (eq <= 0) {
|
|
141
|
-
return { entries, remaining, error: `${flag} must be in the form KEY=VALUE (got: ${kv})` };
|
|
142
|
-
}
|
|
143
|
-
entries[kv.slice(0, eq)] = kv.slice(eq + 1);
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
remaining.push(arg);
|
|
147
|
-
}
|
|
148
|
-
return { entries, remaining, error: null };
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Repeatable `--flag <value>` collector. Each occurrence consumes one
|
|
152
|
-
* argv slot. Returns the collected values in insertion order alongside
|
|
153
|
-
* the remaining argv.
|
|
154
|
-
*/
|
|
155
|
-
export function collectRepeated(rest, flag) {
|
|
156
|
-
const values = [];
|
|
157
|
-
const remaining = [];
|
|
158
|
-
for (let i = 0; i < rest.length; i++) {
|
|
159
|
-
const arg = rest[i];
|
|
160
|
-
if (arg === flag) {
|
|
161
|
-
const v = rest[++i];
|
|
162
|
-
if (v === undefined) {
|
|
163
|
-
return { values, remaining, error: `${flag} requires a value` };
|
|
164
|
-
}
|
|
165
|
-
values.push(v);
|
|
166
|
-
continue;
|
|
167
|
-
}
|
|
168
|
-
remaining.push(arg);
|
|
169
|
-
}
|
|
170
|
-
return { values, remaining, error: null };
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Repeatable `--flag KEY=VALUE` collector that PRESERVES every
|
|
174
|
-
* occurrence (no key-collision collapse). Use this when the same key
|
|
175
|
-
* may legitimately appear multiple times — for example,
|
|
176
|
-
* `--mcp-auth github=Authorization:Bearer t --mcp-auth github=X-Api-Key:k`
|
|
177
|
-
* needs to register both headers, not just the last one.
|
|
178
|
-
*
|
|
179
|
-
* Returns `[key, value]` pairs in argv order alongside the remaining
|
|
180
|
-
* argv with the consumed flags removed.
|
|
181
|
-
*/
|
|
182
|
-
export function collectRepeatedKvList(rest, flag) {
|
|
183
|
-
const entries = [];
|
|
184
|
-
const remaining = [];
|
|
185
|
-
for (let i = 0; i < rest.length; i++) {
|
|
186
|
-
const arg = rest[i];
|
|
187
|
-
if (arg === flag) {
|
|
188
|
-
const kv = rest[++i];
|
|
189
|
-
if (kv === undefined) {
|
|
190
|
-
return { entries, remaining, error: `${flag} requires a KEY=VALUE argument` };
|
|
191
|
-
}
|
|
192
|
-
const eq = kv.indexOf("=");
|
|
193
|
-
if (eq <= 0) {
|
|
194
|
-
return { entries, remaining, error: `${flag} must be in the form KEY=VALUE (got: ${kv})` };
|
|
195
|
-
}
|
|
196
|
-
entries.push([kv.slice(0, eq), kv.slice(eq + 1)]);
|
|
197
|
-
continue;
|
|
198
|
-
}
|
|
199
|
-
remaining.push(arg);
|
|
200
|
-
}
|
|
201
|
-
return { entries, remaining, error: null };
|
|
202
|
-
}
|
|
203
|
-
export function takeFlagValue(rest, flag) {
|
|
204
|
-
let value = null;
|
|
205
|
-
const remaining = [];
|
|
206
|
-
for (let i = 0; i < rest.length; i++) {
|
|
207
|
-
const arg = rest[i];
|
|
208
|
-
if (arg === flag) {
|
|
209
|
-
const v = rest[++i];
|
|
210
|
-
if (v === undefined) {
|
|
211
|
-
return { value, remaining, error: `${flag} requires a value` };
|
|
212
|
-
}
|
|
213
|
-
value = v;
|
|
214
|
-
continue;
|
|
215
|
-
}
|
|
216
|
-
remaining.push(arg);
|
|
217
|
-
}
|
|
218
|
-
return { value, remaining, error: null };
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Parse a human-friendly duration into milliseconds. Accepts a bare
|
|
222
|
-
* integer (interpreted as milliseconds) or `<number><unit>` where unit
|
|
223
|
-
* is one of `ms`, `s`, `m`, `h` — e.g. `500ms`, `30s`, `8m`, `1h`.
|
|
224
|
-
*
|
|
225
|
-
* Returns the millisecond count, or an `error` string describing the
|
|
226
|
-
* malformed input (the value is never silently coerced to 0). Rejects
|
|
227
|
-
* negatives and non-finite values so a `--timeout` can never disable the
|
|
228
|
-
* deadline by accident.
|
|
229
|
-
*/
|
|
230
|
-
export function parseDuration(input) {
|
|
231
|
-
const match = /^(\d+(?:\.\d+)?)(ms|s|m|h)?$/.exec(input.trim());
|
|
232
|
-
if (!match) {
|
|
233
|
-
return { ms: null, error: `invalid duration "${input}" (expected e.g. 500ms, 30s, 8m, 1h, or a bare ms integer)` };
|
|
234
|
-
}
|
|
235
|
-
const value = Number(match[1]);
|
|
236
|
-
if (!Number.isFinite(value) || value < 0) {
|
|
237
|
-
return { ms: null, error: `invalid duration "${input}" (must be a non-negative number)` };
|
|
238
|
-
}
|
|
239
|
-
const unit = match[2] ?? "ms";
|
|
240
|
-
const factor = unit === "h" ? 3_600_000 : unit === "m" ? 60_000 : unit === "s" ? 1_000 : 1;
|
|
241
|
-
return { ms: Math.round(value * factor), error: null };
|
|
242
|
-
}
|
|
243
|
-
export function takeBooleanFlag(rest, flag) {
|
|
244
|
-
const remaining = [];
|
|
245
|
-
let present = false;
|
|
246
|
-
for (const arg of rest) {
|
|
247
|
-
if (arg === flag) {
|
|
248
|
-
present = true;
|
|
249
|
-
continue;
|
|
250
|
-
}
|
|
251
|
-
remaining.push(arg);
|
|
252
|
-
}
|
|
253
|
-
return { present, remaining };
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* Take an option flag in either `--flag value` or `--flag=value` form.
|
|
257
|
-
* Returns the trailing value (or undefined when the flag is absent)
|
|
258
|
-
* plus the remaining args. Unlike `takeFlagValue`, this is permissive
|
|
259
|
-
* about the `=` form which CLI users frequently expect.
|
|
260
|
-
*/
|
|
261
|
-
export function takeOptionFlag(rest, flag) {
|
|
262
|
-
const remaining = [];
|
|
263
|
-
let value;
|
|
264
|
-
const prefix = `${flag}=`;
|
|
265
|
-
for (let i = 0; i < rest.length; i++) {
|
|
266
|
-
const arg = rest[i];
|
|
267
|
-
if (arg === flag) {
|
|
268
|
-
const next = rest[++i];
|
|
269
|
-
if (next !== undefined)
|
|
270
|
-
value = next;
|
|
271
|
-
continue;
|
|
272
|
-
}
|
|
273
|
-
if (arg.startsWith(prefix)) {
|
|
274
|
-
value = arg.slice(prefix.length);
|
|
275
|
-
continue;
|
|
276
|
-
}
|
|
277
|
-
remaining.push(arg);
|
|
278
|
-
}
|
|
279
|
-
return { value, remaining };
|
|
280
|
-
}
|
|
281
|
-
//# sourceMappingURL=common.js.map
|
package/dist/host/common.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/host/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `aex delete-asset <assetId|hash>` — DELETE /assets/{assetId}.
|
|
3
|
-
*
|
|
4
|
-
* Removes a workspace asset blob from the shared content-addressed store.
|
|
5
|
-
* Runs that already snapshotted the asset into their own prefix are
|
|
6
|
-
* unaffected. Accepts `sha256:<hex>` or a bare 64-hex digest.
|
|
7
|
-
*/
|
|
8
|
-
import { operations } from "@aexhq/contracts";
|
|
9
|
-
import { SUCCESS, USAGE_ERR, emitJsonError, makeHttpClient, parseCommonHostFlags, refuseInsideManagedRun } from "./common.js";
|
|
10
|
-
export async function runDeleteAssetCmd(io, argv) {
|
|
11
|
-
if (await refuseInsideManagedRun(io, "delete-asset"))
|
|
12
|
-
return USAGE_ERR;
|
|
13
|
-
const common = parseCommonHostFlags(argv);
|
|
14
|
-
if (!common.ok) {
|
|
15
|
-
io.stderr(`${common.reason}\n`);
|
|
16
|
-
return USAGE_ERR;
|
|
17
|
-
}
|
|
18
|
-
const positional = common.rest.filter((arg) => !arg.startsWith("--"));
|
|
19
|
-
if (positional.length !== 1) {
|
|
20
|
-
io.stderr("usage: aex delete-asset <hash> [common flags]\n");
|
|
21
|
-
return USAGE_ERR;
|
|
22
|
-
}
|
|
23
|
-
const hash = positional[0];
|
|
24
|
-
const http = makeHttpClient(io, common.flags);
|
|
25
|
-
try {
|
|
26
|
-
await operations.deleteWorkspaceAsset(http, hash);
|
|
27
|
-
io.stdout(JSON.stringify({ hash, deleted: true }) + "\n");
|
|
28
|
-
return SUCCESS;
|
|
29
|
-
}
|
|
30
|
-
catch (err) {
|
|
31
|
-
return emitJsonError(io, "delete_asset_failed", err.message ?? "delete-asset failed", { hash });
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=delete-asset.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delete-asset.js","sourceRoot":"","sources":["../../src/host/delete-asset.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAEL,OAAO,EACP,SAAS,EACT,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAS,EAAE,IAAuB;IACxE,IAAI,MAAM,sBAAsB,CAAC,EAAE,EAAE,cAAc,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvE,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;IAE5B,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,aAAa,CAAC,EAAE,EAAE,qBAAqB,EAAG,GAAa,CAAC,OAAO,IAAI,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7G,CAAC;AACH,CAAC"}
|
package/dist/host/delete.d.ts
DELETED
package/dist/host/delete.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `aex delete <run-id>` — DELETE /api/runs/{id}.
|
|
3
|
-
*/
|
|
4
|
-
import { operations } from "@aexhq/contracts";
|
|
5
|
-
import { SUCCESS, USAGE_ERR, emitJsonError, makeHttpClient, parseCommonHostFlags, refuseInsideManagedRun } from "./common.js";
|
|
6
|
-
export async function runDeleteCmd(io, argv) {
|
|
7
|
-
if (await refuseInsideManagedRun(io, "delete"))
|
|
8
|
-
return USAGE_ERR;
|
|
9
|
-
const common = parseCommonHostFlags(argv);
|
|
10
|
-
if (!common.ok) {
|
|
11
|
-
io.stderr(`${common.reason}\n`);
|
|
12
|
-
return USAGE_ERR;
|
|
13
|
-
}
|
|
14
|
-
const positional = common.rest.filter((arg) => !arg.startsWith("--"));
|
|
15
|
-
if (positional.length !== 1) {
|
|
16
|
-
io.stderr("usage: aex delete <run-id> [common flags]\n");
|
|
17
|
-
return USAGE_ERR;
|
|
18
|
-
}
|
|
19
|
-
const runId = positional[0];
|
|
20
|
-
const http = makeHttpClient(io, common.flags);
|
|
21
|
-
try {
|
|
22
|
-
await operations.deleteRun(http, runId);
|
|
23
|
-
io.stdout(JSON.stringify({ runId, deleted: true }) + "\n");
|
|
24
|
-
return SUCCESS;
|
|
25
|
-
}
|
|
26
|
-
catch (err) {
|
|
27
|
-
return emitJsonError(io, "delete_failed", err.message ?? "delete failed", { runId });
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=delete.js.map
|
package/dist/host/delete.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/host/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAEL,OAAO,EACP,SAAS,EACT,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAS,EAAE,IAAuB;IACnE,IAAI,MAAM,sBAAsB,CAAC,EAAE,EAAE,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAEjE,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;IAE7B,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3D,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,aAAa,CAAC,EAAE,EAAE,eAAe,EAAG,GAAa,CAAC,OAAO,IAAI,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAClG,CAAC;AACH,CAAC"}
|
package/dist/host/download.d.ts
DELETED
package/dist/host/download.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `aex download <run-id> [--only namespace] [--out path]` — download
|
|
3
|
-
* a run's content as a zip, assembled client-side from the public read
|
|
4
|
-
* endpoints (no per-output id required).
|
|
5
|
-
*
|
|
6
|
-
* Without `--only`, downloads everything public — organised into
|
|
7
|
-
* `metadata/run.json`, typed `events/events.jsonl`, `outputs/<rel>`
|
|
8
|
-
* (deliverables), plus `manifest.json`.
|
|
9
|
-
*
|
|
10
|
-
* `--only outputs|events|metadata` downloads just that one
|
|
11
|
-
* namespace (files at the zip root).
|
|
12
|
-
*
|
|
13
|
-
* `--out` resolves relative to the host CWD; if omitted the file is
|
|
14
|
-
* written to `aex-run-<run-id>[-<namespace>].zip` in the current
|
|
15
|
-
* directory.
|
|
16
|
-
*/
|
|
17
|
-
import { resolve as resolvePath } from "node:path";
|
|
18
|
-
import { operations } from "@aexhq/contracts";
|
|
19
|
-
import { SUCCESS, USAGE_ERR, emitJsonError, makeHttpClient, parseCommonHostFlags, refuseInsideManagedRun, takeFlagValue } from "./common.js";
|
|
20
|
-
const NAMESPACE_DOWNLOADERS = {
|
|
21
|
-
outputs: operations.downloadOutputs,
|
|
22
|
-
events: operations.downloadEvents,
|
|
23
|
-
metadata: operations.downloadMetadata
|
|
24
|
-
};
|
|
25
|
-
export async function runDownloadCmd(io, argv) {
|
|
26
|
-
if (await refuseInsideManagedRun(io, "download"))
|
|
27
|
-
return USAGE_ERR;
|
|
28
|
-
const common = parseCommonHostFlags(argv);
|
|
29
|
-
if (!common.ok) {
|
|
30
|
-
io.stderr(`${common.reason}\n`);
|
|
31
|
-
return USAGE_ERR;
|
|
32
|
-
}
|
|
33
|
-
const outFlag = takeFlagValue(common.rest, "--out");
|
|
34
|
-
if (outFlag.error) {
|
|
35
|
-
io.stderr(`${outFlag.error}\n`);
|
|
36
|
-
return USAGE_ERR;
|
|
37
|
-
}
|
|
38
|
-
const onlyFlag = takeFlagValue(outFlag.remaining, "--only");
|
|
39
|
-
if (onlyFlag.error) {
|
|
40
|
-
io.stderr(`${onlyFlag.error}\n`);
|
|
41
|
-
return USAGE_ERR;
|
|
42
|
-
}
|
|
43
|
-
if (onlyFlag.value !== null && !(onlyFlag.value in NAMESPACE_DOWNLOADERS)) {
|
|
44
|
-
io.stderr(`--only must be one of: ${Object.keys(NAMESPACE_DOWNLOADERS).join(", ")}\n`);
|
|
45
|
-
return USAGE_ERR;
|
|
46
|
-
}
|
|
47
|
-
const namespace = onlyFlag.value;
|
|
48
|
-
const positional = onlyFlag.remaining.filter((arg) => !arg.startsWith("--"));
|
|
49
|
-
if (positional.length !== 1) {
|
|
50
|
-
io.stderr("usage: aex download <run-id> [--only outputs|events|metadata] [--out path] [common flags]\n");
|
|
51
|
-
return USAGE_ERR;
|
|
52
|
-
}
|
|
53
|
-
const runId = positional[0];
|
|
54
|
-
const http = makeHttpClient(io, common.flags);
|
|
55
|
-
const downloader = namespace ? NAMESPACE_DOWNLOADERS[namespace] : operations.download;
|
|
56
|
-
let bytes;
|
|
57
|
-
try {
|
|
58
|
-
bytes = await downloader(http, runId);
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
return emitJsonError(io, "download_failed", err.message ?? "download failed", { runId });
|
|
62
|
-
}
|
|
63
|
-
const destination = resolveDestination(io, outFlag.value, runId, namespace);
|
|
64
|
-
try {
|
|
65
|
-
await io.writeFile(destination, bytes);
|
|
66
|
-
}
|
|
67
|
-
catch (err) {
|
|
68
|
-
return emitJsonError(io, "write_failed", `failed to write archive: ${err.message}`, { destination });
|
|
69
|
-
}
|
|
70
|
-
io.stdout(JSON.stringify({ runId, namespace: namespace ?? "all", path: destination, bytes: bytes.byteLength }) + "\n");
|
|
71
|
-
return SUCCESS;
|
|
72
|
-
}
|
|
73
|
-
function resolveDestination(io, out, runId, namespace) {
|
|
74
|
-
if (out) {
|
|
75
|
-
return resolvePath(io.cwd(), out);
|
|
76
|
-
}
|
|
77
|
-
const suffix = namespace ? `-${namespace}` : "";
|
|
78
|
-
return resolvePath(io.cwd(), `aex-run-${runId}${suffix}.zip`);
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=download.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/host/download.ts"],"names":[],"mappings":"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"}
|
package/dist/host/events.d.ts
DELETED