@aui.io/apollo 0.1.76 → 0.1.79
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/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.d.ts +12 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.js +75 -8
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.js.map +1 -1
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/hierarchy.js +7 -1
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/hierarchy.js.map +1 -1
- package/node_modules/@aui.io/apollo-cli/package.json +3 -3
- package/node_modules/@aui.io/apollo-core/dist/src/api/builder-api.d.ts +130 -3
- package/node_modules/@aui.io/apollo-core/dist/src/api/builder-api.js +23 -2
- package/node_modules/@aui.io/apollo-core/dist/src/api/builder-api.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/build-area.d.ts +14 -2
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/build-area.js +19 -2
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/build-area.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/validate.d.ts +10 -0
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/validate.js +26 -0
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/validate.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.d.ts +60 -15
- package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.js +157 -24
- package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/services/clients.js +11 -3
- package/node_modules/@aui.io/apollo-core/dist/src/services/clients.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/package.json +1 -1
- package/node_modules/@aui.io/apollo-tui/package.json +2 -2
- package/package.json +4 -4
|
@@ -11,10 +11,14 @@ export class BuilderApiClient {
|
|
|
11
11
|
* connections' secret names — without it every vault-held credential
|
|
12
12
|
* draws an `unresolved-secret` warning for wiring that is fine where it
|
|
13
13
|
* matters. Names only ride into the gate, never values. */
|
|
14
|
-
validateTree(files, agentId) {
|
|
14
|
+
validateTree(files, agentId, options = {}) {
|
|
15
15
|
return this.http.request("/v1/builder/validate", {
|
|
16
16
|
method: "POST",
|
|
17
|
-
body: {
|
|
17
|
+
body: {
|
|
18
|
+
files,
|
|
19
|
+
...(agentId ? { agent_id: agentId } : {}),
|
|
20
|
+
...(options.fix ? { fix: true } : {}),
|
|
21
|
+
},
|
|
18
22
|
});
|
|
19
23
|
}
|
|
20
24
|
/** Enqueue one advisor turn (202 immediately — the answer comes by poll). */
|
|
@@ -70,5 +74,22 @@ export class BuilderApiClient {
|
|
|
70
74
|
buildView(buildId) {
|
|
71
75
|
return this.http.request(`/v1/builder/build/${buildId}`);
|
|
72
76
|
}
|
|
77
|
+
/** The certificate for a version family — the latest completed full
|
|
78
|
+
* regression on it, per case. `version` may be the family (`v4`) or any
|
|
79
|
+
* tag in it (`v4.5`). 404 `no_certificate` when the family has no such
|
|
80
|
+
* run; the caller treats that as "nothing to write". */
|
|
81
|
+
certificate(agentId, version) {
|
|
82
|
+
return this.http.request(`/v1/builder/agents/${encodeURIComponent(agentId)}/certificate?version=${encodeURIComponent(version)}`);
|
|
83
|
+
}
|
|
84
|
+
/** The certificate read AGAINST A TREE (build-bundle-schema-design.md
|
|
85
|
+
* §14.3, the blast radius): every case the checkout's edits reach since
|
|
86
|
+
* the certified run comes back `not_validated` with `why`, and `radius`
|
|
87
|
+
* names the rows that moved. Same 404 as `certificate`. */
|
|
88
|
+
certificateForTree(agentId, version, files) {
|
|
89
|
+
return this.http.request(`/v1/builder/agents/${encodeURIComponent(agentId)}/certificate`, {
|
|
90
|
+
method: "POST",
|
|
91
|
+
body: { version, files },
|
|
92
|
+
});
|
|
93
|
+
}
|
|
73
94
|
}
|
|
74
95
|
//# sourceMappingURL=builder-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder-api.js","sourceRoot":"","sources":["../../../src/api/builder-api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builder-api.js","sourceRoot":"","sources":["../../../src/api/builder-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,21 @@ export interface BuildFiles {
|
|
|
3
3
|
/** POSIX path relative to `bundle/build/` → raw bytes. */
|
|
4
4
|
files: Record<string, Buffer>;
|
|
5
5
|
}
|
|
6
|
-
/**
|
|
7
|
-
*
|
|
6
|
+
/** `bundle/build/certification.yaml` — WRITTEN by `apollo pull` from the
|
|
7
|
+
* certificate query, never authored, never pushed (build-bundle-schema-design.md
|
|
8
|
+
* §10). The area's read and hash both skip it, so it never reaches the
|
|
9
|
+
* baseline, the dirty check, the diff or a push. */
|
|
10
|
+
export declare const CERTIFICATION_FILE = "certification.yaml";
|
|
11
|
+
/** True for the files the platform writes into the area for the reader's
|
|
12
|
+
* benefit — not proof material, not the author's work. */
|
|
13
|
+
export declare function isWrittenBuildFile(relativePath: string): boolean;
|
|
14
|
+
/** Every file under the area, dotfiles and the platform-written files
|
|
15
|
+
* skipped. A missing directory reads as an empty area — "no proof material
|
|
16
|
+
* yet" is a normal state. */
|
|
8
17
|
export declare function readBuildFiles(root: string): Promise<BuildFiles>;
|
|
18
|
+
/** Sorted sha256 per file — the baseline's record of the area. A written
|
|
19
|
+
* file is dropped here too, so a snapshot that carries one (a remote
|
|
20
|
+
* bundle from before the rule) never records it either. */
|
|
9
21
|
export declare function hashBuildFiles(files: Record<string, Buffer>): Record<string, string>;
|
|
10
22
|
/** Exact sync to the given snapshot: write everything, delete what the
|
|
11
23
|
* snapshot no longer holds, prune emptied directories. */
|
|
@@ -16,6 +16,16 @@
|
|
|
16
16
|
import { createHash } from "node:crypto";
|
|
17
17
|
import { mkdir, readdir, readFile, rmdir, unlink, writeFile } from "node:fs/promises";
|
|
18
18
|
import path from "node:path";
|
|
19
|
+
/** `bundle/build/certification.yaml` — WRITTEN by `apollo pull` from the
|
|
20
|
+
* certificate query, never authored, never pushed (build-bundle-schema-design.md
|
|
21
|
+
* §10). The area's read and hash both skip it, so it never reaches the
|
|
22
|
+
* baseline, the dirty check, the diff or a push. */
|
|
23
|
+
export const CERTIFICATION_FILE = "certification.yaml";
|
|
24
|
+
/** True for the files the platform writes into the area for the reader's
|
|
25
|
+
* benefit — not proof material, not the author's work. */
|
|
26
|
+
export function isWrittenBuildFile(relativePath) {
|
|
27
|
+
return relativePath === CERTIFICATION_FILE;
|
|
28
|
+
}
|
|
19
29
|
function safeBuildRel(relativePath) {
|
|
20
30
|
const normalised = path.posix.normalize(relativePath.replaceAll("\\", "/"));
|
|
21
31
|
if (path.posix.isAbsolute(normalised) ||
|
|
@@ -32,8 +42,9 @@ function resolveInside(root, relativePath) {
|
|
|
32
42
|
}
|
|
33
43
|
return target;
|
|
34
44
|
}
|
|
35
|
-
/** Every file under the area, dotfiles
|
|
36
|
-
* as an empty area — "no proof material
|
|
45
|
+
/** Every file under the area, dotfiles and the platform-written files
|
|
46
|
+
* skipped. A missing directory reads as an empty area — "no proof material
|
|
47
|
+
* yet" is a normal state. */
|
|
37
48
|
export async function readBuildFiles(root) {
|
|
38
49
|
const absoluteRoot = path.resolve(root);
|
|
39
50
|
const files = {};
|
|
@@ -54,6 +65,8 @@ export async function readBuildFiles(root) {
|
|
|
54
65
|
const relativePath = relativeDirectory
|
|
55
66
|
? `${relativeDirectory}/${entry.name}`
|
|
56
67
|
: entry.name;
|
|
68
|
+
if (isWrittenBuildFile(relativePath))
|
|
69
|
+
continue;
|
|
57
70
|
const absolutePath = path.join(directory, entry.name);
|
|
58
71
|
if (entry.isDirectory()) {
|
|
59
72
|
await walk(absolutePath, relativePath);
|
|
@@ -66,8 +79,12 @@ export async function readBuildFiles(root) {
|
|
|
66
79
|
await walk(absoluteRoot);
|
|
67
80
|
return { root: absoluteRoot, files };
|
|
68
81
|
}
|
|
82
|
+
/** Sorted sha256 per file — the baseline's record of the area. A written
|
|
83
|
+
* file is dropped here too, so a snapshot that carries one (a remote
|
|
84
|
+
* bundle from before the rule) never records it either. */
|
|
69
85
|
export function hashBuildFiles(files) {
|
|
70
86
|
return Object.fromEntries(Object.entries(files)
|
|
87
|
+
.filter(([relativePath]) => !isWrittenBuildFile(relativePath))
|
|
71
88
|
.sort(([left], [right]) => left.localeCompare(right))
|
|
72
89
|
.map(([relativePath, content]) => [
|
|
73
90
|
relativePath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-area.js","sourceRoot":"","sources":["../../../src/bundle/build-area.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,SAAS,YAAY,CAAC,YAAoB;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5E,IACE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;QACjC,UAAU,KAAK,IAAI;QACnB,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAC5B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,YAAoB;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9D,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;
|
|
1
|
+
{"version":3,"file":"build-area.js","sourceRoot":"","sources":["../../../src/bundle/build-area.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BundleAudit } from "../api/builder-api.js";
|
|
1
2
|
export interface ValidationFinding {
|
|
2
3
|
file: string;
|
|
3
4
|
path: string;
|
|
@@ -38,3 +39,12 @@ export declare function mapRuntimeValidation(response: RuntimeValidateResponse):
|
|
|
38
39
|
*/
|
|
39
40
|
export declare function renderValidation(result: ValidationResult): string;
|
|
40
41
|
export declare function assertValidProgram(result: ValidationResult): ValidationResult;
|
|
42
|
+
/**
|
|
43
|
+
* The build-bundle audit as text — errors, warnings, then advisories, one
|
|
44
|
+
* `✗ [code] file: message` line each, under its own heading, so a reader
|
|
45
|
+
* tells the builder's opinion of the proof material from the engine's
|
|
46
|
+
* opinion of the program. Empty when the audit has nothing to say.
|
|
47
|
+
*/
|
|
48
|
+
export declare function renderBundleAudit(audit: BundleAudit | undefined): string[];
|
|
49
|
+
/** Refuse when the audit carries an error: every one refuses a push. */
|
|
50
|
+
export declare function assertPushableBundle(audit: BundleAudit | undefined): void;
|
|
@@ -102,4 +102,30 @@ function summarizeReport(name, body) {
|
|
|
102
102
|
const compact = JSON.stringify(body);
|
|
103
103
|
return compact.length > 120 ? `${compact.slice(0, 117)}...` : compact;
|
|
104
104
|
}
|
|
105
|
+
const EMPTY_AUDIT = { errors: [], warnings: [], advisories: [] };
|
|
106
|
+
/**
|
|
107
|
+
* The build-bundle audit as text — errors, warnings, then advisories, one
|
|
108
|
+
* `✗ [code] file: message` line each, under its own heading, so a reader
|
|
109
|
+
* tells the builder's opinion of the proof material from the engine's
|
|
110
|
+
* opinion of the program. Empty when the audit has nothing to say.
|
|
111
|
+
*/
|
|
112
|
+
export function renderBundleAudit(audit) {
|
|
113
|
+
const block = audit ?? EMPTY_AUDIT;
|
|
114
|
+
const line = (f, tag) => `${tag} [${f.code}] ${f.file}: ${f.message}`;
|
|
115
|
+
const lines = [
|
|
116
|
+
...block.errors.map((f) => line(f, "✗")),
|
|
117
|
+
...block.warnings.map((f) => line(f, "⚠")),
|
|
118
|
+
...block.advisories.map((f) => line(f, "·")),
|
|
119
|
+
];
|
|
120
|
+
return lines.length > 0 ? ["build bundle:", ...lines] : [];
|
|
121
|
+
}
|
|
122
|
+
/** Refuse when the audit carries an error: every one refuses a push. */
|
|
123
|
+
export function assertPushableBundle(audit) {
|
|
124
|
+
if (audit && audit.errors.length > 0) {
|
|
125
|
+
throw new ValidationError([
|
|
126
|
+
"The build bundle cannot ship — fix these before pushing:",
|
|
127
|
+
...renderBundleAudit({ ...audit, warnings: [], advisories: [] }).slice(1),
|
|
128
|
+
].join("\n"));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
105
131
|
//# sourceMappingURL=validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/bundle/validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/bundle/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentSettingsClient, BuildBundlePushResponse } from "../api/agent-settings.js";
|
|
2
2
|
import { type AgentVersion, type ManagementClient, type VersionPull, type VersionPush } from "../api/management.js";
|
|
3
|
-
import type { BuilderApiClient, EraCensus, OrphanCensus } from "../api/builder-api.js";
|
|
3
|
+
import type { BuilderApiClient, BundleAudit, BundleFix, Certificate, EraCensus, OrphanCensus } from "../api/builder-api.js";
|
|
4
4
|
import type { RuntimeApiClient } from "../api/runtime-api.js";
|
|
5
5
|
import { type FileDiff } from "../bundle/baseline.js";
|
|
6
6
|
import { type ValidationResult } from "../bundle/validate.js";
|
|
@@ -12,6 +12,7 @@ export declare function requireAgent(context: Context): string;
|
|
|
12
12
|
/** The checkout root the context is bound to (exported for the sibling
|
|
13
13
|
* services that anchor per-checkout state there, e.g. the advisor thread). */
|
|
14
14
|
export declare function agentRoot(context: Context): string;
|
|
15
|
+
export declare function bundleSourceRoot(context: Context, root?: string): string;
|
|
15
16
|
/** What one pull moved in the build area, when the agent has a build bundle. */
|
|
16
17
|
export interface BuildAreaSync {
|
|
17
18
|
version: number;
|
|
@@ -111,6 +112,12 @@ export interface PullCheckoutResult {
|
|
|
111
112
|
removed: string[];
|
|
112
113
|
/** The build area sync, when the agent has a build bundle. */
|
|
113
114
|
build?: BuildAreaSync;
|
|
115
|
+
/**
|
|
116
|
+
* The certificate written as `bundle/build/certification.yaml` — the
|
|
117
|
+
* pulled version's family has a completed full regression. Absent when it
|
|
118
|
+
* has none (any stale file was removed) or the query failed (see `note`).
|
|
119
|
+
*/
|
|
120
|
+
certificate?: Certificate;
|
|
114
121
|
/** The engine build every fetch above was routed to, when pinned. */
|
|
115
122
|
runtimeVersion?: string;
|
|
116
123
|
skills?: string[];
|
|
@@ -139,7 +146,12 @@ export declare function pullCheckout(context: Context, clients: {
|
|
|
139
146
|
management: ManagementClient;
|
|
140
147
|
runtime: RuntimeApiClient;
|
|
141
148
|
agentSettings: AgentSettingsClient;
|
|
149
|
+
builder: BuilderApiClient;
|
|
142
150
|
}, options?: PullCheckoutOptions): Promise<PullCheckoutResult>;
|
|
151
|
+
/** `bundle/build/certification.yaml` as text — build-bundle-schema-design.md
|
|
152
|
+
* §10, the wire answer laid out in the schema's order. Epoch `taken_at`
|
|
153
|
+
* becomes the ISO stamp the schema shows. */
|
|
154
|
+
export declare function renderCertification(certificate: Certificate): string;
|
|
143
155
|
/** Both lanes against the baseline in one report: program paths bare (as
|
|
144
156
|
* ever), build paths under a `build/` prefix — same dialect as the push
|
|
145
157
|
* and pull dirty-guard messages. */
|
|
@@ -176,6 +188,13 @@ export interface PushCheckoutResult {
|
|
|
176
188
|
* (tau-airlines desk, ENGINE-REQUESTS-3, platform item 1).
|
|
177
189
|
*/
|
|
178
190
|
validationLane?: "runtime" | "builder";
|
|
191
|
+
/**
|
|
192
|
+
* The builder's audit of the proof material (`bundle/build/**`), the push's
|
|
193
|
+
* SECOND check: the engine says whether the program runs, the builder says
|
|
194
|
+
* whether the brief, needs, cases, scenarios and world are present, well
|
|
195
|
+
* formed and consistent. Every error here refused the push; warnings ride.
|
|
196
|
+
*/
|
|
197
|
+
bundle?: BundleAudit;
|
|
179
198
|
}
|
|
180
199
|
/**
|
|
181
200
|
* Publish the checkout, both lanes: a changed program becomes a new agent
|
|
@@ -189,7 +208,12 @@ export declare function pushBundle(context: Context, clients: {
|
|
|
189
208
|
management: ManagementClient;
|
|
190
209
|
runtime: RuntimeApiClient;
|
|
191
210
|
agentSettings: AgentSettingsClient;
|
|
192
|
-
/**
|
|
211
|
+
/**
|
|
212
|
+
* The builder's audit of the proof material — a push's second check
|
|
213
|
+
* (build-bundle-validation-design.md §3), and the fallback gate when the
|
|
214
|
+
* runtime validate lane is dead. Optional in the type for the callers
|
|
215
|
+
* that never push; a push without it refuses.
|
|
216
|
+
*/
|
|
193
217
|
builder?: BuilderApiClient;
|
|
194
218
|
}, options?: {
|
|
195
219
|
root?: string;
|
|
@@ -202,29 +226,50 @@ export declare function validateProgramBundle(runtime: RuntimeApiClient, files:
|
|
|
202
226
|
agentId?: string): Promise<ValidationResult>;
|
|
203
227
|
/**
|
|
204
228
|
* The checkout as builder-api's stateless gates see it: the program under
|
|
205
|
-
* `src/**`, and the
|
|
206
|
-
*
|
|
207
|
-
* (
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
* build tree also holds transcripts and binaries that a JSON
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
229
|
+
* `src/**`, and the build records under `build/**` — the brief, the needs,
|
|
230
|
+
* the cases, the scripted suite, the world and the decision log. They ride
|
|
231
|
+
* for the AUDIT (the builder's check of the proof material: presence, shape,
|
|
232
|
+
* every relation) and for the advisor, whose advice on "why does this
|
|
233
|
+
* regression go red" needs the suite the question is about
|
|
234
|
+
* (authoring-modes-design.md F4). Named files, not the whole area — the
|
|
235
|
+
* build tree also holds transcripts and binaries that a JSON payload has no
|
|
236
|
+
* business carrying. A legacy `bundle/src/scenarios.yaml` is NOT lifted
|
|
237
|
+
* here — it rides as `src/scenarios.yaml` and the audit refuses it with the
|
|
238
|
+
* finding that teaches the move (headless-authoring-design.md).
|
|
215
239
|
*/
|
|
216
240
|
export declare function readCheckoutTree(root: string): Promise<Record<string, string>>;
|
|
217
|
-
/** `ValidationResult` plus the
|
|
218
|
-
*
|
|
241
|
+
/** `ValidationResult` plus what only the builder's gate returns: the
|
|
242
|
+
* build-bundle audit, the push verdict it decides, and the two mandatory
|
|
243
|
+
* advisory censuses — the censuses never move `valid`. */
|
|
219
244
|
export interface BundleValidation extends ValidationResult {
|
|
245
|
+
/** No program error and no audit error of any layer — what a push says. */
|
|
246
|
+
pushable: boolean;
|
|
247
|
+
bundle: BundleAudit;
|
|
220
248
|
orphans: OrphanCensus;
|
|
221
249
|
eraCensus: EraCensus;
|
|
250
|
+
/** Only when asked with `fix`: the mechanical repairs builder-api planned
|
|
251
|
+
* over a copy of the tree (this checkout writes them), and the verdict
|
|
252
|
+
* after them. */
|
|
253
|
+
fixes?: BundleFix[];
|
|
254
|
+
fixed?: {
|
|
255
|
+
valid: boolean;
|
|
256
|
+
pushable: boolean;
|
|
257
|
+
bundle: BundleAudit;
|
|
258
|
+
};
|
|
222
259
|
}
|
|
223
260
|
/** Validation via builder-api's stateless gate. Unlike the push lane
|
|
224
261
|
* (`validateProgramBundle`, runtime-api, pinned engine), this is the
|
|
225
262
|
* builder's own opinion of the tree — structure, load, semantics, wiring,
|
|
226
263
|
* plus the orphan and era censuses. */
|
|
227
|
-
export declare function validateLocalBundle(context: Context, builder: BuilderApiClient, root?: string
|
|
264
|
+
export declare function validateLocalBundle(context: Context, builder: BuilderApiClient, root?: string, options?: {
|
|
265
|
+
fix?: boolean;
|
|
266
|
+
}): Promise<BundleValidation>;
|
|
267
|
+
/**
|
|
268
|
+
* Write builder-api's mechanical repairs onto the checkout: `src/**` paths
|
|
269
|
+
* land under the program root, `build/**` beside it, a null content removes
|
|
270
|
+
* the file. Returns the paths touched, in the plan's order.
|
|
271
|
+
*/
|
|
272
|
+
export declare function applyBundleFixes(fixes: BundleFix[], root: string): Promise<string[]>;
|
|
228
273
|
export declare function listVersions(context: Context, management: ManagementClient): Promise<{
|
|
229
274
|
results: AgentVersion[];
|
|
230
275
|
}>;
|