@@ -34,58 +34,6 @@ Functional requirements, features, and development status are in [PRODUCT.md](./
3434- ESLint + Prettier
3535- TypeScript strict mode
3636
37- ## Project structure
38-
39- ``` text
40- opencode-telegram-bot/
41- |- src/
42- | |- index.ts # Source-mode entry point
43- | |- cli.ts # Installed CLI entry point
44- | |- config.ts # Environment config loader
45- | |- app/
46- | | \- start-bot-app.ts # App bootstrap
47- | |- runtime/
48- | | |- mode.ts # Runtime mode resolution
49- | | |- paths.ts # Runtime-aware paths
50- | | \- bootstrap.ts # CLI bootstrap/config wizard
51- | |- bot/
52- | | |- index.ts # Bot initialization and handlers
53- | | |- commands/ # Command handlers
54- | | | \- definitions.ts # Centralized command list
55- | | |- handlers/ # Callback handlers (question/permission/model/etc.)
56- | | |- middleware/
57- | | | \- auth.ts # User authorization
58- | | \- utils/
59- | | \- keyboard.ts # Keyboard builders/helpers
60- | |- opencode/
61- | | |- client.ts # SDK wrapper
62- | | \- events.ts # SSE subscription and event handling
63- | |- session/manager.ts # Current session state
64- | |- project/manager.ts # Project management
65- | |- settings/manager.ts # settings.json load/save
66- | |- summary/
67- | | |- aggregator.ts # Event aggregation
68- | | \- formatter.ts # Telegram formatting
69- | |- question/manager.ts # Question tool state
70- | |- permission/manager.ts # Permission tool state
71- | |- model/manager.ts # Model selection state
72- | |- agent/manager.ts # Agent mode state
73- | |- variant/manager.ts # Variant selection state
74- | |- keyboard/manager.ts # Bottom keyboard state
75- | |- pinned/manager.ts # Pinned status message state
76- | |- process/manager.ts # OpenCode process lifecycle
77- | |- i18n/ # Localized strings (en, ru)
78- | \- utils/
79- | |- logger.ts # Logging utility
80- | \- safe-background-task.ts
81- |- tests/
82- |- scripts/
83- |- package.json
84- |- PRODUCT.md
85- |- README.md
86- |- AGENTS.md
87- ```
88-
8937## Architecture
9038
9139### Main components
@@ -230,58 +178,6 @@ Important:
230178- Follow Arrange-Act-Assert
231179- Use ` vi.mock() ` for external dependencies
232180
233- ## Configuration
234-
235- ### Environment variables (` .env ` )
236-
237- ``` bash
238- # Telegram (required)
239- TELEGRAM_BOT_TOKEN=your_bot_token_from_botfather
240- TELEGRAM_ALLOWED_USER_ID=123456789
241-
242- # OpenCode API (optional)
243- # OPENCODE_API_URL=http://localhost:4096
244-
245- # OpenCode Server auth (optional)
246- # OPENCODE_SERVER_USERNAME=opencode
247- # OPENCODE_SERVER_PASSWORD=
248-
249- # Default model (required)
250- OPENCODE_MODEL_PROVIDER=opencode
251- OPENCODE_MODEL_ID=big-pickle
252-
253- # Logging (optional)
254- # LOG_LEVEL=info # debug, info, warn, error
255-
256- # Bot options (optional)
257- # SESSIONS_LIST_LIMIT=10
258- # PROJECTS_LIST_LIMIT=10
259- # BOT_LOCALE=en # en or ru
260- # MESSAGE_FORMAT_MODE=markdown # markdown or raw
261-
262- # File output options (optional)
263- # CODE_FILE_MAX_SIZE_KB=100
264- ```
265-
266- ### Environment variables reference
267-
268- | Variable | Description | Required | Default |
269- | -------------------------- | --------------------------------------------------- | -------- | ----------------------- |
270- | ` TELEGRAM_BOT_TOKEN ` | Bot token from @BotFather | Yes | - |
271- | ` TELEGRAM_ALLOWED_USER_ID ` | Allowed Telegram user ID | Yes | - |
272- | ` TELEGRAM_PROXY_URL ` | Proxy URL for Telegram API | No | - |
273- | ` OPENCODE_MODEL_PROVIDER ` | Default model provider | Yes | - |
274- | ` OPENCODE_MODEL_ID ` | Default model ID | Yes | - |
275- | ` OPENCODE_API_URL ` | OpenCode API URL | No | ` http://localhost:4096 ` |
276- | ` OPENCODE_SERVER_USERNAME ` | OpenCode auth username | No | ` opencode ` |
277- | ` OPENCODE_SERVER_PASSWORD ` | OpenCode auth password | No | empty |
278- | ` LOG_LEVEL ` | Logging level | No | ` info ` |
279- | ` SESSIONS_LIST_LIMIT ` | Max sessions shown in ` /sessions ` | No | ` 10 ` |
280- | ` PROJECTS_LIST_LIMIT ` | Max projects shown in ` /projects ` | No | ` 10 ` |
281- | ` BOT_LOCALE ` | Bot locale (` en ` or ` ru ` ) | No | ` en ` |
282- | ` MESSAGE_FORMAT_MODE ` | Assistant message format mode (` markdown ` or ` raw ` ) | No | ` markdown ` |
283- | ` CODE_FILE_MAX_SIZE_KB ` | Max code file size to send | No | ` 100 ` |
284-
285181## OpenCode SDK quick reference
286182
287183``` typescript
0 commit comments