dsh-ssh-tui 0.5.2 → 0.5.4

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.
Files changed (49) hide show
  1. package/README.en.md +36 -6
  2. package/README.md +24 -13
  3. package/lib/approval-reviewer.js +102 -17
  4. package/lib/approval-reviewer.js.map +1 -1
  5. package/lib/auto-approval.js +312 -29
  6. package/lib/auto-approval.js.map +1 -1
  7. package/lib/footer.js +337 -0
  8. package/lib/footer.js.map +1 -0
  9. package/lib/i18n/en.js +83 -8
  10. package/lib/i18n/en.js.map +1 -1
  11. package/lib/i18n/index.js +1 -0
  12. package/lib/i18n/index.js.map +1 -1
  13. package/lib/i18n/zh.js +83 -8
  14. package/lib/i18n/zh.js.map +1 -1
  15. package/lib/json-args.js +30 -0
  16. package/lib/json-args.js.map +1 -0
  17. package/lib/paint.js +262 -0
  18. package/lib/paint.js.map +1 -0
  19. package/lib/picker.js +407 -56
  20. package/lib/picker.js.map +1 -1
  21. package/lib/plan.js +369 -0
  22. package/lib/plan.js.map +1 -0
  23. package/lib/quota.js +408 -0
  24. package/lib/quota.js.map +1 -0
  25. package/lib/session-list.js +18 -21
  26. package/lib/session-list.js.map +1 -1
  27. package/lib/term-text.js +827 -0
  28. package/lib/term-text.js.map +1 -0
  29. package/lib/tool-present.js +744 -0
  30. package/lib/tool-present.js.map +1 -0
  31. package/lib/transcript-types.js +6 -0
  32. package/lib/transcript-types.js.map +1 -0
  33. package/lib/tui.js +747 -3077
  34. package/lib/tui.js.map +1 -1
  35. package/lib/types/approval-reviewer.d.ts +18 -4
  36. package/lib/types/auto-approval.d.ts +53 -2
  37. package/lib/types/footer.d.ts +155 -0
  38. package/lib/types/i18n/index.d.ts +2 -0
  39. package/lib/types/json-args.d.ts +7 -0
  40. package/lib/types/paint.d.ts +78 -0
  41. package/lib/types/picker.d.ts +99 -7
  42. package/lib/types/plan.d.ts +80 -0
  43. package/lib/types/quota.d.ts +94 -0
  44. package/lib/types/session-list.d.ts +13 -0
  45. package/lib/types/term-text.d.ts +130 -0
  46. package/lib/types/tool-present.d.ts +165 -0
  47. package/lib/types/transcript-types.d.ts +152 -0
  48. package/lib/types/tui.d.ts +39 -665
  49. package/package.json +1 -1
