@flamingo-stack/openframe-frontend-core 0.0.715 → 0.0.717
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/chat-protocol/index.cjs +23 -14
- package/dist/chat-protocol/index.js +23 -14
- package/dist/chat-protocol/nats-decoder.d.ts.map +1 -1
- package/dist/chat-protocol/source-metadata.d.ts +11 -2
- package/dist/chat-protocol/source-metadata.d.ts.map +1 -1
- package/dist/{chunk-WEEZSGFD.cjs → chunk-2AI2E3O2.cjs} +65 -65
- package/dist/{chunk-KSEOIICU.js → chunk-2EK7PA73.js} +3 -3
- package/dist/{chunk-AQI74KC7.js → chunk-2X2P3VHF.js} +5 -5
- package/dist/{chunk-4GFAKUHF.js → chunk-3MJPCKB6.js} +2 -2
- package/dist/{chunk-W4CS6UJS.cjs → chunk-3QAMMWV2.cjs} +8 -8
- package/dist/{chunk-JHSPIDV5.js → chunk-47FISYO5.js} +3 -3
- package/dist/{chunk-ZSJ6WWFH.cjs → chunk-5MF3NMYC.cjs} +451 -392
- package/dist/{chunk-VKIRTB7K.js → chunk-6MZI5SQ4.js} +2 -2
- package/dist/{chunk-2LZ3IYGT.js → chunk-B5XU6KOA.js} +2269 -2210
- package/dist/{chunk-QW7KTWLB.js → chunk-E6FLX4TX.js} +3 -3
- package/dist/{chunk-ZX7SCPLO.cjs → chunk-E7YCPY7K.cjs} +3 -3
- package/dist/{chunk-BIFUUH4K.js → chunk-FGKSAQR3.js} +5 -5
- package/dist/{chunk-EOKSKJSS.cjs → chunk-FROXS52D.cjs} +11 -11
- package/dist/{chunk-GXHWSAV6.cjs → chunk-J3Q53TWW.cjs} +26 -26
- package/dist/{chunk-ROBQ5TR7.js → chunk-JH2SIWPQ.js} +28 -17
- package/dist/{chunk-DDWFCWOE.js → chunk-JPD4NXH6.js} +1 -1
- package/dist/{chunk-LTLHCAZY.cjs → chunk-LANNTTKP.cjs} +9 -9
- package/dist/{chunk-JVCAK4W3.cjs → chunk-LE5WKGJV.cjs} +3 -3
- package/dist/{chunk-XFFIUXVI.cjs → chunk-M2A5SC6H.cjs} +9 -9
- package/dist/{chunk-5MMCYJAJ.cjs → chunk-NB6EWUDE.cjs} +33 -33
- package/dist/{chunk-H5R7U2D2.js → chunk-NZ5BHDFZ.js} +1 -1
- package/dist/{chunk-E25A235W.cjs → chunk-OHLBO4LM.cjs} +3 -3
- package/dist/{chunk-DI5VLY3G.js → chunk-PD4W2VMH.js} +1 -1
- package/dist/{chunk-OQVGA3YE.js → chunk-TYVS64YN.js} +2 -2
- package/dist/{chunk-EORJFB2Z.cjs → chunk-U3TP4UGA.cjs} +6 -6
- package/dist/{chunk-HETQETPV.cjs → chunk-UWQWMGJ7.cjs} +28 -17
- package/dist/{chunk-U4WCFIYB.cjs → chunk-VYKFM2NB.cjs} +35 -35
- package/dist/{chunk-YBS5QGON.js → chunk-VZI5BA4L.js} +1 -1
- package/dist/{chunk-VBDGMXZO.js → chunk-WH5GJSID.js} +2 -2
- package/dist/{chunk-S66W6HNZ.cjs → chunk-X3RVDBXU.cjs} +16 -16
- package/dist/{cloud-tenants-MI7APZJD.cjs → cloud-tenants-KDWTVHSI.cjs} +3 -3
- package/dist/{cloud-tenants-NSEVWC26.js → cloud-tenants-LNC26WY2.js} +2 -2
- package/dist/components/case-studies/index.cjs +14 -14
- package/dist/components/case-studies/index.js +3 -3
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/chat/types/message.types.d.ts +20 -16
- package/dist/components/chat/types/message.types.d.ts.map +1 -1
- package/dist/components/chat/types/unified-chat-state.types.d.ts +1 -1
- package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +4 -4
- package/dist/components/contact/index.js +3 -3
- package/dist/components/docs/index.cjs +7 -7
- package/dist/components/docs/index.js +6 -6
- package/dist/components/embeds/index.cjs +4 -4
- package/dist/components/embeds/index.js +3 -3
- package/dist/components/faq/index.cjs +4 -4
- package/dist/components/faq/index.js +3 -3
- package/dist/components/features/approval-level.d.ts +30 -22
- package/dist/components/features/approval-level.d.ts.map +1 -1
- package/dist/components/features/index.cjs +3 -5
- package/dist/components/features/index.js +4 -6
- package/dist/components/help-center-pages/index.cjs +62 -62
- package/dist/components/help-center-pages/index.js +13 -13
- package/dist/components/index.cjs +33 -33
- package/dist/components/index.js +16 -16
- package/dist/components/meeting-scheduler/index.cjs +19 -19
- package/dist/components/meeting-scheduler/index.js +2 -2
- package/dist/components/navigation/index.cjs +6 -6
- package/dist/components/navigation/index.js +5 -5
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/product-demo/index.cjs +6 -6
- package/dist/components/product-demo/index.js +6 -6
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/ui/analyzing-state.d.ts +17 -0
- package/dist/components/ui/analyzing-state.d.ts.map +1 -0
- package/dist/components/ui/feature-list.d.ts +4 -4
- package/dist/components/ui/feature-list.d.ts.map +1 -1
- package/dist/components/ui/incident-feed.d.ts +4 -1
- package/dist/components/ui/incident-feed.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +5 -3
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +4 -2
- package/dist/components/ui/playback-toggle.d.ts +10 -4
- package/dist/components/ui/playback-toggle.d.ts.map +1 -1
- package/dist/components/ui/tab-navigation.d.ts +7 -1
- package/dist/components/ui/tab-navigation.d.ts.map +1 -1
- package/dist/{devices-6NMK4EXV.cjs → devices-ATHYJUVQ.cjs} +4 -4
- package/dist/{devices-W3VKQEVZ.js → devices-NYCRQ3PG.js} +2 -2
- package/dist/index.cjs +7 -7
- package/dist/index.js +10 -10
- package/dist/{knowledge-YWCB7HNC.js → knowledge-DEKYJXBS.js} +2 -2
- package/dist/{knowledge-GDMGHFEC.cjs → knowledge-EHNRYT7U.cjs} +4 -4
- package/dist/{logs-7QDRV3GN.cjs → logs-3V765P7O.cjs} +11 -11
- package/dist/{logs-E742S5A2.js → logs-Q7YFIVYI.js} +2 -2
- package/dist/{policies-XTPAKRHI.js → policies-BTIENK5A.js} +2 -2
- package/dist/{policies-BEVF6AEM.cjs → policies-TXU5AIXS.cjs} +7 -7
- package/dist/{software-update-KPHX4XQ7.cjs → software-update-MINTICZY.cjs} +7 -7
- package/dist/{software-update-FXWIEKSW.js → software-update-SW2HOBHW.js} +2 -2
- package/package.json +1 -1
- package/src/chat-protocol/nats-decoder.ts +10 -8
- package/src/chat-protocol/source-metadata.ts +25 -2
- package/src/components/chat/types/message.types.ts +21 -15
- package/src/components/chat/types/unified-chat-state.types.ts +1 -1
- package/src/components/chat/utils/process-historical-messages.ts +12 -4
- package/src/components/features/approval-level.tsx +62 -44
- package/src/components/ui/analyzing-state.tsx +57 -0
- package/src/components/ui/feature-list.tsx +26 -16
- package/src/components/ui/incident-feed.tsx +6 -2
- package/src/components/ui/index.ts +1 -0
- package/src/components/ui/playback-toggle.tsx +12 -6
- package/src/components/ui/tab-navigation.tsx +12 -1
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
ShellTypeBadge,
|
|
9
9
|
SoftwareInfo,
|
|
10
10
|
SoftwareSourceBadge
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-VZI5BA4L.js";
|
|
12
12
|
import {
|
|
13
13
|
AppHeader,
|
|
14
14
|
AppLayout,
|
|
@@ -33,15 +33,15 @@ import {
|
|
|
33
33
|
isMegaMenu,
|
|
34
34
|
navLinkLabel,
|
|
35
35
|
siteNavHasMobileMenus
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-47FISYO5.js";
|
|
37
37
|
import {
|
|
38
38
|
MobileNavigationDropdown,
|
|
39
39
|
MultiLevelNavigation,
|
|
40
40
|
StickySectionNav,
|
|
41
41
|
useScrollSpy,
|
|
42
42
|
useSectionNavigation
|
|
43
|
-
} from "./chunk-
|
|
44
|
-
import "./chunk-
|
|
43
|
+
} from "./chunk-NZ5BHDFZ.js";
|
|
44
|
+
import "./chunk-JPD4NXH6.js";
|
|
45
45
|
import {
|
|
46
46
|
AIEnrichButton,
|
|
47
47
|
AIEnrichSection,
|
|
@@ -73,6 +73,7 @@ import {
|
|
|
73
73
|
AlertDialogTrigger,
|
|
74
74
|
AlertTitle,
|
|
75
75
|
AllowedDomainsInput,
|
|
76
|
+
AnalyzingState,
|
|
76
77
|
AnnouncementBarView,
|
|
77
78
|
AppLayoutDrawerBody,
|
|
78
79
|
AppLayoutDrawerClose,
|
|
@@ -85,8 +86,7 @@ import {
|
|
|
85
86
|
AppLayoutDrawerTrigger,
|
|
86
87
|
AppStoreBadge,
|
|
87
88
|
AppWindowFrame,
|
|
88
|
-
|
|
89
|
-
ApprovalLevelMark,
|
|
89
|
+
ApprovalLevelView,
|
|
90
90
|
ApprovalRequestNotificationTile,
|
|
91
91
|
ArrayEntryManager,
|
|
92
92
|
ArticleDetailLayout,
|
|
@@ -565,7 +565,7 @@ import {
|
|
|
565
565
|
useTrackerClock,
|
|
566
566
|
useWalkthroughVideo,
|
|
567
567
|
usersCountLabel
|
|
568
|
-
} from "./chunk-
|
|
568
|
+
} from "./chunk-B5XU6KOA.js";
|
|
569
569
|
import {
|
|
570
570
|
Board,
|
|
571
571
|
BoardColumn,
|
|
@@ -1173,7 +1173,7 @@ import {
|
|
|
1173
1173
|
withFirstTouchAttribution,
|
|
1174
1174
|
withWalkthroughOpenParam,
|
|
1175
1175
|
writeDismissCookie
|
|
1176
|
-
} from "./chunk-
|
|
1176
|
+
} from "./chunk-JH2SIWPQ.js";
|
|
1177
1177
|
import {
|
|
1178
1178
|
ApprovalBatchMessage,
|
|
1179
1179
|
ApprovalStatusTag,
|
|
@@ -2129,6 +2129,7 @@ export {
|
|
|
2129
2129
|
AlertTitle,
|
|
2130
2130
|
AlertTriangleIcon,
|
|
2131
2131
|
AllowedDomainsInput,
|
|
2132
|
+
AnalyzingState,
|
|
2132
2133
|
AnnouncementBarView,
|
|
2133
2134
|
AppHeader,
|
|
2134
2135
|
AppLayout,
|
|
@@ -2145,8 +2146,7 @@ export {
|
|
|
2145
2146
|
AppWindowFrame,
|
|
2146
2147
|
AppleIcon,
|
|
2147
2148
|
ApprovalBatchMessage,
|
|
2148
|
-
|
|
2149
|
-
ApprovalLevelMark,
|
|
2149
|
+
ApprovalLevelView,
|
|
2150
2150
|
ApprovalRequestMessage,
|
|
2151
2151
|
ApprovalRequestNotificationTile,
|
|
2152
2152
|
ApprovalStatusTag,
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-CYUUHFXL.js";
|
|
9
9
|
import {
|
|
10
10
|
KnowledgeBaseArticleView
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-B5XU6KOA.js";
|
|
12
12
|
import "./chunk-ILNN6QRW.js";
|
|
13
13
|
import "./chunk-LQYXMEYF.js";
|
|
14
14
|
import "./chunk-4JPLYOS6.js";
|
|
@@ -21,7 +21,7 @@ import "./chunk-G3GRYDMS.js";
|
|
|
21
21
|
import "./chunk-PLWMIU72.js";
|
|
22
22
|
import {
|
|
23
23
|
SimpleMarkdownRenderer
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-JH2SIWPQ.js";
|
|
25
25
|
import "./chunk-2NASBO7O.js";
|
|
26
26
|
import "./chunk-KBJJQFYU.js";
|
|
27
27
|
import "./chunk-P3JMAMHP.js";
|
|
@@ -8,7 +8,7 @@ var _chunkII4QMH26cjs = require('./chunk-II4QMH26.cjs');
|
|
|
8
8
|
var _chunkKHXZFLINcjs = require('./chunk-KHXZFLIN.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunk5MF3NMYCcjs = require('./chunk-5MF3NMYC.cjs');
|
|
12
12
|
require('./chunk-4HJRHEXD.cjs');
|
|
13
13
|
require('./chunk-HQQE74RO.cjs');
|
|
14
14
|
require('./chunk-DEY6XXGO.cjs');
|
|
@@ -21,7 +21,7 @@ require('./chunk-AUMKE74M.cjs');
|
|
|
21
21
|
require('./chunk-LX22Y43B.cjs');
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _chunkUWQWMGJ7cjs = require('./chunk-UWQWMGJ7.cjs');
|
|
25
25
|
require('./chunk-KT3U3ZRP.cjs');
|
|
26
26
|
require('./chunk-DC4RTYWK.cjs');
|
|
27
27
|
require('./chunk-FFT56TYB.cjs');
|
|
@@ -96,10 +96,10 @@ function KnowledgeScreen(_props) {
|
|
|
96
96
|
const cast = _chunkII4QMH26cjs.useProductDemoCast.call(void 0, );
|
|
97
97
|
const fixture = _react.useMemo.call(void 0, () => buildKnowledgeFixture(cast), [cast]);
|
|
98
98
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
99
|
-
|
|
99
|
+
_chunk5MF3NMYCcjs.KnowledgeBaseArticleView,
|
|
100
100
|
{
|
|
101
101
|
...fixture.article,
|
|
102
|
-
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
102
|
+
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUWQWMGJ7cjs.SimpleMarkdownRenderer, { content: fixture.content, textSize: "compact" })
|
|
103
103
|
}
|
|
104
104
|
) });
|
|
105
105
|
}
|
|
@@ -16,7 +16,7 @@ var _chunkKHXZFLINcjs = require('./chunk-KHXZFLIN.cjs');
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _chunk5MF3NMYCcjs = require('./chunk-5MF3NMYC.cjs');
|
|
20
20
|
require('./chunk-4HJRHEXD.cjs');
|
|
21
21
|
require('./chunk-HQQE74RO.cjs');
|
|
22
22
|
require('./chunk-DEY6XXGO.cjs');
|
|
@@ -29,7 +29,7 @@ require('./chunk-AUMKE74M.cjs');
|
|
|
29
29
|
require('./chunk-LX22Y43B.cjs');
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
var
|
|
32
|
+
var _chunkUWQWMGJ7cjs = require('./chunk-UWQWMGJ7.cjs');
|
|
33
33
|
require('./chunk-KT3U3ZRP.cjs');
|
|
34
34
|
require('./chunk-DC4RTYWK.cjs');
|
|
35
35
|
require('./chunk-FFT56TYB.cjs');
|
|
@@ -77,7 +77,7 @@ function entry(logId, minutesAgo, severity, toolType, device2, summary) {
|
|
|
77
77
|
id: logId,
|
|
78
78
|
logId,
|
|
79
79
|
timestamp: displayTime(_chunkKHXZFLINcjs.demoMinutesAgo.call(void 0, minutesAgo)),
|
|
80
|
-
status: { label: severity, variant:
|
|
80
|
+
status: { label: severity, variant: _chunk5MF3NMYCcjs.logSeverityVariant.call(void 0, severity) },
|
|
81
81
|
source: { name: toolType, toolType },
|
|
82
82
|
device: device2,
|
|
83
83
|
description: { title: summary }
|
|
@@ -149,13 +149,13 @@ var NO_FILTERS = {};
|
|
|
149
149
|
var ACTION_COLUMNS = ["copy", "quickView", "open"];
|
|
150
150
|
var BESIDE_DRAWER_HIDDEN = [...ACTION_COLUMNS, "tool", "source"];
|
|
151
151
|
var logHref = () => "#";
|
|
152
|
-
var copyAction = () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
152
|
+
var copyAction = () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5MF3NMYCcjs.LogCopyIconButton, {});
|
|
153
153
|
function LogsScreen({ compact = false }) {
|
|
154
154
|
const [dock, setDock] = _react.useState.call(void 0, null);
|
|
155
155
|
const selected = LOGS_FIXTURE_SELECTED;
|
|
156
156
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full bg-ods-bg", children: [
|
|
157
157
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1 overflow-clip", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
158
|
-
|
|
158
|
+
_chunk5MF3NMYCcjs.LogsPageView,
|
|
159
159
|
{
|
|
160
160
|
showHeader: false,
|
|
161
161
|
className: "p-[var(--spacing-system-l)]",
|
|
@@ -163,7 +163,7 @@ function LogsScreen({ compact = false }) {
|
|
|
163
163
|
onSearchChange: noop,
|
|
164
164
|
onOpenFilters: noop,
|
|
165
165
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
166
|
-
|
|
166
|
+
_chunk5MF3NMYCcjs.LogsTableView,
|
|
167
167
|
{
|
|
168
168
|
logs: LOGS_FIXTURE_ENTRIES,
|
|
169
169
|
facets: LOGS_FIXTURE_FACETS,
|
|
@@ -177,8 +177,8 @@ function LogsScreen({ compact = false }) {
|
|
|
177
177
|
)
|
|
178
178
|
}
|
|
179
179
|
) }),
|
|
180
|
-
!compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: setDock, className: "relative w-[calc(400px+var(--spacing-system-m))] shrink-0", children: dock && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
181
|
-
|
|
180
|
+
!compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: setDock, className: "relative w-[calc(400px+var(--spacing-system-m))] shrink-0", children: dock && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5MF3NMYCcjs.AppLayoutDrawerContainerContext.Provider, { value: dock, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
181
|
+
_chunk5MF3NMYCcjs.LogDrawer,
|
|
182
182
|
{
|
|
183
183
|
docked: true,
|
|
184
184
|
isOpen: true,
|
|
@@ -190,12 +190,12 @@ function LogsScreen({ compact = false }) {
|
|
|
190
190
|
{ label: "Log ID", value: selected.logId },
|
|
191
191
|
{
|
|
192
192
|
label: "Source",
|
|
193
|
-
value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
193
|
+
value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5MF3NMYCcjs.ToolBadge, { toolType: _chunkUWQWMGJ7cjs.normalizeToolTypeWithFallback.call(void 0, selected.source.toolType) })
|
|
194
194
|
},
|
|
195
|
-
{ label: "Device", value:
|
|
195
|
+
{ label: "Device", value: _chunk5MF3NMYCcjs.logSourceLabels.call(void 0, selected.device).deviceName }
|
|
196
196
|
],
|
|
197
197
|
deviceCard: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
198
|
-
|
|
198
|
+
_chunk5MF3NMYCcjs.DeviceCard,
|
|
199
199
|
{
|
|
200
200
|
...LOGS_FIXTURE_DEVICE,
|
|
201
201
|
actions: {
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
ToolBadge,
|
|
17
17
|
logSeverityVariant,
|
|
18
18
|
logSourceLabels
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-B5XU6KOA.js";
|
|
20
20
|
import "./chunk-ILNN6QRW.js";
|
|
21
21
|
import "./chunk-LQYXMEYF.js";
|
|
22
22
|
import "./chunk-4JPLYOS6.js";
|
|
@@ -29,7 +29,7 @@ import "./chunk-G3GRYDMS.js";
|
|
|
29
29
|
import "./chunk-PLWMIU72.js";
|
|
30
30
|
import {
|
|
31
31
|
normalizeToolTypeWithFallback
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-JH2SIWPQ.js";
|
|
33
33
|
import "./chunk-2NASBO7O.js";
|
|
34
34
|
import "./chunk-KBJJQFYU.js";
|
|
35
35
|
import "./chunk-P3JMAMHP.js";
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
PolicySummaryCards,
|
|
11
11
|
computePolicySummary,
|
|
12
12
|
getPolicyTableStatus
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-B5XU6KOA.js";
|
|
14
14
|
import "./chunk-ILNN6QRW.js";
|
|
15
15
|
import "./chunk-LQYXMEYF.js";
|
|
16
16
|
import "./chunk-4JPLYOS6.js";
|
|
@@ -21,7 +21,7 @@ import "./chunk-HFL2F4RM.js";
|
|
|
21
21
|
import "./chunk-WSDT7LYL.js";
|
|
22
22
|
import "./chunk-G3GRYDMS.js";
|
|
23
23
|
import "./chunk-PLWMIU72.js";
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-JH2SIWPQ.js";
|
|
25
25
|
import "./chunk-2NASBO7O.js";
|
|
26
26
|
import "./chunk-KBJJQFYU.js";
|
|
27
27
|
import "./chunk-P3JMAMHP.js";
|
|
@@ -10,7 +10,7 @@ var _chunkKHXZFLINcjs = require('./chunk-KHXZFLIN.cjs');
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunk5MF3NMYCcjs = require('./chunk-5MF3NMYC.cjs');
|
|
14
14
|
require('./chunk-4HJRHEXD.cjs');
|
|
15
15
|
require('./chunk-HQQE74RO.cjs');
|
|
16
16
|
require('./chunk-DEY6XXGO.cjs');
|
|
@@ -21,7 +21,7 @@ require('./chunk-MZ4KBSH7.cjs');
|
|
|
21
21
|
require('./chunk-WBNAEYTQ.cjs');
|
|
22
22
|
require('./chunk-AUMKE74M.cjs');
|
|
23
23
|
require('./chunk-LX22Y43B.cjs');
|
|
24
|
-
require('./chunk-
|
|
24
|
+
require('./chunk-UWQWMGJ7.cjs');
|
|
25
25
|
require('./chunk-KT3U3ZRP.cjs');
|
|
26
26
|
require('./chunk-DC4RTYWK.cjs');
|
|
27
27
|
require('./chunk-FFT56TYB.cjs');
|
|
@@ -82,14 +82,14 @@ var POLICIES = [
|
|
|
82
82
|
policy("policy-local-admins", "No local admins", "No everyday account is a local administrator.", false, 0)
|
|
83
83
|
];
|
|
84
84
|
var POLICIES_FIXTURE = {
|
|
85
|
-
summary:
|
|
85
|
+
summary: _chunk5MF3NMYCcjs.computePolicySummary.call(void 0, POLICIES),
|
|
86
86
|
rows: POLICIES.map((item) => ({
|
|
87
87
|
id: item.id,
|
|
88
88
|
name: item.name,
|
|
89
89
|
description: item.description,
|
|
90
90
|
critical: item.critical,
|
|
91
91
|
severityLabel: item.critical ? "Critical" : "Low",
|
|
92
|
-
status:
|
|
92
|
+
status: _chunk5MF3NMYCcjs.getPolicyTableStatus.call(void 0, item),
|
|
93
93
|
actions: [
|
|
94
94
|
{ label: "Policy Details", onClick: noop },
|
|
95
95
|
{ label: "Delete Policy", onClick: noop }
|
|
@@ -103,16 +103,16 @@ var POLICIES_FIXTURE = {
|
|
|
103
103
|
var _jsxruntime = require('react/jsx-runtime');
|
|
104
104
|
function PoliciesScreen({ compact = false }) {
|
|
105
105
|
const table = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
106
|
-
|
|
106
|
+
_chunk5MF3NMYCcjs.PoliciesTable,
|
|
107
107
|
{
|
|
108
108
|
rows: POLICIES_FIXTURE.rows,
|
|
109
109
|
rowAsLink: true,
|
|
110
|
-
rightSlot: compact ? void 0 : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
110
|
+
rightSlot: compact ? void 0 : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5MF3NMYCcjs.DataTable.RowCount, {}),
|
|
111
111
|
emptyMessage: "No policies found."
|
|
112
112
|
}
|
|
113
113
|
);
|
|
114
114
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col gap-[var(--spacing-system-l)] bg-ods-bg p-[var(--spacing-system-l)]", children: [
|
|
115
|
-
!compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
115
|
+
!compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5MF3NMYCcjs.PolicySummaryCards, { summary: POLICIES_FIXTURE.summary, now: POLICIES_FIXTURE.now }),
|
|
116
116
|
table
|
|
117
117
|
] });
|
|
118
118
|
}
|
|
@@ -16,7 +16,7 @@ var _chunkKHXZFLINcjs = require('./chunk-KHXZFLIN.cjs');
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _chunk5MF3NMYCcjs = require('./chunk-5MF3NMYC.cjs');
|
|
20
20
|
require('./chunk-4HJRHEXD.cjs');
|
|
21
21
|
require('./chunk-HQQE74RO.cjs');
|
|
22
22
|
require('./chunk-DEY6XXGO.cjs');
|
|
@@ -27,7 +27,7 @@ require('./chunk-MZ4KBSH7.cjs');
|
|
|
27
27
|
require('./chunk-WBNAEYTQ.cjs');
|
|
28
28
|
require('./chunk-AUMKE74M.cjs');
|
|
29
29
|
require('./chunk-LX22Y43B.cjs');
|
|
30
|
-
require('./chunk-
|
|
30
|
+
require('./chunk-UWQWMGJ7.cjs');
|
|
31
31
|
require('./chunk-KT3U3ZRP.cjs');
|
|
32
32
|
require('./chunk-DC4RTYWK.cjs');
|
|
33
33
|
require('./chunk-FFT56TYB.cjs');
|
|
@@ -114,14 +114,14 @@ var noop = () => {
|
|
|
114
114
|
var HIDDEN_WHEN_COMPACT = ["organization"];
|
|
115
115
|
function StaticPackageField({ value }) {
|
|
116
116
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
117
|
-
|
|
117
|
+
_chunk5MF3NMYCcjs.Autocomplete,
|
|
118
118
|
{
|
|
119
|
-
label:
|
|
119
|
+
label: _chunk5MF3NMYCcjs.PACKAGE_SEARCH_LABEL,
|
|
120
120
|
labelVariant: "large",
|
|
121
121
|
options: value ? [{ value: value.id, label: value.name, description: _nullishCoalesce(value.description, () => ( void 0)) }] : [],
|
|
122
122
|
value: _nullishCoalesce(_optionalChain([value, 'optionalAccess', _ => _.id]), () => ( null)),
|
|
123
123
|
onChange: noop,
|
|
124
|
-
placeholder:
|
|
124
|
+
placeholder: _chunk5MF3NMYCcjs.PACKAGE_SEARCH_PLACEHOLDER
|
|
125
125
|
}
|
|
126
126
|
);
|
|
127
127
|
}
|
|
@@ -135,7 +135,7 @@ function SoftwareUpdateScreen({ compact = false }) {
|
|
|
135
135
|
[fixture.devices, fixture.selectedIds]
|
|
136
136
|
);
|
|
137
137
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
138
|
-
|
|
138
|
+
_chunk5MF3NMYCcjs.SoftwareActionForm,
|
|
139
139
|
{
|
|
140
140
|
action: fixture.action,
|
|
141
141
|
showHeader: false,
|
|
@@ -147,7 +147,7 @@ function SoftwareUpdateScreen({ compact = false }) {
|
|
|
147
147
|
initialValues: fixture.initialValues,
|
|
148
148
|
renderPackageSearch,
|
|
149
149
|
renderDevicePicker: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
150
|
-
|
|
150
|
+
_chunk5MF3NMYCcjs.DeviceSelector,
|
|
151
151
|
{
|
|
152
152
|
devices: selected,
|
|
153
153
|
loading: false,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
PACKAGE_SEARCH_LABEL,
|
|
17
17
|
PACKAGE_SEARCH_PLACEHOLDER,
|
|
18
18
|
SoftwareActionForm
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-B5XU6KOA.js";
|
|
20
20
|
import "./chunk-ILNN6QRW.js";
|
|
21
21
|
import "./chunk-LQYXMEYF.js";
|
|
22
22
|
import "./chunk-4JPLYOS6.js";
|
|
@@ -27,7 +27,7 @@ import "./chunk-HFL2F4RM.js";
|
|
|
27
27
|
import "./chunk-WSDT7LYL.js";
|
|
28
28
|
import "./chunk-G3GRYDMS.js";
|
|
29
29
|
import "./chunk-PLWMIU72.js";
|
|
30
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-JH2SIWPQ.js";
|
|
31
31
|
import "./chunk-2NASBO7O.js";
|
|
32
32
|
import "./chunk-KBJJQFYU.js";
|
|
33
33
|
import "./chunk-P3JMAMHP.js";
|
package/package.json
CHANGED
|
@@ -20,7 +20,7 @@ import { MESSAGE_TYPE } from '../components/chat/types/message.types';
|
|
|
20
20
|
import type { AskOptionData } from '../components/chat/types/message.types';
|
|
21
21
|
import { ESCALATION_STATE, escalationResolvedStatus } from './events';
|
|
22
22
|
import type { ApprovalToolCall, ChatStreamEvent } from './events';
|
|
23
|
-
import { sourceMetadataEvent } from './source-metadata';
|
|
23
|
+
import { attachmentsEvent, sourceMetadataEvent } from './source-metadata';
|
|
24
24
|
import { isRecord } from './wire-narrow';
|
|
25
25
|
|
|
26
26
|
/** Minimal structural view of a NATS chunk (see `ChunkData` in
|
|
@@ -122,13 +122,15 @@ export function decodeNatsChunk(chunk: unknown): ChatStreamEvent | null {
|
|
|
122
122
|
}
|
|
123
123
|
return null;
|
|
124
124
|
|
|
125
|
-
//
|
|
126
|
-
//
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
125
|
+
// The chunk arrives BEFORE or between the answer's text deltas, so the
|
|
126
|
+
// reducer — not this decoder — owns attaching it to the right turn.
|
|
127
|
+
case MESSAGE_TYPE.ATTACHMENTS: {
|
|
128
|
+
const event = attachmentsEvent(data);
|
|
129
|
+
return event ? { ...event, ...seq } : null;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// The envelope `ATTACHMENTS` replaced (see `MESSAGE_TYPE.GUIDE`).
|
|
133
|
+
case MESSAGE_TYPE.GUIDE: {
|
|
132
134
|
const event = sourceMetadataEvent(data.payload);
|
|
133
135
|
return event ? { ...event, ...seq } : null;
|
|
134
136
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Source-metadata payload → `{ sources, refs }`.
|
|
3
3
|
*
|
|
4
|
-
* ONE decoder for two arrival paths: the live `
|
|
5
|
-
*
|
|
4
|
+
* ONE decoder for two arrival paths: the live `ATTACHMENTS` NATS chunk and the
|
|
5
|
+
* persisted row of the same name in dialog history. That is the whole point
|
|
6
6
|
* of putting it here rather than in either consumer — a reloaded thread has to
|
|
7
7
|
* render identically to the live turn, and two parsers is exactly how that stops
|
|
8
8
|
* being true.
|
|
@@ -313,6 +313,29 @@ export function sourceMetadataEvent(payload: unknown): SourcesEvent | null {
|
|
|
313
313
|
};
|
|
314
314
|
}
|
|
315
315
|
|
|
316
|
+
/** `null` fields dropped, at any depth. */
|
|
317
|
+
function withoutNulls(value: unknown): unknown {
|
|
318
|
+
if (Array.isArray(value)) return value.map(withoutNulls);
|
|
319
|
+
if (!isRecord(value)) return value;
|
|
320
|
+
return Object.fromEntries(
|
|
321
|
+
Object.entries(value)
|
|
322
|
+
.filter(([, field]) => field !== null)
|
|
323
|
+
.map(([key, field]) => [key, withoutNulls(field)]),
|
|
324
|
+
);
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* Decode one typed `ATTACHMENTS` record — the live chunk or the persisted
|
|
329
|
+
* `AttachmentsData` row, which carry `sources` / `videos` / `cards` directly.
|
|
330
|
+
*
|
|
331
|
+
* GraphQL answers an unset field with `null` where the live chunk omits it, so
|
|
332
|
+
* nulls are read as absent: a reloaded source must not gain a
|
|
333
|
+
* `targetPlatform: null` ("no destination") the live one never carried.
|
|
334
|
+
*/
|
|
335
|
+
export function attachmentsEvent(record: unknown): SourcesEvent | null {
|
|
336
|
+
return sourceMetadataEvent(withoutNulls(record));
|
|
337
|
+
}
|
|
338
|
+
|
|
316
339
|
/** What one assistant answer carries: its citations and its expandable refs. */
|
|
317
340
|
export interface SourceMetadata {
|
|
318
341
|
sources?: ChatSource[];
|
|
@@ -12,15 +12,13 @@ export const MESSAGE_TYPE = {
|
|
|
12
12
|
TEXT: 'TEXT',
|
|
13
13
|
THINKING: 'THINKING',
|
|
14
14
|
ASK: 'ASK',
|
|
15
|
-
/** Per-answer
|
|
15
|
+
/** Per-answer attachments (cited documents, videos, entity cards).
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
|
|
21
|
-
* deletion here and nothing else. */
|
|
17
|
+
* `ATTACHMENTS` carries `sources` / `videos` / `cards` on the record itself.
|
|
18
|
+
* `GUIDE` is the envelope it replaced — the same arrays under `payload` —
|
|
19
|
+
* and stays only until every backend ships `ATTACHMENTS`. */
|
|
20
|
+
ATTACHMENTS: 'ATTACHMENTS',
|
|
22
21
|
GUIDE: 'GUIDE',
|
|
23
|
-
SOURCES: 'SOURCES',
|
|
24
22
|
EXECUTING_TOOL: 'EXECUTING_TOOL',
|
|
25
23
|
EXECUTED_TOOL: 'EXECUTED_TOOL',
|
|
26
24
|
APPROVAL_REQUEST: 'APPROVAL_REQUEST',
|
|
@@ -412,7 +410,7 @@ export interface ThinkingMessageData extends MessageDataBase {
|
|
|
412
410
|
*
|
|
413
411
|
* Lives here, beside `Message`, because BOTH transports produce it now: the SSE
|
|
414
412
|
* adapter reads it off the per-turn metadata frame, and the NATS path decodes it
|
|
415
|
-
* out of
|
|
413
|
+
* out of an `ATTACHMENTS` chunk. It used to be declared inside
|
|
416
414
|
* `use-sse-chat-adapter`, which made "a Guide answer's citations" structurally a
|
|
417
415
|
* property of one transport — `use-sse-chat-adapter` still re-exports the name
|
|
418
416
|
* so existing imports keep working.
|
|
@@ -451,13 +449,20 @@ export interface ChatSource {
|
|
|
451
449
|
label?: string;
|
|
452
450
|
}
|
|
453
451
|
|
|
454
|
-
/** Persisted
|
|
455
|
-
* carries, so history and realtime share one decoder
|
|
456
|
-
* and cannot drift apart. Left
|
|
457
|
-
*
|
|
458
|
-
|
|
452
|
+
/** Persisted attachments row (GraphQL `AttachmentsData`). The arrays are the
|
|
453
|
+
* SAME ones the live chunk carries, so history and realtime share one decoder
|
|
454
|
+
* (`attachmentsEvent`) and cannot drift apart. Left untyped: it is unvalidated
|
|
455
|
+
* wire data, and the decoder is what turns it into `ChatSource[]` / `ChatRef[]`. */
|
|
456
|
+
export interface AttachmentsMessageData extends MessageDataBase {
|
|
457
|
+
type: 'ATTACHMENTS';
|
|
458
|
+
sources?: unknown;
|
|
459
|
+
videos?: unknown;
|
|
460
|
+
cards?: unknown;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/** The envelope `ATTACHMENTS` replaced: the same arrays under `payload`. */
|
|
459
464
|
export interface SourceMetadataMessageData extends MessageDataBase {
|
|
460
|
-
type: 'GUIDE'
|
|
465
|
+
type: 'GUIDE';
|
|
461
466
|
payload?: unknown;
|
|
462
467
|
}
|
|
463
468
|
|
|
@@ -603,6 +608,7 @@ export type MessageData =
|
|
|
603
608
|
| TextMessageData
|
|
604
609
|
| ThinkingMessageData
|
|
605
610
|
| AskMessageData
|
|
611
|
+
| AttachmentsMessageData
|
|
606
612
|
| SourceMetadataMessageData
|
|
607
613
|
| ExecutingToolMessageData
|
|
608
614
|
| ExecutedToolMessageData
|
|
@@ -654,7 +660,7 @@ export interface ProcessedMessage {
|
|
|
654
660
|
* Absent when the source row(s) carried no seq. */
|
|
655
661
|
streamSeq?: number;
|
|
656
662
|
/** Documents this answer cited — see `Message.sources`, the same field.
|
|
657
|
-
* Replayed from the turn's persisted `
|
|
663
|
+
* Replayed from the turn's persisted `ATTACHMENTS` row, so a reloaded
|
|
658
664
|
* answer carries the citations the live one did. */
|
|
659
665
|
sources?: ChatSource[];
|
|
660
666
|
/** Entity references this answer's metadata described — see `Message.refs`. */
|
|
@@ -239,7 +239,7 @@ export interface UnifiedChatMessage {
|
|
|
239
239
|
/**
|
|
240
240
|
* Documents this answer cited, rendered as chips beneath it. Produced by
|
|
241
241
|
* BOTH transports now — SSE reads them off the per-turn metadata frame, NATS
|
|
242
|
-
* decodes them out of
|
|
242
|
+
* decodes them out of an `ATTACHMENTS` chunk.
|
|
243
243
|
*/
|
|
244
244
|
sources?: ChatSource[];
|
|
245
245
|
/**
|
|
@@ -34,7 +34,12 @@ import {
|
|
|
34
34
|
// One normalizer for ask rows, shared with the live decoder — history and the
|
|
35
35
|
// stream must agree on which options are usable.
|
|
36
36
|
import { normalizeAskOptions } from '../../../chat-protocol/nats-decoder';
|
|
37
|
-
import {
|
|
37
|
+
import {
|
|
38
|
+
attachmentsEvent,
|
|
39
|
+
mergeSourceMetadata,
|
|
40
|
+
sourceMetadataEvent,
|
|
41
|
+
type SourceMetadata,
|
|
42
|
+
} from '../../../chat-protocol/source-metadata';
|
|
38
43
|
import { applyApprovalStatusToSegment } from '../stream/message-mutations';
|
|
39
44
|
import {
|
|
40
45
|
MESSAGE_TYPE,
|
|
@@ -122,11 +127,14 @@ export function decodeHistoricalMessageData(data: MessageData): ChatStreamEvent
|
|
|
122
127
|
}
|
|
123
128
|
return null;
|
|
124
129
|
|
|
125
|
-
// Persisted
|
|
126
|
-
// (`
|
|
130
|
+
// Persisted attachments, through the SAME decoder the live chunk uses
|
|
131
|
+
// (`attachmentsEvent`). That shared parse is the whole reason a reloaded
|
|
127
132
|
// answer renders identically to the one the reader watched arrive.
|
|
133
|
+
case MESSAGE_TYPE.ATTACHMENTS:
|
|
134
|
+
return attachmentsEvent(data);
|
|
135
|
+
|
|
136
|
+
// The envelope `ATTACHMENTS` replaced (see `MESSAGE_TYPE.GUIDE`).
|
|
128
137
|
case MESSAGE_TYPE.GUIDE:
|
|
129
|
-
case MESSAGE_TYPE.SOURCES:
|
|
130
138
|
return 'payload' in data ? sourceMetadataEvent(data.payload) : null;
|
|
131
139
|
|
|
132
140
|
// Same completeness gate as the live decoder (`decodeNatsChunk`): a
|