@burdenoff/fe-libs 2026.930.5 → 2026.1001.1

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 (41) hide show
  1. package/dist/shared/assistant/conversation.d.ts +5 -1
  2. package/dist/shared/assistant/conversation.d.ts.map +1 -1
  3. package/dist/shared/assistant/history/historyApi.d.ts +25 -9
  4. package/dist/shared/assistant/history/historyApi.d.ts.map +1 -1
  5. package/dist/shared/assistant/history/historyApi.js +220 -75
  6. package/dist/shared/assistant/history/historyControls.d.ts +86 -0
  7. package/dist/shared/assistant/history/historyControls.d.ts.map +1 -0
  8. package/dist/shared/assistant/history/historyControls.js +80 -0
  9. package/dist/shared/assistant/history/historyEngine.d.ts +23 -3
  10. package/dist/shared/assistant/history/historyEngine.d.ts.map +1 -1
  11. package/dist/shared/assistant/history/historyEngine.js +578 -369
  12. package/dist/shared/assistant/history/historyErrors.d.ts +25 -5
  13. package/dist/shared/assistant/history/historyErrors.d.ts.map +1 -1
  14. package/dist/shared/assistant/history/historyErrors.js +39 -30
  15. package/dist/shared/assistant/history/historyList.d.ts +33 -7
  16. package/dist/shared/assistant/history/historyList.d.ts.map +1 -1
  17. package/dist/shared/assistant/history/historyList.js +72 -51
  18. package/dist/shared/assistant/history/historyOperations.d.ts +36 -7
  19. package/dist/shared/assistant/history/historyOperations.d.ts.map +1 -1
  20. package/dist/shared/assistant/history/historyOperations.js +100 -25
  21. package/dist/shared/assistant/history/historyStatus.d.ts +27 -1
  22. package/dist/shared/assistant/history/historyStatus.d.ts.map +1 -1
  23. package/dist/shared/assistant/history/historyStatus.js +6 -2
  24. package/dist/shared/assistant/history/historyStore.d.ts +29 -7
  25. package/dist/shared/assistant/history/historyStore.d.ts.map +1 -1
  26. package/dist/shared/assistant/history/historyStore.js +172 -103
  27. package/dist/shared/assistant/history/historyTransportErrors.d.ts +28 -0
  28. package/dist/shared/assistant/history/historyTransportErrors.d.ts.map +1 -0
  29. package/dist/shared/assistant/history/historyTransportErrors.js +16 -0
  30. package/dist/shared/assistant/history/historyTypes.d.ts +80 -1
  31. package/dist/shared/assistant/history/historyTypes.d.ts.map +1 -1
  32. package/dist/shared/assistant/history/stampRegistry.d.ts +19 -1
  33. package/dist/shared/assistant/history/stampRegistry.d.ts.map +1 -1
  34. package/dist/shared/assistant/history/stampRegistry.js +13 -1
  35. package/dist/shared/assistant/index.d.ts +2 -0
  36. package/dist/shared/assistant/index.d.ts.map +1 -1
  37. package/dist/shared/assistant/store.d.ts +8 -0
  38. package/dist/shared/assistant/store.d.ts.map +1 -1
  39. package/dist/shared/assistant/store.js +50 -46
  40. package/dist/shared-assistant.js +164 -162
  41. package/package.json +1 -1
