@pipeline-builder/pipeline-manager 3.4.71 → 3.4.72
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 -1
- package/dist/agent/bootstrap.d.ts +54 -0
- package/dist/agent/bootstrap.d.ts.map +1 -0
- package/dist/agent/bootstrap.js +76 -0
- package/dist/agent/executor.d.ts +4 -1
- package/dist/agent/executor.d.ts.map +1 -1
- package/dist/agent/executor.js +7 -4
- package/dist/agent/post-steps.d.ts +55 -0
- package/dist/agent/post-steps.d.ts.map +1 -0
- package/dist/agent/post-steps.js +73 -0
- package/dist/agent/prereqs.d.ts +10 -1
- package/dist/agent/prereqs.d.ts.map +1 -1
- package/dist/agent/prereqs.js +29 -2
- package/dist/agent/targets.d.ts +39 -0
- package/dist/agent/targets.d.ts.map +1 -1
- package/dist/agent/targets.js +39 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +10 -3
- package/dist/commands/provision.d.ts +6 -5
- package/dist/commands/provision.d.ts.map +1 -1
- package/dist/commands/provision.js +172 -45
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -42,11 +42,22 @@ pipeline-manager provision --target fargate \
|
|
|
42
42
|
|
|
43
43
|
# Tear it down (AWS targets prompt you to TYPE the target id to confirm):
|
|
44
44
|
pipeline-manager provision --target fargate --teardown --execute
|
|
45
|
+
|
|
46
|
+
# Bootstrap a fresh machine — sparse-clones ONLY the deploy folders this target
|
|
47
|
+
# + options need (here: deploy/bin + deploy/local), then deploys + registers:
|
|
48
|
+
pipeline-manager provision --target local --repo --execute --yes \
|
|
49
|
+
--admin-email admin@acme.com --admin-password 's3cret'
|
|
50
|
+
|
|
51
|
+
# Add post-install loads (each also adds its folder to the sparse clone):
|
|
52
|
+
pipeline-manager provision --target local --repo --with-all --with-smoke-test --execute
|
|
45
53
|
```
|
|
46
54
|
|
|
47
55
|
- **Advise → execute → teardown.** Default is read-only. `--execute` deploys — it refuses on failed prerequisites or missing inputs, then verifies health and offers to run `init-platform`. `--teardown` removes a deployment (`local`/`minikube` stop the stack; **EC2/Fargate delete their CloudFormation stacks irreversibly** and require typing the target id to confirm — `--force` skips it for CI).
|
|
48
56
|
- **Self-healing.** On a failed deploy it matches known CloudFormation issues (cause + fix) and can auto-fix + retry a few — e.g. an existing SES identity → re-run with `--skip-ses-identity`. Gated and bounded by `--retries` (the scripts are idempotent, so a re-run resumes).
|
|
49
57
|
- **AI-optional.** Set `ANTHROPIC_API_KEY` (or `AI_PROVIDER` + its key) to parse a natural-language `--prompt` and add free-form failure diagnosis; without a key it falls back to the deterministic advisor + issue matcher.
|
|
58
|
+
- **Bootstrap a fresh machine (`--repo`).** Without a checkout, `--repo` git-clones the platform repo first, then runs from it. The clone is **sparse + partial** (`--filter=blob:none` + cone `sparse-checkout`, git ≥ 2.27 — else a full-clone fallback): it materializes only the deploy folders the selected target + options need. The common base is just `deploy/bin`; each target adds its own folder (e.g. `deploy/local`; minikube is self-contained), and each post-install load adds its folder. Re-syncs are **additive** — a single `--workdir` can accumulate multiple targets. Override with `--repo <url>`, `--ref <branch|tag>`, `--workdir <dir>`.
|
|
59
|
+
- **Run in Docker, zero host installs.** Don't want `git`/`yq`/AWS CLI on your machine? [`deploy/bin/provision-docker.sh`](../../deploy/bin/provision-docker.sh) runs `provision` inside a throwaway `node:24-slim` container, installing only the tools the chosen target needs (ec2/fargate → git + AWS CLI, mounts `~/.aws`; local → git + yq + docker CLI via the shared daemon). Host footprint = just Docker. Args pass straight through: `deploy/bin/provision-docker.sh --target fargate --repo --domain … --execute --yes`.
|
|
60
|
+
- **Post-install steps.** After deploy + health, `provision` registers the admin (non-interactive with `--admin-email`/`--admin-password`) and runs opt-in loads — `--with-plugins` (adds `deploy/plugins` + `deploy/codebuild`), `--with-compliance` (`deploy/compliance`), `--with-samples` (`deploy/samples`), or `--with-all`. Plus `--with-smoke-test` (read-only API check), `--with-events` (AWS EventBridge ingestion), and repeatable `--post-step "<cmd>"`. Default is register-only; `--no-init` skips even that. All steps are idempotent, so re-running with more options just layers them on.
|
|
50
61
|
|
|
51
62
|
The underlying `bin/setup.sh` / `bin/teardown.sh` scripts remain the source of truth and can always be run directly. Full guide: [AWS deployment → AI-assisted install](https://mwashburn160.github.io/pipeline-builder/docs/aws-deployment#ai-assisted-install-provision).
|
|
52
63
|
|
|
@@ -56,7 +67,7 @@ The underlying `bin/setup.sh` / `bin/teardown.sh` scripts remain the source of t
|
|
|
56
67
|
|
|
57
68
|
| Command | Purpose |
|
|
58
69
|
| --- | --- |
|
|
59
|
-
| `provision` | Install (or tear down) the **platform** on local/Minikube/EC2/Fargate: prereq checks + assembles the exact `bin/setup.sh` command; `--execute` runs it (gated, then verifies health + `
|
|
70
|
+
| `provision` | Install (or tear down) the **platform** on local/Minikube/EC2/Fargate: prereq checks + assembles the exact `bin/setup.sh` command; `--execute` runs it (gated, then verifies health + post-install steps). `--repo` bootstraps a fresh machine via a **sparse** clone of only the needed deploy folders; `--with-plugins`/`--with-compliance`/`--with-samples`/`--with-all`/`--with-smoke-test`/`--with-events`/`--post-step` add post-install steps; `--teardown` removes it. On failure it diagnoses + auto-fixes/retries known issues. See [Install the platform](#install-the-platform-provision). |
|
|
60
71
|
|
|
61
72
|
### Project lifecycle
|
|
62
73
|
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bootstrap the platform repo (sparse, partial clone).
|
|
3
|
+
*
|
|
4
|
+
* `provision` normally runs from a checkout of this repo, because the deploy
|
|
5
|
+
* scripts live under `deploy/`. To provision a fresh machine in one command, the
|
|
6
|
+
* operator passes `--repo`: provision git-clones the platform repo first, then
|
|
7
|
+
* runs every subsequent step (deploy, init-platform, post-steps) from the clone.
|
|
8
|
+
*
|
|
9
|
+
* A full clone is wasteful — the repo carries `packages/`, `api/`, `platform/`,
|
|
10
|
+
* `frontend/`, … none of which the deploy stack needs. So the clone is a
|
|
11
|
+
* **partial** (`--filter=blob:none`) + **cone sparse-checkout** that materializes
|
|
12
|
+
* only the deploy folders the selected target + options actually use. Pure
|
|
13
|
+
* command assembly here — no git is run; the caller executes the command via the
|
|
14
|
+
* same gated `runScript()` as the deploy.
|
|
15
|
+
*/
|
|
16
|
+
/** Canonical upstream platform repo, used when `--repo` is given without a value. */
|
|
17
|
+
export declare const DEFAULT_REPO = "https://github.com/mwashburn160/pipeline-builder.git";
|
|
18
|
+
/** Default ref to check out when bootstrapping (a branch or tag — see below). */
|
|
19
|
+
export declare const DEFAULT_REF = "main";
|
|
20
|
+
/** Default directory to clone into / run from. */
|
|
21
|
+
export declare const DEFAULT_WORKDIR = "pipeline-builder";
|
|
22
|
+
export interface BootstrapSpec {
|
|
23
|
+
/** Git URL to clone. */
|
|
24
|
+
readonly repo: string;
|
|
25
|
+
/** Branch or tag to check out. (Arbitrary SHAs may not fetch under --depth 1.) */
|
|
26
|
+
readonly ref: string;
|
|
27
|
+
/** Directory to clone into / run from (relative to the launch cwd). */
|
|
28
|
+
readonly workdir: string;
|
|
29
|
+
/** Deploy folders to materialize (cone sparse-checkout paths). */
|
|
30
|
+
readonly paths: readonly string[];
|
|
31
|
+
/** When true, skip the partial/sparse flags and do a plain full clone (git < 2.27). */
|
|
32
|
+
readonly full?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/** Fill partial bootstrap inputs with defaults; `paths` is supplied by the caller. */
|
|
35
|
+
export declare function resolveBootstrap(opts: {
|
|
36
|
+
repo?: string;
|
|
37
|
+
ref?: string;
|
|
38
|
+
workdir?: string;
|
|
39
|
+
full?: boolean;
|
|
40
|
+
}, paths: readonly string[]): BootstrapSpec;
|
|
41
|
+
/**
|
|
42
|
+
* Assemble the idempotent bootstrap command. Re-runnable, and **additive** across
|
|
43
|
+
* runs: if `<workdir>` is already a checkout it `sparse-checkout add`s the current
|
|
44
|
+
* paths (so folders from previously-provisioned targets/options are retained) and
|
|
45
|
+
* re-syncs to `<ref>`; otherwise it partial-clones, sets the cone, and checks out.
|
|
46
|
+
*
|
|
47
|
+
* - `--filter=blob:none` lazily fetches blobs; `--no-checkout` + cone sparse-checkout
|
|
48
|
+
* ⇒ only the listed deploy folders land on disk (git ≥ 2.27).
|
|
49
|
+
* - `spec.full` falls back to a plain full clone (older git).
|
|
50
|
+
* - All interpolated values are single-quoted, so a hostile repo/ref/workdir/path
|
|
51
|
+
* cannot break out of the command.
|
|
52
|
+
*/
|
|
53
|
+
export declare function bootstrapCommand(spec: BootstrapSpec): string;
|
|
54
|
+
//# sourceMappingURL=bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/agent/bootstrap.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AAEH,qFAAqF;AACrF,eAAO,MAAM,YAAY,yDAAyD,CAAC;AACnF,iFAAiF;AACjF,eAAO,MAAM,WAAW,SAAS,CAAC;AAClC,kDAAkD;AAClD,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kFAAkF;IAClF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,EACvE,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,aAAa,CAUf;AAOD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CA0B5D"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
/**
|
|
4
|
+
* Bootstrap the platform repo (sparse, partial clone).
|
|
5
|
+
*
|
|
6
|
+
* `provision` normally runs from a checkout of this repo, because the deploy
|
|
7
|
+
* scripts live under `deploy/`. To provision a fresh machine in one command, the
|
|
8
|
+
* operator passes `--repo`: provision git-clones the platform repo first, then
|
|
9
|
+
* runs every subsequent step (deploy, init-platform, post-steps) from the clone.
|
|
10
|
+
*
|
|
11
|
+
* A full clone is wasteful — the repo carries `packages/`, `api/`, `platform/`,
|
|
12
|
+
* `frontend/`, … none of which the deploy stack needs. So the clone is a
|
|
13
|
+
* **partial** (`--filter=blob:none`) + **cone sparse-checkout** that materializes
|
|
14
|
+
* only the deploy folders the selected target + options actually use. Pure
|
|
15
|
+
* command assembly here — no git is run; the caller executes the command via the
|
|
16
|
+
* same gated `runScript()` as the deploy.
|
|
17
|
+
*/
|
|
18
|
+
/** Canonical upstream platform repo, used when `--repo` is given without a value. */
|
|
19
|
+
export const DEFAULT_REPO = 'https://github.com/mwashburn160/pipeline-builder.git';
|
|
20
|
+
/** Default ref to check out when bootstrapping (a branch or tag — see below). */
|
|
21
|
+
export const DEFAULT_REF = 'main';
|
|
22
|
+
/** Default directory to clone into / run from. */
|
|
23
|
+
export const DEFAULT_WORKDIR = 'pipeline-builder';
|
|
24
|
+
/** Fill partial bootstrap inputs with defaults; `paths` is supplied by the caller. */
|
|
25
|
+
export function resolveBootstrap(opts, paths) {
|
|
26
|
+
const pick = (v, fallback) => typeof v === 'string' && v.trim() !== '' ? v.trim() : fallback;
|
|
27
|
+
return {
|
|
28
|
+
repo: pick(opts.repo, DEFAULT_REPO),
|
|
29
|
+
ref: pick(opts.ref, DEFAULT_REF),
|
|
30
|
+
workdir: pick(opts.workdir, DEFAULT_WORKDIR),
|
|
31
|
+
paths,
|
|
32
|
+
full: opts.full ?? false,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** Single-quote a value for safe shell interpolation (handles embedded quotes). */
|
|
36
|
+
function shellQuote(value) {
|
|
37
|
+
return `'${value.replace(/'/g, "'\\''")}'`;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Assemble the idempotent bootstrap command. Re-runnable, and **additive** across
|
|
41
|
+
* runs: if `<workdir>` is already a checkout it `sparse-checkout add`s the current
|
|
42
|
+
* paths (so folders from previously-provisioned targets/options are retained) and
|
|
43
|
+
* re-syncs to `<ref>`; otherwise it partial-clones, sets the cone, and checks out.
|
|
44
|
+
*
|
|
45
|
+
* - `--filter=blob:none` lazily fetches blobs; `--no-checkout` + cone sparse-checkout
|
|
46
|
+
* ⇒ only the listed deploy folders land on disk (git ≥ 2.27).
|
|
47
|
+
* - `spec.full` falls back to a plain full clone (older git).
|
|
48
|
+
* - All interpolated values are single-quoted, so a hostile repo/ref/workdir/path
|
|
49
|
+
* cannot break out of the command.
|
|
50
|
+
*/
|
|
51
|
+
export function bootstrapCommand(spec) {
|
|
52
|
+
const repo = shellQuote(spec.repo);
|
|
53
|
+
const ref = shellQuote(spec.ref);
|
|
54
|
+
const originRef = shellQuote(`origin/${spec.ref}`);
|
|
55
|
+
const dir = shellQuote(spec.workdir);
|
|
56
|
+
const paths = spec.paths.map(shellQuote).join(' ');
|
|
57
|
+
if (spec.full) {
|
|
58
|
+
// Full-clone fallback (no partial/sparse) for git < 2.27.
|
|
59
|
+
return [
|
|
60
|
+
`if [ -d ${dir}/.git ]; then`,
|
|
61
|
+
` git -C ${dir} fetch --all --tags --prune && git -C ${dir} checkout ${ref} && { git -C ${dir} reset --hard ${originRef} 2>/dev/null || git -C ${dir} reset --hard ${ref}; };`,
|
|
62
|
+
'else',
|
|
63
|
+
` git clone ${repo} ${dir} && git -C ${dir} checkout ${ref};`,
|
|
64
|
+
'fi',
|
|
65
|
+
].join('\n');
|
|
66
|
+
}
|
|
67
|
+
return [
|
|
68
|
+
`if [ -d ${dir}/.git ]; then`,
|
|
69
|
+
// Additive: keep folders from earlier targets/options already in the cone.
|
|
70
|
+
` git -C ${dir} sparse-checkout add ${paths} && git -C ${dir} fetch --filter=blob:none --depth 1 origin ${ref} && git -C ${dir} checkout ${ref} && { git -C ${dir} reset --hard ${originRef} 2>/dev/null || git -C ${dir} reset --hard ${ref}; };`,
|
|
71
|
+
'else',
|
|
72
|
+
` git clone --filter=blob:none --no-checkout --depth 1 ${repo} ${dir} && git -C ${dir} sparse-checkout set --cone ${paths} && git -C ${dir} checkout ${ref};`,
|
|
73
|
+
'fi',
|
|
74
|
+
].join('\n');
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FnZW50L2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgscUZBQXFGO0FBQ3JGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxzREFBc0QsQ0FBQztBQUNuRixpRkFBaUY7QUFDakYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUNsQyxrREFBa0Q7QUFDbEQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDO0FBZWxELHNGQUFzRjtBQUN0RixNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLElBQXVFLEVBQ3ZFLEtBQXdCO0lBRXhCLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBcUIsRUFBRSxRQUFnQixFQUFVLEVBQUUsQ0FDL0QsT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ2pFLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDO1FBQ25DLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUM7UUFDaEMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQztRQUM1QyxLQUFLO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksS0FBSztLQUN6QixDQUFDO0FBQ0osQ0FBQztBQUVELG1GQUFtRjtBQUNuRixTQUFTLFVBQVUsQ0FBQyxLQUFhO0lBQy9CLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO0FBQzdDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFtQjtJQUNsRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFVBQVUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbkQsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFbkQsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCwwREFBMEQ7UUFDMUQsT0FBTztZQUNMLFdBQVcsR0FBRyxlQUFlO1lBQzdCLFlBQVksR0FBRyx5Q0FBeUMsR0FBRyxhQUFhLEdBQUcsZ0JBQWdCLEdBQUcsaUJBQWlCLFNBQVMsMEJBQTBCLEdBQUcsaUJBQWlCLEdBQUcsTUFBTTtZQUMvSyxNQUFNO1lBQ04sZUFBZSxJQUFJLElBQUksR0FBRyxjQUFjLEdBQUcsYUFBYSxHQUFHLEdBQUc7WUFDOUQsSUFBSTtTQUNMLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU87UUFDTCxXQUFXLEdBQUcsZUFBZTtRQUM3QiwyRUFBMkU7UUFDM0UsWUFBWSxHQUFHLHdCQUF3QixLQUFLLGNBQWMsR0FBRyw4Q0FBOEMsR0FBRyxjQUFjLEdBQUcsYUFBYSxHQUFHLGdCQUFnQixHQUFHLGlCQUFpQixTQUFTLDBCQUEwQixHQUFHLGlCQUFpQixHQUFHLE1BQU07UUFDblAsTUFBTTtRQUNOLDBEQUEwRCxJQUFJLElBQUksR0FBRyxjQUFjLEdBQUcsK0JBQStCLEtBQUssY0FBYyxHQUFHLGFBQWEsR0FBRyxHQUFHO1FBQzlKLElBQUk7S0FDTCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBCb290c3RyYXAgdGhlIHBsYXRmb3JtIHJlcG8gKHNwYXJzZSwgcGFydGlhbCBjbG9uZSkuXG4gKlxuICogYHByb3Zpc2lvbmAgbm9ybWFsbHkgcnVucyBmcm9tIGEgY2hlY2tvdXQgb2YgdGhpcyByZXBvLCBiZWNhdXNlIHRoZSBkZXBsb3lcbiAqIHNjcmlwdHMgbGl2ZSB1bmRlciBgZGVwbG95L2AuIFRvIHByb3Zpc2lvbiBhIGZyZXNoIG1hY2hpbmUgaW4gb25lIGNvbW1hbmQsIHRoZVxuICogb3BlcmF0b3IgcGFzc2VzIGAtLXJlcG9gOiBwcm92aXNpb24gZ2l0LWNsb25lcyB0aGUgcGxhdGZvcm0gcmVwbyBmaXJzdCwgdGhlblxuICogcnVucyBldmVyeSBzdWJzZXF1ZW50IHN0ZXAgKGRlcGxveSwgaW5pdC1wbGF0Zm9ybSwgcG9zdC1zdGVwcykgZnJvbSB0aGUgY2xvbmUuXG4gKlxuICogQSBmdWxsIGNsb25lIGlzIHdhc3RlZnVsIOKAlCB0aGUgcmVwbyBjYXJyaWVzIGBwYWNrYWdlcy9gLCBgYXBpL2AsIGBwbGF0Zm9ybS9gLFxuICogYGZyb250ZW5kL2AsIOKApiBub25lIG9mIHdoaWNoIHRoZSBkZXBsb3kgc3RhY2sgbmVlZHMuIFNvIHRoZSBjbG9uZSBpcyBhXG4gKiAqKnBhcnRpYWwqKiAoYC0tZmlsdGVyPWJsb2I6bm9uZWApICsgKipjb25lIHNwYXJzZS1jaGVja291dCoqIHRoYXQgbWF0ZXJpYWxpemVzXG4gKiBvbmx5IHRoZSBkZXBsb3kgZm9sZGVycyB0aGUgc2VsZWN0ZWQgdGFyZ2V0ICsgb3B0aW9ucyBhY3R1YWxseSB1c2UuIFB1cmVcbiAqIGNvbW1hbmQgYXNzZW1ibHkgaGVyZSDigJQgbm8gZ2l0IGlzIHJ1bjsgdGhlIGNhbGxlciBleGVjdXRlcyB0aGUgY29tbWFuZCB2aWEgdGhlXG4gKiBzYW1lIGdhdGVkIGBydW5TY3JpcHQoKWAgYXMgdGhlIGRlcGxveS5cbiAqL1xuXG4vKiogQ2Fub25pY2FsIHVwc3RyZWFtIHBsYXRmb3JtIHJlcG8sIHVzZWQgd2hlbiBgLS1yZXBvYCBpcyBnaXZlbiB3aXRob3V0IGEgdmFsdWUuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9SRVBPID0gJ2h0dHBzOi8vZ2l0aHViLmNvbS9td2FzaGJ1cm4xNjAvcGlwZWxpbmUtYnVpbGRlci5naXQnO1xuLyoqIERlZmF1bHQgcmVmIHRvIGNoZWNrIG91dCB3aGVuIGJvb3RzdHJhcHBpbmcgKGEgYnJhbmNoIG9yIHRhZyDigJQgc2VlIGJlbG93KS4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFRiA9ICdtYWluJztcbi8qKiBEZWZhdWx0IGRpcmVjdG9yeSB0byBjbG9uZSBpbnRvIC8gcnVuIGZyb20uICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9XT1JLRElSID0gJ3BpcGVsaW5lLWJ1aWxkZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJvb3RzdHJhcFNwZWMge1xuICAvKiogR2l0IFVSTCB0byBjbG9uZS4gKi9cbiAgcmVhZG9ubHkgcmVwbzogc3RyaW5nO1xuICAvKiogQnJhbmNoIG9yIHRhZyB0byBjaGVjayBvdXQuIChBcmJpdHJhcnkgU0hBcyBtYXkgbm90IGZldGNoIHVuZGVyIC0tZGVwdGggMS4pICovXG4gIHJlYWRvbmx5IHJlZjogc3RyaW5nO1xuICAvKiogRGlyZWN0b3J5IHRvIGNsb25lIGludG8gLyBydW4gZnJvbSAocmVsYXRpdmUgdG8gdGhlIGxhdW5jaCBjd2QpLiAqL1xuICByZWFkb25seSB3b3JrZGlyOiBzdHJpbmc7XG4gIC8qKiBEZXBsb3kgZm9sZGVycyB0byBtYXRlcmlhbGl6ZSAoY29uZSBzcGFyc2UtY2hlY2tvdXQgcGF0aHMpLiAqL1xuICByZWFkb25seSBwYXRoczogcmVhZG9ubHkgc3RyaW5nW107XG4gIC8qKiBXaGVuIHRydWUsIHNraXAgdGhlIHBhcnRpYWwvc3BhcnNlIGZsYWdzIGFuZCBkbyBhIHBsYWluIGZ1bGwgY2xvbmUgKGdpdCA8IDIuMjcpLiAqL1xuICByZWFkb25seSBmdWxsPzogYm9vbGVhbjtcbn1cblxuLyoqIEZpbGwgcGFydGlhbCBib290c3RyYXAgaW5wdXRzIHdpdGggZGVmYXVsdHM7IGBwYXRoc2AgaXMgc3VwcGxpZWQgYnkgdGhlIGNhbGxlci4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQm9vdHN0cmFwKFxuICBvcHRzOiB7IHJlcG8/OiBzdHJpbmc7IHJlZj86IHN0cmluZzsgd29ya2Rpcj86IHN0cmluZzsgZnVsbD86IGJvb2xlYW4gfSxcbiAgcGF0aHM6IHJlYWRvbmx5IHN0cmluZ1tdLFxuKTogQm9vdHN0cmFwU3BlYyB7XG4gIGNvbnN0IHBpY2sgPSAodjogc3RyaW5nIHwgdW5kZWZpbmVkLCBmYWxsYmFjazogc3RyaW5nKTogc3RyaW5nID0+XG4gICAgdHlwZW9mIHYgPT09ICdzdHJpbmcnICYmIHYudHJpbSgpICE9PSAnJyA/IHYudHJpbSgpIDogZmFsbGJhY2s7XG4gIHJldHVybiB7XG4gICAgcmVwbzogcGljayhvcHRzLnJlcG8sIERFRkFVTFRfUkVQTyksXG4gICAgcmVmOiBwaWNrKG9wdHMucmVmLCBERUZBVUxUX1JFRiksXG4gICAgd29ya2RpcjogcGljayhvcHRzLndvcmtkaXIsIERFRkFVTFRfV09SS0RJUiksXG4gICAgcGF0aHMsXG4gICAgZnVsbDogb3B0cy5mdWxsID8/IGZhbHNlLFxuICB9O1xufVxuXG4vKiogU2luZ2xlLXF1b3RlIGEgdmFsdWUgZm9yIHNhZmUgc2hlbGwgaW50ZXJwb2xhdGlvbiAoaGFuZGxlcyBlbWJlZGRlZCBxdW90ZXMpLiAqL1xuZnVuY3Rpb24gc2hlbGxRdW90ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAnJHt2YWx1ZS5yZXBsYWNlKC8nL2csIFwiJ1xcXFwnJ1wiKX0nYDtcbn1cblxuLyoqXG4gKiBBc3NlbWJsZSB0aGUgaWRlbXBvdGVudCBib290c3RyYXAgY29tbWFuZC4gUmUtcnVubmFibGUsIGFuZCAqKmFkZGl0aXZlKiogYWNyb3NzXG4gKiBydW5zOiBpZiBgPHdvcmtkaXI+YCBpcyBhbHJlYWR5IGEgY2hlY2tvdXQgaXQgYHNwYXJzZS1jaGVja291dCBhZGRgcyB0aGUgY3VycmVudFxuICogcGF0aHMgKHNvIGZvbGRlcnMgZnJvbSBwcmV2aW91c2x5LXByb3Zpc2lvbmVkIHRhcmdldHMvb3B0aW9ucyBhcmUgcmV0YWluZWQpIGFuZFxuICogcmUtc3luY3MgdG8gYDxyZWY+YDsgb3RoZXJ3aXNlIGl0IHBhcnRpYWwtY2xvbmVzLCBzZXRzIHRoZSBjb25lLCBhbmQgY2hlY2tzIG91dC5cbiAqXG4gKiAtIGAtLWZpbHRlcj1ibG9iOm5vbmVgIGxhemlseSBmZXRjaGVzIGJsb2JzOyBgLS1uby1jaGVja291dGAgKyBjb25lIHNwYXJzZS1jaGVja291dFxuICogICDih5Igb25seSB0aGUgbGlzdGVkIGRlcGxveSBmb2xkZXJzIGxhbmQgb24gZGlzayAoZ2l0IOKJpSAyLjI3KS5cbiAqIC0gYHNwZWMuZnVsbGAgZmFsbHMgYmFjayB0byBhIHBsYWluIGZ1bGwgY2xvbmUgKG9sZGVyIGdpdCkuXG4gKiAtIEFsbCBpbnRlcnBvbGF0ZWQgdmFsdWVzIGFyZSBzaW5nbGUtcXVvdGVkLCBzbyBhIGhvc3RpbGUgcmVwby9yZWYvd29ya2Rpci9wYXRoXG4gKiAgIGNhbm5vdCBicmVhayBvdXQgb2YgdGhlIGNvbW1hbmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBib290c3RyYXBDb21tYW5kKHNwZWM6IEJvb3RzdHJhcFNwZWMpOiBzdHJpbmcge1xuICBjb25zdCByZXBvID0gc2hlbGxRdW90ZShzcGVjLnJlcG8pO1xuICBjb25zdCByZWYgPSBzaGVsbFF1b3RlKHNwZWMucmVmKTtcbiAgY29uc3Qgb3JpZ2luUmVmID0gc2hlbGxRdW90ZShgb3JpZ2luLyR7c3BlYy5yZWZ9YCk7XG4gIGNvbnN0IGRpciA9IHNoZWxsUXVvdGUoc3BlYy53b3JrZGlyKTtcbiAgY29uc3QgcGF0aHMgPSBzcGVjLnBhdGhzLm1hcChzaGVsbFF1b3RlKS5qb2luKCcgJyk7XG5cbiAgaWYgKHNwZWMuZnVsbCkge1xuICAgIC8vIEZ1bGwtY2xvbmUgZmFsbGJhY2sgKG5vIHBhcnRpYWwvc3BhcnNlKSBmb3IgZ2l0IDwgMi4yNy5cbiAgICByZXR1cm4gW1xuICAgICAgYGlmIFsgLWQgJHtkaXJ9Ly5naXQgXTsgdGhlbmAsXG4gICAgICBgICBnaXQgLUMgJHtkaXJ9IGZldGNoIC0tYWxsIC0tdGFncyAtLXBydW5lICYmIGdpdCAtQyAke2Rpcn0gY2hlY2tvdXQgJHtyZWZ9ICYmIHsgZ2l0IC1DICR7ZGlyfSByZXNldCAtLWhhcmQgJHtvcmlnaW5SZWZ9IDI+L2Rldi9udWxsIHx8IGdpdCAtQyAke2Rpcn0gcmVzZXQgLS1oYXJkICR7cmVmfTsgfTtgLFxuICAgICAgJ2Vsc2UnLFxuICAgICAgYCAgZ2l0IGNsb25lICR7cmVwb30gJHtkaXJ9ICYmIGdpdCAtQyAke2Rpcn0gY2hlY2tvdXQgJHtyZWZ9O2AsXG4gICAgICAnZmknLFxuICAgIF0uam9pbignXFxuJyk7XG4gIH1cblxuICByZXR1cm4gW1xuICAgIGBpZiBbIC1kICR7ZGlyfS8uZ2l0IF07IHRoZW5gLFxuICAgIC8vIEFkZGl0aXZlOiBrZWVwIGZvbGRlcnMgZnJvbSBlYXJsaWVyIHRhcmdldHMvb3B0aW9ucyBhbHJlYWR5IGluIHRoZSBjb25lLlxuICAgIGAgIGdpdCAtQyAke2Rpcn0gc3BhcnNlLWNoZWNrb3V0IGFkZCAke3BhdGhzfSAmJiBnaXQgLUMgJHtkaXJ9IGZldGNoIC0tZmlsdGVyPWJsb2I6bm9uZSAtLWRlcHRoIDEgb3JpZ2luICR7cmVmfSAmJiBnaXQgLUMgJHtkaXJ9IGNoZWNrb3V0ICR7cmVmfSAmJiB7IGdpdCAtQyAke2Rpcn0gcmVzZXQgLS1oYXJkICR7b3JpZ2luUmVmfSAyPi9kZXYvbnVsbCB8fCBnaXQgLUMgJHtkaXJ9IHJlc2V0IC0taGFyZCAke3JlZn07IH07YCxcbiAgICAnZWxzZScsXG4gICAgYCAgZ2l0IGNsb25lIC0tZmlsdGVyPWJsb2I6bm9uZSAtLW5vLWNoZWNrb3V0IC0tZGVwdGggMSAke3JlcG99ICR7ZGlyfSAmJiBnaXQgLUMgJHtkaXJ9IHNwYXJzZS1jaGVja291dCBzZXQgLS1jb25lICR7cGF0aHN9ICYmIGdpdCAtQyAke2Rpcn0gY2hlY2tvdXQgJHtyZWZ9O2AsXG4gICAgJ2ZpJyxcbiAgXS5qb2luKCdcXG4nKTtcbn1cbiJdfQ==
|
package/dist/agent/executor.d.ts
CHANGED
|
@@ -16,9 +16,12 @@ export interface RunResult {
|
|
|
16
16
|
/**
|
|
17
17
|
* Run a shell command from `cwd`, streaming to the terminal. With `capture`,
|
|
18
18
|
* stdout/stderr are tee'd and the tail retained (for diagnosis); without it,
|
|
19
|
-
* stdio is fully inherited so interactive prompts work (init-platform).
|
|
19
|
+
* stdio is fully inherited so interactive prompts work (init-platform). `env` is
|
|
20
|
+
* merged over `process.env` for the child (e.g. the register step's load flags
|
|
21
|
+
* and admin creds — kept out of the displayed command so secrets never print).
|
|
20
22
|
*/
|
|
21
23
|
export declare function runScript(command: string, cwd: string, opts?: {
|
|
22
24
|
capture?: boolean;
|
|
25
|
+
env?: Record<string, string>;
|
|
23
26
|
}): Promise<RunResult>;
|
|
24
27
|
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/agent/executor.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,WAAW,EAAE,EAC/B,OAAO,EAAE,SAAS,SAAS,EAAE,GAC5B,MAAM,GAAG,IAAI,CAKf;AAED,gGAAgG;AAChG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/agent/executor.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,WAAW,EAAE,EAC/B,OAAO,EAAE,SAAS,SAAS,EAAE,GAC5B,MAAM,GAAG,IAAI,CAKf;AAED,gGAAgG;AAChG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAO,GAC7D,OAAO,CAAC,SAAS,CAAC,CAoBpB"}
|
package/dist/agent/executor.js
CHANGED
|
@@ -29,17 +29,20 @@ export function entrypointExists(target, cwd) {
|
|
|
29
29
|
/**
|
|
30
30
|
* Run a shell command from `cwd`, streaming to the terminal. With `capture`,
|
|
31
31
|
* stdout/stderr are tee'd and the tail retained (for diagnosis); without it,
|
|
32
|
-
* stdio is fully inherited so interactive prompts work (init-platform).
|
|
32
|
+
* stdio is fully inherited so interactive prompts work (init-platform). `env` is
|
|
33
|
+
* merged over `process.env` for the child (e.g. the register step's load flags
|
|
34
|
+
* and admin creds — kept out of the displayed command so secrets never print).
|
|
33
35
|
*/
|
|
34
36
|
export function runScript(command, cwd, opts = {}) {
|
|
37
|
+
const childEnv = opts.env ? { ...process.env, ...opts.env } : process.env;
|
|
35
38
|
return new Promise((resolve) => {
|
|
36
39
|
if (!opts.capture) {
|
|
37
|
-
const child = spawn('bash', ['-lc', command], { cwd, stdio: 'inherit' });
|
|
40
|
+
const child = spawn('bash', ['-lc', command], { cwd, stdio: 'inherit', env: childEnv });
|
|
38
41
|
child.on('close', (code) => resolve({ code: code ?? 1, tail: '' }));
|
|
39
42
|
child.on('error', () => resolve({ code: 1, tail: '' }));
|
|
40
43
|
return;
|
|
41
44
|
}
|
|
42
|
-
const child = spawn('bash', ['-lc', command], { cwd, stdio: ['inherit', 'pipe', 'pipe'] });
|
|
45
|
+
const child = spawn('bash', ['-lc', command], { cwd, stdio: ['inherit', 'pipe', 'pipe'], env: childEnv });
|
|
43
46
|
let tail = '';
|
|
44
47
|
const cap = (chunk) => {
|
|
45
48
|
process.stdout.write(chunk);
|
|
@@ -51,4 +54,4 @@ export function runScript(command, cwd, opts = {}) {
|
|
|
51
54
|
child.on('error', (err) => resolve({ code: 1, tail: `${tail}\n${String(err)}` }));
|
|
52
55
|
});
|
|
53
56
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWdlbnQvZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7R0FLRztBQUVILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQztBQUNoQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTVCOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE9BQStCLEVBQy9CLE9BQTZCO0lBRTdCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUQsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUM7UUFBRSxPQUFPLHdCQUF3QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDN0YsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUM7UUFBRSxPQUFPLDRCQUE0QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQzFHLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELGdHQUFnRztBQUNoRyxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBa0IsRUFBRSxHQUFXO0lBQzlELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBUUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsT0FBZSxFQUNmLEdBQVcsRUFDWCxPQUE0RCxFQUFFO0lBRTlELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQzFFLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUN4RixLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwRSxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEQsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDMUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFhLEVBQVEsRUFBRTtZQUNsQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDO1FBQ0YsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5QixLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksS0FBSyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBHYXRlZCwgb3V0LW9mLWxvb3AgZXhlY3V0aW9uLiBUaGUgZGVwbG95IHJ1bnMgYXMgYSBjaGlsZCBwcm9jZXNzIHN0cmVhbWluZyB0b1xuICogdGhlIFRFUk1JTkFMIChuZXZlciBiYWNrIGludG8gdGhlIG1vZGVsIGxvb3Ag4oCUIGEgMTUtMzAgbWluIGFwcGx5IG11c3Qgbm90IGhvbGRcbiAqIGFuIExMTSB0dXJuIG9wZW4pLiBGb3IgdGhlIGRlcGxveSB3ZSBhbHNvIGNhcHR1cmUgYSB0YWlsIG9mIG91dHB1dCBzbyBhIGZhaWx1cmVcbiAqIGNhbiBiZSBkaWFnbm9zZWQ7IGludGVyYWN0aXZlIHN0ZXBzIChpbml0LXBsYXRmb3JtKSBnZXQgZnVsbCBzdGRpbyBwYXNzdGhyb3VnaC5cbiAqL1xuXG5pbXBvcnQgeyBzcGF3biB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ2ZzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgUHJlcmVxQ2hlY2sgfSBmcm9tICcuL3ByZXJlcXMuanMnO1xuaW1wb3J0IHR5cGUgeyBJbnB1dFNwZWMsIFRhcmdldFNwZWMgfSBmcm9tICcuL3RhcmdldHMuanMnO1xuXG4vKipcbiAqIERlY2lkZSB3aGV0aGVyIGV4ZWN1dGlvbiBpcyBhbGxvd2VkLiBSZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgYmxvY2sgcmVhc29uLCBvclxuICogbnVsbCB3aGVuIGl0IGlzIHNhZmUgdG8gcHJvY2VlZC4gRGV0ZXJtaW5pc3RpYyDigJQgdGhlIGdhdGUgaXMgbmV2ZXIgdGhlIG1vZGVsJ3NcbiAqIGNhbGw7IGEgZmFpbGluZyBwcmVyZXEgb3IgYSBtaXNzaW5nIHJlcXVpcmVkIGlucHV0IGhhcmQtYmxvY2tzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlY3V0aW9uQmxvY2tlZChcbiAgcHJlcmVxczogcmVhZG9ubHkgUHJlcmVxQ2hlY2tbXSxcbiAgbWlzc2luZzogcmVhZG9ubHkgSW5wdXRTcGVjW10sXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgZmFpbGVkID0gcHJlcmVxcy5maWx0ZXIoKGMpID0+IGMucmVxdWlyZWQgJiYgIWMub2spO1xuICBpZiAoZmFpbGVkLmxlbmd0aCA+IDApIHJldHVybiBgdW5tZXQgcHJlcmVxdWlzaXRlczogJHtmYWlsZWQubWFwKChjKSA9PiBjLm5hbWUpLmpvaW4oJywgJyl9YDtcbiAgaWYgKG1pc3NpbmcubGVuZ3RoID4gMCkgcmV0dXJuIGBtaXNzaW5nIHJlcXVpcmVkIGlucHV0czogJHttaXNzaW5nLm1hcCgobSkgPT4gYC0tJHttLmZsYWd9YCkuam9pbignLCAnKX1gO1xuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqIFRydWUgd2hlbiB0aGUgdGFyZ2V0J3MgZW50cnlwb2ludCBleGlzdHMgcmVsYXRpdmUgdG8gYGN3ZGAgKGkuZS4gcnVuIGZyb20gdGhlIHJlcG8gcm9vdCkuICovXG5leHBvcnQgZnVuY3Rpb24gZW50cnlwb2ludEV4aXN0cyh0YXJnZXQ6IFRhcmdldFNwZWMsIGN3ZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBleGlzdHNTeW5jKGpvaW4oY3dkLCB0YXJnZXQuZGlyLCB0YXJnZXQuZW50cnlwb2ludCkpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1blJlc3VsdCB7XG4gIHJlYWRvbmx5IGNvZGU6IG51bWJlcjtcbiAgLyoqIExhc3QgfjggS0Igb2YgY29tYmluZWQgb3V0cHV0IChjYXB0dXJlIG1vZGUgb25seSkg4oCUIHVzZWQgZm9yIGZhaWx1cmUgZGlhZ25vc2lzLiAqL1xuICByZWFkb25seSB0YWlsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUnVuIGEgc2hlbGwgY29tbWFuZCBmcm9tIGBjd2RgLCBzdHJlYW1pbmcgdG8gdGhlIHRlcm1pbmFsLiBXaXRoIGBjYXB0dXJlYCxcbiAqIHN0ZG91dC9zdGRlcnIgYXJlIHRlZSdkIGFuZCB0aGUgdGFpbCByZXRhaW5lZCAoZm9yIGRpYWdub3Npcyk7IHdpdGhvdXQgaXQsXG4gKiBzdGRpbyBpcyBmdWxseSBpbmhlcml0ZWQgc28gaW50ZXJhY3RpdmUgcHJvbXB0cyB3b3JrIChpbml0LXBsYXRmb3JtKS4gYGVudmAgaXNcbiAqIG1lcmdlZCBvdmVyIGBwcm9jZXNzLmVudmAgZm9yIHRoZSBjaGlsZCAoZS5nLiB0aGUgcmVnaXN0ZXIgc3RlcCdzIGxvYWQgZmxhZ3NcbiAqIGFuZCBhZG1pbiBjcmVkcyDigJQga2VwdCBvdXQgb2YgdGhlIGRpc3BsYXllZCBjb21tYW5kIHNvIHNlY3JldHMgbmV2ZXIgcHJpbnQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcnVuU2NyaXB0KFxuICBjb21tYW5kOiBzdHJpbmcsXG4gIGN3ZDogc3RyaW5nLFxuICBvcHRzOiB7IGNhcHR1cmU/OiBib29sZWFuOyBlbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IH0gPSB7fSxcbik6IFByb21pc2U8UnVuUmVzdWx0PiB7XG4gIGNvbnN0IGNoaWxkRW52ID0gb3B0cy5lbnYgPyB7IC4uLnByb2Nlc3MuZW52LCAuLi5vcHRzLmVudiB9IDogcHJvY2Vzcy5lbnY7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGlmICghb3B0cy5jYXB0dXJlKSB7XG4gICAgICBjb25zdCBjaGlsZCA9IHNwYXduKCdiYXNoJywgWyctbGMnLCBjb21tYW5kXSwgeyBjd2QsIHN0ZGlvOiAnaW5oZXJpdCcsIGVudjogY2hpbGRFbnYgfSk7XG4gICAgICBjaGlsZC5vbignY2xvc2UnLCAoY29kZSkgPT4gcmVzb2x2ZSh7IGNvZGU6IGNvZGUgPz8gMSwgdGFpbDogJycgfSkpO1xuICAgICAgY2hpbGQub24oJ2Vycm9yJywgKCkgPT4gcmVzb2x2ZSh7IGNvZGU6IDEsIHRhaWw6ICcnIH0pKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY2hpbGQgPSBzcGF3bignYmFzaCcsIFsnLWxjJywgY29tbWFuZF0sIHsgY3dkLCBzdGRpbzogWydpbmhlcml0JywgJ3BpcGUnLCAncGlwZSddLCBlbnY6IGNoaWxkRW52IH0pO1xuICAgIGxldCB0YWlsID0gJyc7XG4gICAgY29uc3QgY2FwID0gKGNodW5rOiBCdWZmZXIpOiB2b2lkID0+IHtcbiAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGNodW5rKTtcbiAgICAgIHRhaWwgPSAodGFpbCArIGNodW5rLnRvU3RyaW5nKCkpLnNsaWNlKC04MDAwKTtcbiAgICB9O1xuICAgIGNoaWxkLnN0ZG91dD8ub24oJ2RhdGEnLCBjYXApO1xuICAgIGNoaWxkLnN0ZGVycj8ub24oJ2RhdGEnLCBjYXApO1xuICAgIGNoaWxkLm9uKCdjbG9zZScsIChjb2RlKSA9PiByZXNvbHZlKHsgY29kZTogY29kZSA/PyAxLCB0YWlsIH0pKTtcbiAgICBjaGlsZC5vbignZXJyb3InLCAoZXJyKSA9PiByZXNvbHZlKHsgY29kZTogMSwgdGFpbDogYCR7dGFpbH1cXG4ke1N0cmluZyhlcnIpfWAgfSkpO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Post-install steps.
|
|
3
|
+
*
|
|
4
|
+
* After the platform is deployed + health-checked, provision runs an ordered set
|
|
5
|
+
* of post-install steps: **register** (the admin, via `init-platform.sh`, driven
|
|
6
|
+
* non-interactively by env — which also performs any opt-in plugin/compliance/
|
|
7
|
+
* sample loads), then an optional **smoke-test**, **events** (AWS), and any
|
|
8
|
+
* operator **--post-step** commands. Pure, deterministic assembly here — provision
|
|
9
|
+
* runs each via the same gated `runScript()` as the deploy.
|
|
10
|
+
*/
|
|
11
|
+
import { type TargetId } from './targets.js';
|
|
12
|
+
export interface PostStep {
|
|
13
|
+
/** Stable id (`register` / `smoke-test` / `events`) or `custom-N`. */
|
|
14
|
+
readonly id: string;
|
|
15
|
+
/** Human label shown in the plan. */
|
|
16
|
+
readonly label: string;
|
|
17
|
+
/** The exact command to run. */
|
|
18
|
+
readonly command: string;
|
|
19
|
+
/** Non-secret env applied to the child for this step (e.g. LOAD_* for register). */
|
|
20
|
+
readonly env?: Readonly<Record<string, string>>;
|
|
21
|
+
}
|
|
22
|
+
/** A requested step that doesn't apply to the chosen target. */
|
|
23
|
+
export interface SkippedStep {
|
|
24
|
+
readonly id: string;
|
|
25
|
+
readonly reason: string;
|
|
26
|
+
}
|
|
27
|
+
export interface ResolvedPostSteps {
|
|
28
|
+
readonly steps: PostStep[];
|
|
29
|
+
readonly skipped: SkippedStep[];
|
|
30
|
+
}
|
|
31
|
+
export interface PostStepOptions {
|
|
32
|
+
readonly target: TargetId;
|
|
33
|
+
/** Base URL of the deployed platform (from deriveHealthUrl), or null. */
|
|
34
|
+
readonly url: string | null;
|
|
35
|
+
/** AWS region (ec2/fargate), if provided. */
|
|
36
|
+
readonly region?: string;
|
|
37
|
+
/** Load-step ids enabled via `--with-*` (drive init-platform's LOAD_* envs + sparse paths). */
|
|
38
|
+
readonly enabledLoadIds: readonly string[];
|
|
39
|
+
/** `--build-bootstrap`: build the CodeBuild bootstrap image during register. */
|
|
40
|
+
readonly buildBootstrap: boolean;
|
|
41
|
+
/** False when `--no-init` — skips the register step entirely. */
|
|
42
|
+
readonly init: boolean;
|
|
43
|
+
readonly smokeTest: boolean;
|
|
44
|
+
readonly events: boolean;
|
|
45
|
+
/** Raw operator `--post-step` commands, in order. */
|
|
46
|
+
readonly steps: readonly string[];
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Resolve the ordered post-install step list: register → smoke-test → events →
|
|
50
|
+
* custom. `register` carries the load + BUILD_BOOTSTRAP env so init-platform runs
|
|
51
|
+
* the enabled loads non-interactively. Requested-but-inapplicable steps land in
|
|
52
|
+
* `skipped` so the caller can warn rather than silently drop them.
|
|
53
|
+
*/
|
|
54
|
+
export declare function resolvePostSteps(opts: PostStepOptions): ResolvedPostSteps;
|
|
55
|
+
//# sourceMappingURL=post-steps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-steps.d.ts","sourceRoot":"","sources":["../../src/agent/post-steps.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AAEH,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,WAAW,QAAQ;IACvB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oFAAoF;IACpF,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACjD;AAED,gEAAgE;AAChE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,+FAA+F;IAC/F,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,gFAAgF;IAChF,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AASD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,iBAAiB,CA+CzE"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
/**
|
|
4
|
+
* Post-install steps.
|
|
5
|
+
*
|
|
6
|
+
* After the platform is deployed + health-checked, provision runs an ordered set
|
|
7
|
+
* of post-install steps: **register** (the admin, via `init-platform.sh`, driven
|
|
8
|
+
* non-interactively by env — which also performs any opt-in plugin/compliance/
|
|
9
|
+
* sample loads), then an optional **smoke-test**, **events** (AWS), and any
|
|
10
|
+
* operator **--post-step** commands. Pure, deterministic assembly here — provision
|
|
11
|
+
* runs each via the same gated `runScript()` as the deploy.
|
|
12
|
+
*/
|
|
13
|
+
import { LOAD_STEPS } from './targets.js';
|
|
14
|
+
/** Compute the non-interactive env that drives init-platform's prompts. */
|
|
15
|
+
function registerEnv(enabledLoadIds, buildBootstrap) {
|
|
16
|
+
const env = { BUILD_BOOTSTRAP: buildBootstrap ? 'y' : 'n' };
|
|
17
|
+
for (const step of LOAD_STEPS)
|
|
18
|
+
env[step.env] = enabledLoadIds.includes(step.id) ? 'y' : 'n';
|
|
19
|
+
return env;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Resolve the ordered post-install step list: register → smoke-test → events →
|
|
23
|
+
* custom. `register` carries the load + BUILD_BOOTSTRAP env so init-platform runs
|
|
24
|
+
* the enabled loads non-interactively. Requested-but-inapplicable steps land in
|
|
25
|
+
* `skipped` so the caller can warn rather than silently drop them.
|
|
26
|
+
*/
|
|
27
|
+
export function resolvePostSteps(opts) {
|
|
28
|
+
const steps = [];
|
|
29
|
+
const skipped = [];
|
|
30
|
+
if (opts.init) {
|
|
31
|
+
const enabled = LOAD_STEPS.filter((s) => opts.enabledLoadIds.includes(s.id)).map((s) => s.id);
|
|
32
|
+
const loads = enabled.length > 0 ? ` (+ ${enabled.join(', ')})` : '';
|
|
33
|
+
steps.push({
|
|
34
|
+
id: 'register',
|
|
35
|
+
label: `Register admin${loads}`,
|
|
36
|
+
command: `./deploy/bin/init-platform.sh ${opts.target}`,
|
|
37
|
+
env: registerEnv(opts.enabledLoadIds, opts.buildBootstrap),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
if (opts.smokeTest) {
|
|
41
|
+
if (opts.url) {
|
|
42
|
+
// -k: local/minikube front a self-signed cert; harmless against real-cert AWS URLs.
|
|
43
|
+
steps.push({
|
|
44
|
+
id: 'smoke-test',
|
|
45
|
+
label: 'Smoke test — read-only API check',
|
|
46
|
+
command: `curl -fsSk ${opts.url}/api/version && echo 'smoke-test: API reachable'`,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
skipped.push({ id: 'smoke-test', reason: 'no platform URL to probe for this target' });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (opts.events) {
|
|
54
|
+
if (opts.target === 'ec2' || opts.target === 'fargate') {
|
|
55
|
+
// Requires the pipeline-manager CLI on PATH; reads PLATFORM_BASE_URL /
|
|
56
|
+
// PLATFORM_SECRET_NAME from the environment (the command validates them).
|
|
57
|
+
steps.push({
|
|
58
|
+
id: 'events',
|
|
59
|
+
label: 'EventBridge ingestion (setup-events)',
|
|
60
|
+
command: `pipeline-manager setup-events${opts.region ? ` --region ${opts.region}` : ''}`,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
skipped.push({ id: 'events', reason: `not applicable to target '${opts.target}' (ec2/fargate only)` });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
opts.steps.forEach((command, i) => {
|
|
68
|
+
if (command.trim() !== '')
|
|
69
|
+
steps.push({ id: `custom-${i + 1}`, label: `Custom step ${i + 1}`, command });
|
|
70
|
+
});
|
|
71
|
+
return { steps, skipped };
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdC1zdGVwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZ2VudC9wb3N0LXN0ZXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7OztHQVNHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBaUIsTUFBTSxjQUFjLENBQUM7QUEwQ3pELDJFQUEyRTtBQUMzRSxTQUFTLFdBQVcsQ0FBQyxjQUFpQyxFQUFFLGNBQXVCO0lBQzdFLE1BQU0sR0FBRyxHQUEyQixFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDcEYsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVO1FBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDNUYsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBcUI7SUFDcEQsTUFBTSxLQUFLLEdBQWUsRUFBRSxDQUFDO0lBQzdCLE1BQU0sT0FBTyxHQUFrQixFQUFFLENBQUM7SUFFbEMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5RixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyRSxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ1QsRUFBRSxFQUFFLFVBQVU7WUFDZCxLQUFLLEVBQUUsaUJBQWlCLEtBQUssRUFBRTtZQUMvQixPQUFPLEVBQUUsaUNBQWlDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDdkQsR0FBRyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDM0QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2Isb0ZBQW9GO1lBQ3BGLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsRUFBRSxFQUFFLFlBQVk7Z0JBQ2hCLEtBQUssRUFBRSxrQ0FBa0M7Z0JBQ3pDLE9BQU8sRUFBRSxjQUFjLElBQUksQ0FBQyxHQUFHLGtEQUFrRDthQUNsRixDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSwwQ0FBMEMsRUFBRSxDQUFDLENBQUM7UUFDekYsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkQsdUVBQXVFO1lBQ3ZFLDBFQUEwRTtZQUMxRSxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNULEVBQUUsRUFBRSxRQUFRO2dCQUNaLEtBQUssRUFBRSxzQ0FBc0M7Z0JBQzdDLE9BQU8sRUFBRSxnQ0FBZ0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTthQUN6RixDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSw2QkFBNkIsSUFBSSxDQUFDLE1BQU0sc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pHLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDaEMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtZQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDM0csQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBQb3N0LWluc3RhbGwgc3RlcHMuXG4gKlxuICogQWZ0ZXIgdGhlIHBsYXRmb3JtIGlzIGRlcGxveWVkICsgaGVhbHRoLWNoZWNrZWQsIHByb3Zpc2lvbiBydW5zIGFuIG9yZGVyZWQgc2V0XG4gKiBvZiBwb3N0LWluc3RhbGwgc3RlcHM6ICoqcmVnaXN0ZXIqKiAodGhlIGFkbWluLCB2aWEgYGluaXQtcGxhdGZvcm0uc2hgLCBkcml2ZW5cbiAqIG5vbi1pbnRlcmFjdGl2ZWx5IGJ5IGVudiDigJQgd2hpY2ggYWxzbyBwZXJmb3JtcyBhbnkgb3B0LWluIHBsdWdpbi9jb21wbGlhbmNlL1xuICogc2FtcGxlIGxvYWRzKSwgdGhlbiBhbiBvcHRpb25hbCAqKnNtb2tlLXRlc3QqKiwgKipldmVudHMqKiAoQVdTKSwgYW5kIGFueVxuICogb3BlcmF0b3IgKiotLXBvc3Qtc3RlcCoqIGNvbW1hbmRzLiBQdXJlLCBkZXRlcm1pbmlzdGljIGFzc2VtYmx5IGhlcmUg4oCUIHByb3Zpc2lvblxuICogcnVucyBlYWNoIHZpYSB0aGUgc2FtZSBnYXRlZCBgcnVuU2NyaXB0KClgIGFzIHRoZSBkZXBsb3kuXG4gKi9cblxuaW1wb3J0IHsgTE9BRF9TVEVQUywgdHlwZSBUYXJnZXRJZCB9IGZyb20gJy4vdGFyZ2V0cy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9zdFN0ZXAge1xuICAvKiogU3RhYmxlIGlkIChgcmVnaXN0ZXJgIC8gYHNtb2tlLXRlc3RgIC8gYGV2ZW50c2ApIG9yIGBjdXN0b20tTmAuICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIC8qKiBIdW1hbiBsYWJlbCBzaG93biBpbiB0aGUgcGxhbi4gKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcbiAgLyoqIFRoZSBleGFjdCBjb21tYW5kIHRvIHJ1bi4gKi9cbiAgcmVhZG9ubHkgY29tbWFuZDogc3RyaW5nO1xuICAvKiogTm9uLXNlY3JldCBlbnYgYXBwbGllZCB0byB0aGUgY2hpbGQgZm9yIHRoaXMgc3RlcCAoZS5nLiBMT0FEXyogZm9yIHJlZ2lzdGVyKS4gKi9cbiAgcmVhZG9ubHkgZW52PzogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG59XG5cbi8qKiBBIHJlcXVlc3RlZCBzdGVwIHRoYXQgZG9lc24ndCBhcHBseSB0byB0aGUgY2hvc2VuIHRhcmdldC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2tpcHBlZFN0ZXAge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSByZWFzb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZFBvc3RTdGVwcyB7XG4gIHJlYWRvbmx5IHN0ZXBzOiBQb3N0U3RlcFtdO1xuICByZWFkb25seSBza2lwcGVkOiBTa2lwcGVkU3RlcFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RTdGVwT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHRhcmdldDogVGFyZ2V0SWQ7XG4gIC8qKiBCYXNlIFVSTCBvZiB0aGUgZGVwbG95ZWQgcGxhdGZvcm0gKGZyb20gZGVyaXZlSGVhbHRoVXJsKSwgb3IgbnVsbC4gKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmcgfCBudWxsO1xuICAvKiogQVdTIHJlZ2lvbiAoZWMyL2ZhcmdhdGUpLCBpZiBwcm92aWRlZC4gKi9cbiAgcmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuICAvKiogTG9hZC1zdGVwIGlkcyBlbmFibGVkIHZpYSBgLS13aXRoLSpgIChkcml2ZSBpbml0LXBsYXRmb3JtJ3MgTE9BRF8qIGVudnMgKyBzcGFyc2UgcGF0aHMpLiAqL1xuICByZWFkb25seSBlbmFibGVkTG9hZElkczogcmVhZG9ubHkgc3RyaW5nW107XG4gIC8qKiBgLS1idWlsZC1ib290c3RyYXBgOiBidWlsZCB0aGUgQ29kZUJ1aWxkIGJvb3RzdHJhcCBpbWFnZSBkdXJpbmcgcmVnaXN0ZXIuICovXG4gIHJlYWRvbmx5IGJ1aWxkQm9vdHN0cmFwOiBib29sZWFuO1xuICAvKiogRmFsc2Ugd2hlbiBgLS1uby1pbml0YCDigJQgc2tpcHMgdGhlIHJlZ2lzdGVyIHN0ZXAgZW50aXJlbHkuICovXG4gIHJlYWRvbmx5IGluaXQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IHNtb2tlVGVzdDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZXZlbnRzOiBib29sZWFuO1xuICAvKiogUmF3IG9wZXJhdG9yIGAtLXBvc3Qtc3RlcGAgY29tbWFuZHMsIGluIG9yZGVyLiAqL1xuICByZWFkb25seSBzdGVwczogcmVhZG9ubHkgc3RyaW5nW107XG59XG5cbi8qKiBDb21wdXRlIHRoZSBub24taW50ZXJhY3RpdmUgZW52IHRoYXQgZHJpdmVzIGluaXQtcGxhdGZvcm0ncyBwcm9tcHRzLiAqL1xuZnVuY3Rpb24gcmVnaXN0ZXJFbnYoZW5hYmxlZExvYWRJZHM6IHJlYWRvbmx5IHN0cmluZ1tdLCBidWlsZEJvb3RzdHJhcDogYm9vbGVhbik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCBlbnY6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7IEJVSUxEX0JPT1RTVFJBUDogYnVpbGRCb290c3RyYXAgPyAneScgOiAnbicgfTtcbiAgZm9yIChjb25zdCBzdGVwIG9mIExPQURfU1RFUFMpIGVudltzdGVwLmVudl0gPSBlbmFibGVkTG9hZElkcy5pbmNsdWRlcyhzdGVwLmlkKSA/ICd5JyA6ICduJztcbiAgcmV0dXJuIGVudjtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBvcmRlcmVkIHBvc3QtaW5zdGFsbCBzdGVwIGxpc3Q6IHJlZ2lzdGVyIOKGkiBzbW9rZS10ZXN0IOKGkiBldmVudHMg4oaSXG4gKiBjdXN0b20uIGByZWdpc3RlcmAgY2FycmllcyB0aGUgbG9hZCArIEJVSUxEX0JPT1RTVFJBUCBlbnYgc28gaW5pdC1wbGF0Zm9ybSBydW5zXG4gKiB0aGUgZW5hYmxlZCBsb2FkcyBub24taW50ZXJhY3RpdmVseS4gUmVxdWVzdGVkLWJ1dC1pbmFwcGxpY2FibGUgc3RlcHMgbGFuZCBpblxuICogYHNraXBwZWRgIHNvIHRoZSBjYWxsZXIgY2FuIHdhcm4gcmF0aGVyIHRoYW4gc2lsZW50bHkgZHJvcCB0aGVtLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBvc3RTdGVwcyhvcHRzOiBQb3N0U3RlcE9wdGlvbnMpOiBSZXNvbHZlZFBvc3RTdGVwcyB7XG4gIGNvbnN0IHN0ZXBzOiBQb3N0U3RlcFtdID0gW107XG4gIGNvbnN0IHNraXBwZWQ6IFNraXBwZWRTdGVwW10gPSBbXTtcblxuICBpZiAob3B0cy5pbml0KSB7XG4gICAgY29uc3QgZW5hYmxlZCA9IExPQURfU1RFUFMuZmlsdGVyKChzKSA9PiBvcHRzLmVuYWJsZWRMb2FkSWRzLmluY2x1ZGVzKHMuaWQpKS5tYXAoKHMpID0+IHMuaWQpO1xuICAgIGNvbnN0IGxvYWRzID0gZW5hYmxlZC5sZW5ndGggPiAwID8gYCAoKyAke2VuYWJsZWQuam9pbignLCAnKX0pYCA6ICcnO1xuICAgIHN0ZXBzLnB1c2goe1xuICAgICAgaWQ6ICdyZWdpc3RlcicsXG4gICAgICBsYWJlbDogYFJlZ2lzdGVyIGFkbWluJHtsb2Fkc31gLFxuICAgICAgY29tbWFuZDogYC4vZGVwbG95L2Jpbi9pbml0LXBsYXRmb3JtLnNoICR7b3B0cy50YXJnZXR9YCxcbiAgICAgIGVudjogcmVnaXN0ZXJFbnYob3B0cy5lbmFibGVkTG9hZElkcywgb3B0cy5idWlsZEJvb3RzdHJhcCksXG4gICAgfSk7XG4gIH1cblxuICBpZiAob3B0cy5zbW9rZVRlc3QpIHtcbiAgICBpZiAob3B0cy51cmwpIHtcbiAgICAgIC8vIC1rOiBsb2NhbC9taW5pa3ViZSBmcm9udCBhIHNlbGYtc2lnbmVkIGNlcnQ7IGhhcm1sZXNzIGFnYWluc3QgcmVhbC1jZXJ0IEFXUyBVUkxzLlxuICAgICAgc3RlcHMucHVzaCh7XG4gICAgICAgIGlkOiAnc21va2UtdGVzdCcsXG4gICAgICAgIGxhYmVsOiAnU21va2UgdGVzdCDigJQgcmVhZC1vbmx5IEFQSSBjaGVjaycsXG4gICAgICAgIGNvbW1hbmQ6IGBjdXJsIC1mc1NrICR7b3B0cy51cmx9L2FwaS92ZXJzaW9uICYmIGVjaG8gJ3Ntb2tlLXRlc3Q6IEFQSSByZWFjaGFibGUnYCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBza2lwcGVkLnB1c2goeyBpZDogJ3Ntb2tlLXRlc3QnLCByZWFzb246ICdubyBwbGF0Zm9ybSBVUkwgdG8gcHJvYmUgZm9yIHRoaXMgdGFyZ2V0JyB9KTtcbiAgICB9XG4gIH1cblxuICBpZiAob3B0cy5ldmVudHMpIHtcbiAgICBpZiAob3B0cy50YXJnZXQgPT09ICdlYzInIHx8IG9wdHMudGFyZ2V0ID09PSAnZmFyZ2F0ZScpIHtcbiAgICAgIC8vIFJlcXVpcmVzIHRoZSBwaXBlbGluZS1tYW5hZ2VyIENMSSBvbiBQQVRIOyByZWFkcyBQTEFURk9STV9CQVNFX1VSTCAvXG4gICAgICAvLyBQTEFURk9STV9TRUNSRVRfTkFNRSBmcm9tIHRoZSBlbnZpcm9ubWVudCAodGhlIGNvbW1hbmQgdmFsaWRhdGVzIHRoZW0pLlxuICAgICAgc3RlcHMucHVzaCh7XG4gICAgICAgIGlkOiAnZXZlbnRzJyxcbiAgICAgICAgbGFiZWw6ICdFdmVudEJyaWRnZSBpbmdlc3Rpb24gKHNldHVwLWV2ZW50cyknLFxuICAgICAgICBjb21tYW5kOiBgcGlwZWxpbmUtbWFuYWdlciBzZXR1cC1ldmVudHMke29wdHMucmVnaW9uID8gYCAtLXJlZ2lvbiAke29wdHMucmVnaW9ufWAgOiAnJ31gLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNraXBwZWQucHVzaCh7IGlkOiAnZXZlbnRzJywgcmVhc29uOiBgbm90IGFwcGxpY2FibGUgdG8gdGFyZ2V0ICcke29wdHMudGFyZ2V0fScgKGVjMi9mYXJnYXRlIG9ubHkpYCB9KTtcbiAgICB9XG4gIH1cblxuICBvcHRzLnN0ZXBzLmZvckVhY2goKGNvbW1hbmQsIGkpID0+IHtcbiAgICBpZiAoY29tbWFuZC50cmltKCkgIT09ICcnKSBzdGVwcy5wdXNoKHsgaWQ6IGBjdXN0b20tJHtpICsgMX1gLCBsYWJlbDogYEN1c3RvbSBzdGVwICR7aSArIDF9YCwgY29tbWFuZCB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIHsgc3RlcHMsIHNraXBwZWQgfTtcbn1cbiJdfQ==
|
package/dist/agent/prereqs.d.ts
CHANGED
|
@@ -6,11 +6,20 @@ export interface PrereqCheck {
|
|
|
6
6
|
/** A failing required check blocks deployment; advisory ones are warnings. */
|
|
7
7
|
readonly required: boolean;
|
|
8
8
|
}
|
|
9
|
+
/** True when git is on PATH (required to bootstrap a clone at all). */
|
|
10
|
+
export declare function gitAvailable(): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Cone `sparse-checkout` (+ `--filter=blob:none`) needs git ≥ 2.27. Below that,
|
|
13
|
+
* the bootstrap falls back to a (correct, just larger) full clone.
|
|
14
|
+
*/
|
|
15
|
+
export declare function gitSupportsSparseCheckout(): boolean;
|
|
9
16
|
/**
|
|
10
17
|
* Run the read-only prerequisite checks for a target. Pure inspection — safe to
|
|
11
18
|
* run unconditionally (Phase-1 advisor calls this before assembling the command).
|
|
12
19
|
*/
|
|
13
|
-
export declare function checkPrereqs(target: TargetId
|
|
20
|
+
export declare function checkPrereqs(target: TargetId, opts?: {
|
|
21
|
+
bootstrap?: boolean;
|
|
22
|
+
}): PrereqCheck[];
|
|
14
23
|
/** True when every REQUIRED prerequisite passed. */
|
|
15
24
|
export declare function prereqsSatisfied(checks: readonly PrereqCheck[]): boolean;
|
|
16
25
|
//# sourceMappingURL=prereqs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prereqs.d.ts","sourceRoot":"","sources":["../../src/agent/prereqs.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"prereqs.d.ts","sourceRoot":"","sources":["../../src/agent/prereqs.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAqCD,uEAAuE;AACvE,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAGnD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,WAAW,EAAE,CAwChG;AAED,oDAAoD;AACpD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAExE"}
|
package/dist/agent/prereqs.js
CHANGED
|
@@ -34,12 +34,39 @@ function awsIdentity() {
|
|
|
34
34
|
return null;
|
|
35
35
|
return read('aws sts get-caller-identity --query Account --output text');
|
|
36
36
|
}
|
|
37
|
+
/** Parsed `git --version` as [major, minor], or null if git is absent/unparseable. */
|
|
38
|
+
function gitVersion() {
|
|
39
|
+
const out = read('git --version');
|
|
40
|
+
const m = out?.match(/(\d+)\.(\d+)/);
|
|
41
|
+
return m ? [Number(m[1]), Number(m[2])] : null;
|
|
42
|
+
}
|
|
43
|
+
/** True when git is on PATH (required to bootstrap a clone at all). */
|
|
44
|
+
export function gitAvailable() {
|
|
45
|
+
return gitVersion() !== null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Cone `sparse-checkout` (+ `--filter=blob:none`) needs git ≥ 2.27. Below that,
|
|
49
|
+
* the bootstrap falls back to a (correct, just larger) full clone.
|
|
50
|
+
*/
|
|
51
|
+
export function gitSupportsSparseCheckout() {
|
|
52
|
+
const v = gitVersion();
|
|
53
|
+
return v !== null && (v[0] > 2 || (v[0] === 2 && v[1] >= 27));
|
|
54
|
+
}
|
|
37
55
|
/**
|
|
38
56
|
* Run the read-only prerequisite checks for a target. Pure inspection — safe to
|
|
39
57
|
* run unconditionally (Phase-1 advisor calls this before assembling the command).
|
|
40
58
|
*/
|
|
41
|
-
export function checkPrereqs(target) {
|
|
59
|
+
export function checkPrereqs(target, opts = {}) {
|
|
42
60
|
const checks = [];
|
|
61
|
+
// `--repo` bootstrap git-clones the platform repo first → git is required. A
|
|
62
|
+
// git below 2.27 still works (full-clone fallback), so the version is advisory.
|
|
63
|
+
if (opts.bootstrap) {
|
|
64
|
+
const v = gitVersion();
|
|
65
|
+
checks.push({ name: 'git', ok: v !== null, detail: v ? `on PATH (${v[0]}.${v[1]})` : 'install git', required: true });
|
|
66
|
+
if (v !== null && !gitSupportsSparseCheckout()) {
|
|
67
|
+
checks.push({ name: 'git ≥ 2.27', ok: false, detail: 'sparse clone needs git ≥ 2.27 — falling back to a full clone', required: false });
|
|
68
|
+
}
|
|
69
|
+
}
|
|
43
70
|
if (target === 'local') {
|
|
44
71
|
checks.push({
|
|
45
72
|
name: 'Docker',
|
|
@@ -70,4 +97,4 @@ export function checkPrereqs(target) {
|
|
|
70
97
|
export function prereqsSatisfied(checks) {
|
|
71
98
|
return checks.every((c) => c.ok || !c.required);
|
|
72
99
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVxcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZ2VudC9wcmVyZXFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBV3pDLGdDQUFnQztBQUNoQyxTQUFTLEdBQUcsQ0FBQyxHQUFXO0lBQ3RCLElBQUksQ0FBQztRQUNILFFBQVEsQ0FBQyxjQUFjLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDO0FBRUQsNkVBQTZFO0FBQzdFLFNBQVMsSUFBSSxDQUFDLEdBQVc7SUFDdkIsSUFBSSxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsRyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsYUFBYTtJQUNwQixPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsMkNBQTJDLENBQUMsS0FBSyxJQUFJLENBQUM7QUFDckYsQ0FBQztBQUVELFNBQVMsV0FBVztJQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzdCLE9BQU8sSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7QUFDM0UsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBZ0I7SUFDM0MsTUFBTSxNQUFNLEdBQWtCLEVBQUUsQ0FBQztJQUVqQyxJQUFJLE1BQU0sS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ1YsSUFBSSxFQUFFLFFBQVE7WUFDZCxFQUFFLEVBQUUsYUFBYSxFQUFFO1lBQ25CLE1BQU0sRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLHFDQUFxQztZQUNwRixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMscUNBQXFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0osTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3SCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsa0VBQWtFO0lBQ2xFLE1BQU0sT0FBTyxHQUFHLFdBQVcsRUFBRSxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1SCxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ1YsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixFQUFFLEVBQUUsT0FBTyxLQUFLLElBQUk7UUFDcEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsMEJBQTBCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyx1Q0FBdUM7UUFDaEcsUUFBUSxFQUFFLElBQUk7S0FDZixDQUFDLENBQUM7SUFDSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsb0RBQW9EO0FBQ3BELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUE4QjtJQUM3RCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIERldGVybWluaXN0aWMsIFJFQUQtT05MWSBwcmVyZXF1aXNpdGUgY2hlY2tzIHBlciB0YXJnZXQuIE5vIExMTSwgbm8gbXV0YXRpb24g4oCUXG4gKiBldmVyeSBjb21tYW5kIGhlcmUgb25seSBpbnNwZWN0cyAocHJlc2VuY2UgY2hlY2tzLCBgYXdzIHN0cyBnZXQtY2FsbGVyLWlkZW50aXR5YCxcbiAqIGBkb2NrZXIgaW5mb2ApLiBUaGlzIGlzIHRoZSBraW5kIG9mIHRoaW5nIGEgc2NyaXB0IGRvZXMgYmV0dGVyIHRoYW4gYW4gYWdlbnQsXG4gKiBzbyBpdCBzdGF5cyBkZXRlcm1pbmlzdGljOyB0aGUgTExNIGlzIHJlc2VydmVkIGZvciBOTCBwYXJzaW5nICsgZGlhZ25vc2lzLlxuICovXG5cbmltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgdHlwZSB7IFRhcmdldElkIH0gZnJvbSAnLi90YXJnZXRzLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBQcmVyZXFDaGVjayB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgb2s6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRldGFpbDogc3RyaW5nO1xuICAvKiogQSBmYWlsaW5nIHJlcXVpcmVkIGNoZWNrIGJsb2NrcyBkZXBsb3ltZW50OyBhZHZpc29yeSBvbmVzIGFyZSB3YXJuaW5ncy4gKi9cbiAgcmVhZG9ubHkgcmVxdWlyZWQ6IGJvb2xlYW47XG59XG5cbi8qKiBUcnVlIGlmIGBjbWRgIGlzIG9uIFBBVEguICovXG5mdW5jdGlvbiBoYXMoY21kOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBleGVjU3luYyhgY29tbWFuZCAtdiAke2NtZH1gLCB7IHN0ZGlvOiAnaWdub3JlJywgdGltZW91dDogNTAwMCB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKiBSdW4gYSByZWFkLW9ubHkgY29tbWFuZDsgcmV0dXJuIGl0cyB0cmltbWVkIHN0ZG91dCBvciBudWxsIG9uIGZhaWx1cmUuICovXG5mdW5jdGlvbiByZWFkKGNtZDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGV4ZWNTeW5jKGNtZCwgeyBzdGRpbzogWydpZ25vcmUnLCAncGlwZScsICdpZ25vcmUnXSwgdGltZW91dDogMTUwMDAgfSkudG9TdHJpbmcoKS50cmltKCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRvY2tlclJ1bm5pbmcoKTogYm9vbGVhbiB7XG4gIHJldHVybiBoYXMoJ2RvY2tlcicpICYmIHJlYWQoJ2RvY2tlciBpbmZvIC0tZm9ybWF0IFwie3suU2VydmVyVmVyc2lvbn19XCInKSAhPT0gbnVsbDtcbn1cblxuZnVuY3Rpb24gYXdzSWRlbnRpdHkoKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICghaGFzKCdhd3MnKSkgcmV0dXJuIG51bGw7XG4gIHJldHVybiByZWFkKCdhd3Mgc3RzIGdldC1jYWxsZXItaWRlbnRpdHkgLS1xdWVyeSBBY2NvdW50IC0tb3V0cHV0IHRleHQnKTtcbn1cblxuLyoqXG4gKiBSdW4gdGhlIHJlYWQtb25seSBwcmVyZXF1aXNpdGUgY2hlY2tzIGZvciBhIHRhcmdldC4gUHVyZSBpbnNwZWN0aW9uIOKAlCBzYWZlIHRvXG4gKiBydW4gdW5jb25kaXRpb25hbGx5IChQaGFzZS0xIGFkdmlzb3IgY2FsbHMgdGhpcyBiZWZvcmUgYXNzZW1ibGluZyB0aGUgY29tbWFuZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1ByZXJlcXModGFyZ2V0OiBUYXJnZXRJZCk6IFByZXJlcUNoZWNrW10ge1xuICBjb25zdCBjaGVja3M6IFByZXJlcUNoZWNrW10gPSBbXTtcblxuICBpZiAodGFyZ2V0ID09PSAnbG9jYWwnKSB7XG4gICAgY2hlY2tzLnB1c2goe1xuICAgICAgbmFtZTogJ0RvY2tlcicsXG4gICAgICBvazogZG9ja2VyUnVubmluZygpLFxuICAgICAgZGV0YWlsOiBkb2NrZXJSdW5uaW5nKCkgPyAnZGFlbW9uIHJlYWNoYWJsZScgOiAnaW5zdGFsbCBEb2NrZXIgYW5kIHN0YXJ0IHRoZSBkYWVtb24nLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSk7XG4gICAgcmV0dXJuIGNoZWNrcztcbiAgfVxuXG4gIGlmICh0YXJnZXQgPT09ICdtaW5pa3ViZScpIHtcbiAgICBjaGVja3MucHVzaCh7IG5hbWU6ICdEb2NrZXInLCBvazogZG9ja2VyUnVubmluZygpLCBkZXRhaWw6IGRvY2tlclJ1bm5pbmcoKSA/ICdkYWVtb24gcmVhY2hhYmxlJyA6ICdpbnN0YWxsIERvY2tlciBhbmQgc3RhcnQgdGhlIGRhZW1vbicsIHJlcXVpcmVkOiB0cnVlIH0pO1xuICAgIGNoZWNrcy5wdXNoKHsgbmFtZTogJ21pbmlrdWJlJywgb2s6IGhhcygnbWluaWt1YmUnKSwgZGV0YWlsOiBoYXMoJ21pbmlrdWJlJykgPyAnb24gUEFUSCcgOiAnaW5zdGFsbCBtaW5pa3ViZScsIHJlcXVpcmVkOiB0cnVlIH0pO1xuICAgIGNoZWNrcy5wdXNoKHsgbmFtZTogJ2t1YmVjdGwnLCBvazogaGFzKCdrdWJlY3RsJyksIGRldGFpbDogaGFzKCdrdWJlY3RsJykgPyAnb24gUEFUSCcgOiAnaW5zdGFsbCBrdWJlY3RsJywgcmVxdWlyZWQ6IHRydWUgfSk7XG4gICAgcmV0dXJuIGNoZWNrcztcbiAgfVxuXG4gIC8vIGVjMiArIGZhcmdhdGUg4oCUIGJvdGggbmVlZCB0aGUgQVdTIENMSSB3aXRoIHdvcmtpbmcgY3JlZGVudGlhbHMuXG4gIGNvbnN0IGFjY291bnQgPSBhd3NJZGVudGl0eSgpO1xuICBjaGVja3MucHVzaCh7IG5hbWU6ICdBV1MgQ0xJJywgb2s6IGhhcygnYXdzJyksIGRldGFpbDogaGFzKCdhd3MnKSA/ICdvbiBQQVRIJyA6ICdpbnN0YWxsIHRoZSBBV1MgQ0xJIHYyJywgcmVxdWlyZWQ6IHRydWUgfSk7XG4gIGNoZWNrcy5wdXNoKHtcbiAgICBuYW1lOiAnQVdTIGNyZWRlbnRpYWxzJyxcbiAgICBvazogYWNjb3VudCAhPT0gbnVsbCxcbiAgICBkZXRhaWw6IGFjY291bnQgPyBgYXV0aGVudGljYXRlZCAoYWNjb3VudCAke2FjY291bnR9KWAgOiAncnVuIGBhd3MgY29uZmlndXJlYCAvIHNldCBBV1NfUFJPRklMRScsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0pO1xuICByZXR1cm4gY2hlY2tzO1xufVxuXG4vKiogVHJ1ZSB3aGVuIGV2ZXJ5IFJFUVVJUkVEIHByZXJlcXVpc2l0ZSBwYXNzZWQuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlcmVxc1NhdGlzZmllZChjaGVja3M6IHJlYWRvbmx5IFByZXJlcUNoZWNrW10pOiBib29sZWFuIHtcbiAgcmV0dXJuIGNoZWNrcy5ldmVyeSgoYykgPT4gYy5vayB8fCAhYy5yZXF1aXJlZCk7XG59XG4iXX0=
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVxcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZ2VudC9wcmVyZXFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBV3pDLGdDQUFnQztBQUNoQyxTQUFTLEdBQUcsQ0FBQyxHQUFXO0lBQ3RCLElBQUksQ0FBQztRQUNILFFBQVEsQ0FBQyxjQUFjLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDO0FBRUQsNkVBQTZFO0FBQzdFLFNBQVMsSUFBSSxDQUFDLEdBQVc7SUFDdkIsSUFBSSxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsRyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsYUFBYTtJQUNwQixPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsMkNBQTJDLENBQUMsS0FBSyxJQUFJLENBQUM7QUFDckYsQ0FBQztBQUVELFNBQVMsV0FBVztJQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzdCLE9BQU8sSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7QUFD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QUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBEZXRlcm1pbmlzdGljLCBSRUFELU9OTFkgcHJlcmVxdWlzaXRlIGNoZWNrcyBwZXIgdGFyZ2V0LiBObyBMTE0sIG5vIG11dGF0aW9uIOKAlFxuICogZXZlcnkgY29tbWFuZCBoZXJlIG9ubHkgaW5zcGVjdHMgKHByZXNlbmNlIGNoZWNrcywgYGF3cyBzdHMgZ2V0LWNhbGxlci1pZGVudGl0eWAsXG4gKiBgZG9ja2VyIGluZm9gKS4gVGhpcyBpcyB0aGUga2luZCBvZiB0aGluZyBhIHNjcmlwdCBkb2VzIGJldHRlciB0aGFuIGFuIGFnZW50LFxuICogc28gaXQgc3RheXMgZGV0ZXJtaW5pc3RpYzsgdGhlIExMTSBpcyByZXNlcnZlZCBmb3IgTkwgcGFyc2luZyArIGRpYWdub3Npcy5cbiAqL1xuXG5pbXBvcnQgeyBleGVjU3luYyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHR5cGUgeyBUYXJnZXRJZCB9IGZyb20gJy4vdGFyZ2V0cy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlcmVxQ2hlY2sge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9rOiBib29sZWFuO1xuICByZWFkb25seSBkZXRhaWw6IHN0cmluZztcbiAgLyoqIEEgZmFpbGluZyByZXF1aXJlZCBjaGVjayBibG9ja3MgZGVwbG95bWVudDsgYWR2aXNvcnkgb25lcyBhcmUgd2FybmluZ3MuICovXG4gIHJlYWRvbmx5IHJlcXVpcmVkOiBib29sZWFuO1xufVxuXG4vKiogVHJ1ZSBpZiBgY21kYCBpcyBvbiBQQVRILiAqL1xuZnVuY3Rpb24gaGFzKGNtZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgZXhlY1N5bmMoYGNvbW1hbmQgLXYgJHtjbWR9YCwgeyBzdGRpbzogJ2lnbm9yZScsIHRpbWVvdXQ6IDUwMDAgfSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKiogUnVuIGEgcmVhZC1vbmx5IGNvbW1hbmQ7IHJldHVybiBpdHMgdHJpbW1lZCBzdGRvdXQgb3IgbnVsbCBvbiBmYWlsdXJlLiAqL1xuZnVuY3Rpb24gcmVhZChjbWQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICB0cnkge1xuICAgIHJldHVybiBleGVjU3luYyhjbWQsIHsgc3RkaW86IFsnaWdub3JlJywgJ3BpcGUnLCAnaWdub3JlJ10sIHRpbWVvdXQ6IDE1MDAwIH0pLnRvU3RyaW5nKCkudHJpbSgpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBkb2NrZXJSdW5uaW5nKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gaGFzKCdkb2NrZXInKSAmJiByZWFkKCdkb2NrZXIgaW5mbyAtLWZvcm1hdCBcInt7LlNlcnZlclZlcnNpb259fVwiJykgIT09IG51bGw7XG59XG5cbmZ1bmN0aW9uIGF3c0lkZW50aXR5KCk6IHN0cmluZyB8IG51bGwge1xuICBpZiAoIWhhcygnYXdzJykpIHJldHVybiBudWxsO1xuICByZXR1cm4gcmVhZCgnYXdzIHN0cyBnZXQtY2FsbGVyLWlkZW50aXR5IC0tcXVlcnkgQWNjb3VudCAtLW91dHB1dCB0ZXh0Jyk7XG59XG5cbi8qKiBQYXJzZWQgYGdpdCAtLXZlcnNpb25gIGFzIFttYWpvciwgbWlub3JdLCBvciBudWxsIGlmIGdpdCBpcyBhYnNlbnQvdW5wYXJzZWFibGUuICovXG5mdW5jdGlvbiBnaXRWZXJzaW9uKCk6IFtudW1iZXIsIG51bWJlcl0gfCBudWxsIHtcbiAgY29uc3Qgb3V0ID0gcmVhZCgnZ2l0IC0tdmVyc2lvbicpO1xuICBjb25zdCBtID0gb3V0Py5tYXRjaCgvKFxcZCspXFwuKFxcZCspLyk7XG4gIHJldHVybiBtID8gW051bWJlcihtWzFdKSwgTnVtYmVyKG1bMl0pXSA6IG51bGw7XG59XG5cbi8qKiBUcnVlIHdoZW4gZ2l0IGlzIG9uIFBBVEggKHJlcXVpcmVkIHRvIGJvb3RzdHJhcCBhIGNsb25lIGF0IGFsbCkuICovXG5leHBvcnQgZnVuY3Rpb24gZ2l0QXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2l0VmVyc2lvbigpICE9PSBudWxsO1xufVxuXG4vKipcbiAqIENvbmUgYHNwYXJzZS1jaGVja291dGAgKCsgYC0tZmlsdGVyPWJsb2I6bm9uZWApIG5lZWRzIGdpdCDiiaUgMi4yNy4gQmVsb3cgdGhhdCxcbiAqIHRoZSBib290c3RyYXAgZmFsbHMgYmFjayB0byBhIChjb3JyZWN0LCBqdXN0IGxhcmdlcikgZnVsbCBjbG9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdpdFN1cHBvcnRzU3BhcnNlQ2hlY2tvdXQoKTogYm9vbGVhbiB7XG4gIGNvbnN0IHYgPSBnaXRWZXJzaW9uKCk7XG4gIHJldHVybiB2ICE9PSBudWxsICYmICh2WzBdID4gMiB8fCAodlswXSA9PT0gMiAmJiB2WzFdID49IDI3KSk7XG59XG5cbi8qKlxuICogUnVuIHRoZSByZWFkLW9ubHkgcHJlcmVxdWlzaXRlIGNoZWNrcyBmb3IgYSB0YXJnZXQuIFB1cmUgaW5zcGVjdGlvbiDigJQgc2FmZSB0b1xuICogcnVuIHVuY29uZGl0aW9uYWxseSAoUGhhc2UtMSBhZHZpc29yIGNhbGxzIHRoaXMgYmVmb3JlIGFzc2VtYmxpbmcgdGhlIGNvbW1hbmQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQcmVyZXFzKHRhcmdldDogVGFyZ2V0SWQsIG9wdHM6IHsgYm9vdHN0cmFwPzogYm9vbGVhbiB9ID0ge30pOiBQcmVyZXFDaGVja1tdIHtcbiAgY29uc3QgY2hlY2tzOiBQcmVyZXFDaGVja1tdID0gW107XG5cbiAgLy8gYC0tcmVwb2AgYm9vdHN0cmFwIGdpdC1jbG9uZXMgdGhlIHBsYXRmb3JtIHJlcG8gZmlyc3Qg4oaSIGdpdCBpcyByZXF1aXJlZC4gQVxuICAvLyBnaXQgYmVsb3cgMi4yNyBzdGlsbCB3b3JrcyAoZnVsbC1jbG9uZSBmYWxsYmFjayksIHNvIHRoZSB2ZXJzaW9uIGlzIGFkdmlzb3J5LlxuICBpZiAob3B0cy5ib290c3RyYXApIHtcbiAgICBjb25zdCB2ID0gZ2l0VmVyc2lvbigpO1xuICAgIGNoZWNrcy5wdXNoKHsgbmFtZTogJ2dpdCcsIG9rOiB2ICE9PSBudWxsLCBkZXRhaWw6IHYgPyBgb24gUEFUSCAoJHt2WzBdfS4ke3ZbMV19KWAgOiAnaW5zdGFsbCBnaXQnLCByZXF1aXJlZDogdHJ1ZSB9KTtcbiAgICBpZiAodiAhPT0gbnVsbCAmJiAhZ2l0U3VwcG9ydHNTcGFyc2VDaGVja291dCgpKSB7XG4gICAgICBjaGVja3MucHVzaCh7IG5hbWU6ICdnaXQg4omlIDIuMjcnLCBvazogZmFsc2UsIGRldGFpbDogJ3NwYXJzZSBjbG9uZSBuZWVkcyBnaXQg4omlIDIuMjcg4oCUIGZhbGxpbmcgYmFjayB0byBhIGZ1bGwgY2xvbmUnLCByZXF1aXJlZDogZmFsc2UgfSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHRhcmdldCA9PT0gJ2xvY2FsJykge1xuICAgIGNoZWNrcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdEb2NrZXInLFxuICAgICAgb2s6IGRvY2tlclJ1bm5pbmcoKSxcbiAgICAgIGRldGFpbDogZG9ja2VyUnVubmluZygpID8gJ2RhZW1vbiByZWFjaGFibGUnIDogJ2luc3RhbGwgRG9ja2VyIGFuZCBzdGFydCB0aGUgZGFlbW9uJyxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pO1xuICAgIHJldHVybiBjaGVja3M7XG4gIH1cblxuICBpZiAodGFyZ2V0ID09PSAnbWluaWt1YmUnKSB7XG4gICAgY2hlY2tzLnB1c2goeyBuYW1lOiAnRG9ja2VyJywgb2s6IGRvY2tlclJ1bm5pbmcoKSwgZGV0YWlsOiBkb2NrZXJSdW5uaW5nKCkgPyAnZGFlbW9uIHJlYWNoYWJsZScgOiAnaW5zdGFsbCBEb2NrZXIgYW5kIHN0YXJ0IHRoZSBkYWVtb24nLCByZXF1aXJlZDogdHJ1ZSB9KTtcbiAgICBjaGVja3MucHVzaCh7IG5hbWU6ICdtaW5pa3ViZScsIG9rOiBoYXMoJ21pbmlrdWJlJyksIGRldGFpbDogaGFzKCdtaW5pa3ViZScpID8gJ29uIFBBVEgnIDogJ2luc3RhbGwgbWluaWt1YmUnLCByZXF1aXJlZDogdHJ1ZSB9KTtcbiAgICBjaGVja3MucHVzaCh7IG5hbWU6ICdrdWJlY3RsJywgb2s6IGhhcygna3ViZWN0bCcpLCBkZXRhaWw6IGhhcygna3ViZWN0bCcpID8gJ29uIFBBVEgnIDogJ2luc3RhbGwga3ViZWN0bCcsIHJlcXVpcmVkOiB0cnVlIH0pO1xuICAgIHJldHVybiBjaGVja3M7XG4gIH1cblxuICAvLyBlYzIgKyBmYXJnYXRlIOKAlCBib3RoIG5lZWQgdGhlIEFXUyBDTEkgd2l0aCB3b3JraW5nIGNyZWRlbnRpYWxzLlxuICBjb25zdCBhY2NvdW50ID0gYXdzSWRlbnRpdHkoKTtcbiAgY2hlY2tzLnB1c2goeyBuYW1lOiAnQVdTIENMSScsIG9rOiBoYXMoJ2F3cycpLCBkZXRhaWw6IGhhcygnYXdzJykgPyAnb24gUEFUSCcgOiAnaW5zdGFsbCB0aGUgQVdTIENMSSB2MicsIHJlcXVpcmVkOiB0cnVlIH0pO1xuICBjaGVja3MucHVzaCh7XG4gICAgbmFtZTogJ0FXUyBjcmVkZW50aWFscycsXG4gICAgb2s6IGFjY291bnQgIT09IG51bGwsXG4gICAgZGV0YWlsOiBhY2NvdW50ID8gYGF1dGhlbnRpY2F0ZWQgKGFjY291bnQgJHthY2NvdW50fSlgIDogJ3J1biBgYXdzIGNvbmZpZ3VyZWAgLyBzZXQgQVdTX1BST0ZJTEUnLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9KTtcbiAgcmV0dXJuIGNoZWNrcztcbn1cblxuLyoqIFRydWUgd2hlbiBldmVyeSBSRVFVSVJFRCBwcmVyZXF1aXNpdGUgcGFzc2VkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXJlcXNTYXRpc2ZpZWQoY2hlY2tzOiByZWFkb25seSBQcmVyZXFDaGVja1tdKTogYm9vbGVhbiB7XG4gIHJldHVybiBjaGVja3MuZXZlcnkoKGMpID0+IGMub2sgfHwgIWMucmVxdWlyZWQpO1xufVxuIl19
|
package/dist/agent/targets.d.ts
CHANGED
|
@@ -32,6 +32,11 @@ export interface TargetSpec {
|
|
|
32
32
|
readonly required: readonly InputSpec[];
|
|
33
33
|
/** Optional inputs, passed through only when provided. */
|
|
34
34
|
readonly optional: readonly InputSpec[];
|
|
35
|
+
/**
|
|
36
|
+
* Repo folder(s) this target's deploy needs, for a sparse `--repo` bootstrap.
|
|
37
|
+
* Combined with COMMON_SPARSE_PATHS and any selected load steps' paths.
|
|
38
|
+
*/
|
|
39
|
+
readonly sparsePaths: readonly string[];
|
|
35
40
|
/** Post-deploy step to surface (registers admin + loads plugins). */
|
|
36
41
|
readonly postDeploy?: string;
|
|
37
42
|
/** Rough monthly cost (from docs). */
|
|
@@ -44,6 +49,40 @@ export interface TargetSpec {
|
|
|
44
49
|
export declare const TARGETS: Readonly<Record<TargetId, TargetSpec>>;
|
|
45
50
|
export declare const TARGET_IDS: readonly TargetId[];
|
|
46
51
|
export declare function isTargetId(value: unknown): value is TargetId;
|
|
52
|
+
/**
|
|
53
|
+
* Folders every `--repo` bootstrap needs regardless of target: the orchestration
|
|
54
|
+
* scripts. Each target's setup.sh + init-platform.sh live in / drive these.
|
|
55
|
+
* Deliberately minimal — heavier folders (plugins/compliance/samples) are pulled
|
|
56
|
+
* in only when their post-install option is selected (see LOAD_STEPS).
|
|
57
|
+
*/
|
|
58
|
+
export declare const COMMON_SPARSE_PATHS: readonly string[];
|
|
59
|
+
/**
|
|
60
|
+
* Opt-in post-install load steps. Each maps a provision `--with-*` flag to the
|
|
61
|
+
* init-platform env var that enables it AND the repo folder(s) it reads — so the
|
|
62
|
+
* sparse checkout grows exactly with the selected options.
|
|
63
|
+
*/
|
|
64
|
+
export declare const LOAD_STEPS: readonly [{
|
|
65
|
+
readonly id: "plugins";
|
|
66
|
+
readonly flag: "withPlugins";
|
|
67
|
+
readonly env: "LOAD_PLUGINS";
|
|
68
|
+
readonly paths: readonly ["deploy/plugins", "deploy/codebuild"];
|
|
69
|
+
}, {
|
|
70
|
+
readonly id: "compliance";
|
|
71
|
+
readonly flag: "withCompliance";
|
|
72
|
+
readonly env: "LOAD_COMPLIANCE";
|
|
73
|
+
readonly paths: readonly ["deploy/compliance"];
|
|
74
|
+
}, {
|
|
75
|
+
readonly id: "samples";
|
|
76
|
+
readonly flag: "withSamples";
|
|
77
|
+
readonly env: "LOAD_PIPELINES";
|
|
78
|
+
readonly paths: readonly ["deploy/samples"];
|
|
79
|
+
}];
|
|
80
|
+
export type LoadStepId = (typeof LOAD_STEPS)[number]['id'];
|
|
81
|
+
/**
|
|
82
|
+
* The de-duplicated set of sparse paths for a target plus the enabled load
|
|
83
|
+
* steps: common base ∪ target folder(s) ∪ each enabled step's folder(s).
|
|
84
|
+
*/
|
|
85
|
+
export declare function sparsePathsFor(target: TargetId, enabledLoadIds: readonly string[]): string[];
|
|
47
86
|
export interface AssembleResult {
|
|
48
87
|
/** The exact command to run — secrets masked as `***`. */
|
|
49
88
|
readonly command: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../src/agent/targets.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC;AAEhE,2DAA2D;AAC3D,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;IACxC,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;IACxC,qEAAqE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AA0BD,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../src/agent/targets.ts"],"names":[],"mappings":"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"}
|