(staged as /lib/init/init-main.js); point bundle-kernel-init and verify scripts at the new path. Wire curl, wget, openssl, ssh-keygen, and tar through coreutils and booter host delegates with booter-side CLI helpers; refresh related bins, bare manifest, shell completion, and man DB (kernel + seeder). Add booter support modules for ACL evaluation, audit chain, secret handles, peer admission, replication priority, process table, swarm lifecycle, boot-graph proc, metrics, monotonic time, protomux alias registry, and swarm peer policy; extend extension resolver, VFS, swarm connection managers, IPC, identity-account, and initd. Harden bare-os-bare-libs build on esbuild failure; add verify scripts for extension manifest schema and runtime incomplete markers; extend ctx API typings, gen-ctx-client-stub, and verify-ctx-dts. Update boot hook fragment, bundled init.js, handbook and reference docs (incl. kernel security and VFS path classes).
37 lines
902 B
JavaScript
37 lines
902 B
JavaScript
/**
|
|
* Lightweight counter/gauge registry merged into metrics_live and ctx hooks.
|
|
*/
|
|
|
|
/** @type {Map<string, number>} */
|
|
const counters = new Map()
|
|
|
|
/**
|
|
* @param {string} name
|
|
* @param {number} [delta]
|
|
*/
|
|
export function bareOsKernelMetricInc(name, delta = 1) {
|
|
const k = String(name || '').trim().slice(0, 128)
|
|
if (!k) return
|
|
const d = Number.isFinite(delta) ? Math.floor(delta) : 1
|
|
counters.set(k, (counters.get(k) || 0) + d)
|
|
}
|
|
|
|
/**
|
|
* @param {string} name
|
|
* @param {number} value
|
|
*/
|
|
export function bareOsKernelMetricSet(name, value) {
|
|
const k = String(name || '').trim().slice(0, 128)
|
|
if (!k) return
|
|
const v = Number.isFinite(value) ? value : 0
|
|
counters.set(k, v)
|
|
}
|
|
|
|
export function bareOsKernelMetricsSnapshot() {
|
|
return Object.fromEntries([...counters.entries()].sort(([a], [b]) => a.localeCompare(b)))
|
|
}
|
|
|
|
export function bareOsKernelMetricsReset() {
|
|
counters.clear()
|
|
}
|