@@ -0,0 +1,80 @@
1
+ //#region src/shared/assistant/history/historyControls.ts
2
+ var e = 50, t = 80, n = /[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g, r = "\0", i = "�";
3
+ function a(e, t) {
4
+ let n = Array.from(e);
5
+ return n.length <= t ? e : n.slice(0, t).join("");
6
+ }
7
+ function o(e) {
8
+ return Array.from(e).length;
9
+ }
10
+ function s(e) {
11
+ return a(e.replaceAll(r, i).replace(n, i).replace(/\s+/g, " ").trim(), 80).trim();
12
+ }
13
+ function c(e, t) {
14
+ let n = {
15
+ ...e,
16
+ ...t
17
+ };
18
+ return t.archived === !0 && t.pinned === void 0 && delete n.pinned, t.pinned === !0 && t.archived === void 0 && delete n.archived, n;
19
+ }
20
+ function l(e) {
21
+ return !([
22
+ e.title,
23
+ e.pinned,
24
+ e.archived
25
+ ].filter((e) => e !== void 0).length === 0 || e.pinned === !0 && e.archived === !0 || e.title !== void 0 && (e.title.length === 0 || e.title !== s(e.title)));
26
+ }
27
+ function u(e) {
28
+ let t = !1, n = !1;
29
+ for (let r of e.messages) if (r.role === "user" && (r.metadata?.voice === !0 ? n = !0 : t = !0, t && n)) return "MIXED";
30
+ return n ? "VOICE" : t ? "CHAT" : null;
31
+ }
32
+ function d(e) {
33
+ return {
34
+ typed: e === "CHAT" || e === "MIXED",
35
+ spoken: e === "VOICE" || e === "MIXED"
36
+ };
37
+ }
38
+ function f(e, t) {
39
+ let n = {};
40
+ if (t === null) return n;
41
+ for (let r of e) r.type !== "update" || r.scopeKey !== t || (n[r.convKey] ??= []).push({
42
+ patch: r.patch,
43
+ at: r.at
44
+ });
45
+ return n;
46
+ }
47
+ function p(e, t, n = []) {
48
+ let r = t?.pinnedAt ?? null, i = t?.archivedAt ?? null, a = null;
49
+ for (let { patch: e, at: t } of n) {
50
+ let n = new Date(t).toISOString();
51
+ e.title !== void 0 && (a = e.title), e.archived === !0 ? (i ??= n, r = null) : e.archived === !1 && (i = null), e.pinned === !0 ? (r ??= n, i = null) : e.pinned === !1 && (r = null);
52
+ }
53
+ let o = d(t?.channel), s = d(e ? u(e) : null), c = o.typed || s.typed, l = o.spoken || s.spoken;
54
+ return {
55
+ pendingTitle: a,
56
+ pinnedAt: r,
57
+ archivedAt: i,
58
+ channel: c && l ? "MIXED" : l ? "VOICE" : c ? "CHAT" : null,
59
+ known: t !== null && t.pinnedAt !== void 0 || n.length > 0,
60
+ pending: n.length > 0
61
+ };
62
+ }
63
+ var m = {
64
+ channel: "ANY",
65
+ pinned: null,
66
+ archived: "EXCLUDE"
67
+ };
68
+ function h(e, t = m) {
69
+ let n = t.archived ?? "EXCLUDE";
70
+ if (n === "EXCLUDE" && e.archivedAt !== null || n === "ONLY" && e.archivedAt === null || t.pinned === !0 && e.pinnedAt === null || t.pinned === !1 && e.pinnedAt !== null) return !1;
71
+ let r = d(e.channel), i = t.channel ?? "ANY";
72
+ return !(i === "CHAT" && !r.typed || i === "VOICE" && !r.spoken);
73
+ }
74
+ function g(e) {
75
+ if (!e) return "";
76
+ let t = e.pinned === !0 ? "pinned" : e.pinned === !1 ? "unpinned" : "any";
77
+ return `${e.channel ?? "ANY"}|${t}|${e.archived ?? "EXCLUDE"}`;
78
+ }
79
+ //#endregion
80
+ export { m as DEFAULT_HISTORY_LIST_FILTER, t as HISTORY_TITLE_MAX_CODE_POINTS, e as MAX_PINNED, a as clampToCodePoints, c as coalesceUpdatePatch, o as codePointLength, g as historyFilterKey, l as isValidUpdatePatch, u as localChannelOf, h as matchesHistoryFilter, s as normaliseHistoryTitle, f as pendingUpdatesByConversation, p as resolveRowControls };
@@ -3,7 +3,7 @@ import { useAssistantStore } from '../store';
3
3
  import { AssistantHistoryTransport } from './historyApi';
4
4
  import { AssistantHistoryStatusStore } from './historyStatus';
5
5
  import { AssistantHistoryStoreHandle } from './historyStore';
6
- import { AssistantHistoryConvKey, AssistantHistoryEntryKind, AssistantHistoryScope } from './historyTypes';
6
+ import { AssistantHistoryConvKey, AssistantHistoryConversationFilter, AssistantHistoryEntryKind, AssistantHistoryScope, AssistantHistoryUpdatePatch } from './historyTypes';
7
7
  /** Time, injectable so the engine's backoff and pruning are testable without real timers. */
8
8
  export interface AssistantHistoryClock {
9
9
  now(): number;
@@ -59,11 +59,31 @@ export interface AssistantHistoryEngine {
59
59
  recordCommittedEntries(conversationId: string, messageIds: readonly string[], kind: AssistantHistoryEntryKind, turnWorkspaceId: string): void;
60
60
  /** The UI's delete while history is on: tombstone, drop unsent saves, queue the delete, remove locally. */
61
61
  deleteConversation(convKey: AssistantHistoryConvKey): void;
62
+ /**
63
+ * A control change (BOFF-8159) — rename, pin, archive — for a conversation
64
+ * the server can address: shown at once (the list reads the queue first; a
65
+ * held conversation's title changes here too) and queued for the server.
66
+ * False, and nothing changes, when it cannot be synced: history off, a
67
+ * device-only conversation, another workspace's, a deleted one, one the
68
+ * server cannot know yet (nothing saved or queued to save), or a patch the
69
+ * server would refuse (empty; pin and archive together; an empty title).
70
+ */
71
+ updateConversation(convKey: AssistantHistoryConvKey, patch: AssistantHistoryUpdatePatch): boolean;
62
72
  /** Materialise a server conversation locally (if needed), open it, and load its messages. */
63
73
  openConversation(convKey: AssistantHistoryConvKey, options?: AssistantHistoryOpenOptions): void;
64
74
  loadEarlier(convKey: AssistantHistoryConvKey): void;
65
- loadOlderHeaders(): void;
66
- /** The history list was opened: retry quota-parked saves now, and pull. */
75
+ /**
76
+ * "Show older conversations": page the server's live list past the cached
77
+ * headers — with `filter` (the list's current one) when the server has the
78
+ * controls, unfiltered otherwise.
79
+ */
80
+ loadOlderHeaders(filter?: AssistantHistoryConversationFilter): void;
81
+ /**
82
+ * The history list was opened: retry quota-parked saves now, try the
83
+ * controls again if the server lacked them, pull, and fetch the pinned
84
+ * conversations (so the pinned rows are right even when this device's
85
+ * headers were evicted by another build's tab).
86
+ */
67
87
  notePanelOpened(): void;
68
88
  pull(reason: string): void;
69
89
  drain(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"historyEngine.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/history/historyEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"historyEngine.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/history/historyEngine.ts"],"names":[],"mappings":"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"}