@chaoset/session-archive 0.2.2 → 0.2.3

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/client/client.cjs CHANGED
@@ -74,6 +74,7 @@ window.__ModuleLoader__.load({
74
74
  ".sa_body{flex:1;min-height:0;padding:4px 12px 12px;overflow-y:auto}",
75
75
  ".sa_empty{color:var(--dsw-alias-label-tertiary);margin:24px 0;text-align:center;font-size:12px;line-height:18px}",
76
76
  ".sa_error{color:var(--dsw-alias-state-error-primary);margin:8px 0;font-size:12px;line-height:18px}",
77
+ ".sa_ok{color:var(--dsw-alias-state-success-primary);margin:8px 0;font-size:12px;line-height:18px}",
77
78
  ".sa_rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}",
78
79
  ".sa_row{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);border-radius:12px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}",
79
80
  ".sa_rowHead{align-items:center;gap:8px;display:flex}",
@@ -230,10 +231,11 @@ window.__ModuleLoader__.load({
230
231
  load();
231
232
  }
232
233
  }, [open, load]);
234
+ const [badgeCount, setBadgeCount] = React.useState(0);
233
235
  const refreshSilently = React.useCallback(async () => {
234
236
  try {
235
- const result = await call("list");
236
- setItems(Array.isArray(result.items) ? result.items : []);
237
+ const result = await call("count");
238
+ setBadgeCount(typeof result.count === "number" ? result.count : 0);
237
239
  } catch {
238
240
  }
239
241
  }, [call]);
@@ -273,6 +275,7 @@ window.__ModuleLoader__.load({
273
275
  } else {
274
276
  setSelected(/* @__PURE__ */ new Set());
275
277
  }
278
+ setConfirmingDelete(false);
276
279
  };
277
280
  const toggleOne = (sessionId, checked) => {
278
281
  setSelected((current) => {
@@ -281,6 +284,7 @@ window.__ModuleLoader__.load({
281
284
  else next.delete(sessionId);
282
285
  return next;
283
286
  });
287
+ setConfirmingDelete(false);
284
288
  };
285
289
  const toggleDetail = (item) => {
286
290
  if (expanded === item.sessionId) {
@@ -288,7 +292,8 @@ window.__ModuleLoader__.load({
288
292
  return;
289
293
  }
290
294
  setExpanded(item.sessionId);
291
- if (!details.has(item.sessionId)) {
295
+ const cached = details.get(item.sessionId);
296
+ if (cached === void 0 || cached.error !== void 0) {
292
297
  setDetailLoading((current) => new Set(current).add(item.sessionId));
293
298
  call("detail", item.sessionId).then((detail) => {
294
299
  setDetails((current) => new Map(current).set(item.sessionId, detail));
@@ -318,7 +323,10 @@ window.__ModuleLoader__.load({
318
323
  const doneIds = result.deleted || result.restored || [];
319
324
  const n = doneIds.length;
320
325
  if (result.failed && result.failed.length > 0) {
321
- setNotice({ kind: "error", text: t(failKey).replace("{n}", String(result.failed.length)) });
326
+ const reasonText = (reason) => reason === "live" ? t("live") : reason === "busy" ? t("runningHint") : String(reason ?? "error");
327
+ const detail = result.failed.slice(0, 3).map((item) => shortId(item.sessionId) + ": " + reasonText(item.reason)).join("; ");
328
+ const more = result.failed.length > 3 ? " (+" + (result.failed.length - 3) + ")" : "";
329
+ setNotice({ kind: "error", text: t(failKey).replace("{n}", String(result.failed.length)) + " \u2014 " + detail + more });
322
330
  } else {
323
331
  setNotice({ kind: "ok", text: t(doneKey).replace("{n}", String(n)) });
324
332
  }
@@ -370,7 +378,7 @@ window.__ModuleLoader__.load({
370
378
  )
371
379
  ),
372
380
  iconOnly ? null : React.createElement("span", { className: "sa_badgeLabel" }, t("badge")),
373
- iconOnly ? null : React.createElement("span", { className: "sa_badgeCount" }, String(items.length))
381
+ iconOnly ? null : React.createElement("span", { className: "sa_badgeCount" }, String(open ? items.length : badgeCount))
374
382
  ),
375
383
  open ? React.createElement(
376
384
  "div",
@@ -413,12 +421,12 @@ window.__ModuleLoader__.load({
413
421
  type: "button",
414
422
  disabled: busy || !hasSelection,
415
423
  onClick: deleteSelected
416
- }, confirmingDelete ? t("deleteConfirm") : t("delete"))
424
+ }, confirmingDelete ? selected.size > 1 ? t("confirmAll").replace("{n}", String(selected.size)) : t("deleteConfirm") : t("delete"))
417
425
  ),
418
426
  React.createElement(
419
427
  "div",
420
428
  { className: "sa_body" },
421
- notice !== null ? React.createElement("p", { className: "sa_error" + (notice.kind === "ok" ? "" : ""), role: "status" }, notice.text) : null,
429
+ notice !== null ? React.createElement("p", { className: notice.kind === "ok" ? "sa_ok" : "sa_error", role: "status" }, notice.text) : null,
422
430
  error !== null ? React.createElement("p", { className: "sa_error", role: "alert" }, error) : null,
423
431
  loading && items.length === 0 ? React.createElement("p", { className: "sa_empty" }, "\u2026") : null,
424
432
  !loading && items.length === 0 && error === null ? React.createElement("p", { className: "sa_empty" }, t("empty")) : null,
@@ -441,6 +449,7 @@ window.__ModuleLoader__.load({
441
449
  checked: selected.has(item.sessionId),
442
450
  disabled: busy || item.live,
443
451
  title: item.live ? t("runningHint") : void 0,
452
+ "aria-label": item.title !== null && item.title !== void 0 && item.title !== "" ? item.title : t("noneTitle"),
444
453
  onChange: (e) => toggleOne(item.sessionId, e.target.checked)
445
454
  }),
446
455
  React.createElement(
@@ -501,6 +510,7 @@ window.__ModuleLoader__.load({
501
510
  package: "@chaoset/session-archive",
502
511
  descriptors: [
503
512
  { id: "@chaoset/session-archive#sessionArchive/list", service: "sessionArchive", namespace: "sessionArchive", method: "list", invocation: { kind: "direct" }, parameters: [], result: { mode: "strict", typeSymbol: "sessionArchive/list:result", schema: passthroughSchema } },
513
+ { id: "@chaoset/session-archive#sessionArchive/count", service: "sessionArchive", namespace: "sessionArchive", method: "count", invocation: { kind: "direct" }, parameters: [], result: { mode: "strict", typeSymbol: "sessionArchive/count:result", schema: passthroughSchema } },
504
514
  { id: "@chaoset/session-archive#sessionArchive/detail", service: "sessionArchive", namespace: "sessionArchive", method: "detail", invocation: { kind: "direct" }, parameters: [{ name: "sessionId", wire: "sessionId", source: "json", codec: { mode: "strict", typeSymbol: "sessionArchive/detail:sessionId", schema: passthroughSchema } }], result: { mode: "strict", typeSymbol: "sessionArchive/detail:result", schema: passthroughSchema } },
505
515
  { id: "@chaoset/session-archive#sessionArchive/delete", service: "sessionArchive", namespace: "sessionArchive", method: "delete", invocation: { kind: "direct" }, parameters: [{ name: "sessionIds", wire: "sessionIds", source: "json", codec: { mode: "strict", typeSymbol: "sessionArchive/delete:sessionIds", schema: passthroughSchema } }], result: { mode: "strict", typeSymbol: "sessionArchive/delete:result", schema: passthroughSchema } },
506
516
  { id: "@chaoset/session-archive#sessionArchive/unarchive", service: "sessionArchive", namespace: "sessionArchive", method: "unarchive", invocation: { kind: "direct" }, parameters: [{ name: "sessionIds", wire: "sessionIds", source: "json", codec: { mode: "strict", typeSymbol: "sessionArchive/unarchive:sessionIds", schema: passthroughSchema } }], result: { mode: "strict", typeSymbol: "sessionArchive/unarchive:result", schema: passthroughSchema } }
package/client/index.tsx CHANGED
@@ -36,6 +36,7 @@ var css = [
36
36
  ".sa_body{flex:1;min-height:0;padding:4px 12px 12px;overflow-y:auto}",
37
37
  ".sa_empty{color:var(--dsw-alias-label-tertiary);margin:24px 0;text-align:center;font-size:12px;line-height:18px}",
38
38
  ".sa_error{color:var(--dsw-alias-state-error-primary);margin:8px 0;font-size:12px;line-height:18px}",
39
+ ".sa_ok{color:var(--dsw-alias-state-success-primary);margin:8px 0;font-size:12px;line-height:18px}",
39
40
  ".sa_rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}",
40
41
  ".sa_row{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);border-radius:12px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}",
41
42
  ".sa_rowHead{align-items:center;gap:8px;display:flex}",
@@ -201,10 +202,13 @@ function ArchivePanel(props: any) {
201
202
  // 后台静默刷新归档计数:侧边栏徽标要在「聊天列表里出现归档」时就同步显示数量,
202
203
  // 而不是等到打开弹窗才更新。面板打开时由上面的 load() 负责,这里只在关闭态轮询,
203
204
  // 避免刷新打断用户在面板里的勾选/操作;同时监听标签页重新可见。
205
+ // 关闭态走 count() 轻端点:list() 要解析每个归档会话的完整事件流,
206
+ // 5 秒一次的徽标轮询用它是持续的性能债;count 只读每个文件的首行头。
207
+ const [badgeCount, setBadgeCount] = React.useState(0);
204
208
  const refreshSilently = React.useCallback(async () => {
205
209
  try {
206
- const result = await call("list");
207
- setItems(Array.isArray(result.items) ? result.items : []);
210
+ const result = await call("count");
211
+ setBadgeCount(typeof result.count === "number" ? result.count : 0);
208
212
  } catch {}
209
213
  }, [call]);
210
214
  React.useEffect(() => {
@@ -244,6 +248,9 @@ function ArchivePanel(props: any) {
244
248
  } else {
245
249
  setSelected(new Set());
246
250
  }
251
+ // 选择集变化即解除两段式删除的 armed 态:否则 4 秒窗口内改勾选,
252
+ // 第二次点击会把确认"误嫁"给新的选择集。
253
+ setConfirmingDelete(false);
247
254
  };
248
255
  const toggleOne = (sessionId: any, checked: any) => {
249
256
  setSelected((current) => {
@@ -251,6 +258,7 @@ function ArchivePanel(props: any) {
251
258
  if (checked) next.add(sessionId); else next.delete(sessionId);
252
259
  return next;
253
260
  });
261
+ setConfirmingDelete(false);
254
262
  };
255
263
 
256
264
  const toggleDetail = (item: any) => {
@@ -259,7 +267,10 @@ function ArchivePanel(props: any) {
259
267
  return;
260
268
  }
261
269
  setExpanded(item.sessionId);
262
- if (!details.has(item.sessionId)) {
270
+ const cached = details.get(item.sessionId);
271
+ // 失败结果不缓存拦截:之前把 {error} 写进 Map 后 has() 恒真,唯一出路是
272
+ // 刷新页面;现在再次点击即重新请求。
273
+ if (cached === void 0 || cached.error !== void 0) {
263
274
  setDetailLoading((current) => new Set(current).add(item.sessionId));
264
275
  call("detail", item.sessionId).then((detail: any) => {
265
276
  setDetails((current) => new Map(current).set(item.sessionId, detail));
@@ -290,7 +301,15 @@ function ArchivePanel(props: any) {
290
301
  const doneIds = result.deleted || result.restored || [];
291
302
  const n = doneIds.length;
292
303
  if (result.failed && result.failed.length > 0) {
293
- setNotice({ kind: "error", text: t(failKey).replace("{n}", String(result.failed.length)) });
304
+ // host 对每个失败项都给了 reason(live/busy/not-archived/具体错误),
305
+ // 只报数量会让用户不知道为什么失败、该等多久重试。
306
+ const reasonText = (reason: any) =>
307
+ reason === "live" ? t("live") : reason === "busy" ? t("runningHint") : String(reason ?? "error");
308
+ const detail = result.failed.slice(0, 3)
309
+ .map((item: any) => shortId(item.sessionId) + ": " + reasonText(item.reason))
310
+ .join("; ");
311
+ const more = result.failed.length > 3 ? " (+" + (result.failed.length - 3) + ")" : "";
312
+ setNotice({ kind: "error", text: t(failKey).replace("{n}", String(result.failed.length)) + " — " + detail + more });
294
313
  } else {
295
314
  setNotice({ kind: "ok", text: t(doneKey).replace("{n}", String(n)) });
296
315
  }
@@ -340,7 +359,7 @@ function ArchivePanel(props: any) {
340
359
  )
341
360
  ),
342
361
  iconOnly ? null : React.createElement("span", { className: "sa_badgeLabel" }, t("badge")),
343
- iconOnly ? null : React.createElement("span", { className: "sa_badgeCount" }, String(items.length))
362
+ iconOnly ? null : React.createElement("span", { className: "sa_badgeCount" }, String(open ? items.length : badgeCount))
344
363
  ),
345
364
  open ? React.createElement(
346
365
  "div",
@@ -381,12 +400,14 @@ function ArchivePanel(props: any) {
381
400
  type: "button",
382
401
  disabled: busy || !hasSelection,
383
402
  onClick: deleteSelected
384
- }, confirmingDelete ? t("deleteConfirm") : t("delete"))
403
+ }, confirmingDelete
404
+ ? (selected.size > 1 ? t("confirmAll").replace("{n}", String(selected.size)) : t("deleteConfirm"))
405
+ : t("delete"))
385
406
  ),
386
407
  React.createElement(
387
408
  "div",
388
409
  { className: "sa_body" },
389
- notice !== null ? React.createElement("p", { className: "sa_error" + (notice.kind === "ok" ? "" : ""), role: "status" }, notice.text) : null,
410
+ notice !== null ? React.createElement("p", { className: notice.kind === "ok" ? "sa_ok" : "sa_error", role: "status" }, notice.text) : null,
390
411
  error !== null ? React.createElement("p", { className: "sa_error", role: "alert" }, error) : null,
391
412
  loading && items.length === 0 ? React.createElement("p", { className: "sa_empty" }, "…") : null,
392
413
  !loading && items.length === 0 && error === null ? React.createElement("p", { className: "sa_empty" }, t("empty")) : null,
@@ -409,6 +430,7 @@ function ArchivePanel(props: any) {
409
430
  checked: selected.has(item.sessionId),
410
431
  disabled: busy || item.live,
411
432
  title: item.live ? t("runningHint") : void 0,
433
+ "aria-label": item.title !== null && item.title !== void 0 && item.title !== "" ? item.title : t("noneTitle"),
412
434
  onChange: (e: any) => toggleOne(item.sessionId, e.target.checked)
413
435
  }),
414
436
  React.createElement(
@@ -474,6 +496,7 @@ const REMOTE_CONTRIBUTION: TypertRemoteContribution = {
474
496
  package: "@chaoset/session-archive",
475
497
  descriptors: [
476
498
  { id: "@chaoset/session-archive#sessionArchive/list", service: "sessionArchive", namespace: "sessionArchive", method: "list", invocation: { kind: "direct" }, parameters: [], result: { mode: "strict", typeSymbol: "sessionArchive/list:result", schema: passthroughSchema } },
499
+ { id: "@chaoset/session-archive#sessionArchive/count", service: "sessionArchive", namespace: "sessionArchive", method: "count", invocation: { kind: "direct" }, parameters: [], result: { mode: "strict", typeSymbol: "sessionArchive/count:result", schema: passthroughSchema } },
477
500
  { id: "@chaoset/session-archive#sessionArchive/detail", service: "sessionArchive", namespace: "sessionArchive", method: "detail", invocation: { kind: "direct" }, parameters: [{ name: "sessionId", wire: "sessionId", source: "json", codec: { mode: "strict", typeSymbol: "sessionArchive/detail:sessionId", schema: passthroughSchema } }], result: { mode: "strict", typeSymbol: "sessionArchive/detail:result", schema: passthroughSchema } },
478
501
  { id: "@chaoset/session-archive#sessionArchive/delete", service: "sessionArchive", namespace: "sessionArchive", method: "delete", invocation: { kind: "direct" }, parameters: [{ name: "sessionIds", wire: "sessionIds", source: "json", codec: { mode: "strict", typeSymbol: "sessionArchive/delete:sessionIds", schema: passthroughSchema } }], result: { mode: "strict", typeSymbol: "sessionArchive/delete:result", schema: passthroughSchema } },
479
502
  { id: "@chaoset/session-archive#sessionArchive/unarchive", service: "sessionArchive", namespace: "sessionArchive", method: "unarchive", invocation: { kind: "direct" }, parameters: [{ name: "sessionIds", wire: "sessionIds", source: "json", codec: { mode: "strict", typeSymbol: "sessionArchive/unarchive:sessionIds", schema: passthroughSchema } }], result: { mode: "strict", typeSymbol: "sessionArchive/unarchive:result", schema: passthroughSchema } }
package/lib/index.d.ts CHANGED
@@ -77,11 +77,18 @@ export declare const config: {
77
77
  * 只读操作失败各自容错:单个会话的标题/详情读取失败不拖垮列表。
78
78
  */
79
79
  export declare function createArchiveHost(ctx: Context, cfg: Record<string, any>): {
80
+ /** 归档会话计数(存在性过滤后的真实数量)。侧边栏徽标的关闭态轮询
81
+ * 只调这里:persistence.list() 只读每个文件的首行头,比 list() 的
82
+ * 全事件流解析便宜一个数量级以上。 */
83
+ count(): Promise<{
84
+ count: number;
85
+ }>;
80
86
  /** 列出全部归档会话(存在性过滤:文件已删的幽灵归档记录不显示)。 */
81
87
  list(): Promise<{
82
88
  items: any[];
83
89
  }>;
84
- /** 读取一个归档会话的只读详情(标题 + 文本消息)。 */
90
+ /** 读取一个归档会话的只读详情(标题 + 文本消息)。仅归档会话可读:
91
+ * detail 是对外暴露的远程端点,不校验成员资格就能读到任意未归档会话。 */
85
92
  detail(sessionId: string): Promise<{
86
93
  sessionId: string;
87
94
  header: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAYnD,eAAO,MAAM,IAAI,oBAAoB,CAAC;AAEtC,oDAAoD;AACpD,eAAO,MAAM,MAAM,UAA0D,CAAC;AAY9E,eAAO,MAAM,MAAM;IARjB,iCAAiC;;IAEjC,8BAA8B;;IAE9B,4BAA4B;;CAIa,CAAC;AAiE5C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IA8EpE,sCAAsC;IAChC,IAAI;;;IAeV,gCAAgC;IAC1B,MAAM,YAAY,MAAM;;;YAkBxB,GAAG;YACH,SAAS;YACT,aAAa;YACb,WAAW;;;;;;;;;;;IASjB;;;;;;;OAOG;IACG,cAAc,aAAa,MAAM,EAAE;;;;;;;;IAqCzC;;;;OAIG;IACG,SAAS,aAAa,MAAM,EAAE;;;;EAevC;AAED,iCAAiC;AACjC,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,CAmBrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAYnD,eAAO,MAAM,IAAI,oBAAoB,CAAC;AAEtC,oDAAoD;AACpD,eAAO,MAAM,MAAM,UAA0D,CAAC;AAY9E,eAAO,MAAM,MAAM;IARjB,iCAAiC;;IAEjC,8BAA8B;;IAE9B,4BAA4B;;CAIa,CAAC;AAiE5C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAwGpE;;0BAEsB;IAChB,KAAK;;;IAUX,sCAAsC;IAChC,IAAI;;;IAeV;+CAC2C;IACrC,MAAM,YAAY,MAAM;;;YAqBxB,GAAG;YACH,SAAS;YACT,aAAa;YACb,WAAW;;;;;;;;;;;IASjB;;;;;;;OAOG;IACG,cAAc,aAAa,MAAM,EAAE;;;;;;;;IAyDzC;;;;OAIG;IACG,SAAS,aAAa,MAAM,EAAE;;;;EAwBvC;AAED,iCAAiC;AACjC,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,CAmBrD"}
package/lib/index.js CHANGED
@@ -140,8 +140,11 @@ export function createArchiveHost(ctx, cfg) {
140
140
  /** 归档瞬间的生成流兜底:会话仍在内存且文件最近有写入(60s 内)时
141
141
  * 视为忙碌——删除文件后进行中的请求会把半截日志 append 回来。 */
142
142
  const isBusy = (sessionId, file) => file !== null && ctx.sessions.get(sessionId) !== undefined && Date.now() - file.mtimeMs < 60_000;
143
- /** 从归档集合移除若干 id(恢复用;删除不调用——见 deleteArchived),返回实际移除的 id。 */
144
- async function removeFromArchiveSet(ids) {
143
+ /** 从归档集合移除若干 id(恢复用;删除不调用——见 deleteArchived),返回实际移除的 id。
144
+ * confirm registry 写锁临界区内逐个复核 id 是否仍可恢复(文件仍存在):
145
+ * 存在性检查放在锁外的话,并发 deleteArchived 可在检查与移除之间删掉文件,
146
+ * 结果"文件没了、归档标记也没了",内存中的会话立刻重回侧边栏。 */
147
+ async function removeFromArchiveSet(ids, confirm) {
145
148
  const set = new Set(ids);
146
149
  const canWrite = registry !== undefined &&
147
150
  typeof registry.enqueueOperation === 'function' &&
@@ -153,8 +156,23 @@ export function createArchiveHost(ctx, cfg) {
153
156
  await registry.enqueueOperation(async () => {
154
157
  const state = registry.requireState();
155
158
  const current = Array.isArray(state.archivedSessionIds) ? state.archivedSessionIds : [];
156
- removedIds = current.filter((id) => set.has(id));
157
- const remaining = current.filter((id) => !set.has(id));
159
+ let eligible = current.filter((id) => set.has(id));
160
+ if (confirm !== undefined) {
161
+ const confirmed = [];
162
+ for (const id of eligible) {
163
+ try {
164
+ if (await confirm(id))
165
+ confirmed.push(id);
166
+ }
167
+ catch { }
168
+ }
169
+ eligible = confirmed;
170
+ }
171
+ removedIds = eligible;
172
+ // 只有真正移除的 id 才离开归档集合;未通过复核的保持原状(仍是 ghost
173
+ // 或正常归档),不能因为请求过就一并抹掉。
174
+ const removedSet = new Set(removedIds);
175
+ const remaining = current.filter((id) => !removedSet.has(id));
158
176
  if (removedIds.length > 0)
159
177
  await registry.setState({ ...state, archivedSessionIds: remaining });
160
178
  });
@@ -173,15 +191,28 @@ export function createArchiveHost(ctx, cfg) {
173
191
  return null;
174
192
  }
175
193
  }
176
- /** 单个归档会话的展示行。标题读取失败回退 null(面板显示目录名)。 */
194
+ /** 单个归档会话的展示行。标题读取失败回退 null(面板显示目录名)。
195
+ * 标题按 mtime 缓存:jsonl 后端没有后缀读取钩子,readFrom(id,0) 会解析
196
+ * 整条事件流,而面板关闭态的徽标轮询每 5 秒打一次 list——不缓存的话
197
+ * 就是"读整本会话只为取一行标题"的持续开销。mtime 不变即命中缓存。 */
198
+ const titleCache = new Map();
177
199
  async function rowFor(sessionId, header) {
178
200
  const file = await fileInfo(header);
179
201
  let title = null;
180
- try {
181
- const { events } = await persistence.readFrom(sessionId, 0);
182
- title = foldTitle(events);
202
+ if (file !== null) {
203
+ const cached = titleCache.get(sessionId);
204
+ if (cached !== undefined && cached.mtimeMs === file.mtimeMs) {
205
+ title = cached.title;
206
+ }
207
+ else {
208
+ try {
209
+ const { events } = await persistence.readFrom(sessionId, 0);
210
+ title = foldTitle(events);
211
+ }
212
+ catch { }
213
+ titleCache.set(sessionId, { mtimeMs: file.mtimeMs, title });
214
+ }
183
215
  }
184
- catch { }
185
216
  return {
186
217
  sessionId,
187
218
  title,
@@ -193,6 +224,21 @@ export function createArchiveHost(ctx, cfg) {
193
224
  };
194
225
  }
195
226
  return {
227
+ /** 归档会话计数(存在性过滤后的真实数量)。侧边栏徽标的关闭态轮询
228
+ * 只调这里:persistence.list() 只读每个文件的首行头,比 list() 的
229
+ * 全事件流解析便宜一个数量级以上。 */
230
+ async count() {
231
+ const archived = [...archivedSet()];
232
+ if (archived.length === 0)
233
+ return { count: 0 };
234
+ const headers = await persistence.list();
235
+ const persisted = new Set(headers.map((header) => header.id));
236
+ let count = 0;
237
+ for (const sessionId of archived)
238
+ if (persisted.has(sessionId))
239
+ count++;
240
+ return { count };
241
+ },
196
242
  /** 列出全部归档会话(存在性过滤:文件已删的幽灵归档记录不显示)。 */
197
243
  async list() {
198
244
  const archived = [...archivedSet()];
@@ -210,8 +256,12 @@ export function createArchiveHost(ctx, cfg) {
210
256
  const items = await limitedConcurrency(cfg.titleReadConcurrency, rows.map(({ sessionId, header }) => () => rowFor(sessionId, header)));
211
257
  return { items };
212
258
  },
213
- /** 读取一个归档会话的只读详情(标题 + 文本消息)。 */
259
+ /** 读取一个归档会话的只读详情(标题 + 文本消息)。仅归档会话可读:
260
+ * detail 是对外暴露的远程端点,不校验成员资格就能读到任意未归档会话。 */
214
261
  async detail(sessionId) {
262
+ if (!archivedSet().has(sessionId)) {
263
+ throw Object.assign(new Error('session not archived: ' + sessionId), { code: 'NOT_ARCHIVED' });
264
+ }
215
265
  const { meta, events } = await persistence.readFrom(sessionId, 0);
216
266
  const title = foldTitle(events);
217
267
  const messages = [];
@@ -255,9 +305,17 @@ export function createArchiveHost(ctx, cfg) {
255
305
  const unique = [...new Set(sessionIds)];
256
306
  const deleted = [];
257
307
  const failed = [];
308
+ // 归档成员前置校验:persistence.list() 含所有持久化会话而非仅归档
309
+ // 会话,不校验的话任何"未归档、不在内存"的会话 id 都会绕过 live/busy
310
+ // 两道保护被不可逆物理删除。
311
+ const archived = archivedSet();
258
312
  const headers = await persistence.list();
259
313
  const headersById = new Map(headers.map((item) => [item.id, item]));
260
314
  for (const sessionId of unique) {
315
+ if (!archived.has(sessionId)) {
316
+ failed.push({ sessionId, reason: 'not-archived' });
317
+ continue;
318
+ }
261
319
  if (isLive(sessionId)) {
262
320
  failed.push({ sessionId, reason: 'live' });
263
321
  continue;
@@ -278,6 +336,21 @@ export function createArchiveHost(ctx, cfg) {
278
336
  continue;
279
337
  }
280
338
  try {
339
+ // TOCTOU 复核:isBusy 读的是 stat 快照,检查与 rm 之间生成流可能
340
+ // 恰好落盘;删前重取一次 mtime 再判一次 busy。
341
+ let fresh = null;
342
+ try {
343
+ fresh = await stat(file.path);
344
+ }
345
+ catch { }
346
+ if (fresh === null) {
347
+ deleted.push(sessionId);
348
+ continue;
349
+ }
350
+ if (ctx.sessions.get(sessionId) !== undefined && Date.now() - fresh.mtimeMs < 60_000) {
351
+ failed.push({ sessionId, reason: 'busy' });
352
+ continue;
353
+ }
281
354
  await rm(file.path, { force: true });
282
355
  await rm(dirname(file.path), { recursive: true, force: true });
283
356
  deleted.push(sessionId);
@@ -296,17 +369,23 @@ export function createArchiveHost(ctx, cfg) {
296
369
  async unarchive(sessionIds) {
297
370
  const unique = [...new Set(sessionIds)];
298
371
  const headers = await persistence.list();
299
- const restorable = [];
372
+ const headersById = new Map(headers.map((item) => [item.id, item]));
373
+ // 锁外先做一遍廉价过滤(明显不可恢复的直接淘汰),锁内由 confirm 复核,
374
+ // 消除与并发 deleteArchived 的检查-移除窗口。
375
+ const candidates = [];
300
376
  for (const sessionId of unique) {
301
- const header = headers.find((item) => item.id === sessionId);
377
+ const header = headersById.get(sessionId);
302
378
  if (header === undefined)
303
379
  continue; // 持久化记录已删:拒绝恢复
304
- const file = await fileInfo(header);
305
- if (file === null)
306
- continue; // 有记录无文件:拒绝恢复
307
- restorable.push(sessionId);
380
+ candidates.push({ sessionId, header });
308
381
  }
309
- const restored = await removeFromArchiveSet(restorable);
382
+ const restored = await removeFromArchiveSet(candidates.map(({ sessionId }) => sessionId), async (sessionId) => {
383
+ const header = headersById.get(sessionId);
384
+ if (header === undefined)
385
+ return false;
386
+ const file = await fileInfo(header);
387
+ return file !== null; // 有记录无文件:拒绝恢复
388
+ });
310
389
  return { restored, removedFromArchive: restored.length };
311
390
  },
312
391
  };
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,iDAAiD;AACjD,0CAA0C;AAC1C,IAAI,qBAAqB,GAAQ,IAAI,CAAC;AACtC,IAAI,CAAC;IACH,CAAC,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAC5D,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,+CAA+C,GAAG,CAAE,KAAe,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/G,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAC;AAEtC,oDAAoD;AACpD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;AAE9E,gEAAgE;AAChE,MAAM,cAAc,GAAG;IACrB,iCAAiC;IACjC,iBAAiB,EAAE,GAAG;IACtB,8BAA8B;IAC9B,mBAAmB,EAAE,IAAI;IACzB,4BAA4B;IAC5B,oBAAoB,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;AAE5C,sCAAsC;AACtC,SAAS,cAAc,CAAC,OAAY;IAClC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACvE,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,EAAE,CAAC;QACvF,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACzF,MAAM,IAAI,SAAS,CAAC,iCAAiC,GAAG,8BAA8B,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,SAAS,eAAe,CAAC,MAAW,EAAE,QAAQ,GAAQ,cAAc;IAClE,MAAM,GAAG,GAAG,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAClG,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,GAAG,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,CAAC,KAAU,EAAE,QAAa,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3G,OAAO;QACL,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC;QACpF,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,CAAC;QAC1F,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,CAAC;KAC9F,CAAC;AACJ,CAAC;AAED,6BAA6B;AAC7B,SAAS,kBAAkB,CAAC,KAAa,EAAE,KAAgC;IACzE,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;QAC/E,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAE,CAAC;YACxB,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,iDAAiD;AACjD,SAAS,SAAS,CAAC,MAAa;IAC9B,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChG,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACzC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iDAAiD;AACjD,SAAS,WAAW,CAAC,OAAY,EAAE,QAAgB;IACjD,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3D,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;YACnB,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ;gBAAE,MAAM;QACpC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY,EAAE,GAAwB;IACtE,MAAM,QAAQ,GAAG,GAAG,CAAC,iBAAiB,CAAC;IACvC,MAAM,WAAW,GAAG,GAAG,CAAC,kBAAkB,CAAC;IAE3C,gBAAgB;IAChB,MAAM,WAAW,GAAG,GAAgB,EAAE,CAAC,IAAI,GAAG,CAC5C,OAAO,QAAQ,CAAC,kBAAkB,KAAK,UAAU;QAC/C,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE;QAC/B,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CACpF,CAAC;IAEF;;;;;;wBAMoB;IACpB,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAE,EAAE,CACnC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAE7E;4CACwC;IACxC,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAE,IAA4D,EAAE,EAAE,CACjG,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAEnG,4DAA4D;IAC5D,KAAK,UAAU,oBAAoB,CAAC,GAAa;QAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,QAAQ,GACZ,QAAQ,KAAK,SAAS;YACtB,OAAO,QAAQ,CAAC,gBAAgB,KAAK,UAAU;YAC/C,OAAO,QAAQ,CAAC,YAAY,KAAK,UAAU;YAC3C,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU,CAAC;QAC1C,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC,CAAC,wBAAwB;QAClD,IAAI,UAAU,GAAa,EAAE,CAAC;QAC9B,MAAM,QAAQ,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACvD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC;QAClG,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,2CAA2C;IAC3C,KAAK,UAAU,QAAQ,CAAC,MAAW;QACjC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3G,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,KAAK,UAAU,MAAM,CAAC,SAAiB,EAAE,MAAW;QAClD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAC5D,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,OAAO;YACL,SAAS;YACT,KAAK;YACL,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS;YAC1D,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;SACxB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,sCAAsC;QACtC,KAAK,CAAC,IAAI;YACR,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,EAAE,CAAC,CAAC;YACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAc,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAkB,CAAC,CAAC,CAAC;YACjG,MAAM,IAAI,GAA8C,EAAE,CAAC;YAC3D,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACnC,IAAI,MAAM,KAAK,SAAS;oBAAE,SAAS,CAAC,iBAAiB;gBACrD,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YACnC,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YACvI,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;QAED,gCAAgC;QAChC,KAAK,CAAC,MAAM,CAAC,SAAiB;YAC5B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAClE,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB;oBAAE,SAAS;gBAClF,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBAC9D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAChC,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;oBAC1D,IAAI;oBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB,CAAC,CAAC;gBACH,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,iBAAiB;oBAAE,MAAM;YACtD,CAAC;YACD,OAAO;gBACL,SAAS;gBACT,MAAM,EAAE;oBACN,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI;oBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;oBACzC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;iBACtC;gBACD,KAAK;gBACL,YAAY,EAAE,QAAQ,CAAC,MAAM;gBAC7B,QAAQ;gBACR,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;aACxB,CAAC;QACJ,CAAC;QAED;;;;;;;WAOG;QACH,KAAK,CAAC,cAAc,CAAC,UAAoB;YACvC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACpE,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;gBAC/B,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC3C,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC1C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,oCAAoC;oBACpC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxB,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxB,SAAS;gBACX,CAAC;gBACD,IAAI,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC3C,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC/D,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC1B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAG,KAAe,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;QACpD,CAAC;QAED;;;;WAIG;QACH,KAAK,CAAC,SAAS,CAAC,UAAoB;YAClC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;gBAC7D,IAAI,MAAM,KAAK,SAAS;oBAAE,SAAS,CAAC,eAAe;gBACnD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,IAAI,KAAK,IAAI;oBAAE,SAAS,CAAQ,cAAc;gBAClD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;YACxD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,MAAY;IAC9C,MAAM,WAAW,GAAG,MAAM,IAAI,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,iBAAiB,CAAC;QAC9B,IAAI;QACJ,QAAQ,EAAE,cAAc;QACxB,WAAW;QACX,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACnB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;QACxF,CAAC;KACF,CAAC,CAAC;IACH,sCAAsC;IACtC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAEvD,IAAI,qBAAqB,KAAK,IAAI,EAAE,CAAC;QACnC,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"typert.host.d.ts","sourceRoot":"","sources":["../src/typert.host.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AAEH,QAAA,MAAM,WAAW,qBAAmB,CAAC;AAOrC,eAAO,MAAM,MAAM;;;;;;;;;;YAoBC,IAAI;;;;;;;;;;oBAvBZ,IAAI;oBAAQ,KAAK;;;;;;;;;;;;;YAiCL,IAAI;YAA4C,IAAI;YAAK,MAAM;;;;QAqC5E,QAAQ;QAAM,MAAM;QAAM,OAAO;;CAC3C,CAAC"}
1
+ {"version":3,"file":"typert.host.d.ts","sourceRoot":"","sources":["../src/typert.host.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AAEH,QAAA,MAAM,WAAW,qBAAmB,CAAC;AAOrC,eAAO,MAAM,MAAM;;;;;;;;;;YA8BC,IAAI;;;;;;;;;;oBAjCZ,IAAI;oBAAQ,KAAK;;;;;;;;;;;;;YA2CL,IAAI;YAA4C,IAAI;YAAK,MAAM;;;;QAqC5E,QAAQ;QAAM,MAAM;QAAM,OAAO;;CAC3C,CAAC"}
@@ -34,6 +34,16 @@ export const TYPERT = {
34
34
  result: codec('@chaoset/session-archive/types#ArchiveListResult'),
35
35
  sourceLocation: { file: 'packages/session-archive/src/remote.ts', line: 1, column: 1 },
36
36
  },
37
+ {
38
+ id: '@chaoset/session-archive#sessionArchive/count',
39
+ service: 'sessionArchive',
40
+ namespace: 'sessionArchive',
41
+ method: 'count',
42
+ invocation: { kind: 'direct' },
43
+ parameters: [],
44
+ result: codec('@chaoset/session-archive/types#ArchiveCountResult'),
45
+ sourceLocation: { file: 'packages/session-archive/src/remote.ts', line: 1, column: 1 },
46
+ },
37
47
  {
38
48
  id: '@chaoset/session-archive#sessionArchive/detail',
39
49
  service: 'sessionArchive',
@@ -1 +1 @@
1
- {"version":3,"file":"typert.host.js","sourceRoot":"","sources":["../src/typert.host.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;AACrC,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC7B,IAAI,EAAE,QAAQ;IACd,UAAU;IACV,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO,EAAE,0BAA0B;IACnC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,EAAE;IACX,WAAW,EAAE;QACX;YACE,EAAE,EAAE,8CAA8C;YAClD,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE,gBAAgB;YAC3B,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,KAAK,CAAC,kDAAkD,CAAC;YACjE,cAAc,EAAE,EAAE,IAAI,EAAE,wCAAwC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;SACvF;QACD;YACE,EAAE,EAAE,gDAAgD;YACpD,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE,gBAAgB;YAC3B,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,KAAK,CAAC,0CAA0C,CAAC;iBACzD;aACF;YACD,MAAM,EAAE,KAAK,CAAC,oDAAoD,CAAC;YACnE,cAAc,EAAE,EAAE,IAAI,EAAE,wCAAwC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;SACvF;QACD;YACE,EAAE,EAAE,gDAAgD;YACpD,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE,gBAAgB;YAC3B,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,KAAK,CAAC,+CAA+C,CAAC;iBAC9D;aACF;YACD,MAAM,EAAE,KAAK,CAAC,6CAA6C,CAAC;YAC5D,cAAc,EAAE,EAAE,IAAI,EAAE,wCAAwC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;SACvF;QACD;YACE,EAAE,EAAE,mDAAmD;YACvD,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE,gBAAgB;YAC3B,MAAM,EAAE,WAAW;YACnB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,KAAK,CAAC,+CAA+C,CAAC;iBAC9D;aACF;YACD,MAAM,EAAE,KAAK,CAAC,gDAAgD,CAAC;YAC/D,cAAc,EAAE,EAAE,IAAI,EAAE,wCAAwC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;SACvF;KACF;IACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;CACjD,CAAC"}
1
+ {"version":3,"file":"typert.host.js","sourceRoot":"","sources":["../src/typert.host.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chaoset/session-archive",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "DSH plugin: browse archived sessions, inspect their content, batch-restore or permanently delete them with multi-select",
5
5
  "type": "module",
6
6
  "license": "MIT",