@burdenoff/fe-libs 2026.926.4 → 2026.927.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.
- package/dist/chrome/ProductPickerSheet.d.ts.map +1 -1
- package/dist/chrome/ProductPickerSheet.js +45 -44
- package/dist/chrome/ProductSwitcher.d.ts.map +1 -1
- package/dist/chrome/ProductSwitcher.js +83 -82
- package/dist/shared/assistant/conversation.d.ts +91 -3
- package/dist/shared/assistant/conversation.d.ts.map +1 -1
- package/dist/shared/assistant/gatewayClient.d.ts +15 -0
- package/dist/shared/assistant/gatewayClient.d.ts.map +1 -1
- package/dist/shared/assistant/gatewayClient.js +1 -1
- package/dist/shared/assistant/guardedStorage.d.ts +4 -2
- package/dist/shared/assistant/guardedStorage.d.ts.map +1 -1
- package/dist/shared/assistant/guardedStorage.js +1 -1
- package/dist/shared/assistant/history/historyApi.d.ts +38 -0
- package/dist/shared/assistant/history/historyApi.d.ts.map +1 -0
- package/dist/shared/assistant/history/historyApi.js +153 -0
- package/dist/shared/assistant/history/historyEngine.d.ts +96 -0
- package/dist/shared/assistant/history/historyEngine.d.ts.map +1 -0
- package/dist/shared/assistant/history/historyEngine.js +774 -0
- package/dist/shared/assistant/history/historyErrors.d.ts +72 -0
- package/dist/shared/assistant/history/historyErrors.d.ts.map +1 -0
- package/dist/shared/assistant/history/historyErrors.js +74 -0
- package/dist/shared/assistant/history/historyList.d.ts +115 -0
- package/dist/shared/assistant/history/historyList.d.ts.map +1 -0
- package/dist/shared/assistant/history/historyList.js +116 -0
- package/dist/shared/assistant/history/historyMapping.d.ts +65 -0
- package/dist/shared/assistant/history/historyMapping.d.ts.map +1 -0
- package/dist/shared/assistant/history/historyMapping.js +383 -0
- package/dist/shared/assistant/history/historyMerge.d.ts +65 -0
- package/dist/shared/assistant/history/historyMerge.d.ts.map +1 -0
- package/dist/shared/assistant/history/historyMerge.js +97 -0
- package/dist/shared/assistant/history/historyOperations.d.ts +24 -0
- package/dist/shared/assistant/history/historyOperations.d.ts.map +1 -0
- package/dist/shared/assistant/history/historyOperations.js +125 -0
- package/dist/shared/assistant/history/historyResume.d.ts +56 -0
- package/dist/shared/assistant/history/historyResume.d.ts.map +1 -0
- package/dist/shared/assistant/history/historyResume.js +55 -0
- package/dist/shared/assistant/history/historyStatus.d.ts +76 -0
- package/dist/shared/assistant/history/historyStatus.d.ts.map +1 -0
- package/dist/shared/assistant/history/historyStatus.js +47 -0
- package/dist/shared/assistant/history/historyStore.d.ts +192 -0
- package/dist/shared/assistant/history/historyStore.d.ts.map +1 -0
- package/dist/shared/assistant/history/historyStore.js +503 -0
- package/dist/shared/assistant/history/historyTimestamps.d.ts +11 -0
- package/dist/shared/assistant/history/historyTimestamps.d.ts.map +1 -0
- package/dist/shared/assistant/history/historyTimestamps.js +9 -0
- package/dist/shared/assistant/history/historyTypes.d.ts +256 -0
- package/dist/shared/assistant/history/historyTypes.d.ts.map +1 -0
- package/dist/shared/assistant/history/historyTypes.js +20 -0
- package/dist/shared/assistant/history/profileBoundStorage.d.ts +36 -0
- package/dist/shared/assistant/history/profileBoundStorage.d.ts.map +1 -0
- package/dist/shared/assistant/history/profileBoundStorage.js +74 -0
- package/dist/shared/assistant/history/stampRegistry.d.ts +84 -0
- package/dist/shared/assistant/history/stampRegistry.d.ts.map +1 -0
- package/dist/shared/assistant/history/stampRegistry.js +58 -0
- package/dist/shared/assistant/history/useAssistantServerHistory.d.ts +18 -0
- package/dist/shared/assistant/history/useAssistantServerHistory.d.ts.map +1 -0
- package/dist/shared/assistant/history/useAssistantServerHistory.js +12 -0
- package/dist/shared/assistant/i18nManifest.d.ts +18 -0
- package/dist/shared/assistant/i18nManifest.d.ts.map +1 -1
- package/dist/shared/assistant/i18nManifest.js +18 -0
- package/dist/shared/assistant/index.d.ts +16 -0
- package/dist/shared/assistant/index.d.ts.map +1 -1
- package/dist/shared/assistant/liveTurns.d.ts +7 -0
- package/dist/shared/assistant/liveTurns.d.ts.map +1 -1
- package/dist/shared/assistant/liveTurns.js +35 -32
- package/dist/shared/assistant/spokenTurns.d.ts +20 -0
- package/dist/shared/assistant/spokenTurns.d.ts.map +1 -1
- package/dist/shared/assistant/spokenTurns.js +13 -8
- package/dist/shared/assistant/store.d.ts +35 -1
- package/dist/shared/assistant/store.d.ts.map +1 -1
- package/dist/shared/assistant/store.js +93 -24
- package/dist/shared/assistant/ui/AIAssistantPanel.d.ts +16 -0
- package/dist/shared/assistant/ui/AIAssistantPanel.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AIAssistantPanel.js +63 -60
- package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantChatArea.js +730 -672
- package/dist/shared/assistant/ui/AssistantConversationList.d.ts +17 -0
- package/dist/shared/assistant/ui/AssistantConversationList.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantConversationList.js +252 -145
- package/dist/shared/assistant/ui/AssistantHistoryNotices.d.ts +36 -0
- package/dist/shared/assistant/ui/AssistantHistoryNotices.d.ts.map +1 -0
- package/dist/shared/assistant/ui/AssistantHistoryNotices.js +103 -0
- package/dist/shared/assistant/ui/AssistantOverlay.d.ts +4 -0
- package/dist/shared/assistant/ui/AssistantOverlay.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantOverlay.js +97 -94
- package/dist/shared/assistant/ui/AssistantSpokenTurnsNotice.d.ts +5 -3
- package/dist/shared/assistant/ui/AssistantSpokenTurnsNotice.d.ts.map +1 -1
- package/dist/shared/assistant/ui/composer/AssistantComposer.d.ts +6 -0
- package/dist/shared/assistant/ui/composer/AssistantComposer.d.ts.map +1 -1
- package/dist/shared/assistant/ui/composer/AssistantComposer.js +54 -54
- package/dist/shared/assistant/ui/voice/VoiceTranscriptDrawer.d.ts +9 -0
- package/dist/shared/assistant/ui/voice/VoiceTranscriptDrawer.d.ts.map +1 -1
- package/dist/shared/assistant/ui/voice/VoiceTranscriptDrawer.js +37 -32
- package/dist/shared/assistant/voice/turnVisibility.d.ts +7 -5
- package/dist/shared/assistant/voice/turnVisibility.d.ts.map +1 -1
- package/dist/shared/assistant/voice/voiceTranscript.d.ts +3 -2
- package/dist/shared/assistant/voice/voiceTranscript.d.ts.map +1 -1
- package/dist/shared/config/index.d.ts +3 -1
- package/dist/shared/config/index.d.ts.map +1 -1
- package/dist/shared/config/productSlug.d.ts +36 -0
- package/dist/shared/config/productSlug.d.ts.map +1 -0
- package/dist/shared/config/productSlug.js +23 -0
- package/dist/shared/config/products.d.ts +8 -1
- package/dist/shared/config/products.d.ts.map +1 -1
- package/dist/shared/config/products.js +21 -14
- package/dist/shared/hooks/shell/useProducts.d.ts +8 -0
- package/dist/shared/hooks/shell/useProducts.d.ts.map +1 -1
- package/dist/shared/hooks/shell/useProducts.js +46 -42
- package/dist/shared/providers/AppShellProvider.d.ts.map +1 -1
- package/dist/shared/providers/AppShellProvider.js +228 -227
- package/dist/shared/providers/shell/ThemeProvider.d.ts +1 -1
- package/dist/shared/providers/shell/ThemeProvider.d.ts.map +1 -1
- package/dist/shared/providers/shell/ThemeProvider.js +58 -57
- package/dist/shared/providers/shell/brandAttribute.d.ts +11 -0
- package/dist/shared/providers/shell/brandAttribute.d.ts.map +1 -0
- package/dist/shared/providers/shell/brandAttribute.js +7 -0
- package/dist/shared-assistant.js +153 -137
- package/dist/shared-config.js +11 -10
- package/dist/shared.js +121 -120
- package/package.json +2 -2
- package/src/vite/types.ts +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductPickerSheet.d.ts","sourceRoot":"","sources":["../../src/chrome/ProductPickerSheet.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ProductPickerSheet.d.ts","sourceRoot":"","sources":["../../src/chrome/ProductPickerSheet.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQ3C,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAkCD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAuH1D,CAAC"}
|
|
@@ -1,110 +1,111 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { isSameProductSlug as e } from "../shared/config/productSlug.js";
|
|
2
|
+
import { Sheet as t, SheetContent as n, SheetHeader as r, SheetTitle as i } from "../ui/sheet.js";
|
|
3
|
+
import { filterProducts as a, resolveProductLogo as o } from "./ProductSwitcher.js";
|
|
4
|
+
import { useMemo as s, useState as c } from "react";
|
|
5
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
5
6
|
//#region src/chrome/ProductPickerSheet.tsx
|
|
6
|
-
var
|
|
7
|
-
let [t, n] =
|
|
8
|
-
return r && !t ? /* @__PURE__ */
|
|
7
|
+
var d = 6, f = ({ product: e }) => {
|
|
8
|
+
let [t, n] = c(!1), r = o(e);
|
|
9
|
+
return r && !t ? /* @__PURE__ */ l("div", {
|
|
9
10
|
className: "size-10 rounded-lg bg-white p-1 ring-1 ring-border-default dark:ring-border-strong flex items-center justify-center flex-shrink-0 overflow-hidden",
|
|
10
|
-
children: /* @__PURE__ */
|
|
11
|
+
children: /* @__PURE__ */ l("img", {
|
|
11
12
|
src: r,
|
|
12
13
|
alt: e.name,
|
|
13
14
|
className: "size-full object-contain",
|
|
14
15
|
onError: () => n(!0)
|
|
15
16
|
})
|
|
16
|
-
}) : e.icon ? /* @__PURE__ */
|
|
17
|
+
}) : e.icon ? /* @__PURE__ */ l("div", {
|
|
17
18
|
className: "size-10 rounded-lg bg-[var(--color-accent-soft)] flex items-center justify-center flex-shrink-0",
|
|
18
19
|
children: e.icon
|
|
19
|
-
}) : /* @__PURE__ */
|
|
20
|
+
}) : /* @__PURE__ */ l("div", {
|
|
20
21
|
className: "size-10 rounded-lg bg-action-primary-bg flex items-center justify-center flex-shrink-0",
|
|
21
|
-
children: /* @__PURE__ */
|
|
22
|
+
children: /* @__PURE__ */ l("span", {
|
|
22
23
|
className: "text-action-primary-text font-bold text-sm",
|
|
23
24
|
children: e.name.substring(0, 2).toUpperCase()
|
|
24
25
|
})
|
|
25
26
|
});
|
|
26
|
-
},
|
|
27
|
-
let [
|
|
28
|
-
|
|
27
|
+
}, p = ({ open: o, onOpenChange: p, products: m, currentProductId: h, onProductChange: g }) => {
|
|
28
|
+
let [_, v] = c(""), y = m.length > d, b = s(() => a(m, _), [m, _]), x = (e) => {
|
|
29
|
+
g && g(e), p(!1);
|
|
29
30
|
};
|
|
30
|
-
return /* @__PURE__ */
|
|
31
|
-
open:
|
|
31
|
+
return /* @__PURE__ */ l(t, {
|
|
32
|
+
open: o,
|
|
32
33
|
onOpenChange: (e) => {
|
|
33
|
-
e ||
|
|
34
|
+
e || v(""), p(e);
|
|
34
35
|
},
|
|
35
|
-
children: /* @__PURE__ */
|
|
36
|
+
children: /* @__PURE__ */ u(n, {
|
|
36
37
|
side: "bottom",
|
|
37
38
|
className: "h-[60vh] flex flex-col p-0",
|
|
38
39
|
children: [
|
|
39
|
-
/* @__PURE__ */
|
|
40
|
+
/* @__PURE__ */ l(r, {
|
|
40
41
|
className: "px-4 pt-4 pb-2 border-b border-border-subtle",
|
|
41
|
-
children: /* @__PURE__ */
|
|
42
|
+
children: /* @__PURE__ */ l(i, {
|
|
42
43
|
className: "text-text-primary",
|
|
43
44
|
children: "Switch Product"
|
|
44
45
|
})
|
|
45
46
|
}),
|
|
46
|
-
|
|
47
|
+
y && /* @__PURE__ */ u("div", {
|
|
47
48
|
className: "relative px-4 py-2 border-b border-border-subtle",
|
|
48
|
-
children: [/* @__PURE__ */
|
|
49
|
+
children: [/* @__PURE__ */ l("svg", {
|
|
49
50
|
className: "pointer-events-none absolute left-7 top-1/2 -translate-y-1/2 size-4 text-text-muted",
|
|
50
51
|
fill: "none",
|
|
51
52
|
stroke: "currentColor",
|
|
52
53
|
viewBox: "0 0 24 24",
|
|
53
|
-
children: /* @__PURE__ */
|
|
54
|
+
children: /* @__PURE__ */ l("path", {
|
|
54
55
|
strokeLinecap: "round",
|
|
55
56
|
strokeLinejoin: "round",
|
|
56
57
|
strokeWidth: 2,
|
|
57
58
|
d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
|
|
58
59
|
})
|
|
59
|
-
}), /* @__PURE__ */
|
|
60
|
+
}), /* @__PURE__ */ l("input", {
|
|
60
61
|
type: "text",
|
|
61
|
-
value:
|
|
62
|
-
onChange: (e) =>
|
|
62
|
+
value: _,
|
|
63
|
+
onChange: (e) => v(e.target.value),
|
|
63
64
|
placeholder: "Search products…",
|
|
64
65
|
"aria-label": "Search products",
|
|
65
66
|
className: "w-full rounded-md border border-border-subtle bg-bg-surface py-2.5 pl-9 pr-3 text-sm text-text-primary placeholder:text-text-muted focus:border-transparent focus:outline-none focus:ring-2 focus:ring-[var(--color-action-primary-border)]"
|
|
66
67
|
})]
|
|
67
68
|
}),
|
|
68
|
-
/* @__PURE__ */
|
|
69
|
+
/* @__PURE__ */ u("div", {
|
|
69
70
|
className: "flex-1 overflow-y-auto py-2",
|
|
70
|
-
children: [
|
|
71
|
+
children: [b.length === 0 && /* @__PURE__ */ u("p", {
|
|
71
72
|
className: "px-4 py-6 text-center text-body-sm text-text-muted",
|
|
72
73
|
children: [
|
|
73
74
|
"No products match “",
|
|
74
|
-
|
|
75
|
+
_,
|
|
75
76
|
"”"
|
|
76
77
|
]
|
|
77
|
-
}),
|
|
78
|
-
onClick: () =>
|
|
79
|
-
className: `w-full flex items-center gap-4 px-4 py-3.5 text-body-sm transition-colors ${e.id
|
|
78
|
+
}), b.map((t) => /* @__PURE__ */ u("button", {
|
|
79
|
+
onClick: () => x(t),
|
|
80
|
+
className: `w-full flex items-center gap-4 px-4 py-3.5 text-body-sm transition-colors ${e(t.id, h) ? "bg-[var(--color-accent-soft)]" : "hover:bg-bg-sunken"}`,
|
|
80
81
|
children: [
|
|
81
|
-
/* @__PURE__ */
|
|
82
|
-
/* @__PURE__ */
|
|
82
|
+
/* @__PURE__ */ l(f, { product: t }),
|
|
83
|
+
/* @__PURE__ */ u("div", {
|
|
83
84
|
className: "flex-1 text-left min-w-0",
|
|
84
|
-
children: [/* @__PURE__ */
|
|
85
|
+
children: [/* @__PURE__ */ l("p", {
|
|
85
86
|
className: "font-medium text-text-primary",
|
|
86
|
-
children:
|
|
87
|
-
}),
|
|
87
|
+
children: t.name
|
|
88
|
+
}), t.description && /* @__PURE__ */ l("p", {
|
|
88
89
|
className: "text-xs text-text-secondary truncate",
|
|
89
|
-
children:
|
|
90
|
+
children: t.description
|
|
90
91
|
})]
|
|
91
92
|
}),
|
|
92
|
-
e.id
|
|
93
|
+
e(t.id, h) && /* @__PURE__ */ l("svg", {
|
|
93
94
|
className: "size-5 text-action-primary-bg flex-shrink-0",
|
|
94
95
|
fill: "currentColor",
|
|
95
96
|
viewBox: "0 0 20 20",
|
|
96
|
-
children: /* @__PURE__ */
|
|
97
|
+
children: /* @__PURE__ */ l("path", {
|
|
97
98
|
fillRule: "evenodd",
|
|
98
99
|
d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",
|
|
99
100
|
clipRule: "evenodd"
|
|
100
101
|
})
|
|
101
102
|
}),
|
|
102
|
-
|
|
103
|
+
t.url && !e(t.id, h) && /* @__PURE__ */ l("svg", {
|
|
103
104
|
className: "size-4 text-text-muted flex-shrink-0",
|
|
104
105
|
fill: "none",
|
|
105
106
|
stroke: "currentColor",
|
|
106
107
|
viewBox: "0 0 24 24",
|
|
107
|
-
children: /* @__PURE__ */
|
|
108
|
+
children: /* @__PURE__ */ l("path", {
|
|
108
109
|
strokeLinecap: "round",
|
|
109
110
|
strokeLinejoin: "round",
|
|
110
111
|
strokeWidth: 2,
|
|
@@ -112,11 +113,11 @@ var u = 6, d = ({ product: e }) => {
|
|
|
112
113
|
})
|
|
113
114
|
})
|
|
114
115
|
]
|
|
115
|
-
},
|
|
116
|
+
}, t.id))]
|
|
116
117
|
})
|
|
117
118
|
]
|
|
118
119
|
})
|
|
119
120
|
});
|
|
120
121
|
};
|
|
121
122
|
//#endregion
|
|
122
|
-
export {
|
|
123
|
+
export { p as ProductPickerSheet };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductSwitcher.d.ts","sourceRoot":"","sources":["../../src/chrome/ProductSwitcher.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ProductSwitcher.d.ts","sourceRoot":"","sources":["../../src/chrome/ProductSwitcher.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAYhC,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,GAAG,SAAS,CAKrB;AA0CD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EACzF,QAAQ,EAAE,CAAC,EAAE,EACb,KAAK,EAAE,MAAM,GACZ,CAAC,EAAE,CASL;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,GAAG,SAAS,CAOrB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAgNpD,CAAC"}
|
|
@@ -1,82 +1,83 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { isSameProductSlug as e } from "../shared/config/productSlug.js";
|
|
2
|
+
import { getProductsWithUrls as t } from "../shared/config/products.js";
|
|
3
|
+
import { useShellLabel as n } from "../shared/providers/shell/useShellLabel.js";
|
|
4
|
+
import { useEffect as r, useMemo as i, useRef as a, useState as o } from "react";
|
|
5
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
5
6
|
//#region src/chrome/ProductSwitcher.tsx
|
|
6
|
-
var
|
|
7
|
-
function
|
|
7
|
+
var l = 6;
|
|
8
|
+
function u(e) {
|
|
8
9
|
if (e?.logoUrl) return e.logoUrl;
|
|
9
10
|
let t = e?.url;
|
|
10
11
|
if (!(!t || t === "#")) return `${t.replace(/\/+$/, "")}/icons/icon.svg`;
|
|
11
12
|
}
|
|
12
|
-
var
|
|
13
|
-
let [r, i] =
|
|
14
|
-
return /* @__PURE__ */
|
|
13
|
+
var d = ({ product: e, sizeClass: t, textClass: n }) => {
|
|
14
|
+
let [r, i] = o(!1), a = u(e), c = !!a && !r;
|
|
15
|
+
return /* @__PURE__ */ s("div", {
|
|
15
16
|
className: `${t} rounded-md flex items-center justify-center flex-shrink-0 overflow-hidden ${c ? "bg-white p-0.5 ring-1 ring-border-default dark:ring-border-strong" : `text-text-inverse font-semibold ${n}`}`,
|
|
16
17
|
style: c ? void 0 : { backgroundColor: e?.color || "var(--color-action-primary-bg)" },
|
|
17
|
-
children: c ? /* @__PURE__ */
|
|
18
|
-
src:
|
|
18
|
+
children: c ? /* @__PURE__ */ s("img", {
|
|
19
|
+
src: a,
|
|
19
20
|
alt: e?.name ?? "",
|
|
20
21
|
className: "size-full object-contain",
|
|
21
22
|
onError: () => i(!0)
|
|
22
23
|
}) : e?.icon || e?.name.charAt(0)
|
|
23
24
|
});
|
|
24
25
|
};
|
|
25
|
-
function
|
|
26
|
+
function f(e, t) {
|
|
26
27
|
let n = t.trim().toLowerCase();
|
|
27
28
|
return n ? e.filter((e) => e.name.toLowerCase().includes(n) || e.id.toLowerCase().includes(n) || (e.description ? e.description.toLowerCase().includes(n) : !1)) : e;
|
|
28
29
|
}
|
|
29
|
-
function
|
|
30
|
-
return
|
|
31
|
-
id:
|
|
32
|
-
name:
|
|
30
|
+
function p(n, r) {
|
|
31
|
+
return n.find((t) => e(t.id, r)) || (r ? t().find((t) => e(t.id, r)) || {
|
|
32
|
+
id: r,
|
|
33
|
+
name: r,
|
|
33
34
|
url: "#"
|
|
34
|
-
} :
|
|
35
|
+
} : n[0]);
|
|
35
36
|
}
|
|
36
|
-
var
|
|
37
|
-
let
|
|
38
|
-
|
|
37
|
+
var m = ({ products: t, currentProductId: u, onProductChange: m, compact: h = !1 }) => {
|
|
38
|
+
let g = n(), [_, v] = o(!1), [y, b] = o(""), x = a(null), S = a(null), C = p(t, u), w = t.length > l, T = i(() => f(t, y), [t, y]);
|
|
39
|
+
r(() => {
|
|
39
40
|
let e = (e) => {
|
|
40
|
-
|
|
41
|
+
x.current && !x.current.contains(e.target) && v(!1);
|
|
41
42
|
};
|
|
42
|
-
if (
|
|
43
|
-
}, [
|
|
44
|
-
if (!
|
|
45
|
-
|
|
43
|
+
if (_) return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
44
|
+
}, [_]), r(() => {
|
|
45
|
+
if (!_) {
|
|
46
|
+
b("");
|
|
46
47
|
return;
|
|
47
48
|
}
|
|
48
|
-
if (
|
|
49
|
-
let e = setTimeout(() =>
|
|
49
|
+
if (w) {
|
|
50
|
+
let e = setTimeout(() => S.current?.focus(), 60);
|
|
50
51
|
return () => clearTimeout(e);
|
|
51
52
|
}
|
|
52
|
-
}, [
|
|
53
|
-
let
|
|
54
|
-
e.comingSoon || (
|
|
53
|
+
}, [_, w]);
|
|
54
|
+
let E = (e) => {
|
|
55
|
+
e.comingSoon || (m ? m(e) : window.location.href = e.url, v(!1));
|
|
55
56
|
};
|
|
56
|
-
return /* @__PURE__ */
|
|
57
|
+
return /* @__PURE__ */ c("div", {
|
|
57
58
|
className: "relative",
|
|
58
|
-
ref:
|
|
59
|
-
children: [/* @__PURE__ */
|
|
60
|
-
onClick: () =>
|
|
61
|
-
className: `flex items-center gap-2 px-3 py-2 rounded-button hover:bg-bg-sunken transition-colors ${
|
|
62
|
-
"aria-label":
|
|
63
|
-
"aria-expanded":
|
|
59
|
+
ref: x,
|
|
60
|
+
children: [/* @__PURE__ */ c("button", {
|
|
61
|
+
onClick: () => v(!_),
|
|
62
|
+
className: `flex items-center gap-2 px-3 py-2 rounded-button hover:bg-bg-sunken transition-colors ${_ ? "bg-bg-sunken" : ""}`,
|
|
63
|
+
"aria-label": g("productSwitcher.title", "Switch product"),
|
|
64
|
+
"aria-expanded": _,
|
|
64
65
|
children: [
|
|
65
|
-
/* @__PURE__ */
|
|
66
|
-
product:
|
|
66
|
+
/* @__PURE__ */ s(d, {
|
|
67
|
+
product: C,
|
|
67
68
|
sizeClass: "size-6",
|
|
68
69
|
textClass: "text-xs"
|
|
69
70
|
}),
|
|
70
|
-
!
|
|
71
|
+
!h && /* @__PURE__ */ s("span", {
|
|
71
72
|
className: "text-body-sm font-medium text-text-primary",
|
|
72
|
-
children:
|
|
73
|
+
children: C?.name
|
|
73
74
|
}),
|
|
74
|
-
!
|
|
75
|
-
className: `w-4 h-4 text-text-secondary transition-transform ${
|
|
75
|
+
!h && /* @__PURE__ */ s("svg", {
|
|
76
|
+
className: `w-4 h-4 text-text-secondary transition-transform ${_ ? "rotate-180" : ""}`,
|
|
76
77
|
fill: "none",
|
|
77
78
|
stroke: "currentColor",
|
|
78
79
|
viewBox: "0 0 24 24",
|
|
79
|
-
children: /* @__PURE__ */
|
|
80
|
+
children: /* @__PURE__ */ s("path", {
|
|
80
81
|
strokeLinecap: "round",
|
|
81
82
|
strokeLinejoin: "round",
|
|
82
83
|
strokeWidth: 2,
|
|
@@ -84,54 +85,54 @@ var p = ({ products: e, currentProductId: l, onProductChange: p, compact: m = !1
|
|
|
84
85
|
})
|
|
85
86
|
})
|
|
86
87
|
]
|
|
87
|
-
}),
|
|
88
|
+
}), _ && /* @__PURE__ */ c("div", {
|
|
88
89
|
className: "absolute right-0 mt-2 w-[calc(100vw-1.5rem)] sm:w-72 max-w-72 bg-bg-elevated border border-border-subtle rounded-card shadow-[var(--shadow-elevation-4)] z-50 py-2 overflow-hidden animate-in fade-in-0 zoom-in-95 slide-in-from-top-2 duration-200",
|
|
89
90
|
children: [
|
|
90
|
-
/* @__PURE__ */
|
|
91
|
+
/* @__PURE__ */ s("div", {
|
|
91
92
|
className: "px-4 py-2 border-b border-border-subtle",
|
|
92
|
-
children: /* @__PURE__ */
|
|
93
|
+
children: /* @__PURE__ */ s("p", {
|
|
93
94
|
className: "text-[11px] font-medium text-text-muted uppercase tracking-wider",
|
|
94
|
-
children:
|
|
95
|
+
children: g("productSwitcher.title", "Switch Product")
|
|
95
96
|
})
|
|
96
97
|
}),
|
|
97
|
-
|
|
98
|
+
w && /* @__PURE__ */ c("div", {
|
|
98
99
|
className: "relative px-3 py-2 border-b border-border-subtle",
|
|
99
100
|
children: [
|
|
100
|
-
/* @__PURE__ */
|
|
101
|
+
/* @__PURE__ */ s("svg", {
|
|
101
102
|
className: "pointer-events-none absolute left-6 top-1/2 -translate-y-1/2 size-4 text-text-muted",
|
|
102
103
|
fill: "none",
|
|
103
104
|
stroke: "currentColor",
|
|
104
105
|
viewBox: "0 0 24 24",
|
|
105
|
-
children: /* @__PURE__ */
|
|
106
|
+
children: /* @__PURE__ */ s("path", {
|
|
106
107
|
strokeLinecap: "round",
|
|
107
108
|
strokeLinejoin: "round",
|
|
108
109
|
strokeWidth: 2,
|
|
109
110
|
d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
|
|
110
111
|
})
|
|
111
112
|
}),
|
|
112
|
-
/* @__PURE__ */
|
|
113
|
-
ref:
|
|
113
|
+
/* @__PURE__ */ s("input", {
|
|
114
|
+
ref: S,
|
|
114
115
|
type: "text",
|
|
115
|
-
value:
|
|
116
|
-
onChange: (e) =>
|
|
116
|
+
value: y,
|
|
117
|
+
onChange: (e) => b(e.target.value),
|
|
117
118
|
onKeyDown: (e) => {
|
|
118
|
-
e.key === "Escape" && (
|
|
119
|
+
e.key === "Escape" && (y ? (e.stopPropagation(), b("")) : v(!1));
|
|
119
120
|
},
|
|
120
|
-
placeholder:
|
|
121
|
-
"aria-label":
|
|
121
|
+
placeholder: g("productSwitcher.searchPlaceholder", "Search products…"),
|
|
122
|
+
"aria-label": g("productSwitcher.searchAria", "Search products"),
|
|
122
123
|
className: "w-full rounded-md border border-border-subtle bg-bg-surface py-2 pl-9 pr-8 text-sm text-text-primary placeholder:text-text-muted transition-all duration-200 focus:border-transparent focus:outline-none focus:ring-2 focus:ring-[var(--color-action-primary-border)]"
|
|
123
124
|
}),
|
|
124
|
-
|
|
125
|
+
y && /* @__PURE__ */ s("button", {
|
|
125
126
|
type: "button",
|
|
126
|
-
onClick: () =>
|
|
127
|
-
"aria-label":
|
|
127
|
+
onClick: () => b(""),
|
|
128
|
+
"aria-label": g("common.clearSearch", "Clear search"),
|
|
128
129
|
className: "absolute right-5 top-1/2 -translate-y-1/2 rounded-button p-1 text-text-muted transition-colors hover:bg-bg-sunken hover:text-text-primary",
|
|
129
|
-
children: /* @__PURE__ */
|
|
130
|
+
children: /* @__PURE__ */ s("svg", {
|
|
130
131
|
className: "size-4",
|
|
131
132
|
fill: "none",
|
|
132
133
|
stroke: "currentColor",
|
|
133
134
|
viewBox: "0 0 24 24",
|
|
134
|
-
children: /* @__PURE__ */
|
|
135
|
+
children: /* @__PURE__ */ s("path", {
|
|
135
136
|
strokeLinecap: "round",
|
|
136
137
|
strokeLinejoin: "round",
|
|
137
138
|
strokeWidth: 2,
|
|
@@ -141,50 +142,50 @@ var p = ({ products: e, currentProductId: l, onProductChange: p, compact: m = !1
|
|
|
141
142
|
})
|
|
142
143
|
]
|
|
143
144
|
}),
|
|
144
|
-
/* @__PURE__ */
|
|
145
|
+
/* @__PURE__ */ c("div", {
|
|
145
146
|
className: "py-1 max-h-96 overflow-y-auto",
|
|
146
|
-
children: [
|
|
147
|
+
children: [T.length === 0 && /* @__PURE__ */ c("p", {
|
|
147
148
|
className: "px-4 py-6 text-center text-body-sm text-text-muted",
|
|
148
149
|
children: [
|
|
149
150
|
"No products match “",
|
|
150
|
-
|
|
151
|
+
y,
|
|
151
152
|
"”"
|
|
152
153
|
]
|
|
153
|
-
}),
|
|
154
|
-
onClick: () =>
|
|
155
|
-
disabled:
|
|
156
|
-
"aria-disabled":
|
|
157
|
-
title:
|
|
158
|
-
className: `w-full flex items-center gap-3 px-4 py-2.5 text-body-sm transition-colors ${
|
|
154
|
+
}), T.map((t) => /* @__PURE__ */ c("button", {
|
|
155
|
+
onClick: () => E(t),
|
|
156
|
+
disabled: t.comingSoon,
|
|
157
|
+
"aria-disabled": t.comingSoon,
|
|
158
|
+
title: t.comingSoon ? g("productSwitcher.soon", "Soon") : t.name,
|
|
159
|
+
className: `w-full flex items-center gap-3 px-4 py-2.5 text-body-sm transition-colors ${t.comingSoon ? "text-text-muted cursor-not-allowed opacity-60" : e(t.id, u) ? "bg-[var(--color-accent-soft)] text-text-primary font-medium" : "text-text-primary hover:bg-bg-sunken"}`,
|
|
159
160
|
children: [
|
|
160
|
-
/* @__PURE__ */
|
|
161
|
-
product:
|
|
161
|
+
/* @__PURE__ */ s(d, {
|
|
162
|
+
product: t,
|
|
162
163
|
sizeClass: "size-8",
|
|
163
164
|
textClass: "text-sm"
|
|
164
165
|
}),
|
|
165
|
-
/* @__PURE__ */
|
|
166
|
+
/* @__PURE__ */ s("span", {
|
|
166
167
|
className: "flex-1 text-left leading-tight",
|
|
167
|
-
children:
|
|
168
|
+
children: t.name
|
|
168
169
|
}),
|
|
169
|
-
|
|
170
|
+
t.comingSoon ? /* @__PURE__ */ s("span", {
|
|
170
171
|
className: "shrink-0 whitespace-nowrap rounded-full border border-border-subtle bg-bg-sunken px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-text-secondary",
|
|
171
|
-
children:
|
|
172
|
-
}) : e.id
|
|
172
|
+
children: g("productSwitcher.soon", "Soon")
|
|
173
|
+
}) : e(t.id, u) && /* @__PURE__ */ s("svg", {
|
|
173
174
|
className: "size-5 text-action-primary-bg",
|
|
174
175
|
fill: "currentColor",
|
|
175
176
|
viewBox: "0 0 20 20",
|
|
176
|
-
children: /* @__PURE__ */
|
|
177
|
+
children: /* @__PURE__ */ s("path", {
|
|
177
178
|
fillRule: "evenodd",
|
|
178
179
|
d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",
|
|
179
180
|
clipRule: "evenodd"
|
|
180
181
|
})
|
|
181
182
|
})
|
|
182
183
|
]
|
|
183
|
-
},
|
|
184
|
+
}, t.id))]
|
|
184
185
|
})
|
|
185
186
|
]
|
|
186
187
|
})]
|
|
187
188
|
});
|
|
188
189
|
};
|
|
189
190
|
//#endregion
|
|
190
|
-
export {
|
|
191
|
+
export { m as ProductSwitcher, f as filterProducts, u as resolveProductLogo };
|
|
@@ -79,9 +79,11 @@ export interface AssistantMessageMetadata {
|
|
|
79
79
|
* report, "I see the same chat in the normal conversation tab, both are
|
|
80
80
|
* separate, don't confuse".
|
|
81
81
|
*
|
|
82
|
-
* Stamped at send time and persisted, so the distinction survives a reload
|
|
83
|
-
*
|
|
84
|
-
*
|
|
82
|
+
* Stamped at send time and persisted, so the distinction survives a reload.
|
|
83
|
+
* ★ BOFF-7335: a conversation read back from server history enters the store
|
|
84
|
+
* ONLY through `fromHistoryEntry` (history/historyMapping), which rebuilds
|
|
85
|
+
* this marker from the saved entry — `voice: true` with or without a session
|
|
86
|
+
* id — so a spoken turn reopened on any device is still spoken, never typed.
|
|
85
87
|
*/
|
|
86
88
|
voice?: boolean;
|
|
87
89
|
/**
|
|
@@ -149,8 +151,38 @@ export interface AssistantMessageMetadata {
|
|
|
149
151
|
* error: the turn still closed as a normal answer.
|
|
150
152
|
*/
|
|
151
153
|
incomplete?: true;
|
|
154
|
+
/**
|
|
155
|
+
* ★ BOFF-7335: the SAVED copy of this message was cut to fit the gateway's
|
|
156
|
+
* request limit (the local copy is always complete). Only ever set on a
|
|
157
|
+
* message read back from server history.
|
|
158
|
+
*/
|
|
159
|
+
truncated?: true;
|
|
160
|
+
/**
|
|
161
|
+
* ★ BOFF-7335: structured records of what a turn proposed or did — a generic
|
|
162
|
+
* slot, deliberately not the approval schema. A record is history, never an
|
|
163
|
+
* instruction: nothing re-runs, re-approves or re-sends it on reopen, and a
|
|
164
|
+
* record still `proposed` when it is read back is shown as `expired`.
|
|
165
|
+
*/
|
|
166
|
+
records?: readonly AssistantHistoryRecord[];
|
|
152
167
|
[key: string]: unknown;
|
|
153
168
|
}
|
|
169
|
+
/** Where a recorded action stands. `proposed` never survives a reload (it reads back as `expired`). */
|
|
170
|
+
export type AssistantHistoryRecordStatus = "proposed" | "applied" | "failed" | "expired" | "cancelled";
|
|
171
|
+
/**
|
|
172
|
+
* One structured record on a message (BOFF-7335). `kind` is namespaced by the
|
|
173
|
+
* feature that writes it (`[a-z][a-z0-9._-]*`) and `version` versions its
|
|
174
|
+
* `data`, so a later feature can add records without a schema change on either
|
|
175
|
+
* side — and without this file knowing anything about approvals.
|
|
176
|
+
*/
|
|
177
|
+
export interface AssistantHistoryRecord {
|
|
178
|
+
kind: string;
|
|
179
|
+
version: number;
|
|
180
|
+
status?: AssistantHistoryRecordStatus;
|
|
181
|
+
summary?: string;
|
|
182
|
+
data?: Record<string, unknown>;
|
|
183
|
+
/** ISO time the record was written. */
|
|
184
|
+
at?: string;
|
|
185
|
+
}
|
|
154
186
|
export interface Message {
|
|
155
187
|
id: string;
|
|
156
188
|
role: "user" | "assistant" | "system";
|
|
@@ -161,7 +193,20 @@ export interface Message {
|
|
|
161
193
|
output: number;
|
|
162
194
|
};
|
|
163
195
|
metadata?: AssistantMessageMetadata;
|
|
196
|
+
/**
|
|
197
|
+
* ★ BOFF-7335: where this message stands with server history — `pending`
|
|
198
|
+
* once it is queued to be saved, `saved` once the server has it (or it was
|
|
199
|
+
* read from the server). Absent: device-only, or history is off.
|
|
200
|
+
*
|
|
201
|
+
* Top-level, never inside `metadata`: `patchMessage` REPLACES metadata, so a
|
|
202
|
+
* flag kept there would be erased by the next reply update.
|
|
203
|
+
*/
|
|
204
|
+
historyState?: MessageHistoryState;
|
|
205
|
+
/** ★ BOFF-7335: the message's position in the saved conversation (1..n), once known. */
|
|
206
|
+
historySeq?: number;
|
|
164
207
|
}
|
|
208
|
+
/** See `Message.historyState`. */
|
|
209
|
+
export type MessageHistoryState = "pending" | "saved";
|
|
165
210
|
export interface Conversation {
|
|
166
211
|
id: string;
|
|
167
212
|
title: string;
|
|
@@ -198,6 +243,49 @@ export interface Conversation {
|
|
|
198
243
|
* ★ `mode` stays the transport value either way: Auto never sends as itself.
|
|
199
244
|
*/
|
|
200
245
|
routedBy?: ConversationRouting;
|
|
246
|
+
/**
|
|
247
|
+
* ★ BOFF-7335: this conversation is backed by server history. Absent means
|
|
248
|
+
* DEVICE-ONLY — every conversation created before history was switched on,
|
|
249
|
+
* or while the product had not opted in, or while no account or workspace
|
|
250
|
+
* was known. A device-only conversation is never uploaded later.
|
|
251
|
+
*/
|
|
252
|
+
sync?: ConversationSyncStamp;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* The server-history stamp on a conversation (BOFF-7335).
|
|
256
|
+
*
|
|
257
|
+
* ★★ The owner — product, workspace, actor — is fixed when the conversation is
|
|
258
|
+
* created and never changes. A turn is saved only while all three match the
|
|
259
|
+
* active scope, so a conversation can never be written into another
|
|
260
|
+
* workspace's or another account's history.
|
|
261
|
+
*
|
|
262
|
+
* ★ Every field is optional to older builds: they spread conversations and
|
|
263
|
+
* messages in every action and in `partialize`, so a product rolled back to an
|
|
264
|
+
* earlier fe-libs keeps this stamp intact instead of stripping it.
|
|
265
|
+
*/
|
|
266
|
+
export interface ConversationSyncStamp {
|
|
267
|
+
v: 1;
|
|
268
|
+
product: string;
|
|
269
|
+
workspaceId: string;
|
|
270
|
+
actorId: string;
|
|
271
|
+
/** `created` on this device · `remote` read from the server · `legacy` saved before v2 (read-only). */
|
|
272
|
+
origin: "created" | "remote" | "legacy";
|
|
273
|
+
/** The server's own id, once known. */
|
|
274
|
+
serverId?: string;
|
|
275
|
+
/** The server revision of the conversation last applied here. */
|
|
276
|
+
revision?: number;
|
|
277
|
+
/** The highest CONTIGUOUS server `seq` held locally. */
|
|
278
|
+
lastSeq?: number;
|
|
279
|
+
/** Older messages exist on the server than are held here. */
|
|
280
|
+
hasOlder?: true;
|
|
281
|
+
/** Where "Show earlier messages" continues from. */
|
|
282
|
+
olderCursor?: string;
|
|
283
|
+
/** Renamed on this device: the server's title never overwrites it (renames are not synced). */
|
|
284
|
+
titleLocked?: true;
|
|
285
|
+
/** Why the latest turns are not being saved. */
|
|
286
|
+
blocked?: "quota" | "invalid" | "scope";
|
|
287
|
+
/** When it was last opened here (ISO), for cache eviction. */
|
|
288
|
+
openedAt?: string;
|
|
201
289
|
}
|
|
202
290
|
/**
|
|
203
291
|
* How a conversation came by its mode. See `Conversation.routedBy` and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/conversation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,cAAc,GACd,SAAS,GACT,UAAU,GACV,OAAO,CAAC;AAEZ,MAAM,MAAM,2BAA2B,GACnC,MAAM,GACN,cAAc,GACd,YAAY,GACZ,WAAW,GACX,UAAU,GACV,OAAO,CAAC;AAEZ;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qEAAqE;AACrE,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACrC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAC3C;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,21 @@ import { AssistantSandboxAuthContext } from './types';
|
|
|
15
15
|
*/
|
|
16
16
|
export { isQuotaExhaustedError } from './quota';
|
|
17
17
|
export declare function buildSandboxContextInput(workspaceId: string, authContext?: AssistantSandboxAuthContext): Record<string, unknown>;
|
|
18
|
+
/**
|
|
19
|
+
* ONE attempt, no retry — the caller owns retry.
|
|
20
|
+
*
|
|
21
|
+
* ★ Exported for server history (BOFF-7335), whose engine retries with its own
|
|
22
|
+
* backoff and classifier and must never be retried blindly underneath: a
|
|
23
|
+
* blind resend of a save that did land is harmless (saves are idempotent), but
|
|
24
|
+
* a hidden retry loop hides how long the gateway was actually down.
|
|
25
|
+
*/
|
|
26
|
+
export declare function executeAssistantGraphQLOnce<TData>(params: {
|
|
27
|
+
query: string;
|
|
28
|
+
operationName: string;
|
|
29
|
+
variables: Record<string, unknown>;
|
|
30
|
+
workspaceId: string;
|
|
31
|
+
authContext?: AssistantSandboxAuthContext;
|
|
32
|
+
}): Promise<TData>;
|
|
18
33
|
export declare function executeSandboxGraphQL<TData>(params: {
|
|
19
34
|
query: string;
|
|
20
35
|
operationName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gatewayClient.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/gatewayClient.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAe3D;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,2BAA2B,GACxC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB;
|
|
1
|
+
{"version":3,"file":"gatewayClient.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/gatewayClient.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAe3D;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,2BAA2B,GACxC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,2BAA2B,CAAC;CAC3C,GAAG,OAAO,CAAC,KAAK,CAAC,CA6BjB;AAED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,2BAA2B,CAAC;CAC3C,GAAG,OAAO,CAAC,KAAK,CAAC,CAyBjB"}
|