botmux 2.73.0 → 2.75.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.en.md +3 -2
- package/README.md +3 -2
- package/dist/adapters/cli/antigravity.d.ts.map +1 -1
- package/dist/adapters/cli/antigravity.js +7 -0
- package/dist/adapters/cli/antigravity.js.map +1 -1
- package/dist/adapters/cli/claude-code.d.ts.map +1 -1
- package/dist/adapters/cli/claude-code.js +30 -19
- package/dist/adapters/cli/claude-code.js.map +1 -1
- package/dist/adapters/cli/codex.d.ts.map +1 -1
- package/dist/adapters/cli/codex.js +7 -1
- package/dist/adapters/cli/codex.js.map +1 -1
- package/dist/adapters/cli/traex.d.ts.map +1 -1
- package/dist/adapters/cli/traex.js +7 -1
- package/dist/adapters/cli/traex.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +35 -0
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/adapters/hook-installer.d.ts +4 -0
- package/dist/adapters/hook-installer.d.ts.map +1 -1
- package/dist/adapters/hook-installer.js +32 -2
- package/dist/adapters/hook-installer.js.map +1 -1
- package/dist/bot-registry.d.ts +10 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +3 -0
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +29 -9
- package/dist/cli.js.map +1 -1
- package/dist/core/command-handler.d.ts +10 -0
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +78 -7
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +1 -0
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/dashboard/bot-onboarding.d.ts +2 -0
- package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/bot-onboarding.js +2 -0
- package/dist/dashboard/bot-onboarding.js.map +1 -1
- package/dist/dashboard.js +13 -7
- package/dist/dashboard.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +7 -2
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +7 -2
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts +14 -4
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +59 -18
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +52 -7
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/grant-command.d.ts +8 -2
- package/dist/im/lark/grant-command.d.ts.map +1 -1
- package/dist/im/lark/grant-command.js +66 -14
- package/dist/im/lark/grant-command.js.map +1 -1
- package/dist/services/resumable-session-discovery.d.ts +12 -0
- package/dist/services/resumable-session-discovery.d.ts.map +1 -0
- package/dist/services/resumable-session-discovery.js +331 -0
- package/dist/services/resumable-session-discovery.js.map +1 -0
- package/dist/services/session-store.d.ts +13 -0
- package/dist/services/session-store.d.ts.map +1 -1
- package/dist/services/session-store.js +44 -0
- package/dist/services/session-store.js.map +1 -1
- package/dist/setup/bot-config-editor.d.ts +9 -0
- package/dist/setup/bot-config-editor.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.js +11 -0
- package/dist/setup/bot-config-editor.js.map +1 -1
- package/dist/setup/cli-selection.d.ts +65 -0
- package/dist/setup/cli-selection.d.ts.map +1 -0
- package/dist/setup/cli-selection.js +112 -0
- package/dist/setup/cli-selection.js.map +1 -0
- package/dist/setup/interactive-select.d.ts +30 -0
- package/dist/setup/interactive-select.d.ts.map +1 -0
- package/dist/setup/interactive-select.js +177 -0
- package/dist/setup/interactive-select.js.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/ready-gate.d.ts +6 -0
- package/dist/utils/ready-gate.d.ts.map +1 -1
- package/dist/utils/ready-gate.js +6 -0
- package/dist/utils/ready-gate.js.map +1 -1
- package/dist/worker.js +82 -4
- package/dist/worker.js.map +1 -1
- package/dist/workflows/events/schema.d.ts +560 -560
- package/package.json +1 -1
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resumable-session discovery — scan a CLI's on-disk transcript store and
|
|
3
|
+
* surface the sessions a user can *resume* (paseo-style import), independent of
|
|
4
|
+
* whether the original CLI is still running in tmux. This powers the second
|
|
5
|
+
* filter of `/adopt`: pick a stored session → botmux spawns a fresh worker that
|
|
6
|
+
* runs `<cli> --resume <id>` in the recorded cwd.
|
|
7
|
+
*
|
|
8
|
+
* Three storage shapes are covered (one parser each, shared across CLIs):
|
|
9
|
+
* - Claude-family JSONL (`claude-code`, `seed`): <dataDir>/projects/<hash>/<id>.jsonl
|
|
10
|
+
* - Codex/TRAE rollout (`codex`, `traex`): <sessionsRoot>/YYYY/MM/DD/rollout-*.jsonl
|
|
11
|
+
* - Antigravity history (`antigravity`): <home>/history.jsonl (flat submit log)
|
|
12
|
+
*
|
|
13
|
+
* All scans are daemon-side, pure filesystem (no PTY / subprocess), and run
|
|
14
|
+
* only on an explicit `/adopt` — so we favour correctness over cleverness: take
|
|
15
|
+
* the most-recent files by mtime, then stream each line by line (NOT a bounded
|
|
16
|
+
* byte prefix, which truncates oversized records and hides an append-only log's
|
|
17
|
+
* fresh tail), stopping early once the needed metadata is in hand.
|
|
18
|
+
*/
|
|
19
|
+
import { promises as fs, createReadStream } from 'node:fs';
|
|
20
|
+
import { createInterface } from 'node:readline';
|
|
21
|
+
import { basename, join } from 'node:path';
|
|
22
|
+
const TITLE_MAX = 80;
|
|
23
|
+
/** Safety cap on lines scanned per transcript when searching for the metadata
|
|
24
|
+
* we need (session id / cwd / first prompt). All three live near the top of
|
|
25
|
+
* claude/rollout transcripts, so the early-stop almost always fires first;
|
|
26
|
+
* this only bounds pathological / corrupt files. Antigravity's flat submit log
|
|
27
|
+
* is read in full (see its own higher cap) so tail entries are never missed. */
|
|
28
|
+
const MAX_LINES_PER_FILE = 5_000;
|
|
29
|
+
function asRecord(v) {
|
|
30
|
+
return v && typeof v === 'object' && !Array.isArray(v) ? v : null;
|
|
31
|
+
}
|
|
32
|
+
/** Stream a JSONL file line by line, invoking `onLine` for each parsed object.
|
|
33
|
+
* Return `true` from `onLine` to stop early (closes the stream). Reading
|
|
34
|
+
* COMPLETE lines — rather than a fixed byte prefix — is deliberate: a single
|
|
35
|
+
* oversized first record (e.g. a 200KiB user prompt) must still be parsed
|
|
36
|
+
* whole to recover its `cwd`, and an append-only log's freshest entries live
|
|
37
|
+
* at the tail. Swallows fs/parse errors (missing file, corrupt line) so a bad
|
|
38
|
+
* transcript degrades to "skipped", never throws. */
|
|
39
|
+
async function forEachJsonLine(path, onLine, maxLines = MAX_LINES_PER_FILE) {
|
|
40
|
+
const stream = createReadStream(path, { encoding: 'utf8' });
|
|
41
|
+
// A missing/unreadable file emits 'error' asynchronously; without a listener
|
|
42
|
+
// that becomes an unhandled error. Absorb it — the for-await below also
|
|
43
|
+
// rejects and is caught, but the listener guarantees no stray crash.
|
|
44
|
+
stream.on('error', () => { });
|
|
45
|
+
const rl = createInterface({ input: stream, crlfDelay: Infinity });
|
|
46
|
+
let n = 0;
|
|
47
|
+
try {
|
|
48
|
+
for await (const raw of rl) {
|
|
49
|
+
const line = raw.trim();
|
|
50
|
+
if (line) {
|
|
51
|
+
let parsed = null;
|
|
52
|
+
try {
|
|
53
|
+
parsed = JSON.parse(line);
|
|
54
|
+
}
|
|
55
|
+
catch { /* corrupt line — skip */ }
|
|
56
|
+
const rec = asRecord(parsed);
|
|
57
|
+
if (rec && onLine(rec) === true)
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
if (++n >= maxLines)
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// missing file / read error — return what we have
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
rl.close();
|
|
69
|
+
stream.destroy();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function truncateTitle(text) {
|
|
73
|
+
const norm = text.replace(/\s+/g, ' ').trim();
|
|
74
|
+
if (!norm)
|
|
75
|
+
return '';
|
|
76
|
+
return norm.length > TITLE_MAX ? `${norm.slice(0, TITLE_MAX - 1)}…` : norm;
|
|
77
|
+
}
|
|
78
|
+
/** botmux injects identifiable wrappers into every message it forwards to the
|
|
79
|
+
* CLI: the per-message `<sender type=…>` footer + `<user_message>…</user_message>`
|
|
80
|
+
* envelope, the `<botmux_routing>` block, the legacy `用户发送了:` prefix, or a
|
|
81
|
+
* `[来自 … 的 @mention]` bot handoff. A session whose user turn carries any of
|
|
82
|
+
* these was spawned BY botmux.
|
|
83
|
+
*
|
|
84
|
+
* Per the `/adopt` resume design (option B), such sessions are hidden from the
|
|
85
|
+
* picker — botmux's own sessions are already resumable through their topic or
|
|
86
|
+
* session-closed card, so re-importing them is redundant and confusing. The
|
|
87
|
+
* picker exists to import GENUINELY EXTERNAL sessions (a CLI the user ran
|
|
88
|
+
* standalone in a terminal), whose first prompt is raw text with none of these
|
|
89
|
+
* markers. The session store can't be used for this — it doesn't retain closed
|
|
90
|
+
* sessions — but the transcript wrapper is a reliable, retention-independent
|
|
91
|
+
* signal. */
|
|
92
|
+
// Each pattern matches a STRUCTURAL shape botmux produces — never a bare tag
|
|
93
|
+
// name — so an external session whose prompt merely *discusses* botmux's XML
|
|
94
|
+
// (common in this repo: "explain <botmux_routing>", "why does <sender type=
|
|
95
|
+
// appear") is NOT mis-flagged.
|
|
96
|
+
const BOTMUX_INJECTION_PATTERNS = [
|
|
97
|
+
// The whole prompt IS a botmux envelope — it STARTS with the opening wrapper.
|
|
98
|
+
// botmux wraps every forwarded AND scheduled message this way; an external
|
|
99
|
+
// prompt that merely discusses the tags has them mid-text, not leading. This
|
|
100
|
+
// also catches scheduled-task sessions that carry no trailing <sender> block.
|
|
101
|
+
/^<user_message>[\s\S]*?<\/user_message>/,
|
|
102
|
+
/^用户发送了:\s*\n-{3,}/,
|
|
103
|
+
// Modern envelope: the `</user_message>` close butted up against one of
|
|
104
|
+
// botmux's trailing blocks (claude → <sender>, codex/traex → <session_id>,
|
|
105
|
+
// plus <mentions>/<botmux_reminder>/<botmux_routing>/<available_bots>). A
|
|
106
|
+
// prompt that only mentions "<user_message>" never has this adjacency.
|
|
107
|
+
/<\/user_message>\s*<(?:sender|session_id|mentions|botmux_reminder|botmux_routing|available_bots)\b/i,
|
|
108
|
+
// The per-message footer with a real Lark open_id — bulletproof against a
|
|
109
|
+
// prompt that merely contains the substring "<sender type=".
|
|
110
|
+
/<sender\s+type="(?:user|bot)"\s+open_id="ou_[0-9a-z]{16,}"/i,
|
|
111
|
+
// botmux bot-handoff / quoted-message markers (e.g. antigravity `display`).
|
|
112
|
+
/\[来自[^\]]*?@mention\]|\[用户引用了消息\s*用\s*botmux\s+quoted/,
|
|
113
|
+
// Legacy "用户发送了:---…---" envelope PAIRED with the injected "Session ID:
|
|
114
|
+
// <uuid>" — the combination (not either alone, not anchored at ^) is what's
|
|
115
|
+
// unfakeable, so an optional "你已连接到飞书话题," preamble doesn't defeat it.
|
|
116
|
+
/用户发送了:\s*\n-{3,}[\s\S]*?\n-{3,}[\s\S]*?Session ID:\s*[0-9a-f]{8}-[0-9a-f]{4}-/i,
|
|
117
|
+
];
|
|
118
|
+
function isBotmuxInjected(text) {
|
|
119
|
+
return BOTMUX_INJECTION_PATTERNS.some((re) => re.test(text));
|
|
120
|
+
}
|
|
121
|
+
/** Recursively collect `*.jsonl` files under `root`, returning the most-recently
|
|
122
|
+
* modified `limit` of them. Bounded depth so a pathological tree can't wedge
|
|
123
|
+
* the scan. `excludeBasenames` drops files whose name (sans `.jsonl`) is in the
|
|
124
|
+
* set BEFORE the limit slice — used by claude-family, where the filename IS the
|
|
125
|
+
* session id, so live sessions are skipped without ever being parsed. */
|
|
126
|
+
async function collectRecentJsonl(root, limit, maxDepth = 4, excludeBasenames) {
|
|
127
|
+
const out = [];
|
|
128
|
+
async function walk(dir, depth) {
|
|
129
|
+
if (depth > maxDepth)
|
|
130
|
+
return;
|
|
131
|
+
let dirents;
|
|
132
|
+
try {
|
|
133
|
+
dirents = await fs.readdir(dir, { withFileTypes: true });
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
await Promise.all(dirents.map(async (d) => {
|
|
139
|
+
const full = join(dir, d.name);
|
|
140
|
+
if (d.isDirectory()) {
|
|
141
|
+
await walk(full, depth + 1);
|
|
142
|
+
}
|
|
143
|
+
else if (d.isFile() && d.name.endsWith('.jsonl')) {
|
|
144
|
+
if (excludeBasenames?.has(d.name.slice(0, -'.jsonl'.length)))
|
|
145
|
+
return;
|
|
146
|
+
try {
|
|
147
|
+
const st = await fs.stat(full);
|
|
148
|
+
out.push({ path: full, mtimeMs: st.mtimeMs });
|
|
149
|
+
}
|
|
150
|
+
catch { /* ignore */ }
|
|
151
|
+
}
|
|
152
|
+
}));
|
|
153
|
+
}
|
|
154
|
+
await walk(root, 0);
|
|
155
|
+
return out.sort((a, b) => b.mtimeMs - a.mtimeMs).slice(0, limit);
|
|
156
|
+
}
|
|
157
|
+
// ─── Claude-family JSONL (claude-code, seed) ─────────────────────────────────
|
|
158
|
+
/** Parse one Claude JSONL transcript. The session id is the filename; cwd +
|
|
159
|
+
* first user prompt come from the content (streamed line by line, stopping
|
|
160
|
+
* once both are found). Sidechain / synthetic / slash-command entries are
|
|
161
|
+
* skipped so the title is the user's real first turn. */
|
|
162
|
+
async function parseClaudeTranscript(path, mtimeMs) {
|
|
163
|
+
const cliSessionId = basename(path, '.jsonl');
|
|
164
|
+
if (!cliSessionId)
|
|
165
|
+
return null;
|
|
166
|
+
// Accumulate into an object (see parseRolloutTranscript) so the post-loop
|
|
167
|
+
// guard narrows correctly despite closure mutation.
|
|
168
|
+
const acc = { cwd: null, title: '', botmux: false };
|
|
169
|
+
await forEachJsonLine(path, (rec) => {
|
|
170
|
+
if (rec.isSidechain === true)
|
|
171
|
+
return;
|
|
172
|
+
if (!acc.cwd && typeof rec.cwd === 'string')
|
|
173
|
+
acc.cwd = rec.cwd;
|
|
174
|
+
if (rec.type === 'user') {
|
|
175
|
+
const raw = rawClaudeUserText(rec.message);
|
|
176
|
+
if (raw && isBotmuxInjected(raw)) {
|
|
177
|
+
acc.botmux = true;
|
|
178
|
+
return true;
|
|
179
|
+
} // botmux-origin → drop
|
|
180
|
+
if (!acc.title && raw) {
|
|
181
|
+
const clean = cleanUserPromptForTitle(raw);
|
|
182
|
+
if (clean)
|
|
183
|
+
acc.title = truncateTitle(clean);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return Boolean(acc.cwd && acc.title); // stop once we have everything
|
|
187
|
+
});
|
|
188
|
+
// Drop botmux-origin sessions and empties (no real user prompt → command-only
|
|
189
|
+
// / aborted — not worth importing).
|
|
190
|
+
if (acc.botmux || !acc.cwd || !acc.title)
|
|
191
|
+
return null;
|
|
192
|
+
return { cliSessionId, cwd: acc.cwd, title: acc.title, lastActivityAt: mtimeMs };
|
|
193
|
+
}
|
|
194
|
+
/** Pull plain user text out of a Claude `message` field (string content or the
|
|
195
|
+
* first text part of array content), trimmed. Returns null for tool-result /
|
|
196
|
+
* non-text messages. No filtering — used both for botmux-origin detection
|
|
197
|
+
* (which must see the raw wrapper) and as the source for the title. */
|
|
198
|
+
function rawClaudeUserText(message) {
|
|
199
|
+
const msg = asRecord(message);
|
|
200
|
+
if (!msg || msg.role !== 'user')
|
|
201
|
+
return null;
|
|
202
|
+
let text = null;
|
|
203
|
+
if (typeof msg.content === 'string') {
|
|
204
|
+
text = msg.content;
|
|
205
|
+
}
|
|
206
|
+
else if (Array.isArray(msg.content)) {
|
|
207
|
+
const part = msg.content.find((p) => asRecord(p)?.type === 'text');
|
|
208
|
+
const t = asRecord(part)?.text;
|
|
209
|
+
if (typeof t === 'string')
|
|
210
|
+
text = t;
|
|
211
|
+
}
|
|
212
|
+
const trimmed = text?.trim();
|
|
213
|
+
return trimmed || null;
|
|
214
|
+
}
|
|
215
|
+
/** Reject slash-command / local-command meta turns (not a meaningful title);
|
|
216
|
+
* returns the text otherwise. */
|
|
217
|
+
function cleanUserPromptForTitle(raw) {
|
|
218
|
+
if (raw.startsWith('<command-') || raw.startsWith('<local-command'))
|
|
219
|
+
return null;
|
|
220
|
+
return raw;
|
|
221
|
+
}
|
|
222
|
+
export async function discoverClaudeFamilySessions(dataDir, limit, exclude) {
|
|
223
|
+
const projectsRoot = join(dataDir, 'projects');
|
|
224
|
+
// The jsonl filename IS the session id, so excluded (live) sessions are
|
|
225
|
+
// dropped here — before any file is parsed — and never count against `limit`.
|
|
226
|
+
const files = await collectRecentJsonl(projectsRoot, limit * 3, 2, exclude);
|
|
227
|
+
const parsed = await Promise.all(files.map((f) => parseClaudeTranscript(f.path, f.mtimeMs)));
|
|
228
|
+
return parsed.filter((s) => s !== null).slice(0, limit);
|
|
229
|
+
}
|
|
230
|
+
// ─── Codex / TRAE rollout (codex, traex) ─────────────────────────────────────
|
|
231
|
+
/** Parse one Codex/TRAE rollout. `session_meta` carries the resume id + cwd;
|
|
232
|
+
* the first `event_msg`/`user_message` carries the user's first prompt (the
|
|
233
|
+
* `response_item` role:user entries include the synthetic
|
|
234
|
+
* <environment_context>/<permissions> preamble, so we prefer user_message).
|
|
235
|
+
* Streamed line by line, stopping once id + cwd + title are found. */
|
|
236
|
+
async function parseRolloutTranscript(path, mtimeMs, exclude) {
|
|
237
|
+
// Accumulate into an object — closure mutation of plain `let` defeats TS's
|
|
238
|
+
// control-flow narrowing at the post-loop guard; object properties keep their
|
|
239
|
+
// declared type.
|
|
240
|
+
const acc = { id: null, cwd: null, title: '', botmux: false };
|
|
241
|
+
let excluded = false;
|
|
242
|
+
await forEachJsonLine(path, (rec) => {
|
|
243
|
+
const payload = asRecord(rec.payload);
|
|
244
|
+
if (rec.type === 'session_meta' && payload) {
|
|
245
|
+
if (typeof payload.id === 'string') {
|
|
246
|
+
acc.id = payload.id;
|
|
247
|
+
// The resume id lives on the very first line; bail immediately on a
|
|
248
|
+
// live session so excluded rollouts cost a single line read.
|
|
249
|
+
if (exclude?.has(payload.id)) {
|
|
250
|
+
excluded = true;
|
|
251
|
+
return true;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
if (typeof payload.cwd === 'string')
|
|
255
|
+
acc.cwd = payload.cwd;
|
|
256
|
+
}
|
|
257
|
+
else if (rec.type === 'event_msg' && payload?.type === 'user_message' && typeof payload.message === 'string') {
|
|
258
|
+
if (isBotmuxInjected(payload.message)) {
|
|
259
|
+
acc.botmux = true;
|
|
260
|
+
return true;
|
|
261
|
+
} // botmux-origin → drop
|
|
262
|
+
if (!acc.title)
|
|
263
|
+
acc.title = truncateTitle(payload.message);
|
|
264
|
+
}
|
|
265
|
+
return Boolean(acc.id && acc.cwd && acc.title);
|
|
266
|
+
});
|
|
267
|
+
if (excluded || acc.botmux || !acc.id || !acc.cwd || !acc.title)
|
|
268
|
+
return null;
|
|
269
|
+
return { cliSessionId: acc.id, cwd: acc.cwd, title: acc.title, lastActivityAt: mtimeMs };
|
|
270
|
+
}
|
|
271
|
+
export async function discoverRolloutSessions(sessionsRoot, limit, exclude) {
|
|
272
|
+
// The resume id is inside the file (not the filename), so we can't pre-filter
|
|
273
|
+
// by name. Instead walk most-recent-first and parse until `limit` non-excluded
|
|
274
|
+
// sessions are collected — excluded ones cost only a first-line read, so a
|
|
275
|
+
// host with many live sessions doesn't starve the picker.
|
|
276
|
+
const files = await collectRecentJsonl(sessionsRoot, Number.MAX_SAFE_INTEGER, 5);
|
|
277
|
+
const out = [];
|
|
278
|
+
for (const f of files) {
|
|
279
|
+
if (out.length >= limit)
|
|
280
|
+
break;
|
|
281
|
+
const s = await parseRolloutTranscript(f.path, f.mtimeMs, exclude);
|
|
282
|
+
if (s)
|
|
283
|
+
out.push(s);
|
|
284
|
+
}
|
|
285
|
+
return out;
|
|
286
|
+
}
|
|
287
|
+
// ─── Antigravity flat history log (antigravity) ──────────────────────────────
|
|
288
|
+
/** Antigravity appends one line per submit: `{display, timestamp, workspace,
|
|
289
|
+
* conversationId}`. This is an append-only log — the freshest conversations
|
|
290
|
+
* live at the TAIL — so we stream the WHOLE file (a flat submit log, not a
|
|
291
|
+
* per-session transcript, so it stays small) rather than a bounded prefix that
|
|
292
|
+
* would hide recent sessions once the file grows. Dedup by conversationId,
|
|
293
|
+
* keeping the latest timestamp; the first display seen for a conversation is
|
|
294
|
+
* its title. */
|
|
295
|
+
export async function discoverAntigravitySessions(historyPath, limit, exclude) {
|
|
296
|
+
const byConversation = new Map();
|
|
297
|
+
const botmuxConversations = new Set(); // conversations with any botmux-injected submit
|
|
298
|
+
// Read the full log (high line cap, no byte prefix) so tail entries are seen.
|
|
299
|
+
await forEachJsonLine(historyPath, (rec) => {
|
|
300
|
+
const conversationId = rec.conversationId;
|
|
301
|
+
const workspace = rec.workspace;
|
|
302
|
+
if (typeof conversationId !== 'string' || !conversationId || typeof workspace !== 'string' || !workspace)
|
|
303
|
+
return;
|
|
304
|
+
const ts = typeof rec.timestamp === 'number' ? rec.timestamp : 0;
|
|
305
|
+
const display = typeof rec.display === 'string' ? rec.display : '';
|
|
306
|
+
// A botmux-injected submit marks the whole conversation as botmux-origin.
|
|
307
|
+
if (isBotmuxInjected(display)) {
|
|
308
|
+
botmuxConversations.add(conversationId);
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
const existing = byConversation.get(conversationId);
|
|
312
|
+
if (!existing) {
|
|
313
|
+
if (!display.trim())
|
|
314
|
+
return; // empty/no-prompt submit — skip
|
|
315
|
+
byConversation.set(conversationId, {
|
|
316
|
+
cliSessionId: conversationId,
|
|
317
|
+
cwd: workspace,
|
|
318
|
+
title: truncateTitle(display),
|
|
319
|
+
lastActivityAt: ts,
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
else if (ts > existing.lastActivityAt) {
|
|
323
|
+
existing.lastActivityAt = ts;
|
|
324
|
+
}
|
|
325
|
+
}, 1_000_000);
|
|
326
|
+
return [...byConversation.values()]
|
|
327
|
+
.filter((s) => !exclude?.has(s.cliSessionId) && !botmuxConversations.has(s.cliSessionId))
|
|
328
|
+
.sort((a, b) => b.lastActivityAt - a.lastActivityAt)
|
|
329
|
+
.slice(0, limit);
|
|
330
|
+
}
|
|
331
|
+
//# sourceMappingURL=resumable-session-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resumable-session-discovery.js","sourceRoot":"","sources":["../../src/services/resumable-session-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,4 +39,17 @@ export declare function findActiveChatScopeSessionsByChat(chatId: string): Sessi
|
|
|
39
39
|
* which bot owns this process — used by the restart-report DM after a restart.
|
|
40
40
|
*/
|
|
41
41
|
export declare function countActiveSessionsOnDisk(dataDir?: string): number;
|
|
42
|
+
/**
|
|
43
|
+
* Collect every CLI session identity botmux has ever recorded — across ALL bot
|
|
44
|
+
* store files, ANY status (active or closed). Returns both each session's
|
|
45
|
+
* botmux `sessionId` (which, for claude-family, IS the on-disk jsonl filename
|
|
46
|
+
* since botmux spawns with `--session-id <id>`) and its `cliSessionId` (the
|
|
47
|
+
* CLI-native id after any resume/rotation, e.g. a codex/traex rollout id).
|
|
48
|
+
*
|
|
49
|
+
* Used by `/adopt`'s resume-import discovery to hide sessions botmux already
|
|
50
|
+
* manages — live OR closed — so the picker surfaces only genuinely external
|
|
51
|
+
* sessions (a CLI the user ran standalone). Closed botmux sessions remain
|
|
52
|
+
* resumable via their own session-closed cards.
|
|
53
|
+
*/
|
|
54
|
+
export declare function collectBotmuxSessionIdentities(dataDir?: string): Set<string>;
|
|
42
55
|
//# sourceMappingURL=session-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/services/session-store.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAIzC;AAsFD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,OAAO,CAevH;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAGjE;AA2BD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAUpD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAO5E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAIpD;AAED,wBAAgB,YAAY,IAAI,OAAO,EAAE,CAGxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,EAAE,CAEzE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,CAE3E;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,MAA+B,GAAG,MAAM,CAY1F"}
|
|
1
|
+
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/services/session-store.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAIzC;AAsFD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,OAAO,CAevH;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAGjE;AA2BD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAUpD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAO5E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAIpD;AAED,wBAAgB,YAAY,IAAI,OAAO,EAAE,CAGxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,EAAE,CAEzE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,CAE3E;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,MAA+B,GAAG,MAAM,CAY1F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,GAAE,MAA+B,GAAG,GAAG,CAAC,MAAM,CAAC,CAqBpG"}
|
|
@@ -234,6 +234,50 @@ export function countActiveSessionsOnDisk(dataDir = config.session.dataDir) {
|
|
|
234
234
|
catch { /* missing dir → 0 */ }
|
|
235
235
|
return n;
|
|
236
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Collect every CLI session identity botmux has ever recorded — across ALL bot
|
|
239
|
+
* store files, ANY status (active or closed). Returns both each session's
|
|
240
|
+
* botmux `sessionId` (which, for claude-family, IS the on-disk jsonl filename
|
|
241
|
+
* since botmux spawns with `--session-id <id>`) and its `cliSessionId` (the
|
|
242
|
+
* CLI-native id after any resume/rotation, e.g. a codex/traex rollout id).
|
|
243
|
+
*
|
|
244
|
+
* Used by `/adopt`'s resume-import discovery to hide sessions botmux already
|
|
245
|
+
* manages — live OR closed — so the picker surfaces only genuinely external
|
|
246
|
+
* sessions (a CLI the user ran standalone). Closed botmux sessions remain
|
|
247
|
+
* resumable via their own session-closed cards.
|
|
248
|
+
*/
|
|
249
|
+
export function collectBotmuxSessionIdentities(dataDir = config.session.dataDir) {
|
|
250
|
+
const ids = new Set();
|
|
251
|
+
const add = (s) => {
|
|
252
|
+
if (!s)
|
|
253
|
+
return;
|
|
254
|
+
if (s.sessionId)
|
|
255
|
+
ids.add(s.sessionId);
|
|
256
|
+
if (s.cliSessionId)
|
|
257
|
+
ids.add(s.cliSessionId);
|
|
258
|
+
};
|
|
259
|
+
// In-memory first (freshest — covers ids not yet flushed to disk).
|
|
260
|
+
load();
|
|
261
|
+
for (const s of sessions.values())
|
|
262
|
+
add(s);
|
|
263
|
+
// Then every bot's persisted store file (other daemons own their own files).
|
|
264
|
+
try {
|
|
265
|
+
for (const file of readdirSync(dataDir)) {
|
|
266
|
+
if (!file.startsWith('sessions') || !file.endsWith('.json'))
|
|
267
|
+
continue;
|
|
268
|
+
try {
|
|
269
|
+
const data = JSON.parse(readFileSync(join(dataDir, file), 'utf-8'));
|
|
270
|
+
for (const s of Object.values(data))
|
|
271
|
+
add(s);
|
|
272
|
+
}
|
|
273
|
+
catch {
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
catch { /* missing dir → in-memory only */ }
|
|
279
|
+
return ids;
|
|
280
|
+
}
|
|
237
281
|
function findActiveSessionsMatching(predicate) {
|
|
238
282
|
load();
|
|
239
283
|
const matches = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/services/session-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/services/session-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,15 @@ export interface BotConfigEditInput {
|
|
|
38
38
|
larkAppSecret?: string;
|
|
39
39
|
cliChoice?: string;
|
|
40
40
|
cliPathOverride?: string;
|
|
41
|
+
/**
|
|
42
|
+
* 通用启动前缀(如 "aiden x claude")。三态:
|
|
43
|
+
* - undefined → 不动
|
|
44
|
+
* - string → 设置(空串 / "-" 视为清空)
|
|
45
|
+
* - null → 清空(选了普通 CLI 时清掉旧的 aiden×* 前缀)
|
|
46
|
+
* 调用方(setup picker / dashboard)用 resolveCliSelection 解析选择项后传入,
|
|
47
|
+
* 避免 bot-config-editor 反向依赖 cli-selection(会成循环 import)。
|
|
48
|
+
*/
|
|
49
|
+
wrapperCli?: string | null;
|
|
41
50
|
/**
|
|
42
51
|
* Model 字段三态语义(setup 不再交互式询问 model,此字段仅由切换 CLI 时的
|
|
43
52
|
* 强制清空逻辑设 null;改 model 走 /config 卡片或手动编辑 bots.json):
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot-config-editor.d.ts","sourceRoot":"","sources":["../../src/setup/bot-config-editor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bot-config-editor.d.ts","sourceRoot":"","sources":["../../src/setup/bot-config-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -218,6 +218,17 @@ export function applyBotConfigEdits(bot, input) {
|
|
|
218
218
|
if (cliId)
|
|
219
219
|
out.cliId = cliId;
|
|
220
220
|
applyOptionalString(out, 'cliPathOverride', input.cliPathOverride);
|
|
221
|
+
// wrapperCli 三态:null = 清空,string = 设置(空 / "-" 也清空),undefined = 不动。
|
|
222
|
+
if (input.wrapperCli === null) {
|
|
223
|
+
delete out.wrapperCli;
|
|
224
|
+
}
|
|
225
|
+
else if (typeof input.wrapperCli === 'string') {
|
|
226
|
+
const v = input.wrapperCli.trim();
|
|
227
|
+
if (!v || v === '-')
|
|
228
|
+
delete out.wrapperCli;
|
|
229
|
+
else
|
|
230
|
+
out.wrapperCli = v;
|
|
231
|
+
}
|
|
221
232
|
// Model 字段:null = 清空,string = 设置,undefined = 不动。
|
|
222
233
|
if (input.model === null) {
|
|
223
234
|
delete out.model;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot-config-editor.js","sourceRoot":"","sources":["../../src/setup/bot-config-editor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bot-config-editor.js","sourceRoot":"","sources":["../../src/setup/bot-config-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { CliId } from '../adapters/cli/types.js';
|
|
2
|
+
/** 一个用户可选项;wrapperCli 不为空时表示它以该前缀启动(如 `aiden x claude`)。 */
|
|
3
|
+
export interface CliSelectOption {
|
|
4
|
+
/** 唯一选择键:合法 CliId,或 'aiden-x-claude' / 'aiden-x-codex'。 */
|
|
5
|
+
readonly key: string;
|
|
6
|
+
/** 展示名。 */
|
|
7
|
+
readonly label: string;
|
|
8
|
+
/** 底层适配器 cliId。 */
|
|
9
|
+
readonly cliId: CliId;
|
|
10
|
+
/** 通用启动前缀,如 'aiden x claude';普通 CLI 无此项。 */
|
|
11
|
+
readonly wrapperCli?: string;
|
|
12
|
+
}
|
|
13
|
+
/** 级联树节点:顶层 CLI;children 非空表示选中后进二级菜单(目前只有 Aiden)。 */
|
|
14
|
+
export interface CliSelectGroup {
|
|
15
|
+
readonly key: string;
|
|
16
|
+
readonly label: string;
|
|
17
|
+
/** 叶子项:直接可选;children:进二级菜单。两者必居其一。 */
|
|
18
|
+
readonly option?: CliSelectOption;
|
|
19
|
+
readonly children?: ReadonlyArray<CliSelectOption>;
|
|
20
|
+
}
|
|
21
|
+
/** 解析结果:落进 bot 配置的 cliId(+ 可选 wrapperCli)。 */
|
|
22
|
+
export interface ResolvedCliSelection {
|
|
23
|
+
readonly cliId: CliId;
|
|
24
|
+
readonly wrapperCli?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 级联树(终端 TUI 用):顺序同 CLI_OPTIONS;'aiden' 一项展开成 children。
|
|
28
|
+
*/
|
|
29
|
+
export declare const CLI_SELECT_TREE: ReadonlyArray<CliSelectGroup>;
|
|
30
|
+
/**
|
|
31
|
+
* 扁平选项(web 下拉 + 非 TTY 回退用):在 'aiden' 之后紧跟两个 aiden×* 项。
|
|
32
|
+
*/
|
|
33
|
+
export declare const CLI_SELECT_OPTIONS: ReadonlyArray<CliSelectOption>;
|
|
34
|
+
/** 按 key 查选项;非法 key 返回 undefined。 */
|
|
35
|
+
export declare function lookupCliSelection(key: string): CliSelectOption | undefined;
|
|
36
|
+
/** 反查:由一个 bot 现有的 cliId + wrapperCli 得到对应的选择键(供编辑时高亮默认)。 */
|
|
37
|
+
export declare function selectionKeyForBot(cliId: string, wrapperCli?: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* 把选择键解析成可落盘的 bot 配置片段(纯映射,无副作用)。非法 key 抛错。
|
|
40
|
+
*/
|
|
41
|
+
export declare function resolveCliSelection(key: string): ResolvedCliSelection;
|
|
42
|
+
/** 按空格把 wrapperCli 前缀拆成 token(首 token 为 bin)。 */
|
|
43
|
+
export declare function parseWrapperCli(wrapperCli: string): string[];
|
|
44
|
+
/**
|
|
45
|
+
* 剥掉 aiden x claude 拒收的 `--settings`(含其值),支持 `--settings <v>` 与
|
|
46
|
+
* `--settings=<v>` 两种写法。其余参数原样保留。改用纯 argv 处理(跨系统、无 shell)。
|
|
47
|
+
*/
|
|
48
|
+
export declare function stripSettingsArgs(args: ReadonlyArray<string>): string[];
|
|
49
|
+
/**
|
|
50
|
+
* 由 wrapperCli 前缀 + 底层 CLI 的 args 构造实际 spawn 的 `{ bin, args }`。
|
|
51
|
+
* - bin = 前缀首 token(经 binResolver 走 PATH 解析)
|
|
52
|
+
* - args = 前缀其余 token + CLI 参数(aiden x claude 形态会先剥掉 --settings)
|
|
53
|
+
* 前缀为空时返回 `{ bin: '', args }`,调用方据此跳过(不改写 spawn)。
|
|
54
|
+
*/
|
|
55
|
+
export declare function buildWrappedLaunch(wrapperCli: string, cliArgs: ReadonlyArray<string>, binResolver?: (bin: string) => string): {
|
|
56
|
+
bin: string;
|
|
57
|
+
args: string[];
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* 把适配器给出的「裸 CLI 恢复命令」改写成 wrapperCli 形态,供 session-closed 卡片里
|
|
61
|
+
* 展示给用户手动 resume。例:`claude --resume <id>` + 前缀 `aiden x claude` →
|
|
62
|
+
* `aiden x claude --resume <id>`。wrapperCli 未设时原样返回。
|
|
63
|
+
*/
|
|
64
|
+
export declare function decorateResumeForWrapper(cmd: string, wrapperCli: string | undefined): string;
|
|
65
|
+
//# sourceMappingURL=cli-selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-selection.d.ts","sourceRoot":"","sources":["../../src/setup/cli-selection.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mBAAmB;IACnB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAYD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,cAAc,CAIzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,eAAe,CAI7D,CAAC;AAMF,qCAAqC;AACrC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE3E;AAED,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAM7E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAQrE;AAID,iDAAiD;AACjD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAOD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CASvE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAC9B,WAAW,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAiB,GAC9C;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAKjC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAI5F"}
|