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:
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user