feat(bare-os): kernel wave 3 — bits3, seed RPCs, policy, proc, CI schemas

Add third capability word (STOCK_V3) and word2 tail bits; seed RPCs
snapshot_hints and peer_firewall_stats; /proc mirrors (snapshot_hints,
pear_trust, rlimits, hdms_health, initd_graph) and /proc/net/udp; boot
policy v3 (requireFeatureBits2/3, Pear IPC allowlist, VFS deny prefixes,
initd restart cap); VFS enforcement for boot-policy path denies; delegate
in-flight caps; gated shell local/declare; initd path conditions, ordered
suspend/resume, OnInactiveSec timers; vfs.watch swarm/replication;
validate-example-schemas.mjs + ajv in pretest; extend verify-ctx for V3;
bump ctx API to 1.12.0; ADR 001, protocol, handbook, dev-guide, and
reference docs; seeder/kernel parity and booter tests.

Chore: Prettier table alignment in CHANGELOG and READMEs; compact
bareOsRequestPearReload signature in bare-os-ctx.d.ts.
This commit is contained in:
Raven Scott
2026-04-04 02:34:21 -04:00
parent 2919f606ce
commit de176addd9
56 changed files with 2358 additions and 1046 deletions
+11 -11
View File
@@ -6,15 +6,15 @@ Files in this directory are **read from disk by the seeder** (or copied into `pa
## Staging map (seeder)
| Source | Drive path |
| --------------- | ------------------ |
| `init.js` | `/boot/init.js` |
| `bin/<name>` | `/bin/<name>` |
| `etc/...` | `/etc/...` |
| `share/man/...` | `/share/man/...` |
| `lib/bare/...` | `/lib/bare/...` (optional **`ctx.bare`** bundles; see **`bare-os-bare-libs`**) |
| Any other file | `/<relative path>` |
| `README.md` (this file) | *(skipped — not copied to `/README.md`)* |
| Source | Drive path |
| ----------------------- | ------------------------------------------------------------------------------ |
| `init.js` | `/boot/init.js` |
| `bin/<name>` | `/bin/<name>` |
| `etc/...` | `/etc/...` |
| `share/man/...` | `/share/man/...` |
| `lib/bare/...` | `/lib/bare/...` (optional **`ctx.bare`** bundles; see **`bare-os-bare-libs`**) |
| Any other file | `/<relative path>` |
| `README.md` (this file) | _(skipped — not copied to `/README.md`)_ |
## Contents
@@ -35,9 +35,9 @@ Files in this directory are **read from disk by the seeder** (or copied into `pa
3. Run `npm run build -w bare-os-bare-libs` when **`packages/bare-os-booter/lib/bare-module-manifest.json`** or bundle entries change.
4. Run seeder again to re-stage the drive (or use a fresh Corestore for a clean image).
Pear bundles use the **vendored** tree under `packages/bare-os-seeder/kernel/`; keep it in sync by running the same builds before `pear stage`. **`npm test`** runs **`scripts/verify-kernel-seeder-parity.mjs`** and **`scripts/verify-ctx-api-feature-bits.mjs`** (after **`bare-os-coreutils`** and **`bare-os-bare-libs`** builds) so the two trees match byte-for-byte and every **`kernel/bin/*`** file contains the **`BARE_OS_BIN_API`** pragma (coreutils **`runtime.js`** and hand-written stubs such as **`systemctl`** / **`journalctl`**).
Pear bundles use the **vendored** tree under `packages/bare-os-seeder/kernel/`; keep it in sync by running the same builds before `pear stage`. **`npm test`** runs **`scripts/verify-kernel-seeder-parity.mjs`**, **`scripts/verify-ctx-api-feature-bits.mjs`**, and **`scripts/validate-example-schemas.mjs`** (after **`bare-os-coreutils`** and **`bare-os-bare-libs`** builds) so the two trees match byte-for-byte, ctx semver / feature words stay wired, example JSON matches **[`docs/schemas/`](../docs/schemas/)**, and every **`kernel/bin/*`** file contains the **`BARE_OS_BIN_API`** pragma (coreutils **`runtime.js`** and hand-written stubs such as **`systemctl`** / **`journalctl`**).
Optional **system** image examples: **`etc/bare-os/boot.allow.example`** (copy to **`boot.allow`** when using host **`BARE_OS_BOOT_ALLOWLIST=1`**), **`etc/bare-os/boot.policy.example.json`** (install as **`boot.policy.json`** when using **`BARE_OS_BOOT_POLICY=1`**; v2 fields **`maxExecLineDepth`**, **`denyEnvKeys`**, **`requireProcNodes`**; JSON Schema: [`docs/schemas/boot.policy.schema.json`](../docs/schemas/boot.policy.schema.json)), **`etc/bare-os/rc.profile.full`** (sample full profile referenced from **`profile`**), **`etc/bare-os/crontab.example`** (system-wide cron lines merged ahead of user **`~/.crontab`**), **`etc/bare-os/timers/*.timer.example`** (copy to **`~/.config/bare-os/timers/*.timer`** for **`OnCalendar=`** or **`EveryMs=`** jobs). **`kernel.ext.d`** scripts register into **`/proc/bare_os/extensions.json`** when the booter provides **`ctx.bareOsRegisterKernelExtensionRecord`**.
Optional **system** image examples: **`etc/bare-os/boot.allow.example`** (copy to **`boot.allow`** when using host **`BARE_OS_BOOT_ALLOWLIST=1`**), **`etc/bare-os/boot.policy.example.json`** (install as **`boot.policy.json`** when using **`BARE_OS_BOOT_POLICY=1`**; v2 fields **`maxExecLineDepth`**, **`denyEnvKeys`**, **`requireProcNodes`**; v3 **`requireFeatureBits2`**, **`requireFeatureBits3`**, **`allowedPearIpcChannels`**, **`denyVfsPrefixes`**, **`maxInitdRestartsPerUnit`**; JSON Schema: [`docs/schemas/boot.policy.schema.json`](../docs/schemas/boot.policy.schema.json)), **`etc/bare-os/boot-trace-line.example.json`** and **`etc/bare-os/telemetry-ndjson.example.json`** (shape checks for CI), **`etc/bare-os/rc.profile.full`** (sample full profile referenced from **`profile`**), **`etc/bare-os/crontab.example`** (system-wide cron lines merged ahead of user **`~/.crontab`**), **`etc/bare-os/timers/*.timer.example`** (copy to **`~/.config/bare-os/timers/*.timer`** for **`OnCalendar=`**, **`EveryMs=`**, or **`OnInactiveSec=`** jobs). **`kernel.ext.d`** scripts register into **`/proc/bare_os/extensions.json`** when the booter provides **`ctx.bareOsRegisterKernelExtensionRecord`**.
## See also
@@ -0,0 +1,6 @@
{
"phase": "example",
"ok": true,
"ms": 0,
"error": ""
}
+6 -1
View File
@@ -3,7 +3,12 @@
"denyBootPhases": [],
"minKernelFeatureMask": 0,
"requireSeedCaps": 0,
"requireFeatureBits2": 0,
"requireFeatureBits3": 0,
"maxExecLineDepth": 48,
"denyEnvKeys": ["EXAMPLE_UNWANTED"],
"requireProcNodes": ["/proc/bare_os/features", "/proc/version"]
"requireProcNodes": ["/proc/bare_os/features", "/proc/version"],
"allowedPearIpcChannels": [],
"denyVfsPrefixes": [],
"maxInitdRestartsPerUnit": 8
}
@@ -0,0 +1,9 @@
{
"telemetrySchemaVersion": 3,
"lifecycleSchemaVersion": 3,
"type": "boot",
"ts": 0,
"sessionId": "example-session",
"phase": "ready",
"ms": 0
}
+69 -14
View File
@@ -162,8 +162,7 @@ async function applyBootPolicyFile(ctx) {
if (typeof pol.requireSeedCaps === 'number' && pol.requireSeedCaps > 0) {
const seed = ctx.bareOsSeedCapabilityBits
const need = pol.requireSeedCaps >>> 0
const ok =
typeof seed === 'number' && ((seed >>> 0) & need) === need
const ok = typeof seed === 'number' && ((seed >>> 0) & need) === need
if (!ok) {
console.error('[boot-policy] requireSeedCaps not satisfied')
if (strictPol) {
@@ -174,6 +173,61 @@ async function applyBootPolicyFile(ctx) {
}
}
}
if (
typeof pol.requireFeatureBits2 === 'number' &&
pol.requireFeatureBits2 > 0
) {
const adv2 = ctx.bareOsAdvertisedKernelBits2
const need2 = pol.requireFeatureBits2 >>> 0
const ok = typeof adv2 === 'number' && ((adv2 >>> 0) & need2) === need2
if (!ok) {
console.error('[boot-policy] requireFeatureBits2 not satisfied')
if (strictPol) {
if (typeof ctx.requestBooterExit === 'function') {
ctx.requestBooterExit(1)
}
return false
}
}
}
if (
typeof pol.requireFeatureBits3 === 'number' &&
pol.requireFeatureBits3 > 0
) {
const adv3 = ctx.bareOsAdvertisedKernelBits3
const need3 = pol.requireFeatureBits3 >>> 0
const ok = typeof adv3 === 'number' && ((adv3 >>> 0) & need3) === need3
if (!ok) {
console.error('[boot-policy] requireFeatureBits3 not satisfied')
if (strictPol) {
if (typeof ctx.requestBooterExit === 'function') {
ctx.requestBooterExit(1)
}
return false
}
}
}
if (Array.isArray(pol.allowedPearIpcChannels) && ctx.env) {
const parts = pol.allowedPearIpcChannels
.map((c) => String(c).trim())
.filter(Boolean)
if (parts.length)
ctx.env.BARE_OS_BOOT_POLICY_PEAR_IPC_CHANNELS = parts.join(',')
}
if (Array.isArray(pol.denyVfsPrefixes) && ctx.env) {
const parts = pol.denyVfsPrefixes
.map((p) => String(p).trim())
.filter(Boolean)
if (parts.length) ctx.env.BARE_OS_BOOT_POLICY_DENY_VFS = parts.join(',')
}
if (
typeof pol.maxInitdRestartsPerUnit === 'number' &&
pol.maxInitdRestartsPerUnit >= 1 &&
ctx.env
) {
const cap = Math.min(32, Math.floor(pol.maxInitdRestartsPerUnit))
ctx.env.BARE_OS_INITD_RESTART_MAX_DEFAULT = String(cap)
}
if (
typeof pol.maxExecLineDepth === 'number' &&
pol.maxExecLineDepth > 0 &&
@@ -195,7 +249,9 @@ async function applyBootPolicyFile(ctx) {
if (vfs && typeof vfs.readFile === 'function') {
for (const rel of pol.requireProcNodes) {
const raw = String(rel).trim()
const p = raw.startsWith('/') ? raw : '/proc/' + raw.replace(/^\/*/, '')
const p = raw.startsWith('/')
? raw
: '/proc/' + raw.replace(/^\/*/, '')
try {
const b = await vfs.readFile(p)
const empty =
@@ -404,7 +460,9 @@ async function loadBootManifest(ctx) {
return null
}
if (!verifyFn(buf, sigBuf, pub)) {
console.error('[boot] boot.manifest.json Ed25519 signature verification failed')
console.error(
'[boot] boot.manifest.json Ed25519 signature verification failed'
)
bootManifestMemo = null
return null
}
@@ -432,7 +490,9 @@ async function bootManifestDigestOk(ctx, drivePath, content) {
const exp = /** @type {Record<string, string>} */ (sha)[drivePath]
if (exp == null || exp === '') return true
if (typeof ctx.bareOsBootFileSha256Hex !== 'function') {
ctx.console.error('[boot] manifest present but bareOsBootFileSha256Hex missing')
ctx.console.error(
'[boot] manifest present but bareOsBootFileSha256Hex missing'
)
return false
}
const buf =
@@ -620,7 +680,8 @@ async function runRcFileAt(ctx, drivePath, label) {
const text = b4a.toString(buf)
if (!(await bootManifestDigestOk(ctx, drivePath, text))) {
if (bootStrict(ctx)) {
if (typeof ctx.requestBooterExit === 'function') ctx.requestBooterExit(1)
if (typeof ctx.requestBooterExit === 'function')
ctx.requestBooterExit(1)
return false
}
return true
@@ -834,14 +895,8 @@ async function runKernelSelftest(ctx) {
'test -f /proc/bare_os/index.json && echo selftest_bare_os_dir',
'proc-bare_os_dir'
],
[
'test -d /proc/self/fd && echo selftest_proc_fd',
'proc-self-fd'
],
[
'test -d /sys/devices && echo selftest_sys_devices',
'sys-devices'
],
['test -d /proc/self/fd && echo selftest_proc_fd', 'proc-self-fd'],
['test -d /sys/devices && echo selftest_sys_devices', 'sys-devices'],
['echo selftest_vfs | tee /dev/null', 'pipeline-tee-devnull'],
[
'test -f /lib/bare/manifest.json && echo selftest_bare_manifest',
+200 -200
View File
@@ -1,12 +1,6 @@
{
"version": 1,
"bundles": [
{
"path": "/lib/bare/bundles/hypercoreIdEncoding.js",
"keys": [
"hypercoreIdEncoding"
]
},
{
"path": "/lib/bare/bundles/safetyCatch.js",
"keys": [
@@ -19,6 +13,12 @@
"b4a"
]
},
{
"path": "/lib/bare/bundles/hypercoreIdEncoding.js",
"keys": [
"hypercoreIdEncoding"
]
},
{
"path": "/lib/bare/bundles/compactEncoding.js",
"keys": [
@@ -32,15 +32,15 @@
]
},
{
"path": "/lib/bare/bundles/protomux.js",
"path": "/lib/bare/bundles/barePath.js",
"keys": [
"protomux"
"barePath"
]
},
{
"path": "/lib/bare/bundles/bareEvents.js",
"path": "/lib/bare/bundles/protomux.js",
"keys": [
"bareEvents"
"protomux"
]
},
{
@@ -50,9 +50,9 @@
]
},
{
"path": "/lib/bare/bundles/barePath.js",
"path": "/lib/bare/bundles/bareEvents.js",
"keys": [
"barePath"
"bareEvents"
]
},
{
@@ -61,12 +61,6 @@
"bareAbort"
]
},
{
"path": "/lib/bare/bundles/bareAnsiEscapes.js",
"keys": [
"bareAnsiEscapes"
]
},
{
"path": "/lib/bare/bundles/bareAbortController.js",
"keys": [
@@ -74,9 +68,9 @@
]
},
{
"path": "/lib/bare/bundles/bareReadline.js",
"path": "/lib/bare/bundles/bareAnsiEscapes.js",
"keys": [
"bareReadline"
"bareAnsiEscapes"
]
},
{
@@ -85,18 +79,6 @@
"bareAddonResolve"
]
},
{
"path": "/lib/bare/bundles/bareCrypto.js",
"keys": [
"bareCrypto"
]
},
{
"path": "/lib/bare/bundles/bareAsyncHooks.js",
"keys": [
"bareAsyncHooks"
]
},
{
"path": "/lib/bare/bundles/bareAppKit.js",
"keys": [
@@ -104,21 +86,15 @@
]
},
{
"path": "/lib/bare/bundles/fetch.js",
"path": "/lib/bare/bundles/bareReadline.js",
"keys": [
"fetch"
"bareReadline"
]
},
{
"path": "/lib/bare/bundles/bareAtomics.js",
"path": "/lib/bare/bundles/bareCrypto.js",
"keys": [
"bareAtomics"
]
},
{
"path": "/lib/bare/bundles/bareApk.js",
"keys": [
"bareApk"
"bareCrypto"
]
},
{
@@ -127,6 +103,24 @@
"bareAssert"
]
},
{
"path": "/lib/bare/bundles/bareAsyncHooks.js",
"keys": [
"bareAsyncHooks"
]
},
{
"path": "/lib/bare/bundles/bareApk.js",
"keys": [
"bareApk"
]
},
{
"path": "/lib/bare/bundles/bareAtomics.js",
"keys": [
"bareAtomics"
]
},
{
"path": "/lib/bare/bundles/bareBmp.js",
"keys": [
@@ -134,9 +128,9 @@
]
},
{
"path": "/lib/bare/bundles/bareBundleCompile.js",
"path": "/lib/bare/bundles/fetch.js",
"keys": [
"bareBundleCompile"
"fetch"
]
},
{
@@ -151,6 +145,12 @@
"bareBundle"
]
},
{
"path": "/lib/bare/bundles/bareBundleCompile.js",
"keys": [
"bareBundleCompile"
]
},
{
"path": "/lib/bare/bundles/bareBluetoothApple.js",
"keys": [
@@ -176,9 +176,9 @@
]
},
{
"path": "/lib/bare/bundles/bareDebugLog.js",
"path": "/lib/bare/bundles/bareDaemon.js",
"keys": [
"bareDebugLog"
"bareDaemon"
]
},
{
@@ -188,9 +188,15 @@
]
},
{
"path": "/lib/bare/bundles/bareDaemon.js",
"path": "/lib/bare/bundles/bareDelta.js",
"keys": [
"bareDaemon"
"bareDelta"
]
},
{
"path": "/lib/bare/bundles/bareDebugLog.js",
"keys": [
"bareDebugLog"
]
},
{
@@ -200,9 +206,9 @@
]
},
{
"path": "/lib/bare/bundles/bareDelta.js",
"path": "/lib/bare/bundles/bareDiagnosticsChannel.js",
"keys": [
"bareDelta"
"bareDiagnosticsChannel"
]
},
{
@@ -211,12 +217,6 @@
"bareDns"
]
},
{
"path": "/lib/bare/bundles/bareDiagnosticsChannel.js",
"keys": [
"bareDiagnosticsChannel"
]
},
{
"path": "/lib/bare/bundles/bareEnv.js",
"keys": [
@@ -229,24 +229,30 @@
"bareExif"
]
},
{
"path": "/lib/bare/bundles/bareCov.js",
"keys": [
"bareCov"
]
},
{
"path": "/lib/bare/bundles/bareDgram.js",
"keys": [
"bareDgram"
]
},
{
"path": "/lib/bare/bundles/bareCov.js",
"keys": [
"bareCov"
]
},
{
"path": "/lib/bare/bundles/bareFfmpeg.js",
"keys": [
"bareFfmpeg"
]
},
{
"path": "/lib/bare/bundles/bareFormat.js",
"keys": [
"bareFormat"
]
},
{
"path": "/lib/bare/bundles/bareFfmpegEncodings.js",
"keys": [
@@ -265,24 +271,12 @@
"bareGif"
]
},
{
"path": "/lib/bare/bundles/bareFormat.js",
"keys": [
"bareFormat"
]
},
{
"path": "/lib/bare/bundles/bareFileLogger.js",
"keys": [
"bareFileLogger"
]
},
{
"path": "/lib/bare/bundles/bareHrtime.js",
"keys": [
"bareHrtime"
]
},
{
"path": "/lib/bare/bundles/bareGtk.js",
"keys": [
@@ -295,12 +289,24 @@
"bareHeif"
]
},
{
"path": "/lib/bare/bundles/bareHrtime.js",
"keys": [
"bareHrtime"
]
},
{
"path": "/lib/bare/bundles/bareHttpParser.js",
"keys": [
"bareHttpParser"
]
},
{
"path": "/lib/bare/bundles/bareIco.js",
"keys": [
"bareIco"
]
},
{
"path": "/lib/bare/bundles/bareFs.js",
"keys": [
@@ -314,15 +320,9 @@
]
},
{
"path": "/lib/bare/bundles/bareIco.js",
"path": "/lib/bare/bundles/bareHttps.js",
"keys": [
"bareIco"
]
},
{
"path": "/lib/bare/bundles/bareInspect.js",
"keys": [
"bareInspect"
"bareHttps"
]
},
{
@@ -332,15 +332,9 @@
]
},
{
"path": "/lib/bare/bundles/bareHttps.js",
"path": "/lib/bare/bundles/bareInspect.js",
"keys": [
"bareHttps"
]
},
{
"path": "/lib/bare/bundles/bareIntl.js",
"keys": [
"bareIntl"
"bareInspect"
]
},
{
@@ -350,15 +344,9 @@
]
},
{
"path": "/lib/bare/bundles/bareInspector.js",
"path": "/lib/bare/bundles/bareLief.js",
"keys": [
"bareInspector"
]
},
{
"path": "/lib/bare/bundles/bareLogger.js",
"keys": [
"bareLogger"
"bareLief"
]
},
{
@@ -374,9 +362,21 @@
]
},
{
"path": "/lib/bare/bundles/bareLief.js",
"path": "/lib/bare/bundles/bareInspector.js",
"keys": [
"bareLief"
"bareInspector"
]
},
{
"path": "/lib/bare/bundles/bareIntl.js",
"keys": [
"bareIntl"
]
},
{
"path": "/lib/bare/bundles/bareLogger.js",
"keys": [
"bareLogger"
]
},
{
@@ -385,18 +385,18 @@
"bareModuleResolve"
]
},
{
"path": "/lib/bare/bundles/bareMake.js",
"keys": [
"bareMake"
]
},
{
"path": "/lib/bare/bundles/bareModuleLexer.js",
"keys": [
"bareModuleLexer"
]
},
{
"path": "/lib/bare/bundles/bareMake.js",
"keys": [
"bareMake"
]
},
{
"path": "/lib/bare/bundles/bareModule.js",
"keys": [
@@ -409,12 +409,6 @@
"bareNdk"
]
},
{
"path": "/lib/bare/bundles/bareNative.js",
"keys": [
"bareNative"
]
},
{
"path": "/lib/bare/bundles/bareModuleTraverse.js",
"keys": [
@@ -428,9 +422,15 @@
]
},
{
"path": "/lib/bare/bundles/bareOpen.js",
"path": "/lib/bare/bundles/bareNative.js",
"keys": [
"bareOpen"
"bareNative"
]
},
{
"path": "/lib/bare/bundles/bareMedia.js",
"keys": [
"bareMedia"
]
},
{
@@ -446,9 +446,15 @@
]
},
{
"path": "/lib/bare/bundles/bareMedia.js",
"path": "/lib/bare/bundles/bareOpen.js",
"keys": [
"bareMedia"
"bareOpen"
]
},
{
"path": "/lib/bare/bundles/barePackDrive.js",
"keys": [
"barePackDrive"
]
},
{
@@ -463,18 +469,6 @@
"barePng"
]
},
{
"path": "/lib/bare/bundles/barePackDrive.js",
"keys": [
"barePackDrive"
]
},
{
"path": "/lib/bare/bundles/bareDev.js",
"keys": [
"bareDev"
]
},
{
"path": "/lib/bare/bundles/barePack.js",
"keys": [
@@ -487,30 +481,30 @@
"barePipe"
]
},
{
"path": "/lib/bare/bundles/bareNodeRuntime.js",
"keys": [
"bareNodeRuntime"
]
},
{
"path": "/lib/bare/bundles/barePunycode.js",
"keys": [
"barePunycode"
]
},
{
"path": "/lib/bare/bundles/bareQuerystring.js",
"keys": [
"bareQuerystring"
]
},
{
"path": "/lib/bare/bundles/barePrebuild.js",
"keys": [
"barePrebuild"
]
},
{
"path": "/lib/bare/bundles/bareQuerystring.js",
"keys": [
"bareQuerystring"
]
},
{
"path": "/lib/bare/bundles/bareNodeRuntime.js",
"keys": [
"bareNodeRuntime"
]
},
{
"path": "/lib/bare/bundles/bareQueueMicrotask.js",
"keys": [
@@ -518,9 +512,9 @@
]
},
{
"path": "/lib/bare/bundles/bareProcess.js",
"path": "/lib/bare/bundles/bareDev.js",
"keys": [
"bareProcess"
"bareDev"
]
},
{
@@ -530,9 +524,9 @@
]
},
{
"path": "/lib/bare/bundles/barePromClient.js",
"path": "/lib/bare/bundles/bareProcess.js",
"keys": [
"barePromClient"
"bareProcess"
]
},
{
@@ -548,9 +542,9 @@
]
},
{
"path": "/lib/bare/bundles/bareSemver.js",
"path": "/lib/bare/bundles/barePromClient.js",
"keys": [
"bareSemver"
"barePromClient"
]
},
{
@@ -560,9 +554,15 @@
]
},
{
"path": "/lib/bare/bundles/bareSidecar.js",
"path": "/lib/bare/bundles/bareRepl.js",
"keys": [
"bareSidecar"
"bareRepl"
]
},
{
"path": "/lib/bare/bundles/bareSemver.js",
"keys": [
"bareSemver"
]
},
{
@@ -571,24 +571,18 @@
"bareSignals"
]
},
{
"path": "/lib/bare/bundles/bareSidecar.js",
"keys": [
"bareSidecar"
]
},
{
"path": "/lib/bare/bundles/bareRun.js",
"keys": [
"bareRun"
]
},
{
"path": "/lib/bare/bundles/bareRepl.js",
"keys": [
"bareRepl"
]
},
{
"path": "/lib/bare/bundles/bareStringDecoder.js",
"keys": [
"bareStringDecoder"
]
},
{
"path": "/lib/bare/bundles/bareStream.js",
"keys": [
@@ -602,9 +596,9 @@
]
},
{
"path": "/lib/bare/bundles/bareStructuredClone.js",
"path": "/lib/bare/bundles/bareStringDecoder.js",
"keys": [
"bareStructuredClone"
"bareStringDecoder"
]
},
{
@@ -613,36 +607,36 @@
"bareStdio"
]
},
{
"path": "/lib/bare/bundles/bareSubprocess.js",
"keys": [
"bareSubprocess"
]
},
{
"path": "/lib/bare/bundles/bareSvg.js",
"keys": [
"bareSvg"
]
},
{
"path": "/lib/bare/bundles/bareTiff.js",
"keys": [
"bareTiff"
]
},
{
"path": "/lib/bare/bundles/bareTimers.js",
"keys": [
"bareTimers"
]
},
{
"path": "/lib/bare/bundles/bareSystemLogger.js",
"keys": [
"bareSystemLogger"
]
},
{
"path": "/lib/bare/bundles/bareStructuredClone.js",
"keys": [
"bareStructuredClone"
]
},
{
"path": "/lib/bare/bundles/bareSubprocess.js",
"keys": [
"bareSubprocess"
]
},
{
"path": "/lib/bare/bundles/bareTiff.js",
"keys": [
"bareTiff"
]
},
{
"path": "/lib/bare/bundles/bareTap.js",
"keys": [
@@ -656,15 +650,9 @@
]
},
{
"path": "/lib/bare/bundles/bareTcp.js",
"path": "/lib/bare/bundles/bareTimers.js",
"keys": [
"bareTcp"
]
},
{
"path": "/lib/bare/bundles/bareType.js",
"keys": [
"bareType"
"bareTimers"
]
},
{
@@ -679,6 +667,18 @@
"bareTls"
]
},
{
"path": "/lib/bare/bundles/bareTcp.js",
"keys": [
"bareTcp"
]
},
{
"path": "/lib/bare/bundles/bareType.js",
"keys": [
"bareType"
]
},
{
"path": "/lib/bare/bundles/bareTty.js",
"keys": [
@@ -733,6 +733,18 @@
"bareWebp"
]
},
{
"path": "/lib/bare/bundles/bareWhich.js",
"keys": [
"bareWhich"
]
},
{
"path": "/lib/bare/bundles/bareV8ToIstanbul.js",
"keys": [
"bareV8ToIstanbul"
]
},
{
"path": "/lib/bare/bundles/bareWebKitGtk.js",
"keys": [
@@ -745,24 +757,12 @@
"bareUtils"
]
},
{
"path": "/lib/bare/bundles/bareWhich.js",
"keys": [
"bareWhich"
]
},
{
"path": "/lib/bare/bundles/bareWinUi.js",
"keys": [
"bareWinUi"
]
},
{
"path": "/lib/bare/bundles/bareV8ToIstanbul.js",
"keys": [
"bareV8ToIstanbul"
]
},
{
"path": "/lib/bare/bundles/bareXdiff.js",
"keys": [
File diff suppressed because one or more lines are too long