@bd7pil/ocrc 0.12.3 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  [![Release](https://img.shields.io/github/v/release/BD7PIL/ocrc?color=10b981)](https://github.com/BD7PIL/ocrc/releases)
8
8
  [![License: MIT](https://img.shields.io/github/license/BD7PIL/ocrc?color=10b981)](LICENSE)
9
9
  [![CI](https://img.shields.io/github/actions/workflow/status/BD7PIL/ocrc/ci.yml?branch=main&label=CI)](https://github.com/BD7PIL/ocrc/actions)
10
- [![opencode plugin](https://img.shields.io/badge/opencode-plugin-10b981)](https://opencode.ai)
10
+ [![tests](https://img.shields.io/badge/tests-479%20backend%20%2B%20120%20web-10b981)](CHANGELOG.md)
11
11
 
12
12
  A fork of [agentjoey/opencode-remote-control](https://github.com/agentjoey/opencode-remote-control)
13
13
  (MIT); the Telegram interaction model is inspired by
@@ -15,314 +15,172 @@ A fork of [agentjoey/opencode-remote-control](https://github.com/agentjoey/openc
15
15
  Full attribution in [NOTICE](NOTICE). npm `@bd7pil/ocrc` · config `~/.ocrc/` · CLI `ocrc`.
16
16
 
17
17
  <p align="center">
18
- <img src="docs/assets/ocrc-web.png" width="840" alt="OCRC — the Web PWA driving a live opencode session (sessions, live chat, task & cost inspector)">
18
+ <img src="docs/assets/ocrc-web.png" width="840" alt="ocrc — the Web PWA driving a live opencode session (sessions, live chat, task & cost inspector)">
19
19
  </p>
20
20
 
21
- Install once; it auto-starts in-process with opencode. Same sessions stream live to
22
- **Telegram** and a desktop **PWA** at the same time — switch surfaces mid-task without
23
- losing context.
21
+ ## What it is
24
22
 
25
- ## ⚡ Quick start (5 minutes)
23
+ - **One process.** The plugin loads inside opencode — no daemon, no extra
24
+ services. Telegram and the Web PWA start with opencode and die with it
25
+ (an optional supervisor is available, see [Lifecycle](#lifecycle)).
26
+ - **Two surfaces, one session.** Prompts in from either side; streaming
27
+ output, tool calls, diffs, todos, costs mirror to both in real time.
28
+ - **Local-first, single-user.** Runs on your machine against your local
29
+ opencode server. One allowlisted Telegram user; the web panel is gated by a
30
+ device token. No cloud, no shared backend.
31
+ - **Honest channel status.** Telegram and Web are implemented and stable.
32
+ Feishu / WeChat have a configuration panel pre-wired but the transports
33
+ themselves are **not implemented yet**.
26
34
 
27
- Requires **opencode 1.17+** and **Node 20+** (or Bun). Install from npm —
28
- `npm i -g @bd7pil/ocrc` — or build from source below. (The
29
- `opencode-remote-control` name on npm is an unrelated package — don't `npx` it.)
35
+ ## Quick start
30
36
 
31
- There are two ways to run it — pick one:
32
-
33
- ### Mode A — Plugin (default; controls opencode)
37
+ Requires **opencode 1.17+** (verified on 1.18.32) and **Node 20+**.
34
38
 
35
39
  ```bash
36
- # 1. Install globally, then run the interactive installer
40
+ # 1. Install
37
41
  npm i -g @bd7pil/ocrc
38
- ocrc install # paste your Telegram bot token + user id
39
-
40
- # 2. Run opencode from any directory — the plugin auto-starts
41
- opencode
42
- ```
43
-
44
- Prefer building from source?
42
+ ocrc install # interactive: Telegram bot token + your user id
43
+ # (the `opencode-remote-control` name on npm is an
44
+ # unrelated package — don't npx it)
45
45
 
46
- ```bash
47
- git clone https://github.com/BD7PIL/ocrc
48
- cd ocrc
49
- npm install && npm run build:all
50
- node dist/cli/install.js # interactive — paste your Telegram bot token + user id
46
+ # 2. Start (supervised: crash auto-restart)
47
+ ocrc start --watch /path/to/your/project
51
48
 
52
- opencode
49
+ # 3. Talk to it
50
+ # Telegram: send "hello" to your bot
51
+ # Web: open http://<host>:4099 and pair (see below)
53
52
  ```
54
53
 
55
- `install.js` writes a plugin bridge to `~/.config/opencode/plugins/` and your
56
- config to `.env`. The plugin then loads in-process whenever opencode runs.
54
+ Upgrades: `npm i -g @bd7pil/ocrc@<version>` + restart. The opencode binary
55
+ itself is yours to manage (`opencode upgrade <version>` — pin the version).
57
56
 
58
- - **Telegram:** make a bot with [@BotFather](https://t.me/BotFather); get your numeric id from [@userinfobot](https://t.me/userinfobot) (the installer asks for both). Send "hello" → the assistant replies.
59
- - **Web PWA:** enabled by default. Run `ocrc pair` (or send `/pair` in Telegram) → open the URL/QR it prints. Auth is a device **token** (persisted at `~/.ocrc/token`) — no Cloudflare Access needed.
60
- - **From another device:** the web binds to `localhost`, so expose it over a tunnel or VPN — e.g. `tailscale serve 17081`. See [Remote access without a domain](#remote-access-without-a-domain).
57
+ ## Pairing a device
61
58
 
62
- ## 🔁 Production lifecycle
59
+ Web access is gated by a device token. Two ways to pair — **Telegram is not
60
+ required**:
63
61
 
64
- ```bash
65
- ocrc start --watch /path/to/project # start under the supervisor (crash auto-restart)
66
- ocrc status # server / watcher / web panel at a glance
67
- ocrc stop # graceful stop (watcher first, then the instance)
68
- ocrc restore # boot-time re-launch — optional @reboot cron line:
69
- # @reboot sleep 60 && ocrc restore >> ~/.ocrc/prod.log 2>&1
70
- ```
62
+ 1. **From the host terminal** (works always, no Telegram):
63
+ ```bash
64
+ ocrc pair # prints a QR + link — scan or open on the device
65
+ ```
66
+ 2. **From Telegram** (once the bot is running): send `/pair`, open the link.
71
67
 
72
- ### Mode B — Standalone multi-backend host (opencode + ACP agents)
68
+ Links carry a *pending* token — valid **5 minutes, single use**, and issuing
69
+ a new one invalidates the old (refresh = new code). The device exchanges it
70
+ for the real access token on first open; the token never appears in a URL
71
+ again. Already-paired sessions can onboard further devices from the web
72
+ panel's QR (机器人面板 → 配对新设备).
73
73
 
74
- Run OCRC as its own process serving **multiple agents at once** (opencode + any
75
- [ACP](https://agentclientprotocol.com) agent like Kimi) with an in-UI switcher —
76
- no opencode plugin needed. Requires the ACP agent to be installed and logged in
77
- (e.g. `kimi login`).
74
+ ## Lifecycle
78
75
 
79
76
  ```bash
80
- git clone https://github.com/BD7PIL/ocrc
81
- cd ocrc
82
- npm install && npm run build:all
83
-
84
- cp .env.acp.example .env.acp # set WEB_TOKEN; OCRC_BACKENDS="opencode, kimi=kimi acp"
85
- scripts/run-acp-host.sh # run in a real terminal (needs full PATH to spawn agents)
77
+ ocrc start <dir> # start (detached, no supervision)
78
+ ocrc start --watch <dir> # start under the supervisor (recommended)
79
+ ocrc status # server / watcher / web panel at a glance
80
+ ocrc stop # graceful stop (watcher first, then the instance)
81
+ ocrc restart [dir] # restart, keeping the current mode
82
+ ocrc restore # re-launch the last instance under --watch
86
83
  ```
87
84
 
88
- For an always-on service (auto-start + crash-restart), install the launchd unit
89
- from `deploy/com.ocrc.host.plist`. Full runbook: [`docs/OPS.md`](docs/OPS.md).
90
-
91
- > Note: `ocrc` isn't on your PATH by default — use `node dist/cli/index.js <cmd>`
92
- > (e.g. `node dist/cli/index.js pair`), or `npm link` to get the `ocrc` shim.
93
-
94
- ## How we're different
95
-
96
- - **Runs as an opencode plugin, in-process.** One install, no extra process, no
97
- daemon to babysit — it starts and stops with `opencode` itself.
98
- - **Telegram + Web from a single codebase.** The same sessions stream live to
99
- Telegram and a desktop PWA simultaneously; switch surfaces mid-task without
100
- losing context.
101
- - **SDK-native.** Built on `@opencode-ai/sdk` and the opencode plugin event
102
- hook — it speaks opencode's own protocol rather than scraping a UI, so agent /
103
- model overrides, approvals, diffs, and cost/token metadata all come through
104
- first-class.
105
- - **Transport-agnostic core.** A channel-neutral `CardBus` carries structured
106
- cards; each transport renders them independently. Adding a new channel
107
- (Discord, Slack, …) doesn't touch the relay core.
108
- - **Local-first & single-user.** It runs on your machine against your local
109
- opencode server, stores state in a local file, and answers to one allowlisted
110
- user. No cloud, no shared backend.
111
-
112
- ## Architecture
85
+ `--watch` is a foreground supervisor with octg-proven semantics: adopts an
86
+ already-running instance, restarts the child after a crash (default 5 s,
87
+ `OCRC_WATCH_DELAY`), and treats SIGKILL / segfaults as crashes — an OOM kill
88
+ self-heals. SIGTERM or the stop file means "stop for real". Boot-time
89
+ recovery is opt-in:
113
90
 
114
91
  ```
115
- ┌──────────────────────────────────────────────────────┐
116
- │ opencode (single process) │
117
- │ │
118
- │ ┌──────────────────┐ ┌───────────────────────────┐ │
119
- │ │ AI engine :4096 │ │ plugin: remote-control │ │
120
- │ │ │ │ ├─ Telegraf (Telegram) │ │
121
- │ │ event hook ────┼──┼─►├─ Hono + WS (Web PWA) │ │
122
- │ │ │ │ └─ relay + CardBus │ │
123
- │ └──────────────────┘ └──────────┬────────────────┘ │
124
- │ ▼ │
125
- │ Telegram / Web (PWA) │
126
- └──────────────────────────────────────────────────────┘
92
+ @reboot sleep 60 && ocrc restore >> ~/.ocrc/prod.log 2>&1
127
93
  ```
128
94
 
129
- The plugin loads inside opencode and is driven by the plugin **event hook**: it
130
- submits prompts via the SDK, consumes streaming events, and renders structured
131
- cards to whichever transports are enabled. A TUI, if you run one, is just
132
- another client of the same opencode server.
133
-
134
- Full deep-dive: [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md).
135
-
136
- ## Quick Start (Telegram)
137
-
138
- 1. **Create a bot** with [@BotFather](https://t.me/BotFather), get a token.
139
- 2. **Find your user ID** — message [@userinfobot](https://t.me/userinfobot).
140
- 3. **Build and install the plugin** (opencode 1.17+):
141
- ```bash
142
- npm install && npm run build
143
- node dist/cli/install.js
144
- ```
145
- The installer writes a plugin bridge to `~/.config/opencode/plugins/`
146
- (opencode 1.17 loads local plugins from there — directory paths in
147
- `opencode.json` no longer work), ensures that dir's `package.json` has
148
- `"type": "module"`, and saves `TELEGRAM_BOT_TOKEN` / `ALLOWED_USER_IDS` /
149
- `WEB_ENABLED` / `WEB_PORT` to the repo's `.env`.
150
- 4. **Run opencode** from any directory — the plugin loads globally:
151
- ```bash
152
- opencode
153
- ```
154
- The plugin auto-starts. For an always-on remote-control hub, run it from a
155
- small/empty directory (e.g. `~/ocrc-hub`) so opencode's file watcher stays
156
- fast. You can run several opencode instances — they elect one **PRIMARY**
157
- (atomic lock at `~/.ocrc/primary.lock`) to own the web (`:4099`) and
158
- Telegram singletons; the rest stand down PASSIVE. The web/bot can switch
159
- between the workspaces of the running instances.
160
- 5. **Send "hello"** in Telegram → the assistant responds.
161
-
162
- ## Web UI (PWA)
95
+ ## Telegram
163
96
 
164
- The Web UI runs alongside Telegram and shows the same sessions in real time
165
- (full streaming), installable as a desktop/mobile PWA.
97
+ ~34 commands, grouped: sessions (`/sessions /session /new /rename /workspaces
98
+ /projects /cleanup`), running work (`/skills /ls /open /worktree /diff /todo
99
+ /context /subs`), controls (`/agent /model /mode /task /tasks /tasklist
100
+ /taskdel /mcps /commands /messages /detach`), ops (`/start /status /version
101
+ /pair /channels /help`), plus `/abort` and plain text relay. Send any text to
102
+ drive the agent; approvals and interactive questions arrive as buttons.
166
103
 
167
- 1. Set `WEB_ENABLED=true` (and `WEB_PORT` — default `17081`, since opencode's
168
- own server occupies `7081`).
169
- 2. Build the web app: `cd web && npm run build`.
170
- 3. The plugin serves the PWA at `http://127.0.0.1:17081`.
104
+ ## Web panel
171
105
 
172
- ### Auth — pair a device (default, no Cloudflare Access needed)
106
+ PWA (installable), token-gated, with a live inspector per session: todos,
107
+ MCP servers, schedules, usage/cost, context, working-dir diff, skills, file
108
+ browser, worktrees — plus a floating plan HUD for subagent jumps. The bot
109
+ channels panel configures reply granularity, workspace scope, and shows the
110
+ pairing QR.
173
111
 
174
- Auth defaults to an app **token** (`WEB_AUTH=token`). Onboard a device with
175
- `ocrc pair` (or Telegram `/pair`): it prints a URL + QR with the token in the
176
- fragment (`https://<host>/#token=…`). Open it once — the app stores the token
177
- and attaches it to every request thereafter. The token is persisted at
178
- `~/.ocrc/token`, so it survives restarts and re-installs.
112
+ ## Remote access
179
113
 
180
- > Behind a tunnel, keep `WEB_CF_ACCESS_DEV_BYPASS=false`: `cloudflared` connects
181
- > from loopback, so a loopback bypass would trust all tunnel traffic.
182
-
183
- Prefer Cloudflare Access instead? Set `WEB_AUTH=cf-access` with
184
- `WEB_CF_ACCESS_TEAM` / `WEB_CF_ACCESS_AUD` — see [`docs/OPS.md`](docs/OPS.md).
185
-
186
- ### Remote access without a domain
187
-
188
- A PWA install needs a **secure context** (HTTPS, or `http://localhost`). To
189
- reach the hub from another machine without owning a domain:
114
+ The web binds `0.0.0.0:4099` by default (token-gated). For a PWA install you
115
+ need a secure context:
190
116
 
191
117
  | Method | Command | Notes |
192
118
  |---|---|---|
193
- | **Tailscale** (recommended) | `tailscale serve 17081` | Stable `https://<host>.ts.net`, device-level auth, survives restarts |
194
- | **cloudflared quick tunnel** | `cloudflared tunnel --url http://localhost:17081` | Free `https://*.trycloudflare.com`; URL changes each run |
195
- | **SSH port-forward** | `ssh -L 17081:localhost:17081 <host>` | Then open `http://127.0.0.1:17081` (localhost = secure context) |
196
-
197
- Set `WEB_PUBLIC_URL` to the resulting HTTPS URL so `/pair` emits the right
198
- links. (If you already run a `cloudflared` tunnel to `:4099`, `/pair`
199
- auto-detects its hostname from `~/.cloudflared`.) Plain `http://<LAN-IP>` is
200
- **not** a secure context — Chrome won't install it as an app.
201
-
202
- ### Install as an app
203
-
204
- In Chrome: the omnibox install icon, or **⋮ → Cast, save, and share → Install
205
- page as app…**. The installed PWA reuses the browser's stored token, so it stays
206
- signed in.
207
-
208
- ## Commands
209
-
210
- | Command | Description |
211
- |---|---|
212
- | `/start` | Handshake + health check |
213
- | `/status` | Server health, session count, pinned session |
214
- | `/sessions` | List all sessions with pin buttons |
215
- | `/session <id>` | Pin a specific session |
216
- | `/workspaces` | List known workspaces (directories) |
217
- | `/new` | Start a new session in the active workspace |
218
- | `/rename <title>` | Rename the pinned session |
219
- | `/files` | Files touched in the last session |
220
- | `/diff` | Pending git diff for the session |
221
- | `/todo` | Session todo list |
222
- | `/context` | Tokens + cost + model for the session |
223
- | `/agent` | Set next agent (sticky until cleared) |
224
- | `/model` | Set next model (sticky until cleared) |
225
- | `/current` | Show pinned session |
226
- | `/abort` | Stop the current generation |
227
- | `/pair` | Pair a device (URL + QR with token) for the Web PWA |
228
- | `/version` | Plugin version + uptime |
229
- | `/help` | Show this list |
230
-
231
- Send any text to relay it into opencode.
232
-
233
- ## Push notifications
234
-
235
- The plugin watches opencode sessions and proactively pushes summaries:
236
-
237
- | Trigger | When | Content |
238
- |---|---|---|
239
- | Session finished | >60s run completes | Duration + assistant text summary (first 300 chars) |
240
- | Test failure | Bash output contains FAIL/FAILED | Last 200 chars of output |
119
+ | **LAN, plain HTTP** | open `http://<lan-ip>:4099` | Works in-browser; PWA install needs HTTPS |
120
+ | **Tailscale** | `tailscale serve 4099` | Stable `https://<host>.ts.net`, device auth |
121
+ | **cloudflared** | `cloudflared tunnel --url http://localhost:4099` | Free, URL rotates; set `OCRC_WEB_PUBLIC_URL` |
241
122
 
242
- Rate limits: max 10 notifications/hour, 5-min cooldown per session. A session
243
- the foreground UI just delivered is skipped (no double-ping).
123
+ ## Security model
124
+
125
+ - One allowlisted Telegram user; web devices hold a token generated at first
126
+ start (persisted `0600` at `~/.ocrc/token`), verified with constant-time
127
+ compare on HTTP and WS.
128
+ - Pairing QR links carry a pending token (5 min, single use) — never the
129
+ permanent credential.
130
+ - If the opencode server itself runs with `OPENCODE_SERVER_PASSWORD`, ocrc
131
+ authenticates its server calls with HTTP Basic (same env, no extra config).
132
+ - No cloud. Everything stays on the machine except Telegram API traffic.
244
133
 
245
- ## Multi-transport
134
+ ## Configuration
246
135
 
247
- Telegram and Web run simultaneously and share the same opencode session state,
248
- relaying output to every connected channel in real time.
136
+ Settings live in `~/.ocrc/config.env` (`0600`; `KEY=VALUE`). Highlights:
249
137
 
250
- | Transport | Status | Notes |
138
+ | Key | Default | Notes |
251
139
  |---|---|---|
252
- | Telegram | ✅ Stable | Final-result delivery, pagination, approvals |
253
- | Web (PWA) | ✅ Stable | SvelteKit, full streaming, token auth (default) / Cloudflare Access |
140
+ | `TELEGRAM_BOT_TOKEN` | — | required for the Telegram surface |
141
+ | `ALLOWED_USER_IDS` | — | comma-separated Telegram user ids |
142
+ | `OCRC_WEB_ENABLED` | `true` | web panel on/off |
143
+ | `OCRC_WEB_PORT` | `4099` | web panel port |
144
+ | `OCRC_WEB_HOST` | `0.0.0.0` | bind address |
145
+ | `OCRC_SERVER_PORT` | `4096` | opencode server port (lifecycle commands) |
146
+ | `OCRC_SERVER_BIN` | `~/.local/bin/opencode` | binary used by `ocrc start` |
147
+ | `OCRC_WATCH_DELAY` | `5` | supervisor restart delay (s) |
148
+ | `OPENCODE_SERVER_PASSWORD` | — | enables HTTP Basic for server calls |
149
+ | `LOG_LEVEL` | `info` | `debug` / `info` / `warn` / `error` |
150
+
151
+ Legacy `WEB_*` names are honored as fallbacks. Full list:
152
+ [`docs/OPS.md`](docs/OPS.md).
254
153
 
255
- To add another channel, see
256
- [`docs/transports/CONTRIBUTING-NEW-TRANSPORT.md`](docs/transports/CONTRIBUTING-NEW-TRANSPORT.md).
154
+ ## Architecture
257
155
 
258
- ## Security model
156
+ ```
157
+ ┌────────────────────────────────────────────────────┐
158
+ │ opencode (single process) │
159
+ │ │
160
+ │ ┌─────────────────┐ ┌──────────────────────────┐ │
161
+ │ │ AI engine :4096 │ │ plugin: ocrc │ │
162
+ │ │ │ │ ├─ grammY (Telegram) │ │
163
+ │ │ event hook ────┼──┼─►├─ Hono + WS (Web PWA) │ │
164
+ │ │ │ │ └─ relay + CardBus │ │
165
+ │ └─────────────────┘ └─────────┬────────────────┘ │
166
+ │ ▼ │
167
+ │ Telegram / Web (PWA) │
168
+ └────────────────────────────────────────────────────┘
169
+ ```
259
170
 
260
- - **Single-user per install.** Only the Telegram IDs in `ALLOWED_USER_IDS` can
261
- interact with the bot.
262
- - **Local-first.** Runs on your machine, talks to your local opencode server,
263
- stores state in a local JSON file (`data/state.json`).
264
- - **No secrets in repo.** `.env` is gitignored; `.env.example` documents every
265
- variable.
266
- - **Web auth is pluggable.** Default is an app **token** (auto-generated,
267
- persisted `0600` at `~/.ocrc/token`), verified on HTTP and WS with a
268
- constant-time compare; `WEB_AUTH=cf-access` switches to Cloudflare Access. The
269
- dev bypass only trusts a real loopback peer (never the bind address) and is
270
- **off by default**.
271
-
272
- ## Environment variables
273
-
274
- | Variable | Default | Description |
275
- |---|---|---|
276
- | `TELEGRAM_BOT_TOKEN` | — (required) | Telegram bot token from @BotFather |
277
- | `ALLOWED_USER_IDS` | — (required) | Comma-separated allowed Telegram user IDs |
278
- | `OPENCODE_BASE_URL` | — | opencode server URL. Unused in plugin mode (the SDK client is injected); legacy/sidecar only |
279
- | `CHAT_TIMEOUT_MS` | `600000` | Per-message timeout (ms) |
280
- | `TUI_VISIBLE` | `true` | Navigate the TUI to the target session; `false` = pure direct API |
281
- | `STATE_PATH` | `./data/state.json` | Persistent state file |
282
- | `LOG_LEVEL` | `info` | `debug` \| `info` \| `warn` \| `error` |
283
- | `TG_CHUNK_SOFT_LIMIT` | `3500` | Telegram message pagination soft limit |
284
- | **Web** |||
285
- | `WEB_ENABLED` | `false` | Enable the Web transport |
286
- | `WEB_HOST` | `127.0.0.1` | Web bind address (keep loopback; front with a tunnel) |
287
- | `WEB_PORT` | `17081` | Web port (opencode 1.17's own server occupies `7081`) |
288
- | `WEB_AUTH` | `token` | Auth strategy: `token` (app token) or `cf-access` |
289
- | `WEB_TOKEN` | auto | App token; auto-generated and persisted `0600` at `~/.ocrc/token` if unset |
290
- | `WEB_PUBLIC_URL` | — | Public URL for pairing/QR; falls back to LAN, then loopback |
291
- | `WEB_STATIC_ROOT` | `<repo>/web/dist` | Built PWA path (resolved from the plugin dir, cwd-independent) |
292
- | `WEB_SESSION_CACHE_SIZE` | `100` | Per-session card ring-buffer size |
293
- | `WEB_CF_ACCESS_TEAM` | — | Cloudflare Access team name (when `WEB_AUTH=cf-access`) |
294
- | `WEB_CF_ACCESS_AUD` | — | Cloudflare Access app AUD tag (when `WEB_AUTH=cf-access`) |
295
- | `WEB_CF_ACCESS_DEV_BYPASS` | `false` | Bypass auth **only for a loopback socket peer** |
296
-
297
- ## opencode 1.17+ notes
298
-
299
- opencode 1.17 changed plugin loading; this project accounts for all of it:
300
-
301
- - **Local plugins load from `~/.config/opencode/plugins/`**, not from directory
302
- paths in `opencode.json`. The installer writes a bridge file there that
303
- re-invokes the built `dist/` (the source of truth — rebuild + restart to
304
- update). 1.17 also only calls functions *defined* in the loaded module, so the
305
- bridge wraps the plugin in a local function rather than re-exporting it.
306
- - **Plugins run in a worker thread.** An unhandled rejection would otherwise
307
- crash the worker (`Worker has been terminated`), taking down the web server.
308
- The plugin installs absorbing guards so it survives.
309
- - **Web runs on `17081`** because opencode's own server occupies `7081`. Point
310
- your tunnel ingress at `17081`.
311
- - **PRIMARY election.** Web (`:4099`) and the Telegram bot are global
312
- singletons. Multiple opencode instances elect one PRIMARY (atomic lock at
313
- `~/.ocrc/primary.lock`) to own them; the others stand down PASSIVE.
314
- Run the hub from a small/empty directory so the file watcher stays fast.
315
-
316
- ## Testing
171
+ Deep dive: [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md).
172
+
173
+ ## Development
317
174
 
318
175
  ```bash
319
- npm test # backend unit tests
320
- npx tsc --noEmit # backend type-check
321
- cd web && npm run check # web type-check (svelte-check)
322
- cd web && npm test # web unit tests
323
- cd web && npm run build # build PWA
176
+ npm install && npm run build:all # plugin + web
177
+ npm test # backend (vitest)
178
+ cd web && npm test # web (vitest)
179
+ bash scripts/spike-restart.sh # isolated dev instance (never touches prod)
324
180
  ```
325
181
 
326
- ## License
182
+ ## Credits & license
327
183
 
328
- MIT — see [LICENSE](LICENSE).
184
+ MIT — see [LICENSE](LICENSE) and [NOTICE](NOTICE): forked from
185
+ [agentjoey/opencode-remote-control](https://github.com/agentjoey/opencode-remote-control);
186
+ Telegram UX model from [@grinev/opencode-telegram-bot](https://github.com/grinev/opencode-telegram-bot).
@@ -153,14 +153,12 @@ export async function runInstall(options) {
153
153
  port = (await ask(rl, `Web port (opencode itself uses 7081) [${port}]: `)).trim() || port;
154
154
  rl.close();
155
155
  }
156
- if (!token) {
157
- console.error('TELEGRAM_BOT_TOKEN is required.');
158
- process.exit(1);
159
- }
160
- if (!ids) {
161
- console.error('ALLOWED_USER_IDS is required.');
162
- process.exit(1);
163
- }
156
+ // M12: Telegram is optional — a web-only install is a first-class shape.
157
+ // Leave the token empty and only the Web panel starts.
158
+ if (!token)
159
+ console.log(' (no Telegram token — web-only install; the bot surface will not start)');
160
+ if (!ids)
161
+ console.log(' (no ALLOWED_USER_IDS — Telegram allowlist left empty)');
164
162
  upsertEnv({
165
163
  TELEGRAM_BOT_TOKEN: token,
166
164
  ALLOWED_USER_IDS: ids,
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,8EAA8E;AAC9E,0DAA0D;AAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAC9E,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;AACrG,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAA;AACxD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;AAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAA;AAC1D,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAA;AACvE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;AAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AACxC,MAAM,gBAAgB,GAAG,MAAM,CAAA,CAAC,6CAA6C;AAM7E,KAAK,UAAU,GAAG,CAAC,EAAsC,EAAE,QAAgB;IACzE,OAAO,IAAI,OAAO,CAAS,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,qGAAqG;AACrG,SAAS,OAAO;IACd,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAA;IACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,GAAG,CAAA;IACrC,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QAC3C,IAAI,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,kFAAkF;AAClF,SAAS,SAAS,CAAC,OAA+B;IAChD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACrF,MAAM,SAAS,GAAG,EAAE,GAAG,OAAO,EAAE,CAAA;IAChC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACtC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACzB,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACtB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;QACvB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IACF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACrE,2EAA2E;IAC3E,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9E,IAAI,CAAC;QACH,iFAAiF;QACjF,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,SAAS,WAAW;IAClB,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3C,6EAA6E;IAC7E,uEAAuE;IACvE,wEAAwE;IACxE,8DAA8D;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAA;IACpE,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;YAC7D,UAAU,CAAC,YAAY,CAAC,CAAA;YACxB,OAAO,CAAC,GAAG,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC7B,aAAa,CACX,WAAW,EACX;;;;;;;;;;;;qBAYiB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;;;;;;;;;CAUzC,CACE,CAAA;IACD,+CAA+C;IAC/C,IAAI,GAAG,GAA4B,EAAE,CAAA;IACrC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,GAAG,GAAG,EAAE,CAAA;QAAC,CAAC;IAC9E,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAA;QACnB,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC9D,CAAC;AACH,CAAC;AAED,2FAA2F;AAC3F,SAAS,mBAAmB;IAC1B,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAAE,OAAO,KAAK,CAAA;IACnD,IAAI,MAA2B,CAAA;IAC/B,IAAI,CAAC;QAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAA;IAAC,CAAC;IAC/F,MAAM,OAAO,GAAsC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAA;IACtE,MAAM,QAAQ,GAAG,CAAC,CAA6B,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxC,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,gCAAgC,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjH,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACpD,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAA;IACxB,aAAa,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC3E,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAuB;IACtD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;IACxD,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,EAAE,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,EAAE,CAAC,CAAA;IACzC,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAA;IAEtC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,uBAAuB,KAAK,2CAA2C,CAAC,CAAA;QACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;IACrB,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAA;IACjF,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAA;IAC3E,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,MAAM,CAAA;IACrE,IAAI,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAA;IAE9E,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QAC5E,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QACtC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,uBAAuB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,CAAA;QAC/F,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,uCAAuC,GAAG,IAAI,UAAU,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAA;QAClG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,iCAAiC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAA;QAC9E,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,yCAAyC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAA;QACzF,EAAE,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAAC,CAAC;IACjF,IAAI,CAAC,GAAG,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAAC,CAAC;IAE7E,SAAS,CAAC;QACR,kBAAkB,EAAE,KAAK;QACzB,gBAAgB,EAAE,GAAG;QACrB,gBAAgB,EAAE,GAAG;QACrB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAA;IACF,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAA;IAE9C,WAAW,EAAE,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,+BAA+B,WAAW,EAAE,CAAC,CAAA;IAEzD,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,qDAAqD,oBAAoB,EAAE,CAAC,CAAA;IAC1F,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAA;IACrF,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAA;IACpF,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAA;IACnF,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAA;IAC1E,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAA;IACrF,OAAO,CAAC,GAAG,CAAC,0EAA0E,IAAI,EAAE,CAAC,CAAA;IAC7F,OAAO,CAAC,GAAG,CAAC,sDAAsD,IAAI,MAAM,CAAC,CAAA;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;0BAmBU,gBAAgB;;CAEzC,CAAC,CAAA;QACE,OAAM;IACR,CAAC;IACD,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC1E,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;IACvF,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,8EAA8E;AAC9E,0DAA0D;AAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAC9E,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;AACrG,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAA;AACxD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;AAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAA;AAC1D,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAA;AACvE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;AAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AACxC,MAAM,gBAAgB,GAAG,MAAM,CAAA,CAAC,6CAA6C;AAM7E,KAAK,UAAU,GAAG,CAAC,EAAsC,EAAE,QAAgB;IACzE,OAAO,IAAI,OAAO,CAAS,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,qGAAqG;AACrG,SAAS,OAAO;IACd,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAA;IACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,GAAG,CAAA;IACrC,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QAC3C,IAAI,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,kFAAkF;AAClF,SAAS,SAAS,CAAC,OAA+B;IAChD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACrF,MAAM,SAAS,GAAG,EAAE,GAAG,OAAO,EAAE,CAAA;IAChC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACtC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACzB,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACtB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;QACvB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IACF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACrE,2EAA2E;IAC3E,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9E,IAAI,CAAC;QACH,iFAAiF;QACjF,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,SAAS,WAAW;IAClB,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3C,6EAA6E;IAC7E,uEAAuE;IACvE,wEAAwE;IACxE,8DAA8D;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAA;IACpE,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;YAC7D,UAAU,CAAC,YAAY,CAAC,CAAA;YACxB,OAAO,CAAC,GAAG,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC7B,aAAa,CACX,WAAW,EACX;;;;;;;;;;;;qBAYiB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;;;;;;;;;CAUzC,CACE,CAAA;IACD,+CAA+C;IAC/C,IAAI,GAAG,GAA4B,EAAE,CAAA;IACrC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,GAAG,GAAG,EAAE,CAAA;QAAC,CAAC;IAC9E,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAA;QACnB,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC9D,CAAC;AACH,CAAC;AAED,2FAA2F;AAC3F,SAAS,mBAAmB;IAC1B,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAAE,OAAO,KAAK,CAAA;IACnD,IAAI,MAA2B,CAAA;IAC/B,IAAI,CAAC;QAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAA;IAAC,CAAC;IAC/F,MAAM,OAAO,GAAsC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAA;IACtE,MAAM,QAAQ,GAAG,CAAC,CAA6B,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxC,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,gCAAgC,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjH,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACpD,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAA;IACxB,aAAa,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC3E,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAuB;IACtD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;IACxD,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,EAAE,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,EAAE,CAAC,CAAA;IACzC,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAA;IAEtC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,uBAAuB,KAAK,2CAA2C,CAAC,CAAA;QACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;IACrB,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAA;IACjF,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAA;IAC3E,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,MAAM,CAAA;IACrE,IAAI,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAA;IAE9E,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QAC5E,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QACtC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,uBAAuB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,CAAA;QAC/F,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,uCAAuC,GAAG,IAAI,UAAU,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAA;QAClG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,iCAAiC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAA;QAC9E,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,yCAAyC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAA;QACzF,EAAE,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,yEAAyE;IACzE,uDAAuD;IACvD,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAA;IACnG,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAA;IAEhF,SAAS,CAAC;QACR,kBAAkB,EAAE,KAAK;QACzB,gBAAgB,EAAE,GAAG;QACrB,gBAAgB,EAAE,GAAG;QACrB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAA;IACF,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAA;IAE9C,WAAW,EAAE,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,+BAA+B,WAAW,EAAE,CAAC,CAAA;IAEzD,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,qDAAqD,oBAAoB,EAAE,CAAC,CAAA;IAC1F,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAA;IACrF,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAA;IACpF,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAA;IACnF,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAA;IAC1E,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAA;IACrF,OAAO,CAAC,GAAG,CAAC,0EAA0E,IAAI,EAAE,CAAC,CAAA;IAC7F,OAAO,CAAC,GAAG,CAAC,sDAAsD,IAAI,MAAM,CAAC,CAAA;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;0BAmBU,gBAAgB;;CAEzC,CAAC,CAAA;QACE,OAAM;IACR,CAAC;IACD,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC1E,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;IACvF,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -146,7 +146,10 @@ async function startCore(plane, config, primary) {
146
146
  // M9: the channels panel can disable a channel (enabled=false) — the
147
147
  // transport is then not created at all (takes effect on restart).
148
148
  const tgChannelCfg = channels.get('tg-default');
149
- const tgEnabled = tgChannelCfg?.enabled ?? true;
149
+ // M12: web-only is a first-class shape — an empty token means the Telegram
150
+ // surface simply doesn't exist (no grammY retry spam); the web panel and
151
+ // its onboarding page carry the product on their own.
152
+ const tgEnabled = (tgChannelCfg?.enabled ?? true) && !!config.telegramBotToken;
150
153
  // M11: pending-token pairing — /pair surfaces (TG + web QR) issue a
151
154
  // short-lived single-use token instead of the permanent access token.
152
155
  const pairing = createPairingStore(() => loadOrCreateToken({ token: config.webToken }));
@@ -1 +1 @@
1
- {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/plugin/entry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/plugin/entry.ts"],"names":[],"mappings":"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"}