Files
JWeBot/docs/repository-layout.md

2.5 KiB

Repository Layout

JWeBot is a monorepo with explicit boundaries between public contracts, privileged runtime code, reviewed plugins, deployment tooling, and local-only configuration.

JWeBot/
  config/
    templates/
    schemas/
  deploy/
    defaults/
    scripts/
    systemd/
  docs/
    runbooks/
  examples/
  extensions/
    official/
    jwebot/
    friends/
  packages/
    jwebot-config/
    jwebot-sdk/
    jwebot-kernel/
    jwebot-extension-host/
    jwebot-official-extensions/
  tests/
  tools/
  jwebot_edge.py
  jwebot_edge_delivery.py
  wechat_local_ocr.py
  wechat_adaptive_recorder.py
  wechat_adaptive_gui_bridge.py
  wechat_health_watch.py
  wechat-gui-bridge

Package Responsibilities

jwebot-config

  • validates profile packages;
  • compiles generated runtime files atomically;
  • imports and redacts profile archives;
  • migrates private context and diagnostic material out of old checkouts.

jwebot-sdk

  • contains stable data contracts exposed to plugins;
  • has no process, filesystem, raw socket, GUI, or environment capability.

jwebot-kernel

  • owns routing, command ownership, capability enforcement, ledger access, release verification, provider adapters, and delivery policy.

jwebot-extension-host

  • executes one verified extension release per isolated invocation;
  • runs behind an AF_UNIX socket and systemd sandbox.

jwebot-official-extensions

  • contains the reviewed local command engine;
  • provides generated adapters that return structured SDK plans;
  • owns the fixed-host Steam service profile, not raw plugin network access.

Root Entrypoints

Root Python and shell files remain compatibility entrypoints for systemd and existing operators. Business logic belongs in packages. Compatibility modules must stay thin and tested.

Extension Collections

  • extensions/official/: platform-owned service adapters.
  • extensions/jwebot/: built-in reviewed commands.
  • extensions/friends/: contributor-owned plugins.

The ownership inventory is authoritative. tools/sync-local-extensions.py generates manifests, adapters, package tests, and README files from it.

Configuration Boundary

The repository contains only templates and schemas. Real values live under ~/.config/jwebot/; runtime/diagnostic data lives under ~/.local/state/jwebot/. See config/README.md.

Documentation Boundary

Committed documentation describes architecture, contracts, generic operations, and sanitized examples. Machine-specific incident reports and debug logs are local profile state, not documentation source.