dsh-ssh-tui 0.5.3 → 0.5.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.en.md +36 -10
- package/README.md +21 -12
- package/lib/approval-reviewer.js +56 -15
- package/lib/approval-reviewer.js.map +1 -1
- package/lib/auto-approval.js +251 -35
- package/lib/auto-approval.js.map +1 -1
- package/lib/copy-text.js +62 -0
- package/lib/copy-text.js.map +1 -0
- package/lib/dsh-compat.js +142 -1
- package/lib/dsh-compat.js.map +1 -1
- package/lib/footer.js +337 -0
- package/lib/footer.js.map +1 -0
- package/lib/i18n/en.js +62 -3
- package/lib/i18n/en.js.map +1 -1
- package/lib/i18n/zh.js +62 -3
- package/lib/i18n/zh.js.map +1 -1
- package/lib/index.js +7 -5
- package/lib/index.js.map +1 -1
- package/lib/json-args.js +30 -0
- package/lib/json-args.js.map +1 -0
- package/lib/paint.js +288 -0
- package/lib/paint.js.map +1 -0
- package/lib/picker.js +453 -66
- package/lib/picker.js.map +1 -1
- package/lib/plan.js +369 -0
- package/lib/plan.js.map +1 -0
- package/lib/quota.js +408 -0
- package/lib/quota.js.map +1 -0
- package/lib/session-index.js +80 -0
- package/lib/session-index.js.map +1 -0
- package/lib/session-list.js +210 -88
- package/lib/session-list.js.map +1 -1
- package/lib/term-text.js +953 -0
- package/lib/term-text.js.map +1 -0
- package/lib/tool-present.js +744 -0
- package/lib/tool-present.js.map +1 -0
- package/lib/transcript-types.js +6 -0
- package/lib/transcript-types.js.map +1 -0
- package/lib/tui.js +643 -3299
- package/lib/tui.js.map +1 -1
- package/lib/types/approval-reviewer.d.ts +8 -2
- package/lib/types/auto-approval.d.ts +28 -0
- package/lib/types/copy-text.d.ts +9 -0
- package/lib/types/dsh-compat.d.ts +78 -6
- package/lib/types/footer.d.ts +155 -0
- package/lib/types/json-args.d.ts +7 -0
- package/lib/types/paint.d.ts +80 -0
- package/lib/types/picker.d.ts +101 -7
- package/lib/types/plan.d.ts +80 -0
- package/lib/types/quota.d.ts +94 -0
- package/lib/types/session-index.d.ts +32 -0
- package/lib/types/session-list.d.ts +35 -2
- package/lib/types/term-text.d.ts +149 -0
- package/lib/types/tool-present.d.ts +165 -0
- package/lib/types/transcript-types.d.ts +152 -0
- package/lib/types/tui.d.ts +53 -723
- package/package.json +20 -18
package/lib/session-list.js
CHANGED
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
import { existsSync } from 'node:fs';
|
|
7
7
|
import { rm } from 'node:fs/promises';
|
|
8
8
|
import { dirname, isAbsolute } from 'node:path';
|
|
9
|
+
import { inspectPersistenceSession, listPersistenceHeaders, persistenceLocate, } from './dsh-compat.js';
|
|
9
10
|
import { t } from './i18n/index.js';
|
|
10
11
|
import { listAttachableHosts } from './session-lock.js';
|
|
12
|
+
import { indexEntryMatchesStat, loadSessionIndex, PICKER_PRIORITY_COUNT, pruneSessionIndex, saveSessionIndex, sessionArtifactStat, sessionIndexPath, } from './session-index.js';
|
|
11
13
|
/** Last path segment for the footer chip (`\root\genshin\srv` → `srv`). */
|
|
12
14
|
export function sessionCwdLabel(cwd) {
|
|
13
15
|
const raw = cwd.trim();
|
|
@@ -57,18 +59,6 @@ export function formatSessionTime(timestamp) {
|
|
|
57
59
|
const pad = (value) => String(value).padStart(2, '0');
|
|
58
60
|
return `${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}`;
|
|
59
61
|
}
|
|
60
|
-
/**
|
|
61
|
-
* List the most recent resumable top-level sessions, newest first.
|
|
62
|
-
*
|
|
63
|
-
* Subagent-owned sessions and the current session are excluded. Sessions
|
|
64
|
-
* whose event log cannot be inspected are kept (marked `unreadable`) instead
|
|
65
|
-
* of silently disappearing from history; readable sessions with user input
|
|
66
|
-
* sort first. The label is the user's first input, falling back to the
|
|
67
|
-
* session title and then the id.
|
|
68
|
-
* @param persistence - the session persistence service.
|
|
69
|
-
* @param currentId - the live session to exclude (empty at launch).
|
|
70
|
-
* @returns up to nine candidates in display order.
|
|
71
|
-
*/
|
|
72
62
|
/** Whether one durable event is a user-authored message. */
|
|
73
63
|
function isUserMessageEvent(event) {
|
|
74
64
|
const candidate = event;
|
|
@@ -100,7 +90,7 @@ function isBlankSession(hasUserInput, hasReply) {
|
|
|
100
90
|
/** Delete one session's on-disk artifacts (log directory), best effort. */
|
|
101
91
|
async function pruneSessionArtifacts(persistence, meta) {
|
|
102
92
|
try {
|
|
103
|
-
const location = persistence
|
|
93
|
+
const location = persistenceLocate(persistence, meta);
|
|
104
94
|
if (location?.path !== undefined && location.path !== '') {
|
|
105
95
|
await rm(dirname(location.path), { recursive: true, force: true });
|
|
106
96
|
}
|
|
@@ -111,22 +101,120 @@ async function pruneSessionArtifacts(persistence, meta) {
|
|
|
111
101
|
}
|
|
112
102
|
/** Upper bound on one inspection batch, so the picker never fans out unbounded. */
|
|
113
103
|
const INSPECT_BATCH_SIZE = 30;
|
|
104
|
+
function toResumable(item) {
|
|
105
|
+
const { hasUserInput: _hasUserInput, hasReply: _hasReply, ...rest } = item;
|
|
106
|
+
return rest;
|
|
107
|
+
}
|
|
108
|
+
function indexFromInspected(item, stat) {
|
|
109
|
+
return {
|
|
110
|
+
id: item.id,
|
|
111
|
+
label: item.label,
|
|
112
|
+
updatedAt: item.updatedAt,
|
|
113
|
+
cwd: item.cwd,
|
|
114
|
+
hasUserInput: item.hasUserInput,
|
|
115
|
+
hasReply: item.hasReply,
|
|
116
|
+
...(item.unreadable === true ? { unreadable: true } : {}),
|
|
117
|
+
mtimeMs: stat.mtimeMs,
|
|
118
|
+
size: stat.size,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function inspectedFromIndex(entry) {
|
|
122
|
+
return {
|
|
123
|
+
id: entry.id,
|
|
124
|
+
label: entry.label,
|
|
125
|
+
updatedAt: entry.updatedAt,
|
|
126
|
+
cwd: entry.cwd,
|
|
127
|
+
hasUserInput: entry.hasUserInput,
|
|
128
|
+
hasReply: entry.hasReply,
|
|
129
|
+
...(entry.unreadable === true ? { unreadable: true } : {}),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* List resumable top-level sessions, newest first.
|
|
134
|
+
*
|
|
135
|
+
* Subagent-owned sessions and the current session are excluded. Sessions
|
|
136
|
+
* whose event log cannot be inspected are kept (marked `unreadable`) instead
|
|
137
|
+
* of silently disappearing from history; readable sessions with user input
|
|
138
|
+
* sort first. The label is the persisted title, then the user's first input,
|
|
139
|
+
* then the id.
|
|
140
|
+
* @param persistence - the session persistence service.
|
|
141
|
+
* @param currentId - the live session to exclude (empty at launch).
|
|
142
|
+
* @returns every resumable candidate in display order (attachable live
|
|
143
|
+
* hosts first, then readable logs, then unreadable).
|
|
144
|
+
*/
|
|
114
145
|
export async function listResumableSessions(persistence, currentId, listHosts = listAttachableHosts) {
|
|
115
|
-
const
|
|
146
|
+
const listing = await listResumableSessionsProgressive(persistence, currentId, { listHosts });
|
|
147
|
+
return listing.complete;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* List resumable sessions, painting the recent page first.
|
|
151
|
+
*
|
|
152
|
+
* `onUpdate` fires after the priority page (cached + newest logs) and again
|
|
153
|
+
* after each later inspect batch. Unchanged logs reuse `$DSH_HOME/tui-session-index.json`.
|
|
154
|
+
*/
|
|
155
|
+
export async function listResumableSessionsProgressive(persistence, currentId, options = {}) {
|
|
156
|
+
const listHosts = options.listHosts ?? listAttachableHosts;
|
|
157
|
+
const indexPath = options.indexPath
|
|
158
|
+
?? process.env.DSH_TUI_SESSION_INDEX
|
|
159
|
+
?? sessionIndexPath();
|
|
160
|
+
const priorityCount = options.priorityCount ?? PICKER_PRIORITY_COUNT;
|
|
161
|
+
const headers = await listPersistenceHeaders(persistence);
|
|
116
162
|
const candidates = headers
|
|
117
163
|
.filter(meta => meta.id !== currentId
|
|
118
164
|
&& meta.cwd !== undefined
|
|
119
165
|
&& meta.origin !== 'subagent'
|
|
120
166
|
&& (meta.delegationDepth ?? 0) === 0)
|
|
121
167
|
.sort((a, b) => b.createdAt - a.createdAt);
|
|
168
|
+
const [index, hosts] = await Promise.all([
|
|
169
|
+
loadSessionIndex(indexPath),
|
|
170
|
+
listHosts(),
|
|
171
|
+
]);
|
|
172
|
+
const keepIds = new Set(candidates.map(meta => String(meta.id)));
|
|
173
|
+
const indexSizeBefore = index.size;
|
|
174
|
+
pruneSessionIndex(index, keepIds);
|
|
175
|
+
let indexDirty = index.size !== indexSizeBefore;
|
|
176
|
+
const sketchFromHeader = (meta) => {
|
|
177
|
+
const cached = index.get(String(meta.id));
|
|
178
|
+
const stat = sessionArtifactStat(persistence, meta);
|
|
179
|
+
if (stat.size > 0 && indexEntryMatchesStat(cached, stat) && cached !== undefined) {
|
|
180
|
+
return inspectedFromIndex(cached);
|
|
181
|
+
}
|
|
182
|
+
return {
|
|
183
|
+
id: meta.id,
|
|
184
|
+
label: cached?.label && cached.label !== '' ? cached.label : meta.id,
|
|
185
|
+
updatedAt: cached?.updatedAt ?? meta.createdAt,
|
|
186
|
+
cwd: meta.cwd ?? cached?.cwd ?? '',
|
|
187
|
+
hasUserInput: cached?.hasUserInput ?? true,
|
|
188
|
+
hasReply: cached?.hasReply ?? true,
|
|
189
|
+
};
|
|
190
|
+
};
|
|
191
|
+
const sketched = candidates.map(meta => toResumable(sketchFromHeader(meta)));
|
|
192
|
+
const sketchedById = new Map(sketched.map(item => [item.id, item]));
|
|
193
|
+
for (const host of hosts) {
|
|
194
|
+
if (host.sessionId === currentId)
|
|
195
|
+
continue;
|
|
196
|
+
const attach = { pid: host.lock.pid, sock: host.sock, state: host.lock.state };
|
|
197
|
+
const existing = sketchedById.get(host.sessionId);
|
|
198
|
+
if (existing !== undefined) {
|
|
199
|
+
existing.attach = attach;
|
|
200
|
+
continue;
|
|
201
|
+
}
|
|
202
|
+
sketched.unshift({
|
|
203
|
+
id: host.sessionId,
|
|
204
|
+
label: host.sessionId,
|
|
205
|
+
updatedAt: Date.parse(host.lock.startedAt) || Date.now(),
|
|
206
|
+
cwd: '',
|
|
207
|
+
attach,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
options.onUpdate?.({ sessions: sketched, pending: true });
|
|
122
211
|
const inspectCandidate = async (meta) => {
|
|
123
212
|
try {
|
|
124
|
-
const inspection = await persistence
|
|
125
|
-
const firstUserMessage = inspection.events.find(
|
|
126
|
-
&& event.data.source.kind === 'user');
|
|
213
|
+
const inspection = await inspectPersistenceSession(persistence, meta.id);
|
|
214
|
+
const firstUserMessage = inspection.events.find(event => isUserMessageEvent(event));
|
|
127
215
|
const firstUserText = firstUserMessage === undefined
|
|
128
216
|
? undefined
|
|
129
|
-
: Array.from(firstUserMessage.data
|
|
217
|
+
: Array.from((firstUserMessage.data?.content ?? [])
|
|
130
218
|
.map((block) => {
|
|
131
219
|
const candidate = block;
|
|
132
220
|
return candidate.type === 'text' && typeof candidate.text === 'string' ? candidate.text : '';
|
|
@@ -141,7 +229,8 @@ export async function listResumableSessions(persistence, currentId, listHosts =
|
|
|
141
229
|
const title = titleEvent === undefined
|
|
142
230
|
? undefined
|
|
143
231
|
: titleEvent.data.title;
|
|
144
|
-
const
|
|
232
|
+
const last = inspection.events.at(-1);
|
|
233
|
+
const updatedAt = last?.time ?? meta.createdAt;
|
|
145
234
|
return {
|
|
146
235
|
id: meta.id,
|
|
147
236
|
// The persisted generated title first: the web session list shows the
|
|
@@ -174,82 +263,115 @@ export async function listResumableSessions(persistence, currentId, listHosts =
|
|
|
174
263
|
};
|
|
175
264
|
}
|
|
176
265
|
};
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
const batch = candidates.slice(offset, offset + INSPECT_BATCH_SIZE);
|
|
184
|
-
const settled = await Promise.all(batch.map(async (meta) => ({ meta, item: await inspectCandidate(meta) })));
|
|
185
|
-
for (const { meta, item } of settled) {
|
|
186
|
-
// Unreadable logs stay visible regardless; a readable blank (a boot
|
|
187
|
-
// that died before any input or reply) gets deleted so the raw id
|
|
188
|
-
// never shows up as resumable again.
|
|
189
|
-
if (item.unreadable !== true && isBlankSession(item.hasUserInput, item.hasReply)) {
|
|
190
|
-
void pruneSessionArtifacts(persistence, meta);
|
|
191
|
-
continue;
|
|
192
|
-
}
|
|
193
|
-
inspected.push(item);
|
|
266
|
+
const resolveCandidate = async (meta) => {
|
|
267
|
+
const stat = sessionArtifactStat(persistence, meta);
|
|
268
|
+
const cached = index.get(String(meta.id));
|
|
269
|
+
// Fingerprint 0/0 means locate/stat failed: never treat that as a hit.
|
|
270
|
+
if (stat.size > 0 && indexEntryMatchesStat(cached, stat) && cached !== undefined) {
|
|
271
|
+
return inspectedFromIndex(cached);
|
|
194
272
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
for (const host of hosts) {
|
|
202
|
-
if (host.sessionId === currentId)
|
|
203
|
-
continue;
|
|
204
|
-
const attach = { pid: host.lock.pid, sock: host.sock, state: host.lock.state };
|
|
205
|
-
// A live Host whose session never saw input nor a reply is a crashed
|
|
206
|
-
// boot: stop it, remove its artifacts, and keep it out of the picker.
|
|
207
|
-
let blankLive = false;
|
|
208
|
-
let liveHasUserInput = true;
|
|
209
|
-
try {
|
|
210
|
-
const inspection = await persistence.inspect(host.sessionId);
|
|
211
|
-
const hasInput = inspection.events.some(event => isUserMessageEvent(event));
|
|
212
|
-
blankLive = isBlankSession(hasInput, sessionHasReply(inspection.events));
|
|
213
|
-
liveHasUserInput = hasInput;
|
|
273
|
+
const item = await inspectCandidate(meta);
|
|
274
|
+
if (item.unreadable !== true && isBlankSession(item.hasUserInput, item.hasReply)) {
|
|
275
|
+
index.delete(String(meta.id));
|
|
276
|
+
indexDirty = true;
|
|
277
|
+
void pruneSessionArtifacts(persistence, meta);
|
|
278
|
+
return undefined;
|
|
214
279
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
liveHasUserInput = false;
|
|
280
|
+
if (stat.size > 0) {
|
|
281
|
+
index.set(String(meta.id), indexFromInspected(item, stat));
|
|
282
|
+
indexDirty = true;
|
|
219
283
|
}
|
|
220
|
-
|
|
284
|
+
return item;
|
|
285
|
+
};
|
|
286
|
+
const inspected = [];
|
|
287
|
+
const blankLiveIds = new Set();
|
|
288
|
+
const extraLive = new Map();
|
|
289
|
+
const mergeHosts = async (items) => {
|
|
290
|
+
const resumable = items.filter(item => item.hasUserInput || item.unreadable === true);
|
|
291
|
+
const byId = new Map(resumable.map(item => [item.id, item]));
|
|
292
|
+
for (const host of hosts) {
|
|
293
|
+
if (host.sessionId === currentId || blankLiveIds.has(host.sessionId))
|
|
294
|
+
continue;
|
|
295
|
+
const attach = { pid: host.lock.pid, sock: host.sock, state: host.lock.state };
|
|
296
|
+
const existing = byId.get(host.sessionId) ?? extraLive.get(host.sessionId);
|
|
297
|
+
if (existing !== undefined) {
|
|
298
|
+
existing.attach = attach;
|
|
299
|
+
if (!byId.has(host.sessionId)) {
|
|
300
|
+
resumable.push(existing);
|
|
301
|
+
byId.set(host.sessionId, existing);
|
|
302
|
+
}
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
// A live Host whose session never saw input nor a reply is a crashed
|
|
306
|
+
// boot: stop it, remove its artifacts, and keep it out of the picker.
|
|
307
|
+
let blankLive = false;
|
|
308
|
+
let liveHasUserInput = true;
|
|
221
309
|
try {
|
|
222
|
-
|
|
310
|
+
const inspection = await inspectPersistenceSession(persistence, host.sessionId);
|
|
311
|
+
const hasInput = inspection.events.some(event => isUserMessageEvent(event));
|
|
312
|
+
blankLive = isBlankSession(hasInput, sessionHasReply(inspection.events));
|
|
313
|
+
liveHasUserInput = hasInput;
|
|
223
314
|
}
|
|
224
|
-
catch {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
315
|
+
catch {
|
|
316
|
+
blankLive = true;
|
|
317
|
+
liveHasUserInput = false;
|
|
318
|
+
}
|
|
319
|
+
if (blankLive) {
|
|
320
|
+
blankLiveIds.add(host.sessionId);
|
|
321
|
+
try {
|
|
322
|
+
process.kill(attach.pid, 'SIGTERM');
|
|
323
|
+
}
|
|
324
|
+
catch { /* already gone */ }
|
|
325
|
+
const header = candidates.find(candidate => candidate.id === host.sessionId);
|
|
326
|
+
if (header !== undefined)
|
|
327
|
+
void pruneSessionArtifacts(persistence, header);
|
|
328
|
+
continue;
|
|
329
|
+
}
|
|
330
|
+
const injected = {
|
|
331
|
+
id: host.sessionId,
|
|
332
|
+
label: host.sessionId,
|
|
333
|
+
updatedAt: Date.parse(host.lock.startedAt) || Date.now(),
|
|
334
|
+
cwd: '',
|
|
335
|
+
hasUserInput: liveHasUserInput,
|
|
336
|
+
hasReply: true,
|
|
337
|
+
attach,
|
|
338
|
+
};
|
|
339
|
+
extraLive.set(host.sessionId, injected);
|
|
340
|
+
resumable.push(injected);
|
|
341
|
+
byId.set(host.sessionId, injected);
|
|
229
342
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
343
|
+
resumable.sort((a, b) => (a.attach === undefined ? 1 : 0) - (b.attach === undefined ? 1 : 0)
|
|
344
|
+
|| (a.unreadable === true ? 1 : 0) - (b.unreadable === true ? 1 : 0)
|
|
345
|
+
|| b.updatedAt - a.updatedAt);
|
|
346
|
+
return resumable;
|
|
347
|
+
};
|
|
348
|
+
const emit = async (pending) => {
|
|
349
|
+
const listed = (await mergeHosts(inspected)).map(toResumable);
|
|
350
|
+
options.onUpdate?.({ sessions: listed, pending });
|
|
351
|
+
return listed;
|
|
352
|
+
};
|
|
353
|
+
// Newest page first so the picker can paint before older logs are parsed.
|
|
354
|
+
const priority = candidates.slice(0, Math.max(0, priorityCount));
|
|
355
|
+
const rest = candidates.slice(priority.length);
|
|
356
|
+
const first = await Promise.all(priority.map(async (meta) => ({ meta, item: await resolveCandidate(meta) })));
|
|
357
|
+
for (const { item } of first) {
|
|
358
|
+
if (item !== undefined)
|
|
359
|
+
inspected.push(item);
|
|
360
|
+
}
|
|
361
|
+
await emit(rest.length > 0);
|
|
362
|
+
for (let offset = 0; offset < rest.length; offset += INSPECT_BATCH_SIZE) {
|
|
363
|
+
const batch = rest.slice(offset, offset + INSPECT_BATCH_SIZE);
|
|
364
|
+
const settled = await Promise.all(batch.map(async (meta) => ({ meta, item: await resolveCandidate(meta) })));
|
|
365
|
+
for (const { item } of settled) {
|
|
366
|
+
if (item !== undefined)
|
|
367
|
+
inspected.push(item);
|
|
234
368
|
}
|
|
235
|
-
|
|
236
|
-
id: host.sessionId,
|
|
237
|
-
label: host.sessionId,
|
|
238
|
-
updatedAt: Date.parse(host.lock.startedAt) || Date.now(),
|
|
239
|
-
cwd: '',
|
|
240
|
-
hasUserInput: liveHasUserInput,
|
|
241
|
-
hasReply: true,
|
|
242
|
-
attach,
|
|
243
|
-
};
|
|
244
|
-
resumable.push(injected);
|
|
245
|
-
byId.set(host.sessionId, injected);
|
|
369
|
+
await emit(offset + INSPECT_BATCH_SIZE < rest.length);
|
|
246
370
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
return
|
|
252
|
-
.slice(0, 9)
|
|
253
|
-
.map(({ hasUserInput: _hasUserInput, ...rest }) => rest);
|
|
371
|
+
const complete = (await mergeHosts(inspected)).map(toResumable);
|
|
372
|
+
if (indexDirty)
|
|
373
|
+
await saveSessionIndex(indexPath, index);
|
|
374
|
+
options.onUpdate?.({ sessions: complete, pending: false });
|
|
375
|
+
return { sessions: complete, pending: false, complete };
|
|
254
376
|
}
|
|
255
377
|
//# sourceMappingURL=session-list.js.map
|
package/lib/session-list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-list.js","sourceRoot":"","sources":["../src/session-list.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-list.js","sourceRoot":"","sources":["../src/session-list.ts"],"names":[],"mappings":"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"}
|