@truefoundry/trueforge-ui 0.2.3 → 0.3.0-rc.0
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/CHANGELOG.md +43 -0
- package/README.md +41 -17
- package/dist/{ConnectorSettings-ODC3LVHN.js → ConnectorSettings-FXQ5B7TN.js} +5 -5
- package/dist/{DockLayout-2RWDSUKE.js → DockLayout-LBNQJZNF.js} +9 -9
- package/dist/{DrawerLayout-CZLJYMIN.js → DrawerLayout-Q6UK4VMI.js} +9 -9
- package/dist/{ModelSettings-CKQ5CVAC.js → ModelSettings-4L4LOQJA.js} +5 -5
- package/dist/OpenUiFenceBlock-6UIIAVBX.js +9 -0
- package/dist/{SandboxSettings-HSCPYUOC.js → SandboxSettings-Z4ZG6ZX4.js} +5 -5
- package/dist/{SettingsBuilder-MYWRFXRI.js → SettingsBuilder-WF7ZWKQW.js} +7 -7
- package/dist/{SidebarLayout-WVY54TGZ.js → SidebarLayout-3WZ3CVON.js} +31 -14
- package/dist/SidebarLayout-3WZ3CVON.js.map +1 -0
- package/dist/{SkillSettings-ECH6SHZ7.js → SkillSettings-3EPPC3IT.js} +5 -5
- package/dist/{TrueForgeUIWithRouter-RKZ2E7PV.js → TrueForgeUIWithRouter-NZ4FGPE4.js} +7 -7
- package/dist/{WidgetLayout-NWWB2SXI.js → WidgetLayout-3QZ357FL.js} +10 -10
- package/dist/{WidgetLayout-NWWB2SXI.js.map → WidgetLayout-3QZ357FL.js.map} +1 -1
- package/dist/chunk-36KOSC2J.js +567 -0
- package/dist/chunk-36KOSC2J.js.map +1 -0
- package/dist/{chunk-HVSUPYX2.js → chunk-3S6KHO7H.js} +311 -238
- package/dist/chunk-3S6KHO7H.js.map +1 -0
- package/dist/{chunk-TCAVLWYL.js → chunk-7L63OK3O.js} +7 -7
- package/dist/{chunk-JRRCAKEP.js → chunk-B52K63AW.js} +2 -2
- package/dist/{chunk-FXCYLEFB.js → chunk-BSIPI3KV.js} +18 -2
- package/dist/chunk-BSIPI3KV.js.map +1 -0
- package/dist/{chunk-IFLE7OMM.js → chunk-FJ5RSSMA.js} +4 -4
- package/dist/{chunk-IFLE7OMM.js.map → chunk-FJ5RSSMA.js.map} +1 -1
- package/dist/{chunk-XRTTKGKN.js → chunk-OSV3HI5M.js} +746 -680
- package/dist/chunk-OSV3HI5M.js.map +1 -0
- package/dist/{chunk-KFUBFJR5.js → chunk-WREC7D54.js} +13 -11
- package/dist/chunk-WREC7D54.js.map +1 -0
- package/dist/{chunk-OZTNBS6V.js → chunk-ZXOADNF3.js} +4 -4
- package/dist/index.d.ts +179 -121
- package/dist/index.js +17 -9
- package/dist/index.js.map +1 -1
- package/dist/plugins/trueforge-agent-server-adapter/index.d.ts +1 -5
- package/dist/plugins/trueforge-agent-server-adapter/index.js +3 -0
- package/dist/plugins/trueforge-agent-server-adapter/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +6 -6
- package/dist/OpenUiFenceBlock-3EFPY4JW.js +0 -9
- package/dist/SidebarLayout-WVY54TGZ.js.map +0 -1
- package/dist/chunk-72LC2M3R.js +0 -567
- package/dist/chunk-72LC2M3R.js.map +0 -1
- package/dist/chunk-FXCYLEFB.js.map +0 -1
- package/dist/chunk-HVSUPYX2.js.map +0 -1
- package/dist/chunk-KFUBFJR5.js.map +0 -1
- package/dist/chunk-XRTTKGKN.js.map +0 -1
- /package/dist/{ConnectorSettings-ODC3LVHN.js.map → ConnectorSettings-FXQ5B7TN.js.map} +0 -0
- /package/dist/{DockLayout-2RWDSUKE.js.map → DockLayout-LBNQJZNF.js.map} +0 -0
- /package/dist/{DrawerLayout-CZLJYMIN.js.map → DrawerLayout-Q6UK4VMI.js.map} +0 -0
- /package/dist/{ModelSettings-CKQ5CVAC.js.map → ModelSettings-4L4LOQJA.js.map} +0 -0
- /package/dist/{OpenUiFenceBlock-3EFPY4JW.js.map → OpenUiFenceBlock-6UIIAVBX.js.map} +0 -0
- /package/dist/{SandboxSettings-HSCPYUOC.js.map → SandboxSettings-Z4ZG6ZX4.js.map} +0 -0
- /package/dist/{SettingsBuilder-MYWRFXRI.js.map → SettingsBuilder-WF7ZWKQW.js.map} +0 -0
- /package/dist/{SkillSettings-ECH6SHZ7.js.map → SkillSettings-3EPPC3IT.js.map} +0 -0
- /package/dist/{TrueForgeUIWithRouter-RKZ2E7PV.js.map → TrueForgeUIWithRouter-NZ4FGPE4.js.map} +0 -0
- /package/dist/{chunk-TCAVLWYL.js.map → chunk-7L63OK3O.js.map} +0 -0
- /package/dist/{chunk-JRRCAKEP.js.map → chunk-B52K63AW.js.map} +0 -0
- /package/dist/{chunk-OZTNBS6V.js.map → chunk-ZXOADNF3.js.map} +0 -0
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
getErrorMessage,
|
|
7
7
|
useCompactLayout,
|
|
8
8
|
useDraftCatalog
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-FJ5RSSMA.js";
|
|
10
10
|
import {
|
|
11
11
|
libraryAgentId,
|
|
12
12
|
useCatalogServer,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "./chunk-WQULF5AT.js";
|
|
18
18
|
import {
|
|
19
19
|
OpenUiFenceBlock
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-B52K63AW.js";
|
|
21
21
|
import {
|
|
22
22
|
ThemeContext,
|
|
23
23
|
ThemeProvider,
|
|
@@ -25,41 +25,102 @@ import {
|
|
|
25
25
|
useOptionalContentClassNames,
|
|
26
26
|
useOptionalThemeMode,
|
|
27
27
|
useOptionalThemePreset
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-36KOSC2J.js";
|
|
29
29
|
|
|
30
30
|
// src/theme/brand.tsx
|
|
31
31
|
import { useContext } from "react";
|
|
32
|
-
|
|
32
|
+
|
|
33
|
+
// src/icons/trueforge-logo-dark.svg
|
|
34
|
+
import * as React from "react";
|
|
35
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
36
|
+
var SvgTrueforgeLogoDark = (props) => /* @__PURE__ */ jsxs("svg", { width: "1em", height: "1em", viewBox: "0 0 737 120", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
|
|
37
|
+
/* @__PURE__ */ jsxs("g", { clipPath: "url(#clip0_10580_645)", children: [
|
|
38
|
+
/* @__PURE__ */ jsx("path", { d: "M0 0.015625L40 20.0156V40L20 40V80.0156H40V100.016L0 120.016V0.015625Z", fill: "white" }),
|
|
39
|
+
/* @__PURE__ */ jsx("path", { d: "M120 0L80 20V40H100V80H80V100L120 120V0Z", fill: "white" }),
|
|
40
|
+
/* @__PURE__ */ jsx("path", { d: "M59.9971 39.8193C61.0556 45.6178 63.1951 50.1614 66.5771 53.5215C69.9455 56.868 74.4738 58.9678 80.2051 60.0088C74.4712 61.0714 69.9429 63.2075 66.5752 66.5752C63.1954 69.955 61.0558 74.5036 59.9971 80.2666C58.933 74.5031 56.7854 69.9547 53.4004 66.5752C50.0276 63.2078 45.4981 61.0704 39.7725 60.0078C45.4953 58.9668 50.0251 56.8676 53.3984 53.5215C56.7857 50.1616 58.9332 45.6182 59.9971 39.8193Z", fill: "white", stroke: "white", strokeWidth: 1.6, strokeLinejoin: "round" })
|
|
41
|
+
] }),
|
|
42
|
+
/* @__PURE__ */ jsx("path", { d: "M622.099 24.752C631.17 24.752 637.822 27.7322 642.056 33.6934V27.084H659.938V90.4531C659.938 99.87 656.785 107.127 650.479 112.225C644.172 117.408 636.008 120 625.986 120C614.669 120 603.784 116.76 593.33 110.28L602.66 96.1553C611.559 101.252 619.248 103.801 625.728 103.801C635.835 103.801 640.89 98.7473 640.89 88.6396V84.752C636.57 89.8491 630.306 92.3975 622.099 92.3975C613.632 92.3974 606.548 89.2442 600.846 82.9375C595.23 76.6308 592.423 68.5094 592.423 58.5742C592.423 48.6393 595.23 40.5185 600.846 34.2119C606.548 27.9052 613.632 24.752 622.099 24.752ZM292.13 69.46C292.13 76.285 295.456 79.6982 302.108 79.6982C310.229 79.6982 314.29 75.421 314.29 66.8682V27.084H333.729V94.4707H315.975V87.3438C311.914 93.564 305.391 96.6738 296.406 96.6738C288.458 96.6738 282.497 94.773 278.522 90.9717C274.635 87.1704 272.691 81.7275 272.691 74.6436V27.084H292.13V69.46ZM378.339 24.752C388.62 24.752 396.525 27.7322 402.054 33.6934C407.669 39.6545 410.478 48.0349 410.478 58.834C410.478 61.2528 410.391 63.758 410.218 66.3496H362.658C364.732 75.5937 370.693 80.2158 380.542 80.2158C384.084 80.2158 387.237 79.6109 390.002 78.4014C392.766 77.1055 396.049 74.8595 399.851 71.6631L410.478 83.8447C401.579 92.3976 391.427 96.6738 380.023 96.6738C368.965 96.6738 360.153 93.4345 353.587 86.9551C347.108 80.4757 343.868 71.836 343.868 61.0371C343.868 50.4108 346.978 41.7279 353.198 34.9893C359.419 28.1642 367.799 24.752 378.339 24.752ZM499.098 24.752C509.465 24.752 517.974 28.121 524.626 34.8594C531.278 41.5116 534.604 50.1077 534.604 60.6475C534.604 71.2738 531.278 79.9566 524.626 86.6953C517.974 93.3474 509.465 96.6738 499.098 96.6738C488.644 96.6738 480.091 93.3476 473.438 86.6953C466.786 79.9567 463.46 71.2738 463.46 60.6475C463.46 50.1077 466.786 41.5116 473.438 34.8594C480.091 28.1207 488.644 24.752 499.098 24.752ZM704.464 24.752C714.745 24.752 722.65 27.7322 728.179 33.6934C733.794 39.6545 736.603 48.0349 736.603 58.834C736.603 61.2528 736.516 63.758 736.343 66.3496H688.783C690.857 75.5937 696.818 80.2158 706.667 80.2158C710.209 80.2158 713.362 79.6109 716.127 78.4014C718.891 77.1055 722.174 74.8595 725.976 71.6631L736.603 83.8447C727.704 92.3976 717.552 96.6738 706.148 96.6738C695.09 96.6738 686.278 93.4345 679.712 86.9551C673.233 80.4757 669.993 71.836 669.993 61.0371C669.993 50.4108 673.103 41.7279 679.323 34.9893C685.544 28.1642 693.924 24.752 704.464 24.752ZM194.087 27.085H209.249V41.5996H194.087V73.0898C194.087 75.3359 194.605 76.9345 195.642 77.8848C196.678 78.7486 198.277 79.1797 200.437 79.1797C202.078 79.1797 204.626 78.8347 208.082 78.1436L210.285 93.6943C204.842 95.3358 199.702 96.1562 194.864 96.1562C187.694 96.1562 182.51 94.6013 179.313 91.4912C176.203 88.3811 174.649 83.4137 174.648 76.5889V41.5996H162.855V27.085H174.648V7.3877H194.087V27.085ZM254.532 25.9189C257.21 25.9189 260.883 26.6959 265.548 28.251L261.919 45.3574C257.858 44.4071 254.921 43.9316 253.106 43.9316C248.787 43.9317 245.374 45.6162 242.869 48.9854C240.364 52.2683 239.111 56.8044 239.111 62.5928V94.4717H219.673V27.085H237.686V36.6748C241.314 29.5042 246.93 25.919 254.532 25.9189ZM579.519 25.9189C582.197 25.9189 585.869 26.6959 590.534 28.251L586.905 45.3574C582.845 44.4072 579.908 43.9317 578.094 43.9316C573.774 43.9316 570.361 45.616 567.855 48.9854C565.35 52.2683 564.098 56.8044 564.098 62.5928V94.4717H544.659V27.085H562.672V36.6748C566.3 29.5043 571.916 25.9191 579.519 25.9189ZM449.276 0C453.942 0 458.866 0.77795 464.05 2.33301L460.681 16.7168C458.175 16.1121 455.627 15.8096 453.035 15.8096C450.53 15.8096 448.758 16.3712 447.722 17.4941C446.685 18.5309 446.167 20.3892 446.167 23.0674V27.084H460.292V41.5986H446.167V94.4707H426.729V41.5986H415.454V27.084H426.729V22.2891C426.729 7.42983 434.244 0.000142379 449.276 0ZM499.098 41.209C494.346 41.209 490.501 42.9803 487.563 46.5225C484.626 50.0645 483.158 54.773 483.158 60.6475C483.158 66.6084 484.626 71.3603 487.563 74.9023C490.501 78.4445 494.346 80.2158 499.098 80.2158C503.849 80.2157 507.65 78.4444 510.501 74.9023C513.438 71.3602 514.907 66.6085 514.907 60.6475C514.907 54.7729 513.438 50.0645 510.501 46.5225C507.564 42.9806 503.763 41.2091 499.098 41.209ZM626.764 41.3389C622.358 41.3389 618.772 42.9373 616.008 46.1338C613.33 49.2439 611.99 53.3908 611.99 58.5742C611.99 63.7578 613.373 67.948 616.138 71.1445C618.902 74.341 622.444 75.9394 626.764 75.9395C631.17 75.9395 634.755 74.341 637.52 71.1445C640.284 67.948 641.667 63.7578 641.667 58.5742C641.667 53.3907 640.284 49.2439 637.52 46.1338C634.755 42.9374 631.17 41.3389 626.764 41.3389ZM378.08 39.9131C370.218 39.9131 365.207 44.1902 363.047 52.7432H391.945C390.995 44.1904 386.374 39.9132 378.08 39.9131ZM704.205 39.9131C696.343 39.9131 691.332 44.1902 689.172 52.7432H718.07C717.12 44.1904 712.499 39.9132 704.205 39.9131Z", fill: "white" }),
|
|
43
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: "clip0_10580_645", children: /* @__PURE__ */ jsx("rect", { width: 120, height: 120, fill: "white" }) }) })
|
|
44
|
+
] });
|
|
45
|
+
var trueforge_logo_dark_default = SvgTrueforgeLogoDark;
|
|
46
|
+
|
|
47
|
+
// src/icons/trueforge-logo.svg
|
|
48
|
+
import * as React2 from "react";
|
|
49
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
50
|
+
var SvgTrueforgeLogo = (props) => /* @__PURE__ */ jsxs2("svg", { width: "1em", height: "1em", viewBox: "0 0 614 100", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
|
|
51
|
+
/* @__PURE__ */ jsxs2("g", { clipPath: "url(#clip0_10581_1412)", children: [
|
|
52
|
+
/* @__PURE__ */ jsx2("path", { d: "M-0.00195312 0.0136719L33.3314 16.6803V33.334L16.6647 33.334V66.6803H33.3314V83.347L-0.00195312 100.014V0.0136719Z", fill: "#05090E" }),
|
|
53
|
+
/* @__PURE__ */ jsx2("path", { d: "M99.998 0L66.6647 16.6667V33.3333H83.3314V66.6667H66.6647V83.3333L99.998 100V0Z", fill: "#05090E" }),
|
|
54
|
+
/* @__PURE__ */ jsx2("path", { d: "M49.9961 33.1826C50.8782 38.0147 52.6612 41.8005 55.4795 44.6006C58.2863 47.3892 62.0592 49.1393 66.835 50.0068C62.057 50.8924 58.2839 52.6732 55.4775 55.4795C52.6611 58.2959 50.8784 62.0863 49.9961 66.8887C49.1093 62.0858 47.3189 58.2958 44.498 55.4795C41.6875 52.6735 37.9135 50.8924 33.1426 50.0068C37.9113 49.1393 41.6861 47.3898 44.4971 44.6016C47.3198 41.8016 49.1095 38.0151 49.9961 33.1826Z", fill: "#6D58FB", stroke: "#6D58FB", strokeWidth: 1.33333, strokeLinejoin: "round" })
|
|
55
|
+
] }),
|
|
56
|
+
/* @__PURE__ */ jsx2("path", { d: "M518.559 20.627C526.12 20.627 531.665 23.1106 535.193 28.0781V22.5703H550.1V75.3789C550.1 83.2261 547.47 89.2739 542.214 93.5215C536.957 97.8409 530.153 100.001 521.8 100.001C512.367 100.001 503.293 97.3008 494.58 91.9014L502.356 80.1299C509.773 84.3774 516.182 86.5019 521.583 86.502C530.008 86.502 534.221 82.2902 534.221 73.8672V70.627C530.62 74.8745 525.399 76.998 518.559 76.998C511.502 76.998 505.597 74.3706 500.845 69.1152C496.164 63.8597 493.823 57.0918 493.823 48.8125C493.823 40.5333 496.164 33.7663 500.845 28.5107C505.597 23.2553 511.502 20.627 518.559 20.627ZM315.383 20.627C323.952 20.627 330.541 23.1106 335.149 28.0781C339.83 33.0457 342.17 40.0293 342.17 49.0283C342.17 51.0441 342.098 53.1322 341.954 55.292H302.312C304.041 62.9954 309.01 66.8477 317.219 66.8477C320.171 66.8476 322.799 66.3429 325.104 65.335C327.408 64.2551 330.144 62.3835 333.312 59.7197L342.17 69.8711C334.753 76.9984 326.292 80.5624 316.787 80.5625C307.57 80.5625 300.225 77.8624 294.752 72.4629C289.351 67.0633 286.65 59.8635 286.65 50.8643C286.65 42.0091 289.243 34.7737 294.428 29.1582C299.612 23.4707 306.598 20.627 315.383 20.627ZM416.036 20.627C424.677 20.627 431.77 23.4346 437.314 29.0498C442.859 34.5934 445.632 41.7577 445.632 50.541C445.632 59.3961 442.859 66.6316 437.314 72.2471C431.77 77.7904 424.677 80.5625 416.036 80.5625C407.323 80.5625 400.194 77.7905 394.649 72.2471C389.105 66.6316 386.332 59.3961 386.332 50.541C386.332 41.7577 389.105 34.5934 394.649 29.0498C400.194 23.4345 407.323 20.627 416.036 20.627ZM587.211 20.627C595.78 20.627 602.369 23.1106 606.978 28.0781C611.658 33.0457 613.998 40.0292 613.998 49.0283C613.998 51.0441 613.926 53.1322 613.782 55.292H574.141C575.869 62.9953 580.838 66.8476 589.047 66.8477C591.999 66.8477 594.627 66.3428 596.932 65.335C599.236 64.2551 601.972 62.3834 605.141 59.7197L613.998 69.8711C606.581 76.9984 598.12 80.5624 588.615 80.5625C579.398 80.5625 572.053 77.8624 566.58 72.4629C561.179 67.0633 558.479 59.8635 558.479 50.8643C558.479 42.0091 561.071 34.7737 566.256 29.1582C571.441 23.4707 578.426 20.627 587.211 20.627ZM243.526 57.8838C243.526 63.5711 246.299 66.415 251.844 66.415C258.612 66.4149 261.997 62.8509 261.997 55.7236V22.5703H278.199V78.7256H263.4V72.7861C260.016 77.9696 254.58 80.5615 247.091 80.5615C240.466 80.5615 235.497 78.9782 232.185 75.8105C228.944 72.6428 227.324 68.1067 227.324 62.2031V22.5703H243.526V57.8838ZM161.807 22.5713H174.444V34.666H161.807V60.9082C161.807 62.7799 162.239 64.1114 163.104 64.9033C163.968 65.6232 165.299 65.9834 167.1 65.9834C168.468 65.9834 170.592 65.6951 173.473 65.1191L175.309 78.0781C170.772 79.446 166.488 80.1299 162.455 80.1299C156.478 80.1299 152.158 78.834 149.493 76.2422C146.901 73.6504 145.604 69.5106 145.604 63.8232V34.666H135.775V22.5713H145.604V6.15625H161.807V22.5713ZM212.189 21.5977C214.422 21.5977 217.482 22.2453 221.37 23.541L218.346 37.7959C214.962 37.004 212.513 36.6084 211.001 36.6084C207.401 36.6085 204.556 38.0126 202.468 40.8203C200.38 43.5561 199.336 47.3357 199.336 52.1592V78.7256H183.134V22.5693H198.147V30.5605C201.172 24.5852 205.853 21.5977 212.189 21.5977ZM374.509 0C378.397 0 382.502 0.647547 386.822 1.94336L384.015 13.9307C381.926 13.4267 379.802 13.1748 377.642 13.1748C375.553 13.1748 374.077 13.6432 373.213 14.5791C372.349 15.4431 371.917 16.9909 371.917 19.2227V22.5703H383.69V34.665H371.917V78.7256H355.715V34.665H346.317V22.5703H355.715V18.5742C355.715 6.19146 361.979 5.23399e-05 374.509 0ZM483.068 21.5977C485.301 21.5977 488.361 22.2453 492.249 23.541L489.225 37.7959C485.84 37.004 483.392 36.6084 481.88 36.6084C478.279 36.6084 475.435 38.0125 473.347 40.8203C471.258 43.5561 470.214 47.3357 470.214 52.1592V78.7256H454.012V22.5693H469.026V30.5605C472.051 24.5853 476.732 21.5977 483.068 21.5977ZM416.036 34.3418C412.076 34.3418 408.871 35.8178 406.423 38.7695C403.975 41.7213 402.75 45.6454 402.75 50.541C402.75 55.5084 403.975 59.4682 406.423 62.4199C408.871 65.3715 412.076 66.8477 416.036 66.8477C419.996 66.8476 423.165 65.3715 425.541 62.4199C427.989 59.4682 429.214 55.5084 429.214 50.541C429.214 45.6454 427.989 41.7213 425.541 38.7695C423.093 35.8179 419.925 34.3418 416.036 34.3418ZM522.447 34.4502C518.775 34.4502 515.787 35.7817 513.482 38.4453C511.25 41.0371 510.134 44.4929 510.134 48.8125C510.134 53.1321 511.286 56.6243 513.59 59.2881C515.894 61.9518 518.847 63.2831 522.447 63.2832C526.12 63.2832 529.109 61.9519 531.413 59.2881C533.717 56.6243 534.869 53.1321 534.869 48.8125C534.869 44.493 533.717 41.0371 531.413 38.4453C529.109 35.7815 526.12 34.4502 522.447 34.4502ZM315.166 33.2617C308.613 33.2619 304.437 36.8258 302.637 43.9531H326.724C325.932 36.8257 322.079 33.2617 315.166 33.2617ZM586.995 33.2617C580.442 33.2617 576.265 36.8257 574.465 43.9531H598.552C597.76 36.8258 593.908 33.2619 586.995 33.2617Z", fill: "black" }),
|
|
57
|
+
/* @__PURE__ */ jsx2("defs", { children: /* @__PURE__ */ jsx2("clipPath", { id: "clip0_10581_1412", children: /* @__PURE__ */ jsx2("rect", { width: 100, height: 100, fill: "white" }) }) })
|
|
58
|
+
] });
|
|
59
|
+
var trueforge_logo_default = SvgTrueforgeLogo;
|
|
60
|
+
|
|
61
|
+
// src/theme/brand.tsx
|
|
62
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
33
63
|
var DEFAULT_BRAND_NAME = "TrueForge";
|
|
34
|
-
function
|
|
35
|
-
|
|
64
|
+
function resolveBrandChrome(brand) {
|
|
65
|
+
switch (brand?.mode) {
|
|
66
|
+
case "logo":
|
|
67
|
+
return { expandedVariant: "logo", collapsedVariant: "icon", showTitle: false };
|
|
68
|
+
case "icon-only":
|
|
69
|
+
return { expandedVariant: "icon", collapsedVariant: "icon", showTitle: false };
|
|
70
|
+
case "icon-title":
|
|
71
|
+
return { expandedVariant: "icon", collapsedVariant: "icon", showTitle: true };
|
|
72
|
+
default:
|
|
73
|
+
return { expandedVariant: "logo", collapsedVariant: "icon", showTitle: false };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function resolveImageSrc({
|
|
77
|
+
image,
|
|
36
78
|
mode
|
|
37
79
|
}) {
|
|
38
|
-
if (typeof
|
|
39
|
-
const preferred = mode === "dark" ?
|
|
40
|
-
return preferred ??
|
|
80
|
+
if (typeof image === "string") return image;
|
|
81
|
+
const preferred = mode === "dark" ? image.dark : image.light;
|
|
82
|
+
return preferred ?? image.light ?? image.dark ?? image.src;
|
|
41
83
|
}
|
|
42
84
|
function useBrandName() {
|
|
43
|
-
|
|
85
|
+
const brand = useContext(ThemeContext)?.brand;
|
|
86
|
+
if (brand?.name != null) return brand.name;
|
|
87
|
+
return brand?.mode == null ? DEFAULT_BRAND_NAME : void 0;
|
|
44
88
|
}
|
|
45
|
-
function BrandLogo({ className }) {
|
|
89
|
+
function BrandLogo({ className, variant = "icon" }) {
|
|
46
90
|
const theme = useContext(ThemeContext);
|
|
47
|
-
const
|
|
48
|
-
const name =
|
|
91
|
+
const brand = theme?.brand;
|
|
92
|
+
const name = useBrandName();
|
|
93
|
+
const label = name ?? DEFAULT_BRAND_NAME;
|
|
49
94
|
const mode = theme?.mode ?? "light";
|
|
50
|
-
const
|
|
95
|
+
const preferredImage = variant === "logo" ? brand?.logo : brand?.icon;
|
|
96
|
+
const preferredSrc = preferredImage == null ? void 0 : resolveImageSrc({ image: preferredImage, mode });
|
|
97
|
+
const icon = brand?.icon;
|
|
98
|
+
const src = preferredSrc ?? (variant === "logo" && icon != null ? resolveImageSrc({ image: icon, mode }) : void 0);
|
|
51
99
|
if (src == null) {
|
|
52
|
-
|
|
100
|
+
if (variant === "logo") {
|
|
101
|
+
const Wordmark = mode === "dark" ? trueforge_logo_dark_default : trueforge_logo_default;
|
|
102
|
+
return /* @__PURE__ */ jsx3(
|
|
103
|
+
Wordmark,
|
|
104
|
+
{
|
|
105
|
+
className: cn("w-auto", className),
|
|
106
|
+
width: void 0,
|
|
107
|
+
height: void 0,
|
|
108
|
+
role: "img",
|
|
109
|
+
"aria-label": label
|
|
110
|
+
}
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
return /* @__PURE__ */ jsx3(Icon, { name: mode === "dark" ? "trueforge-logomark-dark" : "trueforge-logomark-light", className });
|
|
53
114
|
}
|
|
54
|
-
const image = /* @__PURE__ */
|
|
55
|
-
const href =
|
|
115
|
+
const image = /* @__PURE__ */ jsx3("img", { src, alt: label, className });
|
|
116
|
+
const href = brand?.href;
|
|
56
117
|
if (href == null) return image;
|
|
57
|
-
return /* @__PURE__ */
|
|
118
|
+
return /* @__PURE__ */ jsx3("a", { href, "aria-label": label, className: "inline-flex items-center", children: image });
|
|
58
119
|
}
|
|
59
120
|
|
|
60
121
|
// src/atoms/primitives/Accordion.tsx
|
|
61
|
-
import
|
|
62
|
-
import { jsx as
|
|
122
|
+
import React3, { createContext, useContext as useContext2, useId, useState } from "react";
|
|
123
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
63
124
|
function Accordion({
|
|
64
125
|
expanded,
|
|
65
126
|
onChange,
|
|
@@ -70,9 +131,9 @@ function Accordion({
|
|
|
70
131
|
...rest
|
|
71
132
|
}) {
|
|
72
133
|
const panelId = useId();
|
|
73
|
-
return /* @__PURE__ */
|
|
74
|
-
if (!
|
|
75
|
-
return
|
|
134
|
+
return /* @__PURE__ */ jsx4("div", { className: cn("w-full", className), "data-expanded": expanded || void 0, ...rest, children: React3.Children.map(children, (child) => {
|
|
135
|
+
if (!React3.isValidElement(child)) return child;
|
|
136
|
+
return React3.cloneElement(child, {
|
|
76
137
|
expanded,
|
|
77
138
|
onChange,
|
|
78
139
|
panelId
|
|
@@ -80,7 +141,7 @@ function Accordion({
|
|
|
80
141
|
}) });
|
|
81
142
|
}
|
|
82
143
|
function AccordionSummary({ children, className, expanded, onChange, panelId }) {
|
|
83
|
-
return /* @__PURE__ */
|
|
144
|
+
return /* @__PURE__ */ jsx4(
|
|
84
145
|
"button",
|
|
85
146
|
{
|
|
86
147
|
type: "button",
|
|
@@ -94,13 +155,13 @@ function AccordionSummary({ children, className, expanded, onChange, panelId })
|
|
|
94
155
|
}
|
|
95
156
|
function AccordionDetails({ children, className, expanded, panelId }) {
|
|
96
157
|
if (!expanded) return null;
|
|
97
|
-
return /* @__PURE__ */
|
|
158
|
+
return /* @__PURE__ */ jsx4("div", { id: panelId, role: "region", className: cn(className), children });
|
|
98
159
|
}
|
|
99
160
|
var Ctx = createContext({ openItems: /* @__PURE__ */ new Set(), toggle: () => {
|
|
100
161
|
} });
|
|
101
162
|
|
|
102
163
|
// src/atoms/adapters/AgentStepsCardAdapter.tsx
|
|
103
|
-
import { jsx as
|
|
164
|
+
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
104
165
|
function AgentStepsCard({
|
|
105
166
|
toolCount,
|
|
106
167
|
thinkingCount,
|
|
@@ -115,7 +176,7 @@ function AgentStepsCard({
|
|
|
115
176
|
}) {
|
|
116
177
|
const toolLabel = `${toolCount} tool ${toolCount === 1 ? "call" : "calls"}`;
|
|
117
178
|
const thinkingLabel = thinkingCount > 0 ? ` \xB7 ${thinkingCount} thought${thinkingCount === 1 ? "" : "s"}` : "";
|
|
118
|
-
return /* @__PURE__ */
|
|
179
|
+
return /* @__PURE__ */ jsxs3(
|
|
119
180
|
Accordion,
|
|
120
181
|
{
|
|
121
182
|
expanded,
|
|
@@ -130,8 +191,8 @@ function AgentStepsCard({
|
|
|
130
191
|
},
|
|
131
192
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-agent-steps-card` : void 0,
|
|
132
193
|
children: [
|
|
133
|
-
/* @__PURE__ */
|
|
134
|
-
/* @__PURE__ */
|
|
194
|
+
/* @__PURE__ */ jsx5(AccordionSummary, { className: "p-0", children: /* @__PURE__ */ jsxs3("div", { className: "flex w-full items-center gap-2 px-2 py-2 text-left text-xs", children: [
|
|
195
|
+
/* @__PURE__ */ jsx5(
|
|
135
196
|
Icon,
|
|
136
197
|
{
|
|
137
198
|
name: expanded ? "chevron-down" : "chevron-right",
|
|
@@ -139,15 +200,15 @@ function AgentStepsCard({
|
|
|
139
200
|
className: "shrink-0 text-text-secondary"
|
|
140
201
|
}
|
|
141
202
|
),
|
|
142
|
-
/* @__PURE__ */
|
|
143
|
-
/* @__PURE__ */
|
|
203
|
+
/* @__PURE__ */ jsx5("span", { className: "font-semibold text-text-primary", children: "Agent steps" }),
|
|
204
|
+
/* @__PURE__ */ jsxs3("span", { className: "text-text-secondary", children: [
|
|
144
205
|
"\xB7 ",
|
|
145
206
|
toolLabel,
|
|
146
207
|
thinkingLabel
|
|
147
208
|
] }),
|
|
148
|
-
active && /* @__PURE__ */
|
|
209
|
+
active && /* @__PURE__ */ jsx5("div", { className: "ml-auto", children: /* @__PURE__ */ jsx5(Spinner, { size: 12, className: "text-primary-button-bg" }) })
|
|
149
210
|
] }) }),
|
|
150
|
-
/* @__PURE__ */
|
|
211
|
+
/* @__PURE__ */ jsx5(AccordionDetails, { children: /* @__PURE__ */ jsx5(
|
|
151
212
|
"div",
|
|
152
213
|
{
|
|
153
214
|
className: "space-y-3 border-t border-border p-3",
|
|
@@ -161,11 +222,11 @@ function AgentStepsCard({
|
|
|
161
222
|
}
|
|
162
223
|
|
|
163
224
|
// src/atoms/primitives/Button.tsx
|
|
164
|
-
import
|
|
165
|
-
import { jsx as
|
|
166
|
-
var Button =
|
|
225
|
+
import React4 from "react";
|
|
226
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
227
|
+
var Button = React4.forwardRef(
|
|
167
228
|
({ className, variant = "default", size = "default", ...props }, ref) => {
|
|
168
|
-
return /* @__PURE__ */
|
|
229
|
+
return /* @__PURE__ */ jsx6("button", { ref, className: auiButtonClass({ variant, size, className }), ...props });
|
|
169
230
|
}
|
|
170
231
|
);
|
|
171
232
|
Button.displayName = "Button";
|
|
@@ -174,17 +235,17 @@ Button.displayName = "Button";
|
|
|
174
235
|
import { createContext as createContext3, useContext as useContext4, useMemo as useMemo7 } from "react";
|
|
175
236
|
|
|
176
237
|
// src/atoms/primitives/IconButton.tsx
|
|
177
|
-
import
|
|
178
|
-
import { jsx as
|
|
179
|
-
var IconButton =
|
|
238
|
+
import React5 from "react";
|
|
239
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
240
|
+
var IconButton = React5.forwardRef(
|
|
180
241
|
({ tooltip, children, ...props }, ref) => {
|
|
181
|
-
return /* @__PURE__ */
|
|
242
|
+
return /* @__PURE__ */ jsx7(Button, { ref, size: "icon", title: tooltip, ...props, children });
|
|
182
243
|
}
|
|
183
244
|
);
|
|
184
245
|
IconButton.displayName = "IconButton";
|
|
185
246
|
|
|
186
247
|
// src/atoms/adapters/AskUserPromptAdapter.tsx
|
|
187
|
-
import { jsx as
|
|
248
|
+
import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
188
249
|
var ASK_USER_CUSTOM_OPTION = "__tfy_ask_user_question_custom__";
|
|
189
250
|
function AskUserPrompt({
|
|
190
251
|
questions,
|
|
@@ -209,14 +270,14 @@ function AskUserPrompt({
|
|
|
209
270
|
const isLastQuestion = isLastQuestionProp ?? currentQuestionIndex === totalQuestions - 1;
|
|
210
271
|
if (questions.length === 0) {
|
|
211
272
|
if (answeredQuestions.length === 0) return null;
|
|
212
|
-
return /* @__PURE__ */
|
|
213
|
-
/* @__PURE__ */
|
|
214
|
-
/* @__PURE__ */
|
|
215
|
-
/* @__PURE__ */
|
|
273
|
+
return /* @__PURE__ */ jsx8("div", { className: cn("aui-ask-user-prompt mt-2 flex flex-col gap-3", className), children: answeredQuestions.map((q) => /* @__PURE__ */ jsxs4("div", { "data-testid": dataTestPrefix ? `${dataTestPrefix}-answered-${q.id}` : void 0, children: [
|
|
274
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex items-center justify-between rounded-t-lg border border-primary-button-bg/30 bg-primary-button-bg/10 px-4 py-2", children: [
|
|
275
|
+
/* @__PURE__ */ jsx8("div", { className: "font-sans text-xs font-medium text-primary-button-bg", children: q.question }),
|
|
276
|
+
/* @__PURE__ */ jsx8("div", { className: "flex h-fit shrink-0 items-center gap-1 rounded border border-primary-button-bg/40 bg-primary-bg px-2 py-0.5 text-[0.6875rem] font-medium text-text-secondary", children: /* @__PURE__ */ jsx8("span", { className: "leading-tight", children: "Answered" }) })
|
|
216
277
|
] }),
|
|
217
|
-
/* @__PURE__ */
|
|
218
|
-
/* @__PURE__ */
|
|
219
|
-
/* @__PURE__ */
|
|
278
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2 rounded-b-lg border border-t-0 border-border px-4 py-3", children: [
|
|
279
|
+
/* @__PURE__ */ jsx8(Icon, { name: "circle-check", size: "0.875em", className: "shrink-0 text-primary-button-bg" }),
|
|
280
|
+
/* @__PURE__ */ jsx8("span", { className: "font-sans text-[0.8125rem] font-medium text-text-primary", children: q.isCustom ? `Other: ${q.answer}` : q.answer })
|
|
220
281
|
] })
|
|
221
282
|
] }, q.id)) });
|
|
222
283
|
}
|
|
@@ -238,7 +299,7 @@ function AskUserPrompt({
|
|
|
238
299
|
}
|
|
239
300
|
if (!isSubmitAllDisabled) onSubmit();
|
|
240
301
|
};
|
|
241
|
-
const answerInput = /* @__PURE__ */
|
|
302
|
+
const answerInput = /* @__PURE__ */ jsx8(
|
|
242
303
|
"textarea",
|
|
243
304
|
{
|
|
244
305
|
rows: 1,
|
|
@@ -261,17 +322,17 @@ function AskUserPrompt({
|
|
|
261
322
|
)
|
|
262
323
|
}
|
|
263
324
|
);
|
|
264
|
-
return /* @__PURE__ */
|
|
325
|
+
return /* @__PURE__ */ jsxs4(
|
|
265
326
|
"div",
|
|
266
327
|
{
|
|
267
328
|
className: cn("aui-ask-user-prompt", className),
|
|
268
329
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-question-card` : void 0,
|
|
269
330
|
children: [
|
|
270
|
-
/* @__PURE__ */
|
|
271
|
-
/* @__PURE__ */
|
|
272
|
-
readOnly ? /* @__PURE__ */
|
|
273
|
-
!readOnly && isMultiQuestion && /* @__PURE__ */
|
|
274
|
-
/* @__PURE__ */
|
|
331
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex items-center justify-between rounded-t-lg border border-primary-button-bg/30 bg-primary-button-bg/10 px-4 py-2", children: [
|
|
332
|
+
/* @__PURE__ */ jsx8("div", { className: "font-sans text-sm font-medium text-primary-button-bg", children: totalQuestions > 1 ? "Questions" : currentQuestion.question }),
|
|
333
|
+
readOnly ? /* @__PURE__ */ jsx8("div", { className: "flex h-fit shrink-0 items-center gap-1 rounded border border-primary-button-bg/40 bg-primary-bg px-2 py-0.5 text-[0.6875rem] font-medium text-text-secondary", children: /* @__PURE__ */ jsx8("span", { className: "leading-tight", children: "Unanswered" }) }) : null,
|
|
334
|
+
!readOnly && isMultiQuestion && /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-1", children: [
|
|
335
|
+
/* @__PURE__ */ jsx8(
|
|
275
336
|
IconButton,
|
|
276
337
|
{
|
|
277
338
|
"aria-label": "Previous question",
|
|
@@ -279,10 +340,10 @@ function AskUserPrompt({
|
|
|
279
340
|
onClick: () => onCurrentQuestionIndexChange?.(Math.max(0, currentQuestionIndex - 1)),
|
|
280
341
|
disabled: currentQuestionIndex === 0,
|
|
281
342
|
className: "text-text-primary",
|
|
282
|
-
children: /* @__PURE__ */
|
|
343
|
+
children: /* @__PURE__ */ jsx8(Icon, { name: "chevron-left", size: "0.75em" })
|
|
283
344
|
}
|
|
284
345
|
),
|
|
285
|
-
/* @__PURE__ */
|
|
346
|
+
/* @__PURE__ */ jsx8(
|
|
286
347
|
IconButton,
|
|
287
348
|
{
|
|
288
349
|
"aria-label": "Next question",
|
|
@@ -290,19 +351,19 @@ function AskUserPrompt({
|
|
|
290
351
|
onClick: () => onCurrentQuestionIndexChange?.(Math.min(totalQuestions - 1, currentQuestionIndex + 1)),
|
|
291
352
|
disabled: currentQuestionIndex === totalQuestions - 1,
|
|
292
353
|
className: "text-text-primary",
|
|
293
|
-
children: /* @__PURE__ */
|
|
354
|
+
children: /* @__PURE__ */ jsx8(Icon, { name: "chevron-right", size: "0.75em" })
|
|
294
355
|
}
|
|
295
356
|
),
|
|
296
|
-
/* @__PURE__ */
|
|
297
|
-
/* @__PURE__ */
|
|
357
|
+
/* @__PURE__ */ jsxs4("div", { className: "ml-1 rounded bg-primary-button-bg/20 px-2 py-1 font-sans text-xs font-medium text-text-primary", children: [
|
|
358
|
+
/* @__PURE__ */ jsxs4("span", { children: [
|
|
298
359
|
" ",
|
|
299
360
|
currentQuestionIndex + 1,
|
|
300
361
|
" "
|
|
301
362
|
] }),
|
|
302
363
|
" ",
|
|
303
|
-
/* @__PURE__ */
|
|
364
|
+
/* @__PURE__ */ jsx8("span", { children: " of " }),
|
|
304
365
|
" ",
|
|
305
|
-
/* @__PURE__ */
|
|
366
|
+
/* @__PURE__ */ jsxs4("span", { children: [
|
|
306
367
|
" ",
|
|
307
368
|
totalQuestions,
|
|
308
369
|
" "
|
|
@@ -310,10 +371,10 @@ function AskUserPrompt({
|
|
|
310
371
|
] })
|
|
311
372
|
] })
|
|
312
373
|
] }),
|
|
313
|
-
/* @__PURE__ */
|
|
314
|
-
/* @__PURE__ */
|
|
315
|
-
isMultiQuestion && /* @__PURE__ */
|
|
316
|
-
/* @__PURE__ */
|
|
374
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-4 rounded-b-lg border border-t-0 border-border px-4 py-3", children: [
|
|
375
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-3", children: [
|
|
376
|
+
isMultiQuestion && /* @__PURE__ */ jsx8("div", { className: "font-sans text-xs font-medium text-text-primary", children: currentQuestion.question || "What would you like to do?" }),
|
|
377
|
+
/* @__PURE__ */ jsxs4(
|
|
317
378
|
"div",
|
|
318
379
|
{
|
|
319
380
|
className: "flex flex-col gap-3 overflow-visible",
|
|
@@ -323,7 +384,7 @@ function AskUserPrompt({
|
|
|
323
384
|
children: [
|
|
324
385
|
currentQuestion.options.map((opt, index) => {
|
|
325
386
|
const isSelected = currentAnswer.radioValue === opt;
|
|
326
|
-
return /* @__PURE__ */
|
|
387
|
+
return /* @__PURE__ */ jsxs4(
|
|
327
388
|
"label",
|
|
328
389
|
{
|
|
329
390
|
className: cn(
|
|
@@ -331,7 +392,7 @@ function AskUserPrompt({
|
|
|
331
392
|
readOnly ? "cursor-default" : "cursor-pointer"
|
|
332
393
|
),
|
|
333
394
|
children: [
|
|
334
|
-
/* @__PURE__ */
|
|
395
|
+
/* @__PURE__ */ jsx8(
|
|
335
396
|
"input",
|
|
336
397
|
{
|
|
337
398
|
type: "radio",
|
|
@@ -343,13 +404,13 @@ function AskUserPrompt({
|
|
|
343
404
|
className: "mt-0.5 accent-primary-button-bg"
|
|
344
405
|
}
|
|
345
406
|
),
|
|
346
|
-
/* @__PURE__ */
|
|
407
|
+
/* @__PURE__ */ jsx8("span", { className: "min-w-0 font-sans text-[0.8125rem] font-medium leading-snug text-text-primary", children: opt })
|
|
347
408
|
]
|
|
348
409
|
},
|
|
349
410
|
`${index}:${opt}`
|
|
350
411
|
);
|
|
351
412
|
}),
|
|
352
|
-
hasOptions ? /* @__PURE__ */
|
|
413
|
+
hasOptions ? /* @__PURE__ */ jsxs4(
|
|
353
414
|
"label",
|
|
354
415
|
{
|
|
355
416
|
className: cn(
|
|
@@ -357,7 +418,7 @@ function AskUserPrompt({
|
|
|
357
418
|
readOnly ? "cursor-default" : "cursor-pointer"
|
|
358
419
|
),
|
|
359
420
|
children: [
|
|
360
|
-
/* @__PURE__ */
|
|
421
|
+
/* @__PURE__ */ jsx8(
|
|
361
422
|
"input",
|
|
362
423
|
{
|
|
363
424
|
type: "radio",
|
|
@@ -369,7 +430,7 @@ function AskUserPrompt({
|
|
|
369
430
|
className: "mt-1 accent-primary-button-bg"
|
|
370
431
|
}
|
|
371
432
|
),
|
|
372
|
-
/* @__PURE__ */
|
|
433
|
+
/* @__PURE__ */ jsx8("div", { className: "min-w-0 flex-1", children: answerInput })
|
|
373
434
|
]
|
|
374
435
|
}
|
|
375
436
|
) : answerInput
|
|
@@ -377,7 +438,7 @@ function AskUserPrompt({
|
|
|
377
438
|
}
|
|
378
439
|
)
|
|
379
440
|
] }),
|
|
380
|
-
!readOnly && /* @__PURE__ */
|
|
441
|
+
!readOnly && /* @__PURE__ */ jsxs4(
|
|
381
442
|
"div",
|
|
382
443
|
{
|
|
383
444
|
className: cn("flex items-center", {
|
|
@@ -385,8 +446,8 @@ function AskUserPrompt({
|
|
|
385
446
|
"justify-start": !isMultiQuestion
|
|
386
447
|
}),
|
|
387
448
|
children: [
|
|
388
|
-
isMultiQuestion && isLastQuestion && !allQuestionsAnswered ? /* @__PURE__ */
|
|
389
|
-
isNextStep ? /* @__PURE__ */
|
|
449
|
+
isMultiQuestion && isLastQuestion && !allQuestionsAnswered ? /* @__PURE__ */ jsx8("span", { className: "text-xs font-medium text-failure-bg", children: "Answer all questions to submit" }) : /* @__PURE__ */ jsx8("span", {}),
|
|
450
|
+
isNextStep ? /* @__PURE__ */ jsx8(Button, { type: "button", size: "sm", onClick: goToNextQuestion, disabled: isSubmitDisabled, children: "Next" }) : /* @__PURE__ */ jsx8(Button, { type: "button", size: "sm", onClick: onSubmit, disabled: isSubmitAllDisabled, children: "Submit" })
|
|
390
451
|
]
|
|
391
452
|
}
|
|
392
453
|
)
|
|
@@ -397,7 +458,7 @@ function AskUserPrompt({
|
|
|
397
458
|
}
|
|
398
459
|
|
|
399
460
|
// src/atoms/adapters/McpAuthPromptAdapter.tsx
|
|
400
|
-
import { jsx as
|
|
461
|
+
import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
401
462
|
var DEFAULT_TITLE = "MCP Authentication Required";
|
|
402
463
|
function McpAuthPrompt({
|
|
403
464
|
servers,
|
|
@@ -409,26 +470,26 @@ function McpAuthPrompt({
|
|
|
409
470
|
className
|
|
410
471
|
}) {
|
|
411
472
|
if (servers.length === 0) return null;
|
|
412
|
-
return /* @__PURE__ */
|
|
473
|
+
return /* @__PURE__ */ jsxs5(
|
|
413
474
|
"div",
|
|
414
475
|
{
|
|
415
476
|
className: cn("aui-mcp-auth-prompt mt-2 overflow-hidden rounded-lg border border-border", className),
|
|
416
477
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-mcp-auth-card` : void 0,
|
|
417
478
|
children: [
|
|
418
|
-
/* @__PURE__ */
|
|
419
|
-
/* @__PURE__ */
|
|
420
|
-
servers.map((server) => /* @__PURE__ */
|
|
421
|
-
/* @__PURE__ */
|
|
422
|
-
/* @__PURE__ */
|
|
423
|
-
/* @__PURE__ */
|
|
424
|
-
/* @__PURE__ */
|
|
479
|
+
/* @__PURE__ */ jsx9("div", { className: "border-b border-primary-button-bg/30 bg-primary-button-bg/10 px-4 py-2", children: /* @__PURE__ */ jsx9("div", { className: "font-sans text-sm font-medium text-primary-button-bg", children: title }) }),
|
|
480
|
+
/* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-3 bg-primary-bg px-4 py-3", children: [
|
|
481
|
+
servers.map((server) => /* @__PURE__ */ jsxs5("div", { className: "flex items-center justify-between gap-4", children: [
|
|
482
|
+
/* @__PURE__ */ jsxs5("div", { className: "flex min-w-0 items-center gap-1.5 text-sm", children: [
|
|
483
|
+
/* @__PURE__ */ jsx9("span", { className: "shrink-0 font-medium text-text-secondary", children: "MCP Server Name" }),
|
|
484
|
+
/* @__PURE__ */ jsx9("span", { className: "shrink-0 text-xs font-semibold text-text-secondary", children: ":" }),
|
|
485
|
+
/* @__PURE__ */ jsx9("span", { className: "truncate font-sans font-medium text-text-primary", children: server.name })
|
|
425
486
|
] }),
|
|
426
|
-
/* @__PURE__ */
|
|
487
|
+
/* @__PURE__ */ jsxs5(Button, { size: "sm", disabled: readOnly, onClick: () => onConnect(server.id), className: "shrink-0", children: [
|
|
427
488
|
"Connect",
|
|
428
|
-
/* @__PURE__ */
|
|
489
|
+
/* @__PURE__ */ jsx9(Icon, { name: "external-link", size: "0.75em", className: "ml-1" })
|
|
429
490
|
] })
|
|
430
491
|
] }, server.id)),
|
|
431
|
-
onContinue && /* @__PURE__ */
|
|
492
|
+
onContinue && /* @__PURE__ */ jsx9("div", { className: "flex justify-end border-t border-border pt-2", children: /* @__PURE__ */ jsx9(Button, { size: "sm", disabled: readOnly, onClick: onContinue, children: "Continue" }) })
|
|
432
493
|
] })
|
|
433
494
|
]
|
|
434
495
|
}
|
|
@@ -436,10 +497,10 @@ function McpAuthPrompt({
|
|
|
436
497
|
}
|
|
437
498
|
|
|
438
499
|
// src/atoms/agent-chat/StatusDot.tsx
|
|
439
|
-
import { jsx as
|
|
500
|
+
import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
440
501
|
function StatusDot({ className, colorClassName = "bg-warning-bg" }) {
|
|
441
|
-
return /* @__PURE__ */
|
|
442
|
-
/* @__PURE__ */
|
|
502
|
+
return /* @__PURE__ */ jsxs6("span", { "aria-hidden": true, className: cn("relative inline-flex h-2 w-2 shrink-0", className), children: [
|
|
503
|
+
/* @__PURE__ */ jsx10(
|
|
443
504
|
"span",
|
|
444
505
|
{
|
|
445
506
|
className: cn(
|
|
@@ -448,12 +509,12 @@ function StatusDot({ className, colorClassName = "bg-warning-bg" }) {
|
|
|
448
509
|
)
|
|
449
510
|
}
|
|
450
511
|
),
|
|
451
|
-
/* @__PURE__ */
|
|
512
|
+
/* @__PURE__ */ jsx10("span", { className: cn("relative inline-flex h-2 w-2 rounded-full", colorClassName) })
|
|
452
513
|
] });
|
|
453
514
|
}
|
|
454
515
|
|
|
455
516
|
// src/atoms/agent-chat/StepIconBox.tsx
|
|
456
|
-
import { jsx as
|
|
517
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
457
518
|
function StepIconBox({
|
|
458
519
|
icon,
|
|
459
520
|
iconSize = "0.75em",
|
|
@@ -461,7 +522,7 @@ function StepIconBox({
|
|
|
461
522
|
className,
|
|
462
523
|
iconClassName
|
|
463
524
|
}) {
|
|
464
|
-
return /* @__PURE__ */
|
|
525
|
+
return /* @__PURE__ */ jsx11("div", { className: cn("flex size-5 shrink-0 items-center justify-center", className), children: /* @__PURE__ */ jsx11(
|
|
465
526
|
Icon,
|
|
466
527
|
{
|
|
467
528
|
name: icon,
|
|
@@ -472,7 +533,7 @@ function StepIconBox({
|
|
|
472
533
|
}
|
|
473
534
|
|
|
474
535
|
// src/atoms/agent-chat/AgentStepRow.tsx
|
|
475
|
-
import { Fragment, jsx as
|
|
536
|
+
import { Fragment, jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
476
537
|
function AgentStepRow({
|
|
477
538
|
icon,
|
|
478
539
|
iconVariant = "primary",
|
|
@@ -505,14 +566,14 @@ function AgentStepRow({
|
|
|
505
566
|
const isSuccess = status === "success";
|
|
506
567
|
const isError = status === "error";
|
|
507
568
|
const alignStart = align === "start";
|
|
508
|
-
return /* @__PURE__ */
|
|
569
|
+
return /* @__PURE__ */ jsxs7(
|
|
509
570
|
"div",
|
|
510
571
|
{
|
|
511
572
|
className: cn("flex min-w-0 flex-col", className),
|
|
512
573
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-step-row` : void 0,
|
|
513
574
|
children: [
|
|
514
|
-
/* @__PURE__ */
|
|
515
|
-
showChevronColumn && (showExpandChevron ? /* @__PURE__ */
|
|
575
|
+
/* @__PURE__ */ jsxs7("div", { className: cn("flex gap-2", alignStart ? "items-start" : "items-center"), children: [
|
|
576
|
+
showChevronColumn && (showExpandChevron ? /* @__PURE__ */ jsx12(
|
|
516
577
|
"button",
|
|
517
578
|
{
|
|
518
579
|
type: "button",
|
|
@@ -521,7 +582,7 @@ function AgentStepRow({
|
|
|
521
582
|
"aria-expanded": expanded,
|
|
522
583
|
"aria-label": expanded ? "Collapse step" : "Expand step",
|
|
523
584
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-chevron` : void 0,
|
|
524
|
-
children: /* @__PURE__ */
|
|
585
|
+
children: /* @__PURE__ */ jsx12(
|
|
525
586
|
Icon,
|
|
526
587
|
{
|
|
527
588
|
name: "chevron-right",
|
|
@@ -533,9 +594,9 @@ function AgentStepRow({
|
|
|
533
594
|
}
|
|
534
595
|
)
|
|
535
596
|
}
|
|
536
|
-
) : /* @__PURE__ */
|
|
537
|
-
/* @__PURE__ */
|
|
538
|
-
/* @__PURE__ */
|
|
597
|
+
) : /* @__PURE__ */ jsx12("div", { className: "w-5 shrink-0" })),
|
|
598
|
+
/* @__PURE__ */ jsx12("div", { className: cn("relative flex shrink-0 flex-col items-center", alignStart ? "self-start" : "self-center"), children: /* @__PURE__ */ jsx12(StepIconBox, { icon, variant: iconVariant, iconClassName, iconSize }) }),
|
|
599
|
+
/* @__PURE__ */ jsxs7(
|
|
539
600
|
"div",
|
|
540
601
|
{
|
|
541
602
|
className: cn("flex min-w-0 flex-1 flex-col justify-center", {
|
|
@@ -543,9 +604,9 @@ function AgentStepRow({
|
|
|
543
604
|
}),
|
|
544
605
|
onClick: showExpandChevron ? onToggle : void 0,
|
|
545
606
|
children: [
|
|
546
|
-
label && /* @__PURE__ */
|
|
547
|
-
title && /* @__PURE__ */
|
|
548
|
-
/* @__PURE__ */
|
|
607
|
+
label && /* @__PURE__ */ jsx12("span", { className: "text-xs font-medium leading-none text-text-secondary", children: label }),
|
|
608
|
+
title && /* @__PURE__ */ jsxs7("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
609
|
+
/* @__PURE__ */ jsx12(
|
|
549
610
|
"span",
|
|
550
611
|
{
|
|
551
612
|
className: cn(
|
|
@@ -556,7 +617,7 @@ function AgentStepRow({
|
|
|
556
617
|
children: title
|
|
557
618
|
}
|
|
558
619
|
),
|
|
559
|
-
isSuccess && /* @__PURE__ */
|
|
620
|
+
isSuccess && /* @__PURE__ */ jsx12(
|
|
560
621
|
Icon,
|
|
561
622
|
{
|
|
562
623
|
name: "circle-check",
|
|
@@ -566,7 +627,7 @@ function AgentStepRow({
|
|
|
566
627
|
}
|
|
567
628
|
)
|
|
568
629
|
] }),
|
|
569
|
-
body && /* @__PURE__ */
|
|
630
|
+
body && /* @__PURE__ */ jsx12(
|
|
570
631
|
"div",
|
|
571
632
|
{
|
|
572
633
|
className: "mt-1 font-sans text-sm text-text-secondary",
|
|
@@ -580,13 +641,13 @@ function AgentStepRow({
|
|
|
580
641
|
]
|
|
581
642
|
}
|
|
582
643
|
),
|
|
583
|
-
/* @__PURE__ */
|
|
584
|
-
statusText && /* @__PURE__ */
|
|
585
|
-
isRunning && /* @__PURE__ */
|
|
586
|
-
/* @__PURE__ */
|
|
644
|
+
/* @__PURE__ */ jsxs7("div", { className: cn("flex shrink-0 items-center gap-2", alignStart ? "self-start" : "self-center"), children: [
|
|
645
|
+
statusText && /* @__PURE__ */ jsxs7("span", { className: "flex items-center gap-1", children: [
|
|
646
|
+
isRunning && /* @__PURE__ */ jsx12(StatusDot, {}),
|
|
647
|
+
/* @__PURE__ */ jsx12("span", { className: "font-sans text-xs font-medium leading-4 text-text-secondary", children: statusText })
|
|
587
648
|
] }),
|
|
588
|
-
!statusText && isRunning && /* @__PURE__ */
|
|
589
|
-
isError && /* @__PURE__ */
|
|
649
|
+
!statusText && isRunning && /* @__PURE__ */ jsx12(Fragment, { children: showSpinner ? /* @__PURE__ */ jsx12("div", { className: "ml-1", children: /* @__PURE__ */ jsx12(Spinner, { size: 12 }) }) : /* @__PURE__ */ jsx12(StatusDot, {}) }),
|
|
650
|
+
isError && /* @__PURE__ */ jsx12(
|
|
590
651
|
Icon,
|
|
591
652
|
{
|
|
592
653
|
name: "circle-xmark",
|
|
@@ -597,27 +658,27 @@ function AgentStepRow({
|
|
|
597
658
|
)
|
|
598
659
|
] })
|
|
599
660
|
] }),
|
|
600
|
-
expanded && hasChildren && /* @__PURE__ */
|
|
661
|
+
expanded && hasChildren && /* @__PURE__ */ jsxs7(
|
|
601
662
|
"div",
|
|
602
663
|
{
|
|
603
664
|
className: "mt-2 flex min-w-0 gap-3",
|
|
604
665
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-expanded-content` : void 0,
|
|
605
666
|
children: [
|
|
606
|
-
showChevronColumn && /* @__PURE__ */
|
|
607
|
-
showContentConnector && showConnector && /* @__PURE__ */
|
|
608
|
-
/* @__PURE__ */
|
|
667
|
+
showChevronColumn && /* @__PURE__ */ jsx12("div", { className: "w-5 shrink-0" }),
|
|
668
|
+
showContentConnector && showConnector && /* @__PURE__ */ jsx12("div", { className: "flex w-3 shrink-0 justify-center", children: /* @__PURE__ */ jsx12("div", { className: "w-px bg-border" }) }),
|
|
669
|
+
/* @__PURE__ */ jsx12("div", { className: "min-w-0 flex-1", children })
|
|
609
670
|
]
|
|
610
671
|
}
|
|
611
672
|
),
|
|
612
|
-
hasPersistentChildren && /* @__PURE__ */
|
|
673
|
+
hasPersistentChildren && /* @__PURE__ */ jsxs7(
|
|
613
674
|
"div",
|
|
614
675
|
{
|
|
615
676
|
className: cn("flex min-w-0", showPersistentContentConnector ? "gap-3" : "gap-2"),
|
|
616
677
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-persistent-content` : void 0,
|
|
617
678
|
children: [
|
|
618
|
-
showChevronColumn && /* @__PURE__ */
|
|
619
|
-
showPersistentContentConnector && showConnector && /* @__PURE__ */
|
|
620
|
-
/* @__PURE__ */
|
|
679
|
+
showChevronColumn && /* @__PURE__ */ jsx12("div", { className: "w-5 shrink-0" }),
|
|
680
|
+
showPersistentContentConnector && showConnector && /* @__PURE__ */ jsx12("div", { className: "flex w-3 shrink-0 justify-center", children: /* @__PURE__ */ jsx12("div", { className: "w-px bg-border" }) }),
|
|
681
|
+
/* @__PURE__ */ jsx12("div", { className: "min-w-0 flex-1", children: persistentChildren })
|
|
621
682
|
]
|
|
622
683
|
}
|
|
623
684
|
)
|
|
@@ -627,7 +688,7 @@ function AgentStepRow({
|
|
|
627
688
|
}
|
|
628
689
|
|
|
629
690
|
// src/atoms/adapters/ReasoningCardAdapter.tsx
|
|
630
|
-
import { jsx as
|
|
691
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
631
692
|
function ReasoningCard({
|
|
632
693
|
content,
|
|
633
694
|
isStreaming = false,
|
|
@@ -646,12 +707,12 @@ function ReasoningCard({
|
|
|
646
707
|
const status = isStreaming ? "running" : content.length > 0 ? "success" : "idle";
|
|
647
708
|
const title = isStreaming ? headingText : reasoningTimeText ?? headingText;
|
|
648
709
|
const showContent = expanded && content.length > 0;
|
|
649
|
-
return /* @__PURE__ */
|
|
710
|
+
return /* @__PURE__ */ jsx13(
|
|
650
711
|
"div",
|
|
651
712
|
{
|
|
652
713
|
className: cn("aui-reasoning-card mt-2 flex min-w-0 flex-col", className),
|
|
653
714
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-${isShortText ? "reasoning-inline" : "reasoning-accordion"}` : void 0,
|
|
654
|
-
children: /* @__PURE__ */
|
|
715
|
+
children: /* @__PURE__ */ jsx13(
|
|
655
716
|
AgentStepRow,
|
|
656
717
|
{
|
|
657
718
|
icon: isStreaming ? "brain" : "brain-regular",
|
|
@@ -662,13 +723,13 @@ function ReasoningCard({
|
|
|
662
723
|
onToggle,
|
|
663
724
|
status,
|
|
664
725
|
dataTestPrefix,
|
|
665
|
-
children: showContent && /* @__PURE__ */
|
|
726
|
+
children: showContent && /* @__PURE__ */ jsx13(
|
|
666
727
|
"div",
|
|
667
728
|
{
|
|
668
729
|
ref: contentRef,
|
|
669
730
|
className: "py-2 pt-0 font-sans text-sm font-normal text-text-secondary",
|
|
670
731
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-content` : void 0,
|
|
671
|
-
children: /* @__PURE__ */
|
|
732
|
+
children: /* @__PURE__ */ jsx13(Markdown2, { content, className: "font-sans text-sm text-text-secondary" })
|
|
672
733
|
}
|
|
673
734
|
)
|
|
674
735
|
}
|
|
@@ -678,16 +739,16 @@ function ReasoningCard({
|
|
|
678
739
|
}
|
|
679
740
|
|
|
680
741
|
// src/atoms/ResumeUnavailable.tsx
|
|
681
|
-
import { jsx as
|
|
742
|
+
import { jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
682
743
|
function ResumeUnavailable({ className }) {
|
|
683
|
-
return /* @__PURE__ */
|
|
744
|
+
return /* @__PURE__ */ jsxs8(
|
|
684
745
|
"p",
|
|
685
746
|
{
|
|
686
747
|
role: "status",
|
|
687
748
|
"aria-live": "polite",
|
|
688
749
|
className: cn("text-text-secondary flex items-center gap-2 py-2 text-sm leading-snug", className),
|
|
689
750
|
children: [
|
|
690
|
-
/* @__PURE__ */
|
|
751
|
+
/* @__PURE__ */ jsx14("span", { className: "animate-pulse font-sans", "aria-hidden": true, children: "\u25CF" }),
|
|
691
752
|
"Still generating a response. It'll appear here when ready."
|
|
692
753
|
]
|
|
693
754
|
}
|
|
@@ -853,7 +914,7 @@ function useCompactOverlayStyle(ref, compact, contentSized = false) {
|
|
|
853
914
|
}
|
|
854
915
|
|
|
855
916
|
// src/atoms/primitives/CenteredModal.tsx
|
|
856
|
-
import { jsx as
|
|
917
|
+
import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
857
918
|
function CenteredModal({
|
|
858
919
|
open,
|
|
859
920
|
onOpenChange,
|
|
@@ -886,7 +947,7 @@ function CenteredModal({
|
|
|
886
947
|
el.addEventListener("close", handler);
|
|
887
948
|
return () => el.removeEventListener("close", handler);
|
|
888
949
|
}, [onOpenChange]);
|
|
889
|
-
return /* @__PURE__ */
|
|
950
|
+
return /* @__PURE__ */ jsxs9(
|
|
890
951
|
"dialog",
|
|
891
952
|
{
|
|
892
953
|
ref,
|
|
@@ -911,13 +972,13 @@ function CenteredModal({
|
|
|
911
972
|
className
|
|
912
973
|
),
|
|
913
974
|
children: [
|
|
914
|
-
/* @__PURE__ */
|
|
975
|
+
/* @__PURE__ */ jsxs9("header", { className: "bg-topbar-bg flex shrink-0 items-center gap-3 border-b border-border px-5 py-4", children: [
|
|
915
976
|
headerIcon,
|
|
916
|
-
/* @__PURE__ */
|
|
917
|
-
/* @__PURE__ */
|
|
918
|
-
description ? /* @__PURE__ */
|
|
977
|
+
/* @__PURE__ */ jsxs9("div", { className: "min-w-0 flex-1", children: [
|
|
978
|
+
/* @__PURE__ */ jsx15("h2", { id: titleId, className: "text-text-primary text-lg font-semibold tracking-tight", children: title }),
|
|
979
|
+
description ? /* @__PURE__ */ jsx15("p", { id: descriptionId, className: "text-text-secondary mt-1 text-sm", children: description }) : null
|
|
919
980
|
] }),
|
|
920
|
-
/* @__PURE__ */
|
|
981
|
+
/* @__PURE__ */ jsx15(
|
|
921
982
|
"button",
|
|
922
983
|
{
|
|
923
984
|
type: "button",
|
|
@@ -925,28 +986,28 @@ function CenteredModal({
|
|
|
925
986
|
title: "Close",
|
|
926
987
|
className: auiButtonClass({ variant: "ghost", size: "icon" }),
|
|
927
988
|
onClick: () => onOpenChange(false),
|
|
928
|
-
children: /* @__PURE__ */
|
|
989
|
+
children: /* @__PURE__ */ jsx15(Icon, { name: "xmark" })
|
|
929
990
|
}
|
|
930
991
|
)
|
|
931
992
|
] }),
|
|
932
|
-
/* @__PURE__ */
|
|
993
|
+
/* @__PURE__ */ jsx15("div", { className: "flex min-h-0 flex-1 flex-col overflow-x-hidden overflow-y-auto", children })
|
|
933
994
|
]
|
|
934
995
|
}
|
|
935
996
|
);
|
|
936
997
|
}
|
|
937
998
|
|
|
938
999
|
// src/atoms/primitives/SearchInput.tsx
|
|
939
|
-
import { jsx as
|
|
1000
|
+
import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
940
1001
|
var SearchInput = ({ query, setQuery, placeholder = "Search" }) => {
|
|
941
|
-
return /* @__PURE__ */
|
|
942
|
-
/* @__PURE__ */
|
|
1002
|
+
return /* @__PURE__ */ jsxs10("label", { className: "relative block", children: [
|
|
1003
|
+
/* @__PURE__ */ jsx16(
|
|
943
1004
|
Icon,
|
|
944
1005
|
{
|
|
945
1006
|
name: "search",
|
|
946
1007
|
className: "text-text-secondary pointer-events-none absolute top-1/2 left-2.5 size-3.5 -translate-y-1/2"
|
|
947
1008
|
}
|
|
948
1009
|
),
|
|
949
|
-
/* @__PURE__ */
|
|
1010
|
+
/* @__PURE__ */ jsx16(
|
|
950
1011
|
"input",
|
|
951
1012
|
{
|
|
952
1013
|
type: "search",
|
|
@@ -963,15 +1024,15 @@ var SearchInput_default = SearchInput;
|
|
|
963
1024
|
|
|
964
1025
|
// src/atoms/primitives/Skeleton.tsx
|
|
965
1026
|
import "react";
|
|
966
|
-
import { jsx as
|
|
1027
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
967
1028
|
function Skeleton({ className, ...props }) {
|
|
968
|
-
return /* @__PURE__ */
|
|
1029
|
+
return /* @__PURE__ */ jsx17("div", { className: cn("animate-pulse rounded-md bg-secondary-bg", className), ...props });
|
|
969
1030
|
}
|
|
970
1031
|
|
|
971
1032
|
// src/atoms/primitives/Tooltip.tsx
|
|
972
1033
|
import { cloneElement, isValidElement, useLayoutEffect as useLayoutEffect2, useRef as useRef3, useState as useState5 } from "react";
|
|
973
1034
|
import { createPortal } from "react-dom";
|
|
974
|
-
import { jsx as
|
|
1035
|
+
import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
975
1036
|
function themePortalRoot(from) {
|
|
976
1037
|
const dialog = from?.closest("dialog");
|
|
977
1038
|
if (dialog instanceof HTMLElement) return dialog;
|
|
@@ -1028,7 +1089,7 @@ function Tooltip({ content, children, className, side = "top" }) {
|
|
|
1028
1089
|
}
|
|
1029
1090
|
});
|
|
1030
1091
|
const tooltip = visible && content != null && pos != null ? createPortal(
|
|
1031
|
-
/* @__PURE__ */
|
|
1092
|
+
/* @__PURE__ */ jsx18(
|
|
1032
1093
|
"span",
|
|
1033
1094
|
{
|
|
1034
1095
|
role: "tooltip",
|
|
@@ -1047,17 +1108,17 @@ function Tooltip({ content, children, className, side = "top" }) {
|
|
|
1047
1108
|
),
|
|
1048
1109
|
themePortalRoot(triggerWrapRef.current)
|
|
1049
1110
|
) : null;
|
|
1050
|
-
return /* @__PURE__ */
|
|
1111
|
+
return /* @__PURE__ */ jsxs11("span", { ref: triggerWrapRef, className: "relative inline-flex", children: [
|
|
1051
1112
|
child,
|
|
1052
1113
|
tooltip
|
|
1053
1114
|
] });
|
|
1054
1115
|
}
|
|
1055
1116
|
function LightTooltip({ title, children, className, size: _size, side }) {
|
|
1056
|
-
return /* @__PURE__ */
|
|
1117
|
+
return /* @__PURE__ */ jsx18(Tooltip, { content: title, className, side, children });
|
|
1057
1118
|
}
|
|
1058
1119
|
|
|
1059
1120
|
// src/atoms/AgentsLibrary.tsx
|
|
1060
|
-
import { Fragment as Fragment2, jsx as
|
|
1121
|
+
import { Fragment as Fragment2, jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1061
1122
|
function displayModelLabel(modelName) {
|
|
1062
1123
|
const slash = modelName.lastIndexOf("/");
|
|
1063
1124
|
return slash >= 0 ? modelName.slice(slash + 1) : modelName;
|
|
@@ -1071,7 +1132,7 @@ function AgentLibraryRow({ agent, showEdit, onTry, onEdit }) {
|
|
|
1071
1132
|
const mcpNames = (spec?.mcpServers ?? []).map((m) => m.name).filter(Boolean);
|
|
1072
1133
|
const connectorsTitle = mcpNames.length ? `Connectors: ${mcpNames.join(", ")}` : `${mcpCount} connectors`;
|
|
1073
1134
|
const skillsTitle = skillNames.length ? `Skills: ${skillNames.join(", ")}` : `${skillsCount} skills`;
|
|
1074
|
-
return /* @__PURE__ */
|
|
1135
|
+
return /* @__PURE__ */ jsxs12(
|
|
1075
1136
|
"div",
|
|
1076
1137
|
{
|
|
1077
1138
|
role: "menuitem",
|
|
@@ -1081,24 +1142,24 @@ function AgentLibraryRow({ agent, showEdit, onTry, onEdit }) {
|
|
|
1081
1142
|
"focus-within:border-border focus-within:bg-ghost-button-hover"
|
|
1082
1143
|
),
|
|
1083
1144
|
children: [
|
|
1084
|
-
/* @__PURE__ */
|
|
1085
|
-
/* @__PURE__ */
|
|
1086
|
-
spec != null ? /* @__PURE__ */
|
|
1087
|
-
modelName ? /* @__PURE__ */
|
|
1088
|
-
/* @__PURE__ */
|
|
1089
|
-
/* @__PURE__ */
|
|
1145
|
+
/* @__PURE__ */ jsx19("span", { className: "bg-primary-bg text-text-secondary inline-flex size-8 shrink-0 items-center justify-center rounded-md border border-border", children: /* @__PURE__ */ jsx19(Icon, { name: "robot", className: "size-4" }) }),
|
|
1146
|
+
/* @__PURE__ */ jsx19("span", { className: "text-text-primary min-w-0 flex-1 truncate text-left text-sm font-medium leading-tight", children: agent.name }),
|
|
1147
|
+
spec != null ? /* @__PURE__ */ jsxs12("span", { className: "text-text-secondary flex shrink-0 items-center gap-2", children: [
|
|
1148
|
+
modelName ? /* @__PURE__ */ jsxs12("span", { className: "bg-primary-button-bg/10 text-primary-button-bg inline-flex max-w-[8rem] items-center gap-1 truncate rounded-full px-2 py-0.5 text-xs font-medium", children: [
|
|
1149
|
+
/* @__PURE__ */ jsx19(Icon, { name: "cpu", className: "size-3.5 shrink-0" }),
|
|
1150
|
+
/* @__PURE__ */ jsx19("span", { className: "truncate", children: displayModelLabel(modelName) })
|
|
1090
1151
|
] }) : null,
|
|
1091
|
-
/* @__PURE__ */
|
|
1092
|
-
/* @__PURE__ */
|
|
1152
|
+
/* @__PURE__ */ jsx19(Tooltip, { content: connectorsTitle, children: /* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 text-xs", "aria-label": connectorsTitle, children: [
|
|
1153
|
+
/* @__PURE__ */ jsx19(Icon, { name: "plug", className: "size-3.5" }),
|
|
1093
1154
|
mcpCount
|
|
1094
1155
|
] }) }),
|
|
1095
|
-
/* @__PURE__ */
|
|
1096
|
-
/* @__PURE__ */
|
|
1156
|
+
/* @__PURE__ */ jsx19(Tooltip, { content: skillsTitle, children: /* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 text-xs", "aria-label": skillsTitle, children: [
|
|
1157
|
+
/* @__PURE__ */ jsx19(Icon, { name: "lightbulb", className: "size-3.5" }),
|
|
1097
1158
|
skillsCount
|
|
1098
1159
|
] }) })
|
|
1099
1160
|
] }) : null,
|
|
1100
|
-
/* @__PURE__ */
|
|
1101
|
-
showEdit ? /* @__PURE__ */
|
|
1161
|
+
/* @__PURE__ */ jsxs12("span", { className: "flex shrink-0 items-center gap-1.5", children: [
|
|
1162
|
+
showEdit ? /* @__PURE__ */ jsxs12(
|
|
1102
1163
|
"button",
|
|
1103
1164
|
{
|
|
1104
1165
|
type: "button",
|
|
@@ -1109,12 +1170,12 @@ function AgentLibraryRow({ agent, showEdit, onTry, onEdit }) {
|
|
|
1109
1170
|
}),
|
|
1110
1171
|
onClick: onEdit,
|
|
1111
1172
|
children: [
|
|
1112
|
-
/* @__PURE__ */
|
|
1173
|
+
/* @__PURE__ */ jsx19(Icon, { name: "pencil", className: "size-3.5" }),
|
|
1113
1174
|
"Edit"
|
|
1114
1175
|
]
|
|
1115
1176
|
}
|
|
1116
1177
|
) : null,
|
|
1117
|
-
/* @__PURE__ */
|
|
1178
|
+
/* @__PURE__ */ jsxs12(
|
|
1118
1179
|
"button",
|
|
1119
1180
|
{
|
|
1120
1181
|
type: "button",
|
|
@@ -1125,7 +1186,7 @@ function AgentLibraryRow({ agent, showEdit, onTry, onEdit }) {
|
|
|
1125
1186
|
}),
|
|
1126
1187
|
onClick: onTry,
|
|
1127
1188
|
children: [
|
|
1128
|
-
/* @__PURE__ */
|
|
1189
|
+
/* @__PURE__ */ jsx19(Icon, { name: "play", className: "size-3.5" }),
|
|
1129
1190
|
"Try"
|
|
1130
1191
|
]
|
|
1131
1192
|
}
|
|
@@ -1171,23 +1232,23 @@ function AgentsLibrary({ open, onOpenChange, onSelectAgent }) {
|
|
|
1171
1232
|
agentSpec
|
|
1172
1233
|
});
|
|
1173
1234
|
};
|
|
1174
|
-
return /* @__PURE__ */
|
|
1175
|
-
/* @__PURE__ */
|
|
1176
|
-
/* @__PURE__ */
|
|
1177
|
-
isSearching ? /* @__PURE__ */
|
|
1235
|
+
return /* @__PURE__ */ jsx19(CenteredModal, { open, onOpenChange, title: "Agents Library", children: /* @__PURE__ */ jsxs12("div", { className: "bg-secondary-bg/40 flex min-h-0 flex-1 flex-col", children: [
|
|
1236
|
+
/* @__PURE__ */ jsxs12("div", { className: "shrink-0 border-b border-border px-4 py-3", children: [
|
|
1237
|
+
/* @__PURE__ */ jsx19(SearchInput_default, { query, setQuery, placeholder: "Search agents" }),
|
|
1238
|
+
isSearching ? /* @__PURE__ */ jsx19("p", { className: "text-text-secondary mt-1.5 text-xs", role: "status", children: "Searching\u2026" }) : null
|
|
1178
1239
|
] }),
|
|
1179
|
-
/* @__PURE__ */
|
|
1240
|
+
/* @__PURE__ */ jsx19(
|
|
1180
1241
|
"div",
|
|
1181
1242
|
{
|
|
1182
1243
|
ref: listRef,
|
|
1183
1244
|
className: "flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto p-2",
|
|
1184
1245
|
role: "menu",
|
|
1185
1246
|
"aria-label": "Agents",
|
|
1186
|
-
children: isInitialLoading ? /* @__PURE__ */
|
|
1247
|
+
children: isInitialLoading ? /* @__PURE__ */ jsx19("div", { className: "flex flex-col gap-2 p-1", role: "status", "aria-label": "Loading agents", children: Array.from({ length: 6 }, (_, i) => /* @__PURE__ */ jsx19(Skeleton, { className: "h-11 w-full rounded-md" }, i)) }) : error ? /* @__PURE__ */ jsx19("p", { className: "text-failure-bg px-3 py-8 text-center text-sm", children: error }) : agents.length === 0 ? /* @__PURE__ */ jsx19("p", { className: "text-text-secondary px-3 py-8 text-center text-sm", children: query.trim() ? `No agents match "${query.trim()}".` : "No agents yet. Build one in a chat, then save it as an agent." }) : /* @__PURE__ */ jsxs12(Fragment2, { children: [
|
|
1187
1248
|
agents.map((agent) => {
|
|
1188
1249
|
const agentSpec = agent.agentSpec;
|
|
1189
1250
|
const showEdit = canEdit && agentSpec != null;
|
|
1190
|
-
return /* @__PURE__ */
|
|
1251
|
+
return /* @__PURE__ */ jsx19(
|
|
1191
1252
|
AgentLibraryRow,
|
|
1192
1253
|
{
|
|
1193
1254
|
agent,
|
|
@@ -1200,7 +1261,7 @@ function AgentsLibrary({ open, onOpenChange, onSelectAgent }) {
|
|
|
1200
1261
|
libraryAgentId(agent)
|
|
1201
1262
|
);
|
|
1202
1263
|
}),
|
|
1203
|
-
hasMore ? /* @__PURE__ */
|
|
1264
|
+
hasMore ? /* @__PURE__ */ jsx19("div", { ref: sentinelRef, className: "flex h-8 shrink-0 items-center justify-center", "aria-hidden": true, children: loadingMore ? /* @__PURE__ */ jsx19("span", { className: "text-text-secondary text-xs", role: "status", children: "Loading more\u2026" }) : null }) : null
|
|
1204
1265
|
] })
|
|
1205
1266
|
}
|
|
1206
1267
|
)
|
|
@@ -1209,7 +1270,7 @@ function AgentsLibrary({ open, onOpenChange, onSelectAgent }) {
|
|
|
1209
1270
|
|
|
1210
1271
|
// src/atoms/AgentsLibraryButton.tsx
|
|
1211
1272
|
import { useEffect as useEffect5, useState as useState7 } from "react";
|
|
1212
|
-
import { Fragment as Fragment3, jsx as
|
|
1273
|
+
import { Fragment as Fragment3, jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1213
1274
|
function AgentsLibraryButton({ className, compact = false, onSelectAgent }) {
|
|
1214
1275
|
const AgentsLibrary2 = useSlot("AgentsLibrary");
|
|
1215
1276
|
const server = useOptionalServer();
|
|
@@ -1230,8 +1291,8 @@ function AgentsLibraryButton({ className, compact = false, onSelectAgent }) {
|
|
|
1230
1291
|
};
|
|
1231
1292
|
}, [enabled, server, agentsListEpoch, compact]);
|
|
1232
1293
|
if (!enabled) return null;
|
|
1233
|
-
return /* @__PURE__ */
|
|
1234
|
-
/* @__PURE__ */
|
|
1294
|
+
return /* @__PURE__ */ jsxs13(Fragment3, { children: [
|
|
1295
|
+
/* @__PURE__ */ jsx20("div", { className: cn("relative min-w-0", compact ? "w-8" : "w-full", className), children: /* @__PURE__ */ jsxs13(
|
|
1235
1296
|
"button",
|
|
1236
1297
|
{
|
|
1237
1298
|
type: "button",
|
|
@@ -1249,29 +1310,29 @@ function AgentsLibraryButton({ className, compact = false, onSelectAgent }) {
|
|
|
1249
1310
|
}),
|
|
1250
1311
|
onClick: () => setOpen(true),
|
|
1251
1312
|
children: [
|
|
1252
|
-
/* @__PURE__ */
|
|
1253
|
-
!compact ? /* @__PURE__ */
|
|
1254
|
-
/* @__PURE__ */
|
|
1313
|
+
/* @__PURE__ */ jsx20(Icon, { name: "robot" }),
|
|
1314
|
+
!compact ? /* @__PURE__ */ jsxs13(Fragment3, { children: [
|
|
1315
|
+
/* @__PURE__ */ jsxs13("span", { className: "truncate", children: [
|
|
1255
1316
|
"Agents Library",
|
|
1256
|
-
countLabel != null ? /* @__PURE__ */
|
|
1317
|
+
countLabel != null ? /* @__PURE__ */ jsxs13("span", { className: "text-text-secondary", children: [
|
|
1257
1318
|
" (",
|
|
1258
1319
|
countLabel,
|
|
1259
1320
|
")"
|
|
1260
1321
|
] }) : null
|
|
1261
1322
|
] }),
|
|
1262
|
-
/* @__PURE__ */
|
|
1323
|
+
/* @__PURE__ */ jsx20(Icon, { name: "chevron-right", className: "ml-auto size-3.5 shrink-0 opacity-60" })
|
|
1263
1324
|
] }) : null
|
|
1264
1325
|
]
|
|
1265
1326
|
}
|
|
1266
1327
|
) }),
|
|
1267
|
-
/* @__PURE__ */
|
|
1328
|
+
/* @__PURE__ */ jsx20(AgentsLibrary2, { open, onOpenChange: setOpen, onSelectAgent })
|
|
1268
1329
|
] });
|
|
1269
1330
|
}
|
|
1270
1331
|
|
|
1271
1332
|
// src/atoms/AssistantMessageBubble.tsx
|
|
1272
|
-
import { jsx as
|
|
1333
|
+
import { jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1273
1334
|
function AssistantMessageBubble({ children, error, actionBar, className }) {
|
|
1274
|
-
return /* @__PURE__ */
|
|
1335
|
+
return /* @__PURE__ */ jsxs14(
|
|
1275
1336
|
"div",
|
|
1276
1337
|
{
|
|
1277
1338
|
"data-slot": "aui_assistant-message-root",
|
|
@@ -1280,11 +1341,11 @@ function AssistantMessageBubble({ children, error, actionBar, className }) {
|
|
|
1280
1341
|
className
|
|
1281
1342
|
),
|
|
1282
1343
|
children: [
|
|
1283
|
-
/* @__PURE__ */
|
|
1344
|
+
/* @__PURE__ */ jsxs14("div", { className: "min-w-0 max-w-full", children: [
|
|
1284
1345
|
children,
|
|
1285
|
-
error && /* @__PURE__ */
|
|
1346
|
+
error && /* @__PURE__ */ jsx21("div", { className: "mt-2 text-sm text-failure-bg", children: error })
|
|
1286
1347
|
] }),
|
|
1287
|
-
actionBar && /* @__PURE__ */
|
|
1348
|
+
actionBar && /* @__PURE__ */ jsx21("div", { className: "mt-1", children: actionBar })
|
|
1288
1349
|
]
|
|
1289
1350
|
}
|
|
1290
1351
|
);
|
|
@@ -1295,14 +1356,14 @@ var USER_MESSAGE_ATTACHMENT_PREVIEW_REM = 12;
|
|
|
1295
1356
|
|
|
1296
1357
|
// src/atoms/primitives/Avatar.tsx
|
|
1297
1358
|
import { useState as useState8 } from "react";
|
|
1298
|
-
import { jsx as
|
|
1359
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
1299
1360
|
var sizeClasses = {
|
|
1300
1361
|
sm: "h-6 w-6 text-xs",
|
|
1301
1362
|
default: "h-8 w-8 text-sm",
|
|
1302
1363
|
lg: "h-10 w-10 text-base"
|
|
1303
1364
|
};
|
|
1304
1365
|
function Avatar({ className, size = "default", ...props }) {
|
|
1305
|
-
return /* @__PURE__ */
|
|
1366
|
+
return /* @__PURE__ */ jsx22(
|
|
1306
1367
|
"div",
|
|
1307
1368
|
{
|
|
1308
1369
|
"data-slot": "avatar",
|
|
@@ -1315,7 +1376,7 @@ function Avatar({ className, size = "default", ...props }) {
|
|
|
1315
1376
|
function AvatarImage({ className, src, alt = "", onError, ...props }) {
|
|
1316
1377
|
const [failed, setFailed] = useState8(false);
|
|
1317
1378
|
if (failed || !src) return null;
|
|
1318
|
-
return /* @__PURE__ */
|
|
1379
|
+
return /* @__PURE__ */ jsx22(
|
|
1319
1380
|
"img",
|
|
1320
1381
|
{
|
|
1321
1382
|
"data-slot": "avatar-image",
|
|
@@ -1331,7 +1392,7 @@ function AvatarImage({ className, src, alt = "", onError, ...props }) {
|
|
|
1331
1392
|
);
|
|
1332
1393
|
}
|
|
1333
1394
|
function AvatarFallback({ className, ...props }) {
|
|
1334
|
-
return /* @__PURE__ */
|
|
1395
|
+
return /* @__PURE__ */ jsx22(
|
|
1335
1396
|
"div",
|
|
1336
1397
|
{
|
|
1337
1398
|
"data-slot": "avatar-fallback",
|
|
@@ -1345,7 +1406,7 @@ function AvatarFallback({ className, ...props }) {
|
|
|
1345
1406
|
}
|
|
1346
1407
|
|
|
1347
1408
|
// src/atoms/AttachmentCard.tsx
|
|
1348
|
-
import { jsx as
|
|
1409
|
+
import { jsx as jsx23, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1349
1410
|
function AttachmentCard({
|
|
1350
1411
|
name,
|
|
1351
1412
|
previewSrc,
|
|
@@ -1357,7 +1418,7 @@ function AttachmentCard({
|
|
|
1357
1418
|
}) {
|
|
1358
1419
|
if (size === "preview" && isImage && previewSrc) {
|
|
1359
1420
|
const previewSize = previewRem != null ? { width: `${previewRem}rem`, height: `${previewRem}rem` } : void 0;
|
|
1360
|
-
return /* @__PURE__ */
|
|
1421
|
+
return /* @__PURE__ */ jsx23(
|
|
1361
1422
|
"div",
|
|
1362
1423
|
{
|
|
1363
1424
|
"data-slot": "aui_attachment-preview",
|
|
@@ -1367,11 +1428,11 @@ function AttachmentCard({
|
|
|
1367
1428
|
previewRem == null && "size-24",
|
|
1368
1429
|
className
|
|
1369
1430
|
),
|
|
1370
|
-
children: /* @__PURE__ */
|
|
1431
|
+
children: /* @__PURE__ */ jsx23("img", { src: previewSrc, alt: name, className: "h-full w-full object-cover" })
|
|
1371
1432
|
}
|
|
1372
1433
|
);
|
|
1373
1434
|
}
|
|
1374
|
-
return /* @__PURE__ */
|
|
1435
|
+
return /* @__PURE__ */ jsxs15(
|
|
1375
1436
|
"div",
|
|
1376
1437
|
{
|
|
1377
1438
|
"data-slot": "aui_attachment-chip",
|
|
@@ -1381,12 +1442,12 @@ function AttachmentCard({
|
|
|
1381
1442
|
className
|
|
1382
1443
|
),
|
|
1383
1444
|
children: [
|
|
1384
|
-
/* @__PURE__ */
|
|
1385
|
-
/* @__PURE__ */
|
|
1386
|
-
/* @__PURE__ */
|
|
1387
|
-
] }) : /* @__PURE__ */
|
|
1388
|
-
/* @__PURE__ */
|
|
1389
|
-
onRemove && /* @__PURE__ */
|
|
1445
|
+
/* @__PURE__ */ jsx23("div", { className: "bg-primary-bg flex size-7 shrink-0 items-center justify-center overflow-hidden rounded-md border", children: isImage && previewSrc ? /* @__PURE__ */ jsxs15(Avatar, { className: "size-7 rounded-none", children: [
|
|
1446
|
+
/* @__PURE__ */ jsx23(AvatarImage, { src: previewSrc, alt: name, className: "object-cover" }),
|
|
1447
|
+
/* @__PURE__ */ jsx23(AvatarFallback, { children: /* @__PURE__ */ jsx23(Icon, { name: "file", size: "1rem", className: "text-text-secondary" }) })
|
|
1448
|
+
] }) : /* @__PURE__ */ jsx23(Icon, { name: "file", size: "1rem", className: "text-text-secondary" }) }),
|
|
1449
|
+
/* @__PURE__ */ jsx23("span", { className: "text-text-primary min-w-0 truncate text-sm", children: name }),
|
|
1450
|
+
onRemove && /* @__PURE__ */ jsx23(
|
|
1390
1451
|
"button",
|
|
1391
1452
|
{
|
|
1392
1453
|
type: "button",
|
|
@@ -1398,7 +1459,7 @@ function AttachmentCard({
|
|
|
1398
1459
|
className: "size-6 shrink-0 rounded-full"
|
|
1399
1460
|
}),
|
|
1400
1461
|
onClick: onRemove,
|
|
1401
|
-
children: /* @__PURE__ */
|
|
1462
|
+
children: /* @__PURE__ */ jsx23(Icon, { name: "xmark" })
|
|
1402
1463
|
}
|
|
1403
1464
|
)
|
|
1404
1465
|
]
|
|
@@ -1407,9 +1468,9 @@ function AttachmentCard({
|
|
|
1407
1468
|
}
|
|
1408
1469
|
|
|
1409
1470
|
// src/atoms/AttachmentPickerButton.tsx
|
|
1410
|
-
import { jsx as
|
|
1471
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
1411
1472
|
function AttachmentPickerButton({ className, ...props }) {
|
|
1412
|
-
return /* @__PURE__ */
|
|
1473
|
+
return /* @__PURE__ */ jsx24(
|
|
1413
1474
|
"button",
|
|
1414
1475
|
{
|
|
1415
1476
|
type: "button",
|
|
@@ -1421,7 +1482,7 @@ function AttachmentPickerButton({ className, ...props }) {
|
|
|
1421
1482
|
className: `size-7 rounded-full p-1 ${className ?? ""}`
|
|
1422
1483
|
}),
|
|
1423
1484
|
...props,
|
|
1424
|
-
children: /* @__PURE__ */
|
|
1485
|
+
children: /* @__PURE__ */ jsx24(Icon, { name: "paperclip" })
|
|
1425
1486
|
}
|
|
1426
1487
|
);
|
|
1427
1488
|
}
|
|
@@ -1430,8 +1491,8 @@ function AttachmentPickerButton({ className, ...props }) {
|
|
|
1430
1491
|
import { useState as useState9 } from "react";
|
|
1431
1492
|
|
|
1432
1493
|
// src/atoms/primitives/Dialog.tsx
|
|
1433
|
-
import
|
|
1434
|
-
import { jsx as
|
|
1494
|
+
import React9 from "react";
|
|
1495
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1435
1496
|
function Dialog({
|
|
1436
1497
|
open,
|
|
1437
1498
|
onOpenChange,
|
|
@@ -1440,8 +1501,8 @@ function Dialog({
|
|
|
1440
1501
|
"aria-label": ariaLabel,
|
|
1441
1502
|
"aria-labelledby": ariaLabelledBy
|
|
1442
1503
|
}) {
|
|
1443
|
-
const ref =
|
|
1444
|
-
|
|
1504
|
+
const ref = React9.useRef(null);
|
|
1505
|
+
React9.useEffect(() => {
|
|
1445
1506
|
const el = ref.current;
|
|
1446
1507
|
if (!el) return;
|
|
1447
1508
|
if (open && !el.open) {
|
|
@@ -1450,7 +1511,7 @@ function Dialog({
|
|
|
1450
1511
|
el.close();
|
|
1451
1512
|
}
|
|
1452
1513
|
}, [open]);
|
|
1453
|
-
|
|
1514
|
+
React9.useEffect(() => {
|
|
1454
1515
|
const el = ref.current;
|
|
1455
1516
|
if (!el) return;
|
|
1456
1517
|
const handler = () => onOpenChange(false);
|
|
@@ -1460,7 +1521,7 @@ function Dialog({
|
|
|
1460
1521
|
const handleBackdropClick = (e) => {
|
|
1461
1522
|
if (e.target === ref.current) onOpenChange(false);
|
|
1462
1523
|
};
|
|
1463
|
-
return /* @__PURE__ */
|
|
1524
|
+
return /* @__PURE__ */ jsx25(
|
|
1464
1525
|
"dialog",
|
|
1465
1526
|
{
|
|
1466
1527
|
ref,
|
|
@@ -1478,22 +1539,22 @@ function Dialog({
|
|
|
1478
1539
|
);
|
|
1479
1540
|
}
|
|
1480
1541
|
function DialogContent({ className, children, ...props }) {
|
|
1481
|
-
return /* @__PURE__ */
|
|
1542
|
+
return /* @__PURE__ */ jsx25("div", { className: cn("flex flex-col gap-4 p-6", className), ...props, children });
|
|
1482
1543
|
}
|
|
1483
1544
|
function DialogHeader({ className, ...props }) {
|
|
1484
|
-
return /* @__PURE__ */
|
|
1545
|
+
return /* @__PURE__ */ jsx25("div", { className: cn("flex flex-col gap-1.5", className), ...props });
|
|
1485
1546
|
}
|
|
1486
1547
|
function DialogTitle({ className, ...props }) {
|
|
1487
|
-
return /* @__PURE__ */
|
|
1548
|
+
return /* @__PURE__ */ jsx25("h2", { className: cn("text-lg font-semibold leading-none tracking-tight", className), ...props });
|
|
1488
1549
|
}
|
|
1489
1550
|
|
|
1490
1551
|
// src/atoms/AttachmentPreviewDialog.tsx
|
|
1491
|
-
import { Fragment as Fragment4, jsx as
|
|
1552
|
+
import { Fragment as Fragment4, jsx as jsx26, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1492
1553
|
function AttachmentPreviewDialog({ previewSrc, children }) {
|
|
1493
1554
|
const [open, setOpen] = useState9(false);
|
|
1494
|
-
if (!previewSrc) return /* @__PURE__ */
|
|
1495
|
-
return /* @__PURE__ */
|
|
1496
|
-
/* @__PURE__ */
|
|
1555
|
+
if (!previewSrc) return /* @__PURE__ */ jsx26(Fragment4, { children });
|
|
1556
|
+
return /* @__PURE__ */ jsxs16(Fragment4, { children: [
|
|
1557
|
+
/* @__PURE__ */ jsx26(
|
|
1497
1558
|
"button",
|
|
1498
1559
|
{
|
|
1499
1560
|
type: "button",
|
|
@@ -1503,15 +1564,15 @@ function AttachmentPreviewDialog({ previewSrc, children }) {
|
|
|
1503
1564
|
children
|
|
1504
1565
|
}
|
|
1505
1566
|
),
|
|
1506
|
-
/* @__PURE__ */
|
|
1567
|
+
/* @__PURE__ */ jsx26(
|
|
1507
1568
|
Dialog,
|
|
1508
1569
|
{
|
|
1509
1570
|
open,
|
|
1510
1571
|
onOpenChange: setOpen,
|
|
1511
1572
|
"aria-label": "Attachment preview",
|
|
1512
1573
|
className: "max-w-[calc(100%-2rem)] sm:max-w-3xl",
|
|
1513
|
-
children: /* @__PURE__ */
|
|
1514
|
-
/* @__PURE__ */
|
|
1574
|
+
children: /* @__PURE__ */ jsxs16(DialogContent, { className: "relative p-2", children: [
|
|
1575
|
+
/* @__PURE__ */ jsx26("span", { className: "absolute top-2 right-2 z-10 inline-flex", children: /* @__PURE__ */ jsx26(
|
|
1515
1576
|
"button",
|
|
1516
1577
|
{
|
|
1517
1578
|
type: "button",
|
|
@@ -1519,10 +1580,10 @@ function AttachmentPreviewDialog({ previewSrc, children }) {
|
|
|
1519
1580
|
title: "Close",
|
|
1520
1581
|
className: auiButtonClass({ variant: "ghost", size: "icon" }),
|
|
1521
1582
|
onClick: () => setOpen(false),
|
|
1522
|
-
children: /* @__PURE__ */
|
|
1583
|
+
children: /* @__PURE__ */ jsx26(Icon, { name: "xmark" })
|
|
1523
1584
|
}
|
|
1524
1585
|
) }),
|
|
1525
|
-
/* @__PURE__ */
|
|
1586
|
+
/* @__PURE__ */ jsx26("div", { className: "bg-primary-bg relative mx-auto flex max-h-[80dvh] w-full items-center justify-center overflow-hidden", children: /* @__PURE__ */ jsx26(
|
|
1526
1587
|
"img",
|
|
1527
1588
|
{
|
|
1528
1589
|
src: previewSrc,
|
|
@@ -1538,35 +1599,35 @@ function AttachmentPreviewDialog({ previewSrc, children }) {
|
|
|
1538
1599
|
|
|
1539
1600
|
// src/atoms/ChatFileDownload.tsx
|
|
1540
1601
|
import { useState as useState10 } from "react";
|
|
1541
|
-
import { jsx as
|
|
1602
|
+
import { jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1542
1603
|
function ChatFileDownload({ files, fileDownloadBaseUrl, onDownloadArtifact, readOnly }) {
|
|
1543
1604
|
const [downloadingPath, setDownloadingPath] = useState10(null);
|
|
1544
|
-
return /* @__PURE__ */
|
|
1605
|
+
return /* @__PURE__ */ jsxs17(
|
|
1545
1606
|
"details",
|
|
1546
1607
|
{
|
|
1547
1608
|
open: true,
|
|
1548
1609
|
className: "aui-sandbox-artifacts group my-2 overflow-hidden rounded-lg border border-primary-button-bg/20 bg-card-bg",
|
|
1549
1610
|
"data-testid": "aui-sandbox-artifacts",
|
|
1550
1611
|
children: [
|
|
1551
|
-
/* @__PURE__ */
|
|
1552
|
-
/* @__PURE__ */
|
|
1553
|
-
/* @__PURE__ */
|
|
1554
|
-
/* @__PURE__ */
|
|
1612
|
+
/* @__PURE__ */ jsxs17("summary", { className: "flex min-h-9 cursor-pointer list-none items-center gap-2 bg-primary-button-bg/5 px-3 py-2 text-xs font-medium leading-none text-primary-button-bg [&::-webkit-details-marker]:hidden", children: [
|
|
1613
|
+
/* @__PURE__ */ jsx27(Icon, { name: "chevron-down", size: 13, className: "shrink-0 transition-transform group-open:rotate-180" }),
|
|
1614
|
+
/* @__PURE__ */ jsx27(Icon, { name: "file", size: 16, className: "shrink-0" }),
|
|
1615
|
+
/* @__PURE__ */ jsxs17("span", { className: "leading-none", children: [
|
|
1555
1616
|
files.length,
|
|
1556
1617
|
" ",
|
|
1557
1618
|
files.length === 1 ? "file" : "files",
|
|
1558
1619
|
" generated"
|
|
1559
1620
|
] })
|
|
1560
1621
|
] }),
|
|
1561
|
-
/* @__PURE__ */
|
|
1622
|
+
/* @__PURE__ */ jsx27("div", { className: "flex flex-wrap items-center gap-y-1 px-3 py-2", children: files.map(({ name, path }) => {
|
|
1562
1623
|
if (readOnly) {
|
|
1563
|
-
return /* @__PURE__ */
|
|
1624
|
+
return /* @__PURE__ */ jsxs17(
|
|
1564
1625
|
"span",
|
|
1565
1626
|
{
|
|
1566
1627
|
className: "mr-3 inline-flex min-h-7 items-center gap-1.5 border-r border-border pr-3 text-xs text-text-secondary last:mr-0 last:border-r-0 last:pr-0",
|
|
1567
1628
|
children: [
|
|
1568
|
-
/* @__PURE__ */
|
|
1569
|
-
/* @__PURE__ */
|
|
1629
|
+
/* @__PURE__ */ jsx27(Icon, { name: "file", size: 14, className: "shrink-0" }),
|
|
1630
|
+
/* @__PURE__ */ jsx27("span", { className: "leading-none", children: name })
|
|
1570
1631
|
]
|
|
1571
1632
|
},
|
|
1572
1633
|
path
|
|
@@ -1586,7 +1647,7 @@ function ChatFileDownload({ files, fileDownloadBaseUrl, onDownloadArtifact, read
|
|
|
1586
1647
|
setDownloadingPath((current) => current === path ? null : current);
|
|
1587
1648
|
});
|
|
1588
1649
|
};
|
|
1589
|
-
return /* @__PURE__ */
|
|
1650
|
+
return /* @__PURE__ */ jsxs17(
|
|
1590
1651
|
"a",
|
|
1591
1652
|
{
|
|
1592
1653
|
href: canDownload ? href ?? "#" : void 0,
|
|
@@ -1600,9 +1661,9 @@ function ChatFileDownload({ files, fileDownloadBaseUrl, onDownloadArtifact, read
|
|
|
1600
1661
|
download: name,
|
|
1601
1662
|
"aria-label": isDownloading ? `Downloading ${name}` : `Download ${name}`,
|
|
1602
1663
|
children: [
|
|
1603
|
-
/* @__PURE__ */
|
|
1604
|
-
/* @__PURE__ */
|
|
1605
|
-
isDownloading ? /* @__PURE__ */
|
|
1664
|
+
/* @__PURE__ */ jsx27(Icon, { name: "file", size: 14, className: "shrink-0 text-text-secondary" }),
|
|
1665
|
+
/* @__PURE__ */ jsx27("span", { className: "leading-none", children: name }),
|
|
1666
|
+
isDownloading ? /* @__PURE__ */ jsx27(Spinner, { size: 14, className: "shrink-0 text-primary-button-bg" }) : /* @__PURE__ */ jsx27(Icon, { name: "download", size: 14, className: "shrink-0 text-primary-button-bg" })
|
|
1606
1667
|
]
|
|
1607
1668
|
},
|
|
1608
1669
|
path
|
|
@@ -1644,12 +1705,12 @@ function useChatHeaderContentVisible() {
|
|
|
1644
1705
|
}
|
|
1645
1706
|
|
|
1646
1707
|
// src/atoms/ClearChatButton.tsx
|
|
1647
|
-
import { jsx as
|
|
1708
|
+
import { jsx as jsx28, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1648
1709
|
function ClearChatButton() {
|
|
1649
1710
|
const shell = useOptionalShellMode();
|
|
1650
1711
|
const visible = useChatChromeActionsVisible();
|
|
1651
1712
|
if (!visible || shell == null) return null;
|
|
1652
|
-
return /* @__PURE__ */
|
|
1713
|
+
return /* @__PURE__ */ jsxs18(
|
|
1653
1714
|
"button",
|
|
1654
1715
|
{
|
|
1655
1716
|
type: "button",
|
|
@@ -1657,7 +1718,7 @@ function ClearChatButton() {
|
|
|
1657
1718
|
className: auiButtonClass({ variant: "ghost", size: "sm" }),
|
|
1658
1719
|
onClick: () => shell.clearChat(),
|
|
1659
1720
|
children: [
|
|
1660
|
-
/* @__PURE__ */
|
|
1721
|
+
/* @__PURE__ */ jsx28(Icon, { name: "broom", size: "0.875rem" }),
|
|
1661
1722
|
"Clear chat"
|
|
1662
1723
|
]
|
|
1663
1724
|
}
|
|
@@ -1666,14 +1727,14 @@ function ClearChatButton() {
|
|
|
1666
1727
|
|
|
1667
1728
|
// src/atoms/CodeEditor.tsx
|
|
1668
1729
|
import { useCallback as useCallback2, useState as useState11 } from "react";
|
|
1669
|
-
import { jsx as
|
|
1730
|
+
import { jsx as jsx29, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1670
1731
|
function ToolbarButton({
|
|
1671
1732
|
onClick,
|
|
1672
1733
|
tooltip,
|
|
1673
1734
|
icon,
|
|
1674
1735
|
active
|
|
1675
1736
|
}) {
|
|
1676
|
-
return /* @__PURE__ */
|
|
1737
|
+
return /* @__PURE__ */ jsx29(
|
|
1677
1738
|
"button",
|
|
1678
1739
|
{
|
|
1679
1740
|
type: "button",
|
|
@@ -1685,7 +1746,7 @@ function ToolbarButton({
|
|
|
1685
1746
|
active && "bg-dropdown-selected-item-bg text-dropdown-selected-item-text"
|
|
1686
1747
|
),
|
|
1687
1748
|
"aria-label": tooltip,
|
|
1688
|
-
children: /* @__PURE__ */
|
|
1749
|
+
children: /* @__PURE__ */ jsx29(Icon, { name: icon, size: "0.875em" })
|
|
1689
1750
|
}
|
|
1690
1751
|
);
|
|
1691
1752
|
}
|
|
@@ -1727,7 +1788,7 @@ function CodeEditor({
|
|
|
1727
1788
|
wordWrap: "on"
|
|
1728
1789
|
};
|
|
1729
1790
|
const editorHeight = expanded ? "100%" : height ?? 320;
|
|
1730
|
-
return /* @__PURE__ */
|
|
1791
|
+
return /* @__PURE__ */ jsxs19(
|
|
1731
1792
|
"div",
|
|
1732
1793
|
{
|
|
1733
1794
|
className: cn(
|
|
@@ -1736,10 +1797,10 @@ function CodeEditor({
|
|
|
1736
1797
|
className
|
|
1737
1798
|
),
|
|
1738
1799
|
children: [
|
|
1739
|
-
showToolbar && /* @__PURE__ */
|
|
1740
|
-
filename && /* @__PURE__ */
|
|
1741
|
-
/* @__PURE__ */
|
|
1742
|
-
/* @__PURE__ */
|
|
1800
|
+
showToolbar && /* @__PURE__ */ jsxs19("div", { className: "flex items-center justify-between gap-1 border-b border-border px-2 py-1", children: [
|
|
1801
|
+
filename && /* @__PURE__ */ jsx29("span", { className: "truncate text-xs text-text-secondary", children: filename }),
|
|
1802
|
+
/* @__PURE__ */ jsxs19("div", { className: "ml-auto flex items-center gap-0.5", children: [
|
|
1803
|
+
/* @__PURE__ */ jsx29(
|
|
1743
1804
|
ToolbarButton,
|
|
1744
1805
|
{
|
|
1745
1806
|
onClick: () => setShowLineNumbers((v) => !v),
|
|
@@ -1748,7 +1809,7 @@ function CodeEditor({
|
|
|
1748
1809
|
active: showLineNumbers
|
|
1749
1810
|
}
|
|
1750
1811
|
),
|
|
1751
|
-
/* @__PURE__ */
|
|
1812
|
+
/* @__PURE__ */ jsx29(
|
|
1752
1813
|
ToolbarButton,
|
|
1753
1814
|
{
|
|
1754
1815
|
onClick: handleCopy,
|
|
@@ -1756,8 +1817,8 @@ function CodeEditor({
|
|
|
1756
1817
|
icon: copied ? "check" : "copy"
|
|
1757
1818
|
}
|
|
1758
1819
|
),
|
|
1759
|
-
/* @__PURE__ */
|
|
1760
|
-
/* @__PURE__ */
|
|
1820
|
+
/* @__PURE__ */ jsx29(ToolbarButton, { onClick: handleDownload, tooltip: "Download", icon: "download" }),
|
|
1821
|
+
/* @__PURE__ */ jsx29(
|
|
1761
1822
|
ToolbarButton,
|
|
1762
1823
|
{
|
|
1763
1824
|
onClick: () => setExpanded((v) => !v),
|
|
@@ -1767,7 +1828,7 @@ function CodeEditor({
|
|
|
1767
1828
|
)
|
|
1768
1829
|
] })
|
|
1769
1830
|
] }),
|
|
1770
|
-
/* @__PURE__ */
|
|
1831
|
+
/* @__PURE__ */ jsx29("div", { className: "flex-1 overflow-hidden", style: expanded ? void 0 : { height: editorHeight }, children: /* @__PURE__ */ jsx29(
|
|
1771
1832
|
MonacoEditorCore2,
|
|
1772
1833
|
{
|
|
1773
1834
|
value,
|
|
@@ -1786,10 +1847,10 @@ function CodeEditor({
|
|
|
1786
1847
|
}
|
|
1787
1848
|
|
|
1788
1849
|
// src/atoms/ComposerSections.tsx
|
|
1789
|
-
import { jsx as
|
|
1850
|
+
import { jsx as jsx30, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1790
1851
|
function ComposerLeftSection({ onAttach }) {
|
|
1791
1852
|
if (!onAttach) return null;
|
|
1792
|
-
return /* @__PURE__ */
|
|
1853
|
+
return /* @__PURE__ */ jsx30(
|
|
1793
1854
|
"button",
|
|
1794
1855
|
{
|
|
1795
1856
|
type: "button",
|
|
@@ -1797,7 +1858,7 @@ function ComposerLeftSection({ onAttach }) {
|
|
|
1797
1858
|
title: "Attach",
|
|
1798
1859
|
className: auiButtonClass({ variant: "ghost", size: "icon" }),
|
|
1799
1860
|
onClick: onAttach,
|
|
1800
|
-
children: /* @__PURE__ */
|
|
1861
|
+
children: /* @__PURE__ */ jsx30(Icon, { name: "paperclip" })
|
|
1801
1862
|
}
|
|
1802
1863
|
);
|
|
1803
1864
|
}
|
|
@@ -1806,7 +1867,7 @@ function ComposerRightSection(_) {
|
|
|
1806
1867
|
}
|
|
1807
1868
|
function ComposerSendButton({ canSubmit, isRunning, onSubmit, onCancel }) {
|
|
1808
1869
|
if (isRunning) {
|
|
1809
|
-
return /* @__PURE__ */
|
|
1870
|
+
return /* @__PURE__ */ jsxs20(
|
|
1810
1871
|
"button",
|
|
1811
1872
|
{
|
|
1812
1873
|
type: "button",
|
|
@@ -1815,13 +1876,13 @@ function ComposerSendButton({ canSubmit, isRunning, onSubmit, onCancel }) {
|
|
|
1815
1876
|
onClick: onCancel,
|
|
1816
1877
|
"aria-label": "Cancel",
|
|
1817
1878
|
children: [
|
|
1818
|
-
/* @__PURE__ */
|
|
1879
|
+
/* @__PURE__ */ jsx30(Spinner, { size: 14 }),
|
|
1819
1880
|
"Cancel"
|
|
1820
1881
|
]
|
|
1821
1882
|
}
|
|
1822
1883
|
);
|
|
1823
1884
|
}
|
|
1824
|
-
return /* @__PURE__ */
|
|
1885
|
+
return /* @__PURE__ */ jsx30(
|
|
1825
1886
|
"button",
|
|
1826
1887
|
{
|
|
1827
1888
|
type: "button",
|
|
@@ -1830,14 +1891,14 @@ function ComposerSendButton({ canSubmit, isRunning, onSubmit, onCancel }) {
|
|
|
1830
1891
|
onClick: onSubmit,
|
|
1831
1892
|
title: "Send message",
|
|
1832
1893
|
"aria-label": "Send message",
|
|
1833
|
-
children: /* @__PURE__ */
|
|
1894
|
+
children: /* @__PURE__ */ jsx30(Icon, { name: "arrow-up" })
|
|
1834
1895
|
}
|
|
1835
1896
|
);
|
|
1836
1897
|
}
|
|
1837
1898
|
|
|
1838
1899
|
// src/atoms/ComposerShell.tsx
|
|
1839
1900
|
import "react";
|
|
1840
|
-
import { jsx as
|
|
1901
|
+
import { jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1841
1902
|
function ComposerShell({
|
|
1842
1903
|
input,
|
|
1843
1904
|
disabled,
|
|
@@ -1855,7 +1916,7 @@ function ComposerShell({
|
|
|
1855
1916
|
const ComposerLeftSection2 = useSlot("ComposerLeftSection");
|
|
1856
1917
|
const ComposerRightSection2 = useSlot("ComposerRightSection");
|
|
1857
1918
|
const ComposerSendButton2 = useSlot("ComposerSendButton");
|
|
1858
|
-
return /* @__PURE__ */
|
|
1919
|
+
return /* @__PURE__ */ jsxs21(
|
|
1859
1920
|
"div",
|
|
1860
1921
|
{
|
|
1861
1922
|
"data-slot": "aui_composer-shell",
|
|
@@ -1866,18 +1927,18 @@ function ComposerShell({
|
|
|
1866
1927
|
children: [
|
|
1867
1928
|
attachments,
|
|
1868
1929
|
input,
|
|
1869
|
-
/* @__PURE__ */
|
|
1870
|
-
/* @__PURE__ */
|
|
1871
|
-
/* @__PURE__ */
|
|
1872
|
-
connectorStatusLabel && /* @__PURE__ */
|
|
1930
|
+
/* @__PURE__ */ jsxs21("div", { className: "flex min-w-0 flex-wrap items-center justify-between gap-2 px-1", children: [
|
|
1931
|
+
/* @__PURE__ */ jsxs21("div", { className: "flex min-w-0 max-w-full flex-wrap items-center gap-2", children: [
|
|
1932
|
+
/* @__PURE__ */ jsx31(ComposerLeftSection2, { disabled, isRunning, onAttach }),
|
|
1933
|
+
connectorStatusLabel && /* @__PURE__ */ jsx31("span", { className: "text-text-secondary max-w-[12rem] truncate text-xs", children: connectorStatusLabel })
|
|
1873
1934
|
] }),
|
|
1874
|
-
/* @__PURE__ */
|
|
1875
|
-
modelLabel && /* @__PURE__ */
|
|
1935
|
+
/* @__PURE__ */ jsxs21("div", { className: "ml-auto flex min-w-0 shrink-0 flex-wrap items-center justify-end gap-2", children: [
|
|
1936
|
+
modelLabel && /* @__PURE__ */ jsxs21("span", { className: "bg-secondary-bg text-text-secondary flex max-w-[10rem] items-center gap-1 truncate rounded-full px-2 py-0.5 text-xs", children: [
|
|
1876
1937
|
modelIcon,
|
|
1877
|
-
/* @__PURE__ */
|
|
1938
|
+
/* @__PURE__ */ jsx31("span", { className: "truncate", children: modelLabel })
|
|
1878
1939
|
] }),
|
|
1879
|
-
/* @__PURE__ */
|
|
1880
|
-
/* @__PURE__ */
|
|
1940
|
+
/* @__PURE__ */ jsx31(ComposerRightSection2, { disabled, isRunning }),
|
|
1941
|
+
/* @__PURE__ */ jsx31(
|
|
1881
1942
|
ComposerSendButton2,
|
|
1882
1943
|
{
|
|
1883
1944
|
disabled,
|
|
@@ -1916,7 +1977,7 @@ function useIsMobile() {
|
|
|
1916
1977
|
|
|
1917
1978
|
// src/atoms/primitives/BottomSheet.tsx
|
|
1918
1979
|
import { useEffect as useEffect6, useRef as useRef4 } from "react";
|
|
1919
|
-
import { jsx as
|
|
1980
|
+
import { jsx as jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1920
1981
|
function BottomSheet({
|
|
1921
1982
|
open,
|
|
1922
1983
|
onOpenChange,
|
|
@@ -1944,7 +2005,7 @@ function BottomSheet({
|
|
|
1944
2005
|
const handleBackdropClick = (event) => {
|
|
1945
2006
|
if (event.target === ref.current) onOpenChange(false);
|
|
1946
2007
|
};
|
|
1947
|
-
return /* @__PURE__ */
|
|
2008
|
+
return /* @__PURE__ */ jsxs22(
|
|
1948
2009
|
"dialog",
|
|
1949
2010
|
{
|
|
1950
2011
|
ref,
|
|
@@ -1964,7 +2025,7 @@ function BottomSheet({
|
|
|
1964
2025
|
className
|
|
1965
2026
|
),
|
|
1966
2027
|
children: [
|
|
1967
|
-
/* @__PURE__ */
|
|
2028
|
+
/* @__PURE__ */ jsx32("div", { className: "flex h-5 shrink-0 items-center justify-center", "aria-hidden": true, children: /* @__PURE__ */ jsx32("span", { className: "h-1 w-10 rounded-full bg-text-secondary/30" }) }),
|
|
1968
2029
|
children
|
|
1969
2030
|
]
|
|
1970
2031
|
}
|
|
@@ -1994,7 +2055,7 @@ function modelPatchWithReasoningEffort(name, existingParams, efforts) {
|
|
|
1994
2055
|
}
|
|
1995
2056
|
|
|
1996
2057
|
// src/atoms/draft/DraftReasoningEffortSelector.tsx
|
|
1997
|
-
import { Fragment as Fragment5, jsx as
|
|
2058
|
+
import { Fragment as Fragment5, jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
1998
2059
|
function DraftReasoningEffortSelector({ disabled, isRunning }) {
|
|
1999
2060
|
const { models, ensureLoaded } = useDraftCatalog();
|
|
2000
2061
|
const { agentSpec } = useTrueFoundryAgentSpec2();
|
|
@@ -2037,9 +2098,9 @@ function DraftReasoningEffortSelector({ disabled, isRunning }) {
|
|
|
2037
2098
|
});
|
|
2038
2099
|
}, [updateAgentSpec, selected, efforts, currentEffort, agentSpec?.model?.params]);
|
|
2039
2100
|
if (!hasReasoningEfforts(efforts) || !resolved) return null;
|
|
2040
|
-
const content = /* @__PURE__ */
|
|
2041
|
-
/* @__PURE__ */
|
|
2042
|
-
/* @__PURE__ */
|
|
2101
|
+
const content = /* @__PURE__ */ jsxs23(Fragment5, { children: [
|
|
2102
|
+
/* @__PURE__ */ jsx33("div", { className: "border-b border-border px-3 py-2", children: /* @__PURE__ */ jsx33("p", { className: "text-text-primary text-sm font-semibold", children: "Reasoning effort" }) }),
|
|
2103
|
+
/* @__PURE__ */ jsx33(
|
|
2043
2104
|
"div",
|
|
2044
2105
|
{
|
|
2045
2106
|
id: menuId,
|
|
@@ -2048,7 +2109,7 @@ function DraftReasoningEffortSelector({ disabled, isRunning }) {
|
|
|
2048
2109
|
className: "flex min-h-0 flex-1 flex-col overflow-y-auto p-1",
|
|
2049
2110
|
children: efforts.map((effort) => {
|
|
2050
2111
|
const active = effort === resolved;
|
|
2051
|
-
return /* @__PURE__ */
|
|
2112
|
+
return /* @__PURE__ */ jsx33(
|
|
2052
2113
|
"button",
|
|
2053
2114
|
{
|
|
2054
2115
|
type: "button",
|
|
@@ -2069,7 +2130,7 @@ function DraftReasoningEffortSelector({ disabled, isRunning }) {
|
|
|
2069
2130
|
});
|
|
2070
2131
|
setOpen(false);
|
|
2071
2132
|
},
|
|
2072
|
-
children: /* @__PURE__ */
|
|
2133
|
+
children: /* @__PURE__ */ jsx33("span", { className: "truncate font-medium", children: effort })
|
|
2073
2134
|
},
|
|
2074
2135
|
effort
|
|
2075
2136
|
);
|
|
@@ -2077,8 +2138,8 @@ function DraftReasoningEffortSelector({ disabled, isRunning }) {
|
|
|
2077
2138
|
}
|
|
2078
2139
|
)
|
|
2079
2140
|
] });
|
|
2080
|
-
return /* @__PURE__ */
|
|
2081
|
-
/* @__PURE__ */
|
|
2141
|
+
return /* @__PURE__ */ jsxs23("div", { ref: containerRef, className: "relative", children: [
|
|
2142
|
+
/* @__PURE__ */ jsxs23(
|
|
2082
2143
|
"button",
|
|
2083
2144
|
{
|
|
2084
2145
|
type: "button",
|
|
@@ -2097,26 +2158,26 @@ function DraftReasoningEffortSelector({ disabled, isRunning }) {
|
|
|
2097
2158
|
}),
|
|
2098
2159
|
onClick: () => setOpen((v) => !v),
|
|
2099
2160
|
children: [
|
|
2100
|
-
/* @__PURE__ */
|
|
2101
|
-
/* @__PURE__ */
|
|
2161
|
+
/* @__PURE__ */ jsx33("span", { className: "truncate", children: resolved }),
|
|
2162
|
+
/* @__PURE__ */ jsx33(Icon, { name: "chevron-down", className: "size-3.5 shrink-0 opacity-60" })
|
|
2102
2163
|
]
|
|
2103
2164
|
}
|
|
2104
2165
|
),
|
|
2105
|
-
open ? isMobile || compactLayout ? /* @__PURE__ */
|
|
2166
|
+
open ? isMobile || compactLayout ? /* @__PURE__ */ jsx33(BottomSheet, { open: true, onOpenChange: setOpen, "aria-label": "Select reasoning effort", children: content }) : /* @__PURE__ */ jsx33("div", { className: "bg-card-bg text-text-primary absolute right-0 bottom-full z-50 mb-2 flex max-h-[22rem] w-[12rem] flex-col overflow-hidden rounded-lg border border-border shadow-lg", children: content }) : null
|
|
2106
2167
|
] });
|
|
2107
2168
|
}
|
|
2108
2169
|
|
|
2109
2170
|
// src/atoms/draft/DraftComposerSections.tsx
|
|
2110
|
-
import { jsx as
|
|
2171
|
+
import { jsx as jsx34, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2111
2172
|
function DraftComposerLeftSection({ disabled, isRunning, onAttach }) {
|
|
2112
2173
|
const DraftCompositeSelector2 = useSlot("DraftCompositeSelector");
|
|
2113
|
-
return /* @__PURE__ */
|
|
2174
|
+
return /* @__PURE__ */ jsx34("div", { className: "flex min-w-0 flex-wrap items-center gap-1.5", children: /* @__PURE__ */ jsx34(DraftCompositeSelector2, { disabled, isRunning, onAttach }) });
|
|
2114
2175
|
}
|
|
2115
2176
|
function DraftComposerRightSection({ disabled, isRunning }) {
|
|
2116
2177
|
const DraftModelSelector2 = useSlot("DraftModelSelector");
|
|
2117
|
-
return /* @__PURE__ */
|
|
2118
|
-
/* @__PURE__ */
|
|
2119
|
-
/* @__PURE__ */
|
|
2178
|
+
return /* @__PURE__ */ jsxs24("div", { className: "flex min-w-0 items-center gap-1", children: [
|
|
2179
|
+
/* @__PURE__ */ jsx34(DraftModelSelector2, { disabled, isRunning }),
|
|
2180
|
+
/* @__PURE__ */ jsx34(DraftReasoningEffortSelector, { disabled, isRunning })
|
|
2120
2181
|
] });
|
|
2121
2182
|
}
|
|
2122
2183
|
|
|
@@ -2129,7 +2190,7 @@ import { useCallback as useCallback4, useEffect as useEffect8, useMemo as useMem
|
|
|
2129
2190
|
|
|
2130
2191
|
// src/containers/ToasterContainer.tsx
|
|
2131
2192
|
import { createContext as createContext2, useCallback as useCallback3, useContext as useContext3, useMemo, useState as useState13 } from "react";
|
|
2132
|
-
import { jsx as
|
|
2193
|
+
import { jsx as jsx35, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2133
2194
|
var MAX_TOAST_DESCRIPTION_CHARS = 480;
|
|
2134
2195
|
var MAX_VISIBLE_TOASTS = 5;
|
|
2135
2196
|
var SUCCESS_TOAST_TTL_MS = 3e3;
|
|
@@ -2184,9 +2245,9 @@ function ToasterProvider({ children }) {
|
|
|
2184
2245
|
[dismiss]
|
|
2185
2246
|
);
|
|
2186
2247
|
const value = useMemo(() => ({ showError, showSuccess }), [showError, showSuccess]);
|
|
2187
|
-
return /* @__PURE__ */
|
|
2248
|
+
return /* @__PURE__ */ jsxs25(ToasterContext.Provider, { value, children: [
|
|
2188
2249
|
children,
|
|
2189
|
-
/* @__PURE__ */
|
|
2250
|
+
/* @__PURE__ */ jsx35(ToastStack2, { children: toasts.map((toast) => /* @__PURE__ */ jsx35(
|
|
2190
2251
|
Toast2,
|
|
2191
2252
|
{
|
|
2192
2253
|
title: toast.title,
|
|
@@ -2327,7 +2388,7 @@ function withAgentCapabilities({
|
|
|
2327
2388
|
}
|
|
2328
2389
|
|
|
2329
2390
|
// src/atoms/primitives/Switch.tsx
|
|
2330
|
-
import { jsx as
|
|
2391
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
2331
2392
|
var sizeClasses2 = {
|
|
2332
2393
|
sm: {
|
|
2333
2394
|
track: "h-5 w-9 p-0.5",
|
|
@@ -2342,7 +2403,7 @@ var sizeClasses2 = {
|
|
|
2342
2403
|
};
|
|
2343
2404
|
function Switch({ checked, onCheckedChange, size = "sm", disabled, className, ...props }) {
|
|
2344
2405
|
const classes = sizeClasses2[size];
|
|
2345
|
-
return /* @__PURE__ */
|
|
2406
|
+
return /* @__PURE__ */ jsx36(
|
|
2346
2407
|
"button",
|
|
2347
2408
|
{
|
|
2348
2409
|
...props,
|
|
@@ -2360,7 +2421,7 @@ function Switch({ checked, onCheckedChange, size = "sm", disabled, className, ..
|
|
|
2360
2421
|
className
|
|
2361
2422
|
),
|
|
2362
2423
|
onClick: () => onCheckedChange(!checked),
|
|
2363
|
-
children: /* @__PURE__ */
|
|
2424
|
+
children: /* @__PURE__ */ jsx36(
|
|
2364
2425
|
"span",
|
|
2365
2426
|
{
|
|
2366
2427
|
"aria-hidden": true,
|
|
@@ -2377,7 +2438,7 @@ function Switch({ checked, onCheckedChange, size = "sm", disabled, className, ..
|
|
|
2377
2438
|
}
|
|
2378
2439
|
|
|
2379
2440
|
// src/atoms/draft/DraftCapabilitiesPanel.tsx
|
|
2380
|
-
import { jsx as
|
|
2441
|
+
import { jsx as jsx37, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2381
2442
|
var CAPABILITIES = [
|
|
2382
2443
|
{
|
|
2383
2444
|
id: "generativeUi",
|
|
@@ -2403,16 +2464,16 @@ function DraftCapabilitiesPanel({
|
|
|
2403
2464
|
layout = "list"
|
|
2404
2465
|
}) {
|
|
2405
2466
|
if (layout === "cards") {
|
|
2406
|
-
return /* @__PURE__ */
|
|
2467
|
+
return /* @__PURE__ */ jsx37("div", { className: "flex flex-col gap-2 sm:flex-row", children: CAPABILITIES.map((capability) => {
|
|
2407
2468
|
const checked = value[capability.id];
|
|
2408
|
-
return /* @__PURE__ */
|
|
2469
|
+
return /* @__PURE__ */ jsxs26(
|
|
2409
2470
|
"div",
|
|
2410
2471
|
{
|
|
2411
2472
|
className: "border-border flex min-w-0 flex-col gap-2 rounded-lg border p-3 sm:flex-1",
|
|
2412
2473
|
children: [
|
|
2413
|
-
/* @__PURE__ */
|
|
2414
|
-
/* @__PURE__ */
|
|
2415
|
-
/* @__PURE__ */
|
|
2474
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-start justify-between gap-2", children: [
|
|
2475
|
+
/* @__PURE__ */ jsx37("p", { className: "text-text-primary text-sm font-medium", children: capability.label }),
|
|
2476
|
+
/* @__PURE__ */ jsx37(
|
|
2416
2477
|
Switch,
|
|
2417
2478
|
{
|
|
2418
2479
|
checked,
|
|
@@ -2423,25 +2484,25 @@ function DraftCapabilitiesPanel({
|
|
|
2423
2484
|
}
|
|
2424
2485
|
)
|
|
2425
2486
|
] }),
|
|
2426
|
-
/* @__PURE__ */
|
|
2487
|
+
/* @__PURE__ */ jsx37("p", { className: "text-text-secondary text-xs leading-snug", children: capability.description })
|
|
2427
2488
|
]
|
|
2428
2489
|
},
|
|
2429
2490
|
capability.id
|
|
2430
2491
|
);
|
|
2431
2492
|
}) });
|
|
2432
2493
|
}
|
|
2433
|
-
return /* @__PURE__ */
|
|
2494
|
+
return /* @__PURE__ */ jsx37("div", { className: cn("flex flex-col", divided && "overflow-hidden rounded-xl border border-border"), children: CAPABILITIES.map((capability, index) => {
|
|
2434
2495
|
const checked = value[capability.id];
|
|
2435
|
-
return /* @__PURE__ */
|
|
2496
|
+
return /* @__PURE__ */ jsxs26(
|
|
2436
2497
|
"div",
|
|
2437
2498
|
{
|
|
2438
2499
|
className: cn("flex items-start gap-3 px-3 py-3", divided && index > 0 && "border-t border-border"),
|
|
2439
2500
|
children: [
|
|
2440
|
-
/* @__PURE__ */
|
|
2441
|
-
/* @__PURE__ */
|
|
2442
|
-
/* @__PURE__ */
|
|
2501
|
+
/* @__PURE__ */ jsxs26("div", { className: "min-w-0 flex-1", children: [
|
|
2502
|
+
/* @__PURE__ */ jsx37("p", { className: "text-text-primary text-sm font-medium", children: capability.label }),
|
|
2503
|
+
/* @__PURE__ */ jsx37("p", { className: "text-text-secondary mt-0.5 text-xs leading-snug", children: capability.description })
|
|
2443
2504
|
] }),
|
|
2444
|
-
/* @__PURE__ */
|
|
2505
|
+
/* @__PURE__ */ jsx37(
|
|
2445
2506
|
Switch,
|
|
2446
2507
|
{
|
|
2447
2508
|
checked,
|
|
@@ -2459,7 +2520,7 @@ function DraftCapabilitiesPanel({
|
|
|
2459
2520
|
}
|
|
2460
2521
|
|
|
2461
2522
|
// src/atoms/draft/DraftCatalogEmptyState.tsx
|
|
2462
|
-
import { jsx as
|
|
2523
|
+
import { jsx as jsx38, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2463
2524
|
function DraftCatalogEmptyState({
|
|
2464
2525
|
loading,
|
|
2465
2526
|
emptyLabel,
|
|
@@ -2467,7 +2528,7 @@ function DraftCatalogEmptyState({
|
|
|
2467
2528
|
onOpenSettings
|
|
2468
2529
|
}) {
|
|
2469
2530
|
if (!loading && onOpenSettings) {
|
|
2470
|
-
return /* @__PURE__ */
|
|
2531
|
+
return /* @__PURE__ */ jsxs27(
|
|
2471
2532
|
"button",
|
|
2472
2533
|
{
|
|
2473
2534
|
type: "button",
|
|
@@ -2480,17 +2541,17 @@ function DraftCatalogEmptyState({
|
|
|
2480
2541
|
"Please configure ",
|
|
2481
2542
|
settingsTarget,
|
|
2482
2543
|
" in the ",
|
|
2483
|
-
/* @__PURE__ */
|
|
2484
|
-
/* @__PURE__ */
|
|
2544
|
+
/* @__PURE__ */ jsx38("span", { className: "underline", children: "settings" }),
|
|
2545
|
+
/* @__PURE__ */ jsx38(Icon, { name: "chevron-right", className: "size-3" })
|
|
2485
2546
|
]
|
|
2486
2547
|
}
|
|
2487
2548
|
);
|
|
2488
2549
|
}
|
|
2489
|
-
return /* @__PURE__ */
|
|
2550
|
+
return /* @__PURE__ */ jsx38("p", { className: "text-text-secondary px-2 py-4 text-center text-sm", children: loading ? "Loading\u2026" : emptyLabel });
|
|
2490
2551
|
}
|
|
2491
2552
|
|
|
2492
2553
|
// src/atoms/draft/DraftCompositeSelector.tsx
|
|
2493
|
-
import { Fragment as Fragment6, jsx as
|
|
2554
|
+
import { Fragment as Fragment6, jsx as jsx39, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
2494
2555
|
function draftMountsFromSpec(value) {
|
|
2495
2556
|
if (!Array.isArray(value)) return [];
|
|
2496
2557
|
const mounts = [];
|
|
@@ -2510,7 +2571,7 @@ var TABS = [
|
|
|
2510
2571
|
];
|
|
2511
2572
|
var SPEC_FLUSH_MS = 300;
|
|
2512
2573
|
function Checkbox({ checked }) {
|
|
2513
|
-
return /* @__PURE__ */
|
|
2574
|
+
return /* @__PURE__ */ jsx39(
|
|
2514
2575
|
"span",
|
|
2515
2576
|
{
|
|
2516
2577
|
className: cn(
|
|
@@ -2518,7 +2579,7 @@ function Checkbox({ checked }) {
|
|
|
2518
2579
|
checked ? "border-primary-button-bg bg-primary-button-bg text-primary-button-text" : "border-input-border bg-input-box-bg"
|
|
2519
2580
|
),
|
|
2520
2581
|
"aria-hidden": true,
|
|
2521
|
-
children: checked ? /* @__PURE__ */
|
|
2582
|
+
children: checked ? /* @__PURE__ */ jsx39(Icon, { name: "check", className: "size-3" }) : null
|
|
2522
2583
|
}
|
|
2523
2584
|
);
|
|
2524
2585
|
}
|
|
@@ -2530,15 +2591,15 @@ function CatalogRow({
|
|
|
2530
2591
|
onToggle,
|
|
2531
2592
|
action
|
|
2532
2593
|
}) {
|
|
2533
|
-
const content = /* @__PURE__ */
|
|
2534
|
-
/* @__PURE__ */
|
|
2535
|
-
/* @__PURE__ */
|
|
2536
|
-
/* @__PURE__ */
|
|
2537
|
-
description ? /* @__PURE__ */
|
|
2594
|
+
const content = /* @__PURE__ */ jsxs28(Fragment6, { children: [
|
|
2595
|
+
/* @__PURE__ */ jsx39("span", { className: "bg-secondary-bg text-text-secondary mt-0.5 flex size-7 shrink-0 items-center justify-center rounded text-xs font-semibold", children: title.charAt(0).toUpperCase() }),
|
|
2596
|
+
/* @__PURE__ */ jsxs28("span", { className: "min-w-0 flex-1", children: [
|
|
2597
|
+
/* @__PURE__ */ jsx39("span", { className: "text-text-primary block truncate text-sm font-medium", children: title }),
|
|
2598
|
+
description ? /* @__PURE__ */ jsx39("span", { className: "text-text-secondary line-clamp-1 text-xs", children: description }) : null
|
|
2538
2599
|
] })
|
|
2539
2600
|
] });
|
|
2540
2601
|
if (action) {
|
|
2541
|
-
return /* @__PURE__ */
|
|
2602
|
+
return /* @__PURE__ */ jsxs28(
|
|
2542
2603
|
"div",
|
|
2543
2604
|
{
|
|
2544
2605
|
role: "menuitemcheckbox",
|
|
@@ -2553,13 +2614,13 @@ function CatalogRow({
|
|
|
2553
2614
|
},
|
|
2554
2615
|
children: [
|
|
2555
2616
|
content,
|
|
2556
|
-
/* @__PURE__ */
|
|
2557
|
-
/* @__PURE__ */
|
|
2617
|
+
/* @__PURE__ */ jsx39("span", { className: "shrink-0", children: action }),
|
|
2618
|
+
/* @__PURE__ */ jsx39(Checkbox, { checked })
|
|
2558
2619
|
]
|
|
2559
2620
|
}
|
|
2560
2621
|
);
|
|
2561
2622
|
}
|
|
2562
|
-
return /* @__PURE__ */
|
|
2623
|
+
return /* @__PURE__ */ jsxs28(
|
|
2563
2624
|
"button",
|
|
2564
2625
|
{
|
|
2565
2626
|
type: "button",
|
|
@@ -2570,7 +2631,7 @@ function CatalogRow({
|
|
|
2570
2631
|
onClick: onToggle,
|
|
2571
2632
|
children: [
|
|
2572
2633
|
content,
|
|
2573
|
-
disabled ? /* @__PURE__ */
|
|
2634
|
+
disabled ? /* @__PURE__ */ jsx39(Icon, { name: "lock", className: "text-text-secondary size-3" }) : /* @__PURE__ */ jsx39(Checkbox, { checked })
|
|
2574
2635
|
]
|
|
2575
2636
|
}
|
|
2576
2637
|
);
|
|
@@ -2584,7 +2645,7 @@ function ConnectorConnectButton({
|
|
|
2584
2645
|
onConnected
|
|
2585
2646
|
}) {
|
|
2586
2647
|
const { handleAuthorize, isOAuthLoading } = useMCPAuth();
|
|
2587
|
-
return /* @__PURE__ */
|
|
2648
|
+
return /* @__PURE__ */ jsx39(
|
|
2588
2649
|
"button",
|
|
2589
2650
|
{
|
|
2590
2651
|
type: "button",
|
|
@@ -2609,15 +2670,15 @@ function SearchField({
|
|
|
2609
2670
|
onChange,
|
|
2610
2671
|
placeholder
|
|
2611
2672
|
}) {
|
|
2612
|
-
return /* @__PURE__ */
|
|
2613
|
-
/* @__PURE__ */
|
|
2673
|
+
return /* @__PURE__ */ jsxs28("label", { className: "relative mx-3 my-2 block", children: [
|
|
2674
|
+
/* @__PURE__ */ jsx39(
|
|
2614
2675
|
Icon,
|
|
2615
2676
|
{
|
|
2616
2677
|
name: "search",
|
|
2617
2678
|
className: "text-text-secondary pointer-events-none absolute top-1/2 left-2 size-3.5 -translate-y-1/2"
|
|
2618
2679
|
}
|
|
2619
2680
|
),
|
|
2620
|
-
/* @__PURE__ */
|
|
2681
|
+
/* @__PURE__ */ jsx39(
|
|
2621
2682
|
"input",
|
|
2622
2683
|
{
|
|
2623
2684
|
type: "search",
|
|
@@ -2630,7 +2691,7 @@ function SearchField({
|
|
|
2630
2691
|
] });
|
|
2631
2692
|
}
|
|
2632
2693
|
function SectionHeading({ label, count }) {
|
|
2633
|
-
return /* @__PURE__ */
|
|
2694
|
+
return /* @__PURE__ */ jsxs28("div", { className: "text-text-secondary px-3 pt-2 pb-1 text-[11px] font-medium tracking-wide uppercase", children: [
|
|
2634
2695
|
label,
|
|
2635
2696
|
" (",
|
|
2636
2697
|
count,
|
|
@@ -2808,11 +2869,11 @@ function DraftCompositeSelector({ disabled, isRunning, onAttach }) {
|
|
|
2808
2869
|
setQuery("");
|
|
2809
2870
|
shell?.setSettingsOpen(true, section);
|
|
2810
2871
|
};
|
|
2811
|
-
const content = /* @__PURE__ */
|
|
2812
|
-
/* @__PURE__ */
|
|
2872
|
+
const content = /* @__PURE__ */ jsxs28(Fragment6, { children: [
|
|
2873
|
+
/* @__PURE__ */ jsx39("div", { className: "flex shrink-0 border-b border-border", children: TABS.map((t) => {
|
|
2813
2874
|
const count = t.id === "connectors" ? selectedMcp.length : t.id === "skills" ? selectedSkills.length : null;
|
|
2814
2875
|
const active = tab === t.id;
|
|
2815
|
-
return /* @__PURE__ */
|
|
2876
|
+
return /* @__PURE__ */ jsxs28(
|
|
2816
2877
|
"button",
|
|
2817
2878
|
{
|
|
2818
2879
|
type: "button",
|
|
@@ -2825,15 +2886,15 @@ function DraftCompositeSelector({ disabled, isRunning, onAttach }) {
|
|
|
2825
2886
|
setQuery("");
|
|
2826
2887
|
},
|
|
2827
2888
|
children: [
|
|
2828
|
-
/* @__PURE__ */
|
|
2889
|
+
/* @__PURE__ */ jsx39(Icon, { name: t.icon, className: "size-3.5" }),
|
|
2829
2890
|
t.label,
|
|
2830
|
-
count != null && count > 0 ? /* @__PURE__ */
|
|
2891
|
+
count != null && count > 0 ? /* @__PURE__ */ jsx39("span", { className: "bg-secondary-bg rounded px-1 text-[10px]", children: count }) : null
|
|
2831
2892
|
]
|
|
2832
2893
|
},
|
|
2833
2894
|
t.id
|
|
2834
2895
|
);
|
|
2835
2896
|
}) }),
|
|
2836
|
-
tab === "capabilities" ? /* @__PURE__ */
|
|
2897
|
+
tab === "capabilities" ? /* @__PURE__ */ jsx39("div", { className: "min-h-0 flex-1 overflow-y-auto p-2", children: /* @__PURE__ */ jsx39(
|
|
2837
2898
|
DraftCapabilitiesPanel,
|
|
2838
2899
|
{
|
|
2839
2900
|
value: readAgentCapabilities(agentSpec?.config),
|
|
@@ -2850,8 +2911,8 @@ function DraftCompositeSelector({ disabled, isRunning, onAttach }) {
|
|
|
2850
2911
|
});
|
|
2851
2912
|
}
|
|
2852
2913
|
}
|
|
2853
|
-
) }) : /* @__PURE__ */
|
|
2854
|
-
/* @__PURE__ */
|
|
2914
|
+
) }) : /* @__PURE__ */ jsxs28(Fragment6, { children: [
|
|
2915
|
+
/* @__PURE__ */ jsx39(
|
|
2855
2916
|
SearchField,
|
|
2856
2917
|
{
|
|
2857
2918
|
value: query,
|
|
@@ -2859,47 +2920,47 @@ function DraftCompositeSelector({ disabled, isRunning, onAttach }) {
|
|
|
2859
2920
|
placeholder: tab === "connectors" ? "Search connectors..." : "Search skills..."
|
|
2860
2921
|
}
|
|
2861
2922
|
),
|
|
2862
|
-
tab === "skills" && skillsDisabled && skillsDisabledReason ? /* @__PURE__ */
|
|
2923
|
+
tab === "skills" && skillsDisabled && skillsDisabledReason ? /* @__PURE__ */ jsxs28(
|
|
2863
2924
|
"div",
|
|
2864
2925
|
{
|
|
2865
2926
|
role: "status",
|
|
2866
2927
|
className: "border-primary-button-bg/30 bg-primary-button-bg/5 text-text-primary mx-3 mb-2 flex items-center gap-2 rounded-lg border p-3",
|
|
2867
2928
|
children: [
|
|
2868
|
-
/* @__PURE__ */
|
|
2869
|
-
/* @__PURE__ */
|
|
2929
|
+
/* @__PURE__ */ jsx39(Icon, { name: "lock", className: "text-primary-button-bg size-3 shrink-0" }),
|
|
2930
|
+
/* @__PURE__ */ jsx39("span", { className: "text-xs leading-none", children: skillsDisabledReason })
|
|
2870
2931
|
]
|
|
2871
2932
|
}
|
|
2872
2933
|
) : null,
|
|
2873
|
-
/* @__PURE__ */
|
|
2874
|
-
pinnedSelectedConnectors.length > 0 ? /* @__PURE__ */
|
|
2875
|
-
/* @__PURE__ */
|
|
2876
|
-
pinnedSelectedConnectors.map((c) => /* @__PURE__ */
|
|
2934
|
+
/* @__PURE__ */ jsx39("div", { className: "min-h-0 flex-1 overflow-y-auto px-1 pb-2", children: tab === "connectors" ? /* @__PURE__ */ jsxs28(Fragment6, { children: [
|
|
2935
|
+
pinnedSelectedConnectors.length > 0 ? /* @__PURE__ */ jsxs28(Fragment6, { children: [
|
|
2936
|
+
/* @__PURE__ */ jsx39(SectionHeading, { label: "Selected", count: pinnedSelectedConnectors.length }),
|
|
2937
|
+
pinnedSelectedConnectors.map((c) => /* @__PURE__ */ jsx39(
|
|
2877
2938
|
CatalogRow,
|
|
2878
2939
|
{
|
|
2879
2940
|
title: c.name,
|
|
2880
2941
|
description: c.description,
|
|
2881
2942
|
checked: selectedMcpIds.has(c.id),
|
|
2882
|
-
action: isUnauthenticatedDcrConnector(c) ? /* @__PURE__ */
|
|
2943
|
+
action: isUnauthenticatedDcrConnector(c) ? /* @__PURE__ */ jsx39(ConnectorConnectButton, { connector: c, onConnected: refreshConnectors }) : void 0,
|
|
2883
2944
|
onToggle: () => toggleConnector(c)
|
|
2884
2945
|
},
|
|
2885
2946
|
c.id
|
|
2886
2947
|
))
|
|
2887
2948
|
] }) : null,
|
|
2888
|
-
pinnedAvailableConnectors.length > 0 ? /* @__PURE__ */
|
|
2889
|
-
/* @__PURE__ */
|
|
2890
|
-
pinnedAvailableConnectors.map((c) => /* @__PURE__ */
|
|
2949
|
+
pinnedAvailableConnectors.length > 0 ? /* @__PURE__ */ jsxs28(Fragment6, { children: [
|
|
2950
|
+
/* @__PURE__ */ jsx39(SectionHeading, { label: "Available", count: pinnedAvailableConnectors.length }),
|
|
2951
|
+
pinnedAvailableConnectors.map((c) => /* @__PURE__ */ jsx39(
|
|
2891
2952
|
CatalogRow,
|
|
2892
2953
|
{
|
|
2893
2954
|
title: c.name,
|
|
2894
2955
|
description: c.description,
|
|
2895
2956
|
checked: selectedMcpIds.has(c.id),
|
|
2896
|
-
action: isUnauthenticatedDcrConnector(c) ? /* @__PURE__ */
|
|
2957
|
+
action: isUnauthenticatedDcrConnector(c) ? /* @__PURE__ */ jsx39(ConnectorConnectButton, { connector: c, onConnected: refreshConnectors }) : void 0,
|
|
2897
2958
|
onToggle: () => toggleConnector(c)
|
|
2898
2959
|
},
|
|
2899
2960
|
c.id
|
|
2900
2961
|
))
|
|
2901
2962
|
] }) : null,
|
|
2902
|
-
filteredConnectors.length === 0 ? /* @__PURE__ */
|
|
2963
|
+
filteredConnectors.length === 0 ? /* @__PURE__ */ jsx39(
|
|
2903
2964
|
DraftCatalogEmptyState,
|
|
2904
2965
|
{
|
|
2905
2966
|
loading,
|
|
@@ -2908,10 +2969,10 @@ function DraftCompositeSelector({ disabled, isRunning, onAttach }) {
|
|
|
2908
2969
|
onOpenSettings: connectors.length === 0 && shell && canConfigureConnectors ? () => openSettings("connectors") : void 0
|
|
2909
2970
|
}
|
|
2910
2971
|
) : null
|
|
2911
|
-
] }) : /* @__PURE__ */
|
|
2912
|
-
pinnedSelectedSkills.length > 0 ? /* @__PURE__ */
|
|
2913
|
-
/* @__PURE__ */
|
|
2914
|
-
pinnedSelectedSkills.map((s) => /* @__PURE__ */
|
|
2972
|
+
] }) : /* @__PURE__ */ jsxs28(Fragment6, { children: [
|
|
2973
|
+
pinnedSelectedSkills.length > 0 ? /* @__PURE__ */ jsxs28(Fragment6, { children: [
|
|
2974
|
+
/* @__PURE__ */ jsx39(SectionHeading, { label: "Selected", count: pinnedSelectedSkills.length }),
|
|
2975
|
+
pinnedSelectedSkills.map((s) => /* @__PURE__ */ jsx39(
|
|
2915
2976
|
CatalogRow,
|
|
2916
2977
|
{
|
|
2917
2978
|
title: s.name,
|
|
@@ -2923,9 +2984,9 @@ function DraftCompositeSelector({ disabled, isRunning, onAttach }) {
|
|
|
2923
2984
|
s.id
|
|
2924
2985
|
))
|
|
2925
2986
|
] }) : null,
|
|
2926
|
-
pinnedAvailableSkills.length > 0 ? /* @__PURE__ */
|
|
2927
|
-
/* @__PURE__ */
|
|
2928
|
-
pinnedAvailableSkills.map((s) => /* @__PURE__ */
|
|
2987
|
+
pinnedAvailableSkills.length > 0 ? /* @__PURE__ */ jsxs28(Fragment6, { children: [
|
|
2988
|
+
/* @__PURE__ */ jsx39(SectionHeading, { label: "Available", count: pinnedAvailableSkills.length }),
|
|
2989
|
+
pinnedAvailableSkills.map((s) => /* @__PURE__ */ jsx39(
|
|
2929
2990
|
CatalogRow,
|
|
2930
2991
|
{
|
|
2931
2992
|
title: s.name,
|
|
@@ -2937,7 +2998,7 @@ function DraftCompositeSelector({ disabled, isRunning, onAttach }) {
|
|
|
2937
2998
|
s.id
|
|
2938
2999
|
))
|
|
2939
3000
|
] }) : null,
|
|
2940
|
-
filteredSkills.length === 0 ? /* @__PURE__ */
|
|
3001
|
+
filteredSkills.length === 0 ? /* @__PURE__ */ jsx39(
|
|
2941
3002
|
DraftCatalogEmptyState,
|
|
2942
3003
|
{
|
|
2943
3004
|
loading,
|
|
@@ -2949,8 +3010,8 @@ function DraftCompositeSelector({ disabled, isRunning, onAttach }) {
|
|
|
2949
3010
|
] }) })
|
|
2950
3011
|
] })
|
|
2951
3012
|
] });
|
|
2952
|
-
return /* @__PURE__ */
|
|
2953
|
-
hasValidModel ? /* @__PURE__ */
|
|
3013
|
+
return /* @__PURE__ */ jsxs28("div", { ref: containerRef, className: "relative flex flex-wrap items-center gap-1.5", children: [
|
|
3014
|
+
hasValidModel ? /* @__PURE__ */ jsx39(Tooltip, { content: toolsTooltip, className: "max-w-xs whitespace-pre-line text-left", side: "top", children: /* @__PURE__ */ jsxs28(
|
|
2954
3015
|
"button",
|
|
2955
3016
|
{
|
|
2956
3017
|
type: "button",
|
|
@@ -2972,13 +3033,13 @@ function DraftCompositeSelector({ disabled, isRunning, onAttach }) {
|
|
|
2972
3033
|
openPicker();
|
|
2973
3034
|
},
|
|
2974
3035
|
children: [
|
|
2975
|
-
/* @__PURE__ */
|
|
2976
|
-
/* @__PURE__ */
|
|
2977
|
-
/* @__PURE__ */
|
|
3036
|
+
/* @__PURE__ */ jsx39(Icon, { name: "wrench", className: "size-3.5" }),
|
|
3037
|
+
/* @__PURE__ */ jsx39("span", { children: "Tools" }),
|
|
3038
|
+
/* @__PURE__ */ jsx39("span", { className: "bg-primary-button-bg/10 text-primary-button-bg rounded px-1.5 py-0.5 text-[10px] font-semibold", children: toolsCount })
|
|
2978
3039
|
]
|
|
2979
3040
|
}
|
|
2980
3041
|
) }) : null,
|
|
2981
|
-
onAttach ? /* @__PURE__ */
|
|
3042
|
+
onAttach ? /* @__PURE__ */ jsx39(Tooltip, { content: "Attach a file", children: /* @__PURE__ */ jsx39(
|
|
2982
3043
|
"button",
|
|
2983
3044
|
{
|
|
2984
3045
|
type: "button",
|
|
@@ -2986,10 +3047,10 @@ function DraftCompositeSelector({ disabled, isRunning, onAttach }) {
|
|
|
2986
3047
|
"aria-label": "Attach a file",
|
|
2987
3048
|
className: auiButtonClass({ variant: "ghost", size: "icon" }),
|
|
2988
3049
|
onClick: onAttach,
|
|
2989
|
-
children: /* @__PURE__ */
|
|
3050
|
+
children: /* @__PURE__ */ jsx39(Icon, { name: "paperclip" })
|
|
2990
3051
|
}
|
|
2991
3052
|
) }) : null,
|
|
2992
|
-
open && hasValidModel ? isMobile || compactLayout ? /* @__PURE__ */
|
|
3053
|
+
open && hasValidModel ? isMobile || compactLayout ? /* @__PURE__ */ jsx39(BottomSheet, { id: menuId, open: true, onOpenChange: setOpenAndFlush, "aria-label": "Add to composer", children: content }) : /* @__PURE__ */ jsx39(
|
|
2993
3054
|
"div",
|
|
2994
3055
|
{
|
|
2995
3056
|
id: menuId,
|
|
@@ -3065,7 +3126,7 @@ function CatalogLogo({ src, alt = "", onError, ...props }) {
|
|
|
3065
3126
|
}
|
|
3066
3127
|
|
|
3067
3128
|
// src/atoms/draft/DraftModelCatalogPanel.tsx
|
|
3068
|
-
import { Fragment as Fragment7, jsx as
|
|
3129
|
+
import { Fragment as Fragment7, jsx as jsx40, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3069
3130
|
function monogram(value) {
|
|
3070
3131
|
const trimmed = value.trim();
|
|
3071
3132
|
return trimmed ? trimmed.charAt(0).toUpperCase() : "?";
|
|
@@ -3076,9 +3137,9 @@ function displayModelLabel2(modelName) {
|
|
|
3076
3137
|
}
|
|
3077
3138
|
function ProviderMark({ logo, label, className }) {
|
|
3078
3139
|
if (logo) {
|
|
3079
|
-
return /* @__PURE__ */
|
|
3140
|
+
return /* @__PURE__ */ jsx40(CatalogLogo, { src: logo, alt: "", className: cn("shrink-0 rounded object-contain", className), "aria-hidden": true });
|
|
3080
3141
|
}
|
|
3081
|
-
return /* @__PURE__ */
|
|
3142
|
+
return /* @__PURE__ */ jsx40(
|
|
3082
3143
|
"span",
|
|
3083
3144
|
{
|
|
3084
3145
|
className: cn(
|
|
@@ -3123,18 +3184,18 @@ function DraftModelCatalogPanel({
|
|
|
3123
3184
|
(model) => model.name.toLowerCase().includes(needle) || model.id.toLowerCase().includes(needle) || model.provider.name.toLowerCase().includes(needle)
|
|
3124
3185
|
) : models;
|
|
3125
3186
|
const sections = groupModelsByProvider(filtered);
|
|
3126
|
-
return /* @__PURE__ */
|
|
3127
|
-
/* @__PURE__ */
|
|
3128
|
-
showHeading ? /* @__PURE__ */
|
|
3129
|
-
/* @__PURE__ */
|
|
3130
|
-
/* @__PURE__ */
|
|
3187
|
+
return /* @__PURE__ */ jsxs29(Fragment7, { children: [
|
|
3188
|
+
/* @__PURE__ */ jsxs29("div", { className: "border-b border-border px-3 py-2", children: [
|
|
3189
|
+
showHeading ? /* @__PURE__ */ jsx40("p", { className: "text-text-primary mb-2 text-sm font-semibold", children: "Select model" }) : null,
|
|
3190
|
+
/* @__PURE__ */ jsxs29("label", { className: "relative block", children: [
|
|
3191
|
+
/* @__PURE__ */ jsx40(
|
|
3131
3192
|
Icon,
|
|
3132
3193
|
{
|
|
3133
3194
|
name: "search",
|
|
3134
3195
|
className: "text-text-secondary pointer-events-none absolute top-1/2 left-2 size-3.5 -translate-y-1/2"
|
|
3135
3196
|
}
|
|
3136
3197
|
),
|
|
3137
|
-
/* @__PURE__ */
|
|
3198
|
+
/* @__PURE__ */ jsx40(
|
|
3138
3199
|
"input",
|
|
3139
3200
|
{
|
|
3140
3201
|
type: "search",
|
|
@@ -3147,14 +3208,14 @@ function DraftModelCatalogPanel({
|
|
|
3147
3208
|
)
|
|
3148
3209
|
] })
|
|
3149
3210
|
] }),
|
|
3150
|
-
/* @__PURE__ */
|
|
3211
|
+
/* @__PURE__ */ jsx40(
|
|
3151
3212
|
"div",
|
|
3152
3213
|
{
|
|
3153
3214
|
id: listboxId,
|
|
3154
3215
|
role: "listbox",
|
|
3155
3216
|
"aria-label": "Select model",
|
|
3156
3217
|
className: "flex min-h-0 flex-1 flex-col overflow-y-auto p-1",
|
|
3157
|
-
children: filtered.length === 0 ? /* @__PURE__ */
|
|
3218
|
+
children: filtered.length === 0 ? /* @__PURE__ */ jsx40(
|
|
3158
3219
|
DraftCatalogEmptyState,
|
|
3159
3220
|
{
|
|
3160
3221
|
loading,
|
|
@@ -3164,27 +3225,27 @@ function DraftModelCatalogPanel({
|
|
|
3164
3225
|
}
|
|
3165
3226
|
) : sections.map((section, sectionIndex) => {
|
|
3166
3227
|
const headingId = `${listboxId}-provider-${sectionIndex}`;
|
|
3167
|
-
return /* @__PURE__ */
|
|
3228
|
+
return /* @__PURE__ */ jsxs29(
|
|
3168
3229
|
"div",
|
|
3169
3230
|
{
|
|
3170
3231
|
role: "group",
|
|
3171
3232
|
"aria-labelledby": headingId,
|
|
3172
3233
|
className: cn(sectionIndex > 0 && "mt-2"),
|
|
3173
3234
|
children: [
|
|
3174
|
-
/* @__PURE__ */
|
|
3235
|
+
/* @__PURE__ */ jsxs29(
|
|
3175
3236
|
"div",
|
|
3176
3237
|
{
|
|
3177
3238
|
id: headingId,
|
|
3178
3239
|
className: "text-text-secondary flex items-center gap-1.5 px-2 py-1.5 text-[11px] font-medium tracking-wide uppercase",
|
|
3179
3240
|
children: [
|
|
3180
|
-
/* @__PURE__ */
|
|
3181
|
-
/* @__PURE__ */
|
|
3241
|
+
/* @__PURE__ */ jsx40(ProviderMark, { logo: section.logo, label: section.name, className: "size-3.5 text-[9px]" }),
|
|
3242
|
+
/* @__PURE__ */ jsx40("span", { className: "truncate", children: section.name })
|
|
3182
3243
|
]
|
|
3183
3244
|
}
|
|
3184
3245
|
),
|
|
3185
3246
|
section.models.map((model) => {
|
|
3186
3247
|
const active = selectedName ? model.name === selectedName : filtered[0] === model;
|
|
3187
|
-
return /* @__PURE__ */
|
|
3248
|
+
return /* @__PURE__ */ jsxs29(
|
|
3188
3249
|
"button",
|
|
3189
3250
|
{
|
|
3190
3251
|
type: "button",
|
|
@@ -3196,8 +3257,8 @@ function DraftModelCatalogPanel({
|
|
|
3196
3257
|
),
|
|
3197
3258
|
onClick: () => onSelect(model),
|
|
3198
3259
|
children: [
|
|
3199
|
-
/* @__PURE__ */
|
|
3200
|
-
active ? /* @__PURE__ */
|
|
3260
|
+
/* @__PURE__ */ jsx40("span", { className: "truncate font-medium", children: displayModelLabel2(model.name) }),
|
|
3261
|
+
active ? /* @__PURE__ */ jsx40(Icon, { name: "check", className: "ml-auto size-3.5" }) : null
|
|
3201
3262
|
]
|
|
3202
3263
|
},
|
|
3203
3264
|
model.id || model.name
|
|
@@ -3214,7 +3275,7 @@ function DraftModelCatalogPanel({
|
|
|
3214
3275
|
}
|
|
3215
3276
|
|
|
3216
3277
|
// src/atoms/draft/DraftModelSelector.tsx
|
|
3217
|
-
import { jsx as
|
|
3278
|
+
import { jsx as jsx41, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3218
3279
|
function DraftModelSelector({ disabled, isRunning }) {
|
|
3219
3280
|
const { models, loading, ensureLoaded } = useDraftCatalog();
|
|
3220
3281
|
const { agentSpec } = useTrueFoundryAgentSpec4();
|
|
@@ -3265,7 +3326,7 @@ function DraftModelSelector({ disabled, isRunning }) {
|
|
|
3265
3326
|
return () => document.removeEventListener("mousedown", handler);
|
|
3266
3327
|
}, [open]);
|
|
3267
3328
|
const account = selected?.provider.name ?? selectedName;
|
|
3268
|
-
const content = /* @__PURE__ */
|
|
3329
|
+
const content = /* @__PURE__ */ jsx41(
|
|
3269
3330
|
DraftModelCatalogPanel,
|
|
3270
3331
|
{
|
|
3271
3332
|
models,
|
|
@@ -3288,8 +3349,8 @@ function DraftModelSelector({ disabled, isRunning }) {
|
|
|
3288
3349
|
}
|
|
3289
3350
|
}
|
|
3290
3351
|
);
|
|
3291
|
-
return /* @__PURE__ */
|
|
3292
|
-
/* @__PURE__ */
|
|
3352
|
+
return /* @__PURE__ */ jsxs30("div", { ref: containerRef, className: "relative", children: [
|
|
3353
|
+
/* @__PURE__ */ jsxs30(
|
|
3293
3354
|
"button",
|
|
3294
3355
|
{
|
|
3295
3356
|
type: "button",
|
|
@@ -3305,21 +3366,21 @@ function DraftModelSelector({ disabled, isRunning }) {
|
|
|
3305
3366
|
}),
|
|
3306
3367
|
onClick: () => setOpen((v) => !v),
|
|
3307
3368
|
children: [
|
|
3308
|
-
/* @__PURE__ */
|
|
3309
|
-
/* @__PURE__ */
|
|
3310
|
-
/* @__PURE__ */
|
|
3369
|
+
/* @__PURE__ */ jsx41(ProviderMark, { logo: selected?.provider.logo, label: account, className: "size-4 text-xs" }),
|
|
3370
|
+
/* @__PURE__ */ jsx41("span", { className: "truncate", children: label }),
|
|
3371
|
+
/* @__PURE__ */ jsx41(Icon, { name: "chevron-down", className: "size-3.5 shrink-0 opacity-60" })
|
|
3311
3372
|
]
|
|
3312
3373
|
}
|
|
3313
3374
|
),
|
|
3314
|
-
open ? isMobile || compactLayout ? /* @__PURE__ */
|
|
3375
|
+
open ? isMobile || compactLayout ? /* @__PURE__ */ jsx41(BottomSheet, { open: true, onOpenChange: setOpen, "aria-label": "Select model", children: content }) : /* @__PURE__ */ jsx41("div", { className: "bg-card-bg text-text-primary absolute right-0 bottom-full z-50 mb-2 flex max-h-[22rem] w-[18rem] flex-col overflow-hidden rounded-lg border border-border shadow-lg", children: content }) : null
|
|
3315
3376
|
] });
|
|
3316
3377
|
}
|
|
3317
3378
|
|
|
3318
3379
|
// src/atoms/HistoryLoader.tsx
|
|
3319
3380
|
import { forwardRef } from "react";
|
|
3320
|
-
import { jsx as
|
|
3381
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
3321
3382
|
var HistoryLoader = forwardRef(
|
|
3322
|
-
({ className, isLoading = false, ...rest }, ref) => /* @__PURE__ */
|
|
3383
|
+
({ className, isLoading = false, ...rest }, ref) => /* @__PURE__ */ jsx42(
|
|
3323
3384
|
"div",
|
|
3324
3385
|
{
|
|
3325
3386
|
ref,
|
|
@@ -3329,7 +3390,7 @@ var HistoryLoader = forwardRef(
|
|
|
3329
3390
|
"aria-label": isLoading ? "Loading older messages" : "Scroll up to load older messages",
|
|
3330
3391
|
className: cn("flex justify-center py-2", className),
|
|
3331
3392
|
...rest,
|
|
3332
|
-
children: isLoading && /* @__PURE__ */
|
|
3393
|
+
children: isLoading && /* @__PURE__ */ jsx42(Spinner, { size: 14 })
|
|
3333
3394
|
}
|
|
3334
3395
|
)
|
|
3335
3396
|
);
|
|
@@ -3339,9 +3400,9 @@ HistoryLoader.displayName = "HistoryLoader";
|
|
|
3339
3400
|
import { useMemo as useMemo4, useRef as useRef9 } from "react";
|
|
3340
3401
|
import ReactMarkdown from "react-markdown";
|
|
3341
3402
|
import remarkGfm from "remark-gfm";
|
|
3342
|
-
import { Fragment as Fragment8, jsx as
|
|
3403
|
+
import { Fragment as Fragment8, jsx as jsx43 } from "react/jsx-runtime";
|
|
3343
3404
|
function preloadMarkdownOpenUI() {
|
|
3344
|
-
return import("./OpenUiFenceBlock-
|
|
3405
|
+
return import("./OpenUiFenceBlock-6UIIAVBX.js");
|
|
3345
3406
|
}
|
|
3346
3407
|
var LARGE_STREAMING_FENCE_CHARS = 8 * 1024;
|
|
3347
3408
|
function getActiveStreamingFenceCode(content) {
|
|
@@ -3370,15 +3431,19 @@ function makeComponents(opts) {
|
|
|
3370
3431
|
inlineCodeClassName
|
|
3371
3432
|
} = opts;
|
|
3372
3433
|
return {
|
|
3434
|
+
// Chat markdown links should open in a new tab.
|
|
3435
|
+
a({ href, children, node: _node, ...props }) {
|
|
3436
|
+
return /* @__PURE__ */ jsx43("a", { ...props, href, target: "_blank", rel: "noopener noreferrer", children });
|
|
3437
|
+
},
|
|
3373
3438
|
// Strip default <pre> wrapper — each block renderer provides its own container.
|
|
3374
3439
|
pre({ children }) {
|
|
3375
|
-
return /* @__PURE__ */
|
|
3440
|
+
return /* @__PURE__ */ jsx43(Fragment8, { children });
|
|
3376
3441
|
},
|
|
3377
3442
|
code({ className, children }) {
|
|
3378
3443
|
const language = /language-(\w+)/.exec(className ?? "")?.[1];
|
|
3379
3444
|
const code = String(children ?? "").replace(/\n$/, "");
|
|
3380
3445
|
if (!className) {
|
|
3381
|
-
return /* @__PURE__ */
|
|
3446
|
+
return /* @__PURE__ */ jsx43(
|
|
3382
3447
|
"code",
|
|
3383
3448
|
{
|
|
3384
3449
|
className: cn("aui-inline-code rounded bg-secondary-bg px-1 py-0.5 font-mono text-sm", inlineCodeClassName),
|
|
@@ -3387,10 +3452,10 @@ function makeComponents(opts) {
|
|
|
3387
3452
|
);
|
|
3388
3453
|
}
|
|
3389
3454
|
if (language === "openui") {
|
|
3390
|
-
return /* @__PURE__ */
|
|
3455
|
+
return /* @__PURE__ */ jsx43(OpenUiFenceBlock2, { content: code, isStreaming, darkTheme });
|
|
3391
3456
|
}
|
|
3392
3457
|
if (language === "sandbox_artifacts") {
|
|
3393
|
-
return /* @__PURE__ */
|
|
3458
|
+
return /* @__PURE__ */ jsx43(
|
|
3394
3459
|
SandboxArtifactDownload2,
|
|
3395
3460
|
{
|
|
3396
3461
|
code,
|
|
@@ -3403,18 +3468,18 @@ function makeComponents(opts) {
|
|
|
3403
3468
|
const activeFenceCode = getActiveFenceCode();
|
|
3404
3469
|
const isActiveOversizedFence = isStreaming === true && activeFenceCode != null && code === activeFenceCode && code.length > LARGE_STREAMING_FENCE_CHARS;
|
|
3405
3470
|
if (isActiveOversizedFence) {
|
|
3406
|
-
return /* @__PURE__ */
|
|
3471
|
+
return /* @__PURE__ */ jsx43(
|
|
3407
3472
|
"pre",
|
|
3408
3473
|
{
|
|
3409
3474
|
className: cn(
|
|
3410
3475
|
"aui-syntax-highlighter my-2 max-w-full min-w-0 overflow-x-auto whitespace-pre-wrap break-words rounded-md"
|
|
3411
3476
|
),
|
|
3412
3477
|
"data-testid": "aui-plain-streaming-fence",
|
|
3413
|
-
children: /* @__PURE__ */
|
|
3478
|
+
children: /* @__PURE__ */ jsx43("code", { className: cn(className, "whitespace-pre-wrap break-words"), children: code })
|
|
3414
3479
|
}
|
|
3415
3480
|
);
|
|
3416
3481
|
}
|
|
3417
|
-
return /* @__PURE__ */
|
|
3482
|
+
return /* @__PURE__ */ jsx43(SyntaxHighlighter2, { code, language, darkTheme });
|
|
3418
3483
|
}
|
|
3419
3484
|
};
|
|
3420
3485
|
}
|
|
@@ -3460,36 +3525,36 @@ function Markdown({
|
|
|
3460
3525
|
classNames.inlineCode
|
|
3461
3526
|
]
|
|
3462
3527
|
);
|
|
3463
|
-
return /* @__PURE__ */
|
|
3528
|
+
return /* @__PURE__ */ jsx43(
|
|
3464
3529
|
"div",
|
|
3465
3530
|
{
|
|
3466
3531
|
className: cn("aui-markdown markdown-body min-w-0 max-w-full overflow-x-clip", classNames.markdown, className),
|
|
3467
|
-
children: /* @__PURE__ */
|
|
3532
|
+
children: /* @__PURE__ */ jsx43(ReactMarkdown, { remarkPlugins: REMARK_PLUGINS, components, children: content })
|
|
3468
3533
|
}
|
|
3469
3534
|
);
|
|
3470
3535
|
}
|
|
3471
3536
|
|
|
3472
3537
|
// src/atoms/MessageActionBar.tsx
|
|
3473
|
-
import { jsx as
|
|
3538
|
+
import { jsx as jsx44, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
3474
3539
|
var actionBtnClass = "h-6 w-6 text-text-secondary hover:text-text-primary [&_svg]:size-3.5";
|
|
3475
3540
|
function MessageActionBar({ isCopied, onCopy, createdAt, className }) {
|
|
3476
3541
|
const MessageTimestamp2 = useSlot("MessageTimestamp");
|
|
3477
|
-
return /* @__PURE__ */
|
|
3542
|
+
return /* @__PURE__ */ jsxs31(
|
|
3478
3543
|
"div",
|
|
3479
3544
|
{
|
|
3480
3545
|
className: cn("aui-assistant-action-bar-root animate-in fade-in flex items-center gap-1 duration-200", className),
|
|
3481
3546
|
children: [
|
|
3482
|
-
/* @__PURE__ */
|
|
3483
|
-
/* @__PURE__ */
|
|
3547
|
+
/* @__PURE__ */ jsx44(MessageTimestamp2, { createdAt, className: "mr-1" }),
|
|
3548
|
+
/* @__PURE__ */ jsx44(IconButton, { "aria-label": "Copy", tooltip: "Copy", variant: "ghost", className: actionBtnClass, onClick: onCopy, children: /* @__PURE__ */ jsx44(Icon, { name: isCopied ? "check" : "clone", size: "0.875em" }) })
|
|
3484
3549
|
]
|
|
3485
3550
|
}
|
|
3486
3551
|
);
|
|
3487
3552
|
}
|
|
3488
3553
|
|
|
3489
3554
|
// src/atoms/MessageErrorBanner.tsx
|
|
3490
|
-
import { jsx as
|
|
3555
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
3491
3556
|
function MessageErrorBanner({ message, className }) {
|
|
3492
|
-
return /* @__PURE__ */
|
|
3557
|
+
return /* @__PURE__ */ jsx45(
|
|
3493
3558
|
"div",
|
|
3494
3559
|
{
|
|
3495
3560
|
role: "alert",
|
|
@@ -3497,15 +3562,15 @@ function MessageErrorBanner({ message, className }) {
|
|
|
3497
3562
|
"aui-message-error-root border-failure-bg bg-failure-bg/10 text-failure-bg mt-2 rounded-md border p-3 text-sm",
|
|
3498
3563
|
className
|
|
3499
3564
|
),
|
|
3500
|
-
children: /* @__PURE__ */
|
|
3565
|
+
children: /* @__PURE__ */ jsx45("span", { className: "aui-message-error-message line-clamp-2", children: message })
|
|
3501
3566
|
}
|
|
3502
3567
|
);
|
|
3503
3568
|
}
|
|
3504
3569
|
|
|
3505
3570
|
// src/atoms/MessageIndicator.tsx
|
|
3506
|
-
import { jsx as
|
|
3571
|
+
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
3507
3572
|
function MessageIndicator({ className }) {
|
|
3508
|
-
return /* @__PURE__ */
|
|
3573
|
+
return /* @__PURE__ */ jsx46(
|
|
3509
3574
|
"span",
|
|
3510
3575
|
{
|
|
3511
3576
|
"data-slot": "aui_assistant-message-indicator",
|
|
@@ -3517,7 +3582,7 @@ function MessageIndicator({ className }) {
|
|
|
3517
3582
|
}
|
|
3518
3583
|
|
|
3519
3584
|
// src/atoms/MessageTimestamp.tsx
|
|
3520
|
-
import { jsx as
|
|
3585
|
+
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
3521
3586
|
function toDate(createdAt) {
|
|
3522
3587
|
if (createdAt == null) {
|
|
3523
3588
|
return null;
|
|
@@ -3548,12 +3613,12 @@ function MessageTimestamp({ createdAt, className }) {
|
|
|
3548
3613
|
if (date == null) {
|
|
3549
3614
|
return null;
|
|
3550
3615
|
}
|
|
3551
|
-
return /* @__PURE__ */
|
|
3616
|
+
return /* @__PURE__ */ jsx47(LightTooltip, { title: formatFullDate(date), size: "fit", children: /* @__PURE__ */ jsx47("span", { className: cn("text-xs font-medium cursor-pointer leading-normal shrink-0 text-text-secondary", className), children: formatTime(date) }) });
|
|
3552
3617
|
}
|
|
3553
3618
|
|
|
3554
3619
|
// src/atoms/MonacoEditorCore.tsx
|
|
3555
3620
|
import { useEffect as useEffect12, useRef as useRef10, useState as useState18 } from "react";
|
|
3556
|
-
import { jsx as
|
|
3621
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
3557
3622
|
var AUI_MONACO_LIGHT = "aui-monaco-light";
|
|
3558
3623
|
var AUI_MONACO_DARK = "aui-monaco-dark";
|
|
3559
3624
|
var TRANSPARENT = "#00000000";
|
|
@@ -3737,20 +3802,20 @@ function MonacoEditorCore({
|
|
|
3737
3802
|
monacoRef.current?.editor.setTheme(resolvedTheme);
|
|
3738
3803
|
}, [resolvedTheme]);
|
|
3739
3804
|
const styleHeight = autoHeight ? autoPx : typeof height === "number" ? height : height;
|
|
3740
|
-
return /* @__PURE__ */
|
|
3805
|
+
return /* @__PURE__ */ jsx48(
|
|
3741
3806
|
"div",
|
|
3742
3807
|
{
|
|
3743
3808
|
ref: wrapperRef,
|
|
3744
3809
|
className: cn("aui-monaco overflow-hidden", classNames.monaco?.root, className),
|
|
3745
3810
|
style: { height: styleHeight },
|
|
3746
|
-
children: /* @__PURE__ */
|
|
3811
|
+
children: /* @__PURE__ */ jsx48("div", { ref: containerRef, className: cn("h-full w-full overflow-hidden", classNames.monaco?.editor) })
|
|
3747
3812
|
}
|
|
3748
3813
|
);
|
|
3749
3814
|
}
|
|
3750
3815
|
|
|
3751
3816
|
// src/atoms/SandboxArtifactDownload.tsx
|
|
3752
3817
|
import { useMemo as useMemo5 } from "react";
|
|
3753
|
-
import { jsx as
|
|
3818
|
+
import { jsx as jsx49 } from "react/jsx-runtime";
|
|
3754
3819
|
var PREFIX = "sandbox_artifacts";
|
|
3755
3820
|
var PAIR_RE = /\[([^\]]*)\]\(([^)]*)\)/g;
|
|
3756
3821
|
function parseSandboxArtifacts(raw) {
|
|
@@ -3785,7 +3850,7 @@ function SandboxArtifactDownload({
|
|
|
3785
3850
|
const ChatFileDownload2 = useSlot("ChatFileDownload");
|
|
3786
3851
|
const artifacts = useMemo5(() => parseSandboxArtifacts(code), [code]);
|
|
3787
3852
|
if (artifacts.length === 0) return null;
|
|
3788
|
-
return /* @__PURE__ */
|
|
3853
|
+
return /* @__PURE__ */ jsx49(
|
|
3789
3854
|
ChatFileDownload2,
|
|
3790
3855
|
{
|
|
3791
3856
|
files: artifacts,
|
|
@@ -3797,10 +3862,10 @@ function SandboxArtifactDownload({
|
|
|
3797
3862
|
}
|
|
3798
3863
|
|
|
3799
3864
|
// src/atoms/SandboxToolCallCard.tsx
|
|
3800
|
-
import { Fragment as Fragment9, jsx as
|
|
3865
|
+
import { Fragment as Fragment9, jsx as jsx50, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
3801
3866
|
function JsonPane({ value, className }) {
|
|
3802
3867
|
const MonacoEditorCore2 = useSlot("MonacoEditorCore");
|
|
3803
|
-
return /* @__PURE__ */
|
|
3868
|
+
return /* @__PURE__ */ jsx50(
|
|
3804
3869
|
MonacoEditorCore2,
|
|
3805
3870
|
{
|
|
3806
3871
|
language: "json",
|
|
@@ -3831,22 +3896,22 @@ function SandboxBody({
|
|
|
3831
3896
|
onViewModeChange,
|
|
3832
3897
|
dataTestPrefix
|
|
3833
3898
|
}) {
|
|
3834
|
-
return /* @__PURE__ */
|
|
3899
|
+
return /* @__PURE__ */ jsxs32(
|
|
3835
3900
|
"div",
|
|
3836
3901
|
{
|
|
3837
3902
|
className: "rounded-lg border border-border bg-primary-bg",
|
|
3838
3903
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-sandbox` : void 0,
|
|
3839
3904
|
children: [
|
|
3840
|
-
/* @__PURE__ */
|
|
3841
|
-
/* @__PURE__ */
|
|
3842
|
-
/* @__PURE__ */
|
|
3905
|
+
/* @__PURE__ */ jsx50("div", { className: "rounded-t-md border-b border-primary-button-bg/30 bg-primary-button-bg/10", children: /* @__PURE__ */ jsxs32("div", { className: "flex w-full min-w-0 items-center gap-2 px-3 py-1.5", children: [
|
|
3906
|
+
/* @__PURE__ */ jsx50("p", { className: "min-w-0 font-sans text-xs font-medium text-primary-button-bg", children: "sandbox" }),
|
|
3907
|
+
/* @__PURE__ */ jsxs32(
|
|
3843
3908
|
"div",
|
|
3844
3909
|
{
|
|
3845
3910
|
className: "ml-auto flex shrink-0 items-center gap-1.5",
|
|
3846
3911
|
onClick: (e) => e.stopPropagation(),
|
|
3847
3912
|
onKeyDown: (e) => e.stopPropagation(),
|
|
3848
3913
|
children: [
|
|
3849
|
-
exitCode != null && /* @__PURE__ */
|
|
3914
|
+
exitCode != null && /* @__PURE__ */ jsxs32(
|
|
3850
3915
|
"span",
|
|
3851
3916
|
{
|
|
3852
3917
|
className: cn(
|
|
@@ -3855,20 +3920,20 @@ function SandboxBody({
|
|
|
3855
3920
|
),
|
|
3856
3921
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-exit-code` : void 0,
|
|
3857
3922
|
children: [
|
|
3858
|
-
/* @__PURE__ */
|
|
3923
|
+
/* @__PURE__ */ jsx50(Icon, { name: exitCode === 0 ? "circle-check" : "circle-xmark", size: 12 }),
|
|
3859
3924
|
"exit: ",
|
|
3860
3925
|
exitCode
|
|
3861
3926
|
]
|
|
3862
3927
|
}
|
|
3863
3928
|
),
|
|
3864
|
-
/* @__PURE__ */
|
|
3929
|
+
/* @__PURE__ */ jsxs32(
|
|
3865
3930
|
"div",
|
|
3866
3931
|
{
|
|
3867
3932
|
className: "inline-flex h-6 items-center rounded-md border border-border bg-primary-bg p-0.5",
|
|
3868
3933
|
role: "group",
|
|
3869
3934
|
"aria-label": "Sandbox view",
|
|
3870
3935
|
children: [
|
|
3871
|
-
/* @__PURE__ */
|
|
3936
|
+
/* @__PURE__ */ jsx50(
|
|
3872
3937
|
"button",
|
|
3873
3938
|
{
|
|
3874
3939
|
type: "button",
|
|
@@ -3880,10 +3945,10 @@ function SandboxBody({
|
|
|
3880
3945
|
"inline-flex size-5 cursor-pointer items-center justify-center rounded-sm text-text-secondary transition-colors",
|
|
3881
3946
|
viewMode === "terminal" && "bg-dropdown-selected-item-bg text-dropdown-selected-item-text shadow-sm"
|
|
3882
3947
|
),
|
|
3883
|
-
children: /* @__PURE__ */
|
|
3948
|
+
children: /* @__PURE__ */ jsx50(Icon, { name: "terminal", size: 12 })
|
|
3884
3949
|
}
|
|
3885
3950
|
),
|
|
3886
|
-
/* @__PURE__ */
|
|
3951
|
+
/* @__PURE__ */ jsx50(
|
|
3887
3952
|
"button",
|
|
3888
3953
|
{
|
|
3889
3954
|
type: "button",
|
|
@@ -3895,7 +3960,7 @@ function SandboxBody({
|
|
|
3895
3960
|
"inline-flex size-5 cursor-pointer items-center justify-center rounded-sm text-text-secondary transition-colors",
|
|
3896
3961
|
viewMode === "code" && "bg-dropdown-selected-item-bg text-dropdown-selected-item-text shadow-sm"
|
|
3897
3962
|
),
|
|
3898
|
-
children: /* @__PURE__ */
|
|
3963
|
+
children: /* @__PURE__ */ jsx50(Icon, { name: "code", size: 12 })
|
|
3899
3964
|
}
|
|
3900
3965
|
)
|
|
3901
3966
|
]
|
|
@@ -3905,35 +3970,35 @@ function SandboxBody({
|
|
|
3905
3970
|
}
|
|
3906
3971
|
)
|
|
3907
3972
|
] }) }),
|
|
3908
|
-
/* @__PURE__ */
|
|
3909
|
-
argsJson && /* @__PURE__ */
|
|
3910
|
-
/* @__PURE__ */
|
|
3911
|
-
/* @__PURE__ */
|
|
3973
|
+
/* @__PURE__ */ jsx50("div", { className: "rounded-b-lg border border-t-0 border-border p-3", children: hasContent && /* @__PURE__ */ jsx50("div", { className: "max-h-80 overflow-x-hidden overflow-y-auto whitespace-pre-wrap break-words font-mono text-xs text-text-primary", children: viewMode === "code" ? /* @__PURE__ */ jsxs32(Fragment9, { children: [
|
|
3974
|
+
argsJson && /* @__PURE__ */ jsxs32("div", { className: "my-1 border-l-4 border-primary-button-bg px-3", children: [
|
|
3975
|
+
/* @__PURE__ */ jsx50("div", { className: "mb-1 font-sans text-xs font-medium leading-4", children: "Arguments" }),
|
|
3976
|
+
/* @__PURE__ */ jsx50(JsonPane, { value: argsJson, className: "pl-2" })
|
|
3912
3977
|
] }),
|
|
3913
|
-
resultJson && /* @__PURE__ */
|
|
3914
|
-
/* @__PURE__ */
|
|
3915
|
-
/* @__PURE__ */
|
|
3978
|
+
resultJson && /* @__PURE__ */ jsxs32("div", { className: "my-1 border-l-4 border-primary-button-bg/60 px-3", children: [
|
|
3979
|
+
/* @__PURE__ */ jsx50("div", { className: "mb-1 mt-2 font-sans text-xs font-medium leading-4", children: "Result" }),
|
|
3980
|
+
/* @__PURE__ */ jsx50(JsonPane, { value: resultJson, className: "pl-2" })
|
|
3916
3981
|
] })
|
|
3917
|
-
] }) : /* @__PURE__ */
|
|
3918
|
-
command && /* @__PURE__ */
|
|
3919
|
-
/* @__PURE__ */
|
|
3920
|
-
/* @__PURE__ */
|
|
3921
|
-
/* @__PURE__ */
|
|
3982
|
+
] }) : /* @__PURE__ */ jsxs32(Fragment9, { children: [
|
|
3983
|
+
command && /* @__PURE__ */ jsxs32("div", { className: "my-1 break-all border-l-4 border-primary-button-bg px-3", children: [
|
|
3984
|
+
/* @__PURE__ */ jsx50("div", { className: "mb-1 text-[12px] font-medium leading-4 text-text-secondary", children: "COMMAND" }),
|
|
3985
|
+
/* @__PURE__ */ jsxs32("div", { children: [
|
|
3986
|
+
/* @__PURE__ */ jsx50("span", { className: "text-primary-button-bg", children: "$" }),
|
|
3922
3987
|
" ",
|
|
3923
3988
|
command
|
|
3924
3989
|
] })
|
|
3925
3990
|
] }),
|
|
3926
|
-
resultText ? /* @__PURE__ */
|
|
3927
|
-
/* @__PURE__ */
|
|
3928
|
-
/* @__PURE__ */
|
|
3929
|
-
/* @__PURE__ */
|
|
3930
|
-
/* @__PURE__ */
|
|
3991
|
+
resultText ? /* @__PURE__ */ jsxs32(Fragment9, { children: [
|
|
3992
|
+
/* @__PURE__ */ jsx50("div", { className: "mx-3 my-1 border-t border-border" }),
|
|
3993
|
+
/* @__PURE__ */ jsxs32("div", { className: "my-1 break-all border-l-4 border-primary-button-bg/60 px-3", children: [
|
|
3994
|
+
/* @__PURE__ */ jsx50("div", { className: "mb-1 text-[12px] font-medium leading-4 text-text-secondary", children: "OUTPUT" }),
|
|
3995
|
+
/* @__PURE__ */ jsx50("div", { children: resultText })
|
|
3931
3996
|
] })
|
|
3932
|
-
] }) : resultJson && /* @__PURE__ */
|
|
3933
|
-
/* @__PURE__ */
|
|
3934
|
-
/* @__PURE__ */
|
|
3935
|
-
/* @__PURE__ */
|
|
3936
|
-
/* @__PURE__ */
|
|
3997
|
+
] }) : resultJson && /* @__PURE__ */ jsxs32(Fragment9, { children: [
|
|
3998
|
+
/* @__PURE__ */ jsx50("div", { className: "mx-3 my-1 border-t border-border" }),
|
|
3999
|
+
/* @__PURE__ */ jsxs32("div", { className: "my-1 border-l-4 border-primary-button-bg/60 px-3", children: [
|
|
4000
|
+
/* @__PURE__ */ jsx50("div", { className: "mb-1 text-[12px] font-medium leading-4 text-text-secondary", children: "OUTPUT" }),
|
|
4001
|
+
/* @__PURE__ */ jsx50(JsonPane, { value: resultJson, className: "pl-2" })
|
|
3937
4002
|
] })
|
|
3938
4003
|
] })
|
|
3939
4004
|
] }) }) })
|
|
@@ -3961,7 +4026,7 @@ function SandboxToolCallCard({
|
|
|
3961
4026
|
}) {
|
|
3962
4027
|
const ToolCallCard2 = useSlot("ToolCallCard");
|
|
3963
4028
|
const awaiting = status === "running";
|
|
3964
|
-
return /* @__PURE__ */
|
|
4029
|
+
return /* @__PURE__ */ jsx50(
|
|
3965
4030
|
ToolCallCard2,
|
|
3966
4031
|
{
|
|
3967
4032
|
toolName: intent || name,
|
|
@@ -3975,7 +4040,7 @@ function SandboxToolCallCard({
|
|
|
3975
4040
|
status: awaiting ? void 0 : status,
|
|
3976
4041
|
exitCode,
|
|
3977
4042
|
dataTestPrefix,
|
|
3978
|
-
requestSlot: /* @__PURE__ */
|
|
4043
|
+
requestSlot: /* @__PURE__ */ jsx50(
|
|
3979
4044
|
SandboxBody,
|
|
3980
4045
|
{
|
|
3981
4046
|
command,
|
|
@@ -4001,7 +4066,7 @@ import {
|
|
|
4001
4066
|
useTrueFoundryFlushAgentSpec
|
|
4002
4067
|
} from "@truefoundry/assistant-ui-runtime";
|
|
4003
4068
|
import { useEffect as useEffect13, useId as useId6, useMemo as useMemo6, useRef as useRef11, useState as useState19 } from "react";
|
|
4004
|
-
import { Fragment as Fragment10, jsx as
|
|
4069
|
+
import { Fragment as Fragment10, jsx as jsx51, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
4005
4070
|
function editableMountsFromSpec(value) {
|
|
4006
4071
|
if (!Array.isArray(value)) return [];
|
|
4007
4072
|
const mounts = [];
|
|
@@ -4020,10 +4085,10 @@ function ConfigSection({
|
|
|
4020
4085
|
disabled,
|
|
4021
4086
|
children
|
|
4022
4087
|
}) {
|
|
4023
|
-
return /* @__PURE__ */
|
|
4024
|
-
/* @__PURE__ */
|
|
4025
|
-
/* @__PURE__ */
|
|
4026
|
-
/* @__PURE__ */
|
|
4088
|
+
return /* @__PURE__ */ jsxs33("div", { className: "mb-3", children: [
|
|
4089
|
+
/* @__PURE__ */ jsxs33("div", { className: "mb-1.5 flex items-center justify-between", children: [
|
|
4090
|
+
/* @__PURE__ */ jsx51("span", { className: "text-text-secondary text-xs font-semibold tracking-wide uppercase", children: label }),
|
|
4091
|
+
/* @__PURE__ */ jsx51(
|
|
4027
4092
|
"button",
|
|
4028
4093
|
{
|
|
4029
4094
|
type: "button",
|
|
@@ -4031,7 +4096,7 @@ function ConfigSection({
|
|
|
4031
4096
|
disabled,
|
|
4032
4097
|
className: auiButtonClass({ variant: "ghost", size: "icon", className: "size-7" }),
|
|
4033
4098
|
onClick: onEdit,
|
|
4034
|
-
children: /* @__PURE__ */
|
|
4099
|
+
children: /* @__PURE__ */ jsx51(Icon, { name: "pencil", className: "size-3.5" })
|
|
4035
4100
|
}
|
|
4036
4101
|
)
|
|
4037
4102
|
] }),
|
|
@@ -4046,15 +4111,15 @@ var PRELOAD_TOOLS_COPY = {
|
|
|
4046
4111
|
function PreloadToggle({ on, disabled, onToggle }) {
|
|
4047
4112
|
const label = `${PRELOAD_TOOLS_COPY.header} \xB7 ${on ? "ON" : "OFF"}`;
|
|
4048
4113
|
const body = on ? PRELOAD_TOOLS_COPY.on : PRELOAD_TOOLS_COPY.off;
|
|
4049
|
-
return /* @__PURE__ */
|
|
4114
|
+
return /* @__PURE__ */ jsx51(
|
|
4050
4115
|
Tooltip,
|
|
4051
4116
|
{
|
|
4052
4117
|
className: "max-w-[17rem] whitespace-normal",
|
|
4053
|
-
content: /* @__PURE__ */
|
|
4054
|
-
/* @__PURE__ */
|
|
4055
|
-
/* @__PURE__ */
|
|
4118
|
+
content: /* @__PURE__ */ jsxs33("div", { className: "text-left", children: [
|
|
4119
|
+
/* @__PURE__ */ jsx51("p", { className: "mb-1 text-[11px] font-semibold tracking-wide uppercase", children: label }),
|
|
4120
|
+
/* @__PURE__ */ jsx51("p", { className: "text-xs leading-snug", children: body })
|
|
4056
4121
|
] }),
|
|
4057
|
-
children: /* @__PURE__ */
|
|
4122
|
+
children: /* @__PURE__ */ jsx51(
|
|
4058
4123
|
"button",
|
|
4059
4124
|
{
|
|
4060
4125
|
type: "button",
|
|
@@ -4069,7 +4134,7 @@ function PreloadToggle({ on, disabled, onToggle }) {
|
|
|
4069
4134
|
"disabled:cursor-not-allowed disabled:opacity-50 disabled:active:scale-100",
|
|
4070
4135
|
on ? "border-primary-button-bg/40 bg-primary-button-bg/10 text-primary-button-bg hover:border-primary-button-bg/70 hover:bg-primary-button-bg/20" : "border-border text-text-secondary hover:border-text-secondary/50 hover:bg-text-secondary/10 hover:text-text-primary"
|
|
4071
4136
|
),
|
|
4072
|
-
children: /* @__PURE__ */
|
|
4137
|
+
children: /* @__PURE__ */ jsx51(Icon, { name: "book-open", className: "size-3.5" })
|
|
4073
4138
|
}
|
|
4074
4139
|
)
|
|
4075
4140
|
}
|
|
@@ -4082,11 +4147,11 @@ function MountChips({
|
|
|
4082
4147
|
onTogglePreload
|
|
4083
4148
|
}) {
|
|
4084
4149
|
if (mounts.length === 0) {
|
|
4085
|
-
return /* @__PURE__ */
|
|
4150
|
+
return /* @__PURE__ */ jsx51("p", { className: "text-text-secondary text-xs", children: emptyLabel });
|
|
4086
4151
|
}
|
|
4087
|
-
return /* @__PURE__ */
|
|
4152
|
+
return /* @__PURE__ */ jsx51("div", { className: "flex flex-wrap gap-2", children: mounts.map((mount) => {
|
|
4088
4153
|
const on = Boolean(mount.value.preload);
|
|
4089
|
-
return /* @__PURE__ */
|
|
4154
|
+
return /* @__PURE__ */ jsxs33(
|
|
4090
4155
|
"span",
|
|
4091
4156
|
{
|
|
4092
4157
|
className: cn(
|
|
@@ -4094,8 +4159,8 @@ function MountChips({
|
|
|
4094
4159
|
onTogglePreload ? "pl-1.5" : "pl-2.5"
|
|
4095
4160
|
),
|
|
4096
4161
|
children: [
|
|
4097
|
-
onTogglePreload ? /* @__PURE__ */
|
|
4098
|
-
/* @__PURE__ */
|
|
4162
|
+
onTogglePreload ? /* @__PURE__ */ jsx51(PreloadToggle, { on, disabled, onToggle: () => onTogglePreload(mount.id) }) : null,
|
|
4163
|
+
/* @__PURE__ */ jsx51("span", { className: "text-text-primary text-sm", children: mount.name })
|
|
4099
4164
|
]
|
|
4100
4165
|
},
|
|
4101
4166
|
mount.id
|
|
@@ -4103,7 +4168,7 @@ function MountChips({
|
|
|
4103
4168
|
}) });
|
|
4104
4169
|
}
|
|
4105
4170
|
function SaveAgentButton({ disabled = false, className, children = "Save Agent" }) {
|
|
4106
|
-
return /* @__PURE__ */
|
|
4171
|
+
return /* @__PURE__ */ jsx51(DraftCatalogProvider, { children: /* @__PURE__ */ jsx51(SaveAgentButtonContent, { disabled, className, children }) });
|
|
4107
4172
|
}
|
|
4108
4173
|
function SaveAgentButtonContent({
|
|
4109
4174
|
disabled,
|
|
@@ -4217,8 +4282,8 @@ function SaveAgentButtonContent({
|
|
|
4217
4282
|
const isUpdateMode = shell?.mode.status === "active" && shell.mode.isMutable && (shell.mode.agentName !== void 0 || shell.mode.agentId !== void 0);
|
|
4218
4283
|
const triggerLabel = isUpdateMode && children === "Save Agent" ? "Update Agent" : children;
|
|
4219
4284
|
if (!visible) return null;
|
|
4220
|
-
return /* @__PURE__ */
|
|
4221
|
-
/* @__PURE__ */
|
|
4285
|
+
return /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
4286
|
+
/* @__PURE__ */ jsxs33(
|
|
4222
4287
|
"button",
|
|
4223
4288
|
{
|
|
4224
4289
|
type: "button",
|
|
@@ -4226,12 +4291,12 @@ function SaveAgentButtonContent({
|
|
|
4226
4291
|
className: auiButtonClass({ variant: "outline", size: "sm", className }),
|
|
4227
4292
|
onClick: () => void show(),
|
|
4228
4293
|
children: [
|
|
4229
|
-
/* @__PURE__ */
|
|
4294
|
+
/* @__PURE__ */ jsx51(Icon, { name: "save", className: "size-3.5" }),
|
|
4230
4295
|
triggerLabel
|
|
4231
4296
|
]
|
|
4232
4297
|
}
|
|
4233
4298
|
),
|
|
4234
|
-
/* @__PURE__ */
|
|
4299
|
+
/* @__PURE__ */ jsx51(
|
|
4235
4300
|
CenteredModal,
|
|
4236
4301
|
{
|
|
4237
4302
|
open,
|
|
@@ -4239,11 +4304,11 @@ function SaveAgentButtonContent({
|
|
|
4239
4304
|
title: intent === "create" ? "Save agent" : "Update agent",
|
|
4240
4305
|
className: "md:h-auto md:max-h-[85dvh] md:max-w-2xl",
|
|
4241
4306
|
"aria-label": intent === "create" ? "Save agent" : "Update agent",
|
|
4242
|
-
children: draftSpec ? /* @__PURE__ */
|
|
4243
|
-
/* @__PURE__ */
|
|
4244
|
-
/* @__PURE__ */
|
|
4245
|
-
/* @__PURE__ */
|
|
4246
|
-
/* @__PURE__ */
|
|
4307
|
+
children: draftSpec ? /* @__PURE__ */ jsxs33("div", { className: "flex min-h-0 w-full flex-1 flex-col", children: [
|
|
4308
|
+
/* @__PURE__ */ jsxs33("div", { className: "min-h-0 flex-1 overflow-y-auto px-5 py-3", children: [
|
|
4309
|
+
/* @__PURE__ */ jsxs33("label", { className: "mb-3 block", children: [
|
|
4310
|
+
/* @__PURE__ */ jsx51("span", { className: "mb-1.5 block text-sm font-medium", children: "Agent name" }),
|
|
4311
|
+
/* @__PURE__ */ jsx51(
|
|
4247
4312
|
"input",
|
|
4248
4313
|
{
|
|
4249
4314
|
value: name,
|
|
@@ -4254,9 +4319,9 @@ function SaveAgentButtonContent({
|
|
|
4254
4319
|
}
|
|
4255
4320
|
)
|
|
4256
4321
|
] }),
|
|
4257
|
-
/* @__PURE__ */
|
|
4258
|
-
/* @__PURE__ */
|
|
4259
|
-
/* @__PURE__ */
|
|
4322
|
+
/* @__PURE__ */ jsxs33("label", { className: "mb-3 block", children: [
|
|
4323
|
+
/* @__PURE__ */ jsx51("span", { className: "mb-1.5 block text-sm font-medium", children: "Instructions" }),
|
|
4324
|
+
/* @__PURE__ */ jsx51(
|
|
4260
4325
|
"textarea",
|
|
4261
4326
|
{
|
|
4262
4327
|
value: draftSpec.instructions ?? "",
|
|
@@ -4268,8 +4333,8 @@ function SaveAgentButtonContent({
|
|
|
4268
4333
|
}
|
|
4269
4334
|
)
|
|
4270
4335
|
] }),
|
|
4271
|
-
/* @__PURE__ */
|
|
4272
|
-
/* @__PURE__ */
|
|
4336
|
+
/* @__PURE__ */ jsx51(ConfigSection, { label: "Model", onEdit: () => setEditor("model"), disabled: saving, children: draftSpec.model.name ? /* @__PURE__ */ jsxs33("span", { className: "border-border inline-flex items-center gap-2 rounded-lg border py-1 pr-2.5 pl-2", children: [
|
|
4337
|
+
/* @__PURE__ */ jsx51(
|
|
4273
4338
|
ProviderMark,
|
|
4274
4339
|
{
|
|
4275
4340
|
logo: modelEntry?.provider.logo,
|
|
@@ -4277,9 +4342,9 @@ function SaveAgentButtonContent({
|
|
|
4277
4342
|
className: "size-5 text-[10px]"
|
|
4278
4343
|
}
|
|
4279
4344
|
),
|
|
4280
|
-
/* @__PURE__ */
|
|
4281
|
-
] }) : /* @__PURE__ */
|
|
4282
|
-
/* @__PURE__ */
|
|
4345
|
+
/* @__PURE__ */ jsx51("span", { className: "text-text-primary text-sm", children: displayModelLabel2(draftSpec.model.name) })
|
|
4346
|
+
] }) : /* @__PURE__ */ jsx51("p", { className: "text-text-secondary text-xs", children: "No model selected." }) }),
|
|
4347
|
+
/* @__PURE__ */ jsx51(ConfigSection, { label: "Connectors", onEdit: () => setEditor("mcp"), disabled: saving, children: /* @__PURE__ */ jsx51(
|
|
4283
4348
|
MountChips,
|
|
4284
4349
|
{
|
|
4285
4350
|
mounts: mcpMounts,
|
|
@@ -4288,10 +4353,10 @@ function SaveAgentButtonContent({
|
|
|
4288
4353
|
onTogglePreload: toggleMcpPreload
|
|
4289
4354
|
}
|
|
4290
4355
|
) }),
|
|
4291
|
-
/* @__PURE__ */
|
|
4292
|
-
/* @__PURE__ */
|
|
4293
|
-
/* @__PURE__ */
|
|
4294
|
-
/* @__PURE__ */
|
|
4356
|
+
/* @__PURE__ */ jsx51(ConfigSection, { label: "Skills", onEdit: () => setEditor("skills"), disabled: saving, children: /* @__PURE__ */ jsx51(MountChips, { mounts: skillMounts, disabled: saving, emptyLabel: "No skills added." }) }),
|
|
4357
|
+
/* @__PURE__ */ jsxs33("div", { children: [
|
|
4358
|
+
/* @__PURE__ */ jsx51("p", { className: "text-text-secondary mb-1.5 text-xs font-semibold tracking-wide uppercase", children: "Capabilities" }),
|
|
4359
|
+
/* @__PURE__ */ jsx51(
|
|
4295
4360
|
DraftCapabilitiesPanel,
|
|
4296
4361
|
{
|
|
4297
4362
|
layout: "cards",
|
|
@@ -4304,7 +4369,7 @@ function SaveAgentButtonContent({
|
|
|
4304
4369
|
}
|
|
4305
4370
|
)
|
|
4306
4371
|
] }),
|
|
4307
|
-
error ? /* @__PURE__ */
|
|
4372
|
+
error ? /* @__PURE__ */ jsx51(
|
|
4308
4373
|
"p",
|
|
4309
4374
|
{
|
|
4310
4375
|
ref: errorRef,
|
|
@@ -4314,8 +4379,8 @@ function SaveAgentButtonContent({
|
|
|
4314
4379
|
}
|
|
4315
4380
|
) : null
|
|
4316
4381
|
] }),
|
|
4317
|
-
/* @__PURE__ */
|
|
4318
|
-
/* @__PURE__ */
|
|
4382
|
+
/* @__PURE__ */ jsxs33("div", { className: "bg-card-bg sticky bottom-0 z-10 flex shrink-0 justify-end gap-2 border-t border-border px-5 py-4", children: [
|
|
4383
|
+
/* @__PURE__ */ jsx51(
|
|
4319
4384
|
"button",
|
|
4320
4385
|
{
|
|
4321
4386
|
type: "button",
|
|
@@ -4325,7 +4390,7 @@ function SaveAgentButtonContent({
|
|
|
4325
4390
|
children: "Cancel"
|
|
4326
4391
|
}
|
|
4327
4392
|
),
|
|
4328
|
-
/* @__PURE__ */
|
|
4393
|
+
/* @__PURE__ */ jsx51(
|
|
4329
4394
|
"button",
|
|
4330
4395
|
{
|
|
4331
4396
|
type: "button",
|
|
@@ -4339,7 +4404,7 @@ function SaveAgentButtonContent({
|
|
|
4339
4404
|
] }) : null
|
|
4340
4405
|
}
|
|
4341
4406
|
),
|
|
4342
|
-
/* @__PURE__ */
|
|
4407
|
+
/* @__PURE__ */ jsx51(
|
|
4343
4408
|
CenteredModal,
|
|
4344
4409
|
{
|
|
4345
4410
|
open: editor !== null,
|
|
@@ -4354,10 +4419,10 @@ function SaveAgentButtonContent({
|
|
|
4354
4419
|
className: "md:max-w-md",
|
|
4355
4420
|
contentSized: true,
|
|
4356
4421
|
"aria-label": editor === "model" ? "Edit model" : editor === "mcp" ? "Edit Connectors" : "Edit skills",
|
|
4357
|
-
children: draftSpec && editor ? /* @__PURE__ */
|
|
4358
|
-
editor === "model" ? /* @__PURE__ */
|
|
4359
|
-
catalog.error ? /* @__PURE__ */
|
|
4360
|
-
/* @__PURE__ */
|
|
4422
|
+
children: draftSpec && editor ? /* @__PURE__ */ jsxs33("div", { className: "flex h-[min(28rem,calc(100dvh-10rem))] w-[min(28rem,calc(100vw-2rem))] flex-col", children: [
|
|
4423
|
+
editor === "model" ? /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
4424
|
+
catalog.error ? /* @__PURE__ */ jsx51("p", { role: "alert", className: "text-failure-bg px-3 pt-3 text-sm", children: catalog.error }) : null,
|
|
4425
|
+
/* @__PURE__ */ jsx51(
|
|
4361
4426
|
DraftModelCatalogPanel,
|
|
4362
4427
|
{
|
|
4363
4428
|
models: catalog.models,
|
|
@@ -4379,17 +4444,17 @@ function SaveAgentButtonContent({
|
|
|
4379
4444
|
}
|
|
4380
4445
|
}
|
|
4381
4446
|
)
|
|
4382
|
-
] }) : /* @__PURE__ */
|
|
4383
|
-
catalog.error ? /* @__PURE__ */
|
|
4384
|
-
/* @__PURE__ */
|
|
4385
|
-
/* @__PURE__ */
|
|
4447
|
+
] }) : /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
4448
|
+
catalog.error ? /* @__PURE__ */ jsx51("p", { role: "alert", className: "text-failure-bg px-3 pt-3 text-sm", children: catalog.error }) : null,
|
|
4449
|
+
/* @__PURE__ */ jsx51("div", { className: "border-b border-border p-3", children: /* @__PURE__ */ jsxs33("label", { className: "relative block", children: [
|
|
4450
|
+
/* @__PURE__ */ jsx51(
|
|
4386
4451
|
Icon,
|
|
4387
4452
|
{
|
|
4388
4453
|
name: "search",
|
|
4389
4454
|
className: "text-text-secondary pointer-events-none absolute top-1/2 left-2 size-3.5 -translate-y-1/2"
|
|
4390
4455
|
}
|
|
4391
4456
|
),
|
|
4392
|
-
/* @__PURE__ */
|
|
4457
|
+
/* @__PURE__ */ jsx51(
|
|
4393
4458
|
"input",
|
|
4394
4459
|
{
|
|
4395
4460
|
value: search,
|
|
@@ -4400,17 +4465,17 @@ function SaveAgentButtonContent({
|
|
|
4400
4465
|
}
|
|
4401
4466
|
)
|
|
4402
4467
|
] }) }),
|
|
4403
|
-
/* @__PURE__ */
|
|
4468
|
+
/* @__PURE__ */ jsx51("div", { className: "min-h-0 flex-1 overflow-y-auto p-2", children: editor === "mcp" ? filteredConnectors.map((connector) => {
|
|
4404
4469
|
const checked = mcpMounts.some((item) => item.id === connector.id);
|
|
4405
4470
|
const needsConnect = isUnauthenticatedDcrConnector(connector);
|
|
4406
|
-
return /* @__PURE__ */
|
|
4471
|
+
return /* @__PURE__ */ jsx51(
|
|
4407
4472
|
CatalogRow,
|
|
4408
4473
|
{
|
|
4409
4474
|
title: connector.name,
|
|
4410
4475
|
description: connector.description,
|
|
4411
4476
|
checked,
|
|
4412
4477
|
disabled: !connector.authenticated && !checked,
|
|
4413
|
-
action: needsConnect ? /* @__PURE__ */
|
|
4478
|
+
action: needsConnect ? /* @__PURE__ */ jsx51(ConnectorConnectButton, { connector, onConnected: catalog.refreshConnectors }) : void 0,
|
|
4414
4479
|
onToggle: () => {
|
|
4415
4480
|
if (!connector.authenticated && !checked) return;
|
|
4416
4481
|
const next = checked ? mcpMounts.filter((item) => item.id !== connector.id) : [
|
|
@@ -4432,7 +4497,7 @@ function SaveAgentButtonContent({
|
|
|
4432
4497
|
}) : filteredSkills.map((skill) => {
|
|
4433
4498
|
const checked = skillMounts.some((item) => item.id === skill.id);
|
|
4434
4499
|
const disabledSkill = serverCapabilities?.skill.enabled !== true;
|
|
4435
|
-
return /* @__PURE__ */
|
|
4500
|
+
return /* @__PURE__ */ jsx51(
|
|
4436
4501
|
CatalogRow,
|
|
4437
4502
|
{
|
|
4438
4503
|
title: skill.name,
|
|
@@ -4459,7 +4524,7 @@ function SaveAgentButtonContent({
|
|
|
4459
4524
|
);
|
|
4460
4525
|
}) })
|
|
4461
4526
|
] }),
|
|
4462
|
-
/* @__PURE__ */
|
|
4527
|
+
/* @__PURE__ */ jsx51("div", { className: "bg-card-bg sticky bottom-0 z-10 flex shrink-0 justify-end border-t border-border px-5 py-4", children: /* @__PURE__ */ jsx51(
|
|
4463
4528
|
"button",
|
|
4464
4529
|
{
|
|
4465
4530
|
type: "button",
|
|
@@ -4480,11 +4545,11 @@ function SaveAgentButtonContent({
|
|
|
4480
4545
|
|
|
4481
4546
|
// src/atoms/ScrollToBottomButton.tsx
|
|
4482
4547
|
import { forwardRef as forwardRef2 } from "react";
|
|
4483
|
-
import { jsx as
|
|
4548
|
+
import { jsx as jsx52 } from "react/jsx-runtime";
|
|
4484
4549
|
var ScrollToBottomButton = forwardRef2(
|
|
4485
4550
|
({ className, disabled, ...rest }, ref) => {
|
|
4486
4551
|
if (disabled) return null;
|
|
4487
|
-
return /* @__PURE__ */
|
|
4552
|
+
return /* @__PURE__ */ jsx52("span", { ref, className: cn("absolute -top-14 z-10 inline-flex self-center"), children: /* @__PURE__ */ jsx52(
|
|
4488
4553
|
"button",
|
|
4489
4554
|
{
|
|
4490
4555
|
type: "button",
|
|
@@ -4500,7 +4565,7 @@ var ScrollToBottomButton = forwardRef2(
|
|
|
4500
4565
|
)
|
|
4501
4566
|
}),
|
|
4502
4567
|
...rest,
|
|
4503
|
-
children: /* @__PURE__ */
|
|
4568
|
+
children: /* @__PURE__ */ jsx52(Icon, { name: "arrow-down" })
|
|
4504
4569
|
}
|
|
4505
4570
|
) });
|
|
4506
4571
|
}
|
|
@@ -4508,19 +4573,19 @@ var ScrollToBottomButton = forwardRef2(
|
|
|
4508
4573
|
ScrollToBottomButton.displayName = "ScrollToBottomButton";
|
|
4509
4574
|
|
|
4510
4575
|
// src/atoms/SelectAgentEmptyState.tsx
|
|
4511
|
-
import { jsx as
|
|
4576
|
+
import { jsx as jsx53, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
4512
4577
|
function SelectAgentEmptyState() {
|
|
4513
4578
|
const shell = useOptionalShellMode();
|
|
4514
4579
|
const AgentsLibraryButton2 = useSlot("AgentsLibraryButton");
|
|
4515
4580
|
if (shell?.mode.status !== "idle") return null;
|
|
4516
|
-
return /* @__PURE__ */
|
|
4581
|
+
return /* @__PURE__ */ jsxs34(
|
|
4517
4582
|
"div",
|
|
4518
4583
|
{
|
|
4519
4584
|
className: "flex h-full min-h-0 w-full flex-col items-center justify-center gap-4 px-6",
|
|
4520
4585
|
"data-slot": "aui_select-agent-empty",
|
|
4521
4586
|
children: [
|
|
4522
|
-
/* @__PURE__ */
|
|
4523
|
-
/* @__PURE__ */
|
|
4587
|
+
/* @__PURE__ */ jsx53("p", { className: "text-text-secondary max-w-sm text-center text-sm", children: "Select an agent to start chatting" }),
|
|
4588
|
+
/* @__PURE__ */ jsx53(AgentsLibraryButton2, { className: "w-56 max-w-full" })
|
|
4524
4589
|
]
|
|
4525
4590
|
}
|
|
4526
4591
|
);
|
|
@@ -4532,9 +4597,9 @@ function ShellActionsActionSlot() {
|
|
|
4532
4597
|
}
|
|
4533
4598
|
|
|
4534
4599
|
// src/atoms/Skeletons.tsx
|
|
4535
|
-
import { jsx as
|
|
4600
|
+
import { jsx as jsx54, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
4536
4601
|
function MessageListSkeleton({ className }) {
|
|
4537
|
-
return /* @__PURE__ */
|
|
4602
|
+
return /* @__PURE__ */ jsxs35(
|
|
4538
4603
|
"div",
|
|
4539
4604
|
{
|
|
4540
4605
|
role: "status",
|
|
@@ -4542,11 +4607,11 @@ function MessageListSkeleton({ className }) {
|
|
|
4542
4607
|
"data-slot": "aui_thread-history-skeleton",
|
|
4543
4608
|
className: cn("mb-14 flex flex-col gap-y-6", className),
|
|
4544
4609
|
children: [
|
|
4545
|
-
/* @__PURE__ */
|
|
4546
|
-
/* @__PURE__ */
|
|
4547
|
-
/* @__PURE__ */
|
|
4548
|
-
/* @__PURE__ */
|
|
4549
|
-
/* @__PURE__ */
|
|
4610
|
+
/* @__PURE__ */ jsx54("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx54(Skeleton, { className: "h-10 w-[min(85%,20rem)] rounded-xl" }) }),
|
|
4611
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex flex-col gap-2 px-2", children: [
|
|
4612
|
+
/* @__PURE__ */ jsx54(Skeleton, { className: "h-4 w-full max-w-md" }),
|
|
4613
|
+
/* @__PURE__ */ jsx54(Skeleton, { className: "h-4 w-full max-w-sm" }),
|
|
4614
|
+
/* @__PURE__ */ jsx54(Skeleton, { className: "h-4 w-2/3 max-w-xs" })
|
|
4550
4615
|
] })
|
|
4551
4616
|
]
|
|
4552
4617
|
}
|
|
@@ -4554,7 +4619,7 @@ function MessageListSkeleton({ className }) {
|
|
|
4554
4619
|
}
|
|
4555
4620
|
|
|
4556
4621
|
// src/atoms/SubAgentCard.tsx
|
|
4557
|
-
import { jsx as
|
|
4622
|
+
import { jsx as jsx55, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
4558
4623
|
function SubAgentCard({
|
|
4559
4624
|
agentName,
|
|
4560
4625
|
instruction,
|
|
@@ -4570,13 +4635,13 @@ function SubAgentCard({
|
|
|
4570
4635
|
}) {
|
|
4571
4636
|
const Markdown2 = useSlot("Markdown");
|
|
4572
4637
|
const agentStatus = status === "running" ? "running" : status === "success" ? "success" : "error";
|
|
4573
|
-
const instructionContent = instruction.trim().length > 0 ? renderInstruction ? renderInstruction(instruction) : /* @__PURE__ */
|
|
4574
|
-
return /* @__PURE__ */
|
|
4638
|
+
const instructionContent = instruction.trim().length > 0 ? renderInstruction ? renderInstruction(instruction) : /* @__PURE__ */ jsx55(Markdown2, { content: instruction, className: "flex flex-col font-sans text-sm text-text-secondary" }) : null;
|
|
4639
|
+
return /* @__PURE__ */ jsx55(
|
|
4575
4640
|
"div",
|
|
4576
4641
|
{
|
|
4577
4642
|
className: cn("aui-sub-agent-card min-w-0", className),
|
|
4578
4643
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-sub-agent-card` : void 0,
|
|
4579
|
-
children: /* @__PURE__ */
|
|
4644
|
+
children: /* @__PURE__ */ jsxs36(
|
|
4580
4645
|
AgentStepRow,
|
|
4581
4646
|
{
|
|
4582
4647
|
icon: "agent-2",
|
|
@@ -4589,9 +4654,9 @@ function SubAgentCard({
|
|
|
4589
4654
|
statusText: durationText,
|
|
4590
4655
|
dataTestPrefix,
|
|
4591
4656
|
children: [
|
|
4592
|
-
instructionContent != null && /* @__PURE__ */
|
|
4593
|
-
/* @__PURE__ */
|
|
4594
|
-
/* @__PURE__ */
|
|
4657
|
+
instructionContent != null && /* @__PURE__ */ jsxs36("div", { className: "mb-3 flex flex-col gap-2 rounded-md border border-border p-2", children: [
|
|
4658
|
+
/* @__PURE__ */ jsx55("h4", { className: "text-sm font-semibold text-text-primary", children: "Instructions" }),
|
|
4659
|
+
/* @__PURE__ */ jsx55(
|
|
4595
4660
|
"div",
|
|
4596
4661
|
{
|
|
4597
4662
|
className: "text-sm text-text-secondary",
|
|
@@ -4600,7 +4665,7 @@ function SubAgentCard({
|
|
|
4600
4665
|
}
|
|
4601
4666
|
)
|
|
4602
4667
|
] }),
|
|
4603
|
-
children != null && /* @__PURE__ */
|
|
4668
|
+
children != null && /* @__PURE__ */ jsx55(
|
|
4604
4669
|
"div",
|
|
4605
4670
|
{
|
|
4606
4671
|
className: "flex min-w-0 flex-col gap-3",
|
|
@@ -5621,7 +5686,7 @@ var one_light_default = {
|
|
|
5621
5686
|
};
|
|
5622
5687
|
|
|
5623
5688
|
// src/atoms/SyntaxHighlighter.tsx
|
|
5624
|
-
import { jsx as
|
|
5689
|
+
import { jsx as jsx56, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
5625
5690
|
function applyLineNumberClassName(children, className) {
|
|
5626
5691
|
if (!className) return children;
|
|
5627
5692
|
return Children.map(children, (child) => {
|
|
@@ -5641,7 +5706,7 @@ function SyntaxHighlighterImpl({ code, language, darkTheme, className, showLineN
|
|
|
5641
5706
|
setTimeout(() => setCopied(false), 2e3);
|
|
5642
5707
|
});
|
|
5643
5708
|
}, [code]);
|
|
5644
|
-
return /* @__PURE__ */
|
|
5709
|
+
return /* @__PURE__ */ jsxs37(
|
|
5645
5710
|
"div",
|
|
5646
5711
|
{
|
|
5647
5712
|
className: cn(
|
|
@@ -5650,7 +5715,7 @@ function SyntaxHighlighterImpl({ code, language, darkTheme, className, showLineN
|
|
|
5650
5715
|
className
|
|
5651
5716
|
),
|
|
5652
5717
|
children: [
|
|
5653
|
-
/* @__PURE__ */
|
|
5718
|
+
/* @__PURE__ */ jsx56(
|
|
5654
5719
|
"button",
|
|
5655
5720
|
{
|
|
5656
5721
|
type: "button",
|
|
@@ -5661,10 +5726,10 @@ function SyntaxHighlighterImpl({ code, language, darkTheme, className, showLineN
|
|
|
5661
5726
|
"absolute top-2 right-2 z-10 flex cursor-pointer items-center justify-center rounded p-1.5 text-xs transition-colors",
|
|
5662
5727
|
"bg-primary-bg/80 text-text-secondary hover:bg-ghost-button-hover hover:text-text-primary"
|
|
5663
5728
|
),
|
|
5664
|
-
children: /* @__PURE__ */
|
|
5729
|
+
children: /* @__PURE__ */ jsx56(Icon, { name: copied ? "check" : "copy", size: "0.875em" })
|
|
5665
5730
|
}
|
|
5666
5731
|
),
|
|
5667
|
-
/* @__PURE__ */
|
|
5732
|
+
/* @__PURE__ */ jsx56(
|
|
5668
5733
|
PrismHighlighter,
|
|
5669
5734
|
{
|
|
5670
5735
|
language,
|
|
@@ -5672,7 +5737,7 @@ function SyntaxHighlighterImpl({ code, language, darkTheme, className, showLineN
|
|
|
5672
5737
|
customStyle: { margin: 0, maxWidth: "100%", whiteSpace: "pre-wrap", wordBreak: "break-word" },
|
|
5673
5738
|
wrapLongLines: true,
|
|
5674
5739
|
showLineNumbers,
|
|
5675
|
-
PreTag: ({ children, className: preClass, ...rest }) => /* @__PURE__ */
|
|
5740
|
+
PreTag: ({ children, className: preClass, ...rest }) => /* @__PURE__ */ jsx56(
|
|
5676
5741
|
"pre",
|
|
5677
5742
|
{
|
|
5678
5743
|
...rest,
|
|
@@ -5684,7 +5749,7 @@ function SyntaxHighlighterImpl({ code, language, darkTheme, className, showLineN
|
|
|
5684
5749
|
children
|
|
5685
5750
|
}
|
|
5686
5751
|
),
|
|
5687
|
-
CodeTag: ({ children, className: codeClass, ...rest }) => /* @__PURE__ */
|
|
5752
|
+
CodeTag: ({ children, className: codeClass, ...rest }) => /* @__PURE__ */ jsx56(
|
|
5688
5753
|
"code",
|
|
5689
5754
|
{
|
|
5690
5755
|
...rest,
|
|
@@ -5702,9 +5767,9 @@ function SyntaxHighlighterImpl({ code, language, darkTheme, className, showLineN
|
|
|
5702
5767
|
var SyntaxHighlighter = memo(SyntaxHighlighterImpl);
|
|
5703
5768
|
|
|
5704
5769
|
// src/atoms/ThreadListMisc.tsx
|
|
5705
|
-
import { Fragment as Fragment11, jsx as
|
|
5770
|
+
import { Fragment as Fragment11, jsx as jsx57, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
5706
5771
|
function ThreadListNewButton({ className, children, style, ...rest }) {
|
|
5707
|
-
return /* @__PURE__ */
|
|
5772
|
+
return /* @__PURE__ */ jsx57(
|
|
5708
5773
|
"button",
|
|
5709
5774
|
{
|
|
5710
5775
|
type: "button",
|
|
@@ -5718,18 +5783,18 @@ function ThreadListNewButton({ className, children, style, ...rest }) {
|
|
|
5718
5783
|
)
|
|
5719
5784
|
}),
|
|
5720
5785
|
...rest,
|
|
5721
|
-
children: children ?? /* @__PURE__ */
|
|
5722
|
-
/* @__PURE__ */
|
|
5786
|
+
children: children ?? /* @__PURE__ */ jsxs38(Fragment11, { children: [
|
|
5787
|
+
/* @__PURE__ */ jsx57(Icon, { name: "square-pen" }),
|
|
5723
5788
|
"New Chat"
|
|
5724
5789
|
] })
|
|
5725
5790
|
}
|
|
5726
5791
|
);
|
|
5727
5792
|
}
|
|
5728
5793
|
function ThreadListRowSkeleton({ count = 5, className }) {
|
|
5729
|
-
return /* @__PURE__ */
|
|
5794
|
+
return /* @__PURE__ */ jsx57("div", { className: cn("flex flex-col gap-1", className), role: "status", "aria-label": "Loading threads", children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ jsx57("div", { className: "flex h-8 items-center px-2.5", children: /* @__PURE__ */ jsx57(Skeleton, { className: "h-3.5 w-full" }) }, i)) });
|
|
5730
5795
|
}
|
|
5731
5796
|
function ThreadListEmptyState({ message = "No threads yet", className }) {
|
|
5732
|
-
return /* @__PURE__ */
|
|
5797
|
+
return /* @__PURE__ */ jsx57(
|
|
5733
5798
|
"div",
|
|
5734
5799
|
{
|
|
5735
5800
|
className: cn("text-text-secondary flex flex-1 items-center justify-center px-4 text-center text-sm", className),
|
|
@@ -5738,9 +5803,9 @@ function ThreadListEmptyState({ message = "No threads yet", className }) {
|
|
|
5738
5803
|
);
|
|
5739
5804
|
}
|
|
5740
5805
|
function ThreadListShell({ header, children, className }) {
|
|
5741
|
-
return /* @__PURE__ */
|
|
5742
|
-
/* @__PURE__ */
|
|
5743
|
-
/* @__PURE__ */
|
|
5806
|
+
return /* @__PURE__ */ jsxs38("div", { className: cn("font-sans-flex flex h-full min-h-0 flex-1 flex-col overflow-hidden", className), children: [
|
|
5807
|
+
/* @__PURE__ */ jsx57("div", { className: "shrink-0 border-b border-border px-2 py-2", children: header }),
|
|
5808
|
+
/* @__PURE__ */ jsx57("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden p-2", children })
|
|
5744
5809
|
] });
|
|
5745
5810
|
}
|
|
5746
5811
|
|
|
@@ -5801,7 +5866,7 @@ function canReuseMutableShell({
|
|
|
5801
5866
|
}
|
|
5802
5867
|
|
|
5803
5868
|
// src/atoms/ThreadListRow.tsx
|
|
5804
|
-
import { jsx as
|
|
5869
|
+
import { jsx as jsx58, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
5805
5870
|
function ThreadListRow({
|
|
5806
5871
|
title,
|
|
5807
5872
|
active,
|
|
@@ -5813,7 +5878,7 @@ function ThreadListRow({
|
|
|
5813
5878
|
}) {
|
|
5814
5879
|
const relative = lastMessageAt != null ? formatRelativeShort(lastMessageAt) : void 0;
|
|
5815
5880
|
const hasTrailing = relative != null || actions != null;
|
|
5816
|
-
return /* @__PURE__ */
|
|
5881
|
+
return /* @__PURE__ */ jsxs39(
|
|
5817
5882
|
"div",
|
|
5818
5883
|
{
|
|
5819
5884
|
"data-slot": "aui_thread-list-item",
|
|
@@ -5824,7 +5889,7 @@ function ThreadListRow({
|
|
|
5824
5889
|
className
|
|
5825
5890
|
),
|
|
5826
5891
|
children: [
|
|
5827
|
-
/* @__PURE__ */
|
|
5892
|
+
/* @__PURE__ */ jsx58(
|
|
5828
5893
|
"button",
|
|
5829
5894
|
{
|
|
5830
5895
|
type: "button",
|
|
@@ -5838,17 +5903,17 @@ function ThreadListRow({
|
|
|
5838
5903
|
active ? "text-dropdown-selected-item-text" : "text-inherit"
|
|
5839
5904
|
)
|
|
5840
5905
|
}),
|
|
5841
|
-
children: /* @__PURE__ */
|
|
5842
|
-
/* @__PURE__ */
|
|
5843
|
-
agentName != null ? /* @__PURE__ */
|
|
5844
|
-
/* @__PURE__ */
|
|
5845
|
-
/* @__PURE__ */
|
|
5906
|
+
children: /* @__PURE__ */ jsxs39("span", { className: "min-w-0 flex-1", children: [
|
|
5907
|
+
/* @__PURE__ */ jsx58("span", { className: "block truncate text-sm font-medium text-text-primary", children: title }),
|
|
5908
|
+
agentName != null ? /* @__PURE__ */ jsxs39("span", { className: "mt-0.5 flex min-w-0 items-center gap-1 text-xs text-text-secondary", children: [
|
|
5909
|
+
/* @__PURE__ */ jsx58(Icon, { name: "robot", className: "size-3 shrink-0" }),
|
|
5910
|
+
/* @__PURE__ */ jsx58("span", { className: "truncate", children: agentName })
|
|
5846
5911
|
] }) : null
|
|
5847
5912
|
] })
|
|
5848
5913
|
}
|
|
5849
5914
|
),
|
|
5850
|
-
hasTrailing ? /* @__PURE__ */
|
|
5851
|
-
relative != null ? /* @__PURE__ */
|
|
5915
|
+
hasTrailing ? /* @__PURE__ */ jsxs39("div", { className: "relative mr-1 flex size-7 shrink-0 items-center justify-center", children: [
|
|
5916
|
+
relative != null ? /* @__PURE__ */ jsx58(
|
|
5852
5917
|
"span",
|
|
5853
5918
|
{
|
|
5854
5919
|
"data-slot": "aui_thread-list-item-age",
|
|
@@ -5861,7 +5926,7 @@ function ThreadListRow({
|
|
|
5861
5926
|
children: relative
|
|
5862
5927
|
}
|
|
5863
5928
|
) : null,
|
|
5864
|
-
actions != null ? /* @__PURE__ */
|
|
5929
|
+
actions != null ? /* @__PURE__ */ jsx58(
|
|
5865
5930
|
"div",
|
|
5866
5931
|
{
|
|
5867
5932
|
"data-slot": "aui_thread-list-item-actions",
|
|
@@ -5880,13 +5945,13 @@ function ThreadListRow({
|
|
|
5880
5945
|
|
|
5881
5946
|
// src/atoms/ThreadShell.tsx
|
|
5882
5947
|
import { forwardRef as forwardRef3 } from "react";
|
|
5883
|
-
import { jsx as
|
|
5948
|
+
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
5884
5949
|
var THREAD_CSS_VARS = {
|
|
5885
5950
|
["--thread-max-width"]: "44rem",
|
|
5886
5951
|
["--composer-padding"]: "8px"
|
|
5887
5952
|
};
|
|
5888
5953
|
var ThreadRootShell = forwardRef3(
|
|
5889
|
-
({ className, style, ...rest }, ref) => /* @__PURE__ */
|
|
5954
|
+
({ className, style, ...rest }, ref) => /* @__PURE__ */ jsx59(
|
|
5890
5955
|
"div",
|
|
5891
5956
|
{
|
|
5892
5957
|
ref,
|
|
@@ -5901,7 +5966,7 @@ var ThreadRootShell = forwardRef3(
|
|
|
5901
5966
|
);
|
|
5902
5967
|
ThreadRootShell.displayName = "ThreadRootShell";
|
|
5903
5968
|
var ThreadViewportShell = forwardRef3(
|
|
5904
|
-
({ className, isEmpty, children, ...rest }, ref) => /* @__PURE__ */
|
|
5969
|
+
({ className, isEmpty, children, ...rest }, ref) => /* @__PURE__ */ jsx59(
|
|
5905
5970
|
"div",
|
|
5906
5971
|
{
|
|
5907
5972
|
ref,
|
|
@@ -5911,7 +5976,7 @@ var ThreadViewportShell = forwardRef3(
|
|
|
5911
5976
|
className
|
|
5912
5977
|
),
|
|
5913
5978
|
...rest,
|
|
5914
|
-
children: /* @__PURE__ */
|
|
5979
|
+
children: /* @__PURE__ */ jsx59(
|
|
5915
5980
|
"div",
|
|
5916
5981
|
{
|
|
5917
5982
|
className: cn(
|
|
@@ -5926,7 +5991,7 @@ var ThreadViewportShell = forwardRef3(
|
|
|
5926
5991
|
);
|
|
5927
5992
|
ThreadViewportShell.displayName = "ThreadViewportShell";
|
|
5928
5993
|
var ThreadComposerAreaShell = forwardRef3(
|
|
5929
|
-
({ className, isEmpty, ...rest }, ref) => /* @__PURE__ */
|
|
5994
|
+
({ className, isEmpty, ...rest }, ref) => /* @__PURE__ */ jsx59(
|
|
5930
5995
|
"div",
|
|
5931
5996
|
{
|
|
5932
5997
|
ref,
|
|
@@ -5941,7 +6006,7 @@ var ThreadComposerAreaShell = forwardRef3(
|
|
|
5941
6006
|
)
|
|
5942
6007
|
);
|
|
5943
6008
|
ThreadComposerAreaShell.displayName = "ThreadComposerAreaShell";
|
|
5944
|
-
var MessageGroup = forwardRef3(({ className, ...rest }, ref) => /* @__PURE__ */
|
|
6009
|
+
var MessageGroup = forwardRef3(({ className, ...rest }, ref) => /* @__PURE__ */ jsx59(
|
|
5945
6010
|
"div",
|
|
5946
6011
|
{
|
|
5947
6012
|
ref,
|
|
@@ -5955,7 +6020,7 @@ MessageGroup.displayName = "MessageGroup";
|
|
|
5955
6020
|
// src/atoms/Toast.tsx
|
|
5956
6021
|
import { useCallback as useCallback7, useState as useState21 } from "react";
|
|
5957
6022
|
import { createPortal as createPortal2 } from "react-dom";
|
|
5958
|
-
import { jsx as
|
|
6023
|
+
import { jsx as jsx60, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
5959
6024
|
function Toast({ title, description, open, onOpenChange, variant = "error", className }) {
|
|
5960
6025
|
const [copied, setCopied] = useState21(false);
|
|
5961
6026
|
const handleCopy = useCallback7(async () => {
|
|
@@ -5969,7 +6034,7 @@ ${description}`;
|
|
|
5969
6034
|
}
|
|
5970
6035
|
}, [title, description]);
|
|
5971
6036
|
if (!open) return null;
|
|
5972
|
-
return /* @__PURE__ */
|
|
6037
|
+
return /* @__PURE__ */ jsxs40(
|
|
5973
6038
|
"div",
|
|
5974
6039
|
{
|
|
5975
6040
|
role: "alert",
|
|
@@ -5979,7 +6044,7 @@ ${description}`;
|
|
|
5979
6044
|
className
|
|
5980
6045
|
),
|
|
5981
6046
|
children: [
|
|
5982
|
-
/* @__PURE__ */
|
|
6047
|
+
/* @__PURE__ */ jsx60(
|
|
5983
6048
|
Icon,
|
|
5984
6049
|
{
|
|
5985
6050
|
name: variant === "success" ? "circle-check" : "circle-exclamation",
|
|
@@ -5987,9 +6052,9 @@ ${description}`;
|
|
|
5987
6052
|
className: cn("shrink-0", variant === "success" ? "text-success-bg" : "text-failure-bg")
|
|
5988
6053
|
}
|
|
5989
6054
|
),
|
|
5990
|
-
/* @__PURE__ */
|
|
5991
|
-
/* @__PURE__ */
|
|
5992
|
-
/* @__PURE__ */
|
|
6055
|
+
/* @__PURE__ */ jsxs40("div", { className: "min-w-0 flex-1", children: [
|
|
6056
|
+
/* @__PURE__ */ jsxs40("div", { className: "flex items-start justify-between gap-2", children: [
|
|
6057
|
+
/* @__PURE__ */ jsx60(
|
|
5993
6058
|
"div",
|
|
5994
6059
|
{
|
|
5995
6060
|
className: cn(
|
|
@@ -5999,8 +6064,8 @@ ${description}`;
|
|
|
5999
6064
|
children: title
|
|
6000
6065
|
}
|
|
6001
6066
|
),
|
|
6002
|
-
/* @__PURE__ */
|
|
6003
|
-
variant === "error" ? /* @__PURE__ */
|
|
6067
|
+
/* @__PURE__ */ jsxs40("div", { className: "flex shrink-0 items-center gap-1", children: [
|
|
6068
|
+
variant === "error" ? /* @__PURE__ */ jsx60(
|
|
6004
6069
|
"button",
|
|
6005
6070
|
{
|
|
6006
6071
|
type: "button",
|
|
@@ -6008,10 +6073,10 @@ ${description}`;
|
|
|
6008
6073
|
title: "Copy",
|
|
6009
6074
|
className: auiButtonClass({ variant: "ghost", size: "icon" }),
|
|
6010
6075
|
onClick: handleCopy,
|
|
6011
|
-
children: /* @__PURE__ */
|
|
6076
|
+
children: /* @__PURE__ */ jsx60(Icon, { name: copied ? "check" : "clone" })
|
|
6012
6077
|
}
|
|
6013
6078
|
) : null,
|
|
6014
|
-
/* @__PURE__ */
|
|
6079
|
+
/* @__PURE__ */ jsx60(
|
|
6015
6080
|
"button",
|
|
6016
6081
|
{
|
|
6017
6082
|
type: "button",
|
|
@@ -6019,12 +6084,12 @@ ${description}`;
|
|
|
6019
6084
|
title: "Close",
|
|
6020
6085
|
className: auiButtonClass({ variant: "ghost", size: "icon" }),
|
|
6021
6086
|
onClick: () => onOpenChange(false),
|
|
6022
|
-
children: /* @__PURE__ */
|
|
6087
|
+
children: /* @__PURE__ */ jsx60(Icon, { name: "xmark" })
|
|
6023
6088
|
}
|
|
6024
6089
|
)
|
|
6025
6090
|
] })
|
|
6026
6091
|
] }),
|
|
6027
|
-
description ? /* @__PURE__ */
|
|
6092
|
+
description ? /* @__PURE__ */ jsx60("div", { className: "text-text-secondary mt-1 max-h-24 overflow-y-auto text-sm leading-snug break-words whitespace-pre-wrap", children: description }) : null
|
|
6028
6093
|
] })
|
|
6029
6094
|
]
|
|
6030
6095
|
}
|
|
@@ -6040,7 +6105,7 @@ var openToastStack = (element) => {
|
|
|
6040
6105
|
}
|
|
6041
6106
|
};
|
|
6042
6107
|
function ToastStack({ children, duration: _duration = Number.POSITIVE_INFINITY }) {
|
|
6043
|
-
const stack = /* @__PURE__ */
|
|
6108
|
+
const stack = /* @__PURE__ */ jsx60(
|
|
6044
6109
|
"div",
|
|
6045
6110
|
{
|
|
6046
6111
|
ref: openToastStack,
|
|
@@ -6056,7 +6121,7 @@ function ToastStack({ children, duration: _duration = Number.POSITIVE_INFINITY }
|
|
|
6056
6121
|
}
|
|
6057
6122
|
|
|
6058
6123
|
// src/atoms/ToolApprovalBar.tsx
|
|
6059
|
-
import { jsx as
|
|
6124
|
+
import { jsx as jsx61, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
6060
6125
|
var DEFAULT_APPROVE_OPTIONS = [{ id: "approve", label: "Approve", variant: "primary" }];
|
|
6061
6126
|
var DEFAULT_DENY_OPTIONS = [
|
|
6062
6127
|
{ id: "deny", label: "Deny", variant: "secondary", requiresReason: true }
|
|
@@ -6089,26 +6154,26 @@ function ToolApprovalBar({
|
|
|
6089
6154
|
const isDenied = status?.type === "denied";
|
|
6090
6155
|
const interactionsLocked = disabled && !isDecided;
|
|
6091
6156
|
const headingText = isApproved ? "Tool Approved" : isDenied ? "Tool Approval Denied" : "Tool Approval Required for";
|
|
6092
|
-
return /* @__PURE__ */
|
|
6157
|
+
return /* @__PURE__ */ jsxs41(
|
|
6093
6158
|
"div",
|
|
6094
6159
|
{
|
|
6095
6160
|
className: cn("aui-tool-approval-bar", className),
|
|
6096
6161
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-approval` : void 0,
|
|
6097
6162
|
children: [
|
|
6098
|
-
/* @__PURE__ */
|
|
6099
|
-
/* @__PURE__ */
|
|
6100
|
-
/* @__PURE__ */
|
|
6101
|
-
/* @__PURE__ */
|
|
6102
|
-
showLineBelow && /* @__PURE__ */
|
|
6163
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex gap-2", children: [
|
|
6164
|
+
/* @__PURE__ */ jsxs41("div", { className: cn("flex shrink-0 flex-col items-center", !showLineBelow && "pb-1"), children: [
|
|
6165
|
+
/* @__PURE__ */ jsx61("div", { className: "min-h-[0.75rem] w-px flex-1 bg-border" }),
|
|
6166
|
+
/* @__PURE__ */ jsx61(StepIconBox, { icon: "wrench", variant: "muted", iconSize: "0.875em", className: "my-1" }),
|
|
6167
|
+
showLineBelow && /* @__PURE__ */ jsx61("div", { className: "min-h-[0.75rem] w-px flex-1 bg-border" })
|
|
6103
6168
|
] }),
|
|
6104
|
-
/* @__PURE__ */
|
|
6105
|
-
/* @__PURE__ */
|
|
6106
|
-
/* @__PURE__ */
|
|
6107
|
-
/* @__PURE__ */
|
|
6169
|
+
/* @__PURE__ */ jsxs41("div", { className: "mt-2 flex flex-1 items-center justify-between", children: [
|
|
6170
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex w-full items-center justify-between gap-2", children: [
|
|
6171
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex items-center gap-2", children: [
|
|
6172
|
+
/* @__PURE__ */ jsxs41("span", { className: "inline-flex flex-wrap items-center gap-1 font-sans text-xs font-medium leading-4 text-text-primary", children: [
|
|
6108
6173
|
headingText,
|
|
6109
|
-
/* @__PURE__ */
|
|
6174
|
+
/* @__PURE__ */ jsx61("span", { className: "rounded bg-secondary-bg px-1.5 py-0.5 text-xs text-text-secondary", children: toolName })
|
|
6110
6175
|
] }),
|
|
6111
|
-
isDecided && /* @__PURE__ */
|
|
6176
|
+
isDecided && /* @__PURE__ */ jsx61(
|
|
6112
6177
|
Icon,
|
|
6113
6178
|
{
|
|
6114
6179
|
name: isDenied ? "circle-xmark" : "circle-check",
|
|
@@ -6117,7 +6182,7 @@ function ToolApprovalBar({
|
|
|
6117
6182
|
}
|
|
6118
6183
|
)
|
|
6119
6184
|
] }),
|
|
6120
|
-
!isDecided && !readOnly && selectedDenyOption && /* @__PURE__ */
|
|
6185
|
+
!isDecided && !readOnly && selectedDenyOption && /* @__PURE__ */ jsx61(
|
|
6121
6186
|
Button,
|
|
6122
6187
|
{
|
|
6123
6188
|
size: "sm",
|
|
@@ -6128,8 +6193,8 @@ function ToolApprovalBar({
|
|
|
6128
6193
|
}
|
|
6129
6194
|
)
|
|
6130
6195
|
] }),
|
|
6131
|
-
!isDecided && !readOnly && !selectedDenyOption && /* @__PURE__ */
|
|
6132
|
-
approveOptions.map((option) => /* @__PURE__ */
|
|
6196
|
+
!isDecided && !readOnly && !selectedDenyOption && /* @__PURE__ */ jsxs41("div", { className: "flex gap-2", children: [
|
|
6197
|
+
approveOptions.map((option) => /* @__PURE__ */ jsxs41(
|
|
6133
6198
|
Button,
|
|
6134
6199
|
{
|
|
6135
6200
|
size: "sm",
|
|
@@ -6137,13 +6202,13 @@ function ToolApprovalBar({
|
|
|
6137
6202
|
disabled: interactionsLocked,
|
|
6138
6203
|
onClick: () => onSelect(option.id),
|
|
6139
6204
|
children: [
|
|
6140
|
-
option.variant === "primary" && /* @__PURE__ */
|
|
6205
|
+
option.variant === "primary" && /* @__PURE__ */ jsx61(Icon, { name: "check", size: "0.75rem" }),
|
|
6141
6206
|
option.label
|
|
6142
6207
|
]
|
|
6143
6208
|
},
|
|
6144
6209
|
option.id
|
|
6145
6210
|
)),
|
|
6146
|
-
denyOptions.map((option) => /* @__PURE__ */
|
|
6211
|
+
denyOptions.map((option) => /* @__PURE__ */ jsx61(
|
|
6147
6212
|
Button,
|
|
6148
6213
|
{
|
|
6149
6214
|
size: "sm",
|
|
@@ -6163,17 +6228,17 @@ function ToolApprovalBar({
|
|
|
6163
6228
|
] })
|
|
6164
6229
|
] })
|
|
6165
6230
|
] }),
|
|
6166
|
-
!isDecided && !readOnly && selectedDenyOption && /* @__PURE__ */
|
|
6167
|
-
(selectedDenyOption.confirm?.title || selectedDenyOption.confirm?.description) && /* @__PURE__ */
|
|
6168
|
-
selectedDenyOption.confirm.title && /* @__PURE__ */
|
|
6169
|
-
selectedDenyOption.confirm.description && /* @__PURE__ */
|
|
6231
|
+
!isDecided && !readOnly && selectedDenyOption && /* @__PURE__ */ jsxs41("div", { className: "flex flex-col gap-1 pl-8 pt-3", children: [
|
|
6232
|
+
(selectedDenyOption.confirm?.title || selectedDenyOption.confirm?.description) && /* @__PURE__ */ jsxs41("div", { className: "flex flex-col gap-0.5", children: [
|
|
6233
|
+
selectedDenyOption.confirm.title && /* @__PURE__ */ jsx61("span", { className: "text-xs font-medium text-text-primary", children: selectedDenyOption.confirm.title }),
|
|
6234
|
+
selectedDenyOption.confirm.description && /* @__PURE__ */ jsx61("span", { className: "text-xs text-text-secondary", children: selectedDenyOption.confirm.description })
|
|
6170
6235
|
] }),
|
|
6171
|
-
selectedDenyOption.grants && selectedDenyOption.grants.length > 0 && /* @__PURE__ */
|
|
6172
|
-
/* @__PURE__ */
|
|
6173
|
-
selectedDenyOption.grants.map((grant) => /* @__PURE__ */
|
|
6236
|
+
selectedDenyOption.grants && selectedDenyOption.grants.length > 0 && /* @__PURE__ */ jsxs41("div", { className: "flex flex-wrap items-center gap-1", children: [
|
|
6237
|
+
/* @__PURE__ */ jsx61("span", { className: "text-xs text-text-secondary", children: "Grants:" }),
|
|
6238
|
+
selectedDenyOption.grants.map((grant) => /* @__PURE__ */ jsx61("span", { className: "rounded bg-secondary-bg px-1.5 py-0.5 text-xs text-text-secondary", children: grant }, grant))
|
|
6174
6239
|
] }),
|
|
6175
|
-
/* @__PURE__ */
|
|
6176
|
-
/* @__PURE__ */
|
|
6240
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex items-center gap-2", children: [
|
|
6241
|
+
/* @__PURE__ */ jsx61(
|
|
6177
6242
|
"input",
|
|
6178
6243
|
{
|
|
6179
6244
|
placeholder: "Enter reason for denial",
|
|
@@ -6189,11 +6254,11 @@ function ToolApprovalBar({
|
|
|
6189
6254
|
)
|
|
6190
6255
|
}
|
|
6191
6256
|
),
|
|
6192
|
-
/* @__PURE__ */
|
|
6257
|
+
/* @__PURE__ */ jsx61(Button, { size: "sm", disabled: interactionsLocked, onClick: onReasonSubmit, children: "Submit" })
|
|
6193
6258
|
] }),
|
|
6194
|
-
showReasonError && /* @__PURE__ */
|
|
6259
|
+
showReasonError && /* @__PURE__ */ jsx61("span", { id: "aui-denial-reason-error", className: "text-xs text-failure-bg", role: "alert", children: "Reason is required" })
|
|
6195
6260
|
] }),
|
|
6196
|
-
isDecided && status?.reason && /* @__PURE__ */
|
|
6261
|
+
isDecided && status?.reason && /* @__PURE__ */ jsx61("div", { className: "pl-8 pt-2", children: /* @__PURE__ */ jsxs41("span", { className: "text-xs text-text-secondary", children: [
|
|
6197
6262
|
"Reason: ",
|
|
6198
6263
|
status.reason
|
|
6199
6264
|
] }) })
|
|
@@ -6203,7 +6268,7 @@ function ToolApprovalBar({
|
|
|
6203
6268
|
}
|
|
6204
6269
|
|
|
6205
6270
|
// src/atoms/ToolCallCard.tsx
|
|
6206
|
-
import { Fragment as Fragment12, jsx as
|
|
6271
|
+
import { Fragment as Fragment12, jsx as jsx62, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
6207
6272
|
var DEFAULT_AWAITING_TEXT = "Awaiting Response...";
|
|
6208
6273
|
function ToolCallCard({
|
|
6209
6274
|
icon = "mcp-server",
|
|
@@ -6241,7 +6306,7 @@ function ToolCallCard({
|
|
|
6241
6306
|
const isCubeIcon = icon === "cube";
|
|
6242
6307
|
const derivedIconVariant = iconVariant || (isCubeIcon ? "primary" : "muted");
|
|
6243
6308
|
const derivedIconSize = isCubeIcon ? "0.75em" : void 0;
|
|
6244
|
-
return /* @__PURE__ */
|
|
6309
|
+
return /* @__PURE__ */ jsx62(
|
|
6245
6310
|
"div",
|
|
6246
6311
|
{
|
|
6247
6312
|
className: cn(
|
|
@@ -6250,7 +6315,7 @@ function ToolCallCard({
|
|
|
6250
6315
|
className
|
|
6251
6316
|
),
|
|
6252
6317
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-tool-call-card` : void 0,
|
|
6253
|
-
children: /* @__PURE__ */
|
|
6318
|
+
children: /* @__PURE__ */ jsx62(
|
|
6254
6319
|
AgentStepRow,
|
|
6255
6320
|
{
|
|
6256
6321
|
icon,
|
|
@@ -6267,11 +6332,11 @@ function ToolCallCard({
|
|
|
6267
6332
|
showContentConnector: true,
|
|
6268
6333
|
showPersistentContentConnector: !hasApproval,
|
|
6269
6334
|
dataTestPrefix: dataTestPrefix ? `${dataTestPrefix}-header` : void 0,
|
|
6270
|
-
persistentChildren: /* @__PURE__ */
|
|
6335
|
+
persistentChildren: /* @__PURE__ */ jsxs42(Fragment12, { children: [
|
|
6271
6336
|
approvalSlot,
|
|
6272
|
-
expanded && showResponseLine && responseSlot && /* @__PURE__ */
|
|
6337
|
+
expanded && showResponseLine && responseSlot && /* @__PURE__ */ jsx62("div", { "data-testid": dataTestPrefix ? `${dataTestPrefix}-response` : void 0, children: responseSlot })
|
|
6273
6338
|
] }),
|
|
6274
|
-
children: requestSlot && /* @__PURE__ */
|
|
6339
|
+
children: requestSlot && /* @__PURE__ */ jsx62("div", { className: "py-2 pt-0", "data-testid": dataTestPrefix ? `${dataTestPrefix}-request` : void 0, children: requestSlot })
|
|
6275
6340
|
}
|
|
6276
6341
|
)
|
|
6277
6342
|
}
|
|
@@ -6280,7 +6345,7 @@ function ToolCallCard({
|
|
|
6280
6345
|
|
|
6281
6346
|
// src/atoms/ToolCallContentBlock.tsx
|
|
6282
6347
|
import { useState as useState22 } from "react";
|
|
6283
|
-
import { jsx as
|
|
6348
|
+
import { jsx as jsx63, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
6284
6349
|
function JsonEditor({
|
|
6285
6350
|
content,
|
|
6286
6351
|
height,
|
|
@@ -6289,7 +6354,7 @@ function JsonEditor({
|
|
|
6289
6354
|
onAutoHeightChange
|
|
6290
6355
|
}) {
|
|
6291
6356
|
const MonacoEditorCore2 = useSlot("MonacoEditorCore");
|
|
6292
|
-
return /* @__PURE__ */
|
|
6357
|
+
return /* @__PURE__ */ jsx63(
|
|
6293
6358
|
MonacoEditorCore2,
|
|
6294
6359
|
{
|
|
6295
6360
|
language: "json",
|
|
@@ -6343,7 +6408,7 @@ function ToolCallContentBlock({
|
|
|
6343
6408
|
} : {
|
|
6344
6409
|
padding: "0.25rem"
|
|
6345
6410
|
};
|
|
6346
|
-
return /* @__PURE__ */
|
|
6411
|
+
return /* @__PURE__ */ jsxs43(
|
|
6347
6412
|
"div",
|
|
6348
6413
|
{
|
|
6349
6414
|
className: cn(
|
|
@@ -6353,10 +6418,10 @@ function ToolCallContentBlock({
|
|
|
6353
6418
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-content-block` : "tfy-tool-call-content-block",
|
|
6354
6419
|
"data-content": content,
|
|
6355
6420
|
children: [
|
|
6356
|
-
/* @__PURE__ */
|
|
6357
|
-
/* @__PURE__ */
|
|
6358
|
-
/* @__PURE__ */
|
|
6359
|
-
/* @__PURE__ */
|
|
6421
|
+
/* @__PURE__ */ jsxs43("div", { className: "flex items-center justify-between rounded-t-lg border border-primary-button-bg/30 bg-primary-button-bg/10 px-3 py-1", children: [
|
|
6422
|
+
/* @__PURE__ */ jsx63("div", { className: "font-sans text-xs font-medium text-primary-button-bg", children: title }),
|
|
6423
|
+
/* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-1", children: [
|
|
6424
|
+
/* @__PURE__ */ jsx63(
|
|
6360
6425
|
"button",
|
|
6361
6426
|
{
|
|
6362
6427
|
type: "button",
|
|
@@ -6364,22 +6429,22 @@ function ToolCallContentBlock({
|
|
|
6364
6429
|
className: "inline-flex size-6 cursor-pointer items-center justify-center rounded text-text-secondary transition-colors hover:text-text-primary",
|
|
6365
6430
|
"aria-label": "Copy",
|
|
6366
6431
|
"data-testid": dataTestPrefix ? `${dataTestPrefix}-copy` : void 0,
|
|
6367
|
-
children: /* @__PURE__ */
|
|
6432
|
+
children: /* @__PURE__ */ jsx63(Icon, { name: copied ? "check" : "clone", size: 14 })
|
|
6368
6433
|
}
|
|
6369
6434
|
),
|
|
6370
|
-
/* @__PURE__ */
|
|
6435
|
+
/* @__PURE__ */ jsx63(
|
|
6371
6436
|
"button",
|
|
6372
6437
|
{
|
|
6373
6438
|
type: "button",
|
|
6374
6439
|
onClick: () => onFullscreenChange?.(true),
|
|
6375
6440
|
className: "inline-flex size-6 cursor-pointer items-center justify-center rounded text-text-secondary transition-colors hover:text-text-primary",
|
|
6376
6441
|
"aria-label": "Expand",
|
|
6377
|
-
children: /* @__PURE__ */
|
|
6442
|
+
children: /* @__PURE__ */ jsx63(Icon, { name: "expand-alt", size: 14 })
|
|
6378
6443
|
}
|
|
6379
6444
|
)
|
|
6380
6445
|
] })
|
|
6381
6446
|
] }),
|
|
6382
|
-
/* @__PURE__ */
|
|
6447
|
+
/* @__PURE__ */ jsx63(
|
|
6383
6448
|
"div",
|
|
6384
6449
|
{
|
|
6385
6450
|
ref: resizable ? contentRef : void 0,
|
|
@@ -6388,7 +6453,7 @@ function ToolCallContentBlock({
|
|
|
6388
6453
|
resizable && "overflow-hidden"
|
|
6389
6454
|
),
|
|
6390
6455
|
style: bodyStyle,
|
|
6391
|
-
children: isJson ? /* @__PURE__ */
|
|
6456
|
+
children: isJson ? /* @__PURE__ */ jsx63(
|
|
6392
6457
|
JsonEditor,
|
|
6393
6458
|
{
|
|
6394
6459
|
content,
|
|
@@ -6397,22 +6462,22 @@ function ToolCallContentBlock({
|
|
|
6397
6462
|
maxHeight,
|
|
6398
6463
|
onAutoHeightChange: resizable ? onContentHeightChange : void 0
|
|
6399
6464
|
}
|
|
6400
|
-
) : /* @__PURE__ */
|
|
6465
|
+
) : /* @__PURE__ */ jsx63(
|
|
6401
6466
|
"div",
|
|
6402
6467
|
{
|
|
6403
6468
|
className: cn("overflow-y-auto", hasMeasuredResizableHeight && "h-full"),
|
|
6404
6469
|
style: !hasMeasuredResizableHeight && maxHeight ? { maxHeight } : void 0,
|
|
6405
|
-
children: /* @__PURE__ */
|
|
6470
|
+
children: /* @__PURE__ */ jsx63(Markdown2, { content, className: "text-xs text-text-secondary" })
|
|
6406
6471
|
}
|
|
6407
6472
|
)
|
|
6408
6473
|
}
|
|
6409
6474
|
),
|
|
6410
|
-
fullscreen && /* @__PURE__ */
|
|
6411
|
-
/* @__PURE__ */
|
|
6412
|
-
/* @__PURE__ */
|
|
6413
|
-
/* @__PURE__ */
|
|
6475
|
+
fullscreen && /* @__PURE__ */ jsx63(Dialog, { open: true, onOpenChange: (open) => onFullscreenChange?.(open), children: /* @__PURE__ */ jsxs43(DialogContent, { className: "flex h-[80vh] max-w-4xl flex-col", children: [
|
|
6476
|
+
/* @__PURE__ */ jsxs43(DialogHeader, { className: "flex flex-row items-center justify-between gap-2", children: [
|
|
6477
|
+
/* @__PURE__ */ jsx63(DialogTitle, { children: title }),
|
|
6478
|
+
/* @__PURE__ */ jsx63(IconButton, { variant: "ghost", onClick: () => onFullscreenChange?.(false), "aria-label": "Minimize", children: /* @__PURE__ */ jsx63(Icon, { name: "compress", size: "0.875em" }) })
|
|
6414
6479
|
] }),
|
|
6415
|
-
/* @__PURE__ */
|
|
6480
|
+
/* @__PURE__ */ jsx63("div", { className: "min-h-0 flex-1", children: /* @__PURE__ */ jsx63(JsonEditor, { content, height: "100%" }) })
|
|
6416
6481
|
] }) })
|
|
6417
6482
|
]
|
|
6418
6483
|
}
|
|
@@ -6420,7 +6485,7 @@ function ToolCallContentBlock({
|
|
|
6420
6485
|
}
|
|
6421
6486
|
|
|
6422
6487
|
// src/atoms/ToolGroupCard.tsx
|
|
6423
|
-
import { jsx as
|
|
6488
|
+
import { jsx as jsx64, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
6424
6489
|
function ToolGroupCard({
|
|
6425
6490
|
toolCallCount,
|
|
6426
6491
|
expanded,
|
|
@@ -6433,7 +6498,7 @@ function ToolGroupCard({
|
|
|
6433
6498
|
const AccordionSummary2 = useSlot("AccordionSummary");
|
|
6434
6499
|
const AccordionDetails2 = useSlot("AccordionDetails");
|
|
6435
6500
|
const label = `${toolCallCount} tool ${toolCallCount === 1 ? "call" : "calls"}`;
|
|
6436
|
-
return /* @__PURE__ */
|
|
6501
|
+
return /* @__PURE__ */ jsxs44(
|
|
6437
6502
|
Accordion2,
|
|
6438
6503
|
{
|
|
6439
6504
|
"data-slot": "tool-group-card",
|
|
@@ -6443,7 +6508,7 @@ function ToolGroupCard({
|
|
|
6443
6508
|
className: cn("aui-tool-group-card group/tool-group w-full", className),
|
|
6444
6509
|
sx: { margin: 0, border: "none", boxShadow: "none" },
|
|
6445
6510
|
children: [
|
|
6446
|
-
/* @__PURE__ */
|
|
6511
|
+
/* @__PURE__ */ jsx64(
|
|
6447
6512
|
AccordionSummary2,
|
|
6448
6513
|
{
|
|
6449
6514
|
hideIcon: true,
|
|
@@ -6455,10 +6520,10 @@ function ToolGroupCard({
|
|
|
6455
6520
|
"&:hover": { backgroundColor: "transparent" },
|
|
6456
6521
|
"& .MuiAccordionSummary-content": { margin: 0, width: "100%" }
|
|
6457
6522
|
},
|
|
6458
|
-
children: /* @__PURE__ */
|
|
6459
|
-
active && /* @__PURE__ */
|
|
6460
|
-
/* @__PURE__ */
|
|
6461
|
-
/* @__PURE__ */
|
|
6523
|
+
children: /* @__PURE__ */ jsxs44("div", { className: "text-text-secondary hover:text-text-primary flex origin-left items-center gap-2 py-1.5 text-sm transition-[color,scale] active:scale-[0.98]", children: [
|
|
6524
|
+
active && /* @__PURE__ */ jsx64(Icon, { name: "loader", className: "size-3 shrink-0 animate-spin [animation-duration:0.6s]" }),
|
|
6525
|
+
/* @__PURE__ */ jsx64("span", { className: "text-xs font-medium", children: label }),
|
|
6526
|
+
/* @__PURE__ */ jsx64(
|
|
6462
6527
|
Icon,
|
|
6463
6528
|
{
|
|
6464
6529
|
name: "chevron-down",
|
|
@@ -6471,14 +6536,14 @@ function ToolGroupCard({
|
|
|
6471
6536
|
] })
|
|
6472
6537
|
}
|
|
6473
6538
|
),
|
|
6474
|
-
/* @__PURE__ */
|
|
6539
|
+
/* @__PURE__ */ jsx64(AccordionDetails2, { sx: { padding: 0 }, children: /* @__PURE__ */ jsx64("div", { className: "mt-1 flex flex-col gap-2 text-text-primary", children }) })
|
|
6475
6540
|
]
|
|
6476
6541
|
}
|
|
6477
6542
|
);
|
|
6478
6543
|
}
|
|
6479
6544
|
|
|
6480
6545
|
// src/atoms/UserMessageActionBar.tsx
|
|
6481
|
-
import { jsx as
|
|
6546
|
+
import { jsx as jsx65, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
6482
6547
|
var actionBtnClass2 = "h-6 w-6 text-text-secondary hover:text-text-primary [&_svg]:size-3.5";
|
|
6483
6548
|
function UserMessageActionBar({
|
|
6484
6549
|
isCopied,
|
|
@@ -6490,9 +6555,9 @@ function UserMessageActionBar({
|
|
|
6490
6555
|
className
|
|
6491
6556
|
}) {
|
|
6492
6557
|
const MessageTimestamp2 = useSlot("MessageTimestamp");
|
|
6493
|
-
return /* @__PURE__ */
|
|
6494
|
-
/* @__PURE__ */
|
|
6495
|
-
/* @__PURE__ */
|
|
6558
|
+
return /* @__PURE__ */ jsxs45("div", { className: cn("aui-user-action-bar-root animate-in fade-in flex items-center gap-1 duration-200", className), children: [
|
|
6559
|
+
/* @__PURE__ */ jsx65(MessageTimestamp2, { createdAt, className: "mr-1" }),
|
|
6560
|
+
/* @__PURE__ */ jsx65(
|
|
6496
6561
|
IconButton,
|
|
6497
6562
|
{
|
|
6498
6563
|
"aria-label": "Try again",
|
|
@@ -6500,10 +6565,10 @@ function UserMessageActionBar({
|
|
|
6500
6565
|
variant: "ghost",
|
|
6501
6566
|
className: actionBtnClass2,
|
|
6502
6567
|
onClick: onRetry,
|
|
6503
|
-
children: /* @__PURE__ */
|
|
6568
|
+
children: /* @__PURE__ */ jsx65(Icon, { name: "rotate-right", size: "0.875em" })
|
|
6504
6569
|
}
|
|
6505
6570
|
),
|
|
6506
|
-
/* @__PURE__ */
|
|
6571
|
+
/* @__PURE__ */ jsx65(
|
|
6507
6572
|
IconButton,
|
|
6508
6573
|
{
|
|
6509
6574
|
"aria-label": "Edit",
|
|
@@ -6512,24 +6577,24 @@ function UserMessageActionBar({
|
|
|
6512
6577
|
className: actionBtnClass2,
|
|
6513
6578
|
disabled: editDisabled,
|
|
6514
6579
|
onClick: onEdit,
|
|
6515
|
-
children: /* @__PURE__ */
|
|
6580
|
+
children: /* @__PURE__ */ jsx65(Icon, { name: "pencil", size: "0.875em" })
|
|
6516
6581
|
}
|
|
6517
6582
|
),
|
|
6518
|
-
/* @__PURE__ */
|
|
6583
|
+
/* @__PURE__ */ jsx65(IconButton, { "aria-label": "Copy", tooltip: "Copy", variant: "ghost", className: actionBtnClass2, onClick: onCopy, children: /* @__PURE__ */ jsx65(Icon, { name: isCopied ? "check" : "clone", size: "0.875em" }) })
|
|
6519
6584
|
] });
|
|
6520
6585
|
}
|
|
6521
6586
|
|
|
6522
6587
|
// src/atoms/UserMessageBubble.tsx
|
|
6523
|
-
import { jsx as
|
|
6588
|
+
import { jsx as jsx66, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
6524
6589
|
function UserMessageBubble({ text, attachments, editAction, className }) {
|
|
6525
|
-
return /* @__PURE__ */
|
|
6590
|
+
return /* @__PURE__ */ jsxs46(
|
|
6526
6591
|
"div",
|
|
6527
6592
|
{
|
|
6528
6593
|
"data-slot": "aui_user-message-root",
|
|
6529
6594
|
className: cn("group/user-message flex w-full min-w-0 flex-col items-end gap-1", className),
|
|
6530
6595
|
children: [
|
|
6531
6596
|
attachments,
|
|
6532
|
-
/* @__PURE__ */
|
|
6597
|
+
/* @__PURE__ */ jsx66(
|
|
6533
6598
|
"div",
|
|
6534
6599
|
{
|
|
6535
6600
|
"data-slot": "aui_user-message-content",
|
|
@@ -6538,7 +6603,7 @@ function UserMessageBubble({ text, attachments, editAction, className }) {
|
|
|
6538
6603
|
children: text
|
|
6539
6604
|
}
|
|
6540
6605
|
),
|
|
6541
|
-
editAction && /* @__PURE__ */
|
|
6606
|
+
editAction && /* @__PURE__ */ jsx66("div", { className: "flex max-w-[min(80%,100%)] justify-end opacity-0 transition-opacity group-hover/user-message:opacity-100 focus-within:opacity-100", children: editAction })
|
|
6542
6607
|
]
|
|
6543
6608
|
}
|
|
6544
6609
|
);
|
|
@@ -6546,10 +6611,10 @@ function UserMessageBubble({ text, attachments, editAction, className }) {
|
|
|
6546
6611
|
|
|
6547
6612
|
// src/atoms/UserMessageEdit.tsx
|
|
6548
6613
|
import { forwardRef as forwardRef4 } from "react";
|
|
6549
|
-
import { jsx as
|
|
6614
|
+
import { jsx as jsx67, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
6550
6615
|
var UserMessageEdit = forwardRef4(
|
|
6551
6616
|
function UserMessageEdit2({ timestamp, attachments, input, footer, className, ...rest }, ref) {
|
|
6552
|
-
return /* @__PURE__ */
|
|
6617
|
+
return /* @__PURE__ */ jsxs47(
|
|
6553
6618
|
"div",
|
|
6554
6619
|
{
|
|
6555
6620
|
ref,
|
|
@@ -6557,13 +6622,13 @@ var UserMessageEdit = forwardRef4(
|
|
|
6557
6622
|
className: cn("flex flex-col gap-2 w-full", className),
|
|
6558
6623
|
...rest,
|
|
6559
6624
|
children: [
|
|
6560
|
-
(timestamp || attachments) && /* @__PURE__ */
|
|
6561
|
-
/* @__PURE__ */
|
|
6625
|
+
(timestamp || attachments) && /* @__PURE__ */ jsxs47("div", { className: "flex items-center gap-2 text-sm text-text-secondary", children: [
|
|
6626
|
+
/* @__PURE__ */ jsx67("span", { className: "font-medium text-text-primary", children: "User" }),
|
|
6562
6627
|
timestamp
|
|
6563
6628
|
] }),
|
|
6564
|
-
attachments && /* @__PURE__ */
|
|
6565
|
-
/* @__PURE__ */
|
|
6566
|
-
/* @__PURE__ */
|
|
6629
|
+
attachments && /* @__PURE__ */ jsx67("div", { className: "flex flex-wrap gap-1", children: attachments }),
|
|
6630
|
+
/* @__PURE__ */ jsx67("div", { className: "w-full", children: input }),
|
|
6631
|
+
/* @__PURE__ */ jsx67("div", { children: footer })
|
|
6567
6632
|
]
|
|
6568
6633
|
}
|
|
6569
6634
|
);
|
|
@@ -6571,12 +6636,12 @@ var UserMessageEdit = forwardRef4(
|
|
|
6571
6636
|
);
|
|
6572
6637
|
|
|
6573
6638
|
// src/atoms/WelcomeScreen.tsx
|
|
6574
|
-
import { jsx as
|
|
6639
|
+
import { jsx as jsx68, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
6575
6640
|
function WelcomeScreen({ heading = "How can I help you today?", icon, className }) {
|
|
6576
6641
|
const preset = useOptionalThemePreset();
|
|
6577
6642
|
const BrandLogo2 = useSlot("BrandLogo");
|
|
6578
|
-
const resolvedIcon = icon !== void 0 ? icon : preset === "chatgpt" ? null : preset === "claude" ? /* @__PURE__ */
|
|
6579
|
-
return /* @__PURE__ */
|
|
6643
|
+
const resolvedIcon = icon !== void 0 ? icon : preset === "chatgpt" ? null : preset === "claude" ? /* @__PURE__ */ jsx68(Icon, { name: "welcome-sparkle", className: "size-5 fill-current text-primary-button-bg" }) : /* @__PURE__ */ jsx68(BrandLogo2, { variant: "icon", className: "size-10" });
|
|
6644
|
+
return /* @__PURE__ */ jsxs48(
|
|
6580
6645
|
"div",
|
|
6581
6646
|
{
|
|
6582
6647
|
"data-preset": preset,
|
|
@@ -6586,14 +6651,14 @@ function WelcomeScreen({ heading = "How can I help you today?", icon, className
|
|
|
6586
6651
|
className
|
|
6587
6652
|
),
|
|
6588
6653
|
children: [
|
|
6589
|
-
preset === "gemini" && /* @__PURE__ */
|
|
6654
|
+
preset === "gemini" && /* @__PURE__ */ jsx68(
|
|
6590
6655
|
"div",
|
|
6591
6656
|
{
|
|
6592
6657
|
"aria-hidden": true,
|
|
6593
6658
|
className: "pointer-events-none absolute left-1/2 top-1/2 -z-10 size-64 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-button-bg/20 blur-3xl motion-safe:animate-pulse motion-reduce:animate-none [animation-duration:4s]"
|
|
6594
6659
|
}
|
|
6595
6660
|
),
|
|
6596
|
-
resolvedIcon !== null && /* @__PURE__ */
|
|
6661
|
+
resolvedIcon !== null && /* @__PURE__ */ jsx68(
|
|
6597
6662
|
"div",
|
|
6598
6663
|
{
|
|
6599
6664
|
className: cn(
|
|
@@ -6603,7 +6668,7 @@ function WelcomeScreen({ heading = "How can I help you today?", icon, className
|
|
|
6603
6668
|
children: resolvedIcon
|
|
6604
6669
|
}
|
|
6605
6670
|
),
|
|
6606
|
-
/* @__PURE__ */
|
|
6671
|
+
/* @__PURE__ */ jsx68(
|
|
6607
6672
|
"h1",
|
|
6608
6673
|
{
|
|
6609
6674
|
className: cn(
|
|
@@ -6687,7 +6752,7 @@ var defaultSlots = {
|
|
|
6687
6752
|
};
|
|
6688
6753
|
|
|
6689
6754
|
// src/theme/SlotsProvider.tsx
|
|
6690
|
-
import { jsx as
|
|
6755
|
+
import { jsx as jsx69 } from "react/jsx-runtime";
|
|
6691
6756
|
var SlotsContext = createContext3(defaultSlots);
|
|
6692
6757
|
var ThemeModeContext = createContext3(void 0);
|
|
6693
6758
|
function SlotsProvider({
|
|
@@ -6698,10 +6763,10 @@ function SlotsProvider({
|
|
|
6698
6763
|
const parentSlots = useContext4(SlotsContext);
|
|
6699
6764
|
const inheritedTheme = useContext4(ThemeModeContext);
|
|
6700
6765
|
const resolved = useMemo7(() => ({ ...parentSlots, ...overrides }), [parentSlots, overrides]);
|
|
6701
|
-
const slotsTree = /* @__PURE__ */
|
|
6766
|
+
const slotsTree = /* @__PURE__ */ jsx69(SlotsProviderContents, { slots: resolved, inheritedTheme, theme, children });
|
|
6702
6767
|
const hasParentTheme = inheritedTheme !== void 0;
|
|
6703
6768
|
if (theme !== void 0 || !hasParentTheme) {
|
|
6704
|
-
return /* @__PURE__ */
|
|
6769
|
+
return /* @__PURE__ */ jsx69(ThemeProvider, { theme, children: slotsTree });
|
|
6705
6770
|
}
|
|
6706
6771
|
return slotsTree;
|
|
6707
6772
|
}
|
|
@@ -6714,7 +6779,7 @@ function SlotsProviderContents({
|
|
|
6714
6779
|
const modeFromProvider = useOptionalThemeMode();
|
|
6715
6780
|
const controlledMode = theme?.mode === "light" || theme?.mode === "dark" ? theme.mode : void 0;
|
|
6716
6781
|
const resolvedTheme = controlledMode ?? inheritedTheme ?? modeFromProvider;
|
|
6717
|
-
return /* @__PURE__ */
|
|
6782
|
+
return /* @__PURE__ */ jsx69(ThemeModeContext.Provider, { value: resolvedTheme, children: /* @__PURE__ */ jsx69(SlotsContext.Provider, { value: slots, children }) });
|
|
6718
6783
|
}
|
|
6719
6784
|
function useSlot(name) {
|
|
6720
6785
|
const slots = useContext4(SlotsContext);
|
|
@@ -6729,6 +6794,7 @@ function useThemeMode() {
|
|
|
6729
6794
|
}
|
|
6730
6795
|
|
|
6731
6796
|
export {
|
|
6797
|
+
resolveBrandChrome,
|
|
6732
6798
|
useBrandName,
|
|
6733
6799
|
BrandLogo,
|
|
6734
6800
|
Accordion,
|
|
@@ -6822,4 +6888,4 @@ export {
|
|
|
6822
6888
|
WelcomeScreen,
|
|
6823
6889
|
defaultSlots
|
|
6824
6890
|
};
|
|
6825
|
-
//# sourceMappingURL=chunk-
|
|
6891
|
+
//# sourceMappingURL=chunk-OSV3HI5M.js.map
|