@burdenoff/fe-libs 2026.926.3 → 2026.926.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/chrome/ProductPickerSheet.d.ts.map +1 -1
  2. package/dist/chrome/ProductPickerSheet.js +45 -44
  3. package/dist/chrome/ProductSwitcher.d.ts.map +1 -1
  4. package/dist/chrome/ProductSwitcher.js +83 -82
  5. package/dist/shared/assistant/autoRouting.d.ts +1 -0
  6. package/dist/shared/assistant/autoRouting.d.ts.map +1 -1
  7. package/dist/shared/assistant/autoRouting.js +1 -1
  8. package/dist/shared/assistant/conversation.d.ts +29 -0
  9. package/dist/shared/assistant/conversation.d.ts.map +1 -1
  10. package/dist/shared/assistant/guardedStorage.d.ts +32 -0
  11. package/dist/shared/assistant/guardedStorage.d.ts.map +1 -0
  12. package/dist/shared/assistant/guardedStorage.js +36 -0
  13. package/dist/shared/assistant/i18nManifest.d.ts +7 -0
  14. package/dist/shared/assistant/i18nManifest.d.ts.map +1 -1
  15. package/dist/shared/assistant/i18nManifest.js +7 -0
  16. package/dist/shared/assistant/index.d.ts +3 -0
  17. package/dist/shared/assistant/index.d.ts.map +1 -1
  18. package/dist/shared/assistant/liveTurns.d.ts +145 -0
  19. package/dist/shared/assistant/liveTurns.d.ts.map +1 -0
  20. package/dist/shared/assistant/liveTurns.js +99 -0
  21. package/dist/shared/assistant/store.d.ts.map +1 -1
  22. package/dist/shared/assistant/store.js +11 -10
  23. package/dist/shared/assistant/turnState.d.ts +12 -0
  24. package/dist/shared/assistant/turnState.d.ts.map +1 -1
  25. package/dist/shared/assistant/turnState.js +4 -1
  26. package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
  27. package/dist/shared/assistant/ui/AssistantChatArea.js +704 -568
  28. package/dist/shared/assistant/ui/AssistantMessageItem.d.ts +19 -0
  29. package/dist/shared/assistant/ui/AssistantMessageItem.d.ts.map +1 -1
  30. package/dist/shared/assistant/ui/AssistantMessageItem.js +92 -88
  31. package/dist/shared/assistant/ui/AssistantMessageList.d.ts +22 -2
  32. package/dist/shared/assistant/ui/AssistantMessageList.d.ts.map +1 -1
  33. package/dist/shared/assistant/ui/AssistantMessageList.js +37 -36
  34. package/dist/shared/assistant/ui/AssistantPendingWriteCard.d.ts +34 -0
  35. package/dist/shared/assistant/ui/AssistantPendingWriteCard.d.ts.map +1 -1
  36. package/dist/shared/assistant/ui/AssistantPendingWriteCard.js +31 -28
  37. package/dist/shared/assistant/ui/useVoiceSession.d.ts +1 -0
  38. package/dist/shared/assistant/ui/useVoiceSession.d.ts.map +1 -1
  39. package/dist/shared/assistant/ui/useVoiceSession.js +119 -117
  40. package/dist/shared/assistant/voice/voiceReopen.d.ts +117 -0
  41. package/dist/shared/assistant/voice/voiceReopen.d.ts.map +1 -0
  42. package/dist/shared/assistant/voice/voiceReopen.js +49 -0
  43. package/dist/shared/config/index.d.ts +3 -1
  44. package/dist/shared/config/index.d.ts.map +1 -1
  45. package/dist/shared/config/productSlug.d.ts +36 -0
  46. package/dist/shared/config/productSlug.d.ts.map +1 -0
  47. package/dist/shared/config/productSlug.js +23 -0
  48. package/dist/shared/config/products.d.ts +8 -1
  49. package/dist/shared/config/products.d.ts.map +1 -1
  50. package/dist/shared/config/products.js +21 -14
  51. package/dist/shared/hooks/shell/useProducts.d.ts +8 -0
  52. package/dist/shared/hooks/shell/useProducts.d.ts.map +1 -1
  53. package/dist/shared/hooks/shell/useProducts.js +46 -42
  54. package/dist/shared/providers/AppShellProvider.d.ts.map +1 -1
  55. package/dist/shared/providers/AppShellProvider.js +228 -227
  56. package/dist/shared/providers/shell/ThemeProvider.d.ts +1 -1
  57. package/dist/shared/providers/shell/ThemeProvider.d.ts.map +1 -1
  58. package/dist/shared/providers/shell/ThemeProvider.js +58 -57
  59. package/dist/shared/providers/shell/brandAttribute.d.ts +11 -0
  60. package/dist/shared/providers/shell/brandAttribute.d.ts.map +1 -0
  61. package/dist/shared/providers/shell/brandAttribute.js +7 -0
  62. package/dist/shared-assistant.js +101 -98
  63. package/dist/shared-config.js +11 -10
  64. package/dist/shared.js +121 -120
  65. package/package.json +2 -2
  66. package/src/vite/types.ts +4 -1
