@flamingo-stack/openframe-frontend-core 0.0.850 → 0.0.852
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/build/export-map.json +1 -1
- package/dist/{case-study-card-X2HKPKT7.cjs → case-study-card-WP5Z234Q.cjs} +5 -5
- package/dist/chat-protocol/events.d.ts +4 -1
- package/dist/chat-protocol/events.d.ts.map +1 -1
- package/dist/chat-protocol/index.cjs +90 -40
- package/dist/chat-protocol/nats-decoder.d.ts.map +1 -1
- package/dist/chat-protocol/nats-decoder.js +5 -1
- package/dist/chat-protocol/policy-review.d.ts +18 -0
- package/dist/chat-protocol/policy-review.d.ts.map +1 -0
- package/dist/chat-protocol/policy-review.js +55 -0
- package/dist/{chunk-BU2PSRAS.cjs → chunk-2W22LY3W.cjs} +11 -11
- package/dist/{chunk-ZDSC3GFX.cjs → chunk-3SJVF3HW.cjs} +6 -6
- package/dist/{chunk-GAYLAA3L.cjs → chunk-3ZQESOPJ.cjs} +79 -79
- package/dist/{chunk-IPGGSFR7.cjs → chunk-477P6AQH.cjs} +6 -6
- package/dist/{chunk-5CBI2ZYV.cjs → chunk-5RMBLOJ5.cjs} +12 -12
- package/dist/{chunk-36DUCHI7.cjs → chunk-6GWRPW6B.cjs} +4 -4
- package/dist/{chunk-SOSIXRQ3.cjs → chunk-AZEO7HBB.cjs} +2 -2
- package/dist/{chunk-FRG724DU.cjs → chunk-BNHTBLAG.cjs} +17 -17
- package/dist/{chunk-VRWBJL7B.cjs → chunk-CHGIACIP.cjs} +91 -91
- package/dist/{chunk-CAGNWDVJ.cjs → chunk-COJG2ATY.cjs} +45 -45
- package/dist/{chunk-XKOL5CNU.cjs → chunk-D3H6AI7O.cjs} +956 -1077
- package/dist/{chunk-ALRYVZ3E.cjs → chunk-DLTPSP5F.cjs} +2 -2
- package/dist/{chunk-3W4ASAXN.cjs → chunk-EIACEY2L.cjs} +4 -4
- package/dist/{chunk-TIVPOVIM.cjs → chunk-ETZFBB7O.cjs} +2 -2
- package/dist/{chunk-GRCOEICK.cjs → chunk-G7GF4PWA.cjs} +6 -6
- package/dist/{chunk-7ICHJVAT.cjs → chunk-GEZ3UXCA.cjs} +25 -25
- package/dist/chunk-GGUFVIJ6.cjs +28 -0
- package/dist/{chunk-ZGEWT3SF.cjs → chunk-HXURNKXI.cjs} +3 -3
- package/dist/{chunk-TX4NTH22.cjs → chunk-IC4IJJB2.cjs} +102 -102
- package/dist/{chunk-BUEEQD3G.cjs → chunk-IGVAPIEW.cjs} +2 -2
- package/dist/{chunk-IG6ROHPS.cjs → chunk-IO6NN3SL.cjs} +54 -54
- package/dist/{chunk-5PIR77V5.cjs → chunk-KHOB3TES.cjs} +4 -4
- package/dist/{chunk-JQCQCE6U.cjs → chunk-KKFDRCQF.cjs} +2 -2
- package/dist/{chunk-6AJYGXXS.cjs → chunk-KNN2GCMW.cjs} +21 -21
- package/dist/{chunk-YJZ7R3W5.cjs → chunk-KXFIYO4O.cjs} +8 -8
- package/dist/{chunk-FXLROQUT.cjs → chunk-LFEURIZN.cjs} +590 -607
- package/dist/{chunk-JWIITCVB.cjs → chunk-MFDRCTM3.cjs} +47 -47
- package/dist/{chunk-OHHDX3Z4.cjs → chunk-MXY2OGEV.cjs} +42 -42
- package/dist/{chunk-533QK4R6.cjs → chunk-NMWLXHFH.cjs} +130 -130
- package/dist/{chunk-MDLT6D46.cjs → chunk-O3EKOXFZ.cjs} +20 -20
- package/dist/{chunk-HLJXCOMA.cjs → chunk-OH5TXFRR.cjs} +4 -4
- package/dist/{chunk-SA2NNWIJ.cjs → chunk-P63CRPWI.cjs} +19 -64
- package/dist/{chunk-R5JPZ6TY.cjs → chunk-QOW2GP3V.cjs} +21 -21
- package/dist/{chunk-JBTH3O2C.cjs → chunk-SSKMGH5O.cjs} +4 -4
- package/dist/{chunk-4YBS4HIO.cjs → chunk-U767P4JU.cjs} +455 -38
- package/dist/{chunk-FNQWL4W4.cjs → chunk-UO2EJGRJ.cjs} +45 -45
- package/dist/{chunk-IHY7E4EX.cjs → chunk-USPUZO53.cjs} +4 -4
- package/dist/{chunk-IN3LA2FU.cjs → chunk-UV45EPXN.cjs} +2 -2
- package/dist/{chunk-S3QXLD4X.cjs → chunk-VCFQHPOO.cjs} +37 -3
- package/dist/{chunk-2QZUTNL3.cjs → chunk-VUHHLRAY.cjs} +92 -92
- package/dist/{chunk-QJER2ZNA.cjs → chunk-WFAZMASF.cjs} +3 -3
- package/dist/{chunk-LGYPCUHO.cjs → chunk-X3WIOMEE.cjs} +36 -36
- package/dist/{cloud-tenants-TVB3DT3J.cjs → cloud-tenants-O33HCUYB.cjs} +50 -50
- package/dist/components/case-studies/index.cjs +69 -69
- package/dist/components/chat/approval-batch-message.d.ts +5 -0
- package/dist/components/chat/approval-batch-message.d.ts.map +1 -1
- package/dist/components/chat/approval-batch-message.js +36 -10
- package/dist/components/chat/index.cjs +45 -45
- package/dist/components/chat/policy-review.d.ts +27 -0
- package/dist/components/chat/policy-review.d.ts.map +1 -0
- package/dist/components/chat/policy-review.js +67 -0
- package/dist/components/chat/stream/message-mutations.d.ts.map +1 -1
- package/dist/components/chat/stream/message-mutations.js +4 -1
- package/dist/components/chat/tool-execution-display.d.ts.map +1 -1
- package/dist/components/chat/tool-execution-display.js +16 -5
- package/dist/components/chat/types/message.types.d.ts +40 -2
- package/dist/components/chat/types/message.types.d.ts.map +1 -1
- package/dist/components/chat/utils/extract-incomplete-message-state.d.ts.map +1 -1
- package/dist/components/chat/utils/extract-incomplete-message-state.js +2 -0
- package/dist/components/chat/utils/message-segment-accumulator.d.ts.map +1 -1
- package/dist/components/chat/utils/message-segment-accumulator.js +3 -0
- package/dist/components/chat/utils/process-historical-messages.d.ts +2 -2
- package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
- package/dist/components/chat/utils/process-historical-messages.js +7 -1
- package/dist/components/contact/index.cjs +51 -51
- package/dist/components/docs/index.cjs +54 -54
- package/dist/components/embeds/index.cjs +51 -51
- package/dist/components/faq/index.cjs +52 -52
- package/dist/components/features/approval-level.d.ts +6 -12
- package/dist/components/features/approval-level.d.ts.map +1 -1
- package/dist/components/features/approval-level.js +45 -55
- package/dist/components/features/index.cjs +55 -54
- package/dist/components/features/notifications/approval-request-notification-tile.d.ts.map +1 -1
- package/dist/components/features/notifications/approval-request-notification-tile.js +71 -48
- package/dist/components/features/notifications/types.d.ts +2 -0
- package/dist/components/features/notifications/types.d.ts.map +1 -1
- package/dist/components/features/notifications/types.js +3 -1
- package/dist/components/features/policy-configuration-panel.d.ts.map +1 -1
- package/dist/components/features/policy-configuration-panel.js +75 -64
- package/dist/components/help-center-pages/index.cjs +156 -156
- package/dist/components/icons-v2-generated/brand-logos/index.d.ts +1 -0
- package/dist/components/icons-v2-generated/brand-logos/index.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/brand-logos/index.js +2 -0
- package/dist/components/icons-v2-generated/brand-logos/stripe-icon.d.ts +8 -0
- package/dist/components/icons-v2-generated/brand-logos/stripe-icon.d.ts.map +1 -0
- package/dist/components/icons-v2-generated/brand-logos/stripe-icon.js +24 -0
- package/dist/components/icons-v2-generated/icon-loaders.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/icon-loaders.js +1 -0
- package/dist/components/icons-v2-generated/icon-names.js +1 -1
- package/dist/components/icons-v2-generated/index.cjs +33 -29
- package/dist/components/index.cjs +122 -123
- package/dist/components/meeting-scheduler/index.cjs +113 -112
- package/dist/components/navigation/index.cjs +54 -54
- package/dist/components/onboarding-guides/index.cjs +53 -53
- package/dist/components/product-demo/index.cjs +61 -61
- package/dist/components/related-content/index.cjs +9 -9
- package/dist/components/tickets/index.cjs +57 -57
- package/dist/components/ui/file-manager/index.cjs +8 -9
- package/dist/components/ui/index.cjs +55 -56
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/radio-group.js +8 -2
- package/dist/components/ui/tab-selector.d.ts +7 -1
- package/dist/components/ui/tab-selector.d.ts.map +1 -1
- package/dist/components/ui/tab-selector.js +22 -3
- package/dist/{devices-NGCTSXIU.cjs → devices-2RGGMC2B.cjs} +51 -51
- package/dist/{embeddable-chat-322NDFP5.cjs → embeddable-chat-SJEEJI4N.cjs} +122 -122
- package/dist/hooks/index.cjs +9 -9
- package/dist/{icon-loaders-SUPEKMBJ.cjs → icon-loaders-CTH6E7OP.cjs} +1 -0
- package/dist/index.cjs +61 -62
- package/dist/{knowledge-75PO5DYS.cjs → knowledge-5TJIXVMD.cjs} +52 -52
- package/dist/{logs-PZESOAIG.cjs → logs-HGQOTRKZ.cjs} +57 -57
- package/dist/{policies-6XNMBFWO.cjs → policies-GWFSLVSM.cjs} +54 -54
- package/dist/{remote-session-Q2FIBCGT.cjs → remote-session-SG44CNOK.cjs} +36 -36
- package/dist/{scripts-B3JW6TPF.cjs → scripts-PGJNAZF4.cjs} +57 -57
- package/dist/{software-update-NWP542J7.cjs → software-update-KKLSYHDI.cjs} +54 -54
- package/dist/stripe-icon-YKVABTNI.cjs +7 -0
- package/dist/{tickets-board-7FLGQEHF.cjs → tickets-board-SQY2Y6QV.cjs} +39 -38
- package/dist/utils/index.cjs +32 -1
- package/package.json +1 -1
- package/src/chat-protocol/events.ts +4 -1
- package/src/chat-protocol/nats-decoder.ts +4 -0
- package/src/chat-protocol/policy-review.ts +71 -0
- package/src/components/chat/approval-batch-message.tsx +47 -10
- package/src/components/chat/policy-review.tsx +90 -0
- package/src/components/chat/stream/message-mutations.ts +4 -0
- package/src/components/chat/tool-execution-display.tsx +23 -4
- package/src/components/chat/types/message.types.ts +42 -2
- package/src/components/chat/utils/extract-incomplete-message-state.ts +2 -0
- package/src/components/chat/utils/message-segment-accumulator.ts +3 -0
- package/src/components/chat/utils/process-historical-messages.ts +14 -3
- package/src/components/features/approval-level.tsx +74 -78
- package/src/components/features/notifications/approval-request-notification-tile.tsx +75 -50
- package/src/components/features/notifications/types.ts +4 -0
- package/src/components/features/policy-configuration-panel.tsx +100 -83
- package/src/components/icons-v2/icon-colors.json +3 -0
- package/src/components/icons-v2-generated/brand-logos/index.ts +1 -0
- package/src/components/icons-v2-generated/brand-logos/stripe-icon.tsx +27 -0
- package/src/components/icons-v2-generated/icon-loaders.ts +1 -0
- package/src/components/icons-v2-generated/icon-names.ts +1 -1
- package/src/components/ui/radio-group.tsx +20 -2
- package/src/components/ui/tab-selector.tsx +26 -3
- package/src/styles/ods-colors.css +1 -0
- package/dist/chunk-N3MBQRCQ.cjs +0 -41
- /package/dist/{chunk-46547WQW.cjs → chunk-7HH4Y27U.cjs} +0 -0
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkEIACEY2Lcjs = require('./chunk-EIACEY2L.cjs');
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
|
|
@@ -36,16 +36,21 @@ var _chunk3W4ASAXNcjs = require('./chunk-3W4ASAXN.cjs');
|
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
var _chunk4YBS4HIOcjs = require('./chunk-4YBS4HIO.cjs');
|
|
40
39
|
|
|
41
40
|
|
|
42
41
|
|
|
43
42
|
|
|
44
43
|
|
|
45
44
|
|
|
45
|
+
var _chunkU767P4JUcjs = require('./chunk-U767P4JU.cjs');
|
|
46
46
|
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
var _chunkKXFIYO4Ocjs = require('./chunk-KXFIYO4O.cjs');
|
|
49
54
|
|
|
50
55
|
|
|
51
56
|
var _chunkPGAMWM6Ccjs = require('./chunk-PGAMWM6C.cjs');
|
|
@@ -54,10 +59,10 @@ var _chunkPGAMWM6Ccjs = require('./chunk-PGAMWM6C.cjs');
|
|
|
54
59
|
var _chunkREEXZ35Ocjs = require('./chunk-REEXZ35O.cjs');
|
|
55
60
|
|
|
56
61
|
|
|
57
|
-
var
|
|
62
|
+
var _chunkJQEOUB5Fcjs = require('./chunk-JQEOUB5F.cjs');
|
|
58
63
|
|
|
59
64
|
|
|
60
|
-
var
|
|
65
|
+
var _chunkA65PRT7Fcjs = require('./chunk-A65PRT7F.cjs');
|
|
61
66
|
|
|
62
67
|
|
|
63
68
|
var _chunk44URXY24cjs = require('./chunk-44URXY24.cjs');
|
|
@@ -272,14 +277,14 @@ var _chunk7WT2C5YYcjs = require('./chunk-7WT2C5YY.cjs');
|
|
|
272
277
|
|
|
273
278
|
|
|
274
279
|
|
|
275
|
-
var
|
|
280
|
+
var _chunkG7GF4PWAcjs = require('./chunk-G7GF4PWA.cjs');
|
|
276
281
|
|
|
277
282
|
|
|
278
283
|
|
|
279
284
|
var _chunkFW7RKWPYcjs = require('./chunk-FW7RKWPY.cjs');
|
|
280
285
|
|
|
281
286
|
|
|
282
|
-
var
|
|
287
|
+
var _chunkIGVAPIEWcjs = require('./chunk-IGVAPIEW.cjs');
|
|
283
288
|
|
|
284
289
|
|
|
285
290
|
var _chunkJKX2C3I2cjs = require('./chunk-JKX2C3I2.cjs');
|
|
@@ -322,7 +327,7 @@ var _chunkIX2E3AN7cjs = require('./chunk-IX2E3AN7.cjs');
|
|
|
322
327
|
|
|
323
328
|
|
|
324
329
|
|
|
325
|
-
var
|
|
330
|
+
var _chunkNMWLXHFHcjs = require('./chunk-NMWLXHFH.cjs');
|
|
326
331
|
|
|
327
332
|
|
|
328
333
|
var _chunkHTYJUMFBcjs = require('./chunk-HTYJUMFB.cjs');
|
|
@@ -361,7 +366,7 @@ var _chunkW7OFAROYcjs = require('./chunk-W7OFAROY.cjs');
|
|
|
361
366
|
|
|
362
367
|
|
|
363
368
|
|
|
364
|
-
var
|
|
369
|
+
var _chunkO3EKOXFZcjs = require('./chunk-O3EKOXFZ.cjs');
|
|
365
370
|
|
|
366
371
|
|
|
367
372
|
var _chunkRUHKTWGBcjs = require('./chunk-RUHKTWGB.cjs');
|
|
@@ -378,12 +383,12 @@ var _chunkYSDB6HGQcjs = require('./chunk-YSDB6HGQ.cjs');
|
|
|
378
383
|
|
|
379
384
|
|
|
380
385
|
|
|
381
|
-
var
|
|
386
|
+
var _chunkETZFBB7Ocjs = require('./chunk-ETZFBB7O.cjs');
|
|
382
387
|
|
|
383
388
|
|
|
384
389
|
|
|
385
390
|
|
|
386
|
-
var
|
|
391
|
+
var _chunkKKFDRCQFcjs = require('./chunk-KKFDRCQF.cjs');
|
|
387
392
|
|
|
388
393
|
|
|
389
394
|
var _chunkNTPX5GXIcjs = require('./chunk-NTPX5GXI.cjs');
|
|
@@ -406,10 +411,8 @@ var _chunkGG466XFQcjs = require('./chunk-GG466XFQ.cjs');
|
|
|
406
411
|
var _chunkUJ7AXHRZcjs = require('./chunk-UJ7AXHRZ.cjs');
|
|
407
412
|
|
|
408
413
|
|
|
409
|
-
var _chunkN3MBQRCQcjs = require('./chunk-N3MBQRCQ.cjs');
|
|
410
414
|
|
|
411
|
-
|
|
412
|
-
var _chunkS3QXLD4Xcjs = require('./chunk-S3QXLD4X.cjs');
|
|
415
|
+
var _chunkVCFQHPOOcjs = require('./chunk-VCFQHPOO.cjs');
|
|
413
416
|
|
|
414
417
|
|
|
415
418
|
var _chunkZ74QE57Tcjs = require('./chunk-Z74QE57T.cjs');
|
|
@@ -521,37 +524,6 @@ var TabsContent = _react.forwardRef.call(void 0, ({ className, ...props }, ref)
|
|
|
521
524
|
));
|
|
522
525
|
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
523
526
|
|
|
524
|
-
// src/components/ui/layout-hold.tsx
|
|
525
|
-
|
|
526
|
-
var ROUNDED_BAR = `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' rx='6'/%3E%3C/svg%3E")`;
|
|
527
|
-
var BAR_MASK = `${ROUNDED_BAR} center / 100% min(1em, calc(1lh - 6px)) no-repeat`;
|
|
528
|
-
var BAR_STYLE = { mask: BAR_MASK, WebkitMask: BAR_MASK };
|
|
529
|
-
function TextHold({ children, variant = "bar", className }) {
|
|
530
|
-
const bar = variant === "bar";
|
|
531
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
532
|
-
"span",
|
|
533
|
-
{
|
|
534
|
-
"aria-hidden": true,
|
|
535
|
-
className: _chunk63A4GZMBcjs.cn.call(void 0,
|
|
536
|
-
// `bar`: the words themselves, unseen, on the skeleton's surface. The span stays INLINE, so the
|
|
537
|
-
// browser paints one bar per line the words take, each exactly as wide as that line, and
|
|
538
|
-
// `box-decoration-clone` gives every line its own bar (and its own mask, `BAR_STYLE`). Pure CSS: it
|
|
539
|
-
// is drawn in the server's HTML, before any script runs (a loading state streamed by the server
|
|
540
|
-
// is often replaced before it hydrates).
|
|
541
|
-
bar ? _chunk63A4GZMBcjs.cn.call(void 0, _chunkPMUCEUFQcjs.SKELETON_SURFACE_CLASS, "rounded-md box-decoration-clone text-transparent") : "invisible",
|
|
542
|
-
// A hold is never selectable or clickable, whatever it wraps.
|
|
543
|
-
"pointer-events-none select-none",
|
|
544
|
-
className
|
|
545
|
-
),
|
|
546
|
-
style: bar ? BAR_STYLE : void 0,
|
|
547
|
-
children
|
|
548
|
-
}
|
|
549
|
-
);
|
|
550
|
-
}
|
|
551
|
-
function LayoutHold({ children, className }) {
|
|
552
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, inert: true, className: _chunk63A4GZMBcjs.cn.call(void 0, "invisible", className), children });
|
|
553
|
-
}
|
|
554
|
-
|
|
555
527
|
// src/utils/markdown-link.ts
|
|
556
528
|
var AUTHORED_LINK_REL_TOKENS = ["nofollow", "ugc", "sponsored"];
|
|
557
529
|
var NEW_TAB_REL = "noopener noreferrer";
|
|
@@ -595,11 +567,11 @@ function unescapeMarkdownLinkText(value) {
|
|
|
595
567
|
function encodeMarkdownUrl(url) {
|
|
596
568
|
return url.replace(/\s/g, (match) => encodeURIComponent(match)).replace(/[()]/g, (match) => encodeURIComponent(match));
|
|
597
569
|
}
|
|
598
|
-
function findMarkdownLinkAt(
|
|
570
|
+
function findMarkdownLinkAt(text3, selectionStart, selectionEnd = selectionStart) {
|
|
599
571
|
const from = Math.min(selectionStart, selectionEnd);
|
|
600
572
|
const to = Math.max(selectionStart, selectionEnd);
|
|
601
573
|
const contains = (start, end) => start <= from && to <= end;
|
|
602
|
-
for (const match of
|
|
574
|
+
for (const match of text3.matchAll(HTML_LINK_RE)) {
|
|
603
575
|
const start = _nullishCoalesce(match.index, () => ( 0));
|
|
604
576
|
const end = start + match[0].length;
|
|
605
577
|
if (!contains(start, end)) continue;
|
|
@@ -612,7 +584,7 @@ function findMarkdownLinkAt(text2, selectionStart, selectionEnd = selectionStart
|
|
|
612
584
|
rel: authoredRelTokens(htmlAttribute(attributes, "rel"))
|
|
613
585
|
};
|
|
614
586
|
}
|
|
615
|
-
for (const match of
|
|
587
|
+
for (const match of text3.matchAll(MARKDOWN_LINK_RE)) {
|
|
616
588
|
const start = _nullishCoalesce(match.index, () => ( 0));
|
|
617
589
|
const end = start + match[0].length;
|
|
618
590
|
if (!contains(start, end)) continue;
|
|
@@ -620,8 +592,8 @@ function findMarkdownLinkAt(text2, selectionStart, selectionEnd = selectionStart
|
|
|
620
592
|
}
|
|
621
593
|
return null;
|
|
622
594
|
}
|
|
623
|
-
function formatMarkdownLink({ text:
|
|
624
|
-
const label =
|
|
595
|
+
function formatMarkdownLink({ text: text3, url, rel }) {
|
|
596
|
+
const label = text3.length > 0 ? text3 : url;
|
|
625
597
|
const tokens = authoredRelTokens(rel);
|
|
626
598
|
if (tokens.length > 0) {
|
|
627
599
|
return `<a href="${escapeHtmlAttribute(url)}" rel="${tokens.join(" ")}">${escapeHtmlText(label)}</a>`;
|
|
@@ -652,7 +624,7 @@ var element = (tagName, children) => ({
|
|
|
652
624
|
var sectionsBreak;
|
|
653
625
|
function toTextBreaksBetweenSections() {
|
|
654
626
|
if (sectionsBreak === void 0) {
|
|
655
|
-
const row = (
|
|
627
|
+
const row = (text3) => element("tr", [element("td", [{ type: "text", value: text3 }])]);
|
|
656
628
|
const table = element("table", [element("thead", [row("a")]), element("tbody", [row("b")])]);
|
|
657
629
|
sectionsBreak = _hastutiltotext.toText.call(void 0, { type: "root", children: [table] }).includes("\n");
|
|
658
630
|
}
|
|
@@ -716,24 +688,24 @@ function buildHeadingIdMap(content, sectionIds) {
|
|
|
716
688
|
for (const section of sectionIds) {
|
|
717
689
|
sectionIdMap.set(section.title, section.id);
|
|
718
690
|
sectionIdMap.set(section.title.toLowerCase(), section.id);
|
|
719
|
-
sectionIdMap.set(
|
|
691
|
+
sectionIdMap.set(_chunkG7GF4PWAcjs.stripHeadingEmojis.call(void 0, section.title).toLowerCase(), section.id);
|
|
720
692
|
}
|
|
721
693
|
}
|
|
722
|
-
const dedupe =
|
|
694
|
+
const dedupe = _chunkG7GF4PWAcjs.createHeadingIdDeduper.call(void 0, );
|
|
723
695
|
const map = /* @__PURE__ */ new Map();
|
|
724
696
|
let sectionOrdinal = 0;
|
|
725
697
|
let headingOrdinal = 0;
|
|
726
|
-
for (const { line, level, text: rawText } of
|
|
727
|
-
const
|
|
698
|
+
for (const { line, level: level2, text: rawText } of _chunkG7GF4PWAcjs.scanHeadings.call(void 0, content)) {
|
|
699
|
+
const text3 = stripInlineMarkdown(rawText).trim();
|
|
728
700
|
headingOrdinal++;
|
|
729
|
-
if (
|
|
701
|
+
if (level2 <= EXTRACTOR_MAX_LEVEL) sectionOrdinal++;
|
|
730
702
|
let assigned;
|
|
731
|
-
if (sectionIds &&
|
|
703
|
+
if (sectionIds && level2 <= EXTRACTOR_MAX_LEVEL) {
|
|
732
704
|
for (const variation of [
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
705
|
+
text3,
|
|
706
|
+
text3.toLowerCase(),
|
|
707
|
+
_chunkG7GF4PWAcjs.stripHeadingEmojis.call(void 0, text3),
|
|
708
|
+
_chunkG7GF4PWAcjs.stripHeadingEmojis.call(void 0, text3).toLowerCase()
|
|
737
709
|
]) {
|
|
738
710
|
const id = sectionIdMap.get(variation);
|
|
739
711
|
if (id) {
|
|
@@ -743,9 +715,9 @@ function buildHeadingIdMap(content, sectionIds) {
|
|
|
743
715
|
}
|
|
744
716
|
}
|
|
745
717
|
if (assigned === void 0) {
|
|
746
|
-
const baseId =
|
|
718
|
+
const baseId = _chunkG7GF4PWAcjs.slugifyHeadingText.call(void 0, text3);
|
|
747
719
|
assigned = dedupe(
|
|
748
|
-
baseId || (
|
|
720
|
+
baseId || (level2 <= EXTRACTOR_MAX_LEVEL ? `section-${sectionOrdinal}` : `heading-${headingOrdinal}`)
|
|
749
721
|
);
|
|
750
722
|
}
|
|
751
723
|
map.set(line, assigned);
|
|
@@ -1294,7 +1266,7 @@ var MarkdownContentImage = ({ src, alt }) => {
|
|
|
1294
1266
|
alt: _nullishCoalesce(alt, () => ( "No image available")),
|
|
1295
1267
|
width: 400,
|
|
1296
1268
|
height: 400,
|
|
1297
|
-
sizes:
|
|
1269
|
+
sizes: _chunkKKFDRCQFcjs.IMAGE_SLOT.inline,
|
|
1298
1270
|
className: "h-auto max-h-[400px] w-auto max-w-full rounded-lg object-contain",
|
|
1299
1271
|
style: { width: "auto", height: "auto" }
|
|
1300
1272
|
}
|
|
@@ -1358,7 +1330,7 @@ function buildBaseComponents({
|
|
|
1358
1330
|
const mapped = useHeadingId(node);
|
|
1359
1331
|
const taken = useAssignedHeadingIds();
|
|
1360
1332
|
const explicit = typeof _optionalChain([node, 'optionalAccess', _27 => _27.properties, 'optionalAccess', _28 => _28.id]) === "string" && node.properties.id !== "" ? node.properties.id : void 0;
|
|
1361
|
-
const id = _nullishCoalesce(_nullishCoalesce(explicit, () => ( mapped)), () => ( resolveFallbackHeadingId(
|
|
1333
|
+
const id = _nullishCoalesce(_nullishCoalesce(explicit, () => ( mapped)), () => ( resolveFallbackHeadingId(_chunkG7GF4PWAcjs.slugifyHeadingText.call(void 0, extractText(children)), taken)));
|
|
1362
1334
|
const EffectiveTag = Tag2 === "h1" && demoteMarkdownH1ToH2 ? "h2" : Tag2;
|
|
1363
1335
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EffectiveTag, { id: id || void 0, className: headingClassName, children });
|
|
1364
1336
|
}
|
|
@@ -1430,10 +1402,10 @@ function buildBaseComponents({
|
|
|
1430
1402
|
const handleAnchorClick = (e) => {
|
|
1431
1403
|
if (inPageAnchorId === null) return;
|
|
1432
1404
|
if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey || e.button !== 0) return;
|
|
1433
|
-
const target =
|
|
1405
|
+
const target = _chunkG7GF4PWAcjs.getHashTargetElement.call(void 0, inPageAnchorId);
|
|
1434
1406
|
if (!_optionalChain([target, 'optionalAccess', _29 => _29.id])) return;
|
|
1435
1407
|
e.preventDefault();
|
|
1436
|
-
|
|
1408
|
+
_chunkG7GF4PWAcjs.navigateSamePageHash.call(void 0, `#${target.id}`, { headerOffset: _chunkG7GF4PWAcjs.HUB_HEADER_OFFSET_PX });
|
|
1437
1409
|
};
|
|
1438
1410
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1439
1411
|
_chunkV45KLJQPcjs.next_link_default,
|
|
@@ -2042,7 +2014,7 @@ function findInlineCodeRanges(source) {
|
|
|
2042
2014
|
while (pos <= len) {
|
|
2043
2015
|
let end = source.indexOf("\n", pos);
|
|
2044
2016
|
if (end === -1) end = len;
|
|
2045
|
-
const blank =
|
|
2017
|
+
const blank = _chunkG7GF4PWAcjs.isBlankLine.call(void 0, source.slice(pos, end));
|
|
2046
2018
|
if (blank && segStart !== -1) break;
|
|
2047
2019
|
if (!blank) {
|
|
2048
2020
|
if (segStart === -1) segStart = pos;
|
|
@@ -2100,8 +2072,8 @@ function findInlineCodeRanges(source) {
|
|
|
2100
2072
|
}
|
|
2101
2073
|
return ranges;
|
|
2102
2074
|
}
|
|
2103
|
-
function foldAsciiCase(
|
|
2104
|
-
return
|
|
2075
|
+
function foldAsciiCase(text3) {
|
|
2076
|
+
return text3.replace(/[A-Z]/g, (c) => String.fromCharCode(c.charCodeAt(0) + 32));
|
|
2105
2077
|
}
|
|
2106
2078
|
function blankRanges(masked, ranges) {
|
|
2107
2079
|
if (ranges.length === 0) return masked;
|
|
@@ -2124,7 +2096,7 @@ function toMaskLines(source) {
|
|
|
2124
2096
|
return out;
|
|
2125
2097
|
}
|
|
2126
2098
|
function blankFencedRegions(masked, lines) {
|
|
2127
|
-
const fences =
|
|
2099
|
+
const fences = _chunkG7GF4PWAcjs.createFenceTracker.call(void 0, );
|
|
2128
2100
|
const ranges = [];
|
|
2129
2101
|
let openStart = null;
|
|
2130
2102
|
let lastEnd = 0;
|
|
@@ -2163,7 +2135,7 @@ function blankIndentedCode(masked, lines) {
|
|
|
2163
2135
|
const listContentCols = [];
|
|
2164
2136
|
const ranges = [];
|
|
2165
2137
|
for (const line of lines) {
|
|
2166
|
-
if (
|
|
2138
|
+
if (_chunkG7GF4PWAcjs.isBlankLine.call(void 0, line.content)) continue;
|
|
2167
2139
|
const indent = leadingIndent(line.content);
|
|
2168
2140
|
const top = listContentCols.length ? listContentCols[listContentCols.length - 1] : 0;
|
|
2169
2141
|
if (indent >= top + 4) {
|
|
@@ -2254,7 +2226,7 @@ function contPrefixLen(c) {
|
|
|
2254
2226
|
function findLabelClose(lines, i, from) {
|
|
2255
2227
|
for (let j = i; j < lines.length; j++) {
|
|
2256
2228
|
const c = stripCr(lines[j].content);
|
|
2257
|
-
if (j > i &&
|
|
2229
|
+
if (j > i && _chunkG7GF4PWAcjs.isBlankLine.call(void 0, c)) return { stoppedAt: j };
|
|
2258
2230
|
for (let q = j === i ? from : contPrefixLen(c); q < c.length; q = skipEscaped(c, q)) {
|
|
2259
2231
|
if (c[q] === "[") return { stoppedAt: j };
|
|
2260
2232
|
if (c[q] !== "]") continue;
|
|
@@ -2272,7 +2244,7 @@ function blankLinkDefinitions(masked, lines) {
|
|
|
2272
2244
|
let k = from;
|
|
2273
2245
|
for (; k < lines.length; k++) {
|
|
2274
2246
|
const c = stripCr(lines[k].content);
|
|
2275
|
-
if (
|
|
2247
|
+
if (_chunkG7GF4PWAcjs.isBlankLine.call(void 0, c)) break;
|
|
2276
2248
|
blankLine(lines[k]);
|
|
2277
2249
|
if (stop(c)) {
|
|
2278
2250
|
k++;
|
|
@@ -2315,7 +2287,7 @@ function blankLinkDefinitions(masked, lines) {
|
|
|
2315
2287
|
const k = j + 1;
|
|
2316
2288
|
if (k >= lines.length) break;
|
|
2317
2289
|
const c = stripCr(lines[k].content);
|
|
2318
|
-
if (
|
|
2290
|
+
if (_chunkG7GF4PWAcjs.isBlankLine.call(void 0, c)) break;
|
|
2319
2291
|
const at = contPrefixLen(c);
|
|
2320
2292
|
const next = tail.k === "needDest" ? parseDefTail(c, at) : parseTitleTail(c, skipSpaces(c, at));
|
|
2321
2293
|
if (next.k === "decline") break;
|
|
@@ -2343,13 +2315,13 @@ function footnoteLabelEnd(c, open) {
|
|
|
2343
2315
|
}
|
|
2344
2316
|
function blankUnreferencedFootnotes(masked, lines, folded) {
|
|
2345
2317
|
if (masked.indexOf("[^") === -1) return masked;
|
|
2346
|
-
const
|
|
2318
|
+
const text3 = (line) => stripCr(masked.slice(line.contentStart, line.contentStart + line.content.length));
|
|
2347
2319
|
const refMask = footnoteReferenceMask(masked, folded);
|
|
2348
2320
|
const refText2 = (line) => stripCr(refMask.slice(line.contentStart, line.contentStart + line.content.length));
|
|
2349
2321
|
const referenced = /* @__PURE__ */ new Set();
|
|
2350
2322
|
const defAt = [];
|
|
2351
2323
|
for (const line of lines) {
|
|
2352
|
-
const c =
|
|
2324
|
+
const c = text3(line);
|
|
2353
2325
|
let isDef = null;
|
|
2354
2326
|
if (c.indexOf("[^") !== -1) {
|
|
2355
2327
|
const open = FOOTNOTE_DEF_OPEN_RE.exec(c);
|
|
@@ -2378,14 +2350,14 @@ function blankUnreferencedFootnotes(masked, lines, folded) {
|
|
|
2378
2350
|
for (let i = 0; i < lines.length; i++) {
|
|
2379
2351
|
const at = defAt[i];
|
|
2380
2352
|
if (at === null) continue;
|
|
2381
|
-
const head =
|
|
2353
|
+
const head = text3(lines[i]);
|
|
2382
2354
|
const end = footnoteLabelEnd(head, at);
|
|
2383
2355
|
if (referenced.has(normalizeFootnoteLabel(head.slice(at + 2, end)))) continue;
|
|
2384
2356
|
let j = i;
|
|
2385
2357
|
let sawBlank = false;
|
|
2386
2358
|
for (let k = i + 1; k < lines.length; k++) {
|
|
2387
|
-
const c =
|
|
2388
|
-
if (
|
|
2359
|
+
const c = text3(lines[k]);
|
|
2360
|
+
if (_chunkG7GF4PWAcjs.isBlankLine.call(void 0, c)) {
|
|
2389
2361
|
sawBlank = true;
|
|
2390
2362
|
continue;
|
|
2391
2363
|
}
|
|
@@ -2485,7 +2457,7 @@ function paragraphEnd(s, from) {
|
|
|
2485
2457
|
lineStart += 1;
|
|
2486
2458
|
const next = s.indexOf("\n", lineStart);
|
|
2487
2459
|
const line = s.slice(lineStart, next === -1 ? s.length : next);
|
|
2488
|
-
if (
|
|
2460
|
+
if (_chunkG7GF4PWAcjs.isBlankLine.call(void 0, line)) return lineStart;
|
|
2489
2461
|
if (next === -1) break;
|
|
2490
2462
|
lineStart = next;
|
|
2491
2463
|
}
|
|
@@ -2567,9 +2539,9 @@ function spliceWindows(masked, edits) {
|
|
|
2567
2539
|
if (edits.length === 0) return masked;
|
|
2568
2540
|
const parts = [];
|
|
2569
2541
|
let cursor = 0;
|
|
2570
|
-
for (const [from, to,
|
|
2542
|
+
for (const [from, to, text3] of edits) {
|
|
2571
2543
|
if (from > cursor) parts.push(masked.slice(cursor, from));
|
|
2572
|
-
parts.push(
|
|
2544
|
+
parts.push(text3);
|
|
2573
2545
|
cursor = to;
|
|
2574
2546
|
}
|
|
2575
2547
|
parts.push(masked.slice(cursor));
|
|
@@ -2639,7 +2611,7 @@ function blankListItemCode(masked, lines, depth = 0) {
|
|
|
2639
2611
|
run = [];
|
|
2640
2612
|
};
|
|
2641
2613
|
for (const line of lines) {
|
|
2642
|
-
if (
|
|
2614
|
+
if (_chunkG7GF4PWAcjs.isBlankLine.call(void 0, line.content)) {
|
|
2643
2615
|
if (run.length > 0) run.push({ ...line, content: "" });
|
|
2644
2616
|
continue;
|
|
2645
2617
|
}
|
|
@@ -2673,8 +2645,8 @@ function blankListItemCode(masked, lines, depth = 0) {
|
|
|
2673
2645
|
flush();
|
|
2674
2646
|
return spliceWindows(masked, edits);
|
|
2675
2647
|
}
|
|
2676
|
-
function buildCloserHaystack(
|
|
2677
|
-
const folded = foldAsciiCase(
|
|
2648
|
+
function buildCloserHaystack(text3) {
|
|
2649
|
+
const folded = foldAsciiCase(text3);
|
|
2678
2650
|
const lines = toMaskLines(folded);
|
|
2679
2651
|
let masked = blankRanges(folded, findInlineCodeRanges(folded));
|
|
2680
2652
|
masked = blankFencedRegions(masked, lines);
|
|
@@ -2861,10 +2833,10 @@ function htmlBlockStartKind(line, inParagraph) {
|
|
|
2861
2833
|
if (!inParagraph && HTML_BLOCK_START_7.test(line)) return 7;
|
|
2862
2834
|
return null;
|
|
2863
2835
|
}
|
|
2864
|
-
function computeHtmlBlockRanges(
|
|
2865
|
-
if (
|
|
2836
|
+
function computeHtmlBlockRanges(text3) {
|
|
2837
|
+
if (text3.indexOf("<") === -1) return [];
|
|
2866
2838
|
const ranges = [];
|
|
2867
|
-
const fences =
|
|
2839
|
+
const fences = _chunkG7GF4PWAcjs.createFenceTracker.call(void 0, );
|
|
2868
2840
|
let kind = null;
|
|
2869
2841
|
let start = 0;
|
|
2870
2842
|
let lastEnd = 0;
|
|
@@ -2872,16 +2844,16 @@ function computeHtmlBlockRanges(text2) {
|
|
|
2872
2844
|
let offset = 0;
|
|
2873
2845
|
let listContentCol = 0;
|
|
2874
2846
|
let openPrefixLen = 0;
|
|
2875
|
-
for (const line of
|
|
2847
|
+
for (const line of text3.split("\n")) {
|
|
2876
2848
|
const lineStart = offset;
|
|
2877
2849
|
const lineEnd = offset + line.length;
|
|
2878
2850
|
offset = lineEnd + 1;
|
|
2879
2851
|
const expanded = expandTabs(line);
|
|
2880
2852
|
const norm = stripContainerPrefix(expanded, listContentCol);
|
|
2881
2853
|
if (norm.openedListCol >= 0) listContentCol = norm.openedListCol;
|
|
2882
|
-
else if (!
|
|
2883
|
-
const normBlank =
|
|
2884
|
-
const blank = openPrefixLen > 0 ?
|
|
2854
|
+
else if (!_chunkG7GF4PWAcjs.isBlankLine.call(void 0, norm.text) && norm.text === expanded) listContentCol = 0;
|
|
2855
|
+
const normBlank = _chunkG7GF4PWAcjs.isBlankLine.call(void 0, norm.text);
|
|
2856
|
+
const blank = openPrefixLen > 0 ? _chunkG7GF4PWAcjs.isBlankLine.call(void 0, expanded.slice(openPrefixLen)) : _chunkG7GF4PWAcjs.isBlankLine.call(void 0, line);
|
|
2885
2857
|
if (kind !== null) {
|
|
2886
2858
|
if (kind >= 6) {
|
|
2887
2859
|
if (blank) {
|
|
@@ -2934,21 +2906,21 @@ function escapeLeftoverTagStarts(gap, lowerSource, gapOffset) {
|
|
|
2934
2906
|
(m, slash, tag, at) => isMaskedBlank(lowerSource, gapOffset + at, gapOffset + at + m.length) ? m : `<${slash}${tag}`
|
|
2935
2907
|
);
|
|
2936
2908
|
}
|
|
2937
|
-
function escapeUnknownHtmlTags(
|
|
2938
|
-
if (!
|
|
2939
|
-
const lowerSource = buildCloserHaystack(
|
|
2909
|
+
function escapeUnknownHtmlTags(text3, allowedTags = SAFE_HTML_TAGS) {
|
|
2910
|
+
if (!text3 || text3.indexOf("<") === -1) return text3;
|
|
2911
|
+
const lowerSource = buildCloserHaystack(text3);
|
|
2940
2912
|
let htmlBlocks = null;
|
|
2941
2913
|
const spanInsideHtmlBlock = (from, to) => {
|
|
2942
|
-
_nullishCoalesce(htmlBlocks, () => ( (htmlBlocks = computeHtmlBlockRanges(
|
|
2914
|
+
_nullishCoalesce(htmlBlocks, () => ( (htmlBlocks = computeHtmlBlockRanges(text3))));
|
|
2943
2915
|
return htmlBlocks.some((r) => r.start < to && r.end > from);
|
|
2944
2916
|
};
|
|
2945
2917
|
const parts = [];
|
|
2946
2918
|
let cursor = 0;
|
|
2947
2919
|
PROTECTED_SPAN_RE.lastIndex = 0;
|
|
2948
2920
|
let span;
|
|
2949
|
-
while ((span = PROTECTED_SPAN_RE.exec(
|
|
2921
|
+
while ((span = PROTECTED_SPAN_RE.exec(text3)) !== null) {
|
|
2950
2922
|
if (span.index > cursor) {
|
|
2951
|
-
parts.push(escapeOutsideFences(
|
|
2923
|
+
parts.push(escapeOutsideFences(text3.slice(cursor, span.index), allowedTags, lowerSource, cursor));
|
|
2952
2924
|
}
|
|
2953
2925
|
const isFence = span[1] !== void 0;
|
|
2954
2926
|
const spanEnd = span.index + span[0].length;
|
|
@@ -2957,8 +2929,8 @@ function escapeUnknownHtmlTags(text2, allowedTags = SAFE_HTML_TAGS) {
|
|
|
2957
2929
|
);
|
|
2958
2930
|
cursor = span.index + span[0].length;
|
|
2959
2931
|
}
|
|
2960
|
-
if (cursor <
|
|
2961
|
-
parts.push(escapeOutsideFences(
|
|
2932
|
+
if (cursor < text3.length) {
|
|
2933
|
+
parts.push(escapeOutsideFences(text3.slice(cursor), allowedTags, lowerSource, cursor));
|
|
2962
2934
|
}
|
|
2963
2935
|
return parts.join("");
|
|
2964
2936
|
}
|
|
@@ -3035,7 +3007,7 @@ var ScanState = class {
|
|
|
3035
3007
|
* `FENCE_RE` plus its own open/close state machine, cross-referenced by a
|
|
3036
3008
|
* comment) is precisely the drift that produced the `~~~` bug.
|
|
3037
3009
|
*/
|
|
3038
|
-
this.fences =
|
|
3010
|
+
this.fences = _chunkG7GF4PWAcjs.createFenceTracker.call(void 0, );
|
|
3039
3011
|
/** Depth of currently open raw HTML block containers. */
|
|
3040
3012
|
this.htmlDepth = 0;
|
|
3041
3013
|
/** Raw-block tag name of a start tag still waiting for its `>`, or null. */
|
|
@@ -3108,7 +3080,7 @@ function splitStreamingBlocks(content) {
|
|
|
3108
3080
|
const isListOrQuote = (line) => /^\s{0,3}(?:[-+*]\s|\d{1,9}[.)]\s|>)/.test(line);
|
|
3109
3081
|
const firstNonBlank = (arr) => {
|
|
3110
3082
|
for (const line of arr) {
|
|
3111
|
-
if (!
|
|
3083
|
+
if (!_chunkG7GF4PWAcjs.isBlankLine.call(void 0, line)) return line;
|
|
3112
3084
|
}
|
|
3113
3085
|
return void 0;
|
|
3114
3086
|
};
|
|
@@ -3118,10 +3090,10 @@ function splitStreamingBlocks(content) {
|
|
|
3118
3090
|
state.scanLine(line);
|
|
3119
3091
|
if (state.htmlMark() !== markBefore || state.htmlLatched()) currentTouchedHtml = true;
|
|
3120
3092
|
current.push(line);
|
|
3121
|
-
const isBlank =
|
|
3093
|
+
const isBlank = _chunkG7GF4PWAcjs.isBlankLine.call(void 0, line);
|
|
3122
3094
|
if (!isBlank || state.fences.openChar() !== null || state.htmlBlocksCut()) continue;
|
|
3123
3095
|
let j = i + 1;
|
|
3124
|
-
while (j < lines.length &&
|
|
3096
|
+
while (j < lines.length && _chunkG7GF4PWAcjs.isBlankLine.call(void 0, lines[j])) j++;
|
|
3125
3097
|
if (j >= lines.length) continue;
|
|
3126
3098
|
const next = lines[j];
|
|
3127
3099
|
if (/^\s/.test(next)) continue;
|
|
@@ -3129,7 +3101,7 @@ function splitStreamingBlocks(content) {
|
|
|
3129
3101
|
if (isListOrQuote(next) && unitOpener !== void 0 && isListOrQuote(unitOpener)) {
|
|
3130
3102
|
continue;
|
|
3131
3103
|
}
|
|
3132
|
-
if (current.every(
|
|
3104
|
+
if (current.every(_chunkG7GF4PWAcjs.isBlankLine)) continue;
|
|
3133
3105
|
units.push(current);
|
|
3134
3106
|
unitTouchedHtml.push(currentTouchedHtml);
|
|
3135
3107
|
current = [];
|
|
@@ -3141,12 +3113,12 @@ function splitStreamingBlocks(content) {
|
|
|
3141
3113
|
}
|
|
3142
3114
|
let cursorLine = 1;
|
|
3143
3115
|
return units.map((unitLines, idx) => {
|
|
3144
|
-
const
|
|
3116
|
+
const text3 = unitLines.join("\n");
|
|
3145
3117
|
const isTail = idx === units.length - 1;
|
|
3146
3118
|
const startLine = cursorLine;
|
|
3147
3119
|
cursorLine += unitLines.length;
|
|
3148
3120
|
return {
|
|
3149
|
-
text:
|
|
3121
|
+
text: text3,
|
|
3150
3122
|
index: idx,
|
|
3151
3123
|
startLine,
|
|
3152
3124
|
// Units carrying UNBALANCED raw HTML are never cached: an open
|
|
@@ -3156,7 +3128,7 @@ function splitStreamingBlocks(content) {
|
|
|
3156
3128
|
// opens AND closes within the unit (`<div>x</div>`) leaves the
|
|
3157
3129
|
// scanner's depth unchanged, so it stays memoizable — correctly: its
|
|
3158
3130
|
// parse cannot be invalidated by later tokens.
|
|
3159
|
-
memoizable: !isTail && !unitTouchedHtml[idx] && !NON_MEMOIZABLE_RE.test(
|
|
3131
|
+
memoizable: !isTail && !unitTouchedHtml[idx] && !NON_MEMOIZABLE_RE.test(text3)
|
|
3160
3132
|
};
|
|
3161
3133
|
});
|
|
3162
3134
|
}
|
|
@@ -3311,7 +3283,7 @@ var RENDERER_CLASS = MARKDOWN_RENDERER_CLASS;
|
|
|
3311
3283
|
var CONTENT_WRAPPER_CLASS = "max-w-none";
|
|
3312
3284
|
var ARTICLE_CLASS = "max-w-none [&>*:last-child]:mb-0";
|
|
3313
3285
|
var StreamingBlockRenderer = _react.memo.call(void 0, function StreamingBlockRendererImpl({
|
|
3314
|
-
text:
|
|
3286
|
+
text: text3,
|
|
3315
3287
|
remarkPlugins,
|
|
3316
3288
|
rehypePlugins,
|
|
3317
3289
|
components
|
|
@@ -3323,7 +3295,7 @@ var StreamingBlockRenderer = _react.memo.call(void 0, function StreamingBlockRen
|
|
|
3323
3295
|
rehypePlugins,
|
|
3324
3296
|
urlTransform: cardAwareUrlTransform,
|
|
3325
3297
|
components,
|
|
3326
|
-
children:
|
|
3298
|
+
children: text3
|
|
3327
3299
|
}
|
|
3328
3300
|
);
|
|
3329
3301
|
});
|
|
@@ -3539,7 +3511,7 @@ function onAskAiIntent(run) {
|
|
|
3539
3511
|
|
|
3540
3512
|
// src/components/chat/chat-appearance-context.tsx
|
|
3541
3513
|
|
|
3542
|
-
var ChatAppearanceContext = _react.createContext.call(void 0,
|
|
3514
|
+
var ChatAppearanceContext = _react.createContext.call(void 0, _chunkEIACEY2Lcjs.CHAT_APPEARANCE.CLASSIC);
|
|
3543
3515
|
function useChatAppearance() {
|
|
3544
3516
|
return _react.useContext.call(void 0, ChatAppearanceContext);
|
|
3545
3517
|
}
|
|
@@ -3578,7 +3550,7 @@ var ApprovalRequestMessage = _react.forwardRef.call(void 0,
|
|
|
3578
3550
|
...props
|
|
3579
3551
|
}, ref) => {
|
|
3580
3552
|
const [isProcessing, setIsProcessing] = _react.useState.call(void 0, false);
|
|
3581
|
-
const isV2 = useChatAppearance() ===
|
|
3553
|
+
const isV2 = useChatAppearance() === _chunkEIACEY2Lcjs.CHAT_APPEARANCE.V2;
|
|
3582
3554
|
const handleApprove = async () => {
|
|
3583
3555
|
setIsProcessing(true);
|
|
3584
3556
|
try {
|
|
@@ -3601,7 +3573,7 @@ var ApprovalRequestMessage = _react.forwardRef.call(void 0,
|
|
|
3601
3573
|
{
|
|
3602
3574
|
ref,
|
|
3603
3575
|
className: _chunk63A4GZMBcjs.cn.call(void 0,
|
|
3604
|
-
|
|
3576
|
+
_chunkU767P4JUcjs.CHAT_BLOCK_CLASS,
|
|
3605
3577
|
// v2: the thread owns the space below the card.
|
|
3606
3578
|
!isV2 && "mb-[var(--spacing-system-xsf)]",
|
|
3607
3579
|
className
|
|
@@ -3609,7 +3581,7 @@ var ApprovalRequestMessage = _react.forwardRef.call(void 0,
|
|
|
3609
3581
|
...props,
|
|
3610
3582
|
children: [
|
|
3611
3583
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "w-full whitespace-pre-line break-words text-ods-text-primary text-h4", children: _optionalChain([data, 'access', _51 => _51.explanation, 'optionalAccess', _52 => _52.trim, 'call', _53 => _53()]) || "Approval required" }),
|
|
3612
|
-
showFooterActions && status === "pending" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3584
|
+
showFooterActions && status === "pending" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.ApprovalWaitingLine, {}),
|
|
3613
3585
|
!showFooterActions ? null : status === "pending" ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
3614
3586
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3615
3587
|
_chunkFCZAUK4Dcjs.Button,
|
|
@@ -3641,14 +3613,14 @@ var ApprovalRequestMessage = _react.forwardRef.call(void 0,
|
|
|
3641
3613
|
children: "Reject"
|
|
3642
3614
|
}
|
|
3643
3615
|
)
|
|
3644
|
-
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3616
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.ApprovalStatusTag, { status, resolvedByName, inlineResolver: true }) })
|
|
3645
3617
|
]
|
|
3646
3618
|
}
|
|
3647
3619
|
);
|
|
3648
3620
|
}
|
|
3649
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref, className: _chunk63A4GZMBcjs.cn.call(void 0, "mb-[var(--spacing-system-xsf)]",
|
|
3621
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref, className: _chunk63A4GZMBcjs.cn.call(void 0, "mb-[var(--spacing-system-xsf)]", _chunkU767P4JUcjs.CHAT_BLOCK_CLASS, className), ...props, children: [
|
|
3650
3622
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ApprovalCardBody, { data }),
|
|
3651
|
-
showFooterActions && status === "pending" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3623
|
+
showFooterActions && status === "pending" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.ApprovalWaitingLine, {}),
|
|
3652
3624
|
!showFooterActions ? null : status === "pending" ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
3653
3625
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3654
3626
|
_chunkFCZAUK4Dcjs.Button,
|
|
@@ -3680,7 +3652,7 @@ var ApprovalRequestMessage = _react.forwardRef.call(void 0,
|
|
|
3680
3652
|
children: "Reject"
|
|
3681
3653
|
}
|
|
3682
3654
|
)
|
|
3683
|
-
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3655
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.ApprovalStatusTag, { status, resolvedByName, inlineResolver: true }) })
|
|
3684
3656
|
] });
|
|
3685
3657
|
}
|
|
3686
3658
|
);
|
|
@@ -3710,7 +3682,7 @@ EscalationOfferMessage.displayName = "EscalationOfferMessage";
|
|
|
3710
3682
|
|
|
3711
3683
|
var AiAssistantInfo = _react.forwardRef.call(void 0,
|
|
3712
3684
|
({ className, icon, leading, title, body, timestamp, ...props }, ref) => {
|
|
3713
|
-
const isV2 = useChatAppearance() ===
|
|
3685
|
+
const isV2 = useChatAppearance() === _chunkEIACEY2Lcjs.CHAT_APPEARANCE.V2;
|
|
3714
3686
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
3715
3687
|
"div",
|
|
3716
3688
|
{
|
|
@@ -3726,7 +3698,7 @@ var AiAssistantInfo = _react.forwardRef.call(void 0,
|
|
|
3726
3698
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
3727
3699
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-start", children: [
|
|
3728
3700
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "min-w-0 flex-1 truncate text-ods-text-primary text-h4", title, children: title }),
|
|
3729
|
-
timestamp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-right text-ods-text-secondary text-h6", children:
|
|
3701
|
+
timestamp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-right text-ods-text-secondary text-h6", children: _chunkEIACEY2Lcjs.formatTime.call(void 0, timestamp) })
|
|
3730
3702
|
] }),
|
|
3731
3703
|
body != null && body !== "" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "w-full break-words text-ods-text-secondary text-h4", children: body })
|
|
3732
3704
|
] })
|
|
@@ -3834,8 +3806,8 @@ TicketEventMessage.displayName = "TicketEventMessage";
|
|
|
3834
3806
|
|
|
3835
3807
|
var JOINED = /^(.+) joined the chat$/;
|
|
3836
3808
|
var LEFT = /^(.+) left the chat$/;
|
|
3837
|
-
var SystemEventMessage = _react.forwardRef.call(void 0, ({ text:
|
|
3838
|
-
const joined = _optionalChain([JOINED, 'access', _57 => _57.exec, 'call', _58 => _58(
|
|
3809
|
+
var SystemEventMessage = _react.forwardRef.call(void 0, ({ text: text3, timestamp, ...props }, ref) => {
|
|
3810
|
+
const joined = _optionalChain([JOINED, 'access', _57 => _57.exec, 'call', _58 => _58(text3), 'optionalAccess', _59 => _59[1]]);
|
|
3839
3811
|
if (joined) {
|
|
3840
3812
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3841
3813
|
AiAssistantInfo,
|
|
@@ -3849,13 +3821,13 @@ var SystemEventMessage = _react.forwardRef.call(void 0, ({ text: text2, timestam
|
|
|
3849
3821
|
}
|
|
3850
3822
|
);
|
|
3851
3823
|
}
|
|
3852
|
-
const left = _optionalChain([LEFT, 'access', _60 => _60.exec, 'call', _61 => _61(
|
|
3824
|
+
const left = _optionalChain([LEFT, 'access', _60 => _60.exec, 'call', _61 => _61(text3), 'optionalAccess', _62 => _62[1]]);
|
|
3853
3825
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3854
3826
|
AiAssistantInfo,
|
|
3855
3827
|
{
|
|
3856
3828
|
ref,
|
|
3857
3829
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRHC2FRVEcjs.InfoCircleIcon, { className: "size-6 text-ods-accent" }),
|
|
3858
|
-
title: left ? "Technician Left" :
|
|
3830
|
+
title: left ? "Technician Left" : text3,
|
|
3859
3831
|
body: left ? `${left} left the conversation.` : void 0,
|
|
3860
3832
|
timestamp,
|
|
3861
3833
|
...props
|
|
@@ -3925,6 +3897,65 @@ function errorDetailsMessage(details) {
|
|
|
3925
3897
|
}
|
|
3926
3898
|
var CHAT_OWNER_ADMIN = "ADMIN";
|
|
3927
3899
|
|
|
3900
|
+
// src/chat-protocol/wire-narrow.ts
|
|
3901
|
+
function isRecord(value) {
|
|
3902
|
+
return typeof value === "object" && value !== null;
|
|
3903
|
+
}
|
|
3904
|
+
function unwrapEnvelope(payload) {
|
|
3905
|
+
return isRecord(payload) && "data" in payload ? payload.data : payload;
|
|
3906
|
+
}
|
|
3907
|
+
|
|
3908
|
+
// src/chat-protocol/policy-review.ts
|
|
3909
|
+
var APPROVAL_LEVELS = /* @__PURE__ */ new Set(["ALLOW", "ASK_USER", "ASK_TECHNICIAN", "DENY"]);
|
|
3910
|
+
function text(value) {
|
|
3911
|
+
return typeof value === "string" && value.trim() ? value.trim() : void 0;
|
|
3912
|
+
}
|
|
3913
|
+
function level(value) {
|
|
3914
|
+
return typeof value === "string" && APPROVAL_LEVELS.has(value) ? value : void 0;
|
|
3915
|
+
}
|
|
3916
|
+
function rules(raw2) {
|
|
3917
|
+
if (!Array.isArray(raw2)) return [];
|
|
3918
|
+
return raw2.filter(isRecord).flatMap((rule) => {
|
|
3919
|
+
const code = text(rule.code);
|
|
3920
|
+
const label = _nullishCoalesce(text(rule.label), () => ( code));
|
|
3921
|
+
return label ? [{ code: _nullishCoalesce(code, () => ( label)), label }] : [];
|
|
3922
|
+
});
|
|
3923
|
+
}
|
|
3924
|
+
function codes(raw2) {
|
|
3925
|
+
if (!Array.isArray(raw2)) return [];
|
|
3926
|
+
return raw2.map(text).filter((code) => !!code);
|
|
3927
|
+
}
|
|
3928
|
+
function policyReviewField(raw2) {
|
|
3929
|
+
const policyReview = normalizePolicyReview(raw2);
|
|
3930
|
+
return policyReview ? { policyReview } : {};
|
|
3931
|
+
}
|
|
3932
|
+
function keptPolicyReview(...reviews) {
|
|
3933
|
+
const policyReview = reviews.find((review) => review !== void 0);
|
|
3934
|
+
return policyReview ? { policyReview } : {};
|
|
3935
|
+
}
|
|
3936
|
+
function normalizePolicyReview(raw2) {
|
|
3937
|
+
if (!isRecord(raw2)) return void 0;
|
|
3938
|
+
const source = text(raw2.source);
|
|
3939
|
+
const decision = text(raw2.decision);
|
|
3940
|
+
const approvalLevel = level(raw2.approvalLevel);
|
|
3941
|
+
const policyLevel = level(raw2.policyLevel);
|
|
3942
|
+
const reason = text(raw2.reason);
|
|
3943
|
+
const operationCodes = codes(raw2.operationCodes);
|
|
3944
|
+
const matchedRules = rules(raw2.matchedRules);
|
|
3945
|
+
if (!decision && !approvalLevel && !policyLevel && !reason && !operationCodes.length && !matchedRules.length) {
|
|
3946
|
+
return void 0;
|
|
3947
|
+
}
|
|
3948
|
+
return {
|
|
3949
|
+
...source ? { source } : {},
|
|
3950
|
+
...decision ? { decision } : {},
|
|
3951
|
+
...approvalLevel ? { approvalLevel } : {},
|
|
3952
|
+
...policyLevel ? { policyLevel } : {},
|
|
3953
|
+
operationCodes,
|
|
3954
|
+
matchedRules,
|
|
3955
|
+
...reason ? { reason } : {}
|
|
3956
|
+
};
|
|
3957
|
+
}
|
|
3958
|
+
|
|
3928
3959
|
// src/chat-protocol/card-marker.ts
|
|
3929
3960
|
var CARD_TYPE = "[a-zA-Z0-9_-]+";
|
|
3930
3961
|
var CARD_ID = "[^\\]\\r\\n)]+";
|
|
@@ -3932,10 +3963,10 @@ var CARD_REFERENCE = new RegExp(`^\\[card://(${CARD_TYPE}):(${CARD_ID})\\]$`);
|
|
|
3932
3963
|
function createCardMarkerScanner() {
|
|
3933
3964
|
return new RegExp(`\\[card://(${CARD_TYPE}):(${CARD_ID})[\\])]`, "g");
|
|
3934
3965
|
}
|
|
3935
|
-
function extractCardReferences(
|
|
3966
|
+
function extractCardReferences(text3) {
|
|
3936
3967
|
const seen = /* @__PURE__ */ new Set();
|
|
3937
3968
|
const out = [];
|
|
3938
|
-
for (const match of
|
|
3969
|
+
for (const match of text3.matchAll(createCardMarkerScanner())) {
|
|
3939
3970
|
const key = `${match[1]}:${match[2]}`;
|
|
3940
3971
|
if (seen.has(key)) continue;
|
|
3941
3972
|
seen.add(key);
|
|
@@ -3944,28 +3975,20 @@ function extractCardReferences(text2) {
|
|
|
3944
3975
|
return out;
|
|
3945
3976
|
}
|
|
3946
3977
|
|
|
3947
|
-
// src/chat-protocol/wire-narrow.ts
|
|
3948
|
-
function isRecord(value) {
|
|
3949
|
-
return typeof value === "object" && value !== null;
|
|
3950
|
-
}
|
|
3951
|
-
function unwrapEnvelope(payload) {
|
|
3952
|
-
return isRecord(payload) && "data" in payload ? payload.data : payload;
|
|
3953
|
-
}
|
|
3954
|
-
|
|
3955
3978
|
// src/chat-protocol/source-metadata.ts
|
|
3956
3979
|
var YOUTUBE_ID = /^[A-Za-z0-9_-]{11}$/;
|
|
3957
3980
|
var VIDEO_URL_KEYS = ["videoUrl", "highlightVideoUrl", "videoPoster", "highlightVideoPoster"];
|
|
3958
|
-
function
|
|
3981
|
+
function text2(value) {
|
|
3959
3982
|
if (typeof value !== "string") return void 0;
|
|
3960
3983
|
const trimmed = value.trim();
|
|
3961
3984
|
return trimmed || void 0;
|
|
3962
3985
|
}
|
|
3963
3986
|
function nullableText(value) {
|
|
3964
|
-
return value === null ? null :
|
|
3987
|
+
return value === null ? null : text2(value);
|
|
3965
3988
|
}
|
|
3966
3989
|
function httpsUrl(value) {
|
|
3967
|
-
const candidate =
|
|
3968
|
-
if (!candidate ||
|
|
3990
|
+
const candidate = text2(value);
|
|
3991
|
+
if (!candidate || _chunkO3EKOXFZcjs.UNSAFE_URL_CHARS.test(candidate)) return void 0;
|
|
3969
3992
|
try {
|
|
3970
3993
|
return new URL(candidate).protocol === "https:" ? candidate : void 0;
|
|
3971
3994
|
} catch (e4) {
|
|
@@ -3973,7 +3996,7 @@ function httpsUrl(value) {
|
|
|
3973
3996
|
}
|
|
3974
3997
|
}
|
|
3975
3998
|
function youtubeVideoId(value) {
|
|
3976
|
-
const candidate =
|
|
3999
|
+
const candidate = text2(value);
|
|
3977
4000
|
if (!candidate) return void 0;
|
|
3978
4001
|
if (YOUTUBE_ID.test(candidate)) return candidate;
|
|
3979
4002
|
const url = httpsUrl(candidate);
|
|
@@ -3989,11 +4012,11 @@ function youtubeVideoId(value) {
|
|
|
3989
4012
|
function sourceItems(value) {
|
|
3990
4013
|
if (!Array.isArray(value)) return void 0;
|
|
3991
4014
|
const items = value.filter(isRecord).flatMap((item) => {
|
|
3992
|
-
const id =
|
|
3993
|
-
const documentType =
|
|
3994
|
-
const name =
|
|
4015
|
+
const id = text2(item.id);
|
|
4016
|
+
const documentType = text2(item.documentType);
|
|
4017
|
+
const name = text2(item.name);
|
|
3995
4018
|
if (!id || !documentType || !name) return [];
|
|
3996
|
-
const externalUrl =
|
|
4019
|
+
const externalUrl = text2(item.externalUrl);
|
|
3997
4020
|
const targetPlatform = nullableText(item.targetPlatform);
|
|
3998
4021
|
const path = nullableText(item.path);
|
|
3999
4022
|
return [
|
|
@@ -4016,17 +4039,17 @@ function sources(value) {
|
|
|
4016
4039
|
for (const candidate of value) {
|
|
4017
4040
|
if (!isRecord(candidate)) continue;
|
|
4018
4041
|
const index = candidate.index;
|
|
4019
|
-
const name =
|
|
4042
|
+
const name = text2(candidate.name);
|
|
4020
4043
|
const isUsableIndex = typeof index === "number" && Number.isInteger(index) && index > 0 && !claimed.has(index);
|
|
4021
4044
|
if (!isUsableIndex || !name) continue;
|
|
4022
4045
|
claimed.add(index);
|
|
4023
|
-
const path =
|
|
4024
|
-
const documentType =
|
|
4025
|
-
const externalUrl =
|
|
4046
|
+
const path = text2(candidate.path);
|
|
4047
|
+
const documentType = text2(candidate.documentType);
|
|
4048
|
+
const externalUrl = text2(candidate.externalUrl);
|
|
4026
4049
|
const targetPlatform = nullableText(candidate.targetPlatform);
|
|
4027
|
-
const id =
|
|
4028
|
-
const sourceRepo =
|
|
4029
|
-
const label =
|
|
4050
|
+
const id = text2(candidate.id);
|
|
4051
|
+
const sourceRepo = text2(candidate.sourceRepo);
|
|
4052
|
+
const label = text2(candidate.label);
|
|
4030
4053
|
const items = sourceItems(candidate.items);
|
|
4031
4054
|
decoded.push({
|
|
4032
4055
|
index,
|
|
@@ -4074,13 +4097,13 @@ function videos(value) {
|
|
|
4074
4097
|
if (!match || match[1] !== "video") return [];
|
|
4075
4098
|
const id = match[2];
|
|
4076
4099
|
const url = _nullishCoalesce(httpsUrl(video.url), () => ( null));
|
|
4077
|
-
const sourceRepo =
|
|
4100
|
+
const sourceRepo = text2(video.sourceRepo);
|
|
4078
4101
|
const metadata = videoMetadata(video.metadata, url);
|
|
4079
4102
|
return [
|
|
4080
4103
|
{
|
|
4081
4104
|
type: "video",
|
|
4082
4105
|
id,
|
|
4083
|
-
title: _nullishCoalesce(
|
|
4106
|
+
title: _nullishCoalesce(text2(video.title), () => ( id)),
|
|
4084
4107
|
url,
|
|
4085
4108
|
...sourceRepo ? { sourceRepo } : {},
|
|
4086
4109
|
...Object.keys(metadata).length > 0 ? { metadata } : {}
|
|
@@ -4093,8 +4116,8 @@ function cards(value, decodedSources) {
|
|
|
4093
4116
|
return value.filter(isRecord).flatMap((card) => {
|
|
4094
4117
|
const match = typeof card.ref === "string" ? CARD_REFERENCE.exec(card.ref) : null;
|
|
4095
4118
|
if (!match || match[1] === "video") return [];
|
|
4096
|
-
const type =
|
|
4097
|
-
const id =
|
|
4119
|
+
const type = text2(card.entityType);
|
|
4120
|
+
const id = text2(card.entityId);
|
|
4098
4121
|
if (!type || !id || type !== match[1] || id !== match[2]) return [];
|
|
4099
4122
|
const source = decodedSources.find((candidate) => candidate.id === id && candidate.documentType === type);
|
|
4100
4123
|
return [
|
|
@@ -4176,7 +4199,8 @@ function normalizeToolCalls(raw2) {
|
|
|
4176
4199
|
toolType: typeof item.toolType === "string" ? item.toolType : void 0,
|
|
4177
4200
|
requiresApproval: item.requiresApproval === true,
|
|
4178
4201
|
approvalType: typeof item.approvalType === "string" ? item.approvalType : null,
|
|
4179
|
-
toolCallArguments: isRecord(item.toolCallArguments) ? item.toolCallArguments : null
|
|
4202
|
+
toolCallArguments: isRecord(item.toolCallArguments) ? item.toolCallArguments : null,
|
|
4203
|
+
...policyReviewField(item.policyReview)
|
|
4180
4204
|
}));
|
|
4181
4205
|
}
|
|
4182
4206
|
function normalizeAskOptions(raw2) {
|
|
@@ -4261,6 +4285,8 @@ function decodeNatsChunk(chunk) {
|
|
|
4261
4285
|
// the EXECUTING segment held. Dropping it here therefore blanks the
|
|
4262
4286
|
// card for the whole lifetime of the run.
|
|
4263
4287
|
toolExplanation: typeof data.toolExplanation === "string" ? data.toolExplanation : void 0,
|
|
4288
|
+
// Rides the EXECUTING chunk only, like the explanation: the merge keeps it on the EXECUTED row.
|
|
4289
|
+
...policyReviewField(data.policyReview),
|
|
4264
4290
|
parameters: isRecord(data.parameters) ? data.parameters : void 0,
|
|
4265
4291
|
toolExecutionRequestId: typeof data.toolExecutionRequestId === "string" ? data.toolExecutionRequestId : void 0
|
|
4266
4292
|
},
|
|
@@ -4426,8 +4452,8 @@ function decodeNatsChunk(chunk) {
|
|
|
4426
4452
|
}
|
|
4427
4453
|
|
|
4428
4454
|
// src/chat-protocol/leading-frames.ts
|
|
4429
|
-
function escapeThinkingTags(
|
|
4430
|
-
return
|
|
4455
|
+
function escapeThinkingTags(text3) {
|
|
4456
|
+
return text3.replace(/</g, "<");
|
|
4431
4457
|
}
|
|
4432
4458
|
function frameStr(value) {
|
|
4433
4459
|
return typeof value === "string" ? value : void 0;
|
|
@@ -4570,9 +4596,9 @@ var thoughtMdClasses = [
|
|
|
4570
4596
|
"[&_.code-block-container_>div:last-child]:!p-3"
|
|
4571
4597
|
].join(" ");
|
|
4572
4598
|
var ThinkingDisplay = _react.forwardRef.call(void 0,
|
|
4573
|
-
({ className, text:
|
|
4599
|
+
({ className, text: text3, isStreaming = false, ...props }, ref) => {
|
|
4574
4600
|
const [expanded, setExpanded] = _react.useState.call(void 0, false);
|
|
4575
|
-
const { innerRef, isOverflowing, containerStyle } =
|
|
4601
|
+
const { innerRef, isOverflowing, containerStyle } = _chunkU767P4JUcjs.useCollapsible.call(void 0, {
|
|
4576
4602
|
expanded,
|
|
4577
4603
|
collapsedHeight: 19,
|
|
4578
4604
|
disableTransition: isStreaming
|
|
@@ -4587,7 +4613,7 @@ var ThinkingDisplay = _react.forwardRef.call(void 0,
|
|
|
4587
4613
|
setExpanded(!expanded);
|
|
4588
4614
|
}
|
|
4589
4615
|
};
|
|
4590
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk63A4GZMBcjs.cn.call(void 0,
|
|
4616
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk63A4GZMBcjs.cn.call(void 0, _chunkU767P4JUcjs.CHAT_BLOCK_FRAME_CLASS, "p-1.5", className), ...props, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4591
4617
|
"div",
|
|
4592
4618
|
{
|
|
4593
4619
|
role: "button",
|
|
@@ -4604,8 +4630,8 @@ var ThinkingDisplay = _react.forwardRef.call(void 0,
|
|
|
4604
4630
|
] }),
|
|
4605
4631
|
isStreaming && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOEP5KAT6cjs.DotsLoaderIcon, { size: 16, className: "text-ods-text-secondary" })
|
|
4606
4632
|
] }),
|
|
4607
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: innerRef, className: _chunk63A4GZMBcjs.cn.call(void 0, "text-sm leading-snug text-ods-text-secondary", thoughtMdClasses), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SimpleMarkdownRenderer, { content: escapeThinkingTags(
|
|
4608
|
-
canToggle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[19px] shrink-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4633
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: innerRef, className: _chunk63A4GZMBcjs.cn.call(void 0, "text-sm leading-snug text-ods-text-secondary", thoughtMdClasses), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SimpleMarkdownRenderer, { content: escapeThinkingTags(text3), textSize: "compact" }) }) }),
|
|
4634
|
+
canToggle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[19px] shrink-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.ExpandChevron, { expanded }) })
|
|
4609
4635
|
]
|
|
4610
4636
|
}
|
|
4611
4637
|
) });
|
|
@@ -4744,7 +4770,7 @@ function renderQuickActionIcon(icon) {
|
|
|
4744
4770
|
if (!spec.name && !spec.url) return void 0;
|
|
4745
4771
|
const accentClass = spec.accent ? ACCENT_CLASS[spec.accent] : void 0;
|
|
4746
4772
|
const props = spec.accent && !accentClass ? { color: spec.accent, ..._nullishCoalesce(spec.props, () => ( {})) } : spec.props;
|
|
4747
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4773
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO3EKOXFZcjs.EntityIcon, { icon: { name: spec.name, url: spec.url, props }, size: _nullishCoalesce(spec.size, () => ( 16)), className: accentClass });
|
|
4748
4774
|
}
|
|
4749
4775
|
function composeChipLabel(label, lozenge) {
|
|
4750
4776
|
if (!lozenge) return label;
|
|
@@ -4956,9 +4982,9 @@ var iconTint = {
|
|
|
4956
4982
|
var ErrorMessageDisplay = _react.forwardRef.call(void 0,
|
|
4957
4983
|
({ className, title, details, type = "error", ...props }, ref) => {
|
|
4958
4984
|
const [expanded, setExpanded] = _react.useState.call(void 0, false);
|
|
4959
|
-
const { innerRef, containerStyle } =
|
|
4985
|
+
const { innerRef, containerStyle } = _chunkU767P4JUcjs.useCollapsible.call(void 0, { expanded });
|
|
4960
4986
|
const hasDetails = Boolean(details);
|
|
4961
|
-
const isV2 = useChatAppearance() ===
|
|
4987
|
+
const isV2 = useChatAppearance() === _chunkEIACEY2Lcjs.CHAT_APPEARANCE.V2;
|
|
4962
4988
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4963
4989
|
"div",
|
|
4964
4990
|
{
|
|
@@ -4992,7 +5018,7 @@ var ErrorMessageDisplay = _react.forwardRef.call(void 0,
|
|
|
4992
5018
|
children: title
|
|
4993
5019
|
}
|
|
4994
5020
|
),
|
|
4995
|
-
hasDetails && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5021
|
+
hasDetails && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.ExpandChevron, { expanded })
|
|
4996
5022
|
]
|
|
4997
5023
|
}
|
|
4998
5024
|
),
|
|
@@ -5241,9 +5267,9 @@ var ChatHeader = _react.forwardRef.call(void 0,
|
|
|
5241
5267
|
)
|
|
5242
5268
|
] }),
|
|
5243
5269
|
(ticketInfo.status || ticketInfo.statusName) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5244
|
-
|
|
5270
|
+
_chunkU767P4JUcjs.TicketStatusTag,
|
|
5245
5271
|
{
|
|
5246
|
-
...
|
|
5272
|
+
..._chunkU767P4JUcjs.resolveStatusTagProps.call(void 0, {
|
|
5247
5273
|
status: ticketInfo.status,
|
|
5248
5274
|
statusKind: ticketInfo.statusKind,
|
|
5249
5275
|
statusName: ticketInfo.statusName,
|
|
@@ -5806,16 +5832,16 @@ var remarkCardLinks = () => {
|
|
|
5806
5832
|
return (tree) => {
|
|
5807
5833
|
_unistutilvisit.visit.call(void 0, tree, "text", (node, index, parent) => {
|
|
5808
5834
|
if (!parent || typeof index !== "number") return void 0;
|
|
5809
|
-
const
|
|
5810
|
-
if (!
|
|
5835
|
+
const text3 = node.value;
|
|
5836
|
+
if (!text3 || !text3.includes("[card://")) return void 0;
|
|
5811
5837
|
const parts = [];
|
|
5812
5838
|
let lastIndex = 0;
|
|
5813
5839
|
CARD_REGEX.lastIndex = 0;
|
|
5814
5840
|
let match;
|
|
5815
|
-
while ((match = CARD_REGEX.exec(
|
|
5841
|
+
while ((match = CARD_REGEX.exec(text3)) !== null) {
|
|
5816
5842
|
const matchStart = match.index;
|
|
5817
5843
|
if (matchStart > lastIndex) {
|
|
5818
|
-
parts.push({ type: "text", value:
|
|
5844
|
+
parts.push({ type: "text", value: text3.slice(lastIndex, matchStart) });
|
|
5819
5845
|
}
|
|
5820
5846
|
const cardType = match[1];
|
|
5821
5847
|
const cardId = match[2];
|
|
@@ -5830,8 +5856,8 @@ var remarkCardLinks = () => {
|
|
|
5830
5856
|
lastIndex = matchStart + match[0].length;
|
|
5831
5857
|
}
|
|
5832
5858
|
if (lastIndex === 0) return void 0;
|
|
5833
|
-
if (lastIndex <
|
|
5834
|
-
parts.push({ type: "text", value:
|
|
5859
|
+
if (lastIndex < text3.length) {
|
|
5860
|
+
parts.push({ type: "text", value: text3.slice(lastIndex) });
|
|
5835
5861
|
}
|
|
5836
5862
|
parent.children.splice(index, 1, ...parts);
|
|
5837
5863
|
return [_unistutilvisit.SKIP, index + parts.length];
|
|
@@ -5846,19 +5872,19 @@ var remarkMentionChips = () => {
|
|
|
5846
5872
|
return (tree) => {
|
|
5847
5873
|
_unistutilvisit.visit.call(void 0, tree, "text", (node, index, parent) => {
|
|
5848
5874
|
if (!parent || typeof index !== "number") return void 0;
|
|
5849
|
-
const
|
|
5850
|
-
if (!
|
|
5875
|
+
const text3 = node.value;
|
|
5876
|
+
if (!text3 || !text3.includes("@")) return void 0;
|
|
5851
5877
|
const parts = [];
|
|
5852
5878
|
let lastIndex = 0;
|
|
5853
5879
|
MENTION_REGEX.lastIndex = 0;
|
|
5854
5880
|
let match;
|
|
5855
|
-
while ((match = MENTION_REGEX.exec(
|
|
5881
|
+
while ((match = MENTION_REGEX.exec(text3)) !== null) {
|
|
5856
5882
|
const lead = match[1];
|
|
5857
5883
|
const marker = match[2];
|
|
5858
5884
|
const id = match[3];
|
|
5859
5885
|
const tokenStart = match.index + lead.length;
|
|
5860
5886
|
if (tokenStart > lastIndex) {
|
|
5861
|
-
parts.push({ type: "text", value:
|
|
5887
|
+
parts.push({ type: "text", value: text3.slice(lastIndex, tokenStart) });
|
|
5862
5888
|
}
|
|
5863
5889
|
parts.push({
|
|
5864
5890
|
type: "link",
|
|
@@ -5870,8 +5896,8 @@ var remarkMentionChips = () => {
|
|
|
5870
5896
|
lastIndex = match.index + match[0].length;
|
|
5871
5897
|
}
|
|
5872
5898
|
if (lastIndex === 0) return void 0;
|
|
5873
|
-
if (lastIndex <
|
|
5874
|
-
parts.push({ type: "text", value:
|
|
5899
|
+
if (lastIndex < text3.length) {
|
|
5900
|
+
parts.push({ type: "text", value: text3.slice(lastIndex) });
|
|
5875
5901
|
}
|
|
5876
5902
|
parent.children.splice(index, 1, ...parts);
|
|
5877
5903
|
return [_unistutilvisit.SKIP, index + parts.length];
|
|
@@ -5882,11 +5908,11 @@ var remarkMentionChips = () => {
|
|
|
5882
5908
|
// src/components/chat/tool-execution-display.tsx
|
|
5883
5909
|
|
|
5884
5910
|
|
|
5885
|
-
var COMMAND_BODY_KEYS = new Set(
|
|
5911
|
+
var COMMAND_BODY_KEYS = new Set(_chunkU767P4JUcjs.COMMAND_BODY_ARG_KEYS);
|
|
5886
5912
|
var ToolExecutionDisplay = _react.forwardRef.call(void 0,
|
|
5887
5913
|
({ className, message, assistantType, variant = "admin", ...props }, ref) => {
|
|
5888
5914
|
const [expanded, setExpanded] = _react.useState.call(void 0, false);
|
|
5889
|
-
const { innerRef, containerStyle } =
|
|
5915
|
+
const { innerRef, containerStyle } = _chunkU767P4JUcjs.useCollapsible.call(void 0, { expanded });
|
|
5890
5916
|
const isClient = assistantType === "fae";
|
|
5891
5917
|
const isClientView = variant === "client";
|
|
5892
5918
|
const isExecuting = message.type === "EXECUTING_TOOL";
|
|
@@ -5904,9 +5930,11 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
|
|
|
5904
5930
|
return [...commandEntries, ...otherEntries];
|
|
5905
5931
|
}, [message.parameters, variant]);
|
|
5906
5932
|
const hasResult = isExecuted && typeof message.result === "string" && message.result.length > 0;
|
|
5907
|
-
const
|
|
5933
|
+
const review = message.policyReview;
|
|
5934
|
+
const reviewRows = _chunkU767P4JUcjs.hasPolicyReviewRows.call(void 0, review);
|
|
5935
|
+
const isConciseRemoteRead = !message.integratedToolType && !!previewText && argEntries.length === 0 && !hasResult && !reviewRows && !_chunkU767P4JUcjs.isPolicyEscalated.call(void 0, review);
|
|
5908
5936
|
const isStaticRow = isClientView || isConciseRemoteRead;
|
|
5909
|
-
const hasBody = argEntries.length > 0 || hasResult || isExecuting;
|
|
5937
|
+
const hasBody = argEntries.length > 0 || reviewRows || hasResult || isExecuting;
|
|
5910
5938
|
const isExpanded = expanded && hasBody;
|
|
5911
5939
|
const renderStatusIcon = () => {
|
|
5912
5940
|
if (isExecuting) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOEP5KAT6cjs.DotsLoaderIcon, { size: 16, className: "text-ods-text-secondary" });
|
|
@@ -5917,7 +5945,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
|
|
|
5917
5945
|
const statusTone = isExecuting ? "working" : message.success === false ? "error" : "success";
|
|
5918
5946
|
const statusLabel = _optionalChain([message, 'access', _98 => _98.statusLabel, 'optionalAccess', _99 => _99.trim, 'call', _100 => _100()]) || (isExecuting ? "Working on it" : message.success === false ? "Failed" : "Done");
|
|
5919
5947
|
const headerContent = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
5920
|
-
!isClient && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5948
|
+
!isClient && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIGVAPIEWcjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
|
|
5921
5949
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5922
5950
|
"div",
|
|
5923
5951
|
{
|
|
@@ -5929,7 +5957,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
|
|
|
5929
5957
|
}
|
|
5930
5958
|
),
|
|
5931
5959
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-5 w-5 shrink-0 items-center justify-center", children: renderStatusIcon() }),
|
|
5932
|
-
!isStaticRow && hasBody && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-5 w-5 shrink-0 items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5960
|
+
!isStaticRow && hasBody && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-5 w-5 shrink-0 items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.ExpandChevron, { expanded: isExpanded }) })
|
|
5933
5961
|
] });
|
|
5934
5962
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5935
5963
|
"div",
|
|
@@ -5939,7 +5967,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
|
|
|
5939
5967
|
// The command running block keeps its bordered box in both chats
|
|
5940
5968
|
// (Figma 1972-6109). CLIENT (Fae) only drops the tool icon below.
|
|
5941
5969
|
"flex w-full flex-col overflow-hidden",
|
|
5942
|
-
|
|
5970
|
+
_chunkU767P4JUcjs.CHAT_BLOCK_FRAME_CLASS,
|
|
5943
5971
|
className
|
|
5944
5972
|
),
|
|
5945
5973
|
...props,
|
|
@@ -5950,7 +5978,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
|
|
|
5950
5978
|
// It reads as a card: what was done, then one status line under it.
|
|
5951
5979
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-[var(--spacing-system-xsf)] p-[var(--spacing-system-sf)] text-left", children: [
|
|
5952
5980
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 whitespace-pre-wrap break-words text-ods-text-primary text-h4", children: previewText }),
|
|
5953
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5981
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.StatusLine, { tone: statusTone, label: statusLabel })
|
|
5954
5982
|
] })
|
|
5955
5983
|
) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
5956
5984
|
hasBody ? (
|
|
@@ -5969,12 +5997,19 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
|
|
|
5969
5997
|
)
|
|
5970
5998
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full items-start gap-[var(--spacing-system-xs)] p-[var(--spacing-system-s)] text-left", children: headerContent }),
|
|
5971
5999
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: innerRef, children: hasBody && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col items-start gap-0 border-t border-ods-border p-[var(--spacing-system-sf)] text-h6", children: [
|
|
5972
|
-
argEntries.map(([key, value]) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6000
|
+
argEntries.map(([key, value]) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.ArgRow, { argKey: key, value }, key)),
|
|
6001
|
+
reviewRows && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6002
|
+
_chunkU767P4JUcjs.PolicyReviewRows,
|
|
6003
|
+
{
|
|
6004
|
+
review,
|
|
6005
|
+
className: argEntries.length > 0 ? "mt-[var(--spacing-system-xsf)]" : void 0
|
|
6006
|
+
}
|
|
6007
|
+
),
|
|
5973
6008
|
hasResult && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
5974
|
-
|
|
6009
|
+
_chunkU767P4JUcjs.ResultBlock,
|
|
5975
6010
|
{
|
|
5976
6011
|
result: message.result,
|
|
5977
|
-
className: argEntries.length > 0 ? "mt-[var(--spacing-system-xsf)]" : void 0
|
|
6012
|
+
className: argEntries.length > 0 || reviewRows ? "mt-[var(--spacing-system-xsf)]" : void 0
|
|
5978
6013
|
}
|
|
5979
6014
|
),
|
|
5980
6015
|
isExecuting && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -5982,7 +6017,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
|
|
|
5982
6017
|
{
|
|
5983
6018
|
className: _chunk63A4GZMBcjs.cn.call(void 0,
|
|
5984
6019
|
"flex w-full flex-col items-start gap-[var(--spacing-system-xxs)]",
|
|
5985
|
-
argEntries.length > 0 && "mt-[var(--spacing-system-xsf)]"
|
|
6020
|
+
(argEntries.length > 0 || reviewRows) && "mt-[var(--spacing-system-xsf)]"
|
|
5986
6021
|
),
|
|
5987
6022
|
children: [
|
|
5988
6023
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary", children: "Result:" }),
|
|
@@ -5990,7 +6025,8 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
|
|
|
5990
6025
|
]
|
|
5991
6026
|
}
|
|
5992
6027
|
)
|
|
5993
|
-
] }) }) })
|
|
6028
|
+
] }) }) }),
|
|
6029
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.PolicyEscalationAlert, { review, className: "border-t border-ods-border" })
|
|
5994
6030
|
] })
|
|
5995
6031
|
}
|
|
5996
6032
|
);
|
|
@@ -6011,7 +6047,7 @@ function ChatMarkdownLink({
|
|
|
6011
6047
|
...anchorProps
|
|
6012
6048
|
}) {
|
|
6013
6049
|
const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
|
|
6014
|
-
if (!runtime ||
|
|
6050
|
+
if (!runtime || _chunkETZFBB7Ocjs.navLinkTarget.call(void 0, runtime, href).isNewTab) {
|
|
6015
6051
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Anchor2, { href, className, ...anchorProps, children });
|
|
6016
6052
|
}
|
|
6017
6053
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Anchor2, { href, ...anchorProps, className: "no-underline", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InlineChip, { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRD4RFX3Kcjs.BrowserWindowIcon, {}), label: children, className: "hover:bg-ods-bg-hover" }) });
|
|
@@ -6019,8 +6055,8 @@ function ChatMarkdownLink({
|
|
|
6019
6055
|
|
|
6020
6056
|
// src/components/chat/chat-message-layout.ts
|
|
6021
6057
|
var CHAT_MESSAGE_ROW_PADDING_CLASS = {
|
|
6022
|
-
[
|
|
6023
|
-
[
|
|
6058
|
+
[_chunkEIACEY2Lcjs.CHAT_APPEARANCE.CLASSIC]: "py-[var(--spacing-system-s)]",
|
|
6059
|
+
[_chunkEIACEY2Lcjs.CHAT_APPEARANCE.V2]: "py-[calc(var(--spacing-system-m)/2)]"
|
|
6024
6060
|
};
|
|
6025
6061
|
var CHAT_MESSAGE_STACK_CLASS = "grid min-w-0 grid-cols-1 gap-[var(--spacing-system-xxs)]";
|
|
6026
6062
|
var CHAT_MESSAGE_HEADER_CLASS = "flex items-center gap-[var(--spacing-system-xs)]";
|
|
@@ -6045,12 +6081,12 @@ var CHIP = "\\[\\d{1,2}(?:\\s*,\\s*\\d{1,2})*\\]";
|
|
|
6045
6081
|
function chipRunScanner() {
|
|
6046
6082
|
return new RegExp(`(^|\\s)(?:${CHIP})+(?=[\\s.,;:!?)\\]]|$)`, "g");
|
|
6047
6083
|
}
|
|
6048
|
-
function stripCitationChips(
|
|
6049
|
-
return
|
|
6084
|
+
function stripCitationChips(text3) {
|
|
6085
|
+
return text3.replace(chipRunScanner(), (_run, lead) => lead === " " || lead === " " ? "" : lead);
|
|
6050
6086
|
}
|
|
6051
|
-
function citedSourceNumbers(
|
|
6087
|
+
function citedSourceNumbers(text3) {
|
|
6052
6088
|
const numbers = [];
|
|
6053
|
-
for (const run of
|
|
6089
|
+
for (const run of text3.matchAll(chipRunScanner())) {
|
|
6054
6090
|
for (const digits of run[0].matchAll(/\d+/g)) {
|
|
6055
6091
|
const n = Number.parseInt(digits[0], 10);
|
|
6056
6092
|
if (!numbers.includes(n)) numbers.push(n);
|
|
@@ -6077,8 +6113,8 @@ var remarkStripCitations = () => {
|
|
|
6077
6113
|
var MENTION_MARKER_REGEX = /(^|[^\w@])@[a-zA-Z]+:([A-Za-z0-9_.+/=-]*[A-Za-z0-9_+/=])/g;
|
|
6078
6114
|
var CARD_MARKER_REGEX = createCardMarkerScanner();
|
|
6079
6115
|
function formatMessageTimestamp(timestamp) {
|
|
6080
|
-
const time =
|
|
6081
|
-
return
|
|
6116
|
+
const time = _chunkEIACEY2Lcjs.formatTime.call(void 0, timestamp);
|
|
6117
|
+
return _chunkU767P4JUcjs.isToday.call(void 0, timestamp) ? time : `${_chunkEIACEY2Lcjs.formatDate.call(void 0, timestamp)} ${time}`;
|
|
6082
6118
|
}
|
|
6083
6119
|
function normalizeContent(content) {
|
|
6084
6120
|
if (typeof content === "string") {
|
|
@@ -6134,7 +6170,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
6134
6170
|
const isError = role === "error";
|
|
6135
6171
|
const inheritedAppearance = useChatAppearance();
|
|
6136
6172
|
const appearance = _nullishCoalesce(appearanceProp, () => ( inheritedAppearance));
|
|
6137
|
-
const isV2 = appearance ===
|
|
6173
|
+
const isV2 = appearance === _chunkEIACEY2Lcjs.CHAT_APPEARANCE.V2;
|
|
6138
6174
|
const authorType = _nullishCoalesce(authorTypeProp, () => ( (isHuman ? "user" : assistantType === "mingo" ? "mingo" : "fae")));
|
|
6139
6175
|
const isOtherPerson = isHuman && selfAuthorType !== void 0 && authorType !== "system" && authorType !== selfAuthorType;
|
|
6140
6176
|
const isUser = isHuman && !isOtherPerson;
|
|
@@ -6181,12 +6217,12 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
6181
6217
|
const emittedBlockKeys = /* @__PURE__ */ new Set();
|
|
6182
6218
|
segments.forEach((segment, segIdx) => {
|
|
6183
6219
|
if (segment.type !== "text") return;
|
|
6184
|
-
const
|
|
6220
|
+
const text3 = segment.text;
|
|
6185
6221
|
const parts = [];
|
|
6186
6222
|
let cursor = 0;
|
|
6187
6223
|
CARD_MARKER_REGEX.lastIndex = 0;
|
|
6188
6224
|
let match;
|
|
6189
|
-
while ((match = CARD_MARKER_REGEX.exec(
|
|
6225
|
+
while ((match = CARD_MARKER_REGEX.exec(text3)) !== null) {
|
|
6190
6226
|
const cardType = match[1];
|
|
6191
6227
|
const cardId = match[2];
|
|
6192
6228
|
const key = `${cardType}:${cardId}`;
|
|
@@ -6207,7 +6243,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
6207
6243
|
if (_react2.default.isValidElement(rendered) && rendered.type === BlockCard) {
|
|
6208
6244
|
const cardProps = rendered.props;
|
|
6209
6245
|
const markerEnd = match.index + match[0].length;
|
|
6210
|
-
parts.push({ kind: "text", text:
|
|
6246
|
+
parts.push({ kind: "text", text: text3.slice(cursor, markerEnd) });
|
|
6211
6247
|
if (!emittedBlockKeys.has(key)) {
|
|
6212
6248
|
emittedBlockKeys.add(key);
|
|
6213
6249
|
parts.push({ kind: "block", key, node: cardProps.children });
|
|
@@ -6218,7 +6254,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
6218
6254
|
cardProps.inline != null ? cardProps.inline : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-medium text-ods-text-primary", children: cardId })
|
|
6219
6255
|
);
|
|
6220
6256
|
} else if (rendered != null) {
|
|
6221
|
-
parts.push({ kind: "text", text:
|
|
6257
|
+
parts.push({ kind: "text", text: text3.slice(cursor, match.index) });
|
|
6222
6258
|
if (!emittedBlockKeys.has(key)) {
|
|
6223
6259
|
emittedBlockKeys.add(key);
|
|
6224
6260
|
parts.push({ kind: "block", key, node: rendered });
|
|
@@ -6226,8 +6262,8 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
6226
6262
|
cursor = match.index + match[0].length;
|
|
6227
6263
|
}
|
|
6228
6264
|
}
|
|
6229
|
-
if (cursor <
|
|
6230
|
-
parts.push({ kind: "text", text:
|
|
6265
|
+
if (cursor < text3.length) {
|
|
6266
|
+
parts.push({ kind: "text", text: text3.slice(cursor) });
|
|
6231
6267
|
}
|
|
6232
6268
|
if (parts.some((p) => p.kind === "block")) {
|
|
6233
6269
|
partsBySegment.set(segIdx, parts);
|
|
@@ -6283,13 +6319,13 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
6283
6319
|
}
|
|
6284
6320
|
};
|
|
6285
6321
|
}, [hasMarkerSupport, hasMentionSupport, renderMention, NavLinkAnchor]);
|
|
6286
|
-
const renderSegmentBody = (segIndex,
|
|
6322
|
+
const renderSegmentBody = (segIndex, text3, isStreaming) => {
|
|
6287
6323
|
const parts = _optionalChain([renderingPlan, 'optionalAccess', _111 => _111.partsBySegment, 'access', _112 => _112.get, 'call', _113 => _113(segIndex)]);
|
|
6288
6324
|
if (!parts || parts.length === 0) {
|
|
6289
6325
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6290
6326
|
SimpleMarkdownRenderer,
|
|
6291
6327
|
{
|
|
6292
|
-
content:
|
|
6328
|
+
content: text3,
|
|
6293
6329
|
textSize: "compact",
|
|
6294
6330
|
additionalRemarkPlugins: cardRemarkPlugins,
|
|
6295
6331
|
componentOverrides: cardComponentOverrides,
|
|
@@ -6322,7 +6358,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
6322
6358
|
const faceBox = "h-5 w-5 flex-shrink-0";
|
|
6323
6359
|
const face = !showAvatar || isSystem ? null : !isHuman && !avatar && assistantIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: displayName, className: _chunk63A4GZMBcjs.cn.call(void 0, "flex items-center justify-center", faceBox), children: assistantIcon }) : !isHuman && !avatar && assistantType ? (
|
|
6324
6360
|
// An agent with no picture shows its packaged mark, never initials.
|
|
6325
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "img", "aria-label": displayName, title: displayName, className: _chunk63A4GZMBcjs.cn.call(void 0, "inline-flex", faceBox), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6361
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "img", "aria-label": displayName, title: displayName, className: _chunk63A4GZMBcjs.cn.call(void 0, "inline-flex", faceBox), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.AgentMark, { agent: assistantType, className: "h-full w-full rounded-full" }) })
|
|
6326
6362
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: displayName, className: "inline-flex flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6327
6363
|
_chunkW7OFAROYcjs.SquareAvatar,
|
|
6328
6364
|
{
|
|
@@ -6340,7 +6376,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
6340
6376
|
"div",
|
|
6341
6377
|
{
|
|
6342
6378
|
ref,
|
|
6343
|
-
className: _chunk63A4GZMBcjs.cn.call(void 0, "relative", CHAT_MESSAGE_ROW_PADDING_CLASS[
|
|
6379
|
+
className: _chunk63A4GZMBcjs.cn.call(void 0, "relative", CHAT_MESSAGE_ROW_PADDING_CLASS[_chunkEIACEY2Lcjs.CHAT_APPEARANCE.V2], className),
|
|
6344
6380
|
...props,
|
|
6345
6381
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChatAppearanceContext.Provider, { value: appearance, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SystemEventMessage, { text: name, timestamp }) })
|
|
6346
6382
|
}
|
|
@@ -6352,7 +6388,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
6352
6388
|
ref,
|
|
6353
6389
|
className: _chunk63A4GZMBcjs.cn.call(void 0,
|
|
6354
6390
|
"relative",
|
|
6355
|
-
CHAT_MESSAGE_ROW_PADDING_CLASS[isV2 ?
|
|
6391
|
+
CHAT_MESSAGE_ROW_PADDING_CLASS[isV2 ? _chunkEIACEY2Lcjs.CHAT_APPEARANCE.V2 : _chunkEIACEY2Lcjs.CHAT_APPEARANCE.CLASSIC],
|
|
6356
6392
|
className
|
|
6357
6393
|
),
|
|
6358
6394
|
...props,
|
|
@@ -6409,7 +6445,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
|
|
|
6409
6445
|
);
|
|
6410
6446
|
} else if (segment.type === "approval_batch") {
|
|
6411
6447
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6412
|
-
|
|
6448
|
+
_chunkU767P4JUcjs.ApprovalBatchMessage,
|
|
6413
6449
|
{
|
|
6414
6450
|
data: segment.data,
|
|
6415
6451
|
status: segment.status,
|
|
@@ -6573,11 +6609,11 @@ var _usesticktobottom = require('use-stick-to-bottom');
|
|
|
6573
6609
|
|
|
6574
6610
|
function CyclingPhrase({ words, className, charMs = 60, holdMs = 4500 }) {
|
|
6575
6611
|
const [wordIndex, setWordIndex] = _react.useState.call(void 0, 0);
|
|
6576
|
-
const [
|
|
6612
|
+
const [text3, setText] = _react.useState.call(void 0, "");
|
|
6577
6613
|
const [cursor, setCursor] = _react.useState.call(void 0, 0);
|
|
6578
6614
|
const target = _nullishCoalesce(words[wordIndex], () => ( ""));
|
|
6579
|
-
const holding2 = words.length > 0 && cursor >= Math.max(
|
|
6580
|
-
const shownText = holding2 ? target :
|
|
6615
|
+
const holding2 = words.length > 0 && cursor >= Math.max(text3.length, target.length);
|
|
6616
|
+
const shownText = holding2 ? target : text3;
|
|
6581
6617
|
const placeholder = _react.useMemo.call(void 0,
|
|
6582
6618
|
() => words.reduce((longest, w) => w.length > longest.length ? w : longest, ""),
|
|
6583
6619
|
[words]
|
|
@@ -6603,7 +6639,7 @@ function CyclingPhrase({ words, className, charMs = 60, holdMs = 4500 }) {
|
|
|
6603
6639
|
setCursor((c) => c + 1);
|
|
6604
6640
|
}, charMs);
|
|
6605
6641
|
return () => clearTimeout(timeoutId);
|
|
6606
|
-
}, [wordIndex, cursor,
|
|
6642
|
+
}, [wordIndex, cursor, text3, holding2, target, words, charMs, holdMs]);
|
|
6607
6643
|
if (words.length === 0) return null;
|
|
6608
6644
|
const before = shownText.slice(0, cursor);
|
|
6609
6645
|
const after = shownText.slice(cursor);
|
|
@@ -6683,7 +6719,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
|
|
|
6683
6719
|
approvalVariant,
|
|
6684
6720
|
selfAuthorType,
|
|
6685
6721
|
nameEveryTurn,
|
|
6686
|
-
appearance =
|
|
6722
|
+
appearance = _chunkEIACEY2Lcjs.CHAT_APPEARANCE.CLASSIC,
|
|
6687
6723
|
assistantIcon,
|
|
6688
6724
|
pendingApprovals,
|
|
6689
6725
|
hasNextPage,
|
|
@@ -7037,7 +7073,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
|
|
|
7037
7073
|
const lastSegment = _optionalChain([lastSegments, 'optionalAccess', _135 => _135[lastSegments.length - 1]]);
|
|
7038
7074
|
const isPausedOnApproval = !!lastSegment && (lastSegment.type === "approval_request" || lastSegment.type === "approval_batch" || lastSegment.type === "escalation_offer") && (lastSegment.status === void 0 || lastSegment.status === "pending");
|
|
7039
7075
|
const showStreamingLoader = isTyping && !isPausedOnApproval && !(pendingApprovals && pendingApprovals.length > 0);
|
|
7040
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChatAppearanceContext.Provider, { value: appearance, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7076
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChatAppearanceContext.Provider, { value: appearance, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.OverlayOpenRegistryProvider, { onOpenChange: handleOverlayOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-h-0 flex-1 flex-col", children: [
|
|
7041
7077
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex min-h-0 flex-1 flex-col", children: [
|
|
7042
7078
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7043
7079
|
"div",
|
|
@@ -7526,8 +7562,8 @@ var ANTHROPIC_SUPPORTED_IMAGE_MIME = ["image/jpeg", "image/png", "image/webp", "
|
|
|
7526
7562
|
function buildChatAttachmentViewUrl(viewUrlPrefix, storagePath, viewToken) {
|
|
7527
7563
|
return `${viewUrlPrefix}${storagePath}?${CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM}=${encodeURIComponent(viewToken)}`;
|
|
7528
7564
|
}
|
|
7529
|
-
function escapeMarkdownInline(
|
|
7530
|
-
return
|
|
7565
|
+
function escapeMarkdownInline(text3) {
|
|
7566
|
+
return text3.replace(/[[\]()\\\n\r<>"]/g, (ch) => {
|
|
7531
7567
|
switch (ch) {
|
|
7532
7568
|
case "\n":
|
|
7533
7569
|
return " ";
|
|
@@ -7548,15 +7584,15 @@ function formatChatAttachmentMarkdownForBubble(att, viewUrlPrefix) {
|
|
|
7548
7584
|
|
|
7549
7585
|
[Attached: ${safeName}](${url})`;
|
|
7550
7586
|
}
|
|
7551
|
-
var CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED =
|
|
7587
|
+
var CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = _chunkNMWLXHFHcjs.escapeRegExp.call(void 0, CHAT_ATTACHMENT_VIEW_URL_PREFIX);
|
|
7552
7588
|
var CHAT_ATTACHMENT_MARKDOWN_PATTERN = new RegExp(
|
|
7553
7589
|
`^\\s*!?\\[[^\\]]*\\]\\(${CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED}[^)]+\\)\\s*$`,
|
|
7554
7590
|
"gm"
|
|
7555
7591
|
);
|
|
7556
|
-
function stripChatAttachmentMarkdown(
|
|
7592
|
+
function stripChatAttachmentMarkdown(text3) {
|
|
7557
7593
|
const storagePaths = [];
|
|
7558
7594
|
const pathExtract = new RegExp(`\\(${CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED}([^?)]+)`);
|
|
7559
|
-
const stripped =
|
|
7595
|
+
const stripped = text3.replace(CHAT_ATTACHMENT_MARKDOWN_PATTERN, (match) => {
|
|
7560
7596
|
const m = match.match(pathExtract);
|
|
7561
7597
|
if (m && m[1]) storagePaths.push(m[1]);
|
|
7562
7598
|
return "";
|
|
@@ -7812,7 +7848,7 @@ function MarqueeWallFades({
|
|
|
7812
7848
|
}) });
|
|
7813
7849
|
}
|
|
7814
7850
|
function CloneCopy({ className, style, children }) {
|
|
7815
|
-
const ref =
|
|
7851
|
+
const ref = _chunkG7GF4PWAcjs.useSuppressCloneFocus.call(void 0, true);
|
|
7816
7852
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, "aria-hidden": true, "data-marquee-copy": "clone", className, style, children });
|
|
7817
7853
|
}
|
|
7818
7854
|
function MarqueeWall({
|
|
@@ -7866,7 +7902,7 @@ function MarqueeWall({
|
|
|
7866
7902
|
ro.observe(copy);
|
|
7867
7903
|
return () => ro.disconnect();
|
|
7868
7904
|
}, [measure, marqueeMounted]);
|
|
7869
|
-
const { ref: observe, inView: nearViewport } =
|
|
7905
|
+
const { ref: observe, inView: nearViewport } = _chunkG7GF4PWAcjs.useInView.call(void 0, {
|
|
7870
7906
|
rootMargin: _chunkNTPX5GXIcjs.NEAR_VIEWPORT_ROOT_MARGIN,
|
|
7871
7907
|
initial: true
|
|
7872
7908
|
});
|
|
@@ -7874,7 +7910,7 @@ function MarqueeWall({
|
|
|
7874
7910
|
observe(containerRef.current);
|
|
7875
7911
|
return () => observe(null);
|
|
7876
7912
|
}, [observe]);
|
|
7877
|
-
const autoplay =
|
|
7913
|
+
const autoplay = _chunkG7GF4PWAcjs.useAutoplay.call(void 0, nearViewport);
|
|
7878
7914
|
const pointerInsideRef = _react.useRef.call(void 0, false);
|
|
7879
7915
|
const clearPointerInside = _react.useCallback.call(void 0, () => {
|
|
7880
7916
|
pointerInsideRef.current = false;
|
|
@@ -7887,7 +7923,7 @@ function MarqueeWall({
|
|
|
7887
7923
|
if (e.pointerType === "touch") return;
|
|
7888
7924
|
pointerInsideRef.current = false;
|
|
7889
7925
|
}, []);
|
|
7890
|
-
|
|
7926
|
+
_chunkG7GF4PWAcjs.useResetOnPageHidden.call(void 0, clearPointerInside);
|
|
7891
7927
|
const draggingRef = _react.useRef.call(void 0, false);
|
|
7892
7928
|
const dragSuppressUntilRef = _react.useRef.call(void 0, 0);
|
|
7893
7929
|
const applyTransform = _react.useCallback.call(void 0,
|
|
@@ -7940,7 +7976,7 @@ function MarqueeWall({
|
|
|
7940
7976
|
if (!sync) return void 0;
|
|
7941
7977
|
return sync.register(member);
|
|
7942
7978
|
}, [sync, member]);
|
|
7943
|
-
const { posRef, wrap } =
|
|
7979
|
+
const { posRef, wrap } = _chunkG7GF4PWAcjs.useMarqueeEngine.call(void 0, {
|
|
7944
7980
|
active: marqueeActive && autoplay.playing && isDriver,
|
|
7945
7981
|
speed,
|
|
7946
7982
|
isPaused: (now) => pauseOnHover && pointerInsideRef.current || draggingRef.current || now < dragSuppressUntilRef.current,
|
|
@@ -8308,7 +8344,7 @@ function QuickActionSet({
|
|
|
8308
8344
|
) }) }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
8309
8345
|
shown.map((chip) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Slot, { "data-loading-item": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, QuickActionChipFromData, { chip, defaultTheme: theme, fill: true }) }, chip.id)),
|
|
8310
8346
|
overflows && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Slot, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8311
|
-
|
|
8347
|
+
_chunkKXFIYO4Ocjs.ActionsMenuDropdown,
|
|
8312
8348
|
{
|
|
8313
8349
|
groups: [{ items: moreItems }],
|
|
8314
8350
|
align: "end",
|
|
@@ -8654,7 +8690,7 @@ function MingoChatHistoryRow({
|
|
|
8654
8690
|
!loading && "cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent"
|
|
8655
8691
|
),
|
|
8656
8692
|
children: [
|
|
8657
|
-
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "h4", className:
|
|
8693
|
+
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "h4", className: _chunkEIACEY2Lcjs.SKELETON_TITLE_WIDTHS[skeletonIndex % _chunkEIACEY2Lcjs.SKELETON_TITLE_WIDTHS.length] }) : null,
|
|
8658
8694
|
!loading && unread > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-8 min-w-8 shrink-0 items-center justify-center rounded-md bg-ods-accent px-[var(--spacing-system-xsf)] text-ods-text-on-accent text-h5", children: unread > 99 ? "99+" : unread }) : null,
|
|
8659
8695
|
loading ? null : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8660
8696
|
"span",
|
|
@@ -8688,7 +8724,7 @@ function MingoChatHistoryRow({
|
|
|
8688
8724
|
menuOpen ? "opacity-100" : "opacity-0 focus-within:opacity-100 group-hover/row:opacity-100"
|
|
8689
8725
|
),
|
|
8690
8726
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8691
|
-
|
|
8727
|
+
_chunkKXFIYO4Ocjs.ActionsMenuDropdown,
|
|
8692
8728
|
{
|
|
8693
8729
|
triggerAriaLabel: "Chat actions",
|
|
8694
8730
|
groups: [{ items: menuItems }],
|
|
@@ -8781,7 +8817,7 @@ function MingoChatHistory({
|
|
|
8781
8817
|
const isLoading = _chunk63A4GZMBcjs.useLoadingScope.call(void 0, ) || loading;
|
|
8782
8818
|
const groups = _react.useMemo.call(void 0, () => groupDialogs(dialogs), [dialogs]);
|
|
8783
8819
|
const noSearchResults = groups.length === 0 && !!_optionalChain([searchQuery, 'optionalAccess', _171 => _171.trim, 'call', _172 => _172()]);
|
|
8784
|
-
const { scrollRef, fadeTop, fadeBottom, update: updateFade } =
|
|
8820
|
+
const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkEIACEY2Lcjs.useScrollFade.call(void 0, );
|
|
8785
8821
|
const onScroll = loadMore === "scroll";
|
|
8786
8822
|
const sentinelRef = useLoadMoreSentinel({
|
|
8787
8823
|
hasMore: hasMore && onScroll,
|
|
@@ -8844,8 +8880,8 @@ function MingoChatHistory({
|
|
|
8844
8880
|
]
|
|
8845
8881
|
}
|
|
8846
8882
|
),
|
|
8847
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8848
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8883
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop, color: "var(--color-bg-card)", className: "h-12" }),
|
|
8884
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom, color: "var(--color-bg-card)", className: "h-12" })
|
|
8849
8885
|
] }) });
|
|
8850
8886
|
}
|
|
8851
8887
|
|
|
@@ -8899,7 +8935,7 @@ function MingoWelcome({
|
|
|
8899
8935
|
} catch (e8) {
|
|
8900
8936
|
}
|
|
8901
8937
|
}, [promoStorage, promoStorageKey]);
|
|
8902
|
-
const { scrollRef, fadeTop, fadeBottom, update: updateScrollFade } =
|
|
8938
|
+
const { scrollRef, fadeTop, fadeBottom, update: updateScrollFade } = _chunkEIACEY2Lcjs.useScrollFade.call(void 0, );
|
|
8903
8939
|
const showPinnedRegion = !!dialogHistory || !historyLoading && !loadError;
|
|
8904
8940
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
8905
8941
|
"div",
|
|
@@ -8931,7 +8967,7 @@ function MingoWelcome({
|
|
|
8931
8967
|
onScroll: updateScrollFade,
|
|
8932
8968
|
className: "flex min-h-0 flex-1 flex-col gap-[var(--spacing-system-m)] overflow-y-auto overscroll-contain",
|
|
8933
8969
|
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col items-center justify-center gap-[var(--spacing-system-l)] px-[var(--spacing-system-l)] py-[var(--spacing-system-xxl)] text-center", children: [
|
|
8934
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8970
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.AgentMark, { agent: "mingo", className: "h-12 w-12" }),
|
|
8935
8971
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-[var(--spacing-system-l)]", children: [
|
|
8936
8972
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h2", children: heading }),
|
|
8937
8973
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
|
|
@@ -8939,8 +8975,8 @@ function MingoWelcome({
|
|
|
8939
8975
|
] })
|
|
8940
8976
|
}
|
|
8941
8977
|
),
|
|
8942
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8943
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8978
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop, className: "h-12" }),
|
|
8979
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom, className: "h-12" })
|
|
8944
8980
|
] }) })))),
|
|
8945
8981
|
showPinnedRegion && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 flex-col gap-[var(--spacing-system-m)]", children: [
|
|
8946
8982
|
resolvedPromo && !promoDismissed && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex shrink-0 items-center gap-[var(--spacing-system-m)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-m)] pr-[var(--spacing-system-xl)]", children: [
|
|
@@ -9003,7 +9039,7 @@ function GuideWelcome({
|
|
|
9003
9039
|
children,
|
|
9004
9040
|
className
|
|
9005
9041
|
}) {
|
|
9006
|
-
const { scrollRef, fadeTop, fadeBottom, update: updateScrollFade } =
|
|
9042
|
+
const { scrollRef, fadeTop, fadeBottom, update: updateScrollFade } = _chunkEIACEY2Lcjs.useScrollFade.call(void 0, );
|
|
9007
9043
|
const inLoadingScope = _chunk63A4GZMBcjs.useLoadingScope.call(void 0, );
|
|
9008
9044
|
const subtitleIsLoading = inLoadingScope || subtitleLoading && !subtitle;
|
|
9009
9045
|
const chipsAreLoading = inLoadingScope || quickActionsLoading && quickActions.length === 0;
|
|
@@ -9039,8 +9075,8 @@ function GuideWelcome({
|
|
|
9039
9075
|
icon && (icon.name || icon.url) ? (
|
|
9040
9076
|
// Agent-mode identity glyph (chat-config Identity tab). Sized to
|
|
9041
9077
|
// match the default Mingo mark (48px).
|
|
9042
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9043
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9078
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO3EKOXFZcjs.EntityIcon, { icon: { name: icon.name, url: icon.url, props: icon.props }, size: 48 })
|
|
9079
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.AgentMark, { agent: "mingo", className: "h-12 w-12" }),
|
|
9044
9080
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-[var(--spacing-system-l)]", children: [
|
|
9045
9081
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h2", children: title }),
|
|
9046
9082
|
subtitleIsLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "h4", className: "w-3/4 max-w-80" }) }) : subtitle ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle }) : null
|
|
@@ -9050,8 +9086,8 @@ function GuideWelcome({
|
|
|
9050
9086
|
]
|
|
9051
9087
|
}
|
|
9052
9088
|
),
|
|
9053
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9054
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9089
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop, className: "h-12" }),
|
|
9090
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom, className: "h-12" })
|
|
9055
9091
|
] }),
|
|
9056
9092
|
(quickActions.length > 0 || chipsAreLoading) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, QuickActionSet, { chips: chipItems, loading: chipsAreLoading, showTopic: showTopicProp })
|
|
9057
9093
|
] });
|
|
@@ -9072,9 +9108,9 @@ function GuideModeBanner({ label = DEFAULT_LABEL, tooltip = DEFAULT_TOOLTIP, cla
|
|
|
9072
9108
|
children: [
|
|
9073
9109
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZFJDLJSIcjs.CompassIcon, { size: 16, className: "shrink-0 text-ods-text-on-accent" }),
|
|
9074
9110
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "flex-1 truncate uppercase text-ods-text-on-accent text-h5", children: label }),
|
|
9075
|
-
tooltip != null && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9076
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9077
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9111
|
+
tooltip != null && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkKXFIYO4Ocjs.Tooltip, { children: [
|
|
9112
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "bare", size: "icon-inline", type: "button", "aria-label": "About Guide Mode", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFO6DOP6Mcjs.QuestionCircleIcon, { size: 16, className: "text-ods-text-on-accent" }) }) }),
|
|
9113
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipContent, { side: "bottom", align: "end", className: "max-w-[280px] normal-case text-h6", children: tooltip })
|
|
9078
9114
|
] }) })
|
|
9079
9115
|
]
|
|
9080
9116
|
}
|
|
@@ -9121,15 +9157,15 @@ function MingoArchiveList({
|
|
|
9121
9157
|
className: "flex min-h-0 flex-1 flex-col gap-[var(--spacing-system-xxs)] px-[var(--spacing-system-xs)] pt-[var(--spacing-system-mf)]",
|
|
9122
9158
|
children: [
|
|
9123
9159
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "shrink-0 px-[var(--spacing-system-xs)] pt-[var(--spacing-system-xs)] text-ods-text-secondary text-h5", children: "Archived Chats" }),
|
|
9124
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-0 flex-1 flex-col gap-[var(--spacing-system-xxs)] overflow-y-auto overscroll-contain pb-[var(--spacing-system-mf)]", children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9160
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-0 flex-1 flex-col gap-[var(--spacing-system-xxs)] overflow-y-auto overscroll-contain pb-[var(--spacing-system-mf)]", children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ChatListItemLoadingPage, { count: pageSize, trailing: true }) : dialogs.length > 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
9125
9161
|
dialogs.map((dialog) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9126
|
-
|
|
9162
|
+
_chunkEIACEY2Lcjs.ChatListItem,
|
|
9127
9163
|
{
|
|
9128
9164
|
"data-loading-item": true,
|
|
9129
9165
|
title: dialog.title || "Untitled Chat",
|
|
9130
9166
|
onClick: () => _optionalChain([onSelectDialog, 'optionalCall', _178 => _178(dialog.id)]),
|
|
9131
9167
|
trailing: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
|
|
9132
|
-
dialog.timestamp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap text-ods-text-secondary text-h6", children:
|
|
9168
|
+
dialog.timestamp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkU767P4JUcjs.formatRelativeTime.call(void 0, dialog.timestamp) }),
|
|
9133
9169
|
dialog.owner && (dialog.owner.name || dialog.owner.avatarUrl) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9134
9170
|
_chunkW7OFAROYcjs.SquareAvatar,
|
|
9135
9171
|
{
|
|
@@ -9277,7 +9313,7 @@ function MingoChatHeader({
|
|
|
9277
9313
|
] }),
|
|
9278
9314
|
onRestore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "cell", className: "w-14", onClick: onRestore, "aria-label": "Unarchive chat", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPX2JK6Pcjs.Refresh01LeftIcon, { size: 24 }) }),
|
|
9279
9315
|
menuGroups.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9280
|
-
|
|
9316
|
+
_chunkKXFIYO4Ocjs.ActionsMenuDropdown,
|
|
9281
9317
|
{
|
|
9282
9318
|
triggerAriaLabel: "Chat actions",
|
|
9283
9319
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
@@ -9313,7 +9349,7 @@ function ChatHeaderSearchField({
|
|
|
9313
9349
|
className
|
|
9314
9350
|
}) {
|
|
9315
9351
|
const [value, setValue] = _react.useState.call(void 0, _nullishCoalesce(initialValue, () => ( "")));
|
|
9316
|
-
const debounced =
|
|
9352
|
+
const debounced = _chunkG7GF4PWAcjs.useDebounce.call(void 0, value, 300);
|
|
9317
9353
|
const lastEmitted = _react.useRef.call(void 0, _nullishCoalesce(initialValue, () => ( "")));
|
|
9318
9354
|
const [exiting, setExiting] = _react.useState.call(void 0, false);
|
|
9319
9355
|
const collapsedRef = _react.useRef.call(void 0, false);
|
|
@@ -9470,7 +9506,7 @@ function SearchInput({
|
|
|
9470
9506
|
}) {
|
|
9471
9507
|
const [internalValue, setInternalValue] = _react.useState.call(void 0, defaultValue);
|
|
9472
9508
|
const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
|
|
9473
|
-
const debouncedValue =
|
|
9509
|
+
const debouncedValue = _chunkG7GF4PWAcjs.useDebounce.call(void 0, currentValue, debounceMs);
|
|
9474
9510
|
const [isOpen, setIsOpen] = _react.useState.call(void 0, false);
|
|
9475
9511
|
const [highlightedIndex, setHighlightedIndex] = _react.useState.call(void 0, -1);
|
|
9476
9512
|
const keyboardPadding = _chunkFW7RKWPYcjs.useKeyboardCollisionPadding.call(void 0, );
|
|
@@ -9773,7 +9809,7 @@ function SearchInput({
|
|
|
9773
9809
|
)
|
|
9774
9810
|
] }),
|
|
9775
9811
|
showHiddenTags && hiddenCount > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9776
|
-
|
|
9812
|
+
_chunkEIACEY2Lcjs.HiddenTagsPopup,
|
|
9777
9813
|
{
|
|
9778
9814
|
ref: hiddenTagsPopupRef,
|
|
9779
9815
|
items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
|
|
@@ -9943,7 +9979,7 @@ function MingoChatHistorySection({
|
|
|
9943
9979
|
className
|
|
9944
9980
|
}) {
|
|
9945
9981
|
const captionId = _react.useId.call(void 0, );
|
|
9946
|
-
const visitor =
|
|
9982
|
+
const visitor = _chunkG7GF4PWAcjs.useVisitorOs.call(void 0, );
|
|
9947
9983
|
const [searchOpen, setSearchOpen] = _reactusecontrollablestate.useControllableState.call(void 0, {
|
|
9948
9984
|
prop: searchOpenProp,
|
|
9949
9985
|
defaultProp: false,
|
|
@@ -9951,7 +9987,7 @@ function MingoChatHistorySection({
|
|
|
9951
9987
|
});
|
|
9952
9988
|
const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _216 => _216.trim, 'call', _217 => _217()]);
|
|
9953
9989
|
const showSearch = searchOpen && !!onSearchChange;
|
|
9954
|
-
const shortcut = visitor.known ?
|
|
9990
|
+
const shortcut = visitor.known ? _chunkG7GF4PWAcjs.shortcutLabel.call(void 0, visitor.os, "K") : null;
|
|
9955
9991
|
const listProps = {
|
|
9956
9992
|
dialogs,
|
|
9957
9993
|
activeDialogId,
|
|
@@ -10000,7 +10036,7 @@ function MingoChatHistorySection({
|
|
|
10000
10036
|
onClick: () => onScopeChange("all")
|
|
10001
10037
|
}
|
|
10002
10038
|
] : [];
|
|
10003
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10039
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkKXFIYO4Ocjs.TooltipProvider, { delayDuration: 300, children: [
|
|
10004
10040
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10005
10041
|
"section",
|
|
10006
10042
|
{
|
|
@@ -10009,29 +10045,29 @@ function MingoChatHistorySection({
|
|
|
10009
10045
|
children: [
|
|
10010
10046
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xs)] px-[var(--spacing-system-xs)]", children: [
|
|
10011
10047
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { id: captionId, className: "min-w-0 flex-1 truncate text-ods-text-secondary text-h5", children: "Chat history" }),
|
|
10012
|
-
onSearchChange && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10013
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10048
|
+
onSearchChange && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkKXFIYO4Ocjs.Tooltip, { children: [
|
|
10049
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10014
10050
|
_chunkFCZAUK4Dcjs.Button,
|
|
10015
10051
|
{
|
|
10016
10052
|
variant: "transparent",
|
|
10017
10053
|
size: "icon",
|
|
10018
10054
|
"aria-label": "Search chats",
|
|
10019
|
-
"aria-keyshortcuts": shortcut ?
|
|
10055
|
+
"aria-keyshortcuts": shortcut ? _chunkG7GF4PWAcjs.usesCommandKey.call(void 0, visitor.os) ? "Meta+K" : "Control+K" : void 0,
|
|
10020
10056
|
onClick: () => setSearchOpen(true),
|
|
10021
10057
|
className: ICON_BUTTON_CLASS,
|
|
10022
10058
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ74QE57Tcjs.SearchIcon, { size: 20 })
|
|
10023
10059
|
}
|
|
10024
10060
|
) }),
|
|
10025
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10061
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipContent, { side: "bottom", children: shortcut ? `Search chats \xB7 ${shortcut}` : "Search chats" })
|
|
10026
10062
|
] }),
|
|
10027
|
-
scopeMenu.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10063
|
+
scopeMenu.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkKXFIYO4Ocjs.Tooltip, { children: [
|
|
10028
10064
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10029
|
-
|
|
10065
|
+
_chunkKXFIYO4Ocjs.ActionsMenuDropdown,
|
|
10030
10066
|
{
|
|
10031
10067
|
triggerAriaLabel: "Filter chats",
|
|
10032
10068
|
groups: [{ items: scopeMenu }],
|
|
10033
10069
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
10034
|
-
customTrigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10070
|
+
customTrigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10035
10071
|
_chunkFCZAUK4Dcjs.Button,
|
|
10036
10072
|
{
|
|
10037
10073
|
variant: "transparent",
|
|
@@ -10043,19 +10079,19 @@ function MingoChatHistorySection({
|
|
|
10043
10079
|
) })
|
|
10044
10080
|
}
|
|
10045
10081
|
),
|
|
10046
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10082
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipContent, { side: "bottom", children: scope === "all" ? "Showing all chats" : "Showing my chats" })
|
|
10047
10083
|
] }),
|
|
10048
|
-
moreMenu.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10084
|
+
moreMenu.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkKXFIYO4Ocjs.Tooltip, { children: [
|
|
10049
10085
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10050
|
-
|
|
10086
|
+
_chunkKXFIYO4Ocjs.ActionsMenuDropdown,
|
|
10051
10087
|
{
|
|
10052
10088
|
triggerAriaLabel: "More",
|
|
10053
10089
|
groups: [{ items: moreMenu }],
|
|
10054
10090
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
10055
|
-
customTrigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10091
|
+
customTrigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "transparent", size: "icon", "aria-label": "More", className: ICON_BUTTON_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSWHUL32Wcjs.Ellipsis01Icon, { size: 20 }) }) })
|
|
10056
10092
|
}
|
|
10057
10093
|
),
|
|
10058
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10094
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipContent, { side: "bottom", children: "More" })
|
|
10059
10095
|
] })
|
|
10060
10096
|
] }),
|
|
10061
10097
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -10117,7 +10153,7 @@ function MingoChatSearchModal({
|
|
|
10117
10153
|
}
|
|
10118
10154
|
function SearchModalContent({ initialValue, onSearchChange, onClose, children }) {
|
|
10119
10155
|
const [value, setValue] = _react.useState.call(void 0, _nullishCoalesce(initialValue, () => ( "")));
|
|
10120
|
-
const debounced =
|
|
10156
|
+
const debounced = _chunkG7GF4PWAcjs.useDebounce.call(void 0, value, 300);
|
|
10121
10157
|
const lastSent = _react.useRef.call(void 0, _nullishCoalesce(initialValue, () => ( "")));
|
|
10122
10158
|
const fieldRef = _react.useRef.call(void 0, null);
|
|
10123
10159
|
const send = (term) => {
|
|
@@ -10138,8 +10174,8 @@ function SearchModalContent({ initialValue, onSearchChange, onClose, children })
|
|
|
10138
10174
|
send("");
|
|
10139
10175
|
onClose();
|
|
10140
10176
|
};
|
|
10141
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10142
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10177
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.Modal, { isOpen: true, onClose: close, className: "md:max-w-[600px]", children: [
|
|
10178
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalTitle, { children: "Search chats" }) }),
|
|
10143
10179
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: fieldRef, role: "search", "aria-label": "Search chats", className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10144
10180
|
SearchInput,
|
|
10145
10181
|
{
|
|
@@ -10195,7 +10231,7 @@ function SectionRow({
|
|
|
10195
10231
|
// A row that lands in a day already on screen (the next page) fades in too.
|
|
10196
10232
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "group/row relative shrink-0 duration-300 animate-in fade-in motion-reduce:animate-none", children: [
|
|
10197
10233
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10198
|
-
|
|
10234
|
+
_chunkEIACEY2Lcjs.ChatListItem,
|
|
10199
10235
|
{
|
|
10200
10236
|
active,
|
|
10201
10237
|
title,
|
|
@@ -10245,7 +10281,7 @@ function SectionRow({
|
|
|
10245
10281
|
menuOpen ? "opacity-100" : "opacity-0 group-hover/row:opacity-100 group-has-[:focus-visible]/row:opacity-100"
|
|
10246
10282
|
),
|
|
10247
10283
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10248
|
-
|
|
10284
|
+
_chunkKXFIYO4Ocjs.ActionsMenuDropdown,
|
|
10249
10285
|
{
|
|
10250
10286
|
triggerAriaLabel: `Actions for ${title}`,
|
|
10251
10287
|
groups: [{ items: menuItems }],
|
|
@@ -10362,7 +10398,7 @@ function MingoChatRailPanel({
|
|
|
10362
10398
|
if (loadError) {
|
|
10363
10399
|
list = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChatListLoadError, { onRetry, className: "px-[var(--spacing-system-xs)] py-[var(--spacing-system-l)]" });
|
|
10364
10400
|
} else if (loading) {
|
|
10365
|
-
list = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10401
|
+
list = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ChatListItemLoadingPage, { count: pageSize });
|
|
10366
10402
|
} else if (dialogs.length === 0 && !draftTitle) {
|
|
10367
10403
|
list = hasSearch ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "px-[var(--spacing-system-xs)] py-[var(--spacing-system-s)] text-ods-text-secondary text-h6", children: "No chats found" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10368
10404
|
ChatListEmptyState,
|
|
@@ -10374,7 +10410,7 @@ function MingoChatRailPanel({
|
|
|
10374
10410
|
);
|
|
10375
10411
|
} else {
|
|
10376
10412
|
list = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
10377
|
-
draftTitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10413
|
+
draftTitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ChatListItem, { active: true, title: draftTitle, tabIndex: -1, className: "cursor-default" }),
|
|
10378
10414
|
dialogs.map((dialog) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10379
10415
|
MingoChatRailRow,
|
|
10380
10416
|
{
|
|
@@ -10396,13 +10432,13 @@ function MingoChatRailPanel({
|
|
|
10396
10432
|
] });
|
|
10397
10433
|
}
|
|
10398
10434
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10399
|
-
|
|
10435
|
+
_chunkEIACEY2Lcjs.ChatNavSidebar,
|
|
10400
10436
|
{
|
|
10401
10437
|
className,
|
|
10402
10438
|
"data-accent": "mingo",
|
|
10403
10439
|
"aria-label": "Mingo chats",
|
|
10404
10440
|
logo: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 items-center justify-between", children: [
|
|
10405
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10441
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.AgentMark, { agent: "mingo", className: "size-6 text-ods-text-primary" }),
|
|
10406
10442
|
onExpand && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10407
10443
|
_chunkFCZAUK4Dcjs.Button,
|
|
10408
10444
|
{
|
|
@@ -10418,7 +10454,7 @@ function MingoChatRailPanel({
|
|
|
10418
10454
|
items,
|
|
10419
10455
|
sectionLabel: "Your Current Chats",
|
|
10420
10456
|
sectionActions: listMenu.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10421
|
-
|
|
10457
|
+
_chunkKXFIYO4Ocjs.ActionsMenuDropdown,
|
|
10422
10458
|
{
|
|
10423
10459
|
triggerAriaLabel: "Chat list options",
|
|
10424
10460
|
groups: [{ items: listMenu }],
|
|
@@ -10455,7 +10491,7 @@ function MingoChatRailRow({ dialog, active, status, onSelect, menuItems, ...prop
|
|
|
10455
10491
|
const title = dialog.title || "Untitled Chat";
|
|
10456
10492
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ..._chunk63A4GZMBcjs.loadingItemProps.call(void 0, props), className: "group/row relative shrink-0", children: [
|
|
10457
10493
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10458
|
-
|
|
10494
|
+
_chunkEIACEY2Lcjs.ChatListItem,
|
|
10459
10495
|
{
|
|
10460
10496
|
active,
|
|
10461
10497
|
title,
|
|
@@ -10481,7 +10517,7 @@ function MingoChatRailRow({ dialog, active, status, onSelect, menuItems, ...prop
|
|
|
10481
10517
|
menuOpen ? "opacity-100" : "opacity-0 focus-within:opacity-100 group-hover/row:opacity-100"
|
|
10482
10518
|
),
|
|
10483
10519
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10484
|
-
|
|
10520
|
+
_chunkKXFIYO4Ocjs.ActionsMenuDropdown,
|
|
10485
10521
|
{
|
|
10486
10522
|
triggerAriaLabel: `Actions for ${title}`,
|
|
10487
10523
|
groups: [{ items: menuItems }],
|
|
@@ -10505,67 +10541,6 @@ function MingoChatRailRow({ dialog, active, status, onSelect, menuItems, ...prop
|
|
|
10505
10541
|
] });
|
|
10506
10542
|
}
|
|
10507
10543
|
|
|
10508
|
-
// src/components/ui/tab-selector.tsx
|
|
10509
|
-
|
|
10510
|
-
function TabSelector({
|
|
10511
|
-
value,
|
|
10512
|
-
onValueChange,
|
|
10513
|
-
items,
|
|
10514
|
-
variant = "primary",
|
|
10515
|
-
label,
|
|
10516
|
-
disabled,
|
|
10517
|
-
scrollable = false,
|
|
10518
|
-
className
|
|
10519
|
-
}) {
|
|
10520
|
-
const flush = _chunkYJZ7R3W5cjs.useIsInActionsMenuHeader.call(void 0, );
|
|
10521
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10522
|
-
"div",
|
|
10523
|
-
{
|
|
10524
|
-
className: _chunk63A4GZMBcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xxs)]", disabled && "opacity-50", className),
|
|
10525
|
-
"aria-disabled": disabled || void 0,
|
|
10526
|
-
children: [
|
|
10527
|
-
label && // Label for family/color; 'large' (text-h4) is this component's
|
|
10528
|
-
// long-standing label scale — neighbours opt into the same scale via
|
|
10529
|
-
// their `labelVariant="large"` when a design puts them side by side.
|
|
10530
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN3MBQRCQcjs.Label, { variant: "large", children: label }),
|
|
10531
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10532
|
-
"div",
|
|
10533
|
-
{
|
|
10534
|
-
className: _chunk63A4GZMBcjs.cn.call(void 0,
|
|
10535
|
-
"flex gap-[var(--spacing-system-xxs)] bg-ods-bg p-[var(--spacing-system-xxs)]",
|
|
10536
|
-
flush ? "h-10 w-full" : _chunk63A4GZMBcjs.cn.call(void 0, "h-11 rounded-md border border-ods-border content-md:h-12", scrollable ? "overflow-x-auto" : "w-full")
|
|
10537
|
-
),
|
|
10538
|
-
children: items.map((item) => {
|
|
10539
|
-
const isActive = value === item.id;
|
|
10540
|
-
const isDisabled = disabled || item.disabled;
|
|
10541
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10542
|
-
_chunkFCZAUK4Dcjs.Button,
|
|
10543
|
-
{
|
|
10544
|
-
variant: "segment",
|
|
10545
|
-
type: "button",
|
|
10546
|
-
disabled: isDisabled,
|
|
10547
|
-
onClick: () => onValueChange(item.id),
|
|
10548
|
-
"aria-label": !item.label ? item.ariaLabel : void 0,
|
|
10549
|
-
"aria-pressed": isActive,
|
|
10550
|
-
"data-state": isActive ? "active" : void 0,
|
|
10551
|
-
"data-tone": variant === "primary" ? "accent" : void 0,
|
|
10552
|
-
className: _chunk63A4GZMBcjs.cn.call(void 0, "h-full", scrollable ? "flex-none shrink-0 basis-auto" : "flex-1"),
|
|
10553
|
-
children: [
|
|
10554
|
-
item.icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex size-4 shrink-0 items-center justify-center content-md:size-6", children: item.icon }),
|
|
10555
|
-
item.label,
|
|
10556
|
-
item.badge && item.badge
|
|
10557
|
-
]
|
|
10558
|
-
},
|
|
10559
|
-
item.id
|
|
10560
|
-
);
|
|
10561
|
-
})
|
|
10562
|
-
}
|
|
10563
|
-
)
|
|
10564
|
-
]
|
|
10565
|
-
}
|
|
10566
|
-
);
|
|
10567
|
-
}
|
|
10568
|
-
|
|
10569
10544
|
// src/components/chat/mingo-history-rail.tsx
|
|
10570
10545
|
|
|
10571
10546
|
function MingoHistoryRail({
|
|
@@ -10613,7 +10588,7 @@ function MingoHistoryRail({
|
|
|
10613
10588
|
}
|
|
10614
10589
|
),
|
|
10615
10590
|
scope && onScopeChange && !loadError ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10616
|
-
TabSelector,
|
|
10591
|
+
_chunkU767P4JUcjs.TabSelector,
|
|
10617
10592
|
{
|
|
10618
10593
|
className: "shrink-0",
|
|
10619
10594
|
value: scope,
|
|
@@ -10673,10 +10648,10 @@ function RenameChatModal({ isOpen, initialName = "", onClose, onSave }) {
|
|
|
10673
10648
|
const save = () => {
|
|
10674
10649
|
if (canSave) onSave(name.trim());
|
|
10675
10650
|
};
|
|
10676
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10677
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10651
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.Modal, { isOpen, onClose, className: "md:max-w-[600px]", children: [
|
|
10652
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalTitle, { children: "Rename Chat" }) }),
|
|
10678
10653
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-[var(--spacing-system-xxs)]", children: [
|
|
10679
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10654
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVCFQHPOOcjs.Label, { htmlFor: "rename-chat-input", variant: "large", children: "Chat Name" }),
|
|
10680
10655
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10681
10656
|
"input",
|
|
10682
10657
|
{
|
|
@@ -10691,27 +10666,27 @@ function RenameChatModal({ isOpen, initialName = "", onClose, onSave }) {
|
|
|
10691
10666
|
}
|
|
10692
10667
|
)
|
|
10693
10668
|
] }),
|
|
10694
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10669
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.ModalFooter, { children: [
|
|
10695
10670
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "outline", type: "button", onClick: onClose, className: footerBtn, children: "Cancel" }),
|
|
10696
10671
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "accent", type: "button", onClick: save, disabled: !canSave, className: footerBtn, children: "Save" })
|
|
10697
10672
|
] })
|
|
10698
10673
|
] });
|
|
10699
10674
|
}
|
|
10700
10675
|
function ArchiveChatModal({ isOpen, onClose, onConfirm }) {
|
|
10701
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10702
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10676
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.Modal, { isOpen, onClose, className: "md:max-w-[600px]", children: [
|
|
10677
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalTitle, { children: "Archive Chat" }) }),
|
|
10703
10678
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "w-full text-ods-text-primary text-h4", children: "This chat will be hidden from your current chats." }),
|
|
10704
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10679
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.ModalFooter, { children: [
|
|
10705
10680
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "outline", type: "button", onClick: onClose, className: footerBtn, children: "Cancel" }),
|
|
10706
10681
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "destructive", type: "button", onClick: onConfirm, className: footerBtn, children: "Archive Chat" })
|
|
10707
10682
|
] })
|
|
10708
10683
|
] });
|
|
10709
10684
|
}
|
|
10710
10685
|
function UnarchiveChatModal({ isOpen, onClose, onConfirm }) {
|
|
10711
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10712
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10686
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.Modal, { isOpen, onClose, className: "md:max-w-[600px]", children: [
|
|
10687
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEIACEY2Lcjs.ModalTitle, { children: "Unarchive Chat" }) }),
|
|
10713
10688
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "w-full text-ods-text-primary text-h4", children: "This chat will be moved back to your current chats." }),
|
|
10714
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
10689
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEIACEY2Lcjs.ModalFooter, { children: [
|
|
10715
10690
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "outline", type: "button", onClick: onClose, className: footerBtn, children: "Cancel" }),
|
|
10716
10691
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "accent", type: "button", onClick: onConfirm, className: footerBtn, children: "Unarchive Chat" })
|
|
10717
10692
|
] })
|
|
@@ -10797,7 +10772,7 @@ function ChatPanelHeaderMobile({
|
|
|
10797
10772
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-end gap-[var(--spacing-system-m)] pt-[var(--spacing-system-xl)]", children: [
|
|
10798
10773
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-xs)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "min-w-0 truncate text-ods-text-primary text-h2", title, children: title }) }),
|
|
10799
10774
|
menuItems.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10800
|
-
|
|
10775
|
+
_chunkKXFIYO4Ocjs.ActionsMenuDropdown,
|
|
10801
10776
|
{
|
|
10802
10777
|
groups: [{ items: menuItems }],
|
|
10803
10778
|
triggerAriaLabel: "Chat actions",
|
|
@@ -10900,7 +10875,7 @@ function ChatPanelHeader({
|
|
|
10900
10875
|
] }),
|
|
10901
10876
|
isArchivedView && onRestore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "cell", className: "w-14", onClick: onRestore, "aria-label": "Unarchive chat", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPPX2JK6Pcjs.Refresh01LeftIcon, { size: 24 }) }),
|
|
10902
10877
|
showBack && !isArchivedView && menuItems.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10903
|
-
|
|
10878
|
+
_chunkKXFIYO4Ocjs.ActionsMenuDropdown,
|
|
10904
10879
|
{
|
|
10905
10880
|
triggerAriaLabel: "Chat actions",
|
|
10906
10881
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
@@ -11234,7 +11209,7 @@ var HoverCardContent = _react.forwardRef.call(void 0,
|
|
|
11234
11209
|
}, ref) => (
|
|
11235
11210
|
// Portalled so an `overflow: hidden` ancestor (a table cell, a card) cannot
|
|
11236
11211
|
// clip it.
|
|
11237
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, HoverCardPrimitive.Portal, { container:
|
|
11212
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, HoverCardPrimitive.Portal, { container: _chunkVCFQHPOOcjs.usePortalContainer.call(void 0, ), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11238
11213
|
HoverCardPrimitive.Content,
|
|
11239
11214
|
{
|
|
11240
11215
|
ref,
|
|
@@ -11316,7 +11291,7 @@ var ModelDisplay = _react2.default.forwardRef(
|
|
|
11316
11291
|
const isLoading = _chunk63A4GZMBcjs.useLoadingScope.call(void 0, ) || loading;
|
|
11317
11292
|
const icon = getProviderIcon(provider);
|
|
11318
11293
|
const name = displayName || modelName;
|
|
11319
|
-
const isV2 = useChatAppearance() ===
|
|
11294
|
+
const isV2 = useChatAppearance() === _chunkEIACEY2Lcjs.CHAT_APPEARANCE.V2;
|
|
11320
11295
|
const formatCount = (count) => isV2 ? count.toLocaleString("en-US") : formatTokenCount(count);
|
|
11321
11296
|
if (isLoading) {
|
|
11322
11297
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref, "aria-hidden": true, className: _chunk63A4GZMBcjs.cn.call(void 0, MODEL_DISPLAY_ROW_CLASS, className), ...props, children: [
|
|
@@ -11344,20 +11319,20 @@ var ModelDisplay = _react2.default.forwardRef(
|
|
|
11344
11319
|
// Neither: the same two spans the row always had.
|
|
11345
11320
|
labelContent
|
|
11346
11321
|
);
|
|
11347
|
-
const labelWithTooltip = modelTooltip ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11348
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11349
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11322
|
+
const labelWithTooltip = modelTooltip ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkKXFIYO4Ocjs.Tooltip, { children: [
|
|
11323
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipTrigger, { asChild: true, children: label }),
|
|
11324
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipContent, { side: "top", align: "start", children: modelTooltip })
|
|
11350
11325
|
] }) }) : label;
|
|
11351
11326
|
const inline = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref, className: _chunk63A4GZMBcjs.cn.call(void 0, MODEL_DISPLAY_ROW_CLASS, "text-ods-text-secondary", className), ...props, children: [
|
|
11352
11327
|
labelWithTooltip,
|
|
11353
|
-
contextWindow != null && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11354
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11328
|
+
contextWindow != null && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkKXFIYO4Ocjs.Tooltip, { children: [
|
|
11329
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "ml-auto opacity-70 text-h6", children: [
|
|
11355
11330
|
usedTokens != null ? formatCount(usedTokens) : "\u2014",
|
|
11356
11331
|
isV2 ? " / " : "/",
|
|
11357
11332
|
formatCount(contextWindow),
|
|
11358
11333
|
" context budget"
|
|
11359
11334
|
] }) }),
|
|
11360
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11335
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKXFIYO4Ocjs.TooltipContent, { side: "top", align: "end", children: CONTEXT_BUDGET_HINT })
|
|
11361
11336
|
] }) })
|
|
11362
11337
|
] });
|
|
11363
11338
|
if (!hasAnyBreakdownRow(breakdown)) return inline;
|
|
@@ -11476,7 +11451,7 @@ function ChatComposer({
|
|
|
11476
11451
|
}, [entityTypes]);
|
|
11477
11452
|
const resolveContextIcon = _react.useCallback.call(void 0, (item) => iconByType.get(item.type), [iconByType]);
|
|
11478
11453
|
const menu = menuItems && menuItems.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11479
|
-
|
|
11454
|
+
_chunkKXFIYO4Ocjs.ActionsMenuDropdown,
|
|
11480
11455
|
{
|
|
11481
11456
|
triggerAriaLabel: "Composer actions",
|
|
11482
11457
|
side: "top",
|
|
@@ -11502,7 +11477,7 @@ function ChatComposer({
|
|
|
11502
11477
|
const showLegacyAttach = !contextEnabled && showAttachmentButton && !!onAddFiles;
|
|
11503
11478
|
const showFooterRow = showLegacyAttach || !!model || !!footerActions;
|
|
11504
11479
|
const inputNode = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11505
|
-
|
|
11480
|
+
_chunkEIACEY2Lcjs.ChatInput,
|
|
11506
11481
|
{
|
|
11507
11482
|
ref: inputRef,
|
|
11508
11483
|
onSend,
|
|
@@ -11692,7 +11667,7 @@ function ChatArchivePage(props) {
|
|
|
11692
11667
|
|
|
11693
11668
|
|
|
11694
11669
|
function useNavLinkTarget(href, targetPlatform, openIn) {
|
|
11695
|
-
return
|
|
11670
|
+
return _chunkETZFBB7Ocjs.navLinkTarget.call(void 0, _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, ), href, targetPlatform, { openIn });
|
|
11696
11671
|
}
|
|
11697
11672
|
function useNavLinkViaRuntime({
|
|
11698
11673
|
href,
|
|
@@ -11708,22 +11683,22 @@ function useNavLinkViaRuntime({
|
|
|
11708
11683
|
const onClick = (e) => {
|
|
11709
11684
|
_optionalChain([onClickProp, 'optionalCall', _249 => _249(e)]);
|
|
11710
11685
|
if (e.defaultPrevented) return;
|
|
11711
|
-
const handled =
|
|
11686
|
+
const handled = _chunkG7GF4PWAcjs.executeNavigation.call(void 0, { event: e, runtime, href: resolvedHref, path, targetPlatform, openIn });
|
|
11712
11687
|
if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _250 => _250.closeChat])) panel.closeChat();
|
|
11713
11688
|
};
|
|
11714
|
-
return { href: resolvedHref, ...
|
|
11689
|
+
return { href: resolvedHref, ..._chunkETZFBB7Ocjs.newTabAnchorAttrs.call(void 0, isNewTab, resolvedHref, targetPlatform), onClick };
|
|
11715
11690
|
}
|
|
11716
11691
|
function useNavigateViaRuntime() {
|
|
11717
11692
|
const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
|
|
11718
11693
|
return _react.useCallback.call(void 0,
|
|
11719
11694
|
({ href, path, targetPlatform, openIn, modifierEvent }) => {
|
|
11720
11695
|
if (!href) return;
|
|
11721
|
-
if (modifierEvent &&
|
|
11696
|
+
if (modifierEvent && _chunkETZFBB7Ocjs.isModifierClick.call(void 0, modifierEvent)) {
|
|
11722
11697
|
const button = _nullishCoalesce(modifierEvent.button, () => ( 0));
|
|
11723
|
-
if (button === 0 || button === 1)
|
|
11698
|
+
if (button === 0 || button === 1) _chunkG7GF4PWAcjs.executeNewTabNavigation.call(void 0, { runtime, href, targetPlatform });
|
|
11724
11699
|
return;
|
|
11725
11700
|
}
|
|
11726
|
-
|
|
11701
|
+
_chunkG7GF4PWAcjs.executeNavigationImperative.call(void 0, { runtime, href, path, targetPlatform, openIn });
|
|
11727
11702
|
},
|
|
11728
11703
|
[runtime]
|
|
11729
11704
|
);
|
|
@@ -11790,7 +11765,7 @@ function FooterAction({
|
|
|
11790
11765
|
leftIcon: showLabel ? mark : void 0,
|
|
11791
11766
|
rightIcon: trailingIcon ? mark : void 0,
|
|
11792
11767
|
className: _chunk63A4GZMBcjs.cn.call(void 0, className, "pointer-events-none"),
|
|
11793
|
-
children: showLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextHold, { children: label }) : mark
|
|
11768
|
+
children: showLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.TextHold, { children: label }) : mark
|
|
11794
11769
|
}
|
|
11795
11770
|
) });
|
|
11796
11771
|
}
|
|
@@ -11913,7 +11888,7 @@ function UserDisplay({
|
|
|
11913
11888
|
compact = false,
|
|
11914
11889
|
className
|
|
11915
11890
|
}) {
|
|
11916
|
-
const avatarSrc =
|
|
11891
|
+
const avatarSrc = _chunkNMWLXHFHcjs.useProxiedImageUrl.call(void 0, avatarUrl);
|
|
11917
11892
|
if (_chunk63A4GZMBcjs.useLoadingScope.call(void 0, )) {
|
|
11918
11893
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11919
11894
|
UserDisplaySkeleton,
|
|
@@ -12053,7 +12028,7 @@ function ManagedCell({
|
|
|
12053
12028
|
}) {
|
|
12054
12029
|
const hintedWidth = _react2.default.isValidElement(item) ? item.props["data-strip-cell-width"] : void 0;
|
|
12055
12030
|
const desktopWidth = typeof hintedWidth === "number" ? hintedWidth : cardWidthDesktop;
|
|
12056
|
-
const cloneRef =
|
|
12031
|
+
const cloneRef = _chunkG7GF4PWAcjs.useSuppressCloneFocus.call(void 0, ctx.isClone);
|
|
12057
12032
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12058
12033
|
"div",
|
|
12059
12034
|
{
|
|
@@ -12171,12 +12146,12 @@ function CardsStrip(props) {
|
|
|
12171
12146
|
}, [measure, items.length, marqueeActive, isMobile]);
|
|
12172
12147
|
const chevronSuppressUntilRef = _react.useRef.call(void 0, 0);
|
|
12173
12148
|
const userScrollSuppressUntilRef = _react.useRef.call(void 0, 0);
|
|
12174
|
-
const { ref: observe, inView: nearViewport } =
|
|
12149
|
+
const { ref: observe, inView: nearViewport } = _chunkG7GF4PWAcjs.useInView.call(void 0, { rootMargin: "200px", initial: true });
|
|
12175
12150
|
_react.useEffect.call(void 0, () => {
|
|
12176
12151
|
observe(wrapperRef.current);
|
|
12177
12152
|
return () => observe(null);
|
|
12178
12153
|
}, [observe]);
|
|
12179
|
-
const autoplay =
|
|
12154
|
+
const autoplay = _chunkG7GF4PWAcjs.useAutoplay.call(void 0, nearViewport);
|
|
12180
12155
|
const [activeKey, setActiveKey] = _react.useState.call(void 0, null);
|
|
12181
12156
|
const activeKeyRef = _react.useRef.call(void 0, null);
|
|
12182
12157
|
const activate = _react.useCallback.call(void 0, (key) => {
|
|
@@ -12223,7 +12198,7 @@ function CardsStrip(props) {
|
|
|
12223
12198
|
const current = activeKeyRef.current;
|
|
12224
12199
|
if (current !== null) deactivate(current);
|
|
12225
12200
|
}, [deactivate]);
|
|
12226
|
-
|
|
12201
|
+
_chunkG7GF4PWAcjs.useResetOnPageHidden.call(void 0, clearHover);
|
|
12227
12202
|
const syncHoverIfScrolled = _react.useCallback.call(void 0, () => {
|
|
12228
12203
|
const scroller = scrollerRef.current;
|
|
12229
12204
|
if (!scroller) return;
|
|
@@ -12244,7 +12219,7 @@ function CardsStrip(props) {
|
|
|
12244
12219
|
},
|
|
12245
12220
|
[reverse, seamBuffer]
|
|
12246
12221
|
);
|
|
12247
|
-
const { posRef: marqueePosRef, glideBy } =
|
|
12222
|
+
const { posRef: marqueePosRef, glideBy } = _chunkG7GF4PWAcjs.useMarqueeEngine.call(void 0, {
|
|
12248
12223
|
// Viewport gates `active` (the rAF fully stops off-screen — a paused
|
|
12249
12224
|
// engine would keep scheduling frames forever), same treatment as
|
|
12250
12225
|
// <MarqueeWall>; the envelope persists, so re-entry resumes at cruise.
|
|
@@ -12381,7 +12356,7 @@ function CardsStrip(props) {
|
|
|
12381
12356
|
}
|
|
12382
12357
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ManagedCell, { item, ctx, cardWidthMobile, cardWidthDesktop });
|
|
12383
12358
|
};
|
|
12384
|
-
const heading = showTitle && title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${
|
|
12359
|
+
const heading = showTitle && title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${_chunkNMWLXHFHcjs.SECTION_HEADING_CLASS} break-words`, children: _chunkNMWLXHFHcjs.accentSentenceMarks.call(void 0, title) });
|
|
12385
12360
|
if (items.length === 0) {
|
|
12386
12361
|
if (!inScope || !skeleton) return null;
|
|
12387
12362
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, STRIP_ROOT_CLASS, className), children: [
|
|
@@ -12571,7 +12546,7 @@ var VIDEO_BITES_SKELETON_COUNT = Math.ceil(
|
|
|
12571
12546
|
);
|
|
12572
12547
|
function VideoBitesStrip({
|
|
12573
12548
|
bites,
|
|
12574
|
-
title =
|
|
12549
|
+
title = _chunkO3EKOXFZcjs.DEFAULT_VIDEO_BITES_TITLE,
|
|
12575
12550
|
showTitle = true,
|
|
12576
12551
|
filterPublished = true,
|
|
12577
12552
|
profile = null,
|
|
@@ -12584,7 +12559,7 @@ function VideoBitesStrip({
|
|
|
12584
12559
|
cardHeightMobile = VIDEO_BITES_CARD_HEIGHT_MOBILE_PX,
|
|
12585
12560
|
showChevrons = true,
|
|
12586
12561
|
onBiteNavigate,
|
|
12587
|
-
sortComparator =
|
|
12562
|
+
sortComparator = _chunkO3EKOXFZcjs.sortBitesByCreatedAtDesc,
|
|
12588
12563
|
skeletonCount,
|
|
12589
12564
|
className
|
|
12590
12565
|
}) {
|
|
@@ -12682,7 +12657,7 @@ function VideoBiteCardSkeleton({ aspect = "9:16", height, heightMobile, classNam
|
|
|
12682
12657
|
function VideoBitesStripSkeleton({
|
|
12683
12658
|
count = VIDEO_BITES_SKELETON_COUNT,
|
|
12684
12659
|
aspect = "9:16",
|
|
12685
|
-
title =
|
|
12660
|
+
title = _chunkO3EKOXFZcjs.DEFAULT_VIDEO_BITES_TITLE,
|
|
12686
12661
|
showTitle = true,
|
|
12687
12662
|
headerSlot,
|
|
12688
12663
|
cardHeightDesktop = VIDEO_BITES_CARD_HEIGHT_DESKTOP_PX,
|
|
@@ -12814,7 +12789,7 @@ function VideoBiteCard({
|
|
|
12814
12789
|
style: biteMediaStyle(cssAspect, height, heightMobile),
|
|
12815
12790
|
children: [
|
|
12816
12791
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12817
|
-
|
|
12792
|
+
_chunkO3EKOXFZcjs.VideoHoverPreviewSurface,
|
|
12818
12793
|
{
|
|
12819
12794
|
url: bite.url,
|
|
12820
12795
|
posterUrl: bite.thumbnail_url,
|
|
@@ -12886,7 +12861,7 @@ function EntityVideoSection({
|
|
|
12886
12861
|
title = "Video",
|
|
12887
12862
|
videoSummary,
|
|
12888
12863
|
videoBites,
|
|
12889
|
-
bitesTitle =
|
|
12864
|
+
bitesTitle = _chunkO3EKOXFZcjs.DEFAULT_VIDEO_BITES_TITLE,
|
|
12890
12865
|
filterPublishedBites = true,
|
|
12891
12866
|
bitesProfile = null,
|
|
12892
12867
|
bitesHref,
|
|
@@ -12921,7 +12896,7 @@ function EntityVideoSection({
|
|
|
12921
12896
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabsTrigger, { value: "highlights", className: VIDEO_TAB_TRIGGER_CLASS, children: HIGHLIGHTS_TAB_LABEL })
|
|
12922
12897
|
] }),
|
|
12923
12898
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabsContent, { value: "full-video", className: VIDEO_TAB_CONTENT_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12924
|
-
|
|
12899
|
+
_chunkO3EKOXFZcjs.Video,
|
|
12925
12900
|
{
|
|
12926
12901
|
kind: fullVideoKind,
|
|
12927
12902
|
url: fullVideoUrl,
|
|
@@ -12933,7 +12908,7 @@ function EntityVideoSection({
|
|
|
12933
12908
|
}
|
|
12934
12909
|
) }),
|
|
12935
12910
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabsContent, { value: "highlights", className: VIDEO_TAB_CONTENT_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12936
|
-
|
|
12911
|
+
_chunkO3EKOXFZcjs.Video,
|
|
12937
12912
|
{
|
|
12938
12913
|
url: highlightVideoUrl,
|
|
12939
12914
|
poster: highlightVideoThumbnail,
|
|
@@ -12942,7 +12917,7 @@ function EntityVideoSection({
|
|
|
12942
12917
|
}
|
|
12943
12918
|
) })
|
|
12944
12919
|
] }) : fullVideoUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12945
|
-
|
|
12920
|
+
_chunkO3EKOXFZcjs.Video,
|
|
12946
12921
|
{
|
|
12947
12922
|
kind: fullVideoKind,
|
|
12948
12923
|
url: fullVideoUrl,
|
|
@@ -12953,7 +12928,7 @@ function EntityVideoSection({
|
|
|
12953
12928
|
priority
|
|
12954
12929
|
}
|
|
12955
12930
|
) : highlightVideoUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12956
|
-
|
|
12931
|
+
_chunkO3EKOXFZcjs.Video,
|
|
12957
12932
|
{
|
|
12958
12933
|
url: highlightVideoUrl,
|
|
12959
12934
|
poster: highlightVideoThumbnail,
|
|
@@ -12963,7 +12938,7 @@ function EntityVideoSection({
|
|
|
12963
12938
|
}
|
|
12964
12939
|
) : null),
|
|
12965
12940
|
videoSummary && MarkdownRenderer && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
|
|
12966
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${
|
|
12941
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${_chunkNMWLXHFHcjs.SECTION_HEADING_CLASS} break-words`, children: "Summary" }),
|
|
12967
12942
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-hidden break-words text-ods-text-primary text-h4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: videoSummary }) })
|
|
12968
12943
|
] }),
|
|
12969
12944
|
videoBites && videoBites.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -12982,13 +12957,13 @@ function EntityVideoSection({
|
|
|
12982
12957
|
] });
|
|
12983
12958
|
}
|
|
12984
12959
|
function EntityVideoSectionSkeleton({ tabs = false, className }) {
|
|
12985
|
-
if (!tabs) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12960
|
+
if (!tabs) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO3EKOXFZcjs.Video, { loading: true, url: "", layout: "centered", className });
|
|
12986
12961
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Tabs, { defaultValue: "full-video", className: _chunk63A4GZMBcjs.cn.call(void 0, "w-full", className), "aria-hidden": true, inert: true, children: [
|
|
12987
12962
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, TabsList, { className: VIDEO_TAB_LIST_CLASS, children: [
|
|
12988
12963
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabsTrigger, { value: "full-video", className: VIDEO_TAB_TRIGGER_CLASS, children: FULL_VIDEO_TAB_LABEL }),
|
|
12989
12964
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabsTrigger, { value: "highlights", className: VIDEO_TAB_TRIGGER_CLASS, children: HIGHLIGHTS_TAB_LABEL })
|
|
12990
12965
|
] }),
|
|
12991
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabsContent, { value: "full-video", className: VIDEO_TAB_CONTENT_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12966
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabsContent, { value: "full-video", className: VIDEO_TAB_CONTENT_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO3EKOXFZcjs.Video, { loading: true, url: "", layout: "centered" }) })
|
|
12992
12967
|
] });
|
|
12993
12968
|
}
|
|
12994
12969
|
|
|
@@ -13080,7 +13055,7 @@ function ChatCardDisclosureButton({
|
|
|
13080
13055
|
{
|
|
13081
13056
|
label,
|
|
13082
13057
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { className: "!h-3 !w-3" }),
|
|
13083
|
-
trailingIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13058
|
+
trailingIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.ExpandChevron, { expanded: open, className: "!h-3 !w-3" }),
|
|
13084
13059
|
onClick: (e) => {
|
|
13085
13060
|
e.preventDefault();
|
|
13086
13061
|
e.stopPropagation();
|
|
@@ -13094,7 +13069,7 @@ function ChatCardDisclosureButton({
|
|
|
13094
13069
|
);
|
|
13095
13070
|
}
|
|
13096
13071
|
function DisclosurePanel({ open, children }) {
|
|
13097
|
-
const { innerRef, containerStyle } =
|
|
13072
|
+
const { innerRef, containerStyle } = _chunkU767P4JUcjs.useCollapsible.call(void 0, { expanded: open });
|
|
13098
13073
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: innerRef, children }) });
|
|
13099
13074
|
}
|
|
13100
13075
|
function useChatCardDisclosure(kind, chatRef, { reserve = false } = {}) {
|
|
@@ -13146,7 +13121,7 @@ function designDocPeople(doc) {
|
|
|
13146
13121
|
return people;
|
|
13147
13122
|
}
|
|
13148
13123
|
function designDocMetaLine(doc) {
|
|
13149
|
-
return [_optionalChain([doc, 'access', _296 => _296.author, 'optionalAccess', _297 => _297.full_name]) ? `DRI ${doc.author.full_name}` : null, `updated ${
|
|
13124
|
+
return [_optionalChain([doc, 'access', _296 => _296.author, 'optionalAccess', _297 => _297.full_name]) ? `DRI ${doc.author.full_name}` : null, `updated ${_chunkNMWLXHFHcjs.formatDateShort.call(void 0, doc.updated_at)}`].filter(Boolean).join(" \xB7 ");
|
|
13150
13125
|
}
|
|
13151
13126
|
var DESIGN_DOC_CARD_BODY = "flex h-full flex-col gap-[var(--spacing-system-mf)] p-[var(--spacing-system-lf)]";
|
|
13152
13127
|
var DESIGN_DOC_CARD_HEADER = "flex w-full items-center gap-[16px]";
|
|
@@ -13156,15 +13131,15 @@ var DESIGN_DOC_CARD_META_ROW = `flex items-center text-h5 ${_chunkPMUCEUFQcjs.TE
|
|
|
13156
13131
|
var DESIGN_DOC_CARD_SUMMARY_ROW = `flex items-center text-h4 ${_chunkPMUCEUFQcjs.TEXT_LINES_MIN[3]}`;
|
|
13157
13132
|
var DESIGN_DOC_CARD_FOOTER = "flex w-full items-center justify-between gap-2";
|
|
13158
13133
|
function DesignDocCardSkeleton({ className } = {}) {
|
|
13159
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0,
|
|
13134
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, _chunkO3EKOXFZcjs.CONTENT_CARD_SKELETON_FRAME_CLASS, DESIGN_DOC_CARD_BODY, className), "aria-hidden": true, children: [
|
|
13160
13135
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DESIGN_DOC_CARD_HEADER, children: [
|
|
13161
13136
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DESIGN_DOC_CARD_HEADING, children: [
|
|
13162
13137
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DESIGN_DOC_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "h3", lines: 2, className: "w-3/4" }) }),
|
|
13163
13138
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DESIGN_DOC_CARD_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "h5", className: "w-1/3" }) })
|
|
13164
13139
|
] }),
|
|
13165
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13140
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO3EKOXFZcjs.StatusBadge, { loading: true, text: "", variant: "button", className: "hidden md:inline-flex" })
|
|
13166
13141
|
] }),
|
|
13167
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13142
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO3EKOXFZcjs.StatusBadge, { loading: true, text: "", variant: "button" }) }),
|
|
13168
13143
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DESIGN_DOC_CARD_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.TextLineSkeleton, { type: "h4", lines: 3, className: "w-full" }) }),
|
|
13169
13144
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
|
|
13170
13145
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DESIGN_DOC_CARD_FOOTER, children: [
|
|
@@ -13176,7 +13151,7 @@ function DesignDocCardSkeleton({ className } = {}) {
|
|
|
13176
13151
|
function DesignDocCard({ doc, href, target, rel, className }) {
|
|
13177
13152
|
const status = designDocStatusDisplay(doc);
|
|
13178
13153
|
const people = designDocPeople(doc);
|
|
13179
|
-
const link =
|
|
13154
|
+
const link = _chunkO3EKOXFZcjs.safeHref.call(void 0, _nullishCoalesce(href, () => ( null)));
|
|
13180
13155
|
if (_chunk63A4GZMBcjs.useLoadingScope.call(void 0, )) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DesignDocCardSkeleton, { className });
|
|
13181
13156
|
const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
13182
13157
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DESIGN_DOC_CARD_HEADER, children: [
|
|
@@ -13184,9 +13159,9 @@ function DesignDocCard({ doc, href, target, rel, className }) {
|
|
|
13184
13159
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DESIGN_DOC_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "line-clamp-2 flex-1 text-ods-text-primary text-h3", children: doc.title || "Untitled design doc" }) }),
|
|
13185
13160
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DESIGN_DOC_CARD_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h5", children: designDocMetaLine(doc) }) })
|
|
13186
13161
|
] }),
|
|
13187
|
-
status ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13162
|
+
status ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.PaletteBadge, { text: status.label, color: status.color_scheme, className: "hidden md:inline-flex" }) : null
|
|
13188
13163
|
] }),
|
|
13189
|
-
status ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13164
|
+
status ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.PaletteBadge, { text: status.label, color: status.color_scheme }) }) : null,
|
|
13190
13165
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DESIGN_DOC_CARD_SUMMARY_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "line-clamp-3 text-ods-text-secondary text-h4", children: doc.summary || "" }) }),
|
|
13191
13166
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
|
|
13192
13167
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: DESIGN_DOC_CARD_FOOTER, children: [
|
|
@@ -13194,7 +13169,7 @@ function DesignDocCard({ doc, href, target, rel, className }) {
|
|
|
13194
13169
|
people.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHTYJUMFBcjs.AvatarStack, { size: "xs", people, className: "shrink-0" }) : null
|
|
13195
13170
|
] })
|
|
13196
13171
|
] });
|
|
13197
|
-
const outer = _chunk63A4GZMBcjs.cn.call(void 0,
|
|
13172
|
+
const outer = _chunk63A4GZMBcjs.cn.call(void 0, _chunkO3EKOXFZcjs.CONTENT_CARD_FRAME_CLASS, DESIGN_DOC_CARD_BODY, className);
|
|
13198
13173
|
return link ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href: link, target, rel, className: outer, children: body }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: outer, children: body });
|
|
13199
13174
|
}
|
|
13200
13175
|
|
|
@@ -13336,26 +13311,26 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
|
|
|
13336
13311
|
metaParts.push(
|
|
13337
13312
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap", children: dateText }, "date")
|
|
13338
13313
|
);
|
|
13339
|
-
const href =
|
|
13314
|
+
const href = _chunkO3EKOXFZcjs.safeHref.call(void 0, item.url);
|
|
13340
13315
|
const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
13341
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
13342
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className:
|
|
13343
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${
|
|
13316
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkO3EKOXFZcjs.COMPACT_CARD_ICON_SLOT, children: kindIcon(kind, "h-5 w-5") }),
|
|
13317
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkO3EKOXFZcjs.COMPACT_CARD_TEXT_COL, children: [
|
|
13318
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkO3EKOXFZcjs.COMPACT_CARD_TITLE_ROW} flex-nowrap gap-1.5`, children: [
|
|
13344
13319
|
reviewState ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ReviewStateBadge, { state: reviewState }) : null,
|
|
13345
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
13320
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkO3EKOXFZcjs.COMPACT_CARD_TITLE, children: primaryText })
|
|
13346
13321
|
] }),
|
|
13347
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
13322
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkO3EKOXFZcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkO3EKOXFZcjs.COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react2.default.Fragment, { children: [
|
|
13348
13323
|
i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-ods-text-secondary/40", children: "\xB7" }) : null,
|
|
13349
13324
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
|
|
13350
13325
|
] }, i)) }) }),
|
|
13351
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className:
|
|
13326
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkO3EKOXFZcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkO3EKOXFZcjs.COMPACT_CARD_SUMMARY, children: _chunkO3EKOXFZcjs.COMPACT_CARD_ROW_FILLER }) })
|
|
13352
13327
|
] }),
|
|
13353
13328
|
href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
|
|
13354
13329
|
] });
|
|
13355
13330
|
if (anchorProps) {
|
|
13356
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { ...anchorProps, className: `${
|
|
13331
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { ...anchorProps, className: `${_chunkO3EKOXFZcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
|
|
13357
13332
|
}
|
|
13358
|
-
return href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target: "_blank", rel: "noopener noreferrer", className: `${
|
|
13333
|
+
return href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV45KLJQPcjs.next_link_default, { href, target: "_blank", rel: "noopener noreferrer", className: `${_chunkO3EKOXFZcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkO3EKOXFZcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
|
|
13359
13334
|
}
|
|
13360
13335
|
function GitHubActivityCardSkeleton({
|
|
13361
13336
|
variant = "compact",
|
|
@@ -13363,7 +13338,7 @@ function GitHubActivityCardSkeleton({
|
|
|
13363
13338
|
}) {
|
|
13364
13339
|
if (variant === "row") {
|
|
13365
13340
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13366
|
-
|
|
13341
|
+
_chunkO3EKOXFZcjs.ActivityRowSkeleton,
|
|
13367
13342
|
{
|
|
13368
13343
|
lead: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-28 shrink-0 items-center gap-2", children: [
|
|
13369
13344
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.UnifiedSkeleton, { className: "h-3.5 w-3.5 rounded" }),
|
|
@@ -13374,7 +13349,7 @@ function GitHubActivityCardSkeleton({
|
|
|
13374
13349
|
}
|
|
13375
13350
|
);
|
|
13376
13351
|
}
|
|
13377
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13352
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO3EKOXFZcjs.CompactCardSkeleton, { titleWidth: "w-2/3", rows: [{ width: "w-1/2" }, {}], trailingIcon: true, className });
|
|
13378
13353
|
}
|
|
13379
13354
|
|
|
13380
13355
|
// src/utils/url-fix.ts
|
|
@@ -13430,7 +13405,7 @@ function VendorIcon({
|
|
|
13430
13405
|
...props
|
|
13431
13406
|
}) {
|
|
13432
13407
|
const logoUrl = getVendorLogo(vendor);
|
|
13433
|
-
const logoSrc =
|
|
13408
|
+
const logoSrc = _chunkNMWLXHFHcjs.useProxiedImageUrl.call(void 0, logoUrl, { directHttps: false });
|
|
13434
13409
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13435
13410
|
_chunkW7OFAROYcjs.SquareAvatar,
|
|
13436
13411
|
{
|
|
@@ -13464,8 +13439,8 @@ function useChatCardItem(type, id) {
|
|
|
13464
13439
|
const res = await _chunkGI3MMBP3cjs.embedAuthedFetch.call(void 0, url);
|
|
13465
13440
|
if (!res.ok) throw new Error(`chat card fetch failed: ${res.status}`);
|
|
13466
13441
|
const data = await res.json();
|
|
13467
|
-
const items =
|
|
13468
|
-
const match = items.find((it) =>
|
|
13442
|
+
const items = _chunkNMWLXHFHcjs.extractCardItems.call(void 0, type, data);
|
|
13443
|
+
const match = items.find((it) => _chunkNMWLXHFHcjs.extractItemId.call(void 0, type, it) === id);
|
|
13469
13444
|
return _nullishCoalesce(match, () => ( null));
|
|
13470
13445
|
},
|
|
13471
13446
|
enabled: !!url && id.length > 0,
|
|
@@ -13607,7 +13582,7 @@ function MingoInfoCard({
|
|
|
13607
13582
|
}
|
|
13608
13583
|
),
|
|
13609
13584
|
hasMenu && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13610
|
-
|
|
13585
|
+
_chunkKXFIYO4Ocjs.ActionsMenuDropdown,
|
|
13611
13586
|
{
|
|
13612
13587
|
groups: menuGroups,
|
|
13613
13588
|
triggerAriaLabel: menuAriaLabel,
|
|
@@ -13671,7 +13646,7 @@ function resolveFetchedCardHref({
|
|
|
13671
13646
|
composeContentUrl
|
|
13672
13647
|
}) {
|
|
13673
13648
|
if (!composeContentUrl || !contentRefType || !id) return null;
|
|
13674
|
-
const canonicalType =
|
|
13649
|
+
const canonicalType = _chunkNMWLXHFHcjs.canonicalContentRefType.call(void 0, contentRefType);
|
|
13675
13650
|
return composeContentUrl({
|
|
13676
13651
|
// The card registry keys some entries by the legacy rail vocabulary
|
|
13677
13652
|
// (`blog_post_existing`) because that is what `buildListUrl` expects.
|
|
@@ -13695,7 +13670,7 @@ function sourceRowCtxFromRuntime(runtime) {
|
|
|
13695
13670
|
}
|
|
13696
13671
|
function pickSourceIcon(sourceRepo, documentType) {
|
|
13697
13672
|
const iconName = sourceRepo ? getSourceIconName(sourceRepo) : void 0;
|
|
13698
|
-
const icon = iconName ?
|
|
13673
|
+
const icon = iconName ? _chunkKKFDRCQFcjs.resolveIcon.call(void 0, iconName, { variant: "brand" }) : _lucidereact.FileText;
|
|
13699
13674
|
const iconLabel = _nullishCoalesce(documentType, () => ( "Source"));
|
|
13700
13675
|
return { icon, iconLabel };
|
|
13701
13676
|
}
|
|
@@ -13714,16 +13689,16 @@ function resolveSourceRowCTA(row, ctx = {}) {
|
|
|
13714
13689
|
// Canonical vocabulary only — a rail-vocab alias would miss the host's
|
|
13715
13690
|
// `hostedTypes` / `overrides` and fall through to the seam's default
|
|
13716
13691
|
// `<origin>/<type>/<id>` branch. Same canonicalizer `buildListUrl` uses.
|
|
13717
|
-
type:
|
|
13692
|
+
type: _chunkNMWLXHFHcjs.canonicalContentRefType.call(void 0, row.documentType),
|
|
13718
13693
|
identifier: idValue,
|
|
13719
13694
|
...docPath ? { slug: docPath } : {},
|
|
13720
13695
|
externalUrl: _nullishCoalesce(row.externalUrl, () => ( null)),
|
|
13721
13696
|
targetPlatform: _nullishCoalesce(row.targetPlatform, () => ( null))
|
|
13722
13697
|
});
|
|
13723
|
-
href = composed.href ? _nullishCoalesce(
|
|
13698
|
+
href = composed.href ? _nullishCoalesce(_chunkO3EKOXFZcjs.safeHref.call(void 0, composed.href), () => ( null)) : null;
|
|
13724
13699
|
targetPlatform = composed.targetPlatform;
|
|
13725
13700
|
} else if (row.externalUrl) {
|
|
13726
|
-
href = _nullishCoalesce(
|
|
13701
|
+
href = _nullishCoalesce(_chunkO3EKOXFZcjs.safeHref.call(void 0, row.externalUrl), () => ( null));
|
|
13727
13702
|
targetPlatform = _nullishCoalesce(row.targetPlatform, () => ( null));
|
|
13728
13703
|
}
|
|
13729
13704
|
const documentType = row.documentType;
|
|
@@ -13790,7 +13765,7 @@ function resolveCardDestination({
|
|
|
13790
13765
|
itemHref: _nullishCoalesce(_optionalChain([entry, 'access', _306 => _306.fallbackHref, 'optionalCall', _307 => _307(item)]), () => ( null)),
|
|
13791
13766
|
allowComposed: !entry.noComposedHref
|
|
13792
13767
|
});
|
|
13793
|
-
const url = choice ? _nullishCoalesce(
|
|
13768
|
+
const url = choice ? _nullishCoalesce(_chunkO3EKOXFZcjs.safeHref.call(void 0, choice.href), () => ( null)) : null;
|
|
13794
13769
|
if (choice && url) {
|
|
13795
13770
|
return { url, targetPlatform: _nullishCoalesce(choice.targetPlatform, () => ( rowPlatform)), path, source: choice.source };
|
|
13796
13771
|
}
|
|
@@ -13803,11 +13778,11 @@ function resolveCardDestination({
|
|
|
13803
13778
|
|
|
13804
13779
|
function DeletedDataCard({ title, entityLabel, recoveryNote, className }) {
|
|
13805
13780
|
const label = entityLabel || "Item";
|
|
13806
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `${
|
|
13807
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
13808
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
13809
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
13810
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
13781
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `${_chunkO3EKOXFZcjs.COMPACT_CARD_OUTER_STATIC} opacity-70 ${_nullishCoalesce(className, () => ( ""))}`, children: [
|
|
13782
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkO3EKOXFZcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Trash2, { className: "h-4 w-4 text-ods-text-secondary" }) }),
|
|
13783
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkO3EKOXFZcjs.COMPACT_CARD_TEXT_COL, children: [
|
|
13784
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkO3EKOXFZcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkO3EKOXFZcjs.COMPACT_CARD_TITLE} text-ods-text-secondary line-through`, children: title || `Deleted ${label.toLowerCase()}` }) }),
|
|
13785
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkO3EKOXFZcjs.COMPACT_CARD_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
|
|
13811
13786
|
label,
|
|
13812
13787
|
" deleted",
|
|
13813
13788
|
recoveryNote ? ` \xB7 ${recoveryNote}` : ""
|
|
@@ -13862,7 +13837,7 @@ function GitHubChatCard({
|
|
|
13862
13837
|
description,
|
|
13863
13838
|
icon: githubKindIcon(kind),
|
|
13864
13839
|
status,
|
|
13865
|
-
anchorProps:
|
|
13840
|
+
anchorProps: _chunkETZFBB7Ocjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab, chatRef.targetPlatform),
|
|
13866
13841
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
13867
13842
|
menuAriaLabel: "Activity actions"
|
|
13868
13843
|
}
|
|
@@ -13985,7 +13960,7 @@ function HubspotTicketChatCard({
|
|
|
13985
13960
|
description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
|
|
13986
13961
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOSS23NHHcjs.TagIcon, { size: 24 }),
|
|
13987
13962
|
status: statusText ? { label: statusText, variant: hubspotStatusToVariant(status) } : void 0,
|
|
13988
|
-
anchorProps:
|
|
13963
|
+
anchorProps: _chunkETZFBB7Ocjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab, chatRef.targetPlatform),
|
|
13989
13964
|
menuGroups: cardMenuGroups(chatRef.url, discuss, {
|
|
13990
13965
|
label: "Open Ticket Details",
|
|
13991
13966
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOSS23NHHcjs.TagIcon, { size: 20 })
|
|
@@ -14008,7 +13983,7 @@ function FaqChatCard({
|
|
|
14008
13983
|
description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
|
|
14009
13984
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFO6DOP6Mcjs.QuestionCircleIcon, { size: 24 }),
|
|
14010
13985
|
status: { label: statusLabel, variant: "grey" },
|
|
14011
|
-
anchorProps:
|
|
13986
|
+
anchorProps: _chunkETZFBB7Ocjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab, chatRef.targetPlatform),
|
|
14012
13987
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
14013
13988
|
menuAriaLabel: "FAQ actions"
|
|
14014
13989
|
}
|
|
@@ -14028,7 +14003,7 @@ function SlackChatCard({
|
|
|
14028
14003
|
title,
|
|
14029
14004
|
description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
|
|
14030
14005
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZUHFVG4Fcjs.SlackLogoGreyIcon, { size: 24 }),
|
|
14031
|
-
anchorProps:
|
|
14006
|
+
anchorProps: _chunkETZFBB7Ocjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab, chatRef.targetPlatform),
|
|
14032
14007
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
14033
14008
|
menuAriaLabel: "Message actions"
|
|
14034
14009
|
}
|
|
@@ -14046,7 +14021,7 @@ function GlyphChatCard({
|
|
|
14046
14021
|
title: chatRef.title,
|
|
14047
14022
|
description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
|
|
14048
14023
|
icon,
|
|
14049
|
-
anchorProps:
|
|
14024
|
+
anchorProps: _chunkETZFBB7Ocjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab, chatRef.targetPlatform),
|
|
14050
14025
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
14051
14026
|
menuAriaLabel: "Card actions"
|
|
14052
14027
|
}
|
|
@@ -14064,20 +14039,20 @@ function TrustCenterChatCard({
|
|
|
14064
14039
|
}) {
|
|
14065
14040
|
const raw2 = _optionalChain([item, 'optionalAccess', _321 => _321.frameworks]);
|
|
14066
14041
|
const frameworks = Array.isArray(raw2) ? raw2 : [];
|
|
14067
|
-
const summary =
|
|
14042
|
+
const summary = _chunkNMWLXHFHcjs.trustFrameworksSummary.call(void 0, frameworks);
|
|
14068
14043
|
const leadFramework = frameworks[0];
|
|
14069
14044
|
const lead = leadFramework ? {
|
|
14070
|
-
label:
|
|
14071
|
-
color:
|
|
14045
|
+
label: _chunkNMWLXHFHcjs.trustFrameworkBadge.call(void 0, leadFramework),
|
|
14046
|
+
color: _chunkNMWLXHFHcjs.trustFrameworkMonitoringEntry.call(void 0, leadFramework.monitoring).color
|
|
14072
14047
|
} : void 0;
|
|
14073
14048
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14074
14049
|
MingoInfoCard,
|
|
14075
14050
|
{
|
|
14076
|
-
title:
|
|
14077
|
-
description: summary ||
|
|
14051
|
+
title: _chunkNMWLXHFHcjs.TRUST_CENTER_TITLE,
|
|
14052
|
+
description: summary || _chunkNMWLXHFHcjs.TRUST_CENTER_TAGLINE,
|
|
14078
14053
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOBGYDNT6cjs.ShieldCheckIcon, { size: 24 }),
|
|
14079
14054
|
status: lead ? { label: lead.label, variant: TRUST_STATUS_TAG_VARIANT[lead.color] } : void 0,
|
|
14080
|
-
anchorProps:
|
|
14055
|
+
anchorProps: _chunkETZFBB7Ocjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab, chatRef.targetPlatform),
|
|
14081
14056
|
menuGroups: cardMenuGroups(chatRef.url, discuss, {
|
|
14082
14057
|
label: "View trust center",
|
|
14083
14058
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOBGYDNT6cjs.ShieldCheckIcon, { size: 20 })
|
|
@@ -14099,7 +14074,7 @@ function DataRoomDocChatCard({
|
|
|
14099
14074
|
description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
|
|
14100
14075
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU4USZF42cjs.FileContentIcon, { size: 24 }),
|
|
14101
14076
|
status: { label: badgeText, variant: "grey" },
|
|
14102
|
-
anchorProps:
|
|
14077
|
+
anchorProps: _chunkETZFBB7Ocjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab, chatRef.targetPlatform),
|
|
14103
14078
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
14104
14079
|
menuAriaLabel: "Document actions"
|
|
14105
14080
|
}
|
|
@@ -14118,7 +14093,7 @@ function GenericFinancialChatCard({
|
|
|
14118
14093
|
title: chatRef.title,
|
|
14119
14094
|
description: subtitle,
|
|
14120
14095
|
icon,
|
|
14121
|
-
anchorProps:
|
|
14096
|
+
anchorProps: _chunkETZFBB7Ocjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab, chatRef.targetPlatform),
|
|
14122
14097
|
menuGroups: cardMenuGroups(chatRef.url, discuss),
|
|
14123
14098
|
menuAriaLabel: "Document actions"
|
|
14124
14099
|
}
|
|
@@ -14209,7 +14184,7 @@ function CampaignChatCard({
|
|
|
14209
14184
|
}) {
|
|
14210
14185
|
const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _327 => _327.goals])) ? item.goals.length : 0;
|
|
14211
14186
|
const meta = [
|
|
14212
|
-
_optionalChain([item, 'optionalAccess', _328 => _328.start_date]) ?
|
|
14187
|
+
_optionalChain([item, 'optionalAccess', _328 => _328.start_date]) ? _chunkNMWLXHFHcjs.formatDateShort.call(void 0, item.start_date) : null,
|
|
14213
14188
|
goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
|
|
14214
14189
|
"Marketing campaign"
|
|
14215
14190
|
].filter(Boolean).join(" \xB7 ");
|
|
@@ -14248,7 +14223,7 @@ function EntityMingoCard({
|
|
|
14248
14223
|
imageAlt: typeof title === "string" ? title : void 0,
|
|
14249
14224
|
icon: fallbackIcon,
|
|
14250
14225
|
status,
|
|
14251
|
-
anchorProps:
|
|
14226
|
+
anchorProps: _chunkETZFBB7Ocjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab, chatRef.targetPlatform),
|
|
14252
14227
|
menuGroups: cardMenuGroups(chatRef.url, discuss, openDetails, externalLink),
|
|
14253
14228
|
menuAriaLabel
|
|
14254
14229
|
}
|
|
@@ -14260,7 +14235,7 @@ function entityCover(image, ogPlaceholder) {
|
|
|
14260
14235
|
function statusPill(status) {
|
|
14261
14236
|
const s = typeof status === "string" ? status.trim() : "";
|
|
14262
14237
|
if (!s) return void 0;
|
|
14263
|
-
const scheme =
|
|
14238
|
+
const scheme = _chunkNMWLXHFHcjs.getStatusColorScheme.call(void 0, s);
|
|
14264
14239
|
const variant = scheme === "success" || scheme === "error" || scheme === "warning" ? scheme : "grey";
|
|
14265
14240
|
return { label: s, variant };
|
|
14266
14241
|
}
|
|
@@ -14351,7 +14326,7 @@ function DesignDocChatCard({
|
|
|
14351
14326
|
description: doc ? [designDocMetaLine(doc), formatCompletionLabel(doc.completion)].join(" \xB7 ") : _nullishCoalesce(displayRef.preview, () => ( void 0)),
|
|
14352
14327
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU4USZF42cjs.FileContentIcon, { size: 24 }),
|
|
14353
14328
|
status: status ? { label: status.label, variant: _chunkW7OFAROYcjs.tagVariantForBadgeColor.call(void 0, status.color_scheme) } : { label: "Design doc", variant: "grey" },
|
|
14354
|
-
anchorProps:
|
|
14329
|
+
anchorProps: _chunkETZFBB7Ocjs.buildAnchorProps.call(void 0, displayRef.url, isNewTab, displayRef.targetPlatform),
|
|
14355
14330
|
menuGroups: cardMenuGroups(displayRef.url, discuss),
|
|
14356
14331
|
menuAriaLabel: "Design doc actions"
|
|
14357
14332
|
}
|
|
@@ -14369,7 +14344,7 @@ function InvestorUpdateChatCard({
|
|
|
14369
14344
|
EntityMingoCard,
|
|
14370
14345
|
{
|
|
14371
14346
|
title,
|
|
14372
|
-
description: _optionalChain([item, 'optionalAccess', _358 => _358.strategic_update]) || _optionalChain([item, 'optionalAccess', _359 => _359.content]) ||
|
|
14347
|
+
description: _optionalChain([item, 'optionalAccess', _358 => _358.strategic_update]) || _optionalChain([item, 'optionalAccess', _359 => _359.content]) || _chunkNMWLXHFHcjs.formatInvestorUpdatePeriod.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _360 => _360.period_start]), () => ( null)), _nullishCoalesce(_optionalChain([item, 'optionalAccess', _361 => _361.period_end]), () => ( null))) || void 0,
|
|
14373
14348
|
cover: entityCover(_optionalChain([item, 'optionalAccess', _362 => _362.featured_image]), ogPlaceholder),
|
|
14374
14349
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk37SGOMF5cjs.PresentationLineIcon, { size: 24 }),
|
|
14375
14350
|
status: { label: "Investor update", variant: "grey" },
|
|
@@ -14413,7 +14388,7 @@ function ProgramChatCard({
|
|
|
14413
14388
|
discuss
|
|
14414
14389
|
}) {
|
|
14415
14390
|
const icon = configKey === "webinar" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGZ6NU2C2cjs.PresentationBarIcon, { size: 24 }) : configKey === "event" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM4KPLFFAcjs.CalendarIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZL4LQNYXcjs.MicrophoneIcon, { size: 24 });
|
|
14416
|
-
const { line: meta } =
|
|
14391
|
+
const { line: meta } = _chunkNMWLXHFHcjs.programMetaLine.call(void 0, _nullishCoalesce(item, () => ( {})), configKey, _chunkNMWLXHFHcjs.programMetaFormatters.call(void 0, _chunkNMWLXHFHcjs.PROGRAM_META_RENDERERS));
|
|
14417
14392
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14418
14393
|
EntityMingoCard,
|
|
14419
14394
|
{
|
|
@@ -14439,7 +14414,7 @@ function RoadmapChatCard({
|
|
|
14439
14414
|
const logoUrl = typeof _optionalChain([item, 'optionalAccess', _372 => _372.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
|
|
14440
14415
|
const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _373 => _373.customItemId]) != null;
|
|
14441
14416
|
const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3UIJR4PYcjs.TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6DN5HKRWcjs.CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMQDSQKK2cjs.MapIcon, { size: 24 });
|
|
14442
|
-
const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14417
|
+
const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _374 => _374.customItemId]), className: "size-6" }) : logoUrl ? (
|
|
14443
14418
|
// Contained (not full-bleed) so the integration logo keeps its aspect
|
|
14444
14419
|
// ratio inside the bordered icon box — matches RoadmapCard.
|
|
14445
14420
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -14448,8 +14423,8 @@ function RoadmapChatCard({
|
|
|
14448
14423
|
src: logoUrl,
|
|
14449
14424
|
alt: "",
|
|
14450
14425
|
className: "size-6 object-contain",
|
|
14451
|
-
width:
|
|
14452
|
-
height:
|
|
14426
|
+
width: _chunkKKFDRCQFcjs.IMAGE_FIXED_PX.glyph,
|
|
14427
|
+
height: _chunkKKFDRCQFcjs.IMAGE_FIXED_PX.glyph,
|
|
14453
14428
|
unoptimized: true
|
|
14454
14429
|
}
|
|
14455
14430
|
)
|
|
@@ -14515,11 +14490,11 @@ function refText(ref, key) {
|
|
|
14515
14490
|
return typeof value === "string" && value.length > 0 ? value : null;
|
|
14516
14491
|
}
|
|
14517
14492
|
function VendorGlyph({ title, logoUrl }) {
|
|
14518
|
-
if (!logoUrl) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14493
|
+
if (!logoUrl) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO3EKOXFZcjs.EntityIcon, { icon: { name: SOURCE_ICON_NAMES.vendors }, size: 24 });
|
|
14519
14494
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorIcon, { vendor: { title, logo_url: logoUrl }, size: "xs", showBackground: false });
|
|
14520
14495
|
}
|
|
14521
14496
|
function SitePageGlyph({ iconName }) {
|
|
14522
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14497
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO3EKOXFZcjs.EntityIcon, { icon: { name: _nullishCoalesce(iconName, () => ( SOURCE_ICON_NAMES["website-pages"])) }, size: 24 });
|
|
14523
14498
|
}
|
|
14524
14499
|
var GITHUB_CARD_CONFIGS = {
|
|
14525
14500
|
github_commit: { label: "GitHub commit", kind: "commit" },
|
|
@@ -14647,7 +14622,7 @@ function programRegistryEntries() {
|
|
|
14647
14622
|
contentRefType: cfg.contentRefType,
|
|
14648
14623
|
bareInline: true,
|
|
14649
14624
|
disclosure: cfg.disclosure,
|
|
14650
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14625
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.ProgramCard, { loading: true, size: "sm" }),
|
|
14651
14626
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14652
14627
|
ProgramChatCard,
|
|
14653
14628
|
{
|
|
@@ -14688,7 +14663,7 @@ function roadmapRegistryEntries() {
|
|
|
14688
14663
|
bareInline: true,
|
|
14689
14664
|
...cfg.noComposedHref ? { noComposedHref: true } : {},
|
|
14690
14665
|
...cfg.fallbackHref ? { fallbackHref: cfg.fallbackHref } : {},
|
|
14691
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14666
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.RoadmapCard, { loading: true, size: "sm" }),
|
|
14692
14667
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14693
14668
|
RoadmapChatCard,
|
|
14694
14669
|
{
|
|
@@ -14746,12 +14721,12 @@ var CHAT_CARD_REGISTRY = {
|
|
|
14746
14721
|
// projection route; `extractCardItems` turns its object payload into the
|
|
14747
14722
|
// single matched row. Destination is the public page unless the host
|
|
14748
14723
|
// re-homes the type (`composeContentUrl` override).
|
|
14749
|
-
[
|
|
14724
|
+
[_chunkNMWLXHFHcjs.TRUST_CENTER_DOCUMENT_TYPE]: {
|
|
14750
14725
|
label: "Trust center",
|
|
14751
14726
|
bareInline: true,
|
|
14752
|
-
contentRefType:
|
|
14727
|
+
contentRefType: _chunkNMWLXHFHcjs.TRUST_CENTER_DOCUMENT_TYPE,
|
|
14753
14728
|
noComposedHref: true,
|
|
14754
|
-
fallbackHref: () =>
|
|
14729
|
+
fallbackHref: () => _chunkNMWLXHFHcjs.TRUST_CENTER_PAGE_PATH,
|
|
14755
14730
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCard, { loading: true, title: "" }),
|
|
14756
14731
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TrustCenterChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
|
|
14757
14732
|
},
|
|
@@ -14778,7 +14753,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
14778
14753
|
label: "Blog post",
|
|
14779
14754
|
contentRefType: "blog_post_existing",
|
|
14780
14755
|
bareInline: true,
|
|
14781
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14756
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.BlogCard, { loading: true, size: "sm" }),
|
|
14782
14757
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14783
14758
|
BlogChatCard,
|
|
14784
14759
|
{
|
|
@@ -14796,7 +14771,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
14796
14771
|
label: "Case study",
|
|
14797
14772
|
contentRefType: "case_study",
|
|
14798
14773
|
bareInline: true,
|
|
14799
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14774
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO3EKOXFZcjs.CaseStudyCard, { loading: true, size: "sm" }),
|
|
14800
14775
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14801
14776
|
CaseStudyChatCard,
|
|
14802
14777
|
{
|
|
@@ -14822,7 +14797,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
14822
14797
|
label: "Customer interview",
|
|
14823
14798
|
contentRefType: "customer_interview",
|
|
14824
14799
|
bareInline: true,
|
|
14825
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14800
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.CustomerInterviewCard, { loading: true, size: "sm" }),
|
|
14826
14801
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14827
14802
|
CustomerInterviewChatCard,
|
|
14828
14803
|
{
|
|
@@ -14839,9 +14814,9 @@ var CHAT_CARD_REGISTRY = {
|
|
|
14839
14814
|
label: "Product release",
|
|
14840
14815
|
contentRefType: "product_release",
|
|
14841
14816
|
bareInline: true,
|
|
14842
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14817
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.ProductReleaseCard, { loading: true, size: "sm" }),
|
|
14843
14818
|
render: (item, chatRef, opts) => {
|
|
14844
|
-
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _415 => _415.extras, 'optionalAccess', _416 => _416.buildProductReleaseCardProps]), () => (
|
|
14819
|
+
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _415 => _415.extras, 'optionalAccess', _416 => _416.buildProductReleaseCardProps]), () => ( _chunkNMWLXHFHcjs.defaultBuildProductReleaseCardProps));
|
|
14845
14820
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14846
14821
|
ProductReleaseChatCard,
|
|
14847
14822
|
{
|
|
@@ -14860,7 +14835,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
14860
14835
|
label: "Investor update",
|
|
14861
14836
|
contentRefType: "investor_update",
|
|
14862
14837
|
bareInline: true,
|
|
14863
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14838
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.InvestorUpdateCard, { loading: true, size: "sm" }),
|
|
14864
14839
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14865
14840
|
InvestorUpdateChatCard,
|
|
14866
14841
|
{
|
|
@@ -14879,7 +14854,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
14879
14854
|
bareInline: true,
|
|
14880
14855
|
// "Display" affordance (verbatim guide body) instead of "Ask".
|
|
14881
14856
|
displayAction: true,
|
|
14882
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14857
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.OnboardingGuideCard, { loading: true, size: "sm" }),
|
|
14883
14858
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14884
14859
|
OnboardingGuideChatCard,
|
|
14885
14860
|
{
|
|
@@ -14923,7 +14898,7 @@ function ChatCardNavWrap({
|
|
|
14923
14898
|
if (!_optionalChain([host, 'optionalAccess', _428 => _428.contains, 'call', _429 => _429(targetEl)])) return;
|
|
14924
14899
|
if (_optionalChain([targetEl, 'optionalAccess', _430 => _430.closest, 'optionalCall', _431 => _431("button")])) return;
|
|
14925
14900
|
if (!_optionalChain([targetEl, 'optionalAccess', _432 => _432.closest, 'optionalCall', _433 => _433("a")])) return;
|
|
14926
|
-
const handled =
|
|
14901
|
+
const handled = _chunkG7GF4PWAcjs.executeNavigation.call(void 0, { event: e, runtime, href, path, targetPlatform, hostRoute });
|
|
14927
14902
|
if (!handled) return;
|
|
14928
14903
|
e.stopPropagation();
|
|
14929
14904
|
if (!isNewTab && _optionalChain([panel, 'optionalAccess', _434 => _434.closeChat])) panel.closeChat();
|
|
@@ -14961,7 +14936,7 @@ function ChatCardLoader({ chatRef, onDiscuss, onDisplay, extras }) {
|
|
|
14961
14936
|
entry: fetchEntry,
|
|
14962
14937
|
ctx: sourceRowCtxFromRuntime(runtime),
|
|
14963
14938
|
composeContentUrl: runtime.composeContentUrl,
|
|
14964
|
-
resolveHref: (href) =>
|
|
14939
|
+
resolveHref: (href) => _chunkETZFBB7Ocjs.navLinkTarget.call(void 0, runtime, href).href
|
|
14965
14940
|
});
|
|
14966
14941
|
const hrefResolvedChatRef = {
|
|
14967
14942
|
...chatRef,
|
|
@@ -14972,13 +14947,13 @@ function ChatCardLoader({ chatRef, onDiscuss, onDisplay, extras }) {
|
|
|
14972
14947
|
};
|
|
14973
14948
|
const fetchedTitle = fetchEntry && item ? readFetchedCardTitle(item) : null;
|
|
14974
14949
|
const finalChatRef = fetchedTitle && (!hrefResolvedChatRef.title || hrefResolvedChatRef.title === hrefResolvedChatRef.id) ? { ...hrefResolvedChatRef, title: fetchedTitle } : hrefResolvedChatRef;
|
|
14975
|
-
const hostRoute = (destination.source === "composed" || destination.source === "hostOverride") && !!finalChatRef.url &&
|
|
14976
|
-
const isNewTab = finalChatRef.url ?
|
|
14950
|
+
const hostRoute = (destination.source === "composed" || destination.source === "hostOverride") && !!finalChatRef.url && _chunkETZFBB7Ocjs.isRelativeHref.call(void 0, finalChatRef.url);
|
|
14951
|
+
const isNewTab = finalChatRef.url ? _chunkETZFBB7Ocjs.navLinkTarget.call(void 0, runtime, finalChatRef.url, finalChatRef.targetPlatform, { hostRoute }).isNewTab : false;
|
|
14977
14952
|
const useDisplay = !!entry.displayAction && !!onDisplay;
|
|
14978
14953
|
const discussFn = useDisplay ? onDisplay : onDiscuss;
|
|
14979
14954
|
const discuss = discussFn ? {
|
|
14980
14955
|
label: useDisplay ? "Display" : "Ask Mingo",
|
|
14981
|
-
icon: useDisplay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU4USZF42cjs.FileContentIcon, { size: 20 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14956
|
+
icon: useDisplay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU4USZF42cjs.FileContentIcon, { size: 20 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU767P4JUcjs.AgentMark, { agent: "mingo", className: "size-5" }),
|
|
14982
14957
|
run: () => discussFn(finalChatRef)
|
|
14983
14958
|
} : void 0;
|
|
14984
14959
|
const renderOpts = {
|
|
@@ -15077,19 +15052,19 @@ function makeSeqKey(messageType, chunkType, sequenceId) {
|
|
|
15077
15052
|
function makeBatchDedupKey(item) {
|
|
15078
15053
|
const seq = _nullishCoalesce(item.chunk.sequenceId, () => ( "na"));
|
|
15079
15054
|
const type = typeof item.chunk.type === "string" ? item.chunk.type : "na";
|
|
15080
|
-
const
|
|
15055
|
+
const text3 = typeof item.chunk.text === "string" ? item.chunk.text : "";
|
|
15081
15056
|
const integratedToolType = typeof item.chunk.integratedToolType === "string" ? item.chunk.integratedToolType : "";
|
|
15082
15057
|
const toolFunction = typeof item.chunk.toolFunction === "string" ? item.chunk.toolFunction : "";
|
|
15083
15058
|
const approvalRequestId = typeof item.chunk.approvalRequestId === "string" ? item.chunk.approvalRequestId : typeof item.chunk.approval_request_id === "string" ? item.chunk.approval_request_id : "";
|
|
15084
|
-
return `${item.messageType}:${seq}:${type}:${
|
|
15059
|
+
return `${item.messageType}:${seq}:${type}:${text3}:${integratedToolType}:${toolFunction}:${approvalRequestId}`;
|
|
15085
15060
|
}
|
|
15086
15061
|
function getChatTypeMessageType(chatType) {
|
|
15087
|
-
return chatType ===
|
|
15062
|
+
return chatType === _chunkEIACEY2Lcjs.CHAT_TYPE.ADMIN ? "admin-message" : "message";
|
|
15088
15063
|
}
|
|
15089
15064
|
function useChunkCatchup({
|
|
15090
15065
|
dialogId,
|
|
15091
15066
|
onChunkReceived,
|
|
15092
|
-
chatTypes = [
|
|
15067
|
+
chatTypes = [_chunkEIACEY2Lcjs.CHAT_TYPE.CLIENT],
|
|
15093
15068
|
fetchChunks
|
|
15094
15069
|
}) {
|
|
15095
15070
|
const processedSequenceKeys = _react.useRef.call(void 0, /* @__PURE__ */ new Set());
|
|
@@ -16056,7 +16031,7 @@ function useChatAttachmentImageGallery() {
|
|
|
16056
16031
|
return () => root.removeEventListener("click", onClick);
|
|
16057
16032
|
}, [viewUrlPrefix]);
|
|
16058
16033
|
const modal = state.isOpen ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16059
|
-
|
|
16034
|
+
_chunkNMWLXHFHcjs.ImageGalleryModal,
|
|
16060
16035
|
{
|
|
16061
16036
|
images: state.images,
|
|
16062
16037
|
isOpen: state.isOpen,
|
|
@@ -16431,7 +16406,7 @@ function upsertTrailingCompaction(prev, segments) {
|
|
|
16431
16406
|
return [...prev.slice(0, -1), { ...last, segments: merged }];
|
|
16432
16407
|
}
|
|
16433
16408
|
function sameToolData(a, b) {
|
|
16434
|
-
return a.type === b.type && a.integratedToolType === b.integratedToolType && a.toolFunction === b.toolFunction && a.toolTitle === b.toolTitle && a.result === b.result && a.success === b.success && a.toolExecutionRequestId === b.toolExecutionRequestId && (a.parameters === b.parameters || JSON.stringify(_nullishCoalesce(a.parameters, () => ( null))) === JSON.stringify(_nullishCoalesce(b.parameters, () => ( null))));
|
|
16409
|
+
return a.type === b.type && a.integratedToolType === b.integratedToolType && a.toolFunction === b.toolFunction && a.toolTitle === b.toolTitle && (a.policyReview === b.policyReview || JSON.stringify(a.policyReview) === JSON.stringify(b.policyReview)) && a.result === b.result && a.success === b.success && a.toolExecutionRequestId === b.toolExecutionRequestId && (a.parameters === b.parameters || JSON.stringify(_nullishCoalesce(a.parameters, () => ( null))) === JSON.stringify(_nullishCoalesce(b.parameters, () => ( null))));
|
|
16435
16410
|
}
|
|
16436
16411
|
function sameExecutionState(a, b) {
|
|
16437
16412
|
return !!a && a.status === b.status && a.result === b.result && a.success === b.success;
|
|
@@ -16469,6 +16444,8 @@ function mergeToolExecutionIfPresent(prev, segment) {
|
|
|
16469
16444
|
const mergedData = {
|
|
16470
16445
|
...toolData,
|
|
16471
16446
|
toolTitle: _nullishCoalesce(toolData.toolTitle, () => ( seg.data.toolTitle)),
|
|
16447
|
+
// The review rides the EXECUTING chunk only: the EXECUTED one keeps it.
|
|
16448
|
+
...keptPolicyReview(toolData.policyReview, seg.data.policyReview),
|
|
16472
16449
|
parameters: toolData.parameters || seg.data.parameters
|
|
16473
16450
|
};
|
|
16474
16451
|
if (sameToolData(seg.data, mergedData)) return prev;
|
|
@@ -16552,12 +16529,12 @@ var MessageSegmentAccumulator = class {
|
|
|
16552
16529
|
* Append text to the current message
|
|
16553
16530
|
* If the last segment is text, append to it; otherwise create a new text segment
|
|
16554
16531
|
*/
|
|
16555
|
-
appendText(
|
|
16532
|
+
appendText(text3) {
|
|
16556
16533
|
const lastSegment = this.segments[this.segments.length - 1];
|
|
16557
16534
|
if (lastSegment && lastSegment.type === "text") {
|
|
16558
|
-
this.segments[this.segments.length - 1] = { type: "text", text: lastSegment.text +
|
|
16535
|
+
this.segments[this.segments.length - 1] = { type: "text", text: lastSegment.text + text3 };
|
|
16559
16536
|
} else {
|
|
16560
|
-
this.segments.push({ type: "text", text:
|
|
16537
|
+
this.segments.push({ type: "text", text: text3 });
|
|
16561
16538
|
}
|
|
16562
16539
|
return this.getSegments();
|
|
16563
16540
|
}
|
|
@@ -16565,12 +16542,12 @@ var MessageSegmentAccumulator = class {
|
|
|
16565
16542
|
* Append thinking text to the current message.
|
|
16566
16543
|
* If the last segment is thinking, append to it; otherwise start a new thinking segment.
|
|
16567
16544
|
*/
|
|
16568
|
-
appendThinking(
|
|
16545
|
+
appendThinking(text3) {
|
|
16569
16546
|
const lastSegment = this.segments[this.segments.length - 1];
|
|
16570
16547
|
if (lastSegment && lastSegment.type === "thinking") {
|
|
16571
|
-
this.segments[this.segments.length - 1] = { type: "thinking", text: lastSegment.text +
|
|
16548
|
+
this.segments[this.segments.length - 1] = { type: "thinking", text: lastSegment.text + text3 };
|
|
16572
16549
|
} else {
|
|
16573
|
-
this.segments.push({ type: "thinking", text:
|
|
16550
|
+
this.segments.push({ type: "thinking", text: text3 });
|
|
16574
16551
|
}
|
|
16575
16552
|
return this.getSegments();
|
|
16576
16553
|
}
|
|
@@ -16610,6 +16587,7 @@ var MessageSegmentAccumulator = class {
|
|
|
16610
16587
|
toolFunction: toolData.toolFunction,
|
|
16611
16588
|
toolTitle: toolData.toolTitle,
|
|
16612
16589
|
toolExplanation: toolData.toolExplanation,
|
|
16590
|
+
...keptPolicyReview(toolData.policyReview),
|
|
16613
16591
|
parameters: toolData.parameters
|
|
16614
16592
|
});
|
|
16615
16593
|
this.segments.push(segment);
|
|
@@ -16625,7 +16603,8 @@ var MessageSegmentAccumulator = class {
|
|
|
16625
16603
|
...toolData,
|
|
16626
16604
|
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _539 => _539.data, 'access', _540 => _540.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _541 => _541.toolTitle]))),
|
|
16627
16605
|
toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess', _542 => _542.data, 'access', _543 => _543.toolExplanation]))), () => ( _optionalChain([executingTool, 'optionalAccess', _544 => _544.toolExplanation]))),
|
|
16628
|
-
|
|
16606
|
+
...keptPolicyReview(toolData.policyReview, _optionalChain([existingExecuting, 'optionalAccess', _545 => _545.data, 'access', _546 => _546.policyReview]), _optionalChain([executingTool, 'optionalAccess', _547 => _547.policyReview])),
|
|
16607
|
+
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _548 => _548.parameters])
|
|
16629
16608
|
}
|
|
16630
16609
|
};
|
|
16631
16610
|
if (existingIndex !== -1) {
|
|
@@ -16649,7 +16628,7 @@ var MessageSegmentAccumulator = class {
|
|
|
16649
16628
|
if (seg.type !== "approval_batch") return seg;
|
|
16650
16629
|
const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
|
|
16651
16630
|
if (!hasCall) return seg;
|
|
16652
|
-
const prev = _optionalChain([seg, 'access',
|
|
16631
|
+
const prev = _optionalChain([seg, 'access', _549 => _549.data, 'access', _550 => _550.executions, 'optionalAccess', _551 => _551[execId]]);
|
|
16653
16632
|
const next = nextBatchExecution(prev, toolData);
|
|
16654
16633
|
matched = true;
|
|
16655
16634
|
if (next === null) return seg;
|
|
@@ -16783,8 +16762,8 @@ var MessageSegmentAccumulator = class {
|
|
|
16783
16762
|
requestId,
|
|
16784
16763
|
{
|
|
16785
16764
|
...pendingApproval,
|
|
16786
|
-
command: _optionalChain([pendingApproval, 'optionalAccess',
|
|
16787
|
-
approvalType: _optionalChain([pendingApproval, 'optionalAccess',
|
|
16765
|
+
command: _optionalChain([pendingApproval, 'optionalAccess', _552 => _552.command]) || "",
|
|
16766
|
+
approvalType: _optionalChain([pendingApproval, 'optionalAccess', _553 => _553.approvalType]) || approvalType
|
|
16788
16767
|
},
|
|
16789
16768
|
status
|
|
16790
16769
|
);
|
|
@@ -16800,7 +16779,7 @@ var MessageSegmentAccumulator = class {
|
|
|
16800
16779
|
* `[existing..., new...]` back through `replaySegments`, which would
|
|
16801
16780
|
* otherwise yield two cards for one offer.
|
|
16802
16781
|
*/
|
|
16803
|
-
addEscalationOffer(offerId,
|
|
16782
|
+
addEscalationOffer(offerId, text3, origin, status = "pending", resolvedByName) {
|
|
16804
16783
|
const existingIndex = this.segments.findIndex(
|
|
16805
16784
|
(s) => s.type === "escalation_offer" && s.data.offerId === offerId
|
|
16806
16785
|
);
|
|
@@ -16809,9 +16788,9 @@ var MessageSegmentAccumulator = class {
|
|
|
16809
16788
|
type: "escalation_offer",
|
|
16810
16789
|
// The resolved chunk carries no text/origin — a redelivered offer must
|
|
16811
16790
|
// not blank the card the PENDING chunk already painted.
|
|
16812
|
-
data: { offerId, text:
|
|
16791
|
+
data: { offerId, text: text3 || _optionalChain([existing, 'optionalAccess', _554 => _554.data, 'access', _555 => _555.text]) || "", origin: _nullishCoalesce(origin, () => ( _optionalChain([existing, 'optionalAccess', _556 => _556.data, 'access', _557 => _557.origin]))) },
|
|
16813
16792
|
status,
|
|
16814
|
-
resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess',
|
|
16793
|
+
resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess', _558 => _558.resolvedByName]))),
|
|
16815
16794
|
onApprove: this.callbacks.onEscalationApprove,
|
|
16816
16795
|
onReject: this.callbacks.onEscalationReject
|
|
16817
16796
|
};
|
|
@@ -17097,12 +17076,12 @@ function createChatStreamReducer(options = {}) {
|
|
|
17097
17076
|
let lastAppliedSeq = Number.NEGATIVE_INFINITY;
|
|
17098
17077
|
let pendingEchoTexts = [];
|
|
17099
17078
|
let turnStartedAt = 0;
|
|
17100
|
-
function consumeOwnEcho(
|
|
17079
|
+
function consumeOwnEcho(text3, authorMatched = false) {
|
|
17101
17080
|
if (pendingEchoTexts.length === 0) return false;
|
|
17102
17081
|
const now = Date.now();
|
|
17103
17082
|
pendingEchoTexts = pendingEchoTexts.filter((e) => now - e.at < OWN_ECHO_AUTHOR_TTL_MS);
|
|
17104
17083
|
const ttl = authorMatched ? OWN_ECHO_AUTHOR_TTL_MS : OWN_ECHO_TTL_MS;
|
|
17105
|
-
const idx = pendingEchoTexts.findIndex((e) => e.text ===
|
|
17084
|
+
const idx = pendingEchoTexts.findIndex((e) => e.text === text3 && now - e.at < ttl);
|
|
17106
17085
|
if (idx === -1) return false;
|
|
17107
17086
|
pendingEchoTexts.splice(idx, 1);
|
|
17108
17087
|
return true;
|
|
@@ -17133,7 +17112,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
17133
17112
|
let stateCache = null;
|
|
17134
17113
|
function invalidate() {
|
|
17135
17114
|
stateCache = null;
|
|
17136
|
-
_optionalChain([onChange, 'optionalCall',
|
|
17115
|
+
_optionalChain([onChange, 'optionalCall', _559 => _559()]);
|
|
17137
17116
|
}
|
|
17138
17117
|
function getState() {
|
|
17139
17118
|
if (!stateCache) {
|
|
@@ -17149,7 +17128,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
17149
17128
|
return stateCache;
|
|
17150
17129
|
}
|
|
17151
17130
|
function emit(name, ...args) {
|
|
17152
|
-
_optionalChain([onEffect, 'optionalCall',
|
|
17131
|
+
_optionalChain([onEffect, 'optionalCall', _560 => _560({ name, args })]);
|
|
17153
17132
|
}
|
|
17154
17133
|
function setMessagesInternal(next) {
|
|
17155
17134
|
if (next !== messages) {
|
|
@@ -17192,12 +17171,12 @@ function createChatStreamReducer(options = {}) {
|
|
|
17192
17171
|
return stampTrailingAssistantSourceMetadata(stampTrailingAssistantSeq(next, seq));
|
|
17193
17172
|
}
|
|
17194
17173
|
function applySegmentsToState(segments, meta) {
|
|
17195
|
-
const seq = _optionalChain([meta, 'optionalAccess',
|
|
17196
|
-
if (_optionalChain([meta, 'optionalAccess',
|
|
17174
|
+
const seq = _optionalChain([meta, 'optionalAccess', _561 => _561.streamSeq]);
|
|
17175
|
+
if (_optionalChain([meta, 'optionalAccess', _562 => _562.append]) && meta.isCompacting) {
|
|
17197
17176
|
setMessagesInternal(commitTrailingAssistant(upsertTrailingCompaction(messages, segments), seq));
|
|
17198
17177
|
return;
|
|
17199
17178
|
}
|
|
17200
|
-
if (_optionalChain([meta, 'optionalAccess',
|
|
17179
|
+
if (_optionalChain([meta, 'optionalAccess', _563 => _563.append])) {
|
|
17201
17180
|
setMessagesInternal(commitTrailingAssistant(appendToTrailingAssistant(messages, segments), seq));
|
|
17202
17181
|
return;
|
|
17203
17182
|
}
|
|
@@ -17209,13 +17188,13 @@ function createChatStreamReducer(options = {}) {
|
|
|
17209
17188
|
adoptTrailingAssistant = false;
|
|
17210
17189
|
const last = messages[messages.length - 1];
|
|
17211
17190
|
if (!last || last.role !== "assistant" || adoptTail) return;
|
|
17212
|
-
const hasContent = (_nullishCoalesce(_optionalChain([last, 'access',
|
|
17191
|
+
const hasContent = (_nullishCoalesce(_optionalChain([last, 'access', _564 => _564.segments, 'optionalAccess', _565 => _565.length]), () => ( 0))) > 0 || last.content !== "";
|
|
17213
17192
|
if (!hasContent) return;
|
|
17214
17193
|
setMessagesInternal([...messages, { id: nextId("assistant"), role: "assistant", content: "", segments: [] }]);
|
|
17215
17194
|
}
|
|
17216
17195
|
function applyUserMessageToState(ev) {
|
|
17217
|
-
const
|
|
17218
|
-
if (!
|
|
17196
|
+
const text3 = ev.text;
|
|
17197
|
+
if (!text3) return;
|
|
17219
17198
|
const seq = ev.seq;
|
|
17220
17199
|
const adminEchoAllowed = ev.ownerType !== CHAT_OWNER_ADMIN || options.ownEchoIncludesAdmin === true;
|
|
17221
17200
|
const selfUserId = resolveSelfUserId();
|
|
@@ -17223,11 +17202,11 @@ function createChatStreamReducer(options = {}) {
|
|
|
17223
17202
|
if (selfUserId !== void 0 && !authorDeclared) warnIdLessAuthor();
|
|
17224
17203
|
const authorMatched = selfUserId !== void 0 && authorDeclared && ev.userId === selfUserId;
|
|
17225
17204
|
const authorEchoAllowed = selfUserId === void 0 || !authorDeclared || authorMatched;
|
|
17226
|
-
if (adminEchoAllowed && authorEchoAllowed && consumeOwnEcho(
|
|
17205
|
+
if (adminEchoAllowed && authorEchoAllowed && consumeOwnEcho(text3, authorMatched)) return;
|
|
17227
17206
|
const authorType = ev.ownerType === CHAT_OWNER_ADMIN ? "admin" : "user";
|
|
17228
17207
|
if (typeof seq !== "number" && hasRecentMessage(
|
|
17229
17208
|
messages,
|
|
17230
|
-
(m) => m.role === "user" && (_nullishCoalesce(m.authorType, () => ( "user"))) === authorType && m.content ===
|
|
17209
|
+
(m) => m.role === "user" && (_nullishCoalesce(m.authorType, () => ( "user"))) === authorType && m.content === text3,
|
|
17231
17210
|
CONTENT_DEDUP_WINDOW
|
|
17232
17211
|
)) {
|
|
17233
17212
|
return;
|
|
@@ -17237,7 +17216,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
17237
17216
|
{
|
|
17238
17217
|
id: nextId("user"),
|
|
17239
17218
|
role: "user",
|
|
17240
|
-
content:
|
|
17219
|
+
content: text3,
|
|
17241
17220
|
// Coverage signal for the history merge — see `streamSeq` on
|
|
17242
17221
|
// `UnifiedChatMessage`. For `user-` rows it is also what tells a
|
|
17243
17222
|
// REPLAYED echo (history already has its row) apart from a genuine new
|
|
@@ -17250,12 +17229,12 @@ function createChatStreamReducer(options = {}) {
|
|
|
17250
17229
|
]);
|
|
17251
17230
|
}
|
|
17252
17231
|
function applyDirectMessageToState(ev) {
|
|
17253
|
-
const
|
|
17254
|
-
if (!
|
|
17232
|
+
const text3 = ev.text;
|
|
17233
|
+
if (!text3) return;
|
|
17255
17234
|
const seq = ev.seq;
|
|
17256
17235
|
if (typeof seq !== "number" && hasRecentMessage(
|
|
17257
17236
|
messages,
|
|
17258
|
-
(m) => m.role === "user" && m.authorType === "admin" && m.content ===
|
|
17237
|
+
(m) => m.role === "user" && m.authorType === "admin" && m.content === text3,
|
|
17259
17238
|
CONTENT_DEDUP_WINDOW
|
|
17260
17239
|
)) {
|
|
17261
17240
|
return;
|
|
@@ -17265,7 +17244,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
17265
17244
|
{
|
|
17266
17245
|
id: `direct-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`,
|
|
17267
17246
|
role: "user",
|
|
17268
|
-
content:
|
|
17247
|
+
content: text3,
|
|
17269
17248
|
...typeof seq === "number" ? { streamSeq: seq } : {},
|
|
17270
17249
|
name: _nullishCoalesce(ev.displayName, () => ( "Admin")),
|
|
17271
17250
|
authorType: "admin"
|
|
@@ -17273,10 +17252,10 @@ function createChatStreamReducer(options = {}) {
|
|
|
17273
17252
|
]);
|
|
17274
17253
|
}
|
|
17275
17254
|
function applySystemMessageToState(ev) {
|
|
17276
|
-
const
|
|
17277
|
-
if (!
|
|
17255
|
+
const text3 = ev.text;
|
|
17256
|
+
if (!text3) return;
|
|
17278
17257
|
const seq = ev.seq;
|
|
17279
|
-
if (typeof seq !== "number" && hasRecentMessage(messages, (m) => m.authorType === "system" && m.name ===
|
|
17258
|
+
if (typeof seq !== "number" && hasRecentMessage(messages, (m) => m.authorType === "system" && m.name === text3, SYSTEM_DEDUP_WINDOW)) {
|
|
17280
17259
|
return;
|
|
17281
17260
|
}
|
|
17282
17261
|
setMessagesInternal([
|
|
@@ -17286,7 +17265,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
17286
17265
|
role: "user",
|
|
17287
17266
|
content: "",
|
|
17288
17267
|
...typeof seq === "number" ? { streamSeq: seq } : {},
|
|
17289
|
-
name:
|
|
17268
|
+
name: text3,
|
|
17290
17269
|
authorType: "system"
|
|
17291
17270
|
}
|
|
17292
17271
|
]);
|
|
@@ -17425,16 +17404,16 @@ function createChatStreamReducer(options = {}) {
|
|
|
17425
17404
|
const status = approvalStatuses[requestId] || "pending";
|
|
17426
17405
|
if (!displayInline(approvalType)) {
|
|
17427
17406
|
const required = _nullishCoalesce(toolCalls.find((c) => c.requiresApproval), () => ( toolCalls[0]));
|
|
17428
|
-
const summary = required ?
|
|
17407
|
+
const summary = required ? _chunkU767P4JUcjs.getCommandText.call(void 0, required) : `Batch of ${toolCalls.length} tool calls`;
|
|
17429
17408
|
pendingEscalated.set(requestId, {
|
|
17430
17409
|
command: summary,
|
|
17431
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
17410
|
+
explanation: _optionalChain([required, 'optionalAccess', _566 => _566.toolExplanation]),
|
|
17432
17411
|
approvalType,
|
|
17433
17412
|
toolCalls
|
|
17434
17413
|
});
|
|
17435
17414
|
emit("onEscalatedApproval", requestId, {
|
|
17436
17415
|
command: summary,
|
|
17437
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
17416
|
+
explanation: _optionalChain([required, 'optionalAccess', _567 => _567.toolExplanation]),
|
|
17438
17417
|
approvalType
|
|
17439
17418
|
});
|
|
17440
17419
|
break;
|
|
@@ -17458,7 +17437,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
17458
17437
|
if (!call.requiresApproval) continue;
|
|
17459
17438
|
segments = accumulator.addApprovalRequest(
|
|
17460
17439
|
requestId,
|
|
17461
|
-
|
|
17440
|
+
_chunkU767P4JUcjs.getCommandText.call(void 0, call),
|
|
17462
17441
|
call.toolExplanation,
|
|
17463
17442
|
approvalType,
|
|
17464
17443
|
status,
|
|
@@ -17537,7 +17516,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
17537
17516
|
if (!call.requiresApproval) continue;
|
|
17538
17517
|
segments = accumulator.addApprovalRequest(
|
|
17539
17518
|
requestId,
|
|
17540
|
-
|
|
17519
|
+
_chunkU767P4JUcjs.getCommandText.call(void 0, call),
|
|
17541
17520
|
call.toolExplanation,
|
|
17542
17521
|
escalatedData.approvalType,
|
|
17543
17522
|
status
|
|
@@ -17667,20 +17646,20 @@ function createChatStreamReducer(options = {}) {
|
|
|
17667
17646
|
break;
|
|
17668
17647
|
}
|
|
17669
17648
|
}
|
|
17670
|
-
function sseWriteTrailingText(
|
|
17649
|
+
function sseWriteTrailingText(text3) {
|
|
17671
17650
|
const last = messages[messages.length - 1];
|
|
17672
17651
|
if (!last || last.role !== "assistant") return;
|
|
17673
17652
|
const segments = [..._nullishCoalesce(last.segments, () => ( []))];
|
|
17674
17653
|
const tail = segments[segments.length - 1];
|
|
17675
17654
|
if (tail && tail.type === "text") {
|
|
17676
|
-
segments[segments.length - 1] = { type: "text", text:
|
|
17655
|
+
segments[segments.length - 1] = { type: "text", text: text3 };
|
|
17677
17656
|
} else {
|
|
17678
|
-
segments.push({ type: "text", text:
|
|
17657
|
+
segments.push({ type: "text", text: text3 });
|
|
17679
17658
|
}
|
|
17680
17659
|
setMessagesInternal([...messages.slice(0, -1), { ...last, segments }]);
|
|
17681
17660
|
}
|
|
17682
|
-
function sseAppendText(
|
|
17683
|
-
sseCurrentText +=
|
|
17661
|
+
function sseAppendText(text3) {
|
|
17662
|
+
sseCurrentText += text3;
|
|
17684
17663
|
sseWriteTrailingText(sseCurrentText);
|
|
17685
17664
|
}
|
|
17686
17665
|
function mergeTurnMeta(sendIdx, partial) {
|
|
@@ -17806,7 +17785,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
17806
17785
|
const resolveBatch = (status, confirm) => async () => {
|
|
17807
17786
|
setMessagesInternal(projectBatchStatusToMessages(messages, anchorId, status));
|
|
17808
17787
|
for (const id of ids) {
|
|
17809
|
-
const ok = await _optionalChain([confirm, 'optionalCall',
|
|
17788
|
+
const ok = await _optionalChain([confirm, 'optionalCall', _568 => _568(id)]);
|
|
17810
17789
|
if (ok === false) {
|
|
17811
17790
|
setMessagesInternal(projectBatchRowFailureToMessages(messages, id));
|
|
17812
17791
|
}
|
|
@@ -17944,8 +17923,8 @@ function createChatStreamReducer(options = {}) {
|
|
|
17944
17923
|
}
|
|
17945
17924
|
}
|
|
17946
17925
|
}
|
|
17947
|
-
hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess',
|
|
17948
|
-
if (_optionalChain([extras, 'optionalAccess',
|
|
17926
|
+
hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess', _569 => _569.resumed]), () => ( messages.length > 0)));
|
|
17927
|
+
if (_optionalChain([extras, 'optionalAccess', _570 => _570.agentBusy])) agentBusyState();
|
|
17949
17928
|
invalidate();
|
|
17950
17929
|
}
|
|
17951
17930
|
return {
|
|
@@ -17963,19 +17942,19 @@ function createChatStreamReducer(options = {}) {
|
|
|
17963
17942
|
messages = [...older, ...messages];
|
|
17964
17943
|
invalidate();
|
|
17965
17944
|
},
|
|
17966
|
-
pushOptimisticSend(
|
|
17967
|
-
pendingEchoTexts.push({ text:
|
|
17945
|
+
pushOptimisticSend(text3, hidden = false) {
|
|
17946
|
+
pendingEchoTexts.push({ text: text3, at: Date.now() });
|
|
17968
17947
|
if (pendingEchoTexts.length > MAX_PENDING_ECHOES) pendingEchoTexts.shift();
|
|
17969
17948
|
messages = [
|
|
17970
17949
|
...messages,
|
|
17971
17950
|
// An EMPTY-text send is out-of-band metadata (an approval decision),
|
|
17972
17951
|
// not something the user said — see `beginSseSend` for the full
|
|
17973
17952
|
// rationale. Never materialize a row for it.
|
|
17974
|
-
...
|
|
17953
|
+
...text3.length > 0 ? [
|
|
17975
17954
|
{
|
|
17976
17955
|
id: nextId("user"),
|
|
17977
17956
|
role: "user",
|
|
17978
|
-
content:
|
|
17957
|
+
content: text3,
|
|
17979
17958
|
...hidden ? { hidden: true } : {}
|
|
17980
17959
|
}
|
|
17981
17960
|
] : [],
|
|
@@ -17991,7 +17970,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
17991
17970
|
invalidate();
|
|
17992
17971
|
},
|
|
17993
17972
|
resetForDialogSwitch,
|
|
17994
|
-
beginSseSend({ text:
|
|
17973
|
+
beginSseSend({ text: text3, hidden, userName = "You", assistantName, assistantAvatar }) {
|
|
17995
17974
|
const now = Date.now();
|
|
17996
17975
|
messages = [
|
|
17997
17976
|
...messages,
|
|
@@ -18003,12 +17982,12 @@ function createChatStreamReducer(options = {}) {
|
|
|
18003
17982
|
// label with no body). So we never mint it. Hidden sends that DO carry
|
|
18004
17983
|
// text (e.g. an auto-continuation directive) still become real state:
|
|
18005
17984
|
// the LLM must see them, `Message.hidden` keeps them off screen.
|
|
18006
|
-
...
|
|
17985
|
+
...text3.length > 0 ? [
|
|
18007
17986
|
{
|
|
18008
17987
|
id: `user-${now}`,
|
|
18009
17988
|
role: "user",
|
|
18010
17989
|
name: userName,
|
|
18011
|
-
content:
|
|
17990
|
+
content: text3,
|
|
18012
17991
|
timestamp: new Date(now),
|
|
18013
17992
|
...hidden ? { hidden: true } : {}
|
|
18014
17993
|
}
|
|
@@ -18030,7 +18009,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
18030
18009
|
},
|
|
18031
18010
|
endSseTurn() {
|
|
18032
18011
|
const last = messages[messages.length - 1];
|
|
18033
|
-
if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access',
|
|
18012
|
+
if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access', _571 => _571.segments, 'optionalAccess', _572 => _572.length]), () => ( 0))) === 0 && last.content === "") {
|
|
18034
18013
|
messages = messages.slice(0, -1);
|
|
18035
18014
|
}
|
|
18036
18015
|
sseCurrentText = "";
|
|
@@ -18183,10 +18162,10 @@ function createChatDialogStore(options = {}) {
|
|
|
18183
18162
|
if (onEvict) {
|
|
18184
18163
|
const sep = key.indexOf(KEY_SEP);
|
|
18185
18164
|
onEvict(key.slice(0, sep), key.slice(sep + 1), {
|
|
18186
|
-
messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
18187
|
-
approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
18188
|
-
lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
18189
|
-
pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
18165
|
+
messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _573 => _573.state, 'access', _574 => _574.messages]), () => ( EMPTY_STATE.messages)),
|
|
18166
|
+
approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _575 => _575.state, 'access', _576 => _576.approvalStatuses]), () => ( EMPTY_STATE.approvalStatuses)),
|
|
18167
|
+
lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _577 => _577.getLastAppliedSeq, 'call', _578 => _578()]), () => ( Number.NEGATIVE_INFINITY)),
|
|
18168
|
+
pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _579 => _579.getPendingEchoes, 'call', _580 => _580()]), () => ( EMPTY_PENDING_ECHOES))
|
|
18190
18169
|
});
|
|
18191
18170
|
}
|
|
18192
18171
|
}
|
|
@@ -18196,12 +18175,12 @@ function createChatDialogStore(options = {}) {
|
|
|
18196
18175
|
const key = keyOf(dialogId, side);
|
|
18197
18176
|
let reducer = reducers.get(key);
|
|
18198
18177
|
if (!reducer) {
|
|
18199
|
-
const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall',
|
|
18178
|
+
const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall', _581 => _581(dialogId, side)]), () => ( {}));
|
|
18200
18179
|
const userOnChange = base.onChange;
|
|
18201
18180
|
reducer = createChatStreamReducer({
|
|
18202
18181
|
...base,
|
|
18203
18182
|
onChange: () => {
|
|
18204
|
-
_optionalChain([userOnChange, 'optionalCall',
|
|
18183
|
+
_optionalChain([userOnChange, 'optionalCall', _582 => _582()]);
|
|
18205
18184
|
notify();
|
|
18206
18185
|
}
|
|
18207
18186
|
});
|
|
@@ -18246,7 +18225,7 @@ function createChatDialogStore(options = {}) {
|
|
|
18246
18225
|
};
|
|
18247
18226
|
}
|
|
18248
18227
|
function getSnapshot2(dialogId, side = DEFAULT_DIALOG_SIDE) {
|
|
18249
|
-
return _nullishCoalesce(_optionalChain([reducers, 'access',
|
|
18228
|
+
return _nullishCoalesce(_optionalChain([reducers, 'access', _583 => _583.get, 'call', _584 => _584(keyOf(dialogId, side)), 'optionalAccess', _585 => _585.state]), () => ( EMPTY_STATE));
|
|
18250
18229
|
}
|
|
18251
18230
|
function getServerSnapshot2() {
|
|
18252
18231
|
return EMPTY_STATE;
|
|
@@ -18335,7 +18314,7 @@ function createDeltaBatcher({
|
|
|
18335
18314
|
pending = [];
|
|
18336
18315
|
const key = pendingKey;
|
|
18337
18316
|
for (const delta of batch) applyOne(delta, key);
|
|
18338
|
-
_optionalChain([onFlushed, 'optionalCall',
|
|
18317
|
+
_optionalChain([onFlushed, 'optionalCall', _586 => _586(batch.length)]);
|
|
18339
18318
|
}
|
|
18340
18319
|
function schedule() {
|
|
18341
18320
|
if (raf !== null || timer !== null) return;
|
|
@@ -18359,7 +18338,7 @@ function createDeltaBatcher({
|
|
|
18359
18338
|
}
|
|
18360
18339
|
if (!isDeltaEvent(event)) return false;
|
|
18361
18340
|
const tail = pending[pending.length - 1];
|
|
18362
|
-
const seqAdvances = _optionalChain([tail, 'optionalAccess',
|
|
18341
|
+
const seqAdvances = _optionalChain([tail, 'optionalAccess', _587 => _587.seq]) == null ? event.seq == null : event.seq != null && event.seq > tail.seq;
|
|
18363
18342
|
if (tail && seqAdvances && tail.type === event.type && (tail.type !== "text-delta" || tail.leading === event.leading)) {
|
|
18364
18343
|
pending[pending.length - 1] = {
|
|
18365
18344
|
...tail,
|
|
@@ -18391,7 +18370,7 @@ function useChatStreamReducer({
|
|
|
18391
18370
|
side = DEFAULT_DIALOG_SIDE,
|
|
18392
18371
|
createReducerOptions
|
|
18393
18372
|
}) {
|
|
18394
|
-
const reducer = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([createReducerOptions, 'optionalCall',
|
|
18373
|
+
const reducer = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([createReducerOptions, 'optionalCall', _588 => _588()]), () => ( {})));
|
|
18395
18374
|
const getSnapshot2 = _react.useCallback.call(void 0, () => store.getSnapshot(dialogId, side), [store, dialogId, side]);
|
|
18396
18375
|
const getServerSnapshot2 = _react.useCallback.call(void 0, () => store.getServerSnapshot(), [store]);
|
|
18397
18376
|
const subscribe2 = _react.useCallback.call(void 0, (listener) => store.subscribe(listener), [store]);
|
|
@@ -18436,7 +18415,7 @@ function buildConfirmToolBody(request) {
|
|
|
18436
18415
|
async function readServerErrorMessage(response) {
|
|
18437
18416
|
try {
|
|
18438
18417
|
const body = await response.json();
|
|
18439
|
-
if (typeof _optionalChain([body, 'optionalAccess',
|
|
18418
|
+
if (typeof _optionalChain([body, 'optionalAccess', _589 => _589.error]) === "string" && body.error.length > 0) return body.error;
|
|
18440
18419
|
} catch (e17) {
|
|
18441
18420
|
}
|
|
18442
18421
|
return null;
|
|
@@ -18599,7 +18578,7 @@ function useManagedDialogList({
|
|
|
18599
18578
|
try {
|
|
18600
18579
|
await deleteDialogCallback(id);
|
|
18601
18580
|
removeLocal(id);
|
|
18602
|
-
_optionalChain([onDialogRemovedRef, 'access',
|
|
18581
|
+
_optionalChain([onDialogRemovedRef, 'access', _590 => _590.current, 'optionalCall', _591 => _591(id, "deleted")]);
|
|
18603
18582
|
} catch (err) {
|
|
18604
18583
|
console.error(`${logTag} deleteDialog failed:`, err);
|
|
18605
18584
|
throw err;
|
|
@@ -18610,7 +18589,7 @@ function useManagedDialogList({
|
|
|
18610
18589
|
const renameDialog = _react.useCallback.call(void 0,
|
|
18611
18590
|
async (id, title) => {
|
|
18612
18591
|
if (!renameDialogCallback) return;
|
|
18613
|
-
const previous = _optionalChain([dialogsRef, 'access',
|
|
18592
|
+
const previous = _optionalChain([dialogsRef, 'access', _592 => _592.current, 'access', _593 => _593.find, 'call', _594 => _594((d) => d.id === id), 'optionalAccess', _595 => _595.title]);
|
|
18614
18593
|
setDialogs((prev) => prev.map((d) => d.id === id ? { ...d, title } : d));
|
|
18615
18594
|
try {
|
|
18616
18595
|
await renameDialogCallback(id, title);
|
|
@@ -18629,7 +18608,7 @@ function useManagedDialogList({
|
|
|
18629
18608
|
try {
|
|
18630
18609
|
await archiveDialogCallback(id);
|
|
18631
18610
|
removeLocal(id);
|
|
18632
|
-
_optionalChain([onDialogRemovedRef, 'access',
|
|
18611
|
+
_optionalChain([onDialogRemovedRef, 'access', _596 => _596.current, 'optionalCall', _597 => _597(id, "archived")]);
|
|
18633
18612
|
} catch (err) {
|
|
18634
18613
|
console.error(`${logTag} archiveDialog failed:`, err);
|
|
18635
18614
|
throw err;
|
|
@@ -18818,7 +18797,7 @@ var STORAGE_KEY = "conversation";
|
|
|
18818
18797
|
var namespaceFor = (source) => {
|
|
18819
18798
|
const base = `mingo-chat-${source}`;
|
|
18820
18799
|
const auth = _chunkGI3MMBP3cjs.getEmbedProxyAuth.call(void 0, );
|
|
18821
|
-
return _optionalChain([auth, 'optionalAccess',
|
|
18800
|
+
return _optionalChain([auth, 'optionalAccess', _598 => _598.email]) ? `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}` : base;
|
|
18822
18801
|
};
|
|
18823
18802
|
function createChatConversationStorage(source) {
|
|
18824
18803
|
return _chunkGI3MMBP3cjs.createLocalStorageAdapter.call(void 0, {
|
|
@@ -18891,7 +18870,7 @@ function useChatHistoryHydration({
|
|
|
18891
18870
|
if (cancelled) return;
|
|
18892
18871
|
if (rows.length === 0) {
|
|
18893
18872
|
const found = isRecord(body) ? body.found : void 0;
|
|
18894
|
-
if (found === false) _optionalChain([onOrphanedConversation, 'optionalCall',
|
|
18873
|
+
if (found === false) _optionalChain([onOrphanedConversation, 'optionalCall', _599 => _599(conversationId)]);
|
|
18895
18874
|
return;
|
|
18896
18875
|
}
|
|
18897
18876
|
const hydrated = [];
|
|
@@ -18968,7 +18947,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
18968
18947
|
const { active = true } = runtimeOptions;
|
|
18969
18948
|
const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
|
|
18970
18949
|
const source = runtime.source || DEFAULT_CHAT_SOURCE;
|
|
18971
|
-
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
18950
|
+
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _600 => _600.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
|
|
18972
18951
|
const sendMessageRef = _react.useRef.call(void 0,
|
|
18973
18952
|
() => Promise.resolve(true)
|
|
18974
18953
|
);
|
|
@@ -19004,7 +18983,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
19004
18983
|
if (!restoredConversationRef.current) {
|
|
19005
18984
|
restoredConversationRef.current = true;
|
|
19006
18985
|
pruneStaleChatConversationStorage(source);
|
|
19007
|
-
conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access',
|
|
18986
|
+
conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access', _601 => _601.load, 'call', _602 => _602(), 'optionalAccess', _603 => _603.conversationId]), () => ( null));
|
|
19008
18987
|
}
|
|
19009
18988
|
const [conversationId, setConversationId] = _react.useState.call(void 0, () => conversationIdRef.current);
|
|
19010
18989
|
const commitConversationId = _react.useCallback.call(void 0,
|
|
@@ -19095,7 +19074,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
19095
19074
|
const abortControllerRef = _react.useRef.call(void 0, null);
|
|
19096
19075
|
const switchConversation = _react.useCallback.call(void 0,
|
|
19097
19076
|
(id) => {
|
|
19098
|
-
_optionalChain([abortControllerRef, 'access',
|
|
19077
|
+
_optionalChain([abortControllerRef, 'access', _604 => _604.current, 'optionalAccess', _605 => _605.abort, 'call', _606 => _606()]);
|
|
19099
19078
|
flushDeltas();
|
|
19100
19079
|
mutate((r) => r.reset());
|
|
19101
19080
|
hydrationSendCountRef.current = 0;
|
|
@@ -19132,8 +19111,8 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
19132
19111
|
} = useManagedDialogList({
|
|
19133
19112
|
autoLoad: active,
|
|
19134
19113
|
fetchDialogs: fetchActiveDialogs,
|
|
19135
|
-
renameDialog: _optionalChain([conversationsApi, 'optionalAccess',
|
|
19136
|
-
archiveDialog: _optionalChain([conversationsApi, 'optionalAccess',
|
|
19114
|
+
renameDialog: _optionalChain([conversationsApi, 'optionalAccess', _607 => _607.renameDialog]),
|
|
19115
|
+
archiveDialog: _optionalChain([conversationsApi, 'optionalAccess', _608 => _608.archiveDialog]),
|
|
19137
19116
|
pageSize: CHAT_HISTORY_PAGE_SIZE,
|
|
19138
19117
|
search: conversationsApi ? dialogSearch : void 0,
|
|
19139
19118
|
logTag: "[useSseChatAdapter]",
|
|
@@ -19167,7 +19146,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
19167
19146
|
const sendMessage = _react.useCallback.call(void 0,
|
|
19168
19147
|
// Resolves `true` on a clean turn, `false` when the request failed
|
|
19169
19148
|
// (surfaced to batch approve-all loops via the card callbacks).
|
|
19170
|
-
async (
|
|
19149
|
+
async (text3, sendOptions) => {
|
|
19171
19150
|
const { hidden, attachments, commandOverride, approvalAction } = _nullishCoalesce(sendOptions, () => ( {}));
|
|
19172
19151
|
const echoedConversationId = conversationIdRef.current;
|
|
19173
19152
|
const targetPath = approvalAction ? endpointsRef.current.approvalToolUrl : endpointsRef.current.chatStreamUrl;
|
|
@@ -19178,12 +19157,12 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
19178
19157
|
// established conversation (the proposal turn captured the id).
|
|
19179
19158
|
buildConfirmToolBody({ ...approvalAction, conversationId: echoedConversationId })
|
|
19180
19159
|
) : {
|
|
19181
|
-
messages: [{ role: "user", content:
|
|
19160
|
+
messages: [{ role: "user", content: text3 }],
|
|
19182
19161
|
...commandOverride ? { commandOverride } : {},
|
|
19183
19162
|
...attachments && attachments.length > 0 ? { pendingAttachments: attachments } : {},
|
|
19184
19163
|
...echoedConversationId ? { conversationId: echoedConversationId } : {}
|
|
19185
19164
|
};
|
|
19186
|
-
mutate((r) => r.beginSseSend({ text:
|
|
19165
|
+
mutate((r) => r.beginSseSend({ text: text3, hidden, userName: "You", assistantName: "Mingo AI" }));
|
|
19187
19166
|
const ctrl = new AbortController();
|
|
19188
19167
|
abortControllerRef.current = ctrl;
|
|
19189
19168
|
let mintedThisTurn = false;
|
|
@@ -19197,7 +19176,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
19197
19176
|
const serverMessage = await readServerErrorMessage(response);
|
|
19198
19177
|
throw new Error(_nullishCoalesce(serverMessage, () => ( `Chat request failed: ${response.status}`)));
|
|
19199
19178
|
}
|
|
19200
|
-
const reader = _optionalChain([response, 'access',
|
|
19179
|
+
const reader = _optionalChain([response, 'access', _609 => _609.body, 'optionalAccess', _610 => _610.getReader, 'call', _611 => _611()]);
|
|
19201
19180
|
if (!reader) throw new Error("No response body");
|
|
19202
19181
|
const frameDecoder = createSseFrameDecoder();
|
|
19203
19182
|
let finished = false;
|
|
@@ -19226,7 +19205,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
19226
19205
|
}
|
|
19227
19206
|
return true;
|
|
19228
19207
|
} catch (err) {
|
|
19229
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
19208
|
+
if (_optionalChain([err, 'optionalAccess', _612 => _612.name]) === "AbortError" || ctrl.signal.aborted) {
|
|
19230
19209
|
return true;
|
|
19231
19210
|
}
|
|
19232
19211
|
flushDeltas();
|
|
@@ -19262,7 +19241,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
19262
19241
|
);
|
|
19263
19242
|
sendMessageRef.current = sendMessage;
|
|
19264
19243
|
const stopMessage = _react.useCallback.call(void 0, () => {
|
|
19265
|
-
_optionalChain([abortControllerRef, 'access',
|
|
19244
|
+
_optionalChain([abortControllerRef, 'access', _613 => _613.current, 'optionalAccess', _614 => _614.abort, 'call', _615 => _615()]);
|
|
19266
19245
|
flushDeltas();
|
|
19267
19246
|
mutate((r) => r.setPhase("idle"));
|
|
19268
19247
|
}, [mutate, flushDeltas]);
|
|
@@ -19298,7 +19277,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
19298
19277
|
let sendIdx = -1;
|
|
19299
19278
|
return state.messages.map((m) => {
|
|
19300
19279
|
const segments = m.segments;
|
|
19301
|
-
const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess',
|
|
19280
|
+
const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess', _616 => _616.filter, 'call', _617 => _617((s) => s.type === "text"), 'access', _618 => _618.map, 'call', _619 => _619((s) => s.text), 'access', _620 => _620.join, 'call', _621 => _621("")]), () => ( ""));
|
|
19302
19281
|
let sources2;
|
|
19303
19282
|
let scrollAnchor;
|
|
19304
19283
|
if (m.role === "user" && !m.hidden) {
|
|
@@ -19307,7 +19286,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
19307
19286
|
if (m.role === "assistant") {
|
|
19308
19287
|
const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
|
|
19309
19288
|
sources2 = sourcesMap.get(lookupIdx);
|
|
19310
|
-
scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access',
|
|
19289
|
+
scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access', _622 => _622.get, 'call', _623 => _623(lookupIdx), 'optionalAccess', _624 => _624.scrollAnchor]), () => ( void 0));
|
|
19311
19290
|
}
|
|
19312
19291
|
return {
|
|
19313
19292
|
id: m.id,
|
|
@@ -19334,11 +19313,11 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
19334
19313
|
);
|
|
19335
19314
|
return;
|
|
19336
19315
|
}
|
|
19337
|
-
const refSlug = typeof _optionalChain([reference, 'access',
|
|
19316
|
+
const refSlug = typeof _optionalChain([reference, 'access', _625 => _625.metadata, 'optionalAccess', _626 => _626.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
|
|
19338
19317
|
const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
|
|
19339
19318
|
const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
19340
|
-
const
|
|
19341
|
-
void sendMessage(
|
|
19319
|
+
const text3 = `/${cmdId} display "${escaped}"`;
|
|
19320
|
+
void sendMessage(text3);
|
|
19342
19321
|
},
|
|
19343
19322
|
[sendMessage, source, cmdIdByTableId, tableIdForDocumentType]
|
|
19344
19323
|
);
|
|
@@ -19380,18 +19359,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
19380
19359
|
/** True while the mount-time rebuild from the server transcript runs. */
|
|
19381
19360
|
isHydratingHistory,
|
|
19382
19361
|
/** Provider key for the lib's `<ModelDisplay>` icon. */
|
|
19383
|
-
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
19384
|
-
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
19385
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
19362
|
+
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _627 => _627.provider]), () => ( null)),
|
|
19363
|
+
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _628 => _628.modelLabel]), () => ( null)),
|
|
19364
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _629 => _629.contextWindowMaxTokens]), () => ( null)),
|
|
19386
19365
|
/** Input tokens (known after server's message_start frame; null until). */
|
|
19387
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
19366
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _630 => _630.inputTokens]), () => ( null)),
|
|
19388
19367
|
/** Output tokens (known only after server's trailing usage frame). */
|
|
19389
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
19368
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _631 => _631.outputTokens]), () => ( null)),
|
|
19390
19369
|
/** Cache hit % (read / total-input × 100). null during streaming. */
|
|
19391
|
-
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
19370
|
+
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _632 => _632.cacheHitRatePct]), () => ( null)),
|
|
19392
19371
|
/** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
|
|
19393
19372
|
* token counts). null until the trailing usage frame lands. */
|
|
19394
|
-
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
19373
|
+
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _633 => _633.breakdown]), () => ( null)),
|
|
19395
19374
|
// ─── Dialog management ───────────────────────────────────────────────
|
|
19396
19375
|
// With `chatConversationsUrl` the server transcript store IS the dialog
|
|
19397
19376
|
// list (shared `useManagedDialogList`); selecting a row re-hydrates through
|
|
@@ -19445,6 +19424,7 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
19445
19424
|
toolFunction: segment.data.toolFunction,
|
|
19446
19425
|
toolTitle: segment.data.toolTitle,
|
|
19447
19426
|
toolExplanation: segment.data.toolExplanation,
|
|
19427
|
+
...keptPolicyReview(segment.data.policyReview),
|
|
19448
19428
|
parameters: segment.data.parameters
|
|
19449
19429
|
});
|
|
19450
19430
|
hasIncompleteState = true;
|
|
@@ -19465,7 +19445,7 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
19465
19445
|
}
|
|
19466
19446
|
break;
|
|
19467
19447
|
case "approval_batch": {
|
|
19468
|
-
const allDone = !!segment.data.executions && segment.data.toolCalls.every((c) => _optionalChain([segment, 'access',
|
|
19448
|
+
const allDone = !!segment.data.executions && segment.data.toolCalls.every((c) => _optionalChain([segment, 'access', _634 => _634.data, 'access', _635 => _635.executions, 'optionalAccess', _636 => _636[c.toolExecutionRequestId], 'optionalAccess', _637 => _637.status]) === "done");
|
|
19469
19449
|
if (segment.status !== "rejected" && !allDone) {
|
|
19470
19450
|
hasIncompleteState = true;
|
|
19471
19451
|
}
|
|
@@ -19529,11 +19509,11 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
19529
19509
|
function extractIncompleteTailState(messages) {
|
|
19530
19510
|
if (!messages || messages.length === 0) return void 0;
|
|
19531
19511
|
let start = messages.length;
|
|
19532
|
-
while (start > 0 && _optionalChain([messages, 'access',
|
|
19512
|
+
while (start > 0 && _optionalChain([messages, 'access', _638 => _638[start - 1], 'optionalAccess', _639 => _639.role]) === "assistant") start -= 1;
|
|
19533
19513
|
if (start === messages.length) return void 0;
|
|
19534
19514
|
const segments = [];
|
|
19535
19515
|
for (let i = start; i < messages.length; i += 1) {
|
|
19536
|
-
const content = _optionalChain([messages, 'access',
|
|
19516
|
+
const content = _optionalChain([messages, 'access', _640 => _640[i], 'optionalAccess', _641 => _641.content]);
|
|
19537
19517
|
if (Array.isArray(content)) segments.push(...content);
|
|
19538
19518
|
}
|
|
19539
19519
|
if (segments.length === 0) return void 0;
|
|
@@ -19545,16 +19525,20 @@ function extractIncompleteTailState(messages) {
|
|
|
19545
19525
|
}
|
|
19546
19526
|
|
|
19547
19527
|
// src/components/chat/utils/process-historical-messages.ts
|
|
19528
|
+
function withNormalizedReview(call) {
|
|
19529
|
+
const { policyReview: raw2, ...rest } = call;
|
|
19530
|
+
return { ...rest, ...policyReviewField(raw2) };
|
|
19531
|
+
}
|
|
19548
19532
|
function getOwnerDisplayName(owner) {
|
|
19549
|
-
if (_optionalChain([owner, 'optionalAccess',
|
|
19533
|
+
if (_optionalChain([owner, 'optionalAccess', _642 => _642.type]) === _chunkEIACEY2Lcjs.OWNER_TYPE.ADMIN && owner.user) {
|
|
19550
19534
|
const { firstName, lastName } = owner.user;
|
|
19551
19535
|
const name = [firstName, lastName].filter(Boolean).join(" ");
|
|
19552
19536
|
if (name) return name;
|
|
19553
19537
|
}
|
|
19554
|
-
return _optionalChain([owner, 'optionalAccess',
|
|
19538
|
+
return _optionalChain([owner, 'optionalAccess', _643 => _643.type]) === _chunkEIACEY2Lcjs.OWNER_TYPE.ADMIN ? "Admin" : "You";
|
|
19555
19539
|
}
|
|
19556
19540
|
function getOwnerAvatar(owner) {
|
|
19557
|
-
return _nullishCoalesce(_optionalChain([owner, 'optionalAccess',
|
|
19541
|
+
return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _644 => _644.user, 'optionalAccess', _645 => _645.image, 'optionalAccess', _646 => _646.imageUrl]), () => ( void 0));
|
|
19558
19542
|
}
|
|
19559
19543
|
function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
|
|
19560
19544
|
messageDataArray.forEach((data) => {
|
|
@@ -19619,6 +19603,7 @@ function decodeHistoricalMessageData(data) {
|
|
|
19619
19603
|
// EXECUTING chunk only, so a history replay that drops it renders
|
|
19620
19604
|
// an empty tool card even though the live stream showed one.
|
|
19621
19605
|
toolExplanation: typeof data.toolExplanation === "string" ? data.toolExplanation : void 0,
|
|
19606
|
+
...policyReviewField(data.policyReview),
|
|
19622
19607
|
parameters: data.parameters,
|
|
19623
19608
|
toolExecutionRequestId: data.toolExecutionRequestId
|
|
19624
19609
|
}
|
|
@@ -19650,7 +19635,7 @@ function decodeHistoricalMessageData(data) {
|
|
|
19650
19635
|
approvalType: data.approvalType || "CLIENT",
|
|
19651
19636
|
command: data.command || "",
|
|
19652
19637
|
explanation: data.explanation,
|
|
19653
|
-
...Array.isArray(data.toolCalls) ? { toolCalls: data.toolCalls } : {}
|
|
19638
|
+
...Array.isArray(data.toolCalls) ? { toolCalls: data.toolCalls.map(withNormalizedReview) } : {}
|
|
19654
19639
|
};
|
|
19655
19640
|
}
|
|
19656
19641
|
return null;
|
|
@@ -19746,7 +19731,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
19746
19731
|
event.offerId,
|
|
19747
19732
|
event.text,
|
|
19748
19733
|
event.origin,
|
|
19749
|
-
_nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess',
|
|
19734
|
+
_nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess', _647 => _647[event.offerId]]), () => ( "pending"))
|
|
19750
19735
|
);
|
|
19751
19736
|
break;
|
|
19752
19737
|
case "ticket-escalated":
|
|
@@ -19780,7 +19765,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
19780
19765
|
);
|
|
19781
19766
|
break;
|
|
19782
19767
|
case "escalation-offer-resolved":
|
|
19783
|
-
_optionalChain([offerResolutions, 'optionalAccess',
|
|
19768
|
+
_optionalChain([offerResolutions, 'optionalAccess', _648 => _648.set, 'call', _649 => _649(event.offerId, {
|
|
19784
19769
|
status: event.status,
|
|
19785
19770
|
resolvedByName: event.resolvedByName
|
|
19786
19771
|
})]);
|
|
@@ -19814,7 +19799,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
19814
19799
|
if (!call.requiresApproval) continue;
|
|
19815
19800
|
accumulator.addApprovalRequest(
|
|
19816
19801
|
event.requestId,
|
|
19817
|
-
|
|
19802
|
+
_chunkU767P4JUcjs.getCommandText.call(void 0, call),
|
|
19818
19803
|
call.toolExplanation,
|
|
19819
19804
|
approvalType,
|
|
19820
19805
|
status,
|
|
@@ -19844,7 +19829,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
19844
19829
|
}
|
|
19845
19830
|
}
|
|
19846
19831
|
} else {
|
|
19847
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
19832
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _650 => _650.set, 'call', _651 => _651(event.requestId, {
|
|
19848
19833
|
command: event.command || "",
|
|
19849
19834
|
explanation: event.explanation,
|
|
19850
19835
|
approvalType,
|
|
@@ -19859,8 +19844,8 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
19859
19844
|
const existingStatus = approvalStatuses[requestId];
|
|
19860
19845
|
const status = existingStatus || event.status;
|
|
19861
19846
|
const resolvedByName = event.resolvedByName;
|
|
19862
|
-
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess',
|
|
19863
|
-
if (_optionalChain([escalatedData, 'optionalAccess',
|
|
19847
|
+
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _652 => _652.get, 'call', _653 => _653(requestId)]);
|
|
19848
|
+
if (_optionalChain([escalatedData, 'optionalAccess', _654 => _654.toolCalls]) && escalatedData.toolCalls.length > 0) {
|
|
19864
19849
|
if (batchApprovalsEnabled) {
|
|
19865
19850
|
accumulator.addApprovalBatch(
|
|
19866
19851
|
requestId,
|
|
@@ -19875,14 +19860,14 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
19875
19860
|
if (!call.requiresApproval) continue;
|
|
19876
19861
|
accumulator.addApprovalRequest(
|
|
19877
19862
|
requestId,
|
|
19878
|
-
|
|
19863
|
+
_chunkU767P4JUcjs.getCommandText.call(void 0, call),
|
|
19879
19864
|
call.toolExplanation,
|
|
19880
19865
|
escalatedData.approvalType,
|
|
19881
19866
|
status
|
|
19882
19867
|
);
|
|
19883
19868
|
}
|
|
19884
19869
|
}
|
|
19885
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
19870
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _655 => _655.delete, 'call', _656 => _656(requestId)]);
|
|
19886
19871
|
break;
|
|
19887
19872
|
}
|
|
19888
19873
|
if (escalatedData) {
|
|
@@ -19891,7 +19876,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
19891
19876
|
explanation: escalatedData.explanation,
|
|
19892
19877
|
approvalType: escalatedData.approvalType
|
|
19893
19878
|
});
|
|
19894
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
19879
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _657 => _657.delete, 'call', _658 => _658(requestId)]);
|
|
19895
19880
|
}
|
|
19896
19881
|
const before = accumulator.getSegments();
|
|
19897
19882
|
const after = accumulator.updateApprovalStatus(requestId, status, resolvedByName);
|
|
@@ -19983,14 +19968,14 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
19983
19968
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
19984
19969
|
return;
|
|
19985
19970
|
}
|
|
19986
|
-
const isUserMessage = _optionalChain([msg, 'access',
|
|
19971
|
+
const isUserMessage = _optionalChain([msg, 'access', _659 => _659.owner, 'optionalAccess', _660 => _660.type]) === _chunkEIACEY2Lcjs.OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _661 => _661.owner, 'optionalAccess', _662 => _662.type]) === _chunkEIACEY2Lcjs.OWNER_TYPE.ADMIN;
|
|
19987
19972
|
if (isUserMessage) {
|
|
19988
19973
|
flushAssistantMessage();
|
|
19989
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
19974
|
+
const userAuthorType = _optionalChain([msg, 'access', _663 => _663.owner, 'optionalAccess', _664 => _664.type]) === _chunkEIACEY2Lcjs.OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
19990
19975
|
messageDataArray.forEach((data) => {
|
|
19991
19976
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
19992
19977
|
const rawContext = data.contextItems;
|
|
19993
|
-
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess',
|
|
19978
|
+
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _665 => _665.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _666 => _666.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
|
|
19994
19979
|
processedMessages.push({
|
|
19995
19980
|
id: msg.id,
|
|
19996
19981
|
role: "user",
|
|
@@ -20037,7 +20022,7 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
20037
20022
|
});
|
|
20038
20023
|
const nextMsg = messages[index + 1];
|
|
20039
20024
|
const isLastMessage = index === messages.length - 1;
|
|
20040
|
-
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access',
|
|
20025
|
+
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _667 => _667.owner, 'optionalAccess', _668 => _668.type]) === _chunkEIACEY2Lcjs.OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _669 => _669.owner, 'optionalAccess', _670 => _670.type]) === _chunkEIACEY2Lcjs.OWNER_TYPE.ADMIN);
|
|
20041
20026
|
if (isLastMessage || nextIsFromUser) {
|
|
20042
20027
|
flushAssistantMessage();
|
|
20043
20028
|
}
|
|
@@ -20420,10 +20405,10 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
20420
20405
|
});
|
|
20421
20406
|
const connectionState = !active || !dialogId ? "connected" : connectedForDialog === dialogId ? "connected" : "connecting";
|
|
20422
20407
|
const sendMessage = _react.useCallback.call(void 0,
|
|
20423
|
-
async (
|
|
20424
|
-
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess',
|
|
20425
|
-
mutate((r) => r.pushOptimisticSend(
|
|
20426
|
-
await publishUserMessage(
|
|
20408
|
+
async (text3, sendOptions) => {
|
|
20409
|
+
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _671 => _671.hidden]), () => ( false));
|
|
20410
|
+
mutate((r) => r.pushOptimisticSend(text3, hidden));
|
|
20411
|
+
await publishUserMessage(text3, { hidden, dialogId });
|
|
20427
20412
|
},
|
|
20428
20413
|
[mutate, publishUserMessage, dialogId]
|
|
20429
20414
|
);
|
|
@@ -20514,11 +20499,11 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
20514
20499
|
// Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
|
|
20515
20500
|
// contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
|
|
20516
20501
|
// matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
|
|
20517
|
-
currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
20518
|
-
currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
20519
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
20520
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
20521
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
20502
|
+
currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _672 => _672.provider]), () => ( modelProvider)), () => ( null)),
|
|
20503
|
+
currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _673 => _673.modelLabel]), () => ( modelLabel)), () => ( null)),
|
|
20504
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _674 => _674.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _675 => _675.contextWindowMaxTokens]))), () => ( null)),
|
|
20505
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _676 => _676.inputTokensSize]), () => ( null)),
|
|
20506
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _677 => _677.outputTokensSize]), () => ( null)),
|
|
20522
20507
|
currentCacheHitRatePct: null,
|
|
20523
20508
|
currentUsageBreakdown: null,
|
|
20524
20509
|
// Dialog management
|
|
@@ -20632,7 +20617,7 @@ function useUnifiedChat(options) {
|
|
|
20632
20617
|
const stopMessage = _react.useCallback.call(void 0, () => activeStateRef.current.stopMessage(), []);
|
|
20633
20618
|
const clearMessages = _react.useCallback.call(void 0, () => activeStateRef.current.clearMessages(), []);
|
|
20634
20619
|
const sendMessage = _react.useCallback.call(void 0,
|
|
20635
|
-
(
|
|
20620
|
+
(text3, opts) => activeStateRef.current.sendMessage(text3, opts),
|
|
20636
20621
|
[]
|
|
20637
20622
|
);
|
|
20638
20623
|
const discussRef = _react.useCallback.call(void 0,
|
|
@@ -20640,7 +20625,7 @@ function useUnifiedChat(options) {
|
|
|
20640
20625
|
[]
|
|
20641
20626
|
);
|
|
20642
20627
|
const displayRefForward = _react.useCallback.call(void 0,
|
|
20643
|
-
(ref) => _optionalChain([activeStateRef, 'access',
|
|
20628
|
+
(ref) => _optionalChain([activeStateRef, 'access', _678 => _678.current, 'access', _679 => _679.displayRef, 'optionalCall', _680 => _680(ref)]),
|
|
20644
20629
|
[]
|
|
20645
20630
|
);
|
|
20646
20631
|
const displayRef = activeState.displayRef ? displayRefForward : void 0;
|
|
@@ -20650,7 +20635,7 @@ function useUnifiedChat(options) {
|
|
|
20650
20635
|
const renameDialog = _react.useCallback.call(void 0, (id, title) => activeStateRef.current.renameDialog(id, title), []);
|
|
20651
20636
|
const archiveDialog = _react.useCallback.call(void 0, (id) => activeStateRef.current.archiveDialog(id), []);
|
|
20652
20637
|
const loadMoreDialogs = _react.useCallback.call(void 0, () => activeStateRef.current.loadMoreDialogs(), []);
|
|
20653
|
-
const setDialogScope = _react.useCallback.call(void 0, (scope) => _optionalChain([activeStateRef, 'access',
|
|
20638
|
+
const setDialogScope = _react.useCallback.call(void 0, (scope) => _optionalChain([activeStateRef, 'access', _681 => _681.current, 'access', _682 => _682.setDialogScope, 'optionalCall', _683 => _683(scope)]), []);
|
|
20654
20639
|
const reloadDialogs = _react.useCallback.call(void 0, () => activeStateRef.current.reloadDialogs(), []);
|
|
20655
20640
|
const loadMoreMessages = _react.useCallback.call(void 0, () => activeStateRef.current.loadMoreMessages(), []);
|
|
20656
20641
|
const approveRequest = _react.useCallback.call(void 0, (requestId) => activeStateRef.current.approveRequest(requestId), []);
|
|
@@ -20803,7 +20788,7 @@ function PanelResizeHandle({
|
|
|
20803
20788
|
const handlePointerMove = (e) => {
|
|
20804
20789
|
const start = startRef.current;
|
|
20805
20790
|
if (!start) return;
|
|
20806
|
-
if (!onDrag && !_optionalChain([panelRef, 'optionalAccess',
|
|
20791
|
+
if (!onDrag && !_optionalChain([panelRef, 'optionalAccess', _684 => _684.current])) return;
|
|
20807
20792
|
const delta = isHorizontal ? e.clientX - start.x : e.clientY - start.y;
|
|
20808
20793
|
const next = clampSize(start.size + delta * direction);
|
|
20809
20794
|
dragSizeRef.current = next;
|
|
@@ -21179,6 +21164,4 @@ function PanelResizeHandle({
|
|
|
21179
21164
|
|
|
21180
21165
|
|
|
21181
21166
|
|
|
21182
|
-
|
|
21183
|
-
|
|
21184
|
-
exports.PanelResizeGrip = PanelResizeGrip; exports.PanelResizeHandle = PanelResizeHandle; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.TextHold = TextHold; exports.LayoutHold = LayoutHold; exports.AUTHORED_LINK_REL_TOKENS = AUTHORED_LINK_REL_TOKENS; exports.authoredRelTokens = authoredRelTokens; exports.isNofollowRel = isNofollowRel; exports.renderedLinkRel = renderedLinkRel; exports.findMarkdownLinkAt = findMarkdownLinkAt; exports.formatMarkdownLink = formatMarkdownLink; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.useIsHydrated = useIsHydrated; exports.MermaidDiagram = MermaidDiagram; exports.MARKDOWN_H1_CLASS = MARKDOWN_H1_CLASS; exports.MARKDOWN_H2_CLASS = MARKDOWN_H2_CLASS; exports.MARKDOWN_PARAGRAPH_CLASS = MARKDOWN_PARAGRAPH_CLASS; exports.hasRenderableSrc = hasRenderableSrc; exports.buildStandardLeafRenderers = buildStandardLeafRenderers; exports.SAFE_HTML_TAGS = SAFE_HTML_TAGS; exports.SVG_TAGS = SVG_TAGS; exports.buildEffectiveTagSet = buildEffectiveTagSet; exports.buildSanitizeSchema = buildSanitizeSchema; exports.rehypeStripUnsafe = rehypeStripUnsafe; exports.escapeUnknownHtmlTags = escapeUnknownHtmlTags; exports.cardAwareUrlTransform = cardAwareUrlTransform; exports.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.NO_BROKEN_LINKS = NO_BROKEN_LINKS; exports.MARKDOWN_SKELETON_LINES = MARKDOWN_SKELETON_LINES; exports.MarkdownEngine = MarkdownEngine; exports.MarkdownEngineSkeleton = MarkdownEngineSkeleton; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ASK_AI_OPEN_EVENT = ASK_AI_OPEN_EVENT; exports.ASK_AI_OPEN_WITH_REF_EVENT = ASK_AI_OPEN_WITH_REF_EVENT; exports.ASK_AI_OPEN_EVENTS = ASK_AI_OPEN_EVENTS; exports.holdAskAiOpens = holdAskAiOpens; exports.askAiOpenIsHeld = askAiOpenIsHeld; exports.chatListensForAskAiOpens = chatListensForAskAiOpens; exports.ASK_AI_TRIGGER_ATTRIBUTE = ASK_AI_TRIGGER_ATTRIBUTE; exports.onAskAiIntent = onAskAiIntent; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.AiAssistantInfo = AiAssistantInfo; exports.TicketEscalatedMessage = TicketEscalatedMessage; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.TICKET_EVENT_KIND = TICKET_EVENT_KIND; exports.TicketEventMessage = TicketEventMessage; exports.SystemEventMessage = SystemEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.extractCardReferences = extractCardReferences; exports.ThinkingDisplay = ThinkingDisplay; exports.AskDisplay = AskDisplay; exports.ChatPanelContext = ChatPanelContext; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.isQuickActionIconSpec = isQuickActionIconSpec; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipButton = QuickActionChipButton; exports.QuickActionChipFromData = QuickActionChipFromData; exports.SuggestionsDisplay = SuggestionsDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.LoadingFallback = LoadingFallback; exports.LoadingSuspense = LoadingSuspense; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_BAR_CLASS = CONTEXT_BACK_BAR_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.InlineChip = InlineChip; exports.BlockCard = BlockCard; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.citedSourceNumbers = citedSourceNumbers; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.CHAT_MESSAGE_LIST_SKELETON_MESSAGES = CHAT_MESSAGE_LIST_SKELETON_MESSAGES; exports.ChatMessageList = ChatMessageList; exports.designDocStatusDisplay = designDocStatusDisplay; exports.formatCompletionLabel = formatCompletionLabel; exports.formatCompletionLabelWithBlockers = formatCompletionLabelWithBlockers; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.DOC_TABLE_TYPES = DOC_TABLE_TYPES; exports.groupsByTable = groupsByTable; exports.recordCountLabel = recordCountLabel; exports.buildGroupedSource = buildGroupedSource; exports.groupSourcesByTable = groupSourcesByTable; exports.formatCitationIndices = formatCitationIndices; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.clickupTaskUrl = clickupTaskUrl; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.MingoEdgeLight = MingoEdgeLight; exports.useMarqueeSync = useMarqueeSync; exports.getMarqueeTrackOffset = getMarqueeTrackOffset; exports.getMarqueeAppliedOffset = getMarqueeAppliedOffset; exports.getMarqueeCloneTwin = getMarqueeCloneTwin; exports.MarqueeWallFades = MarqueeWallFades; exports.MarqueeWall = MarqueeWall; exports.WALL_SKELETON_LABEL_CH = WALL_SKELETON_LABEL_CH; exports.interleave = interleave; exports.QuickActionWall = QuickActionWall; exports.PageTopicLabel = PageTopicLabel; exports.QUICK_ACTION_SET_SLOTS = QUICK_ACTION_SET_SLOTS; exports.QuickActionSet = QuickActionSet; exports.MingoQuickActionWall = MingoQuickActionWall; exports.chatDialogMenuItems = chatDialogMenuItems; exports.ChatListEmptyState = ChatListEmptyState; exports.chatDayLabel = chatDayLabel; exports.ChatListLoadError = ChatListLoadError; exports.CHAT_HISTORY_PAGE_SIZE = CHAT_HISTORY_PAGE_SIZE; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.GuideModeBanner = GuideModeBanner; exports.MingoArchiveList = MingoArchiveList; exports.MingoChatHeader = MingoChatHeader; exports.ChatHeaderSearchField = ChatHeaderSearchField; exports.SearchInput = SearchInput; exports.MingoChatSearchModal = MingoChatSearchModal; exports.MingoChatRail = MingoChatRail; exports.TabSelector = TabSelector; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.ChatContextMemoryBar = ChatContextMemoryBar; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.useNavLinkViaRuntime = useNavLinkViaRuntime; exports.useNavigateViaRuntime = useNavigateViaRuntime; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.getCaptionsUrl = getCaptionsUrl; exports.rebaseCaptionsUrl = rebaseCaptionsUrl; exports.buildCaptionsUrl = buildCaptionsUrl; exports.getEntityCaptionUrls = getEntityCaptionUrls; exports.getEntityCaptionUrlsById = getEntityCaptionUrlsById; exports.captionsEntityTypeForDocType = captionsEntityTypeForDocType; exports.useCaptions = useCaptions; exports.UserDisplay = UserDisplay; exports.CardHitLayer = CardHitLayer; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VIDEO_BITES_CARD_HEIGHT_DESKTOP_PX = VIDEO_BITES_CARD_HEIGHT_DESKTOP_PX; exports.VIDEO_BITES_CARD_HEIGHT_MOBILE_PX = VIDEO_BITES_CARD_HEIGHT_MOBILE_PX; exports.STRIP_LINE_MAX_PX = STRIP_LINE_MAX_PX; exports.VIDEO_BITES_SKELETON_COUNT = VIDEO_BITES_SKELETON_COUNT; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.CHAT_CARD_DISCLOSURE = CHAT_CARD_DISCLOSURE; exports.CHAT_CARD_DISCLOSURES = CHAT_CARD_DISCLOSURES; exports.chatCardDisclosureOf = chatCardDisclosureOf; exports.ChatCardDisclosureButton = ChatCardDisclosureButton; exports.useChatCardDisclosure = useChatCardDisclosure; exports.ChatCardDisclosureRow = ChatCardDisclosureRow; exports.designDocPeople = designDocPeople; exports.designDocMetaLine = designDocMetaLine; exports.DesignDocCard = DesignDocCard; exports.GitHubActivityCard = GitHubActivityCard; exports.getVendorLogo = getVendorLogo; exports.VendorIcon = VendorIcon; exports.useChatCardItem = useChatCardItem; exports.MingoInfoCardActionProvider = MingoInfoCardActionProvider; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.sourceRowCtxFromRuntime = sourceRowCtxFromRuntime; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.chatCardLabel = chatCardLabel; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.EMPTY_DIALOG_CAPABILITIES = EMPTY_DIALOG_CAPABILITIES; exports.useChunkCatchup = useChunkCatchup; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.emptyStateUrlForTopic = emptyStateUrlForTopic; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useWhatToAsk = useWhatToAsk; exports.awaitsDecision = awaitsDecision; exports.mergeByTime = mergeByTime; exports.approvalDisplaysInline = approvalDisplaysInline; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.createEmptyTurnMeta = createEmptyTurnMeta; exports.createChatStreamReducer = createChatStreamReducer; exports.DEFAULT_DIALOG_SIDE = DEFAULT_DIALOG_SIDE; exports.DEFAULT_MAX_REDUCERS = DEFAULT_MAX_REDUCERS; exports.MAX_PENDING_RETAIN_KEYS = MAX_PENDING_RETAIN_KEYS; exports.createChatDialogStore = createChatDialogStore; exports.createDeltaBatcher = createDeltaBatcher; exports.useChatStreamReducer = useChatStreamReducer; exports.createChatConversationsApi = createChatConversationsApi; exports.buildDiscussPrompt = buildDiscussPrompt; exports.useManagedDialogList = useManagedDialogList; exports.useSseChatAdapter = useSseChatAdapter; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useStableShallow = useStableShallow; exports.useUnifiedChat = useUnifiedChat; exports.chatChipClass = chatChipClass; exports.MINGO_V2_RAIL_WIDTH = MINGO_V2_RAIL_WIDTH; exports.CHAT_BLOCK_MIN_WIDTH = CHAT_BLOCK_MIN_WIDTH; exports.MINGO_V2_SPLIT_WIDTH = MINGO_V2_SPLIT_WIDTH;
|
|
21167
|
+
exports.PanelResizeGrip = PanelResizeGrip; exports.PanelResizeHandle = PanelResizeHandle; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.AUTHORED_LINK_REL_TOKENS = AUTHORED_LINK_REL_TOKENS; exports.authoredRelTokens = authoredRelTokens; exports.isNofollowRel = isNofollowRel; exports.renderedLinkRel = renderedLinkRel; exports.findMarkdownLinkAt = findMarkdownLinkAt; exports.formatMarkdownLink = formatMarkdownLink; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.useIsHydrated = useIsHydrated; exports.MermaidDiagram = MermaidDiagram; exports.MARKDOWN_H1_CLASS = MARKDOWN_H1_CLASS; exports.MARKDOWN_H2_CLASS = MARKDOWN_H2_CLASS; exports.MARKDOWN_PARAGRAPH_CLASS = MARKDOWN_PARAGRAPH_CLASS; exports.hasRenderableSrc = hasRenderableSrc; exports.buildStandardLeafRenderers = buildStandardLeafRenderers; exports.SAFE_HTML_TAGS = SAFE_HTML_TAGS; exports.SVG_TAGS = SVG_TAGS; exports.buildEffectiveTagSet = buildEffectiveTagSet; exports.buildSanitizeSchema = buildSanitizeSchema; exports.rehypeStripUnsafe = rehypeStripUnsafe; exports.escapeUnknownHtmlTags = escapeUnknownHtmlTags; exports.cardAwareUrlTransform = cardAwareUrlTransform; exports.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.NO_BROKEN_LINKS = NO_BROKEN_LINKS; exports.MARKDOWN_SKELETON_LINES = MARKDOWN_SKELETON_LINES; exports.MarkdownEngine = MarkdownEngine; exports.MarkdownEngineSkeleton = MarkdownEngineSkeleton; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ASK_AI_OPEN_EVENT = ASK_AI_OPEN_EVENT; exports.ASK_AI_OPEN_WITH_REF_EVENT = ASK_AI_OPEN_WITH_REF_EVENT; exports.ASK_AI_OPEN_EVENTS = ASK_AI_OPEN_EVENTS; exports.holdAskAiOpens = holdAskAiOpens; exports.askAiOpenIsHeld = askAiOpenIsHeld; exports.chatListensForAskAiOpens = chatListensForAskAiOpens; exports.ASK_AI_TRIGGER_ATTRIBUTE = ASK_AI_TRIGGER_ATTRIBUTE; exports.onAskAiIntent = onAskAiIntent; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.AiAssistantInfo = AiAssistantInfo; exports.TicketEscalatedMessage = TicketEscalatedMessage; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.TICKET_EVENT_KIND = TICKET_EVENT_KIND; exports.TicketEventMessage = TicketEventMessage; exports.SystemEventMessage = SystemEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.policyReviewField = policyReviewField; exports.extractCardReferences = extractCardReferences; exports.ThinkingDisplay = ThinkingDisplay; exports.AskDisplay = AskDisplay; exports.ChatPanelContext = ChatPanelContext; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.isQuickActionIconSpec = isQuickActionIconSpec; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipButton = QuickActionChipButton; exports.QuickActionChipFromData = QuickActionChipFromData; exports.SuggestionsDisplay = SuggestionsDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.LoadingFallback = LoadingFallback; exports.LoadingSuspense = LoadingSuspense; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_BAR_CLASS = CONTEXT_BACK_BAR_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.InlineChip = InlineChip; exports.BlockCard = BlockCard; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.citedSourceNumbers = citedSourceNumbers; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.CHAT_MESSAGE_LIST_SKELETON_MESSAGES = CHAT_MESSAGE_LIST_SKELETON_MESSAGES; exports.ChatMessageList = ChatMessageList; exports.designDocStatusDisplay = designDocStatusDisplay; exports.formatCompletionLabel = formatCompletionLabel; exports.formatCompletionLabelWithBlockers = formatCompletionLabelWithBlockers; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.DOC_TABLE_TYPES = DOC_TABLE_TYPES; exports.groupsByTable = groupsByTable; exports.recordCountLabel = recordCountLabel; exports.buildGroupedSource = buildGroupedSource; exports.groupSourcesByTable = groupSourcesByTable; exports.formatCitationIndices = formatCitationIndices; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.clickupTaskUrl = clickupTaskUrl; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.MingoEdgeLight = MingoEdgeLight; exports.useMarqueeSync = useMarqueeSync; exports.getMarqueeTrackOffset = getMarqueeTrackOffset; exports.getMarqueeAppliedOffset = getMarqueeAppliedOffset; exports.getMarqueeCloneTwin = getMarqueeCloneTwin; exports.MarqueeWallFades = MarqueeWallFades; exports.MarqueeWall = MarqueeWall; exports.WALL_SKELETON_LABEL_CH = WALL_SKELETON_LABEL_CH; exports.interleave = interleave; exports.QuickActionWall = QuickActionWall; exports.PageTopicLabel = PageTopicLabel; exports.QUICK_ACTION_SET_SLOTS = QUICK_ACTION_SET_SLOTS; exports.QuickActionSet = QuickActionSet; exports.MingoQuickActionWall = MingoQuickActionWall; exports.chatDialogMenuItems = chatDialogMenuItems; exports.ChatListEmptyState = ChatListEmptyState; exports.chatDayLabel = chatDayLabel; exports.ChatListLoadError = ChatListLoadError; exports.CHAT_HISTORY_PAGE_SIZE = CHAT_HISTORY_PAGE_SIZE; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.GuideModeBanner = GuideModeBanner; exports.MingoArchiveList = MingoArchiveList; exports.MingoChatHeader = MingoChatHeader; exports.ChatHeaderSearchField = ChatHeaderSearchField; exports.SearchInput = SearchInput; exports.MingoChatSearchModal = MingoChatSearchModal; exports.MingoChatRail = MingoChatRail; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.ChatContextMemoryBar = ChatContextMemoryBar; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.useNavLinkViaRuntime = useNavLinkViaRuntime; exports.useNavigateViaRuntime = useNavigateViaRuntime; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.getCaptionsUrl = getCaptionsUrl; exports.rebaseCaptionsUrl = rebaseCaptionsUrl; exports.buildCaptionsUrl = buildCaptionsUrl; exports.getEntityCaptionUrls = getEntityCaptionUrls; exports.getEntityCaptionUrlsById = getEntityCaptionUrlsById; exports.captionsEntityTypeForDocType = captionsEntityTypeForDocType; exports.useCaptions = useCaptions; exports.UserDisplay = UserDisplay; exports.CardHitLayer = CardHitLayer; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VIDEO_BITES_CARD_HEIGHT_DESKTOP_PX = VIDEO_BITES_CARD_HEIGHT_DESKTOP_PX; exports.VIDEO_BITES_CARD_HEIGHT_MOBILE_PX = VIDEO_BITES_CARD_HEIGHT_MOBILE_PX; exports.STRIP_LINE_MAX_PX = STRIP_LINE_MAX_PX; exports.VIDEO_BITES_SKELETON_COUNT = VIDEO_BITES_SKELETON_COUNT; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.CHAT_CARD_DISCLOSURE = CHAT_CARD_DISCLOSURE; exports.CHAT_CARD_DISCLOSURES = CHAT_CARD_DISCLOSURES; exports.chatCardDisclosureOf = chatCardDisclosureOf; exports.ChatCardDisclosureButton = ChatCardDisclosureButton; exports.useChatCardDisclosure = useChatCardDisclosure; exports.ChatCardDisclosureRow = ChatCardDisclosureRow; exports.designDocPeople = designDocPeople; exports.designDocMetaLine = designDocMetaLine; exports.DesignDocCard = DesignDocCard; exports.GitHubActivityCard = GitHubActivityCard; exports.getVendorLogo = getVendorLogo; exports.VendorIcon = VendorIcon; exports.useChatCardItem = useChatCardItem; exports.MingoInfoCardActionProvider = MingoInfoCardActionProvider; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.sourceRowCtxFromRuntime = sourceRowCtxFromRuntime; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.chatCardLabel = chatCardLabel; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.EMPTY_DIALOG_CAPABILITIES = EMPTY_DIALOG_CAPABILITIES; exports.useChunkCatchup = useChunkCatchup; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.emptyStateUrlForTopic = emptyStateUrlForTopic; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useWhatToAsk = useWhatToAsk; exports.awaitsDecision = awaitsDecision; exports.mergeByTime = mergeByTime; exports.approvalDisplaysInline = approvalDisplaysInline; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.createEmptyTurnMeta = createEmptyTurnMeta; exports.createChatStreamReducer = createChatStreamReducer; exports.DEFAULT_DIALOG_SIDE = DEFAULT_DIALOG_SIDE; exports.DEFAULT_MAX_REDUCERS = DEFAULT_MAX_REDUCERS; exports.MAX_PENDING_RETAIN_KEYS = MAX_PENDING_RETAIN_KEYS; exports.createChatDialogStore = createChatDialogStore; exports.createDeltaBatcher = createDeltaBatcher; exports.useChatStreamReducer = useChatStreamReducer; exports.createChatConversationsApi = createChatConversationsApi; exports.buildDiscussPrompt = buildDiscussPrompt; exports.useManagedDialogList = useManagedDialogList; exports.useSseChatAdapter = useSseChatAdapter; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useStableShallow = useStableShallow; exports.useUnifiedChat = useUnifiedChat; exports.chatChipClass = chatChipClass; exports.MINGO_V2_RAIL_WIDTH = MINGO_V2_RAIL_WIDTH; exports.CHAT_BLOCK_MIN_WIDTH = CHAT_BLOCK_MIN_WIDTH; exports.MINGO_V2_SPLIT_WIDTH = MINGO_V2_SPLIT_WIDTH;
|