@burdenoff/fe-libs 2026.1001.1 → 2026.1001.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.
Files changed (54) hide show
  1. package/dist/connections/api.d.ts.map +1 -1
  2. package/dist/connections/api.js +4 -3
  3. package/dist/connections/oauthPopup.d.ts.map +1 -1
  4. package/dist/connections/oauthPopup.js +8 -9
  5. package/dist/shared/assistant/conversationDeleteCommand.d.ts +31 -0
  6. package/dist/shared/assistant/conversationDeleteCommand.d.ts.map +1 -0
  7. package/dist/shared/assistant/conversationDeleteCommand.js +14 -0
  8. package/dist/shared/assistant/history/historyControls.d.ts +9 -0
  9. package/dist/shared/assistant/history/historyControls.d.ts.map +1 -1
  10. package/dist/shared/assistant/history/historyControls.js +7 -1
  11. package/dist/shared/assistant/history/historyList.d.ts +10 -0
  12. package/dist/shared/assistant/history/historyList.d.ts.map +1 -1
  13. package/dist/shared/assistant/history/historyList.js +33 -28
  14. package/dist/shared/assistant/history/useHistoryRowControls.d.ts +13 -0
  15. package/dist/shared/assistant/history/useHistoryRowControls.d.ts.map +1 -0
  16. package/dist/shared/assistant/history/useHistoryRowControls.js +24 -0
  17. package/dist/shared/assistant/i18nManifest.d.ts +36 -0
  18. package/dist/shared/assistant/i18nManifest.d.ts.map +1 -1
  19. package/dist/shared/assistant/i18nManifest.js +36 -0
  20. package/dist/shared/assistant/index.d.ts +6 -0
  21. package/dist/shared/assistant/index.d.ts.map +1 -1
  22. package/dist/shared/assistant/localUiCommands.d.ts +8 -0
  23. package/dist/shared/assistant/localUiCommands.d.ts.map +1 -1
  24. package/dist/shared/assistant/localUiCommands.js +20 -19
  25. package/dist/shared/assistant/ui/AIAssistantPanel.d.ts.map +1 -1
  26. package/dist/shared/assistant/ui/AIAssistantPanel.js +67 -66
  27. package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
  28. package/dist/shared/assistant/ui/AssistantChatArea.js +854 -809
  29. package/dist/shared/assistant/ui/AssistantConversationFilters.d.ts +12 -0
  30. package/dist/shared/assistant/ui/AssistantConversationFilters.d.ts.map +1 -0
  31. package/dist/shared/assistant/ui/AssistantConversationFilters.js +92 -0
  32. package/dist/shared/assistant/ui/AssistantConversationList.d.ts +9 -0
  33. package/dist/shared/assistant/ui/AssistantConversationList.d.ts.map +1 -1
  34. package/dist/shared/assistant/ui/AssistantConversationList.js +314 -214
  35. package/dist/shared/assistant/ui/AssistantDeleteConversationDialog.d.ts +59 -0
  36. package/dist/shared/assistant/ui/AssistantDeleteConversationDialog.d.ts.map +1 -0
  37. package/dist/shared/assistant/ui/AssistantDeleteConversationDialog.js +84 -0
  38. package/dist/shared/assistant/ui/AssistantHistoryNotices.d.ts +18 -0
  39. package/dist/shared/assistant/ui/AssistantHistoryNotices.d.ts.map +1 -1
  40. package/dist/shared/assistant/ui/AssistantHistoryNotices.js +76 -29
  41. package/dist/shared/assistant/ui/conversationDelete.d.ts +18 -0
  42. package/dist/shared/assistant/ui/conversationDelete.d.ts.map +1 -0
  43. package/dist/shared/assistant/ui/conversationDelete.js +16 -0
  44. package/dist/shared/assistant/ui/conversationDeleteDialog.d.ts +32 -0
  45. package/dist/shared/assistant/ui/conversationDeleteDialog.d.ts.map +1 -0
  46. package/dist/shared/assistant/ui/conversationDeleteDialog.js +54 -0
  47. package/dist/shared/assistant/ui/useVoiceSession.d.ts +5 -0
  48. package/dist/shared/assistant/ui/useVoiceSession.d.ts.map +1 -1
  49. package/dist/shared/assistant/ui/useVoiceSession.js +129 -121
  50. package/dist/shared/assistant/voice/voiceSession.d.ts +10 -0
  51. package/dist/shared/assistant/voice/voiceSession.d.ts.map +1 -1
  52. package/dist/shared/assistant/voice/voiceSession.js +6 -0
  53. package/dist/shared-assistant.js +170 -164
  54. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/connections/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/connections/api.ts"],"names":[],"mappings":"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"}
@@ -174,10 +174,11 @@ function E(e) {
174
174
  return e.data ?? null;
175
175
  }
