(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).
23 lines
670 B
JavaScript
23 lines
670 B
JavaScript
/**
|
|
* Lexicographic replication priority tiers (boot-critical paths first).
|
|
* @param {string[]} paths
|
|
*/
|
|
export function prioritizeReplicationPaths(paths) {
|
|
const boot = ['/boot/', '/etc/bare-os/', '/lib/bare-os/', '/bin/']
|
|
/** @type {{ path: string, tier: number }[]} */
|
|
const scored = []
|
|
for (const p of paths) {
|
|
const path = String(p || '').replace(/\\/g, '/')
|
|
let tier = 99
|
|
for (let i = 0; i < boot.length; i++) {
|
|
if (path.startsWith(boot[i])) {
|
|
tier = i
|
|
break
|
|
}
|
|
}
|
|
scored.push({ path, tier })
|
|
}
|
|
scored.sort((a, b) => a.tier - b.tier || a.path.localeCompare(b.path))
|
|
return scored.map((s) => s.path)
|
|
}
|