@forgezero/agent 0.1.151 → 0.1.153

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.
@@ -366,7 +366,7 @@ function systemdAgentEgressDirectives(loopbackTcpPorts = []) {
366
366
  }
367
367
 
368
368
  // src/version.ts
369
- var VERSION = "0.1.151";
369
+ var VERSION = "0.1.153";
370
370
 
371
371
  // src/otel-collector.ts
372
372
  var FORGEZERO_OTEL_COLLECTOR_UNIT = "forgezero-otel-collector.service";
@@ -1460,7 +1460,7 @@ var UPDATE_RETRY_BASE_MS = 5 * 60000;
1460
1460
  var UPDATE_RETRY_MAX_MS = 24 * 60 * 60000;
1461
1461
 
1462
1462
  // src/version.ts
1463
- var VERSION = "0.1.151";
1463
+ var VERSION = "0.1.153";
1464
1464
 
1465
1465
  // src/software.ts
1466
1466
  var PINNED_BUN_VERSION = "1.3.14";
@@ -98,6 +98,8 @@ export interface RunOptions {
98
98
  source: string;
99
99
  }>;
100
100
  now?: () => number;
101
+ /** Receives each redacted terminal step as soon as it is durable locally. */
102
+ onStep?: (result: StepResult) => Promise<void>;
101
103
  }
102
104
  /**
103
105
  * Replace every secret value wherever it appears.
package/dist/pipeline.js CHANGED
@@ -64,13 +64,15 @@ async function runPipeline(options) {
64
64
  const outcome = exitCode === 0 ? "ok" : "failed";
65
65
  if (outcome === "failed")
66
66
  failed = true;
67
- steps.push({
67
+ const recorded = {
68
68
  name: step.name,
69
69
  outcome,
70
70
  exitCode,
71
71
  log: redact(output, values),
72
72
  durationMs: now() - started
73
- });
73
+ };
74
+ steps.push(recorded);
75
+ await options.onStep?.(recorded);
74
76
  }
75
77
  return { pipeline: pipeline.name, ok: !failed, assurance, steps };
76
78
  }
@@ -3081,7 +3081,7 @@ function requestSoftware(requirements, socketPath = DEFAULT_SOFTWARE_HELPER_SOCK
3081
3081
  }
3082
3082
 
3083
3083
  // src/version.ts
3084
- var VERSION3 = "0.1.151";
3084
+ var VERSION3 = "0.1.153";
3085
3085
 
3086
3086
  // src/egress-policy.ts
3087
3087
  import { realpathSync as realpathSync3 } from "node:fs";
package/dist/provision.js CHANGED
@@ -3081,7 +3081,7 @@ function requestSoftware(requirements, socketPath = DEFAULT_SOFTWARE_HELPER_SOCK
3081
3081
  }
3082
3082
 
3083
3083
  // src/version.ts
3084
- var VERSION3 = "0.1.151";
3084
+ var VERSION3 = "0.1.153";
3085
3085
 
3086
3086
  // src/egress-policy.ts
3087
3087
  import { realpathSync as realpathSync3 } from "node:fs";
@@ -96,6 +96,7 @@ export interface MetalAdmissionProof {
96
96
  mlDsaSignature: string;
97
97
  };
98
98
  }
99
+ export type MetalAdmissionStage = 'validating-target' | 'resolving-host' | 'verifying-host-key' | 'opening-ssh' | 'installing-managed-key' | 'checking-host-policy' | 'copying-agent' | 'installing-runtime' | 'bootstrapping-agent' | 'verifying-proof';
99
100
  export interface BootstrapCommandResult {
100
101
  exitCode: number;
101
102
  output: string;
@@ -125,6 +126,7 @@ export interface SshBootstrapPullOptions {
125
126
  telemetry?: AgentOperationTelemetry;
126
127
  resolveHost?: GitHostResolver;
127
128
  canClaim?: () => boolean;
129
+ onMetalAdmissionProgress?: (stage: MetalAdmissionStage) => Promise<void>;
128
130
  }
129
131
  export type SshBootstrapResult = {
130
132
  status: 'idle';
@@ -162,7 +164,7 @@ export type MetalAdmissionResult = {
162
164
  failureCode: string;
163
165
  };
164
166
  /** Install the fixed metal Agent profile, then ask that host—not the runner—to sign its local preflight. */
165
- export declare function executeMetalAdmission(claim: RemoteMetalAdmissionClaim, options: Pick<SshBootstrapPullOptions, 'platformApiUrl' | 'sshKeyPath' | 'targetTelemetryEndpoint' | 'fzCliPath' | 'fzAgentPath' | 'exec' | 'resolveHost'>): Promise<MetalAdmissionProof>;
167
+ export declare function executeMetalAdmission(claim: RemoteMetalAdmissionClaim, options: Pick<SshBootstrapPullOptions, 'platformApiUrl' | 'sshKeyPath' | 'targetTelemetryEndpoint' | 'fzCliPath' | 'fzAgentPath' | 'exec' | 'resolveHost' | 'onMetalAdmissionProgress'>): Promise<MetalAdmissionProof>;
166
168
  export declare function pullMetalAdmissionOnce(options: SshBootstrapPullOptions): Promise<MetalAdmissionResult>;
167
169
  export declare function startMetalAdmissionPull(options: SshBootstrapPullOptions): {
168
170
  stop(): Promise<void>;
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** One package version shared by both public binaries. Pinned to package.json by tests. */
2
- export declare const VERSION = "0.1.151";
2
+ export declare const VERSION = "0.1.153";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgezero/agent",
3
- "version": "0.1.151",
3
+ "version": "0.1.153",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "check": "tsc --noEmit",