@kcisoul/remotecode 0.9.2 → 0.9.5
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 +49 -151
- package/dist/__tests__/format.test.js +35 -0
- package/dist/__tests__/format.test.js.map +1 -1
- package/dist/callbacks.d.ts +11 -5
- package/dist/callbacks.d.ts.map +1 -1
- package/dist/callbacks.js +191 -62
- package/dist/callbacks.js.map +1 -1
- package/dist/claude.d.ts +22 -7
- package/dist/claude.d.ts.map +1 -1
- package/dist/claude.js +239 -96
- package/dist/claude.js.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +102 -2
- package/dist/commands.js.map +1 -1
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -0
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +1 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +3 -11
- package/dist/context.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +42 -8
- package/dist/daemon.js.map +1 -1
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +48 -0
- package/dist/format.js.map +1 -1
- package/dist/handler.d.ts +7 -0
- package/dist/handler.d.ts.map +1 -1
- package/dist/handler.js +280 -47
- package/dist/handler.js.map +1 -1
- package/dist/jsonl.d.ts +9 -0
- package/dist/jsonl.d.ts.map +1 -0
- package/dist/jsonl.js +57 -0
- package/dist/jsonl.js.map +1 -0
- package/dist/logger.d.ts +4 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +16 -0
- package/dist/logger.js.map +1 -1
- package/dist/sdk-types.d.ts +9 -0
- package/dist/sdk-types.d.ts.map +1 -0
- package/dist/sdk-types.js +27 -0
- package/dist/sdk-types.js.map +1 -0
- package/dist/session-ui.d.ts +4 -0
- package/dist/session-ui.d.ts.map +1 -1
- package/dist/session-ui.js +46 -47
- package/dist/session-ui.js.map +1 -1
- package/dist/sessions.d.ts +4 -2
- package/dist/sessions.d.ts.map +1 -1
- package/dist/sessions.js +92 -50
- package/dist/sessions.js.map +1 -1
- package/dist/telegram.d.ts.map +1 -1
- package/dist/telegram.js +10 -0
- package/dist/telegram.js.map +1 -1
- package/dist/watcher.d.ts +2 -0
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +28 -12
- package/dist/watcher.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -18,86 +18,11 @@ You (Anywhere) <--> RemoteCode (Host) <--> Claude Code (Host)
|
|
|
18
18
|
- **Background daemon** -- Runs as a detached process with log rotation
|
|
19
19
|
- **User access control** -- Restrict access by Telegram user ID or username
|
|
20
20
|
|
|
21
|
-
##
|
|
21
|
+
## Demo
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
sequenceDiagram
|
|
25
|
-
participant U as You (Telegram)
|
|
26
|
-
participant T as Telegram API
|
|
27
|
-
participant D as RemoteCode Daemon
|
|
28
|
-
participant C as Claude Code CLI
|
|
23
|
+
[](https://www.youtube.com/watch?v=JFlsf4MPQB8)
|
|
29
24
|
|
|
30
|
-
|
|
31
|
-
T->>D: Long polling (getUpdates)
|
|
32
|
-
D->>D: Auth check & route
|
|
33
|
-
|
|
34
|
-
alt Text message
|
|
35
|
-
D->>C: claude --resume <session> --print "prompt"
|
|
36
|
-
else Image
|
|
37
|
-
D->>T: Download file
|
|
38
|
-
D->>C: claude --resume <session> --print "prompt + image path"
|
|
39
|
-
else Voice
|
|
40
|
-
D->>T: Download audio
|
|
41
|
-
D->>D: ffmpeg + whisper-cli transcription
|
|
42
|
-
D->>C: claude --resume <session> --print "transcription"
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
C-->>D: stdout response
|
|
46
|
-
D->>D: Markdown → Telegram HTML
|
|
47
|
-
D->>T: sendMessage (HTML)
|
|
48
|
-
T-->>U: Formatted response
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Architecture
|
|
52
|
-
|
|
53
|
-
```mermaid
|
|
54
|
-
graph TB
|
|
55
|
-
subgraph CLI["CLI (Terminal)"]
|
|
56
|
-
IDX[index.ts<br/>arg parser]
|
|
57
|
-
CL[cli.ts<br/>subcommands]
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
subgraph Daemon["Daemon Process"]
|
|
61
|
-
DAE[daemon.ts<br/>poll loop + PID]
|
|
62
|
-
HND[handler.ts<br/>message router]
|
|
63
|
-
CMD[commands.ts<br/>slash commands]
|
|
64
|
-
CB[callbacks.ts<br/>inline buttons]
|
|
65
|
-
WAT[watcher.ts<br/>auto-sync]
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
subgraph Core["Core"]
|
|
69
|
-
TEL[telegram.ts<br/>API client]
|
|
70
|
-
CLA[claude.ts<br/>CLI spawner]
|
|
71
|
-
SES[sessions.ts<br/>discovery + state]
|
|
72
|
-
SUI[session-ui.ts<br/>UI formatting]
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
subgraph Shared["Shared"]
|
|
76
|
-
CFG[config.ts<br/>paths + KV I/O]
|
|
77
|
-
LOG[logger.ts<br/>logging]
|
|
78
|
-
BAN[banner.ts<br/>terminal UI]
|
|
79
|
-
CTX[context.ts<br/>auth + locks]
|
|
80
|
-
FMT[format.ts<br/>MD → HTML]
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
IDX --> DAE
|
|
84
|
-
IDX --> CL
|
|
85
|
-
CL --> DAE
|
|
86
|
-
DAE --> HND
|
|
87
|
-
DAE --> CB
|
|
88
|
-
HND --> CMD
|
|
89
|
-
HND --> CLA
|
|
90
|
-
HND --> CTX
|
|
91
|
-
CB --> SES
|
|
92
|
-
CB --> SUI
|
|
93
|
-
CMD --> SUI
|
|
94
|
-
WAT --> SES
|
|
95
|
-
WAT --> CTX
|
|
96
|
-
CLA --> LOG
|
|
97
|
-
TEL --> LOG
|
|
98
|
-
SUI --> FMT
|
|
99
|
-
CL --> BAN
|
|
100
|
-
```
|
|
25
|
+
▶ [Watch the demo on YouTube](https://www.youtube.com/watch?v=JFlsf4MPQB8)
|
|
101
26
|
|
|
102
27
|
## Platform Support
|
|
103
28
|
|
|
@@ -105,7 +30,7 @@ graph TB
|
|
|
105
30
|
|---|---|---|
|
|
106
31
|
| **macOS** | Supported | Homebrew for STT dependencies |
|
|
107
32
|
| **Linux** | Supported | STT currently not supported |
|
|
108
|
-
| **Windows** | Not
|
|
33
|
+
| **Windows** | Not tested | |
|
|
109
34
|
|
|
110
35
|
## Quick Start
|
|
111
36
|
|
|
@@ -141,11 +66,41 @@ The interactive setup wizard will prompt for:
|
|
|
141
66
|
|
|
142
67
|
1. **TELEGRAM_BOT_TOKEN** -- validated against Telegram API
|
|
143
68
|
2. **REMOTECODE_ALLOWED_USERS** -- comma-separated user IDs or @usernames
|
|
144
|
-
3. **REMOTECODE_YOLO** -- `Y` enables autonomous mode (Claude Code runs without permission prompts
|
|
69
|
+
3. **REMOTECODE_YOLO** -- `Y` enables autonomous mode (Claude Code runs without permission prompts). Set `N` to get Allow / Deny / Allow all prompts via Telegram inline buttons for each tool action
|
|
145
70
|
4. **STT setup** -- optional offline voice transcription. Installs `whisper-cli` and `ffmpeg` via your system's package manager, and downloads a local Whisper model (~466 MB). Runs entirely on your machine -- no API calls, completely free
|
|
146
71
|
|
|
147
72
|
Config is saved to `~/.remotecode/config`.
|
|
148
73
|
|
|
74
|
+
## How It Works
|
|
75
|
+
|
|
76
|
+
```mermaid
|
|
77
|
+
sequenceDiagram
|
|
78
|
+
participant U as 📱 Telegram
|
|
79
|
+
participant T as ☁️ Telegram API
|
|
80
|
+
participant D as ⚙️ RemoteCode
|
|
81
|
+
participant C as 🤖 Claude Code
|
|
82
|
+
|
|
83
|
+
U->>T: Send message
|
|
84
|
+
T->>D: Long polling (getUpdates)
|
|
85
|
+
D->>D: Auth check & route
|
|
86
|
+
|
|
87
|
+
alt Text message
|
|
88
|
+
D->>C: SDK query (prompt)
|
|
89
|
+
else Image
|
|
90
|
+
D->>T: Download file
|
|
91
|
+
D->>C: SDK query (prompt + image path)
|
|
92
|
+
else Voice
|
|
93
|
+
D->>T: Download audio
|
|
94
|
+
D->>D: ffmpeg → whisper-cli transcription
|
|
95
|
+
D->>C: SDK query (transcription)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
C-->>D: Streaming response
|
|
99
|
+
D->>D: Markdown → Telegram HTML
|
|
100
|
+
D->>T: sendMessage (HTML)
|
|
101
|
+
T-->>U: Formatted response
|
|
102
|
+
```
|
|
103
|
+
|
|
149
104
|
## CLI Commands
|
|
150
105
|
|
|
151
106
|
| Command | Description |
|
|
@@ -179,17 +134,27 @@ Send these as messages in your Telegram chat with the bot:
|
|
|
179
134
|
| `/projects` | Browse sessions grouped by project directory |
|
|
180
135
|
| `/new` | Start a new Claude Code session |
|
|
181
136
|
| `/history` | Show conversation history of current session |
|
|
137
|
+
| `/cancel` | Cancel the current task |
|
|
138
|
+
| `/model` | Switch Claude model (Sonnet / Opus / Haiku) |
|
|
182
139
|
| `/sync` | Toggle auto-sync notifications on/off |
|
|
183
140
|
|
|
184
141
|
### Inline Buttons
|
|
185
142
|
|
|
186
143
|
After `/sessions` or `/projects`, interactive inline keyboards let you:
|
|
187
144
|
|
|
188
|
-
- **Switch** to any session with one tap
|
|
145
|
+
- **Switch** to any session with one tap (old task continues silently in background)
|
|
189
146
|
- **Create** new sessions (globally or per-project)
|
|
190
147
|
- **Delete** sessions
|
|
191
148
|
- **Navigate** between project views
|
|
192
149
|
|
|
150
|
+
### Permission Prompts (non-YOLO)
|
|
151
|
+
|
|
152
|
+
When YOLO mode is off, Claude Code tool actions trigger an inline keyboard:
|
|
153
|
+
|
|
154
|
+
- **Allow** -- permit this single action
|
|
155
|
+
- **Deny** -- reject and interrupt the task
|
|
156
|
+
- **Allow all** -- auto-allow all actions for the rest of this session (resets on session switch)
|
|
157
|
+
|
|
193
158
|
## Message Types
|
|
194
159
|
|
|
195
160
|
### Text
|
|
@@ -214,23 +179,12 @@ Send a voice message or audio file. The bot:
|
|
|
214
179
|
|
|
215
180
|
## Session Management
|
|
216
181
|
|
|
217
|
-
```mermaid
|
|
218
|
-
stateDiagram-v2
|
|
219
|
-
[*] --> NoSession: First message
|
|
220
|
-
NoSession --> NewSession: auto-create UUID
|
|
221
|
-
NewSession --> Active: claude --session-id
|
|
222
|
-
Active --> Active: claude --resume
|
|
223
|
-
Active --> Switched: /sessions or inline button
|
|
224
|
-
Switched --> Active: select different session
|
|
225
|
-
Active --> NewSession: /new
|
|
226
|
-
```
|
|
227
|
-
|
|
228
182
|
RemoteCode discovers sessions from `~/.claude/projects/*/` by scanning `.jsonl` files. Each session maps to a Claude Code conversation.
|
|
229
183
|
|
|
230
184
|
- **Active session** is stored in `~/.remotecode/local`
|
|
231
185
|
- **Session CWD** determines which directory Claude Code runs in
|
|
232
186
|
- Sessions are auto-created on first message if none exists
|
|
233
|
-
-
|
|
187
|
+
- **Switching sessions** while a task is running keeps the old task working silently in the background -- only the active session's messages are shown. Use `/cancel` to stop a task
|
|
234
188
|
|
|
235
189
|
### Auto-Sync
|
|
236
190
|
|
|
@@ -256,65 +210,9 @@ REMOTECODE_YOLO=true
|
|
|
256
210
|
|---|---|---|
|
|
257
211
|
| `TELEGRAM_BOT_TOKEN` | Yes | Bot token from @BotFather |
|
|
258
212
|
| `REMOTECODE_ALLOWED_USERS` | Yes | Comma/space-separated user IDs or @usernames |
|
|
259
|
-
| `REMOTECODE_YOLO` | No | `true`
|
|
213
|
+
| `REMOTECODE_YOLO` | No | `true` to auto-approve all tool actions. `false` to get Allow / Deny / Allow all prompts via Telegram |
|
|
260
214
|
| `REMOTECODE_VERBOSE` | No | `true` to enable DEBUG-level logging |
|
|
261
215
|
|
|
262
|
-
## File Structure
|
|
263
|
-
|
|
264
|
-
```
|
|
265
|
-
~/.remotecode/
|
|
266
|
-
config # Global configuration (KV file)
|
|
267
|
-
local # Active session state (session ID, CWD, chat ID)
|
|
268
|
-
remotecode.pid # Daemon process ID
|
|
269
|
-
remotecode.log # Log file (5MB rotation, keeps .old)
|
|
270
|
-
remotecode.log.old # Previous rotated log
|
|
271
|
-
whisper/
|
|
272
|
-
ggml-small.bin # Whisper model (if STT enabled)
|
|
273
|
-
RemoteCodeSessions/ # Default CWD for new sessions
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
## Message Flow
|
|
277
|
-
|
|
278
|
-
```mermaid
|
|
279
|
-
flowchart TD
|
|
280
|
-
A[Telegram Update] --> B{Message type?}
|
|
281
|
-
B -->|callback_query| C[callbacks.ts]
|
|
282
|
-
B -->|message| D{Content type?}
|
|
283
|
-
|
|
284
|
-
D -->|text starts with /| E[commands.ts]
|
|
285
|
-
D -->|text| F[handlePrompt]
|
|
286
|
-
D -->|photo / image doc| G[Download & save image]
|
|
287
|
-
D -->|voice / audio| H{STT ready?}
|
|
288
|
-
|
|
289
|
-
H -->|No| I[Send setup instructions]
|
|
290
|
-
H -->|Yes| J[Download → ffmpeg → whisper-cli]
|
|
291
|
-
J --> K{Blank audio?}
|
|
292
|
-
K -->|Yes| L[No speech detected]
|
|
293
|
-
K -->|No| F
|
|
294
|
-
|
|
295
|
-
G --> F
|
|
296
|
-
|
|
297
|
-
F --> M[withSessionLock]
|
|
298
|
-
M --> N[askClaude via CLI]
|
|
299
|
-
N --> O{Session exists?}
|
|
300
|
-
O -->|Yes| P[--resume session]
|
|
301
|
-
O -->|No| Q[--session-id new]
|
|
302
|
-
O -->|Busy| R[Retry up to 5x]
|
|
303
|
-
|
|
304
|
-
P --> S[Format response]
|
|
305
|
-
Q --> S
|
|
306
|
-
R --> S
|
|
307
|
-
S --> T[sendMessage HTML]
|
|
308
|
-
|
|
309
|
-
C --> U{Action}
|
|
310
|
-
U -->|sess:list| V[Show session grid]
|
|
311
|
-
U -->|sess:ID| W[Switch session]
|
|
312
|
-
U -->|sess:new| X[Create new session]
|
|
313
|
-
U -->|proj:list| Y[Show project list]
|
|
314
|
-
U -->|proj:DIR| Z[Show project sessions]
|
|
315
|
-
U -->|sessdel:ID| AA[Delete session]
|
|
316
|
-
```
|
|
317
|
-
|
|
318
216
|
## Speech-to-Text (STT)
|
|
319
217
|
|
|
320
218
|
RemoteCode uses [whisper.cpp](https://github.com/ggerganov/whisper.cpp) for local, offline speech-to-text.
|
|
@@ -346,7 +244,7 @@ Supported package managers: Homebrew (macOS/Linux), apt (Ubuntu/Debian), dnf (Fe
|
|
|
346
244
|
- **Repeat block** -- Unauthorized users are warned once, then silently blocked
|
|
347
245
|
- **No webhook** -- Uses long polling, no public endpoints needed
|
|
348
246
|
- **Local STT** -- Voice transcription runs entirely offline via whisper.cpp
|
|
349
|
-
- **YOLO mode** --
|
|
247
|
+
- **YOLO mode** -- Enables autonomous mode where all tool actions are auto-approved. When off, each action shows Allow / Deny / Allow all buttons in Telegram. "Allow all" grants session-level auto-approval that resets on session switch
|
|
350
248
|
|
|
351
249
|
## Development
|
|
352
250
|
|
|
@@ -40,6 +40,41 @@ const format_1 = require("../format");
|
|
|
40
40
|
const result = (0, format_1.mdToTelegramHtml)("```\n<div>hi</div>\n```");
|
|
41
41
|
(0, vitest_1.expect)(result).toContain("<div>hi</div>");
|
|
42
42
|
});
|
|
43
|
+
(0, vitest_1.it)("converts markdown table to box-drawing in <pre>", () => {
|
|
44
|
+
const table = [
|
|
45
|
+
"| Command | Description |",
|
|
46
|
+
"|---|---|",
|
|
47
|
+
"| /cancel | Cancel task |",
|
|
48
|
+
"| /model | Switch model |",
|
|
49
|
+
].join("\n");
|
|
50
|
+
const result = (0, format_1.mdToTelegramHtml)(table);
|
|
51
|
+
(0, vitest_1.expect)(result).toContain("<pre>");
|
|
52
|
+
(0, vitest_1.expect)(result).toContain("┌");
|
|
53
|
+
(0, vitest_1.expect)(result).toContain("│ Command");
|
|
54
|
+
(0, vitest_1.expect)(result).toContain("│ /cancel");
|
|
55
|
+
(0, vitest_1.expect)(result).toContain("│ /model");
|
|
56
|
+
(0, vitest_1.expect)(result).toContain("└");
|
|
57
|
+
});
|
|
58
|
+
(0, vitest_1.it)("converts table with surrounding text", () => {
|
|
59
|
+
const md = "Here is a table:\n\n| A | B |\n|---|---|\n| 1 | 2 |\n\nDone.";
|
|
60
|
+
const result = (0, format_1.mdToTelegramHtml)(md);
|
|
61
|
+
(0, vitest_1.expect)(result).toContain("Here is a table:");
|
|
62
|
+
(0, vitest_1.expect)(result).toContain("<pre>");
|
|
63
|
+
(0, vitest_1.expect)(result).toContain("│ A │ B │");
|
|
64
|
+
(0, vitest_1.expect)(result).toContain("│ 1 │ 2 │");
|
|
65
|
+
(0, vitest_1.expect)(result).toContain("Done.");
|
|
66
|
+
});
|
|
67
|
+
(0, vitest_1.it)("pads columns to equal width", () => {
|
|
68
|
+
const table = "| A | Long Header |\n|---|---|\n| short | x |";
|
|
69
|
+
const result = (0, format_1.mdToTelegramHtml)(table);
|
|
70
|
+
// "Long Header" is 11 chars, "x" should be padded
|
|
71
|
+
(0, vitest_1.expect)(result).toContain("Long Header");
|
|
72
|
+
(0, vitest_1.expect)(result).toContain("x ");
|
|
73
|
+
});
|
|
74
|
+
(0, vitest_1.it)("leaves non-table pipe text alone", () => {
|
|
75
|
+
const result = (0, format_1.mdToTelegramHtml)("a | b | c");
|
|
76
|
+
(0, vitest_1.expect)(result).toBe("a | b | c");
|
|
77
|
+
});
|
|
43
78
|
});
|
|
44
79
|
(0, vitest_1.describe)("tryMdToHtml", () => {
|
|
45
80
|
(0, vitest_1.it)("returns HTML with parseMode", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.test.js","sourceRoot":"","sources":["../../src/__tests__/format.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"format.test.js","sourceRoot":"","sources":["../../src/__tests__/format.test.ts"],"names":[],"mappings":"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"}
|
package/dist/callbacks.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { CallbackQuery } from "./telegram";
|
|
2
2
|
import { HandlerContext } from "./context";
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
export interface PermMeta {
|
|
4
|
+
sessionId: string;
|
|
5
|
+
toolName: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function registerPendingAsk(id: string): Promise<Record<string, string>>;
|
|
8
|
+
export declare function registerPendingPerm(id: string, meta: PermMeta): Promise<"allow" | "deny" | "allowall">;
|
|
9
|
+
export declare function denyAllPending(): void;
|
|
10
|
+
export declare function allowAllPending(): void;
|
|
11
|
+
export declare function hasPendingPerms(): boolean;
|
|
12
|
+
export declare function buildProjectListDisplay(): {
|
|
13
|
+
text: string;
|
|
8
14
|
};
|
|
9
15
|
export declare function handleCallbackQuery(callback: CallbackQuery, ctx: HandlerContext): Promise<void>;
|
|
10
16
|
//# sourceMappingURL=callbacks.d.ts.map
|
package/dist/callbacks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callbacks.d.ts","sourceRoot":"","sources":["../src/callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAKd,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"callbacks.d.ts","sourceRoot":"","sources":["../src/callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAKd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,cAAc,EAAiB,MAAM,WAAW,CAAC;AA8B1D,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAUD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAQ9E;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC,CAQtG;AAED,wBAAgB,cAAc,IAAI,IAAI,CAWrC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAWtC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAwBD,wBAAgB,uBAAuB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAqB1D;AAGD,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BrG"}
|