/** * Initd marker for swarm chat (`bare-os-chat-v1`): transport stays in the booter/swarm-disk; * this unit records that chat is intended to be active when env allows. */ import { registerBareService } from './bare-initd.js' import { bareOsChatMuxEnabled } from './bare-os-chat-service.js' /** @type {boolean} */ let bareOsChatInitdRegistered = false /** @param {Record} env */ export function bareOsChatInitdEnabled(env) { if (!bareOsChatMuxEnabled(env)) return false const v = env.BARE_OS_CHAT_INITD if (v === '0' || v === 'false') return false return true } /** * @param {Record} ctx */ async function startBareOsChatInitd(ctx) { if (!bareOsChatMuxEnabled(globalThis.process?.env)) return ctx.console?.log?.( '[bare-os-chat] Protomux bare-os-chat-v1 enabled (join general on peer connect)' ) } async function stopBareOsChatInitd(_ctx) {} /** @param {Record} env */ export function maybeRegisterBareOsChatInitd(env) { if (bareOsChatInitdRegistered) return if (!bareOsChatInitdEnabled(env || {})) return bareOsChatInitdRegistered = true registerBareService({ name: 'bare-os-chat', description: 'Swarm chat (bare-os-chat-v1); stock default on — set BARE_OS_PROTOMUX_CHAT_CHANNEL=0 or BARE_OS_CHAT_INITD=0 to disable', start: startBareOsChatInitd, stop: stopBareOsChatInitd }) }