@@ -222,9 +222,16 @@ export declare const ASSISTANT_I18N_LITERAL_COPY: {
222
222
  readonly "overlay.launcherTitle": "AI Assistant ({{shortcut}})";
223
223
  readonly "panel.ariaLabel": "AI Assistant";
224
224
  readonly "pendingWrite.approve": "Approve this change";
225
+ readonly "pendingWrite.approved": "The assistant's next reply says whether it was carried out.";
226
+ readonly "pendingWrite.approvedAria": "Approved change request";
227
+ readonly "pendingWrite.approvedNotSent": "The assistant was not told to go ahead with it. If you still want this change, ask for it again.";
225
228
  readonly "pendingWrite.approvedPrompt": "I approved that change — go ahead.";
229
+ readonly "pendingWrite.approvedTitle": "You approved this change";
226
230
  readonly "pendingWrite.approving": "Approving…";
227
231
  readonly "pendingWrite.aria": "Change awaiting your approval";
232
+ readonly "pendingWrite.expired": "It stays here as a record of what was asked. If you still need the change, ask again.";
233
+ readonly "pendingWrite.expiredAria": "Expired change request";
234
+ readonly "pendingWrite.expiredTitle": "This request can no longer be approved";
228
235
  readonly "pendingWrite.noValues": "No field values were included with this request.";
229
236
  readonly "pendingWrite.subtitle": "The assistant asked to make this change and was stopped. Approve it, or say what to change.";
230
237
  readonly "pendingWrite.subtitleReply": "The assistant asked to make this change and was stopped. Reply to approve or decline.";
@@ -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;AAU1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkOG,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,CAsBtE,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;AAU1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4OG,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,CAsBtE,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"}
@@ -117,9 +117,16 @@ var u = {
117
117
  "overlay.launcherTitle": "AI Assistant ({{shortcut}})",
118
118
  "panel.ariaLabel": "AI Assistant",
119
119
  "pendingWrite.approve": "Approve this change",
120
+ "pendingWrite.approved": "The assistant's next reply says whether it was carried out.",
121
+ "pendingWrite.approvedAria": "Approved change request",
122
+ "pendingWrite.approvedNotSent": "The assistant was not told to go ahead with it. If you still want this change, ask for it again.",
120
123
  "pendingWrite.approvedPrompt": "I approved that change — go ahead.",
124
+ "pendingWrite.approvedTitle": "You approved this change",
121
125
  "pendingWrite.approving": "Approving…",
122
126
  "pendingWrite.aria": "Change awaiting your approval",
127
+ "pendingWrite.expired": "It stays here as a record of what was asked. If you still need the change, ask again.",
128
+ "pendingWrite.expiredAria": "Expired change request",
129
+ "pendingWrite.expiredTitle": "This request can no longer be approved",
123
130
  "pendingWrite.noValues": "No field values were included with this request.",
124
131
  "pendingWrite.subtitle": "The assistant asked to make this change and was stopped. Approve it, or say what to change.",
125
132
  "pendingWrite.subtitleReply": "The assistant asked to make this change and was stopped. Reply to approve or decline.",
@@ -58,7 +58,9 @@ export * from './voice/assistantPollSchedule';
58
58
  export * from './voice/captionText';
59
59
  export * from './voice/languagePair';
60
60
  export * from './voice/languages';
61
+ export * from './voice/voiceReopen';
61
62
  export * from './pendingWrite';
63
+ export * from './liveTurns';
62
64
  export * from './images';
63
65
  export * from './operations';
64
66
  export * from './capabilities';
@@ -77,6 +79,7 @@ export * from './voice/speechPlayback';
77
79
  export * from './conversation';
78
80
  export * from './attachments';
79
81
  export * from './store';
82
+ export * from './guardedStorage';
80
83
  export * from './turnState';
81
84
  export * from './stageCopy';
82
85
  export * from './legacyFiller';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import { Message } from './conversation';
2
+ /** Record that the reply `messageId` belongs to a turn this page load started. */
3
+ export declare function markLiveTurn(messageId: string): void;
4
+ /** Did this page load start the turn whose reply is `messageId`? */
5
+ export declare function isLiveTurn(messageId: string): boolean;
6
+ /** An approval the page is recording with the sandbox right now. */
7
+ export interface ApprovalInFlight {
8
+ /** The conversation whose card was approved. */
9
+ conversationId: string;
10
+ /** The pending write's reference, as the card holds it. */
11
+ reference: string;
12
+ }
13
+ /** The approval being recorded right now, or null. */
14
+ export declare function getApprovalInFlight(): ApprovalInFlight | null;
15
+ /** Be told when an approval is taken or let go — for `useSyncExternalStore`. */
16
+ export declare function subscribeApprovalInFlight(listener: () => void): () => void;
17
+ /**
18
+ * Take the page's one approval slot. False when another approval holds it — a
19
+ * second press, from this panel or one opened since, is the same press.
20
+ */
21
+ export declare function beginApprovalInFlight(approval: ApprovalInFlight): boolean;
22
+ /** Let the slot go — only by the approval that holds it. */
23
+ export declare function endApprovalInFlight(approval: ApprovalInFlight): void;
24
+ /**
25
+ * How long a pending write stays approvable.
26
+ *
27
+ * ★ Mirrors the sandbox's own confirmation lifetime (15 minutes,
28
+ * `CONFIRMATION_TTL_MS` in ai-assistant's `write-confirmation.ts`), which runs
29
+ * from the moment its entry was CREATED. The sandbox does not start a new entry
30
+ * when the same write is refused again while the first is still fresh: it
31
+ * re-uses that entry and keeps its creation time. So the window is measured
32
+ * from the reply that started the entry (`pendingWriteRaisedAtMs`), not from
33
+ * the newest reply carrying the reference — measured from the newest, a
34
+ * request asked again ten minutes later kept its button for up to ten minutes
35
+ * after the sandbox had begun refusing it.
36
+ *
37
+ * ★ An APPROVED entry ends there. The sandbox tries the person's approval
38
+ * first on every attempt at that write (`consumeWriteApproval`), and spends
39
+ * it: the entry is deleted and the write goes through. So the same write
40
+ * refused again after an approval was refused with NO entry left, and started
41
+ * a new one — counted from the approved card instead, a request asked again
42
+ * after its change was made lost its button up to fifteen minutes early.
43
+ *
44
+ * ★ Each reply's time is its placeholder's, taken BEFORE the sandbox records
45
+ * the refusal, so on this conversation's evidence the window closes first. What
46
+ * it cannot see is the same write refused earlier in ANOTHER conversation on
47
+ * the same sandbox, which the sandbox counts as the same entry; there the
48
+ * sandbox can refuse first. That fails closed: nothing is approved, and the
49
+ * thread says so with the sandbox's own refusal, which names the expiry.
50
+ */
51
+ export declare const PENDING_WRITE_APPROVAL_WINDOW_MS: number;
52
+ /**
53
+ * The replies that answer the panel's own "go ahead" after an approval — turns
54
+ * that offer no Retry.
55
+ *
56
+ * ★★ There is nothing a Retry there could honestly re-run. Re-sending the "go
57
+ * ahead" would tell a new turn an approval was fresh that may already be spent;
58
+ * re-asking the person's original request — what Retry used to fall back to —
59
+ * asks for a change the approved turn may already have made, and without the
60
+ * files that request carried. If the change is still wanted, the person asks,
61
+ * and a new request gets a new card.
62
+ */
63
+ export declare function approvalFollowUpReplyIds(messages: readonly Message[]): ReadonlySet<string>;
64
+ /**
65
+ * The replies whose pending write the person APPROVED.
66
+ *
67
+ * ★★ Their cards say so — never "expired", which would tell someone whose
68
+ * change was carried out that nothing had changed, and invite them to ask for
69
+ * the same change again.
70
+ *
71
+ * ★★ Only from the stamp written when the approval LANDED
72
+ * (`pendingWriteApprovedAt`) — never guessed from where a "go ahead" sits in
73
+ * the thread. That guess read the card just before a go-ahead as the approved
74
+ * one, and when another request had come between the click and the go-ahead,
75
+ * a card the person never approved read "You approved this change", on every
76
+ * reopen.
77
+ */
78
+ export declare function approvedPendingWriteIds(messages: readonly Message[]): ReadonlySet<string>;
79
+ /**
80
+ * The approved replies whose "go ahead" the panel actually SENT — named by the
81
+ * go-ahead itself (`approvedReplyId`), never inferred from its position.
82
+ *
83
+ * ★ An approval can land and its go-ahead not be sent: the person opened
84
+ * another conversation, or the mode, session or sandbox changed while the call
85
+ * was out. Such a card must not promise that "the assistant's next reply says
86
+ * whether it was carried out" — nothing asked it to.
87
+ */
88
+ export declare function goAheadSentReplyIds(messages: readonly Message[]): ReadonlySet<string>;
89
+ /**
90
+ * The id of the newest reply the MODEL wrote, or null — what a go-ahead must
91
+ * still be answering when it is sent (see `handleApprovePendingWrite`).
92
+ */
93
+ export declare function newestModelReplyId(messages: readonly Message[]): string | null;
94
+ /**
95
+ * The reply whose turn Retry may re-run, or null.
96
+ *
97
+ * The newest model reply — a turn can settle with an apology (a gateway 403 the
98
+ * model reports as text) without ever failing, and the person still needs a
99
+ * one-click re-run — but only while its turn ran in this page load. A reply
100
+ * reopened from history offers no Retry: re-sending would put an old prompt to
101
+ * a new session, in whatever state the data is in now. Nor does the answer to
102
+ * an approval's "go ahead" (`approvalFollowUpReplyIds`).
103
+ *
104
+ * `messages` is the TYPED thread; Retry is a chat-panel affordance.
105
+ */
106
+ export declare function resolveRetryableMessageId(messages: readonly Message[], isLive?: (messageId: string) => boolean): string | null;
107
+ /** The one pending write that may be approved right now. */
108
+ export interface ApprovablePendingWrite {
109
+ messageId: string;
110
+ reference: string;
111
+ /** When it stops being approvable — so a caller can re-render on time. */
112
+ expiresAtMs: number;
113
+ }
114
+ /**
115
+ * The single pending write whose Approve button may be live, or null.
116
+ *
117
+ * ★★ Every condition is necessary, and each closes a way an old card could
118
+ * still authorise a change:
119
+ *
120
+ * - The NEWEST model reply only. Once the conversation has moved past a
121
+ * request, approving it would hand the model an approval for something it is
122
+ * no longer talking about.
123
+ * - Not approved already: an approval is given once (`pendingWriteApprovedAt`).
124
+ * - Its turn ran in this page load (`isLive`) — see `markLiveTurn`.
125
+ * - The same backend SESSION the conversation holds now, and the same SANDBOX
126
+ * the active mode holds now. The reference lives in that sandbox and is spent
127
+ * in that session; after either was replaced it names nothing, or names
128
+ * something the person never saw.
129
+ * - Inside `PENDING_WRITE_APPROVAL_WINDOW_MS` of the sandbox entry it names.
130
+ *
131
+ * A reply without a reference (an older sandbox image) is never approvable;
132
+ * its card has never had a button.
133
+ *
134
+ * `messages` is the TYPED thread: spoken turns never carry a pending write,
135
+ * because voice is offered only in modes known not to write.
136
+ */
137
+ export declare function resolveApprovablePendingWrite(messages: readonly Message[], live: {
138
+ /** The active conversation's backend session. */
139
+ sessionId: string | null | undefined;
140
+ /** The sandbox the active mode holds. */
141
+ sandboxId: string | null | undefined;
142
+ nowMs: number;
143
+ isLive?: (messageId: string) => boolean;
144
+ }): ApprovablePendingWrite | null;
145
+ //# sourceMappingURL=liveTurns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liveTurns.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/liveTurns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA0B9C,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AAwBD,sDAAsD;AACtD,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAE7D;AAED,gFAAgF;AAChF,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAK1E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAKzE;AAED,4DAA4D;AAC5D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAIpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,gCAAgC,QAAiB,CAAC;AAoB/D;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B,WAAW,CAAC,MAAM,CAAC,CASrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B,WAAW,CAAC,MAAM,CAAC,CAWrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B,WAAW,CAAC,MAAM,CAAC,CAYrB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B,MAAM,GAAG,IAAI,CAEf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,MAAM,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAoB,GAClD,MAAM,GAAG,IAAI,CAKf;AA4CD,4DAA4D;AAC5D,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,IAAI,EAAE;IACJ,iDAAiD;IACjD,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,yCAAyC;IACzC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;CACzC,GACA,sBAAsB,GAAG,IAAI,CAe/B"}
@@ -0,0 +1,99 @@
1
+ //#region src/shared/assistant/liveTurns.ts
2
+ var e = /* @__PURE__ */ new Set();
3
+ function t(t) {
4
+ e.add(t);
5
+ }
6
+ function n(t) {
7
+ return e.has(t);
8
+ }
9
+ var r = null, i = /* @__PURE__ */ new Set();
10
+ function a() {
11
+ return r;
12
+ }
13
+ function o(e) {
14
+ return i.add(e), () => {
15
+ i.delete(e);
16
+ };
17
+ }
18
+ function s(e) {
19
+ if (r !== null) return !1;
20
+ r = e;
21
+ for (let e of i) e();
22
+ return !0;
23
+ }
24
+ function c(e) {
25
+ if (r === e) {
26
+ r = null;
27
+ for (let e of i) e();
28
+ }
29
+ }
30
+ var l = 900 * 1e3;
31
+ function u(e) {
32
+ return e.role !== "system" && !e.metadata?.localAction;
33
+ }
34
+ function d(e) {
35
+ for (let t = e.length - 1; t >= 0; --t) {
36
+ let n = e[t];
37
+ if (n.role === "assistant" && !n.metadata?.localAction) return n;
38
+ }
39
+ return null;
40
+ }
41
+ function f(e) {
42
+ let t = /* @__PURE__ */ new Set(), n = null;
43
+ for (let r of e) u(r) && (r.role === "user" ? n = r : n?.metadata?.approvalFollowUp && t.add(r.id));
44
+ return t;
45
+ }
46
+ function p(e) {
47
+ let t = /* @__PURE__ */ new Set();
48
+ for (let n of e) n.role === "assistant" && n.metadata?.pendingWrite && n.metadata.pendingWriteApprovedAt && t.add(n.id);
49
+ return t;
50
+ }
51
+ function m(e) {
52
+ let t = /* @__PURE__ */ new Set();
53
+ for (let n of e) {
54
+ let e = n.metadata?.approvedReplyId;
55
+ n.role === "user" && n.metadata?.approvalFollowUp && typeof e == "string" && t.add(e);
56
+ }
57
+ return t;
58
+ }
59
+ function h(e) {
60
+ return d(e)?.id ?? null;
61
+ }
62
+ function g(e, t = n) {
63
+ let r = d(e);
64
+ return !r || !t(r.id) || f(e).has(r.id) ? null : r.id;
65
+ }
66
+ function _(e, t, n) {
67
+ let r = Date.parse(t.timestamp);
68
+ if (!Number.isFinite(r)) return NaN;
69
+ let i = t.metadata?.sandboxId, a = null;
70
+ for (let o of e) {
71
+ if (o.role !== "assistant" || o.metadata?.pendingWrite?.reference !== n) continue;
72
+ let e = o.metadata?.sandboxId;
73
+ if (e && e !== i) continue;
74
+ let s = Date.parse(o.timestamp);
75
+ if (!(!Number.isFinite(s) || s > r)) {
76
+ if ((a === null || s - a >= 9e5) && (a = s), o === t) break;
77
+ o.metadata?.pendingWriteApprovedAt && (a = null);
78
+ }
79
+ }
80
+ return a ?? r;
81
+ }
82
+ function v(e, t) {
83
+ let r = d(e), i = r?.metadata?.pendingWrite?.reference;
84
+ if (!r || !i || r.metadata?.pendingWriteApprovedAt || !(t.isLive ?? n)(r.id)) return null;
85
+ let a = r.metadata?.sessionId;
86
+ if (!a || a !== t.sessionId) return null;
87
+ let o = r.metadata?.sandboxId;
88
+ if (!o || o !== t.sandboxId) return null;
89
+ let s = _(e, r, i);
90
+ if (!Number.isFinite(s)) return null;
91
+ let c = s + l;
92
+ return t.nowMs >= c ? null : {
93
+ messageId: r.id,
94
+ reference: i,
95
+ expiresAtMs: c
96
+ };
97
+ }
98
+ //#endregion
99
+ export { l as PENDING_WRITE_APPROVAL_WINDOW_MS, f as approvalFollowUpReplyIds, p as approvedPendingWriteIds, s as beginApprovalInFlight, c as endApprovalInFlight, a as getApprovalInFlight, m as goAheadSentReplyIds, n as isLiveTurn, t as markLiveTurn, h as newestModelReplyId, v as resolveApprovablePendingWrite, g as resolveRetryableMessageId, o as subscribeApprovalInFlight };
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/store.ts"],"names":[],"mappings":"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"}
@@ -2,20 +2,21 @@ import { createProfileScopedStorage as e } from "../utils/profileScopedStorage.j
2
2
  import "../../shared-utils.js";
3
3
  import { LEGACY_WRITE_CONSENT_KEY as t, restoreAcknowledgedWriteModes as n, withWriteModeAcknowledged as r } from "./writeModeConsent.js";
4
4
  import { restoreAutoRouting as i } from "./autoRouting.js";
5
- import { create as a } from "zustand";
6
- import { persist as o } from "zustand/middleware";
5
+ import { createGuardedAssistantStorage as a } from "./guardedStorage.js";
6
+ import { create as o } from "zustand";
7
+ import { persist as s } from "zustand/middleware";
7
8
  //#region src/shared/assistant/store.ts
8
- function s() {
9
+ function c() {
9
10
  return `${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
10
11
  }
11
- function c(e) {
12
+ function l(e) {
12
13
  let t = e.sandboxesByMode[e.mode]?.sandboxId;
13
14
  return t ? {
14
15
  sandboxId: t,
15
16
  mode: e.mode
16
17
  } : null;
17
18
  }
18
- function l(e, r) {
19
+ function u(e, r) {
19
20
  let a = typeof e == "object" && e ? Object.fromEntries(Object.entries(e).filter(([e]) => e !== t)) : {};
20
21
  return {
21
22
  ...r,
@@ -24,7 +25,7 @@ function l(e, r) {
24
25
  autoRouting: i(e)
25
26
  };
26
27
  }
27
- var u = a()(o((e, t) => ({
28
+ var d = o()(s((e, t) => ({
28
29
  conversations: [],
29
30
  activeConversationId: null,
30
31
  mode: "assistant",
@@ -39,7 +40,7 @@ var u = a()(o((e, t) => ({
39
40
  replyLanguage: null,
40
41
  preferredVoices: {},
41
42
  createConversation: (n, r, i) => {
42
- let a = s(), o = (/* @__PURE__ */ new Date()).toISOString(), c = r === void 0 && t().autoRouting, l = i?.routedBy ?? (c ? "auto" : void 0), u = r ?? (c ? "assistant" : t().mode), d = {
43
+ let a = c(), o = (/* @__PURE__ */ new Date()).toISOString(), s = r === void 0 && t().autoRouting, l = i?.routedBy ?? (s ? "auto" : void 0), u = r ?? (s ? "assistant" : t().mode), d = {
43
44
  id: a,
44
45
  title: n || "New conversation",
45
46
  mode: u,
@@ -243,7 +244,7 @@ var u = a()(o((e, t) => ({
243
244
  })
244
245
  }), {
245
246
  name: "hb-ai-assistant",
246
- storage: e(),
247
+ storage: a(e()),
247
248
  partialize: (e) => ({
248
249
  conversations: e.conversations.map(({ ...e }) => e),
249
250
  activeConversationId: e.activeConversationId,
@@ -256,7 +257,7 @@ var u = a()(o((e, t) => ({
256
257
  replyLanguage: e.replyLanguage,
257
258
  preferredVoices: e.preferredVoices
258
259
  }),
259
- merge: l
260
+ merge: u
260
261
  }));
261
262
  //#endregion
262
- export { l as mergePersistedAssistantState, c as resolveActiveModeSandbox, u as useAssistantStore };
263
+ export { u as mergePersistedAssistantState, l as resolveActiveModeSandbox, d as useAssistantStore };
@@ -47,6 +47,13 @@ export declare function isTurnInFlight(status: AssistantConversationStatus | und
47
47
  * own — otherwise it would strand the very answer the user is now waiting for.
48
48
  * When nothing replaced it, clearing is what stops the composer sitting
49
49
  * disabled forever behind a turn that will never complete.
50
+ *
51
+ * ★★ A DELETED conversation abandons its turn too (BOFF-7335). Nothing else
52
+ * stopped the runtime: the poll loop ran on after the person deleted the
53
+ * conversation, its `'complete'` or error write landed on an id that no longer
54
+ * existed, and a correction parked behind it was replayed into whichever
55
+ * conversation had opened in its place. A conversation that is gone has no
56
+ * newer turn to protect, so the entry is always released.
50
57
  */
51
58
  export declare function planAbandonedTurn(args: {
52
59
  /** The message id this runtime is driving. */
@@ -55,6 +62,11 @@ export declare function planAbandonedTurn(args: {
55
62
  abortRequested: boolean;
56
63
  /** The turn the shared processing entry currently describes. */
57
64
  activeTurnId: string | null | undefined;
65
+ /**
66
+ * The conversation this turn writes into is still in the store. Required,
67
+ * so no call site can leave the delete case out.
68
+ */
69
+ conversationExists: boolean;
58
70
  }): {
59
71
  abandon: boolean;
60
72
  clearProcessing: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"turnState.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/turnState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAElE;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,2BAA2B,GAAG,SAAS,GAC9C,OAAO,CAMT;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,cAAc,EAAE,OAAO,CAAC;IACxB,gEAAgE;IAChE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACzC,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAGjD;AAED,kFAAkF;AAClF,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,iBAAiB,GACjB,YAAY,GACZ,mBAAmB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,yCAAyC;IACzC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,iEAAiE;IACjE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAkB7C"}
1
+ {"version":3,"file":"turnState.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/turnState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAElE;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,2BAA2B,GAAG,SAAS,GAC9C,OAAO,CAMT;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,cAAc,EAAE,OAAO,CAAC;IACxB,gEAAgE;IAChE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC;;;OAGG;IACH,kBAAkB,EAAE,OAAO,CAAC;CAC7B,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAIjD;AAED,kFAAkF;AAClF,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,iBAAiB,GACjB,YAAY,GACZ,mBAAmB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,yCAAyC;IACzC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,iEAAiE;IACjE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAkB7C"}
@@ -3,12 +3,15 @@ function e(e) {
3
3
  return e === "provisioning" || e === "connecting" || e === "streaming";
4
4
  }
5
5
  function t(e) {
6
- return e.abortRequested ? {
6
+ return e.conversationExists ? e.abortRequested ? {
7
7
  abandon: !0,
8
8
  clearProcessing: e.activeTurnId === e.turnId
9
9
  } : {
10
10
  abandon: !1,
11
11
  clearProcessing: !1
12
+ } : {
13
+ abandon: !0,
14
+ clearProcessing: !0
12
15
  };
13
16
  }
14
17
  function n(e) {
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantChatArea.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantChatArea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AA0If,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AA+EvE;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAkwGxD,CAAC"}
1
+ {"version":3,"file":"AssistantChatArea.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantChatArea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AA4Jf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAkGvE;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAgqHxD,CAAC"}