96 lines
2.5 KiB
Markdown
96 lines
2.5 KiB
Markdown
# Repository Layout
|
|
|
|
JWeBot is a monorepo with explicit boundaries between public contracts,
|
|
privileged runtime code, reviewed plugins, deployment tooling, and local-only
|
|
configuration.
|
|
|
|
```text
|
|
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.
|