feat(protocol)!: kernel capability wire v2 and ctx capability maps

Replace top-level seed/proc bits (bits, bits2, … bits11) with
kernelCapabilityWords (semantic camelCase keys), kernelCapabilityWireVersion,
and helpers in kernel-capability-wire.js. Bump bare-os-protocol to 0.9.0 and
BARE_OS_KERNEL_FEATURE_BITS_DOC to 15.

Booter: emit/consume v2 on bare_os.capabilities, /proc/bare_os_features, debug
proc, offline LKG seedCapabilityInfo; BARE_OS_SEED_CAP_STRICT walks semantic
keys. Guest ctx exposes frozen bareOsAdvertisedKernelCapabilityWords and
bareOsSeedKernelCapabilityWords; remove per-word bareOsAdvertisedKernelCapabilities*
and bareOsSeedCapability* (BARE_OS_CTX_API_VERSION 1.22.0).

Kernel boot policy (stock init.js + seeder copy) reads advertised/seed words
via those maps. Update bare-os-ctx.d.ts, CI verifiers, compatibility matrix,
capability-words docs, ADR 001, and changelogs.

Fix duplicate re-exports of EXTENDED_SEEDING_PLATFORM and RLIMITS_DELEGATES_SHELL
in bare-os-protocol/index.js (Pear/Bare duplicate export error).
This commit is contained in:
Raven Scott
2026-04-04 07:19:46 -04:00
parent 21a05806b4
commit f13e2db689
62 changed files with 1812 additions and 1734 deletions
+48 -72
View File
@@ -40,143 +40,119 @@ function main() {
)
process.exit(1)
}
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_V1')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_V1')
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_WORD_PRIMARY')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_WORD_PRIMARY')
process.exit(1)
}
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_V2')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_V2')
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_WORD_EXTENDED_SEEDING_PLATFORM')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_WORD_EXTENDED_SEEDING_PLATFORM')
process.exit(1)
}
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_V3')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_V3')
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_WORD_RLIMITS_DELEGATES_SHELL')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_WORD_RLIMITS_DELEGATES_SHELL')
process.exit(1)
}
if (!idx.includes('bits3')) {
console.error('index.js should wire seed/features bits3')
if (!idx.includes('bareOsAdvertisedKernelCapabilityWords')) {
console.error('index.js should expose bareOsAdvertisedKernelCapabilityWords (wire v2)')
process.exit(1)
}
if (!idx.includes('bits4')) {
console.error('index.js should wire seed/features bits4')
if (!idx.includes('bareOsSeedKernelCapabilityWords')) {
console.error('index.js should expose bareOsSeedKernelCapabilityWords (wire v2)')
process.exit(1)
}
if (!idx.includes('bits5')) {
console.error('index.js should wire seed/features bits5')
if (!idx.includes('KERNEL_CAPABILITY_SEED_STRICT_ROWS')) {
console.error('index.js should define KERNEL_CAPABILITY_SEED_STRICT_ROWS for seed strict checks')
process.exit(1)
}
if (!idx.includes('bits6')) {
console.error('index.js should wire seed/features bits6')
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_WORD_REPLICATION_OPERATOR_SURFACE')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_WORD_REPLICATION_OPERATOR_SURFACE')
process.exit(1)
}
if (!idx.includes('bits7')) {
console.error('index.js should wire seed/features bits7')
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_WORD_PEAR_CORESTORE_HRPC')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_WORD_PEAR_CORESTORE_HRPC')
process.exit(1)
}
if (!idx.includes('bits8')) {
console.error('index.js should wire seed/features bits8')
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_WORD_BARE_RUNTIME_PROTO_MUX')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_WORD_BARE_RUNTIME_PROTO_MUX')
process.exit(1)
}
if (!idx.includes('bits9')) {
console.error('index.js should wire seed/features bits9')
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_WORD_BARE_MODULE_CRYPTO_STAGING')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_WORD_BARE_MODULE_CRYPTO_STAGING')
process.exit(1)
}
if (!idx.includes('bits10')) {
console.error('index.js should wire seed/features bits10')
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_WORD_PEAR_INSPECT_LOGGER_TLS')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_WORD_PEAR_INSPECT_LOGGER_TLS')
process.exit(1)
}
if (!idx.includes('bits11')) {
console.error('index.js should wire seed/features bits11')
process.exit(1)
}
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_V6')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_V6')
process.exit(1)
}
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_V7')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_V7')
process.exit(1)
}
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_V8')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_V8')
process.exit(1)
}
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_V9')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_V9')
process.exit(1)
}
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_V10')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_V10')
process.exit(1)
}
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_V11')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_V11')
if (!idx.includes('BARE_OS_KERNEL_FEATURES_STOCK_WORD_HYPERCORE_PACK_HRPC_LIFECYCLE')) {
console.error('index.js should reference BARE_OS_KERNEL_FEATURES_STOCK_WORD_HYPERCORE_PACK_HRPC_LIFECYCLE')
process.exit(1)
}
const bitsSrc = read(bitsPath)
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_V1')) {
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_WORD_PRIMARY')) {
console.error(
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_V1'
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_WORD_PRIMARY'
)
process.exit(1)
}
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_V2')) {
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_WORD_EXTENDED_SEEDING_PLATFORM')) {
console.error(
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_V2'
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_WORD_EXTENDED_SEEDING_PLATFORM'
)
process.exit(1)
}
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_V3')) {
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_WORD_RLIMITS_DELEGATES_SHELL')) {
console.error(
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_V3'
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_WORD_RLIMITS_DELEGATES_SHELL'
)
process.exit(1)
}
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_V4')) {
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_WORD_OFFLINE_NET_EXTENSIONS')) {
console.error(
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_V4'
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_WORD_OFFLINE_NET_EXTENSIONS'
)
process.exit(1)
}
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_V5')) {
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_WORD_HOST_TRANSPORT_DELEGATES')) {
console.error(
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_V5'
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_WORD_HOST_TRANSPORT_DELEGATES'
)
process.exit(1)
}
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_V6')) {
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_WORD_REPLICATION_OPERATOR_SURFACE')) {
console.error(
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_V6'
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_WORD_REPLICATION_OPERATOR_SURFACE'
)
process.exit(1)
}
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_V7')) {
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_WORD_PEAR_CORESTORE_HRPC')) {
console.error(
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_V7'
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_WORD_PEAR_CORESTORE_HRPC'
)
process.exit(1)
}
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_V8')) {
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_WORD_BARE_RUNTIME_PROTO_MUX')) {
console.error(
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_V8'
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_WORD_BARE_RUNTIME_PROTO_MUX'
)
process.exit(1)
}
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_V9')) {
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_WORD_BARE_MODULE_CRYPTO_STAGING')) {
console.error(
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_V9'
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_WORD_BARE_MODULE_CRYPTO_STAGING'
)
process.exit(1)
}
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_V10')) {
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_WORD_PEAR_INSPECT_LOGGER_TLS')) {
console.error(
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_V10'
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_WORD_PEAR_INSPECT_LOGGER_TLS'
)
process.exit(1)
}
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_V11')) {
if (!bitsSrc.includes('export const BARE_OS_KERNEL_FEATURES_STOCK_WORD_HYPERCORE_PACK_HRPC_LIFECYCLE')) {
console.error(
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_V11'
'kernel-feature-bits.js missing BARE_OS_KERNEL_FEATURES_STOCK_WORD_HYPERCORE_PACK_HRPC_LIFECYCLE'
)
process.exit(1)
}
@@ -187,8 +163,8 @@ function main() {
console.error('Could not parse BARE_OS_KERNEL_FEATURE_BITS_DOC')
process.exit(1)
}
if (docMatch[1] !== '13') {
console.error('Expected BARE_OS_KERNEL_FEATURE_BITS_DOC = 13 for wave 11')
if (docMatch[1] !== '15') {
console.error('Expected BARE_OS_KERNEL_FEATURE_BITS_DOC = 15')
process.exit(1)
}