@flamingo-stack/openframe-frontend-core 0.0.511 → 0.0.512-1640.4207.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-PXQQFRUD.cjs → chunk-24FYTTPB.cjs} +5 -5
- package/dist/{chunk-PXQQFRUD.cjs.map → chunk-24FYTTPB.cjs.map} +1 -1
- package/dist/{chunk-NNWSGOUP.js → chunk-2SSVGMTE.js} +2 -2
- package/dist/{chunk-ZBQV7WH7.js → chunk-3KAZSJ2I.js} +2 -2
- package/dist/{chunk-A5YZUV6B.cjs → chunk-44ML4VMJ.cjs} +11 -11
- package/dist/{chunk-A5YZUV6B.cjs.map → chunk-44ML4VMJ.cjs.map} +1 -1
- package/dist/{chunk-C4EUXZSA.cjs → chunk-4NML2ZGN.cjs} +3 -3
- package/dist/{chunk-C4EUXZSA.cjs.map → chunk-4NML2ZGN.cjs.map} +1 -1
- package/dist/{chunk-TR7AMHGB.js → chunk-5MC7ZKRX.js} +6 -6
- package/dist/{chunk-LEWQRAZ4.cjs → chunk-6I36GENY.cjs} +31 -31
- package/dist/{chunk-LEWQRAZ4.cjs.map → chunk-6I36GENY.cjs.map} +1 -1
- package/dist/{chunk-OMN7A6RP.cjs → chunk-AF2PYDNF.cjs} +26 -26
- package/dist/{chunk-OMN7A6RP.cjs.map → chunk-AF2PYDNF.cjs.map} +1 -1
- package/dist/{chunk-2CE725NN.cjs → chunk-B2PCKLRF.cjs} +13 -13
- package/dist/{chunk-2CE725NN.cjs.map → chunk-B2PCKLRF.cjs.map} +1 -1
- package/dist/{chunk-U4WPFX5K.cjs → chunk-BQFMSIXM.cjs} +26 -26
- package/dist/{chunk-U4WPFX5K.cjs.map → chunk-BQFMSIXM.cjs.map} +1 -1
- package/dist/{chunk-7YV67K3I.cjs → chunk-CS2MLJXE.cjs} +87 -87
- package/dist/{chunk-7YV67K3I.cjs.map → chunk-CS2MLJXE.cjs.map} +1 -1
- package/dist/{chunk-IUZMWMVX.cjs → chunk-DON2EEFT.cjs} +61 -61
- package/dist/{chunk-IUZMWMVX.cjs.map → chunk-DON2EEFT.cjs.map} +1 -1
- package/dist/{chunk-4SG55XVA.cjs → chunk-DZR4XHZH.cjs} +4 -4
- package/dist/{chunk-4SG55XVA.cjs.map → chunk-DZR4XHZH.cjs.map} +1 -1
- package/dist/{chunk-JXMNLH7F.js → chunk-EFTTERZ5.js} +2 -2
- package/dist/{chunk-DPLXHG7H.cjs → chunk-HKRLXUU6.cjs} +37 -37
- package/dist/{chunk-DPLXHG7H.cjs.map → chunk-HKRLXUU6.cjs.map} +1 -1
- package/dist/{chunk-PRMR6WKC.js → chunk-IG3PRDHZ.js} +2 -2
- package/dist/{chunk-IXCBVJRU.cjs → chunk-K6E2VQ4W.cjs} +9 -9
- package/dist/{chunk-IXCBVJRU.cjs.map → chunk-K6E2VQ4W.cjs.map} +1 -1
- package/dist/{chunk-GHXTF35X.cjs → chunk-LCWCUFJJ.cjs} +256 -144
- package/dist/chunk-LCWCUFJJ.cjs.map +1 -0
- package/dist/{chunk-RXFBW2EJ.cjs → chunk-O37MV2JA.cjs} +7 -7
- package/dist/{chunk-RXFBW2EJ.cjs.map → chunk-O37MV2JA.cjs.map} +1 -1
- package/dist/{chunk-TNZOUHHN.js → chunk-OY6M4LX4.js} +4 -4
- package/dist/{chunk-NKA3O4L6.js → chunk-P5KFFOLJ.js} +2 -2
- package/dist/{chunk-X7AJ3J42.js → chunk-SQJXVADG.js} +123 -11
- package/dist/{chunk-X7AJ3J42.js.map → chunk-SQJXVADG.js.map} +1 -1
- package/dist/{chunk-YGS7BLSN.js → chunk-UGOCHX36.js} +2 -2
- package/dist/{chunk-RU3SCECX.js → chunk-UGR7V2ZG.js} +2 -2
- package/dist/{chunk-J4VB4EHW.js → chunk-W2HEWV34.js} +4 -4
- package/dist/{chunk-ZSIEM7CL.js → chunk-XE3OSQNH.js} +2 -2
- package/dist/{chunk-TYVHM67X.js → chunk-XRGYYEIX.js} +5 -5
- package/dist/{chunk-LVAJK2U2.js → chunk-YNBRXJWC.js} +2 -2
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/hooks/use-chat.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/help-center-pages/index.cjs +22 -22
- package/dist/components/help-center-pages/index.js +13 -13
- package/dist/components/index.cjs +132 -132
- package/dist/components/index.js +11 -11
- package/dist/components/meeting-scheduler/index.cjs +34 -34
- package/dist/components/meeting-scheduler/index.js +3 -3
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +6 -6
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/components/chat/hooks/use-chat.ts +174 -15
- package/dist/chunk-GHXTF35X.cjs.map +0 -1
- /package/dist/{chunk-NNWSGOUP.js.map → chunk-2SSVGMTE.js.map} +0 -0
- /package/dist/{chunk-ZBQV7WH7.js.map → chunk-3KAZSJ2I.js.map} +0 -0
- /package/dist/{chunk-TR7AMHGB.js.map → chunk-5MC7ZKRX.js.map} +0 -0
- /package/dist/{chunk-JXMNLH7F.js.map → chunk-EFTTERZ5.js.map} +0 -0
- /package/dist/{chunk-PRMR6WKC.js.map → chunk-IG3PRDHZ.js.map} +0 -0
- /package/dist/{chunk-TNZOUHHN.js.map → chunk-OY6M4LX4.js.map} +0 -0
- /package/dist/{chunk-NKA3O4L6.js.map → chunk-P5KFFOLJ.js.map} +0 -0
- /package/dist/{chunk-YGS7BLSN.js.map → chunk-UGOCHX36.js.map} +0 -0
- /package/dist/{chunk-RU3SCECX.js.map → chunk-UGR7V2ZG.js.map} +0 -0
- /package/dist/{chunk-J4VB4EHW.js.map → chunk-W2HEWV34.js.map} +0 -0
- /package/dist/{chunk-ZSIEM7CL.js.map → chunk-XE3OSQNH.js.map} +0 -0
- /package/dist/{chunk-TYVHM67X.js.map → chunk-XRGYYEIX.js.map} +0 -0
- /package/dist/{chunk-LVAJK2U2.js.map → chunk-YNBRXJWC.js.map} +0 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkLCWCUFJJcjs = require('./chunk-LCWCUFJJ.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
@@ -25,7 +25,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
|
|
|
25
25
|
] });
|
|
26
26
|
}
|
|
27
27
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28
|
-
|
|
28
|
+
_chunkLCWCUFJJcjs.EmbedViewerFrame,
|
|
29
29
|
{
|
|
30
30
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.AdobePdfIcon, { className: "w-5 h-5 shrink-0" }),
|
|
31
31
|
title: displayName,
|
|
@@ -75,7 +75,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
|
|
|
75
75
|
] });
|
|
76
76
|
}
|
|
77
77
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
78
|
-
|
|
78
|
+
_chunkLCWCUFJJcjs.EmbedViewerFrame,
|
|
79
79
|
{
|
|
80
80
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.GoogleSheetsIcon, { className: "w-5 h-5 shrink-0" }),
|
|
81
81
|
title: displayName,
|
|
@@ -84,7 +84,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
|
|
|
84
84
|
{
|
|
85
85
|
variant: "outline",
|
|
86
86
|
size: "small-legacy",
|
|
87
|
-
href:
|
|
87
|
+
href: _chunkLCWCUFJJcjs.toGoogleSheetsOriginalUrl.call(void 0, externalUrl),
|
|
88
88
|
openInNewTab: true,
|
|
89
89
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.GoogleSheetsIcon, { className: "w-4 h-4" }),
|
|
90
90
|
rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "w-4 h-4" }),
|
|
@@ -92,7 +92,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
|
|
|
92
92
|
children: "Open in Google Sheets"
|
|
93
93
|
}
|
|
94
94
|
),
|
|
95
|
-
src:
|
|
95
|
+
src: _chunkLCWCUFJJcjs.toGoogleSheetsEmbedUrl.call(void 0, externalUrl),
|
|
96
96
|
height
|
|
97
97
|
}
|
|
98
98
|
);
|
|
@@ -113,7 +113,7 @@ function FileDownloadCard({
|
|
|
113
113
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-h3 text-ods-text-primary", children: fileName || "File" }),
|
|
114
114
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-center gap-3 mt-2 text-h6 text-ods-text-secondary", children: [
|
|
115
115
|
mimeType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: mimeType }),
|
|
116
|
-
typeof fileSize === "number" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children:
|
|
116
|
+
typeof fileSize === "number" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _chunkLCWCUFJJcjs.formatFileSize.call(void 0, fileSize) })
|
|
117
117
|
] })
|
|
118
118
|
] }),
|
|
119
119
|
fileUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -134,4 +134,4 @@ function FileDownloadCard({
|
|
|
134
134
|
|
|
135
135
|
|
|
136
136
|
exports.PdfViewer = PdfViewer; exports.GoogleSheetsViewer = GoogleSheetsViewer; exports.FileDownloadCard = FileDownloadCard;
|
|
137
|
-
//# sourceMappingURL=chunk-
|
|
137
|
+
//# sourceMappingURL=chunk-O37MV2JA.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-O37MV2JA.cjs","../src/components/embeds/pdf-viewer.tsx","../src/components/embeds/google-sheets-viewer.tsx","../src/components/embeds/file-download-card.tsx"],"names":["jsxs","jsx","Download"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-O37MV2JA.cjs","sourcesContent":[null,"\"use client\"\n\nimport React from 'react'\nimport { Button } from '../ui'\nimport { Download, Eye } from 'lucide-react'\nimport { AdobePdfIcon } from '../icons-v2-generated'\nimport { EmbedViewerFrame } from './embed-viewer-frame'\n\nexport interface PdfViewerProps {\n src: string\n fileName?: string\n onPreview?: () => void\n onDownload?: () => void\n height?: string\n}\n\nexport function PdfViewer({ src, fileName, onPreview, onDownload, height }: PdfViewerProps) {\n const displayName = fileName || 'PDF Document'\n\n // Historical shape: no src at all → standalone empty state with NO header.\n if (!src) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <AdobePdfIcon className=\"w-16 h-16 text-ods-text-secondary mb-4\" />\n <p className=\"text-ods-text-secondary\">PDF file not available</p>\n </div>\n )\n }\n\n return (\n <EmbedViewerFrame\n icon={<AdobePdfIcon className=\"w-5 h-5 shrink-0\" />}\n title={displayName}\n actions={\n <div className=\"flex items-center gap-2 w-full sm:w-auto\">\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={onPreview ? undefined : src}\n openInNewTab={!onPreview}\n onClick={onPreview}\n leftIcon={<Eye className=\"w-4 h-4\" />}\n className=\"flex-1 sm:flex-initial\"\n >\n Preview\n </Button>\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={onDownload ? undefined : src}\n openInNewTab={!onDownload}\n onClick={onDownload}\n leftIcon={<Download className=\"w-4 h-4\" />}\n className=\"flex-1 sm:flex-initial\"\n >\n Download\n </Button>\n </div>\n }\n src={src}\n height={height}\n />\n )\n}\n","\"use client\"\n\nimport React from 'react'\nimport { Button } from '../ui'\nimport { ExternalLink } from 'lucide-react'\nimport { GoogleSheetsIcon } from '../icons-v2-generated'\nimport { EmbedViewerFrame } from './embed-viewer-frame'\nimport { toGoogleSheetsEmbedUrl, toGoogleSheetsOriginalUrl } from '../../utils/embed-url-converters'\n\nexport interface GoogleSheetsViewerProps {\n externalUrl: string\n fileName?: string\n height?: string\n}\n\nexport function GoogleSheetsViewer({ externalUrl, fileName, height }: GoogleSheetsViewerProps) {\n const displayName = fileName || 'Google Sheet'\n\n // Historical shape: no URL at all → standalone empty state with NO header\n // (the frame's empty body keeps the header — that's the figma behavior).\n if (!externalUrl) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <GoogleSheetsIcon className=\"w-16 h-16 text-ods-text-secondary mb-4\" />\n <p className=\"text-ods-text-secondary\">Google Sheet URL not configured</p>\n </div>\n )\n }\n\n return (\n <EmbedViewerFrame\n icon={<GoogleSheetsIcon className=\"w-5 h-5 shrink-0\" />}\n title={displayName}\n actions={\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={toGoogleSheetsOriginalUrl(externalUrl)}\n openInNewTab\n leftIcon={<GoogleSheetsIcon className=\"w-4 h-4\" />}\n rightIcon={<ExternalLink className=\"w-4 h-4\" />}\n className=\"w-full sm:w-auto\"\n >\n Open in Google Sheets\n </Button>\n }\n src={toGoogleSheetsEmbedUrl(externalUrl)}\n height={height}\n />\n )\n}\n","import React from 'react'\nimport { Button } from '../ui'\nimport { FileText, Download } from 'lucide-react'\nimport { formatFileSize } from '../../utils'\n\nexport interface FileDownloadCardProps {\n fileName?: string\n mimeType?: string\n fileSize?: number\n fileUrl?: string\n}\n\n/**\n * Generic downloadable-file card for the `file` document type. Used by\n * `<DocsHubPage>`'s default `documentTypeRenderers.file`. Embedders can\n * override the default by passing their own `file` renderer.\n *\n * When `fileUrl` is missing, the Download button is omitted (the card still\n * renders the filename + type + size so the user knows what they were\n * about to download).\n */\nexport function FileDownloadCard({\n fileName,\n mimeType,\n fileSize,\n fileUrl,\n}: FileDownloadCardProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16\">\n <div className=\"bg-ods-card border border-ods-border rounded-xl p-8 max-w-md w-full text-center space-y-4\">\n <FileText className=\"w-16 h-16 text-ods-text-secondary mx-auto\" />\n <div>\n <h3 className=\"text-h3 text-ods-text-primary\">\n {fileName || 'File'}\n </h3>\n <div className=\"flex items-center justify-center gap-3 mt-2 text-h6 text-ods-text-secondary\">\n {mimeType && <span>{mimeType}</span>}\n {typeof fileSize === 'number' && <span>{formatFileSize(fileSize)}</span>}\n </div>\n </div>\n {fileUrl && (\n <Button\n variant=\"accent\"\n href={fileUrl}\n openInNewTab\n leftIcon={<Download className=\"w-4 h-4\" />}\n >\n Download File\n </Button>\n )}\n </div>\n </div>\n )\n}\n"]}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import {
|
|
3
3
|
ArticleAuthorByline,
|
|
4
4
|
DetailPageSkeleton
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-3KAZSJ2I.js";
|
|
6
6
|
import {
|
|
7
7
|
DocSearchBar,
|
|
8
8
|
useDocSearch
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-YNBRXJWC.js";
|
|
10
10
|
import {
|
|
11
11
|
useSelfFetch
|
|
12
12
|
} from "./chunk-Z3ADCYC5.js";
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
resolveContentHref,
|
|
27
27
|
toStripProfile,
|
|
28
28
|
useVideoWarmup
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-SQJXVADG.js";
|
|
30
30
|
import {
|
|
31
31
|
buildOgPlaceholderUrl
|
|
32
32
|
} from "./chunk-FS3YSNSU.js";
|
|
@@ -396,4 +396,4 @@ export {
|
|
|
396
396
|
useOnboardingGuide,
|
|
397
397
|
useOnboardingGuideSections
|
|
398
398
|
};
|
|
399
|
-
//# sourceMappingURL=chunk-
|
|
399
|
+
//# sourceMappingURL=chunk-OY6M4LX4.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
init_unified_pagination,
|
|
4
4
|
unified_pagination_exports
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-IG3PRDHZ.js";
|
|
6
6
|
import {
|
|
7
7
|
cn,
|
|
8
8
|
init_cn
|
|
@@ -172,4 +172,4 @@ export {
|
|
|
172
172
|
usePaginationLoading,
|
|
173
173
|
PersistentPaginationWrapper
|
|
174
174
|
};
|
|
175
|
-
//# sourceMappingURL=chunk-
|
|
175
|
+
//# sourceMappingURL=chunk-P5KFFOLJ.js.map
|
|
@@ -53537,12 +53537,101 @@ function useChat({
|
|
|
53537
53537
|
{ hidden: true }
|
|
53538
53538
|
);
|
|
53539
53539
|
};
|
|
53540
|
-
|
|
53541
|
-
|
|
53542
|
-
|
|
53543
|
-
|
|
53544
|
-
|
|
53545
|
-
|
|
53540
|
+
const toToolCall = (d) => {
|
|
53541
|
+
const fields = Array.isArray(d?.fields) ? d.fields : [];
|
|
53542
|
+
const detailField = fields.find((f) => /^(title|subject|task|name)$/i.test(f.label)) ?? fields[0];
|
|
53543
|
+
const base = typeof d?.command === "string" && d.command ? d.command : "Tool call";
|
|
53544
|
+
return {
|
|
53545
|
+
toolExecutionRequestId: String(d?.requestId ?? ""),
|
|
53546
|
+
toolName: String(d?.approvalType ?? "tool"),
|
|
53547
|
+
toolTitle: detailField ? `${base} \u2014 ${detailField.value}` : base,
|
|
53548
|
+
requiresApproval: true,
|
|
53549
|
+
// Field rows become the expandable args block so the
|
|
53550
|
+
// per-proposal detail from the single-card view stays
|
|
53551
|
+
// reachable inside the batch.
|
|
53552
|
+
toolCallArguments: fields.length > 0 ? Object.fromEntries(fields.map((f) => [f.label, f.value])) : null
|
|
53553
|
+
};
|
|
53554
|
+
};
|
|
53555
|
+
const makeBatchHandlers = (anchorId) => {
|
|
53556
|
+
const findBatch = (segments) => segments.find(
|
|
53557
|
+
(s) => s.type === "approval_batch" && s.data.approvalRequestId === anchorId
|
|
53558
|
+
);
|
|
53559
|
+
const setBatchStatus = (status) => {
|
|
53560
|
+
setMessages((prev) => {
|
|
53561
|
+
for (let i = prev.length - 1; i >= 0; i--) {
|
|
53562
|
+
const m = prev[i];
|
|
53563
|
+
if (m.role !== "assistant" || !Array.isArray(m.content)) continue;
|
|
53564
|
+
const segments = m.content;
|
|
53565
|
+
if (!findBatch(segments)) continue;
|
|
53566
|
+
const next = [...prev];
|
|
53567
|
+
next[i] = {
|
|
53568
|
+
...m,
|
|
53569
|
+
content: segments.map(
|
|
53570
|
+
(s) => s.type === "approval_batch" && s.data.approvalRequestId === anchorId ? { ...s, status } : s
|
|
53571
|
+
)
|
|
53572
|
+
};
|
|
53573
|
+
return next;
|
|
53574
|
+
}
|
|
53575
|
+
return prev;
|
|
53576
|
+
});
|
|
53577
|
+
};
|
|
53578
|
+
const act = (action) => async () => {
|
|
53579
|
+
let ids = [];
|
|
53580
|
+
setMessages((prev) => {
|
|
53581
|
+
for (let i = prev.length - 1; i >= 0; i--) {
|
|
53582
|
+
const m = prev[i];
|
|
53583
|
+
if (m.role !== "assistant" || !Array.isArray(m.content)) continue;
|
|
53584
|
+
const batch = findBatch(m.content);
|
|
53585
|
+
if (batch) {
|
|
53586
|
+
ids = batch.data.toolCalls.map((c) => c.toolExecutionRequestId);
|
|
53587
|
+
break;
|
|
53588
|
+
}
|
|
53589
|
+
}
|
|
53590
|
+
return prev;
|
|
53591
|
+
});
|
|
53592
|
+
setBatchStatus(action === "approve" ? "approved" : "rejected");
|
|
53593
|
+
for (const id of ids) {
|
|
53594
|
+
await sendMessage(
|
|
53595
|
+
"",
|
|
53596
|
+
{ approvalAction: { proposalId: id, action } },
|
|
53597
|
+
{ hidden: true }
|
|
53598
|
+
);
|
|
53599
|
+
}
|
|
53600
|
+
};
|
|
53601
|
+
return { onApprove: act("approve"), onReject: act("reject") };
|
|
53602
|
+
};
|
|
53603
|
+
const liveSegments = [...currentAssistantSegmentsRef.current];
|
|
53604
|
+
const lastSeg = liveSegments[liveSegments.length - 1];
|
|
53605
|
+
if (lastSeg && lastSeg.type === "approval_batch" && (lastSeg.status ?? "pending") === "pending") {
|
|
53606
|
+
liveSegments[liveSegments.length - 1] = {
|
|
53607
|
+
...lastSeg,
|
|
53608
|
+
data: {
|
|
53609
|
+
...lastSeg.data,
|
|
53610
|
+
toolCalls: [...lastSeg.data.toolCalls, toToolCall(seg.data)]
|
|
53611
|
+
}
|
|
53612
|
+
};
|
|
53613
|
+
} else if (lastSeg && lastSeg.type === "approval_request" && (lastSeg.status ?? "pending") === "pending") {
|
|
53614
|
+
const anchorId = String(lastSeg.data?.requestId ?? proposalId);
|
|
53615
|
+
liveSegments[liveSegments.length - 1] = {
|
|
53616
|
+
type: "approval_batch",
|
|
53617
|
+
status: "pending",
|
|
53618
|
+
data: {
|
|
53619
|
+
approvalRequestId: anchorId,
|
|
53620
|
+
approvalType: "chat",
|
|
53621
|
+
toolCalls: [toToolCall(lastSeg.data), toToolCall(seg.data)],
|
|
53622
|
+
executions: {}
|
|
53623
|
+
},
|
|
53624
|
+
...makeBatchHandlers(anchorId)
|
|
53625
|
+
};
|
|
53626
|
+
} else {
|
|
53627
|
+
liveSegments.push({
|
|
53628
|
+
...seg,
|
|
53629
|
+
onApprove: wrappedApprove,
|
|
53630
|
+
onReject: wrappedReject
|
|
53631
|
+
});
|
|
53632
|
+
}
|
|
53633
|
+
currentAssistantSegmentsRef.current = liveSegments;
|
|
53634
|
+
updateLastAssistantMessage([...liveSegments]);
|
|
53546
53635
|
} else if (segment.type === "decision_resolved") {
|
|
53547
53636
|
const decision = segment;
|
|
53548
53637
|
if (!decision.proposalId) continue;
|
|
@@ -53553,12 +53642,35 @@ function useChat({
|
|
|
53553
53642
|
if (!Array.isArray(m.content)) continue;
|
|
53554
53643
|
const segments = m.content;
|
|
53555
53644
|
const hasMatch = segments.some(
|
|
53556
|
-
(s) => s.type === "approval_request" && s.data?.requestId === decision.proposalId
|
|
53645
|
+
(s) => s.type === "approval_request" && s.data?.requestId === decision.proposalId || s.type === "approval_batch" && s.data?.toolCalls?.some(
|
|
53646
|
+
(c) => c?.toolExecutionRequestId === decision.proposalId
|
|
53647
|
+
)
|
|
53557
53648
|
);
|
|
53558
53649
|
if (!hasMatch) continue;
|
|
53559
|
-
const flipped = segments.map(
|
|
53560
|
-
(s
|
|
53561
|
-
|
|
53650
|
+
const flipped = segments.map((s) => {
|
|
53651
|
+
if (s.type === "approval_request" && s.data?.requestId === decision.proposalId) {
|
|
53652
|
+
return { ...s, status: decision.action };
|
|
53653
|
+
}
|
|
53654
|
+
if (s.type === "approval_batch" && s.data?.toolCalls?.some(
|
|
53655
|
+
(c) => c?.toolExecutionRequestId === decision.proposalId
|
|
53656
|
+
)) {
|
|
53657
|
+
const batch = s;
|
|
53658
|
+
return {
|
|
53659
|
+
...batch,
|
|
53660
|
+
data: {
|
|
53661
|
+
...batch.data,
|
|
53662
|
+
executions: {
|
|
53663
|
+
...batch.data.executions ?? {},
|
|
53664
|
+
[decision.proposalId]: {
|
|
53665
|
+
status: "done",
|
|
53666
|
+
success: decision.action === "approved" ? decision.ok : false
|
|
53667
|
+
}
|
|
53668
|
+
}
|
|
53669
|
+
}
|
|
53670
|
+
};
|
|
53671
|
+
}
|
|
53672
|
+
return s;
|
|
53673
|
+
});
|
|
53562
53674
|
const next = [...prev];
|
|
53563
53675
|
next[i] = { ...m, content: flipped };
|
|
53564
53676
|
return next;
|
|
@@ -60770,4 +60882,4 @@ export {
|
|
|
60770
60882
|
LogsList,
|
|
60771
60883
|
assets
|
|
60772
60884
|
};
|
|
60773
|
-
//# sourceMappingURL=chunk-
|
|
60885
|
+
//# sourceMappingURL=chunk-SQJXVADG.js.map
|