package/lib/quota.js ADDED
@@ -0,0 +1,408 @@
1
+ /**
2
+ * OpenCode / SuperGrok / DeepSeek quota and prepaid-balance parsers.
3
+ */
4
+ import { t } from './i18n/index.js';
5
+ /** Build per-model reasoningEfforts from a provider-level reasoning default. */
6
+ export function reasoningEffortsForDefault(reasoning) {
7
+ if (typeof reasoning !== 'string')
8
+ return undefined;
9
+ const level = reasoning.trim();
10
+ if (level === '' || level === 'off')
11
+ return undefined;
12
+ return { off: null, [level]: level };
13
+ }
14
+ export const OPENCODE_GO_USAGE_URL = 'https://opencode.ai/zen/go/v1/usage';
15
+ export const OPENCODE_ZEN_BASE_URL = 'https://opencode.ai/zen/v1';
16
+ export const SUPERGROK_BILLING_URL = 'https://cli-chat-proxy.grok.com/v1/billing?format=credits';
17
+ export const DEEPSEEK_PUBLIC_BASE_URL = 'https://api.deepseek.com';
18
+ /** OpenAI-completions gateways: probe these relative to the configured base URL. */
19
+ export const OPENAI_COMPAT_BALANCE_PATHS = [
20
+ '/user/balance',
21
+ '/dashboard/billing/credit_grants',
22
+ '/v1/dashboard/billing/credit_grants',
23
+ '/v1/dashboard/billing/subscription',
24
+ ];
25
+ const QUOTA_ALERT_THRESHOLDS = [50, 25, 10, 5];
26
+ /** Remaining % at or below this is “close” and uses the faster cadence. */
27
+ const QUOTA_NEAR_THRESHOLD_PERCENT = 55;
28
+ /**
29
+ * Classify the currently selected provider as an OpenCode route. Built-in
30
+ * `opencode`/`opencode-go` ids are recognized directly, and custom llm-pi-ai
31
+ * routes are recognized by their `opencode.ai` base URL.
32
+ */
33
+ export function openCodeSourceFor(provider, llmPiAiSection) {
34
+ const section = llmPiAiSection;
35
+ const profile = section?.providers?.[provider];
36
+ const baseURL = typeof profile?.baseURL === 'string' ? profile.baseURL : undefined;
37
+ const lowerBase = baseURL?.toLowerCase() ?? '';
38
+ const isGo = provider === 'opencode-go' || lowerBase.includes('opencode.ai/zen/go');
39
+ const isZen = provider === 'opencode' || (lowerBase.includes('opencode.ai/zen') && !isGo);
40
+ if (!isGo && !isZen)
41
+ return null;
42
+ const apiKeyEnv = typeof profile?.apiKeyEnv === 'string' && profile.apiKeyEnv.trim() !== ''
43
+ ? profile.apiKeyEnv
44
+ : provider === 'opencode'
45
+ ? 'OPENCODE_API_KEY'
46
+ : provider === 'opencode-go'
47
+ ? 'OPENCODE_GO_API_KEY'
48
+ : `${provider.replaceAll('-', '_').toUpperCase()}_API_KEY`;
49
+ const label = typeof profile?.displayName === 'string' && profile.displayName.trim() !== ''
50
+ ? profile.displayName
51
+ : isGo ? 'OpenCode Go' : 'OpenCode Zen';
52
+ return {
53
+ provider,
54
+ flavor: isGo ? 'go' : 'zen',
55
+ label,
56
+ apiKeyEnv,
57
+ ...(baseURL === undefined ? {} : { baseURL }),
58
+ };
59
+ }
60
+ function openCodeGoUsageWindow(value) {
61
+ if (typeof value !== 'object' || value === null)
62
+ return undefined;
63
+ const raw = value;
64
+ return {
65
+ ...(typeof raw.status === 'string' ? { status: raw.status } : {}),
66
+ ...(typeof raw.percent === 'number' && Number.isFinite(raw.percent) ? { percent: raw.percent } : {}),
67
+ ...(typeof raw.resetsAt === 'string' ? { resetsAt: raw.resetsAt } : {}),
68
+ };
69
+ }
70
+ /** A days/hours/minutes/seconds relative duration for quota reset times. */
71
+ function formatRelativeDuration(ms) {
72
+ const seconds = Math.max(0, Math.floor(ms / 1000));
73
+ if (seconds < 60)
74
+ return `${seconds}s`;
75
+ if (seconds < 3600)
76
+ return `${Math.floor(seconds / 60)}m${seconds % 60}s`;
77
+ if (seconds < 86400) {
78
+ return `${Math.floor(seconds / 3600)}h${Math.floor(seconds % 3600 / 60)}m`;
79
+ }
80
+ return `${Math.floor(seconds / 86400)}d${Math.floor(seconds % 86400 / 3600)}h`;
81
+ }
82
+ /** One compact `████░░ 40.0% · 正常 · 约 2m 后重置` line for a Go limit. */
83
+ function formatOpenCodeGoWindow(label, value) {
84
+ const window = openCodeGoUsageWindow(value);
85
+ const percent = window?.percent === undefined
86
+ ? null
87
+ : Math.max(0, Math.min(100, window.percent));
88
+ const state = window?.status === 'rate-limited'
89
+ ? t('quota.throttled')
90
+ : window?.status === 'ok'
91
+ ? t('quota.ok')
92
+ : window?.status ?? t('quota.unknown');
93
+ const parts = [label];
94
+ if (percent !== null) {
95
+ const barWidth = 16;
96
+ const filled = Math.round(percent / 100 * barWidth);
97
+ parts.push(`${'█'.repeat(filled)}${'░'.repeat(barWidth - filled)} ${percent.toFixed(1)}%`);
98
+ }
99
+ parts.push(state);
100
+ if (window?.resetsAt !== undefined) {
101
+ const reset = new Date(window.resetsAt);
102
+ if (!Number.isNaN(reset.getTime())) {
103
+ const until = reset.getTime() - Date.now();
104
+ parts.push(until > 0
105
+ ? t('quota.resetInFull', { duration: formatRelativeDuration(until), when: reset.toLocaleString() })
106
+ : t('quota.resetAt', { when: reset.toLocaleString() }));
107
+ }
108
+ }
109
+ return ` ${parts.join(' · ')}`;
110
+ }
111
+ export function remainingPercentFromUsed(usedPercent) {
112
+ if (!Number.isFinite(usedPercent))
113
+ return 100;
114
+ return Math.max(0, Math.min(100, Math.round((100 - usedPercent) * 10) / 10));
115
+ }
116
+ /** Cross a remaining-percent threshold from above (50 / 25 / 10 / 5).
117
+ * Only the tightest (lowest) crossed threshold is returned, so one drop
118
+ * never paints 50/25/10 as three identical warnings. */
119
+ export function crossedQuotaThresholds(previousRemaining, remaining) {
120
+ const crossed = QUOTA_ALERT_THRESHOLDS.filter(threshold => remaining <= threshold && (previousRemaining === undefined || previousRemaining > threshold));
121
+ if (crossed.length === 0)
122
+ return [];
123
+ return [crossed[crossed.length - 1]];
124
+ }
125
+ export function quotaAlertText(snapshot, window) {
126
+ const reset = window.resetsAt === undefined ? '' : `(${formatQuotaReset(window.resetsAt)})`;
127
+ return t('quota.alert', {
128
+ plan: snapshot.plan,
129
+ period: quotaPeriodLabel(window.period),
130
+ percent: window.remainingPercent.toFixed(0),
131
+ reset,
132
+ });
133
+ }
134
+ /**
135
+ * How often to re-fetch quota or prepaid balance, counted in model steps.
136
+ * Default is every 10 steps. Near a remaining-percent threshold, hourly
137
+ * windows refresh every 4 steps.
138
+ */
139
+ export function quotaRefreshEverySteps(window) {
140
+ if (window === undefined)
141
+ return 10;
142
+ const near = window.remainingPercent <= QUOTA_NEAR_THRESHOLD_PERCENT;
143
+ if (window.period === 'hourly' && near)
144
+ return 4;
145
+ return 10;
146
+ }
147
+ /** @deprecated Same cadence as {@link quotaRefreshEverySteps}; the name predates step accounting. */
148
+ export const quotaRefreshEveryTurns = quotaRefreshEverySteps;
149
+ function quotaPeriodLabel(period) {
150
+ if (period === 'hourly')
151
+ return t('quota.periodHourly');
152
+ if (period === 'weekly')
153
+ return t('quota.periodWeekly');
154
+ if (period === 'monthly')
155
+ return t('quota.periodMonthly');
156
+ return t('quota.periodUnknown');
157
+ }
158
+ function formatQuotaReset(iso) {
159
+ const reset = new Date(iso);
160
+ if (Number.isNaN(reset.getTime()))
161
+ return iso;
162
+ const until = reset.getTime() - Date.now();
163
+ return until > 0
164
+ ? t('quota.resetIn', { duration: formatRelativeDuration(until) })
165
+ : t('quota.resetAt', { when: reset.toLocaleString() });
166
+ }
167
+ export function parseSuperGrokBilling(payload) {
168
+ if (payload === null || typeof payload !== 'object') {
169
+ throw new Error(t('quota.supergrokUnrecognized'));
170
+ }
171
+ const root = payload;
172
+ const cfg = root.config;
173
+ if (cfg === null || typeof cfg !== 'object') {
174
+ throw new Error(t('quota.supergrokUnrecognized'));
175
+ }
176
+ const config = cfg;
177
+ const usedRaw = config.creditUsagePercent ?? config.credit_usage_percent;
178
+ const used = typeof usedRaw === 'number' && Number.isFinite(usedRaw) ? usedRaw : 0;
179
+ const periodRaw = config.currentPeriod ?? config.current_period;
180
+ const periodObj = periodRaw !== null && typeof periodRaw === 'object' ? periodRaw : undefined;
181
+ const type = typeof periodObj?.type === 'string' ? periodObj.type : '';
182
+ const period = type.includes('WEEKLY') ? 'weekly' : type.includes('MONTHLY') ? 'monthly' : 'unknown';
183
+ const end = typeof periodObj?.end === 'string'
184
+ ? periodObj.end
185
+ : typeof config.billingPeriodEnd === 'string'
186
+ ? config.billingPeriodEnd
187
+ : typeof config.billing_period_end === 'string'
188
+ ? config.billing_period_end
189
+ : undefined;
190
+ const plan = typeof root.subscription_tier === 'string' && root.subscription_tier.trim() !== ''
191
+ ? root.subscription_tier.trim()
192
+ : typeof root.subscriptionTier === 'string' && root.subscriptionTier.trim() !== ''
193
+ ? root.subscriptionTier.trim()
194
+ : 'SuperGrok';
195
+ return {
196
+ provider: 'xai',
197
+ plan,
198
+ windows: [{
199
+ label: period === 'monthly' ? t('quota.windowMonthly') : t('quota.windowWeekly'),
200
+ period: period === 'unknown' ? 'weekly' : period,
201
+ remainingPercent: remainingPercentFromUsed(used),
202
+ ...(end === undefined ? {} : { resetsAt: end }),
203
+ }],
204
+ };
205
+ }
206
+ export function parseOpenCodeGoQuota(payload, provider) {
207
+ const raw = payload;
208
+ const usage = raw?.usage;
209
+ if (usage === null || usage === undefined)
210
+ throw new Error(t('quota.unrecognized'));
211
+ const windows = [];
212
+ const push = (label, period, value) => {
213
+ const window = openCodeGoUsageWindow(value);
214
+ if (window?.percent === undefined)
215
+ return;
216
+ windows.push({
217
+ label,
218
+ period,
219
+ remainingPercent: remainingPercentFromUsed(window.percent),
220
+ ...(window.resetsAt === undefined ? {} : { resetsAt: window.resetsAt }),
221
+ });
222
+ };
223
+ push(t('quota.windowHourly'), 'hourly', usage.rolling);
224
+ push(t('quota.windowWeekly'), 'weekly', usage.weekly);
225
+ push(t('quota.windowMonthly'), 'monthly', usage.monthly);
226
+ if (windows.length === 0)
227
+ throw new Error(t('quota.unrecognized'));
228
+ return { provider, plan: 'OpenCode Go', windows };
229
+ }
230
+ export function formatQuotaSnapshot(snapshot) {
231
+ const lines = [t('quota.snapshotHeader', { plan: snapshot.plan, provider: snapshot.provider })];
232
+ for (const window of snapshot.windows) {
233
+ const remaining = Math.max(0, Math.min(100, window.remainingPercent));
234
+ const barWidth = 16;
235
+ const filled = Math.round(remaining / 100 * barWidth);
236
+ const reset = window.resetsAt === undefined ? '' : ` · ${formatQuotaReset(window.resetsAt)}`;
237
+ const bar = `${'█'.repeat(filled)}${'░'.repeat(barWidth - filled)}`;
238
+ lines.push(t('quota.snapshotWindow', {
239
+ label: window.label,
240
+ bar,
241
+ percent: remaining.toFixed(1),
242
+ reset,
243
+ }));
244
+ }
245
+ return lines.join('\n');
246
+ }
247
+ /** Compact `/status` quota line: tightest window first, then the rest. */
248
+ export function formatQuotaStatusLine(snapshot) {
249
+ if (snapshot === undefined || snapshot.windows.length === 0)
250
+ return 'quota: none';
251
+ const tightest = tightestQuotaWindow(snapshot);
252
+ const ordered = tightest === undefined
253
+ ? snapshot.windows
254
+ : [tightest, ...snapshot.windows.filter(window => window !== tightest)];
255
+ const parts = ordered.map(window => {
256
+ const remaining = Math.max(0, Math.min(100, window.remainingPercent));
257
+ return `${window.label} ${remaining.toFixed(0)}%`;
258
+ });
259
+ return `quota: ${snapshot.plan} ${parts.join(' · ')}`;
260
+ }
261
+ /** Tightest remaining window — used for threshold alerts. */
262
+ export function tightestQuotaWindow(snapshot) {
263
+ return snapshot.windows.reduce((best, window) => {
264
+ if (best === undefined || window.remainingPercent < best.remainingPercent)
265
+ return window;
266
+ return best;
267
+ }, undefined);
268
+ }
269
+ /** Render the OpenCode Go quota payload as a transcript block. */
270
+ export function formatOpenCodeGoUsage(payload, source) {
271
+ return formatQuotaSnapshot(parseOpenCodeGoQuota(payload, source.provider));
272
+ }
273
+ export function joinUrl(base, path) {
274
+ const root = base.replace(/\/+$/u, '');
275
+ const suffix = path.startsWith('/') ? path : `/${path}`;
276
+ if (root.endsWith('/v1') && suffix.startsWith('/v1/'))
277
+ return `${root}${suffix.slice(3)}`;
278
+ return `${root}${suffix}`;
279
+ }
280
+ export function parseDeepSeekBalance(payload, provider = 'deepseek-official') {
281
+ if (payload === null || typeof payload !== 'object') {
282
+ throw new Error(t('quota.deepseekUnrecognized'));
283
+ }
284
+ const raw = payload;
285
+ const infos = Array.isArray(raw.balance_infos) ? raw.balance_infos : [];
286
+ const lines = [];
287
+ for (const item of infos) {
288
+ if (item === null || typeof item !== 'object')
289
+ continue;
290
+ const row = item;
291
+ const currency = typeof row.currency === 'string' ? row.currency : undefined;
292
+ const total = typeof row.total_balance === 'string' ? row.total_balance : typeof row.total_balance === 'number' ? String(row.total_balance) : undefined;
293
+ if (total === undefined)
294
+ continue;
295
+ lines.push({
296
+ label: t('balance.available'),
297
+ amount: total,
298
+ ...(currency === undefined ? {} : { currency }),
299
+ });
300
+ const granted = typeof row.granted_balance === 'string' ? row.granted_balance : undefined;
301
+ const topped = typeof row.topped_up_balance === 'string' ? row.topped_up_balance : undefined;
302
+ if (granted !== undefined)
303
+ lines.push({ label: t('balance.granted'), amount: granted, ...(currency === undefined ? {} : { currency }) });
304
+ if (topped !== undefined)
305
+ lines.push({ label: t('balance.topped'), amount: topped, ...(currency === undefined ? {} : { currency }) });
306
+ }
307
+ if (lines.length === 0)
308
+ throw new Error(t('quota.deepseekUnrecognized'));
309
+ return {
310
+ provider,
311
+ plan: t('route.deepseek'),
312
+ available: typeof raw.is_available === 'boolean' ? raw.is_available : undefined,
313
+ lines,
314
+ sourcePath: '/user/balance',
315
+ };
316
+ }
317
+ function numberish(value) {
318
+ if (typeof value === 'number' && Number.isFinite(value))
319
+ return String(value);
320
+ if (typeof value === 'string' && value.trim() !== '')
321
+ return value.trim();
322
+ return undefined;
323
+ }
324
+ function recordOf(value) {
325
+ return value !== null && typeof value === 'object' && !Array.isArray(value)
326
+ ? value
327
+ : undefined;
328
+ }
329
+ /** Best-effort parse of OpenAI-compatible credit/balance JSON. */
330
+ export function parseOpenAiCompatibleBalance(payload, provider, path) {
331
+ const raw = recordOf(payload);
332
+ if (raw === undefined)
333
+ return undefined;
334
+ const lines = [];
335
+ const totalGranted = numberish(raw.total_granted);
336
+ const totalUsed = numberish(raw.total_used);
337
+ const totalAvailable = numberish(raw.total_available);
338
+ if (totalAvailable !== undefined)
339
+ lines.push({ label: t('balance.remaining'), amount: totalAvailable, currency: 'USD' });
340
+ if (totalGranted !== undefined)
341
+ lines.push({ label: t('balance.total'), amount: totalGranted, currency: 'USD' });
342
+ if (totalUsed !== undefined)
343
+ lines.push({ label: t('balance.used'), amount: totalUsed, currency: 'USD' });
344
+ const hardLimit = numberish(raw.hard_limit_usd ?? raw.hard_limit);
345
+ const softLimit = numberish(raw.soft_limit_usd ?? raw.soft_limit);
346
+ if (hardLimit !== undefined)
347
+ lines.push({ label: t('balance.hard'), amount: hardLimit, currency: 'USD' });
348
+ if (softLimit !== undefined)
349
+ lines.push({ label: t('balance.soft'), amount: softLimit, currency: 'USD' });
350
+ const data = recordOf(raw.data) ?? raw;
351
+ const balance = numberish(data.balance ?? data.total_balance ?? data.credit ?? data.credits ?? data.quota);
352
+ if (lines.length === 0 && balance !== undefined) {
353
+ lines.push({ label: t('balance.generic'), amount: balance, currency: typeof data.currency === 'string' ? data.currency : undefined });
354
+ }
355
+ if (Array.isArray(raw.balance_infos)) {
356
+ try {
357
+ return { ...parseDeepSeekBalance(raw, provider), plan: provider, sourcePath: path };
358
+ }
359
+ catch {
360
+ // Not DeepSeek-shaped despite the field name.
361
+ }
362
+ }
363
+ if (lines.length === 0)
364
+ return undefined;
365
+ return { provider, plan: provider, lines, sourcePath: path };
366
+ }
367
+ /** Compact footer chip: `余额 86.42 CNY`. Prefers remaining/available lines. */
368
+ export function formatFooterBalance(snapshot) {
369
+ const preferred = snapshot.lines.find(line => /剩余|可用|余额|available|remaining|credit/iu.test(line.label))
370
+ ?? snapshot.lines[0];
371
+ if (preferred === undefined)
372
+ return undefined;
373
+ const amount = preferred.amount.trim();
374
+ if (amount === '')
375
+ return undefined;
376
+ const currency = preferred.currency === undefined || preferred.currency === '' ? '' : ` ${preferred.currency}`;
377
+ return t('footer.balance', { amount: `${amount}${currency}` });
378
+ }
379
+ export function formatAccountBalance(snapshot) {
380
+ const header = [t('balance.header', { plan: snapshot.plan, provider: snapshot.provider })];
381
+ if (snapshot.available === false)
382
+ header.push(t('balance.unavailable'));
383
+ for (const line of snapshot.lines) {
384
+ const currency = line.currency === undefined ? '' : ` ${line.currency}`;
385
+ header.push(` ${line.label} · ${line.amount}${currency}`);
386
+ }
387
+ if (snapshot.sourcePath !== undefined)
388
+ header.push(t('balance.source', { path: snapshot.sourcePath }));
389
+ return header.join('\n');
390
+ }
391
+ /** Extract a safe human-readable message from an OpenCode error payload. */
392
+ export function openCodeApiErrorMessage(payload) {
393
+ if (typeof payload !== 'object' || payload === null)
394
+ return '';
395
+ const raw = payload;
396
+ const error = raw.error;
397
+ if (typeof error === 'string' && error.trim() !== '')
398
+ return error.trim();
399
+ if (typeof error === 'object' && error !== null) {
400
+ const message = error.message;
401
+ if (typeof message === 'string' && message.trim() !== '')
402
+ return message.trim();
403
+ }
404
+ if (typeof raw.message === 'string' && raw.message.trim() !== '')
405
+ return raw.message.trim();
406
+ return '';
407
+ }
408
+ //# sourceMappingURL=quota.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota.js","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":"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"}
@@ -57,18 +57,6 @@ export function formatSessionTime(timestamp) {
57
57
  const pad = (value) => String(value).padStart(2, '0');
58
58
  return `${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}`;
59
59
  }
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
60
  /** Whether one durable event is a user-authored message. */