176
176
  function D(e, t = {}) {
177
- let n = async (t, n) => E(await e.query({
177
+ let n = async (t, n, r = {}) => E(await e.query({
178
178
  query: t,
179
179
  variables: n,
180
- fetchPolicy: "network-only"
180
+ fetchPolicy: "network-only",
181
+ ...r.fresh ? { context: { queryDeduplication: !1 } } : {}
181
182
  })), s = async (t, n) => E(await e.mutate({
182
183
  mutation: t,
183
184
  variables: n
@@ -212,7 +213,7 @@ function D(e, t = {}) {
212
213
  return T((await s(d, { input: e }))?.authenticateWithServiceAccount);
213
214
  },
214
215
  async getConnection(e) {
215
- return T((await n(f, { id: e }))?.getConnection);
216
+ return T((await n(f, { id: e }, { fresh: !0 }))?.getConnection);
216
217
  },
217
218
  async listVaults() {
218
219
  return ((await n(p, {
@@ -1 +1 @@
1
- {"version":3,"file":"oauthPopup.d.ts","sourceRoot":"","sources":["../../src/connections/oauthPopup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,oCAAoC;AACpC,UAAU,oBAAoB;IAC5B,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gDAAgD;AAChD,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,KAAK,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,qBAAqB,CAAC,CAAC;AAE5E,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,qBAAqB;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC;IACxC,mDAAmD;IACnD,eAAe,EAAE,MAAM,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACrD,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,IAAI,CAAC;IACnC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,mEAAmE;IACnE,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC;AAQD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAQpF;AAYD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,qBAAqB,EAAE,EACtE,YAAY,EACZ,KAAK,EACL,eAAe,EACf,SAAS,EACT,OAAO,EACP,SAAS,EACT,cAAqB,EACrB,SAAmB,EACnB,WAA2D,GAC5D,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAgGrC"}
1
+ {"version":3,"file":"oauthPopup.d.ts","sourceRoot":"","sources":["../../src/connections/oauthPopup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,oCAAoC;AACpC,UAAU,oBAAoB;IAC5B,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gDAAgD;AAChD,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,KAAK,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,qBAAqB,CAAC,CAAC;AAE5E,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,qBAAqB;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC;IACxC,mDAAmD;IACnD,eAAe,EAAE,MAAM,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACrD,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,IAAI,CAAC;IACnC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,mEAAmE;IACnE,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC;AAQD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAQpF;AAYD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,qBAAqB,EAAE,EACtE,YAAY,EACZ,KAAK,EACL,eAAe,EACf,SAAS,EACT,OAAO,EACP,SAAS,EACT,cAAqB,EACrB,SAAmB,EACnB,WAA2D,GAC5D,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAsGrC"}
@@ -29,20 +29,19 @@ function i({ connectionId: t, popup: i, fetchConnection: a, onSuccess: o, onErro
29
29
  }
30
30
  }, v = (e) => {
31
31
  e ? e.status === "ACTIVE" ? o(e) : s(e.errorMessage || "OAuth authorization failed") : s("Connection not found. It may have been deleted.");
32
- }, y = async (e) => {
33
- if (f || e.connectionId && e.connectionId !== t) return;
34
- if (!e.success) {
35
- _(() => s(e.error || "OAuth authorization failed"));
32
+ }, y = async (n) => {
33
+ if (f || n.connectionId && n.connectionId !== t) return;
34
+ if (!n.success) {
35
+ _(() => s(n.error || "OAuth authorization failed"));
36
36
  return;
37
37
  }
38
- let n;
38
+ let r;
39
39
  try {
40
- n = await a();
41
- } catch (e) {
42
- _(() => s(e instanceof Error ? e.message : "OAuth authorization failed"));
40
+ r = await a();
41
+ } catch {
43
42
  return;
44
43
  }
45
- _(() => v(n));
44
+ r && (!r.status || r.status === e) || _(() => v(r));
46
45
  };
47
46
  function b(e) {
48
47
  let t = e.data;
@@ -0,0 +1,31 @@
1
+ import { Conversation } from './conversation';
2
+ import { VoiceSessionBinding } from './voice/voiceReopen';
3
+ /** What the Delete confirmation is opened for. */
4
+ export interface ConversationDeleteTarget {
5
+ conversationId: string;
6
+ /** Its title as held here; empty when it has none (the dialog names it). */
7
+ title: string;
8
+ /**
9
+ * Kept in server history: deleted on every device now, erased after 30
10
+ * days. False: this device's alone (history off, or never stamped).
11
+ */
12
+ synced: boolean;
13
+ }
14
+ /**
15
+ * The conversation the command names, or null when there is none to delete:
16
+ *
17
+ * - typed: the open conversation;
18
+ * - spoken: the live session's conversation (its binding), or — before the
19
+ * session has spoken into one — the conversation on screen;
20
+ * - an empty draft is not a conversation to delete: nothing in it, nothing
21
+ * saved, and deleting it would only leave a tombstone behind.
22
+ */
23
+ export declare function resolveConversationDeleteTarget(input: {
24
+ spoken: boolean;
25
+ bound: VoiceSessionBinding;
26
+ activeConversationId: string | null;
27
+ conversations: readonly Conversation[];
28
+ /** Server history is on for this panel. */
29
+ historyOn: boolean;
30
+ }): ConversationDeleteTarget | null;
31
+ //# sourceMappingURL=conversationDeleteCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversationDeleteCommand.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/conversationDeleteCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC,2CAA2C;IAC3C,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,wBAAwB,GAAG,IAAI,CAalC"}
@@ -0,0 +1,14 @@
1
+ import { conversationHasHistory as e } from "./history/historyList.js";
2
+ //#region src/shared/assistant/conversationDeleteCommand.ts
3
+ function t(t) {
4
+ let n = t.spoken && typeof t.bound == "string" ? t.bound : t.activeConversationId;
5
+ if (n === null) return null;
6
+ let r = t.conversations.find((e) => e.id === n);
7
+ return !r || !e(r) ? null : {
8
+ conversationId: r.id,
9
+ title: r.title,
10
+ synced: t.historyOn && r.sync !== void 0
11
+ };
12
+ }
13
+ //#endregion
14
+ export { t as resolveConversationDeleteTarget };
@@ -83,4 +83,13 @@ export declare function matchesHistoryFilter(row: Pick<AssistantHistoryRowContro
83
83
  * paged per filter, and its `hasMore` answers for one key only.
84
84
  */
85
85
  export declare function historyFilterKey(filter: Readonly<AssistantHistoryConversationFilter> | undefined): string;
86
+ /** The list's filter is the default one: every conversation that is not archived. */
87
+ export declare function isDefaultHistoryFilter(filter: Readonly<AssistantHistoryConversationFilter>): boolean;
88
+ /**
89
+ * What an empty list says under a filter (BOFF-8159): the most specific of
90
+ * them — Archived, then Pinned, then the channel. Null for the default
91
+ * filter, whose empty list is "No conversations yet".
92
+ */
93
+ export type HistoryFilterEmptyKind = "archived" | "pinned" | "voice" | "chat";
94
+ export declare function historyFilterEmptyKind(filter: Readonly<AssistantHistoryConversationFilter>): HistoryFilterEmptyKind | null;
86
95
  //# sourceMappingURL=historyControls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"historyControls.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/history/historyControls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,kCAAkC,EAClC,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAExB;;;;;GAKG;AACH,eAAO,MAAM,UAAU,KAAK,CAAC;AAE7B,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAOhD,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGnE;AAED,yCAAyC;AACzC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,2BAA2B,EAClC,KAAK,EAAE,2BAA2B,GACjC,2BAA2B,CAK7B;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAQ9E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,uBAAuB,GAAG,IAAI,CAa3G;AASD,oDAAoD;AACpD,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,2BAA2B,CAAC;IACnC,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,0BAA0B,EAAE,EAC7C,QAAQ,EAAE,wBAAwB,GAAG,IAAI,GACxC,MAAM,CAAC,uBAAuB,EAAE,6BAA6B,EAAE,CAAC,CAQlE;AAED,2CAA2C;AAC3C,MAAM,WAAW,2BAA2B;IAC1C,iFAAiF;IACjF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxC,iGAAiG;IACjG,KAAK,EAAE,OAAO,CAAC;IACf,uDAAuD;IACvD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,IAAI,EACnD,MAAM,EAAE,sBAAsB,GAAG,IAAI,EACrC,OAAO,GAAE,SAAS,6BAA6B,EAAO,GACrD,2BAA2B,CAkC7B;AAED,mEAAmE;AACnE,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,kCAAkC,CAIpF,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,IAAI,CAAC,2BAA2B,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC,EAC7E,MAAM,GAAE,QAAQ,CAAC,kCAAkC,CAA+B,GACjF,OAAO,CAWT;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,kCAAkC,CAAC,GAAG,SAAS,GAAG,MAAM,CAIzG"}
1
+ {"version":3,"file":"historyControls.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/history/historyControls.ts"],"names":[],"mappings":"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"}
@@ -76,5 +76,11 @@ function g(e) {
76
76
  let t = e.pinned === !0 ? "pinned" : e.pinned === !1 ? "unpinned" : "any";
77
77
  return `${e.channel ?? "ANY"}|${t}|${e.archived ?? "EXCLUDE"}`;
78
78
  }
79
+ function _(e) {
80
+ return (e.channel ?? "ANY") === "ANY" && (e.pinned ?? null) === null && (e.archived ?? "EXCLUDE") === "EXCLUDE";
81
+ }
82
+ function v(e) {
83
+ return e.archived === "ONLY" ? "archived" : e.pinned === !0 ? "pinned" : e.channel === "VOICE" ? "voice" : e.channel === "CHAT" ? "chat" : null;
84
+ }
79
85
  //#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 };
86
+ 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, v as historyFilterEmptyKind, g as historyFilterKey, _ as isDefaultHistoryFilter, l as isValidUpdatePatch, u as localChannelOf, h as matchesHistoryFilter, s as normaliseHistoryTitle, f as pendingUpdatesByConversation, p as resolveRowControls };
@@ -114,6 +114,16 @@ export interface AssistantHistoryList {
114
114
  * only Rename and Delete), and the filter's channel reads its own messages.
115
115
  */
116
116
  export declare function selectAssistantHistoryList(input: AssistantHistoryListInput, filter?: Readonly<AssistantHistoryConversationFilter>): AssistantHistoryList;
117
+ /**
118
+ * May the list offer Pin, Archive and a synced Rename on this row of "This
119
+ * workspace" (BOFF-8159)? Only where the server can address it — the rule
120
+ * the engine's `updateConversation` applies, so an offered control never
121
+ * does nothing: a pre-v2 row by its server id; any other once the server has
122
+ * it (a header, a server id) or a save of it is queued. A conversation made
123
+ * here with nothing saved or queued to save (an empty draft) keeps only
124
+ * Rename (this device's) and Delete.
125
+ */
126
+ export declare function historyRowAcceptsControls(row: Pick<AssistantHistoryListRow, "key" | "legacy" | "header" | "conversation">, outbox: readonly AssistantHistoryOutboxItem[], scopeKey: AssistantHistoryScopeKey | null): boolean;
117
127
  /** Server-backed conversations kept on this device at most (the least recently opened go first). */
118
128
  export declare const ASSISTANT_HISTORY_MAX_CACHED_CONVERSATIONS = 25;
119
129
  export interface HistoryEvictionInput {
@@ -1 +1 @@
1
- {"version":3,"file":"historyList.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/history/historyList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"historyList.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/history/historyList.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EAEZ,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQ9C,OAAO,EAIL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,kCAAkC,EACvC,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,kCAAkC,EACvC,KAAK,yBAAyB,EAC/B,MAAM,gBAAgB,CAAC;AAExB,mDAAmD;AACnD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,GAAG,wBAAwB,CAM5F;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,IAAI,CAAC,kCAAkC,EAAE,IAAI,GAAG,sBAAsB,CAAC,GACpF,uBAAuB,CAEzB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,kCAAkC,GAC/C,sBAAsB,CAcxB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAQ1E;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,SAAS,GACnD,OAAO,CAET;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,SAAS,EACpD,KAAK,EAAE,qBAAqB,GAAG,IAAI,GAClC,OAAO,CAQT;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,qBAAqB,GAAG,IAAI,GAClC,OAAO,CAST;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GACpC,aAAa,CAOf;AAED,MAAM,WAAW,yBAAyB;IACxC,oFAAoF;IACpF,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACtC,oDAAoD;IACpD,WAAW,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,uBAAuB,EAChC,MAAM,EAAE,sBAAsB,EAC9B,KAAK,EAAE,qBAAqB,EAC5B,OAAO,EAAE,yBAAyB,GACjC,YAAY,CAyBd;AAID,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,uBAAuB,CAAC;IAC7B,+FAA+F;IAC/F,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtC,wCAAwC;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,gDAAgD;IAChD,OAAO,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,sFAAsF;IACtF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gDAAgD;IAChD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gHAAgH;IAChH,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxC,4EAA4E;IAC5E,aAAa,EAAE,OAAO,CAAC;IACvB,6DAA6D;IAC7D,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC,oEAAoE;IACpE,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC1C,iDAAiD;IACjD,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,uBAAuB,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC3E,oEAAoE;IACpE,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,uBAAuB,EAAE,sBAAsB,CAAC,CAAC,CAAC;IACjF,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC,CAAC,CAAC;IACjF,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5C,mFAAmF;IACnF,MAAM,CAAC,EAAE,SAAS,0BAA0B,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,uBAAuB,EAAE,CAAC;IACrC,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,yBAAyB,EAChC,MAAM,GAAE,QAAQ,CAAC,kCAAkC,CAA+B,GACjF,oBAAoB,CA+DtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,IAAI,CAAC,uBAAuB,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,cAAc,CAAC,EAChF,MAAM,EAAE,SAAS,0BAA0B,EAAE,EAC7C,QAAQ,EAAE,wBAAwB,GAAG,IAAI,GACxC,OAAO,CAQT;AAcD,oGAAoG;AACpG,eAAO,MAAM,0CAA0C,KAAK,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,WAAW,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,OAAO,CAAC;CACtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,EAAE,CAkB5E"}
@@ -1,19 +1,19 @@
1
1
  import "../autoRouting.js";
2
2
  import { DEFAULT_HISTORY_LIST_FILTER as e, matchesHistoryFilter as t, pendingUpdatesByConversation as n, resolveRowControls as r } from "./historyControls.js";
3
3
  import { modeRequiresConfirmWrites as i } from "../api.js";
4
- import { assistantHistoryScopeKey as a, legacyHistoryConvKey as o } from "./historyTypes.js";
4
+ import { assistantHistoryScopeKey as a, isLegacyHistoryConvKey as o, legacyHistoryConvKey as s } from "./historyTypes.js";
5
5
  //#region src/shared/assistant/history/historyList.ts
6
- function s(e) {
6
+ function c(e) {
7
7
  return a({
8
8
  actorId: e.actorId,
9
9
  workspaceId: e.workspaceId,
10
10
  product: e.product
11
11
  });
12
12
  }
13
- function c(e) {
14
- return e.clientConversationId ?? o(e.id);
15
- }
16
13
  function l(e) {
14
+ return e.clientConversationId ?? s(e.id);
15
+ }
16
+ function u(e) {
17
17
  return {
18
18
  serverId: e.id,
19
19
  clientConversationId: e.clientConversationId,
@@ -28,26 +28,26 @@ function l(e) {
28
28
  ...e.channel === void 0 ? {} : { channel: e.channel }
29
29
  };
30
30
  }
31
- function u(e) {
31
+ function d(e) {
32
32
  return e.messages.length > 0 || !!e.backendSessionId || !!e.sync?.serverId || e.sync?.origin === "remote" || e.sync?.origin === "legacy";
33
33
  }
34
- function d(e) {
34
+ function f(e) {
35
35
  return e?.sync?.origin === "legacy";
36
36
  }
37
- function f(e, t) {
37
+ function p(e, t) {
38
38
  let n = e?.sync;
39
39
  return !n || !t ? !1 : n.product !== t.product || n.workspaceId !== t.workspaceId || n.actorId !== t.actorId;
40
40
  }
41
- function p(e, t) {
42
- if (u(e)) return !1;
41
+ function m(e, t) {
42
+ if (d(e)) return !1;
43
43
  let n = e.sync;
44
44
  return !t || !n ? !t && !n : n.product === t.product && n.workspaceId === t.workspaceId && n.actorId === t.actorId;
45
45
  }
46
- function m(e) {
46
+ function h(e) {
47
47
  return e.find((e) => e.id === "assistant" || !e.writeCapable && !e.requiresAdmin && !i(e.id))?.id ?? "assistant";
48
48
  }
49
- function h(e, t, n, r) {
50
- let i = m(r.modes), a = i === "assistant" && r.autoRouting ? "auto" : void 0;
49
+ function g(e, t, n, r) {
50
+ let i = h(r.modes), a = i === "assistant" && r.autoRouting ? "auto" : void 0;
51
51
  return {
52
52
  id: e,
53
53
  title: t.title ?? "",
@@ -70,21 +70,21 @@ function h(e, t, n, r) {
70
70
  }
71
71
  };
72
72
  }
73
- var g = (e, t) => e > t ? e : t, _ = [];
74
- function v(i, a = e) {
75
- let o = [], c = /* @__PURE__ */ new Map(), l = i.loadingIds ?? {}, u = n(i.outbox ?? [], i.scopeKey);
73
+ var _ = (e, t) => e > t ? e : t, v = [];
74
+ function y(i, a = e) {
75
+ let o = [], s = /* @__PURE__ */ new Map(), l = i.loadingIds ?? {}, u = n(i.outbox ?? [], i.scopeKey);
76
76
  for (let e of i.conversations) {
77
77
  let n = e.sync;
78
78
  if (!n) {
79
79
  t(r(e, null), a) && o.push(e);
80
80
  continue;
81
81
  }
82
- if (i.scopeKey === null || s(n) !== i.scopeKey || e.id in i.tombstones) continue;
83
- let d = i.headers[e.id] ?? i.olderHeaders?.[e.id] ?? null, f = r(e, d, u[e.id] ?? _);
84
- c.set(e.id, {
82
+ if (i.scopeKey === null || c(n) !== i.scopeKey || e.id in i.tombstones) continue;
83
+ let d = i.headers[e.id] ?? i.olderHeaders?.[e.id] ?? null, f = r(e, d, u[e.id] ?? v);
84
+ s.set(e.id, {
85
85
  key: e.id,
86
86
  title: f.pendingTitle ?? e.title,
87
- updatedAt: d ? g(e.updatedAt, d.updatedAt) : e.updatedAt,
87
+ updatedAt: d ? _(e.updatedAt, d.updatedAt) : e.updatedAt,
88
88
  conversation: e,
89
89
  header: d,
90
90
  legacy: n.origin === "legacy",
@@ -100,9 +100,9 @@ function v(i, a = e) {
100
100
  if (i.scopeKey !== null) {
101
101
  let e = [i.headers, i.olderHeaders ?? {}];
102
102
  for (let t of e) for (let [e, n] of Object.entries(t)) {
103
- if (c.has(e) || n.gone || e in i.tombstones) continue;
104
- let t = r(null, n, u[e] ?? _);
105
- c.set(e, {
103
+ if (s.has(e) || n.gone || e in i.tombstones) continue;
104
+ let t = r(null, n, u[e] ?? v);
105
+ s.set(e, {
106
106
  key: e,
107
107
  title: t.pendingTitle ?? n.title ?? "",
108
108
  updatedAt: n.updatedAt,
@@ -119,19 +119,24 @@ function v(i, a = e) {
119
119
  }
120
120
  }
121
121
  return {
122
- workspace: [...c.values()].filter((e) => t(e, a)).sort(y),
122
+ workspace: [...s.values()].filter((e) => t(e, a)).sort(x),
123
123
  device: o
124
124
  };
125
125
  }
126
- function y(e, t) {
126
+ function b(e, t, n) {
127
+ if (n === null) return !1;
128
+ let r = e.conversation?.sync?.serverId ?? e.header?.serverId;
129
+ return e.legacy ? !!r || o(e.key) : r || e.header !== null ? !0 : t.some((t) => t.type === "save" && t.convKey === e.key && t.scopeKey === n);
130
+ }
131
+ function x(e, t) {
127
132
  return e.pinnedAt === null == (t.pinnedAt === null) ? e.pinnedAt !== null && t.pinnedAt !== null && e.pinnedAt !== t.pinnedAt ? e.pinnedAt < t.pinnedAt ? 1 : -1 : e.updatedAt === t.updatedAt ? e.key < t.key ? -1 : Number(e.key > t.key) : e.updatedAt < t.updatedAt ? 1 : -1 : e.pinnedAt === null ? 1 : -1;
128
133
  }
129
- var b = 25;
130
- function x(e) {
134
+ var S = 25;
135
+ function C(e) {
131
136
  let t = e.conversations.filter((e) => !!e.sync?.serverId), n = t.length - e.max;
132
137
  if (n <= 0) return [];
133
138
  let r = (e) => e.sync?.openedAt ?? e.updatedAt;
134
139
  return t.filter((t) => t.id !== e.activeConversationId && !t.sync?.titleLocked && !t.sync?.blocked && !e.isProtected(t)).sort((e, t) => r(e) === r(t) ? e.id < t.id ? -1 : 1 : r(e) < r(t) ? -1 : 1).slice(0, n).map((e) => e.id);
135
140
  }
136
141
  //#endregion
137
- export { b as ASSISTANT_HISTORY_MAX_CACHED_CONVERSATIONS, u as conversationHasHistory, c as historyConvKeyOf, l as historyHeaderOf, s as historyScopeKeyOfStamp, f as isOtherScopeHistoryConversation, d as isReadOnlyHistoryConversation, p as isReusableHistoryDraft, h as materializeHistoryHeader, m as resolveHistoryReopenMode, v as selectAssistantHistoryList, x as selectHistoryEvictions };
142
+ export { S as ASSISTANT_HISTORY_MAX_CACHED_CONVERSATIONS, d as conversationHasHistory, l as historyConvKeyOf, u as historyHeaderOf, b as historyRowAcceptsControls, c as historyScopeKeyOfStamp, p as isOtherScopeHistoryConversation, f as isReadOnlyHistoryConversation, m as isReusableHistoryDraft, g as materializeHistoryHeader, h as resolveHistoryReopenMode, y as selectAssistantHistoryList, C as selectHistoryEvictions };
@@ -0,0 +1,13 @@
1
+ import { Conversation } from '../conversation';
2
+ import { AssistantHistoryRowControls } from './historyControls';
3
+ /**
4
+ * One held conversation's history controls (BOFF-8159) — its pin, archive and
5
+ * channel exactly as the list resolves them (`resolveRowControls`: the queued
6
+ * changes first, then the server's header, then this device), for the chat
7
+ * area's "Archived" notice.
8
+ *
9
+ * Null whenever the controls do not apply: history off, the server without
10
+ * them, a device-only conversation, or one stamped for another scope.
11
+ */
12
+ export declare function useHistoryRowControlsFor(conversation: Conversation | undefined): AssistantHistoryRowControls | null;
13
+ //# sourceMappingURL=useHistoryRowControls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHistoryRowControls.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/history/useHistoryRowControls.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAGL,KAAK,2BAA2B,EACjC,MAAM,mBAAmB,CAAC;AAK3B;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,YAAY,GAAG,SAAS,GACrC,2BAA2B,GAAG,IAAI,CAsBpC"}
@@ -0,0 +1,24 @@
1
+ import { pendingUpdatesByConversation as e, resolveRowControls as t } from "./historyControls.js";
2
+ import { historyScopeKeyOfStamp as n } from "./historyList.js";
3
+ import { useAssistantHistoryStatus as r } from "./historyStatus.js";
4
+ import { useAssistantHistoryStore as i } from "./historyStore.js";
5
+ import { useMemo as a } from "react";
6
+ //#region src/shared/assistant/history/useHistoryRowControls.ts
7
+ function o(o) {
8
+ let s = r((e) => e.product !== null && e.controlsAvailable), c = r((e) => e.scopeKey), l = r((e) => e.olderHeaders), u = o?.id, d = i((e) => c === null || u === void 0 ? void 0 : e.scopes[c]?.headers[u]), f = i((e) => e.outbox);
9
+ return a(() => {
10
+ let r = o?.sync;
11
+ if (!s || !o || !r || c === null || n(r) !== c) return null;
12
+ let i = l && l.scopeKey === c ? l.headers[o.id] : void 0, a = e(f, c)[o.id] ?? [];
13
+ return t(o, d ?? i ?? null, a);
14
+ }, [
15
+ s,
16
+ o,
17
+ c,
18
+ l,
19
+ d,
20
+ f
21
+ ]);
22
+ }
23
+ //#endregion
24
+ export { o as useHistoryRowControlsFor };
@@ -151,17 +151,50 @@ export declare const ASSISTANT_I18N_LITERAL_COPY: {
151
151
  readonly "composer.voiceStarting": "Starting the microphone — tap to cancel";
152
152
  readonly "composer.voiceStop": "Stop dictation";
153
153
  readonly "composer.writeAccessDenied": "Changes may not save — your role in this workspace does not currently allow edits. You can still plan and review an action.";
154
+ readonly "conversationFilters.all": "All";
155
+ readonly "conversationFilters.archived": "Archived";
156
+ readonly "conversationFilters.chat": "Chat";
157
+ readonly "conversationFilters.count": "{{count}} conversations";
158
+ readonly "conversationFilters.countOne": "1 conversation";
159
+ readonly "conversationFilters.legend": "Show";
160
+ readonly "conversationFilters.none": "No conversations match";
161
+ readonly "conversationFilters.pinned": "Pinned";
162
+ readonly "conversationFilters.voice": "Voice";
163
+ readonly "conversationList.badgeArchived": "Archived";
164
+ readonly "conversationList.badgeMixed": "Chat + voice";
165
+ readonly "conversationList.badgePinned": "Pinned";
166
+ readonly "conversationList.badgeVoice": "Voice";
167
+ readonly "conversationList.emptyArchived": "No archived conversations";
168
+ readonly "conversationList.emptyChat": "No chat conversations";
169
+ readonly "conversationList.emptyPinned": "No pinned conversations";
170
+ readonly "conversationList.emptyVoice": "No voice conversations";
171
+ readonly "conversationList.messageCount": "{{count}} messages";
172
+ readonly "conversationList.messageCountOne": "1 message";
173
+ readonly "conversationList.spokenCount": "{{count}} spoken";
174
+ readonly "conversationList.spokenCountOne": "1 spoken";
154
175
  readonly "conversationList.voiceOnly": "Spoken conversation";
176
+ readonly "conversations.archive": "Archive conversation";
155
177
  readonly "conversations.collapse": "Collapse history";
156
178
  readonly "conversations.collapseLabel": "Collapse";
157
179
  readonly "conversations.delete": "Delete conversation";
158
180
  readonly "conversations.empty": "No conversations yet";
159
181
  readonly "conversations.new": "New conversation";
182
+ readonly "conversations.pin": "Pin conversation";
160
183
  readonly "conversations.rename": "Rename conversation";
161
184
  readonly "conversations.renameLabel": "Conversation title";
162
185
  readonly "conversations.saveTitle": "Save title";
163
186
  readonly "conversations.startNew": "Start a new conversation";
164
187
  readonly "conversations.title": "History";
188
+ readonly "conversations.titleLimit": "Titles are up to {{limit}} characters";
189
+ readonly "conversations.unarchive": "Unarchive conversation";
190
+ readonly "conversations.unpin": "Unpin conversation";
191
+ readonly "deleteConversation.body": "“{{title}}” is removed from all your devices now and permanently erased after 30 days. To hide it without deleting, archive it instead.";
192
+ readonly "deleteConversation.bodyDevice": "“{{title}}” is deleted from this device. This can't be undone.";
193
+ readonly "deleteConversation.cancel": "Cancel";
194
+ readonly "deleteConversation.confirm": "Delete";
195
+ readonly "deleteConversation.nothing": "There is no conversation to delete.";
196
+ readonly "deleteConversation.opened": "Opened the delete confirmation. Choose Delete or Cancel on screen.";
197
+ readonly "deleteConversation.title": "Delete this conversation?";
165
198
  readonly "empty.subtitle": "You're viewing {{page}}. Ask about it, or pick a suggestion below.";
166
199
  readonly "empty.subtitleNoPage": "Ask me anything, or pick a suggestion below.";
167
200
  readonly "empty.title": "How can I help?";
@@ -180,6 +213,7 @@ export declare const ASSISTANT_I18N_LITERAL_COPY: {
180
213
  readonly "header.preview": "Preview";
181
214
  readonly "header.ready": "Ready";
182
215
  readonly "header.title": "AI Assistant";
216
+ readonly "history.archivedNotice": "Archived. It stays out of your list until you unarchive it.";
183
217
  readonly "history.badgeLoading": "Loading…";
184
218
  readonly "history.badgeNotSaved": "Not saved";
185
219
  readonly "history.badgeReadOnly": "Read-only";
@@ -194,9 +228,11 @@ export declare const ASSISTANT_I18N_LITERAL_COPY: {
194
228
  readonly "history.notSavedInvalid": "Part of this conversation couldn't be saved. It stays on this device.";
195
229
  readonly "history.notSavedQuota": "Not saved yet: this workspace has reached its conversation limit. It will be saved when there is room.";
196
230
  readonly "history.notSavedScope": "Some turns were sent from another workspace. They stay on this device.";
231
+ readonly "history.pinLimit": "You can pin up to {{limit}} conversations. Unpin one first.";
197
232
  readonly "history.showEarlier": "Show earlier messages";
198
233
  readonly "history.showOlder": "Show older conversations";
199
234
  readonly "history.tryAgain": "Try again";
235
+ readonly "history.unarchive": "Unarchive";
200
236
  readonly "history.untitled": "Untitled conversation";
201
237
  readonly "language.inputLabel": "Language";
202
238
  readonly "language.replyLabel": "Assistant replies in";
@@ -1 +1 @@
1
- {"version":3,"file":"i18nManifest.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/i18nManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAa1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmUG,CAAC;AAE5C,mDAAmD;AACnD,MAAM,MAAM,uBAAuB,GAAG,MAAM,OAAO,2BAA2B,CAAC;AAW/E;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgCtE,CAAC;AAEL;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIjE,CAAC;AAEL,kEAAkE;AAClE,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,mBAAmB,EACnB,IAAI,GAAG,OAAO,GAAG,mBAAmB,CACrC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,uBAAuB,EAAE,GACxC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC9C,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiCzB"}
1
+ {"version":3,"file":"i18nManifest.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/i18nManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAa1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4WG,CAAC;AAE5C,mDAAmD;AACnD,MAAM,MAAM,uBAAuB,GAAG,MAAM,OAAO,2BAA2B,CAAC;AAW/E;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgCtE,CAAC;AAEL;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIjE,CAAC;AAEL,kEAAkE;AAClE,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,mBAAmB,EACnB,IAAI,GAAG,OAAO,GAAG,mBAAmB,CACrC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,uBAAuB,EAAE,GACxC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC9C,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiCzB"}
@@ -49,17 +49,50 @@ var p = {
49
49
  "composer.voiceStarting": "Starting the microphone — tap to cancel",
50
50
  "composer.voiceStop": "Stop dictation",
51
51
  "composer.writeAccessDenied": "Changes may not save — your role in this workspace does not currently allow edits. You can still plan and review an action.",
52
+ "conversationFilters.all": "All",
53
+ "conversationFilters.archived": "Archived",
54
+ "conversationFilters.chat": "Chat",
55
+ "conversationFilters.count": "{{count}} conversations",
56
+ "conversationFilters.countOne": "1 conversation",
57
+ "conversationFilters.legend": "Show",
58
+ "conversationFilters.none": "No conversations match",
59
+ "conversationFilters.pinned": "Pinned",
60
+ "conversationFilters.voice": "Voice",
61
+ "conversationList.badgeArchived": "Archived",
62
+ "conversationList.badgeMixed": "Chat + voice",
63
+ "conversationList.badgePinned": "Pinned",
64
+ "conversationList.badgeVoice": "Voice",
65
+ "conversationList.emptyArchived": "No archived conversations",
66
+ "conversationList.emptyChat": "No chat conversations",
67
+ "conversationList.emptyPinned": "No pinned conversations",
68
+ "conversationList.emptyVoice": "No voice conversations",
69
+ "conversationList.messageCount": "{{count}} messages",
70
+ "conversationList.messageCountOne": "1 message",
71
+ "conversationList.spokenCount": "{{count}} spoken",
72
+ "conversationList.spokenCountOne": "1 spoken",
52
73
  "conversationList.voiceOnly": "Spoken conversation",
74
+ "conversations.archive": "Archive conversation",
53
75
  "conversations.collapse": "Collapse history",
54
76
  "conversations.collapseLabel": "Collapse",
55
77
  "conversations.delete": "Delete conversation",
56
78
  "conversations.empty": "No conversations yet",
57
79
  "conversations.new": "New conversation",
80
+ "conversations.pin": "Pin conversation",
58
81
  "conversations.rename": "Rename conversation",
59
82
  "conversations.renameLabel": "Conversation title",
60
83
  "conversations.saveTitle": "Save title",
61
84
  "conversations.startNew": "Start a new conversation",
62
85
  "conversations.title": "History",
86
+ "conversations.titleLimit": "Titles are up to {{limit}} characters",
87
+ "conversations.unarchive": "Unarchive conversation",
88
+ "conversations.unpin": "Unpin conversation",
89
+ "deleteConversation.body": "“{{title}}” is removed from all your devices now and permanently erased after 30 days. To hide it without deleting, archive it instead.",
90
+ "deleteConversation.bodyDevice": "“{{title}}” is deleted from this device. This can't be undone.",
91
+ "deleteConversation.cancel": "Cancel",
92
+ "deleteConversation.confirm": "Delete",
93
+ "deleteConversation.nothing": "There is no conversation to delete.",
94
+ "deleteConversation.opened": "Opened the delete confirmation. Choose Delete or Cancel on screen.",
95
+ "deleteConversation.title": "Delete this conversation?",
63
96
  "empty.subtitle": "You're viewing {{page}}. Ask about it, or pick a suggestion below.",
64
97
  "empty.subtitleNoPage": "Ask me anything, or pick a suggestion below.",
65
98
  "empty.title": "How can I help?",
@@ -78,6 +111,7 @@ var p = {
78
111
  "header.preview": "Preview",
79
112
  "header.ready": "Ready",
80
113
  "header.title": "AI Assistant",
114
+ "history.archivedNotice": "Archived. It stays out of your list until you unarchive it.",
81
115
  "history.badgeLoading": "Loading…",
82
116
  "history.badgeNotSaved": "Not saved",
83
117
  "history.badgeReadOnly": "Read-only",
@@ -92,9 +126,11 @@ var p = {
92
126
  "history.notSavedInvalid": "Part of this conversation couldn't be saved. It stays on this device.",
93
127
  "history.notSavedQuota": "Not saved yet: this workspace has reached its conversation limit. It will be saved when there is room.",
94
128
  "history.notSavedScope": "Some turns were sent from another workspace. They stay on this device.",
129
+ "history.pinLimit": "You can pin up to {{limit}} conversations. Unpin one first.",
95
130
  "history.showEarlier": "Show earlier messages",
96
131
  "history.showOlder": "Show older conversations",
97
132
  "history.tryAgain": "Try again",
133
+ "history.unarchive": "Unarchive",
98
134
  "history.untitled": "Untitled conversation",
99
135
  "language.inputLabel": "Language",
100
136
  "language.replyLabel": "Assistant replies in",
@@ -153,6 +153,11 @@ export * from './ui/AssistantHeader';
153
153
  export * from './ui/AssistantConversationList';
154
154
  export * from './ui/AssistantEmptyState';
155
155
  export * from './ui/AssistantHistoryNotices';
156
+ export * from './ui/AssistantConversationFilters';
157
+ export * from './ui/AssistantDeleteConversationDialog';
158
+ export * from './ui/conversationDeleteDialog';
159
+ export * from './ui/conversationDelete';
160
+ export * from './conversationDeleteCommand';
156
161
  export * from './exportConversation';
157
162
  export * from './history/historyTypes';
158
163
  export * from './history/historyTimestamps';
@@ -171,6 +176,7 @@ export * from './history/historyList';
171
176
  export * from './history/historyEngine';
172
177
  export * from './history/historyResume';
173
178
  export * from './history/useAssistantServerHistory';
179
+ export * from './history/useHistoryRowControls';
174
180
  export * from './ui/AssistantMessageItem';
175
181
  export * from './ui/AssistantMessageList';
176
182
  export * from './ui/AssistantTurnActivity';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AAGxB,cAAc,wBAAwB,CAAC;AAKvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAG9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,aAAa,CAAC;AAK5B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAG3C,cAAc,QAAQ,CAAC;AAIvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAIhD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AAGnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAG9C,cAAc,WAAW,CAAC;AAE1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qCAAqC,CAAC;AAEpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAElC,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAE5B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,iCAAiC,CAAC;AAGhD,cAAc,OAAO,CAAC;AACtB,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AAGxB,cAAc,wBAAwB,CAAC;AAKvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAG9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,aAAa,CAAC;AAK5B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAG3C,cAAc,QAAQ,CAAC;AAIvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAIhD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AAGnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAG9C,cAAc,WAAW,CAAC;AAE1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAG7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAEhD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAElC,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAE5B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,iCAAiC,CAAC;AAGhD,cAAc,OAAO,CAAC;AACtB,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
@@ -53,6 +53,14 @@ export type LocalUiCommand = {
53
53
  kind: "choose-destination";
54
54
  query: string;
55
55
  candidates: LocalDestination[];
56
+ }
57
+ /**
58
+ * ★★ BOFF-8159 (R5a): "delete this conversation". It only OPENS the Delete
59
+ * confirmation; a trusted click on its Delete button is the one thing that
60
+ * deletes. Typed and spoken alike, it records nothing.
61
+ */
62
+ | {
63
+ kind: "conversation-delete";
56
64
  };
57
65
  /**
58
66
  * `canonical`, with courtesy words at either end removed, so "Could you switch
@@ -1 +1 @@
1
- {"version":3,"file":"localUiCommands.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/localUiCommands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAC3C,6EAA6E;AAC7E,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,eAAe,GAAG,QAAQ,CAAC;AAEpF,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzC,yEAAyE;AACzE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,gBAAgB,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAAC;AAwBlF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GACrC,MAAM,CAeR;AA+JD,8EAA8E;AAC9E,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,SAAS,gBAAgB,EAAE,EACzC,OAAO,GAAE,qBAA0B,GAClC,cAAc,GAAG,IAAI,CAmCvB;AAED,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CACpC;AAKD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,MAAM,CAAC,EAAE,MAAM,GACd,gBAAgB,EAAE,CAuBpB;AAID,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,WAAW,CAAA;CAAE,GACpD;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAOnD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAapE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,SAAS,gBAAgB,EAAE,GACxC,OAAO,CAST"}
1
+ {"version":3,"file":"localUiCommands.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/localUiCommands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAC3C,6EAA6E;AAC7E,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,eAAe,GAAG,QAAQ,CAAC;AAEpF,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzC,yEAAyE;AACzE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,gBAAgB,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,gBAAgB,EAAE,CAAA;CAAE;AAC/E;;;;GAIG;GACD;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAwBpC;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GACrC,MAAM,CAeR;AA6KD,8EAA8E;AAC9E,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,SAAS,gBAAgB,EAAE,EACzC,OAAO,GAAE,qBAA0B,GAClC,cAAc,GAAG,IAAI,CAoCvB;AAED,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CACpC;AAKD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,MAAM,CAAC,EAAE,MAAM,GACd,gBAAgB,EAAE,CAuBpB;AAID,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,WAAW,CAAA;CAAE,GACpD;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAOnD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAapE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,SAAS,gBAAgB,EAAE,GACxC,OAAO,CAST"}