@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.
Files changed (23) hide show
  1. package/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.d.ts +12 -0
  2. package/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.js +75 -8
  3. package/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.js.map +1 -1
  4. package/node_modules/@aui.io/apollo-cli/dist/src/commands/hierarchy.js +7 -1
  5. package/node_modules/@aui.io/apollo-cli/dist/src/commands/hierarchy.js.map +1 -1
  6. package/node_modules/@aui.io/apollo-cli/package.json +3 -3
  7. package/node_modules/@aui.io/apollo-core/dist/src/api/builder-api.d.ts +130 -3
  8. package/node_modules/@aui.io/apollo-core/dist/src/api/builder-api.js +23 -2
  9. package/node_modules/@aui.io/apollo-core/dist/src/api/builder-api.js.map +1 -1
  10. package/node_modules/@aui.io/apollo-core/dist/src/bundle/build-area.d.ts +14 -2
  11. package/node_modules/@aui.io/apollo-core/dist/src/bundle/build-area.js +19 -2
  12. package/node_modules/@aui.io/apollo-core/dist/src/bundle/build-area.js.map +1 -1
  13. package/node_modules/@aui.io/apollo-core/dist/src/bundle/validate.d.ts +10 -0
  14. package/node_modules/@aui.io/apollo-core/dist/src/bundle/validate.js +26 -0
  15. package/node_modules/@aui.io/apollo-core/dist/src/bundle/validate.js.map +1 -1
  16. package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.d.ts +60 -15
  17. package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.js +157 -24
  18. package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.js.map +1 -1
  19. package/node_modules/@aui.io/apollo-core/dist/src/services/clients.js +11 -3
  20. package/node_modules/@aui.io/apollo-core/dist/src/services/clients.js.map +1 -1
  21. package/node_modules/@aui.io/apollo-core/package.json +1 -1
  22. package/node_modules/@aui.io/apollo-tui/package.json +2 -2
  23. 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: { files, ...(agentId ? { agent_id: agentId } : {}) },
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":"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"}
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
- /** Every file under the area, dotfiles skipped. A missing directory reads
7
- * as an empty area — "no proof material yet" is a normal state. */
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 skipped. A missing directory reads
36
- * as an empty area — "no proof material yet" is a normal state. */
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":"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"}
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":"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"}
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
- /** Optional: the fallback gate when the runtime validate lane is dead. */
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 authored YAML the build tree holds — the scripted suite
206
- * (`scenarios.yaml`), the case bank (`cases.yaml`), the needs and the world
207
- * (`needs.yaml`, `world.yaml`) — under `build/**`. The records ride for the
208
- * reader, not the gates: the advisor ships this identical tree, and advice
209
- * on "why does this regression go red" needs the suite the question is
210
- * about (authoring-modes-design.md F4). Named files, not the whole area — the
211
- * build tree also holds transcripts and binaries that a JSON advice payload
212
- * has no business carrying. A legacy `bundle/src/scenarios.yaml` is NOT
213
- * lifted here — it rides as `src/scenarios.yaml` and the service refuses it
214
- * with the finding that teaches the move (headless-authoring-design.md).
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 two mandatory advisory censuses the builder
218
- * gate returns alongside its verdict — neither moves `valid`. */
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): Promise<BundleValidation>;
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
  }>;