73
61
  function isUserMessageEvent(event) {
74
62
  const candidate = event;
@@ -111,6 +99,19 @@ async function pruneSessionArtifacts(persistence, meta) {
111
99
  }
112
100
  /** Upper bound on one inspection batch, so the picker never fans out unbounded. */
113
101
  const INSPECT_BATCH_SIZE = 30;
102
+ /**
103
+ * List resumable top-level sessions, newest first.
104
+ *
105
+ * Subagent-owned sessions and the current session are excluded. Sessions
106
+ * whose event log cannot be inspected are kept (marked `unreadable`) instead
107
+ * of silently disappearing from history; readable sessions with user input
108
+ * sort first. The label is the persisted title, then the user's first input,
109
+ * then the id.
110
+ * @param persistence - the session persistence service.
111
+ * @param currentId - the live session to exclude (empty at launch).
112
+ * @returns every resumable candidate in display order (attachable live
113
+ * hosts first, then readable logs, then unreadable).
114
+ */
114
115
  export async function listResumableSessions(persistence, currentId, listHosts = listAttachableHosts) {
115
116
  const headers = await persistence.list();
116
117
  const candidates = headers
@@ -174,10 +175,10 @@ export async function listResumableSessions(persistence, currentId, listHosts =
174
175
  };
175
176
  }
176
177
  };
