@forgezero/agent 0.1.118 → 0.1.119

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 CHANGED
@@ -5,7 +5,7 @@
5
5
  and commit the generator and rendered files together.
6
6
  -->
7
7
 
8
- # @forgezero/agent
8
+ # Compute Agent and CLI
9
9
 
10
10
  The node agent deploys on a compute; tenant mode also holds one complete project across environments in RAM and serves it over a group-scoped unix socket, while platform mode never duplicates the API vault.
11
11
 
@@ -917,7 +917,7 @@ async function postSignedNode(options, path, body) {
917
917
  }
918
918
 
919
919
  // src/version.ts
920
- var VERSION3 = "0.1.118";
920
+ var VERSION3 = "0.1.119";
921
921
 
922
922
  // src/agent-heartbeat.ts
923
923
  function readAgentHostMetrics() {
package/dist/bootstrap.js CHANGED
@@ -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.118";
1463
+ var VERSION = "0.1.119";
1464
1464
 
1465
1465
  // src/software.ts
1466
1466
  var PINNED_BUN_VERSION = "1.3.14";
@@ -55,24 +55,31 @@ var OS_CATALOG = [
55
55
  }
56
56
  ];
57
57
  var SOFTWARE_CATALOG = [
58
- { id: "bun", version: "1.3.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
- { id: "docker", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
- { id: "containerd", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
- { id: "kata-containers", version: "4.0.0", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
- { id: "nginx", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
- { id: "arangodb", version: "3.11.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
- { id: "cloudflared", version: "2026.7.3", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
- { id: "cloudflare-warp", version: "2026.6.822.0-min", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
- { id: "ufw", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
- { id: "openssh-client", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
- { id: "git", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
- { id: "docker", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
- { id: "containerd", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
- { id: "nginx", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
- { id: "ufw", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
- { id: "openssh-client", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
- { id: "git", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
58
+ { id: "bun", version: "1.3.14", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
+ { id: "docker", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
+ { id: "containerd", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
+ { id: "kata-containers", version: "4.0.0", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
+ { id: "nginx", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
+ { id: "arangodb", version: "3.11.14", billingClass: "paid-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
+ { id: "cloudflared", version: "2026.7.3", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
+ { id: "cloudflare-warp", version: "2026.6.822.0-min", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
+ { id: "ufw", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
+ { id: "openssh-client", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
+ { id: "git", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
+ { id: "docker", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
+ { id: "containerd", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
+ { id: "nginx", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
+ { id: "ufw", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
+ { id: "openssh-client", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
+ { id: "git", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
75
75
  ];
76
+ var softwareBillingClass = (requirement) => {
77
+ const entry = SOFTWARE_CATALOG.find((candidate) => candidate.id === requirement.id && candidate.version === requirement.version);
78
+ if (!entry)
79
+ throw new Error(`unsupported software billing coordinate: ${requirement.id}@${requirement.version}`);
80
+ return entry.billingClass;
81
+ };
82
+ var countPaidManagedSoftware = (requirements) => new Set(requirements.filter((requirement) => softwareBillingClass(requirement) === "paid-managed").map((requirement) => `${requirement.id}@${requirement.version}`)).size;
76
83
  var UBUNTU_2604_X64 = [
77
84
  { requirement: { id: "bun", version: "1.3.14" } },
78
85
  { requirement: { id: "docker", version: "ubuntu-26.04" } },
@@ -55,24 +55,31 @@ var OS_CATALOG = [
55
55
  }
56
56
  ];
57
57
  var SOFTWARE_CATALOG = [
58
- { id: "bun", version: "1.3.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
- { id: "docker", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
- { id: "containerd", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
- { id: "kata-containers", version: "4.0.0", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
- { id: "nginx", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
- { id: "arangodb", version: "3.11.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
- { id: "cloudflared", version: "2026.7.3", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
- { id: "cloudflare-warp", version: "2026.6.822.0-min", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
- { id: "ufw", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
- { id: "openssh-client", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
- { id: "git", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
- { id: "docker", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
- { id: "containerd", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
- { id: "nginx", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
- { id: "ufw", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
- { id: "openssh-client", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
- { id: "git", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
58
+ { id: "bun", version: "1.3.14", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
+ { id: "docker", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
+ { id: "containerd", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
+ { id: "kata-containers", version: "4.0.0", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
+ { id: "nginx", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
+ { id: "arangodb", version: "3.11.14", billingClass: "paid-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
+ { id: "cloudflared", version: "2026.7.3", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
+ { id: "cloudflare-warp", version: "2026.6.822.0-min", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
+ { id: "ufw", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
+ { id: "openssh-client", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
+ { id: "git", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
+ { id: "docker", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
+ { id: "containerd", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
+ { id: "nginx", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
+ { id: "ufw", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
+ { id: "openssh-client", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
+ { id: "git", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
75
75
  ];
76
+ var softwareBillingClass = (requirement) => {
77
+ const entry = SOFTWARE_CATALOG.find((candidate) => candidate.id === requirement.id && candidate.version === requirement.version);
78
+ if (!entry)
79
+ throw new Error(`unsupported software billing coordinate: ${requirement.id}@${requirement.version}`);
80
+ return entry.billingClass;
81
+ };
82
+ var countPaidManagedSoftware = (requirements) => new Set(requirements.filter((requirement) => softwareBillingClass(requirement) === "paid-managed").map((requirement) => `${requirement.id}@${requirement.version}`)).size;
76
83
  var UBUNTU_2604_X64 = [
77
84
  { requirement: { id: "bun", version: "1.3.14" } },
78
85
  { requirement: { id: "docker", version: "ubuntu-26.04" } },
@@ -55,24 +55,31 @@ var OS_CATALOG = [
55
55
  }
56
56
  ];
57
57
  var SOFTWARE_CATALOG = [
58
- { id: "bun", version: "1.3.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
- { id: "docker", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
- { id: "containerd", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
- { id: "kata-containers", version: "4.0.0", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
- { id: "nginx", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
- { id: "arangodb", version: "3.11.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
- { id: "cloudflared", version: "2026.7.3", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
- { id: "cloudflare-warp", version: "2026.6.822.0-min", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
- { id: "ufw", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
- { id: "openssh-client", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
- { id: "git", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
- { id: "docker", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
- { id: "containerd", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
- { id: "nginx", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
- { id: "ufw", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
- { id: "openssh-client", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
- { id: "git", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
58
+ { id: "bun", version: "1.3.14", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
+ { id: "docker", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
+ { id: "containerd", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
+ { id: "kata-containers", version: "4.0.0", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
+ { id: "nginx", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
+ { id: "arangodb", version: "3.11.14", billingClass: "paid-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
+ { id: "cloudflared", version: "2026.7.3", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
+ { id: "cloudflare-warp", version: "2026.6.822.0-min", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
+ { id: "ufw", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
+ { id: "openssh-client", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
+ { id: "git", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
+ { id: "docker", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
+ { id: "containerd", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
+ { id: "nginx", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
+ { id: "ufw", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
+ { id: "openssh-client", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
+ { id: "git", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
75
75
  ];
76
+ var softwareBillingClass = (requirement) => {
77
+ const entry = SOFTWARE_CATALOG.find((candidate) => candidate.id === requirement.id && candidate.version === requirement.version);
78
+ if (!entry)
79
+ throw new Error(`unsupported software billing coordinate: ${requirement.id}@${requirement.version}`);
80
+ return entry.billingClass;
81
+ };
82
+ var countPaidManagedSoftware = (requirements) => new Set(requirements.filter((requirement) => softwareBillingClass(requirement) === "paid-managed").map((requirement) => `${requirement.id}@${requirement.version}`)).size;
76
83
  var UBUNTU_2604_X64 = [
77
84
  { requirement: { id: "bun", version: "1.3.14" } },
78
85
  { requirement: { id: "docker", version: "ubuntu-26.04" } },
@@ -1,6 +1,6 @@
1
1
  import { type DrainReport, type QueueTask } from '@forgezero/runtime/queue';
2
2
  import { type GitHostResolver } from './git-egress';
3
- import type { SoftwareRequirement } from './software';
3
+ import { type SoftwareRequirement } from './software';
4
4
  import type { DeploymentService } from './definition';
5
5
  import type { ServiceActivationState } from './service-supervisor';
6
6
  import type { ContainerActivateRequest, ContainerBuildRequest, ContainerBuildResult } from './container-supervisor';
@@ -74,6 +74,8 @@ export interface DeploymentResult {
74
74
  profile: string;
75
75
  /** Resolved only from the validated plan and its bounded inputs at this revision. */
76
76
  resolvedTargets?: readonly ResolvedDeploymentTarget[];
77
+ /** Distinct paid catalogue entries successfully managed on this compute. */
78
+ paidManagedSoftwareCount: number;
77
79
  release: string;
78
80
  ok: boolean;
79
81
  phases: readonly RunResult[];
package/dist/fz-agent.js CHANGED
@@ -5051,24 +5051,31 @@ var OS_CATALOG = [
5051
5051
  }
5052
5052
  ];
5053
5053
  var SOFTWARE_CATALOG = [
5054
- { id: "bun", version: "1.3.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5055
- { id: "docker", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5056
- { id: "containerd", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5057
- { id: "kata-containers", version: "4.0.0", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5058
- { id: "nginx", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5059
- { id: "arangodb", version: "3.11.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5060
- { id: "cloudflared", version: "2026.7.3", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5061
- { id: "cloudflare-warp", version: "2026.6.822.0-min", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5062
- { id: "ufw", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5063
- { id: "openssh-client", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5064
- { id: "git", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5065
- { id: "docker", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5066
- { id: "containerd", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5067
- { id: "nginx", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5068
- { id: "ufw", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5069
- { id: "openssh-client", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5070
- { id: "git", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
5054
+ { id: "bun", version: "1.3.14", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5055
+ { id: "docker", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5056
+ { id: "containerd", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5057
+ { id: "kata-containers", version: "4.0.0", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5058
+ { id: "nginx", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5059
+ { id: "arangodb", version: "3.11.14", billingClass: "paid-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5060
+ { id: "cloudflared", version: "2026.7.3", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5061
+ { id: "cloudflare-warp", version: "2026.6.822.0-min", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5062
+ { id: "ufw", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5063
+ { id: "openssh-client", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5064
+ { id: "git", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5065
+ { id: "docker", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5066
+ { id: "containerd", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5067
+ { id: "nginx", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5068
+ { id: "ufw", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5069
+ { id: "openssh-client", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
5070
+ { id: "git", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
5071
5071
  ];
5072
+ var softwareBillingClass = (requirement) => {
5073
+ const entry = SOFTWARE_CATALOG.find((candidate) => candidate.id === requirement.id && candidate.version === requirement.version);
5074
+ if (!entry)
5075
+ throw new Error(`unsupported software billing coordinate: ${requirement.id}@${requirement.version}`);
5076
+ return entry.billingClass;
5077
+ };
5078
+ var countPaidManagedSoftware = (requirements) => new Set(requirements.filter((requirement) => softwareBillingClass(requirement) === "paid-managed").map((requirement) => `${requirement.id}@${requirement.version}`)).size;
5072
5079
  var UBUNTU_2604_X64 = [
5073
5080
  { requirement: { id: "bun", version: "1.3.14" } },
5074
5081
  { requirement: { id: "docker", version: "ubuntu-26.04" } },
@@ -8300,6 +8307,7 @@ function createDeploymentManager(options) {
8300
8307
  const planPath = join2(release, DEPLOY_PLAN_FILE);
8301
8308
  if (existsSync4(planPath)) {
8302
8309
  const plan = parseDeploymentPlan(readDefinition(planPath));
8310
+ const paidManagedSoftware = new Set;
8303
8311
  for (const workflow of Object.values(plan.spec.workflows))
8304
8312
  for (const stage2 of Object.values(workflow.stages)) {
8305
8313
  if (stage2.strategy.mode === "rolling" || stage2.strategy.mode === "canary" || Object.values(stage2.steps).some((step2) => step2.scope.kind === "target-batches")) {
@@ -8460,6 +8468,11 @@ function createDeploymentManager(options) {
8460
8468
  return { id: id2, version: requirement2.version };
8461
8469
  });
8462
8470
  await options.ensureSoftware(requirements);
8471
+ for (const requirement2 of requirements) {
8472
+ if (countPaidManagedSoftware([requirement2]) === 1) {
8473
+ paidManagedSoftware.add(`${requirement2.id}@${requirement2.version}`);
8474
+ }
8475
+ }
8463
8476
  return { changed: true };
8464
8477
  },
8465
8478
  "forgezero.network/ensure@1": async ({ resolved }) => {
@@ -8694,6 +8707,7 @@ function createDeploymentManager(options) {
8694
8707
  phases: [phase],
8695
8708
  execution: deploymentExecution([phase]),
8696
8709
  resolvedTargets,
8710
+ paidManagedSoftwareCount: paidManagedSoftware.size,
8697
8711
  ...capacity2 ? { capacity: capacity2 } : {}
8698
8712
  };
8699
8713
  }
@@ -8810,6 +8824,7 @@ function createDeploymentManager(options) {
8810
8824
  definitionDigest,
8811
8825
  definitionVersion: 2,
8812
8826
  profile: options.profile,
8827
+ paidManagedSoftwareCount: countPaidManagedSoftware(selectedProfile.software),
8813
8828
  release,
8814
8829
  ok: true,
8815
8830
  phases,
@@ -9138,6 +9153,7 @@ async function pullDeploymentOnce(options) {
9138
9153
  definitionDigest: result.definitionDigest,
9139
9154
  definitionVersion: result.definitionVersion,
9140
9155
  profile: result.profile,
9156
+ paidManagedSoftwareCount: result.paidManagedSoftwareCount,
9141
9157
  execution: result.execution,
9142
9158
  ...result.resolvedTargets ? { resolvedTargets: result.resolvedTargets.map((target) => ({
9143
9159
  ...target,
@@ -9618,7 +9634,7 @@ async function writeAndCloseProcessInput(input, value) {
9618
9634
  }
9619
9635
 
9620
9636
  // src/version.ts
9621
- var VERSION2 = "0.1.118";
9637
+ var VERSION2 = "0.1.119";
9622
9638
 
9623
9639
  // src/ssh-bootstrap.ts
9624
9640
  class SshBootstrapError extends Error {
@@ -18812,6 +18828,7 @@ export {
18812
18828
  startAgentHeartbeat,
18813
18829
  startAgent,
18814
18830
  stageAgentRelease,
18831
+ softwareBillingClass,
18815
18832
  selectAgentRelease,
18816
18833
  runAgent,
18817
18834
  restoreAgentRelease,
@@ -18871,6 +18888,7 @@ export {
18871
18888
  createDeploymentSecretResolver,
18872
18889
  createDeploymentManager,
18873
18890
  createAgentTelemetry,
18891
+ countPaidManagedSoftware,
18874
18892
  configuredAgentSeed,
18875
18893
  configureMeshConnector,
18876
18894
  compareVersions,
package/dist/fz.js CHANGED
@@ -4634,7 +4634,7 @@ var VaultError, runtimeEnvironment = () => typeof process !== "undefined" && pro
4634
4634
  } catch {
4635
4635
  return;
4636
4636
  }
4637
- }, VERSION = "0.1.21";
4637
+ }, VERSION = "0.1.22";
4638
4638
  var init_dist = __esm(() => {
4639
4639
  init_identity();
4640
4640
  VaultError = class VaultError extends Error {
@@ -4841,7 +4841,7 @@ var UPDATE_RETRY_BASE_MS = 5 * 60000;
4841
4841
  var UPDATE_RETRY_MAX_MS = 24 * 60 * 60000;
4842
4842
 
4843
4843
  // src/version.ts
4844
- var VERSION2 = "0.1.118";
4844
+ var VERSION2 = "0.1.119";
4845
4845
 
4846
4846
  // src/software.ts
4847
4847
  var PINNED_BUN_VERSION = "1.3.14";
@@ -4873,23 +4873,23 @@ var OS_CATALOG = [
4873
4873
  }
4874
4874
  ];
4875
4875
  var SOFTWARE_CATALOG = [
4876
- { id: "bun", version: "1.3.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4877
- { id: "docker", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4878
- { id: "containerd", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4879
- { id: "kata-containers", version: "4.0.0", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4880
- { id: "nginx", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4881
- { id: "arangodb", version: "3.11.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4882
- { id: "cloudflared", version: "2026.7.3", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4883
- { id: "cloudflare-warp", version: "2026.6.822.0-min", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4884
- { id: "ufw", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4885
- { id: "openssh-client", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4886
- { id: "git", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4887
- { id: "docker", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4888
- { id: "containerd", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4889
- { id: "nginx", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4890
- { id: "ufw", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4891
- { id: "openssh-client", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4892
- { id: "git", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
4876
+ { id: "bun", version: "1.3.14", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4877
+ { id: "docker", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4878
+ { id: "containerd", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4879
+ { id: "kata-containers", version: "4.0.0", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4880
+ { id: "nginx", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4881
+ { id: "arangodb", version: "3.11.14", billingClass: "paid-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4882
+ { id: "cloudflared", version: "2026.7.3", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4883
+ { id: "cloudflare-warp", version: "2026.6.822.0-min", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4884
+ { id: "ufw", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4885
+ { id: "openssh-client", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4886
+ { id: "git", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4887
+ { id: "docker", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4888
+ { id: "containerd", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4889
+ { id: "nginx", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4890
+ { id: "ufw", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4891
+ { id: "openssh-client", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
4892
+ { id: "git", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
4893
4893
  ];
4894
4894
  var DOCKER_DAEMON_CONFIG = `${JSON.stringify({
4895
4895
  "data-root": "/var/lib/docker",
package/dist/index.d.ts CHANGED
@@ -42,7 +42,7 @@ export type { AgentRelease, StagedAgentRelease, UpdateCommand, UpdateCommandResu
42
42
  export { activateAgentRelease, probeAgentSocket, readAgentUpdateReceipt, recoverInterruptedAgentUpdate, requestAgentUpdate, startAgentUpdateHelper, AGENT_UPDATE_GROUP, AGENT_UPDATE_HELPER_UNIT_PATH, AGENT_UPDATE_JOURNAL, AGENT_UPDATE_RECEIPT } from './agent-update-helper';
43
43
  export type { AgentUpdateOutcome, AgentUpdateReceipt, AgentUpdateRequest, AgentUpdateResponse } from './agent-update-helper';
44
44
  export { DEFAULT_SOFTWARE_HELPER_SOCKET, requestSoftware, startSoftwareHelper, SOFTWARE_HELPER_GROUP, SOFTWARE_HELPER_UNIT_PATH } from './software-helper';
45
- export { ensureSoftwareRequirements, observeSoftwareHost, validateSoftwareRequirements, OS_CATALOG, SOFTWARE_CATALOG } from './software';
45
+ export { countPaidManagedSoftware, ensureSoftwareRequirements, observeSoftwareHost, softwareBillingClass, validateSoftwareRequirements, OS_CATALOG, SOFTWARE_CATALOG } from './software';
46
46
  export type { CatalogStatus, DeploymentChannel, OsCatalogEntry, SoftwareCatalogEntry, SoftwareCommandResult, SoftwareExec, SoftwareId, SoftwareObservation, SoftwareRequirement } from './software';
47
47
  export { AGENT_EGRESS_TABLE, BLOCKED_IPV4, BLOCKED_IPV6, SYSTEMD_RESOLVED_ADDRESS, SYSTEMD_RESOLVED_STUB, applyAgentEgressPolicy, normalizeEgressTcpPorts, renderAgentEgressNft, superviseAgentEgressPolicy, systemdAgentEgressDirectives, verifyAgentEgressPolicy } from './egress-policy';
48
48
  export type { EgressCommand, EgressCommandResult } from './egress-policy';
@@ -366,7 +366,7 @@ function systemdAgentEgressDirectives(loopbackTcpPorts = []) {
366
366
  }
367
367
 
368
368
  // src/version.ts
369
- var VERSION = "0.1.118";
369
+ var VERSION = "0.1.119";
370
370
 
371
371
  // src/otel-collector.ts
372
372
  var FORGEZERO_OTEL_COLLECTOR_UNIT = "forgezero-otel-collector.service";
@@ -195,24 +195,31 @@ var OS_CATALOG = [
195
195
  }
196
196
  ];
197
197
  var SOFTWARE_CATALOG = [
198
- { id: "bun", version: "1.3.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
199
- { id: "docker", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
200
- { id: "containerd", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
201
- { id: "kata-containers", version: "4.0.0", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
202
- { id: "nginx", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
203
- { id: "arangodb", version: "3.11.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
204
- { id: "cloudflared", version: "2026.7.3", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
205
- { id: "cloudflare-warp", version: "2026.6.822.0-min", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
206
- { id: "ufw", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
207
- { id: "openssh-client", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
208
- { id: "git", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
209
- { id: "docker", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
210
- { id: "containerd", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
211
- { id: "nginx", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
212
- { id: "ufw", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
213
- { id: "openssh-client", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
214
- { id: "git", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
198
+ { id: "bun", version: "1.3.14", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
199
+ { id: "docker", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
200
+ { id: "containerd", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
201
+ { id: "kata-containers", version: "4.0.0", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
202
+ { id: "nginx", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
203
+ { id: "arangodb", version: "3.11.14", billingClass: "paid-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
204
+ { id: "cloudflared", version: "2026.7.3", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
205
+ { id: "cloudflare-warp", version: "2026.6.822.0-min", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
206
+ { id: "ufw", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
207
+ { id: "openssh-client", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
208
+ { id: "git", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
209
+ { id: "docker", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
210
+ { id: "containerd", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
211
+ { id: "nginx", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
212
+ { id: "ufw", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
213
+ { id: "openssh-client", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
214
+ { id: "git", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
215
215
  ];
216
+ var softwareBillingClass = (requirement) => {
217
+ const entry = SOFTWARE_CATALOG.find((candidate) => candidate.id === requirement.id && candidate.version === requirement.version);
218
+ if (!entry)
219
+ throw new Error(`unsupported software billing coordinate: ${requirement.id}@${requirement.version}`);
220
+ return entry.billingClass;
221
+ };
222
+ var countPaidManagedSoftware = (requirements) => new Set(requirements.filter((requirement) => softwareBillingClass(requirement) === "paid-managed").map((requirement) => `${requirement.id}@${requirement.version}`)).size;
216
223
  var UBUNTU_2604_X64 = [
217
224
  { requirement: { id: "bun", version: "1.3.14" } },
218
225
  { requirement: { id: "docker", version: "ubuntu-26.04" } },
@@ -195,24 +195,31 @@ var OS_CATALOG = [
195
195
  }
196
196
  ];
197
197
  var SOFTWARE_CATALOG = [
198
- { id: "bun", version: "1.3.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
199
- { id: "docker", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
200
- { id: "containerd", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
201
- { id: "kata-containers", version: "4.0.0", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
202
- { id: "nginx", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
203
- { id: "arangodb", version: "3.11.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
204
- { id: "cloudflared", version: "2026.7.3", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
205
- { id: "cloudflare-warp", version: "2026.6.822.0-min", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
206
- { id: "ufw", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
207
- { id: "openssh-client", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
208
- { id: "git", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
209
- { id: "docker", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
210
- { id: "containerd", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
211
- { id: "nginx", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
212
- { id: "ufw", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
213
- { id: "openssh-client", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
214
- { id: "git", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
198
+ { id: "bun", version: "1.3.14", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
199
+ { id: "docker", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
200
+ { id: "containerd", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
201
+ { id: "kata-containers", version: "4.0.0", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
202
+ { id: "nginx", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
203
+ { id: "arangodb", version: "3.11.14", billingClass: "paid-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
204
+ { id: "cloudflared", version: "2026.7.3", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
205
+ { id: "cloudflare-warp", version: "2026.6.822.0-min", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
206
+ { id: "ufw", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
207
+ { id: "openssh-client", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
208
+ { id: "git", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
209
+ { id: "docker", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
210
+ { id: "containerd", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
211
+ { id: "nginx", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
212
+ { id: "ufw", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
213
+ { id: "openssh-client", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
214
+ { id: "git", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
215
215
  ];
216
+ var softwareBillingClass = (requirement) => {
217
+ const entry = SOFTWARE_CATALOG.find((candidate) => candidate.id === requirement.id && candidate.version === requirement.version);
218
+ if (!entry)
219
+ throw new Error(`unsupported software billing coordinate: ${requirement.id}@${requirement.version}`);
220
+ return entry.billingClass;
221
+ };
222
+ var countPaidManagedSoftware = (requirements) => new Set(requirements.filter((requirement) => softwareBillingClass(requirement) === "paid-managed").map((requirement) => `${requirement.id}@${requirement.version}`)).size;
216
223
  var UBUNTU_2604_X64 = [
217
224
  { requirement: { id: "bun", version: "1.3.14" } },
218
225
  { requirement: { id: "docker", version: "ubuntu-26.04" } },
@@ -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.118";
1463
+ var VERSION = "0.1.119";
1464
1464
 
1465
1465
  // src/software.ts
1466
1466
  var PINNED_BUN_VERSION = "1.3.14";
@@ -55,24 +55,31 @@ var OS_CATALOG = [
55
55
  }
56
56
  ];
57
57
  var SOFTWARE_CATALOG = [
58
- { id: "bun", version: "1.3.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
- { id: "docker", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
- { id: "containerd", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
- { id: "kata-containers", version: "4.0.0", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
- { id: "nginx", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
- { id: "arangodb", version: "3.11.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
- { id: "cloudflared", version: "2026.7.3", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
- { id: "cloudflare-warp", version: "2026.6.822.0-min", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
- { id: "ufw", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
- { id: "openssh-client", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
- { id: "git", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
- { id: "docker", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
- { id: "containerd", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
- { id: "nginx", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
- { id: "ufw", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
- { id: "openssh-client", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
- { id: "git", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
58
+ { id: "bun", version: "1.3.14", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
+ { id: "docker", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
+ { id: "containerd", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
+ { id: "kata-containers", version: "4.0.0", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
+ { id: "nginx", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
+ { id: "arangodb", version: "3.11.14", billingClass: "paid-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
+ { id: "cloudflared", version: "2026.7.3", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
+ { id: "cloudflare-warp", version: "2026.6.822.0-min", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
+ { id: "ufw", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
+ { id: "openssh-client", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
+ { id: "git", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
+ { id: "docker", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
+ { id: "containerd", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
+ { id: "nginx", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
+ { id: "ufw", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
+ { id: "openssh-client", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
+ { id: "git", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
75
75
  ];
76
+ var softwareBillingClass = (requirement) => {
77
+ const entry = SOFTWARE_CATALOG.find((candidate) => candidate.id === requirement.id && candidate.version === requirement.version);
78
+ if (!entry)
79
+ throw new Error(`unsupported software billing coordinate: ${requirement.id}@${requirement.version}`);
80
+ return entry.billingClass;
81
+ };
82
+ var countPaidManagedSoftware = (requirements) => new Set(requirements.filter((requirement) => softwareBillingClass(requirement) === "paid-managed").map((requirement) => `${requirement.id}@${requirement.version}`)).size;
76
83
  var UBUNTU_2604_X64 = [
77
84
  { requirement: { id: "bun", version: "1.3.14" } },
78
85
  { requirement: { id: "docker", version: "ubuntu-26.04" } },
@@ -898,24 +898,31 @@ var OS_CATALOG = [
898
898
  }
899
899
  ];
900
900
  var SOFTWARE_CATALOG = [
901
- { id: "bun", version: "1.3.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
902
- { id: "docker", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
903
- { id: "containerd", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
904
- { id: "kata-containers", version: "4.0.0", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
905
- { id: "nginx", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
906
- { id: "arangodb", version: "3.11.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
907
- { id: "cloudflared", version: "2026.7.3", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
908
- { id: "cloudflare-warp", version: "2026.6.822.0-min", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
909
- { id: "ufw", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
910
- { id: "openssh-client", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
911
- { id: "git", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
912
- { id: "docker", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
913
- { id: "containerd", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
914
- { id: "nginx", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
915
- { id: "ufw", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
916
- { id: "openssh-client", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
917
- { id: "git", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
901
+ { id: "bun", version: "1.3.14", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
902
+ { id: "docker", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
903
+ { id: "containerd", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
904
+ { id: "kata-containers", version: "4.0.0", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
905
+ { id: "nginx", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
906
+ { id: "arangodb", version: "3.11.14", billingClass: "paid-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
907
+ { id: "cloudflared", version: "2026.7.3", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
908
+ { id: "cloudflare-warp", version: "2026.6.822.0-min", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
909
+ { id: "ufw", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
910
+ { id: "openssh-client", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
911
+ { id: "git", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
912
+ { id: "docker", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
913
+ { id: "containerd", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
914
+ { id: "nginx", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
915
+ { id: "ufw", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
916
+ { id: "openssh-client", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
917
+ { id: "git", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
918
918
  ];
919
+ var softwareBillingClass = (requirement) => {
920
+ const entry = SOFTWARE_CATALOG.find((candidate) => candidate.id === requirement.id && candidate.version === requirement.version);
921
+ if (!entry)
922
+ throw new Error(`unsupported software billing coordinate: ${requirement.id}@${requirement.version}`);
923
+ return entry.billingClass;
924
+ };
925
+ var countPaidManagedSoftware = (requirements) => new Set(requirements.filter((requirement) => softwareBillingClass(requirement) === "paid-managed").map((requirement) => `${requirement.id}@${requirement.version}`)).size;
919
926
  var UBUNTU_2604_X64 = [
920
927
  { requirement: { id: "bun", version: "1.3.14" } },
921
928
  { requirement: { id: "docker", version: "ubuntu-26.04" } },
@@ -3009,7 +3016,7 @@ function requestSoftware(requirements, socketPath = DEFAULT_SOFTWARE_HELPER_SOCK
3009
3016
  }
3010
3017
 
3011
3018
  // src/version.ts
3012
- var VERSION3 = "0.1.118";
3019
+ var VERSION3 = "0.1.119";
3013
3020
 
3014
3021
  // src/egress-policy.ts
3015
3022
  import { realpathSync as realpathSync3 } from "node:fs";
@@ -55,24 +55,31 @@ var OS_CATALOG = [
55
55
  }
56
56
  ];
57
57
  var SOFTWARE_CATALOG = [
58
- { id: "bun", version: "1.3.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
- { id: "docker", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
- { id: "containerd", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
- { id: "kata-containers", version: "4.0.0", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
- { id: "nginx", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
- { id: "arangodb", version: "3.11.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
- { id: "cloudflared", version: "2026.7.3", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
- { id: "cloudflare-warp", version: "2026.6.822.0-min", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
- { id: "ufw", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
- { id: "openssh-client", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
- { id: "git", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
- { id: "docker", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
- { id: "containerd", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
- { id: "nginx", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
- { id: "ufw", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
- { id: "openssh-client", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
- { id: "git", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
58
+ { id: "bun", version: "1.3.14", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
+ { id: "docker", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
+ { id: "containerd", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
+ { id: "kata-containers", version: "4.0.0", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
+ { id: "nginx", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
+ { id: "arangodb", version: "3.11.14", billingClass: "paid-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
+ { id: "cloudflared", version: "2026.7.3", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
+ { id: "cloudflare-warp", version: "2026.6.822.0-min", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
+ { id: "ufw", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
+ { id: "openssh-client", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
+ { id: "git", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
+ { id: "docker", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
+ { id: "containerd", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
+ { id: "nginx", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
+ { id: "ufw", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
+ { id: "openssh-client", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
+ { id: "git", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
75
75
  ];
76
+ var softwareBillingClass = (requirement) => {
77
+ const entry = SOFTWARE_CATALOG.find((candidate) => candidate.id === requirement.id && candidate.version === requirement.version);
78
+ if (!entry)
79
+ throw new Error(`unsupported software billing coordinate: ${requirement.id}@${requirement.version}`);
80
+ return entry.billingClass;
81
+ };
82
+ var countPaidManagedSoftware = (requirements) => new Set(requirements.filter((requirement) => softwareBillingClass(requirement) === "paid-managed").map((requirement) => `${requirement.id}@${requirement.version}`)).size;
76
83
  var UBUNTU_2604_X64 = [
77
84
  { requirement: { id: "bun", version: "1.3.14" } },
78
85
  { requirement: { id: "docker", version: "ubuntu-26.04" } },
package/dist/provision.js CHANGED
@@ -898,24 +898,31 @@ var OS_CATALOG = [
898
898
  }
899
899
  ];
900
900
  var SOFTWARE_CATALOG = [
901
- { id: "bun", version: "1.3.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
902
- { id: "docker", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
903
- { id: "containerd", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
904
- { id: "kata-containers", version: "4.0.0", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
905
- { id: "nginx", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
906
- { id: "arangodb", version: "3.11.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
907
- { id: "cloudflared", version: "2026.7.3", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
908
- { id: "cloudflare-warp", version: "2026.6.822.0-min", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
909
- { id: "ufw", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
910
- { id: "openssh-client", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
911
- { id: "git", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
912
- { id: "docker", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
913
- { id: "containerd", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
914
- { id: "nginx", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
915
- { id: "ufw", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
916
- { id: "openssh-client", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
917
- { id: "git", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
901
+ { id: "bun", version: "1.3.14", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
902
+ { id: "docker", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
903
+ { id: "containerd", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
904
+ { id: "kata-containers", version: "4.0.0", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
905
+ { id: "nginx", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
906
+ { id: "arangodb", version: "3.11.14", billingClass: "paid-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
907
+ { id: "cloudflared", version: "2026.7.3", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
908
+ { id: "cloudflare-warp", version: "2026.6.822.0-min", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
909
+ { id: "ufw", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
910
+ { id: "openssh-client", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
911
+ { id: "git", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
912
+ { id: "docker", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
913
+ { id: "containerd", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
914
+ { id: "nginx", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
915
+ { id: "ufw", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
916
+ { id: "openssh-client", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
917
+ { id: "git", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
918
918
  ];
919
+ var softwareBillingClass = (requirement) => {
920
+ const entry = SOFTWARE_CATALOG.find((candidate) => candidate.id === requirement.id && candidate.version === requirement.version);
921
+ if (!entry)
922
+ throw new Error(`unsupported software billing coordinate: ${requirement.id}@${requirement.version}`);
923
+ return entry.billingClass;
924
+ };
925
+ var countPaidManagedSoftware = (requirements) => new Set(requirements.filter((requirement) => softwareBillingClass(requirement) === "paid-managed").map((requirement) => `${requirement.id}@${requirement.version}`)).size;
919
926
  var UBUNTU_2604_X64 = [
920
927
  { requirement: { id: "bun", version: "1.3.14" } },
921
928
  { requirement: { id: "docker", version: "ubuntu-26.04" } },
@@ -3009,7 +3016,7 @@ function requestSoftware(requirements, socketPath = DEFAULT_SOFTWARE_HELPER_SOCK
3009
3016
  }
3010
3017
 
3011
3018
  // src/version.ts
3012
- var VERSION3 = "0.1.118";
3019
+ var VERSION3 = "0.1.119";
3013
3020
 
3014
3021
  // src/egress-policy.ts
3015
3022
  import { realpathSync as realpathSync3 } from "node:fs";
@@ -55,24 +55,31 @@ var OS_CATALOG = [
55
55
  }
56
56
  ];
57
57
  var SOFTWARE_CATALOG = [
58
- { id: "bun", version: "1.3.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
- { id: "docker", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
- { id: "containerd", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
- { id: "kata-containers", version: "4.0.0", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
- { id: "nginx", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
- { id: "arangodb", version: "3.11.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
- { id: "cloudflared", version: "2026.7.3", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
- { id: "cloudflare-warp", version: "2026.6.822.0-min", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
- { id: "ufw", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
- { id: "openssh-client", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
- { id: "git", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
- { id: "docker", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
- { id: "containerd", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
- { id: "nginx", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
- { id: "ufw", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
- { id: "openssh-client", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
- { id: "git", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
58
+ { id: "bun", version: "1.3.14", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
+ { id: "docker", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
+ { id: "containerd", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
+ { id: "kata-containers", version: "4.0.0", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
+ { id: "nginx", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
+ { id: "arangodb", version: "3.11.14", billingClass: "paid-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
+ { id: "cloudflared", version: "2026.7.3", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
+ { id: "cloudflare-warp", version: "2026.6.822.0-min", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
+ { id: "ufw", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
+ { id: "openssh-client", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
+ { id: "git", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
+ { id: "docker", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
+ { id: "containerd", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
+ { id: "nginx", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
+ { id: "ufw", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
+ { id: "openssh-client", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
+ { id: "git", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
75
75
  ];
76
+ var softwareBillingClass = (requirement) => {
77
+ const entry = SOFTWARE_CATALOG.find((candidate) => candidate.id === requirement.id && candidate.version === requirement.version);
78
+ if (!entry)
79
+ throw new Error(`unsupported software billing coordinate: ${requirement.id}@${requirement.version}`);
80
+ return entry.billingClass;
81
+ };
82
+ var countPaidManagedSoftware = (requirements) => new Set(requirements.filter((requirement) => softwareBillingClass(requirement) === "paid-managed").map((requirement) => `${requirement.id}@${requirement.version}`)).size;
76
83
  var UBUNTU_2604_X64 = [
77
84
  { requirement: { id: "bun", version: "1.3.14" } },
78
85
  { requirement: { id: "docker", version: "ubuntu-26.04" } },
@@ -7,6 +7,7 @@ export interface SoftwareRequirement {
7
7
  version: string;
8
8
  }
9
9
  export interface SoftwareCatalogEntry extends SoftwareRequirement {
10
+ billingClass: 'free-managed' | 'paid-managed';
10
11
  status: CatalogStatus;
11
12
  os: 'ubuntu';
12
13
  osVersion: '24.04' | '26.04';
@@ -55,6 +56,9 @@ export declare const KATA_CONTAINERS_VERSION = "4.0.0";
55
56
  /** Public, command-free catalog. Root strategies remain private below. */
56
57
  export declare const OS_CATALOG: readonly OsCatalogEntry[];
57
58
  export declare const SOFTWARE_CATALOG: readonly SoftwareCatalogEntry[];
59
+ export declare const softwareBillingClass: (requirement: SoftwareRequirement) => SoftwareCatalogEntry["billingClass"];
60
+ /** Counts distinct paid software instances managed on one compute. */
61
+ export declare const countPaidManagedSoftware: (requirements: readonly SoftwareRequirement[]) => number;
58
62
  export declare const softwareSpawnFailure: (cause: unknown, argv: readonly string[]) => SoftwareCommandResult | undefined;
59
63
  export declare const runSoftwareCommand: (argv: readonly string[], env?: Record<string, string>) => Promise<SoftwareCommandResult>;
60
64
  export declare const softwareDownloadCommand: (url: string, destination: string, maximumBytes: number) => readonly string[];
package/dist/software.js CHANGED
@@ -55,24 +55,31 @@ var OS_CATALOG = [
55
55
  }
56
56
  ];
57
57
  var SOFTWARE_CATALOG = [
58
- { id: "bun", version: "1.3.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
- { id: "docker", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
- { id: "containerd", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
- { id: "kata-containers", version: "4.0.0", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
- { id: "nginx", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
- { id: "arangodb", version: "3.11.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
- { id: "cloudflared", version: "2026.7.3", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
- { id: "cloudflare-warp", version: "2026.6.822.0-min", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
- { id: "ufw", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
- { id: "openssh-client", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
- { id: "git", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
- { id: "docker", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
- { id: "containerd", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
- { id: "nginx", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
- { id: "ufw", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
- { id: "openssh-client", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
- { id: "git", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
58
+ { id: "bun", version: "1.3.14", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
+ { id: "docker", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
+ { id: "containerd", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
+ { id: "kata-containers", version: "4.0.0", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
+ { id: "nginx", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
+ { id: "arangodb", version: "3.11.14", billingClass: "paid-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
+ { id: "cloudflared", version: "2026.7.3", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
+ { id: "cloudflare-warp", version: "2026.6.822.0-min", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
+ { id: "ufw", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
+ { id: "openssh-client", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
+ { id: "git", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
+ { id: "docker", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
+ { id: "containerd", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
+ { id: "nginx", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
+ { id: "ufw", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
+ { id: "openssh-client", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
+ { id: "git", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
75
75
  ];
76
+ var softwareBillingClass = (requirement) => {
77
+ const entry = SOFTWARE_CATALOG.find((candidate) => candidate.id === requirement.id && candidate.version === requirement.version);
78
+ if (!entry)
79
+ throw new Error(`unsupported software billing coordinate: ${requirement.id}@${requirement.version}`);
80
+ return entry.billingClass;
81
+ };
82
+ var countPaidManagedSoftware = (requirements) => new Set(requirements.filter((requirement) => softwareBillingClass(requirement) === "paid-managed").map((requirement) => `${requirement.id}@${requirement.version}`)).size;
76
83
  var UBUNTU_2604_X64 = [
77
84
  { requirement: { id: "bun", version: "1.3.14" } },
78
85
  { requirement: { id: "docker", version: "ubuntu-26.04" } },
@@ -546,10 +553,12 @@ export {
546
553
  validateSoftwareRequirements,
547
554
  softwareSpawnFailure,
548
555
  softwareDownloadCommand,
556
+ softwareBillingClass,
549
557
  runSoftwareCommand,
550
558
  observeSoftwareHost,
551
559
  executeSoftwareOperation,
552
560
  ensureSoftwareRequirements,
561
+ countPaidManagedSoftware,
553
562
  SOFTWARE_CATALOG,
554
563
  PINNED_BUN_VERSION,
555
564
  OS_CATALOG,
package/dist/ubuntu.js CHANGED
@@ -55,24 +55,31 @@ var OS_CATALOG = [
55
55
  }
56
56
  ];
57
57
  var SOFTWARE_CATALOG = [
58
- { id: "bun", version: "1.3.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
- { id: "docker", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
- { id: "containerd", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
- { id: "kata-containers", version: "4.0.0", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
- { id: "nginx", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
- { id: "arangodb", version: "3.11.14", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
- { id: "cloudflared", version: "2026.7.3", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
- { id: "cloudflare-warp", version: "2026.6.822.0-min", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
- { id: "ufw", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
- { id: "openssh-client", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
- { id: "git", version: "ubuntu-26.04", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
- { id: "docker", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
- { id: "containerd", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
- { id: "nginx", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
- { id: "ufw", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
- { id: "openssh-client", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
- { id: "git", version: "ubuntu-24.04", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
58
+ { id: "bun", version: "1.3.14", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
59
+ { id: "docker", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
60
+ { id: "containerd", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
61
+ { id: "kata-containers", version: "4.0.0", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
62
+ { id: "nginx", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
63
+ { id: "arangodb", version: "3.11.14", billingClass: "paid-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
64
+ { id: "cloudflared", version: "2026.7.3", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
65
+ { id: "cloudflare-warp", version: "2026.6.822.0-min", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
66
+ { id: "ufw", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
67
+ { id: "openssh-client", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
68
+ { id: "git", version: "ubuntu-26.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "26.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
69
+ { id: "docker", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
70
+ { id: "containerd", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
71
+ { id: "nginx", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
72
+ { id: "ufw", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
73
+ { id: "openssh-client", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" },
74
+ { id: "git", version: "ubuntu-24.04", billingClass: "free-managed", status: "active", os: "ubuntu", osVersion: "24.04", architecture: "x64", evidence: "reviewed-strategy-and-tests" }
75
75
  ];
76
+ var softwareBillingClass = (requirement) => {
77
+ const entry = SOFTWARE_CATALOG.find((candidate) => candidate.id === requirement.id && candidate.version === requirement.version);
78
+ if (!entry)
79
+ throw new Error(`unsupported software billing coordinate: ${requirement.id}@${requirement.version}`);
80
+ return entry.billingClass;
81
+ };
82
+ var countPaidManagedSoftware = (requirements) => new Set(requirements.filter((requirement) => softwareBillingClass(requirement) === "paid-managed").map((requirement) => `${requirement.id}@${requirement.version}`)).size;
76
83
  var UBUNTU_2604_X64 = [
77
84
  { requirement: { id: "bun", version: "1.3.14" } },
78
85
  { requirement: { id: "docker", version: "ubuntu-26.04" } },
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.118";
2
+ export declare const VERSION = "0.1.119";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgezero/agent",
3
- "version": "0.1.118",
3
+ "version": "0.1.119",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "check": "tsc --noEmit",
@@ -11,13 +11,13 @@
11
11
  "typescript": "^5.6.0",
12
12
  "@types/bun": "latest",
13
13
  "@types/node": "^22.0.0",
14
- "@forgezero/access": "0.1.11",
14
+ "@forgezero/access": "0.1.12",
15
15
  "@noble/curves": "^2.2.0",
16
16
  "@noble/post-quantum": "^0.6.1"
17
17
  },
18
18
  "dependencies": {
19
- "@forgezero/runtime": "0.1.16",
20
- "@forgezero/vault": "0.1.21",
19
+ "@forgezero/runtime": "0.1.17",
20
+ "@forgezero/vault": "0.1.22",
21
21
  "@noble/curves": "2.2.0",
22
22
  "@noble/hashes": "2.2.0",
23
23
  "@noble/post-quantum": "0.6.1",