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.