177
- // Headers only carry creation time, so inspect by creation recency until
178
- // nine sessions with real user input are found. Recent empty boot rows (a
179
- // launch that exited before the first message) must not push older real
180
- // conversations out of the fixed window.
178
+ // Headers only carry creation time. Inspect in bounded batches so a large
179
+ // store cannot fan out unbounded, but do not stop after a fixed count —
180
+ // the picker filters and scrolls, so older real conversations must stay
181
+ // reachable. Recent empty boot rows are pruned instead of listed.
181
182
  const inspected = [];
182
183
  for (let offset = 0; offset < candidates.length; offset += INSPECT_BATCH_SIZE) {
183
184
  const batch = candidates.slice(offset, offset + INSPECT_BATCH_SIZE);
@@ -192,8 +193,6 @@ export async function listResumableSessions(persistence, currentId, listHosts =
192
193
  }
193
194
  inspected.push(item);
194
195
  }
195
- if (inspected.filter(item => item.hasUserInput).length >= 9)
196
- break;
197
196
  }
198
197
  const resumable = inspected.filter(item => item.hasUserInput || item.unreadable === true);
199
198
  const hosts = await listHosts();
@@ -248,8 +247,6 @@ export async function listResumableSessions(persistence, currentId, listHosts =
248
247
  resumable.sort((a, b) => (a.attach === undefined ? 1 : 0) - (b.attach === undefined ? 1 : 0)
249
248
  || (a.unreadable === true ? 1 : 0) - (b.unreadable === true ? 1 : 0)
250
249
  || b.updatedAt - a.updatedAt);
251
- return resumable
252
- .slice(0, 9)
253
- .map(({ hasUserInput: _hasUserInput, ...rest }) => rest);
250
+ return resumable.map(({ hasUserInput: _hasUserInput, ...rest }) => rest);
254
251
  }
255
252
  //# sourceMappingURL=session-list.js.map
@@ -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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"}