@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.
Files changed (58) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +41 -17
  3. package/dist/{ConnectorSettings-ODC3LVHN.js → ConnectorSettings-FXQ5B7TN.js} +5 -5
  4. package/dist/{DockLayout-2RWDSUKE.js → DockLayout-LBNQJZNF.js} +9 -9
  5. package/dist/{DrawerLayout-CZLJYMIN.js → DrawerLayout-Q6UK4VMI.js} +9 -9
  6. package/dist/{ModelSettings-CKQ5CVAC.js → ModelSettings-4L4LOQJA.js} +5 -5
  7. package/dist/OpenUiFenceBlock-6UIIAVBX.js +9 -0
  8. package/dist/{SandboxSettings-HSCPYUOC.js → SandboxSettings-Z4ZG6ZX4.js} +5 -5
  9. package/dist/{SettingsBuilder-MYWRFXRI.js → SettingsBuilder-WF7ZWKQW.js} +7 -7
  10. package/dist/{SidebarLayout-WVY54TGZ.js → SidebarLayout-3WZ3CVON.js} +31 -14
  11. package/dist/SidebarLayout-3WZ3CVON.js.map +1 -0
  12. package/dist/{SkillSettings-ECH6SHZ7.js → SkillSettings-3EPPC3IT.js} +5 -5
  13. package/dist/{TrueForgeUIWithRouter-RKZ2E7PV.js → TrueForgeUIWithRouter-NZ4FGPE4.js} +7 -7
  14. package/dist/{WidgetLayout-NWWB2SXI.js → WidgetLayout-3QZ357FL.js} +10 -10
  15. package/dist/{WidgetLayout-NWWB2SXI.js.map → WidgetLayout-3QZ357FL.js.map} +1 -1
  16. package/dist/chunk-36KOSC2J.js +567 -0
  17. package/dist/chunk-36KOSC2J.js.map +1 -0
  18. package/dist/{chunk-HVSUPYX2.js → chunk-3S6KHO7H.js} +311 -238
  19. package/dist/chunk-3S6KHO7H.js.map +1 -0
  20. package/dist/{chunk-TCAVLWYL.js → chunk-7L63OK3O.js} +7 -7
  21. package/dist/{chunk-JRRCAKEP.js → chunk-B52K63AW.js} +2 -2
  22. package/dist/{chunk-FXCYLEFB.js → chunk-BSIPI3KV.js} +18 -2
  23. package/dist/chunk-BSIPI3KV.js.map +1 -0
  24. package/dist/{chunk-IFLE7OMM.js → chunk-FJ5RSSMA.js} +4 -4
  25. package/dist/{chunk-IFLE7OMM.js.map → chunk-FJ5RSSMA.js.map} +1 -1
  26. package/dist/{chunk-XRTTKGKN.js → chunk-OSV3HI5M.js} +746 -680
  27. package/dist/chunk-OSV3HI5M.js.map +1 -0
  28. package/dist/{chunk-KFUBFJR5.js → chunk-WREC7D54.js} +13 -11
  29. package/dist/chunk-WREC7D54.js.map +1 -0
  30. package/dist/{chunk-OZTNBS6V.js → chunk-ZXOADNF3.js} +4 -4
  31. package/dist/index.d.ts +179 -121
  32. package/dist/index.js +17 -9
  33. package/dist/index.js.map +1 -1
  34. package/dist/plugins/trueforge-agent-server-adapter/index.d.ts +1 -5
  35. package/dist/plugins/trueforge-agent-server-adapter/index.js +3 -0
  36. package/dist/plugins/trueforge-agent-server-adapter/index.js.map +1 -1
  37. package/dist/styles.css +1 -1
  38. package/package.json +6 -6
  39. package/dist/OpenUiFenceBlock-3EFPY4JW.js +0 -9
  40. package/dist/SidebarLayout-WVY54TGZ.js.map +0 -1
  41. package/dist/chunk-72LC2M3R.js +0 -567
  42. package/dist/chunk-72LC2M3R.js.map +0 -1
  43. package/dist/chunk-FXCYLEFB.js.map +0 -1
  44. package/dist/chunk-HVSUPYX2.js.map +0 -1
  45. package/dist/chunk-KFUBFJR5.js.map +0 -1
  46. package/dist/chunk-XRTTKGKN.js.map +0 -1
  47. /package/dist/{ConnectorSettings-ODC3LVHN.js.map → ConnectorSettings-FXQ5B7TN.js.map} +0 -0
  48. /package/dist/{DockLayout-2RWDSUKE.js.map → DockLayout-LBNQJZNF.js.map} +0 -0
  49. /package/dist/{DrawerLayout-CZLJYMIN.js.map → DrawerLayout-Q6UK4VMI.js.map} +0 -0
  50. /package/dist/{ModelSettings-CKQ5CVAC.js.map → ModelSettings-4L4LOQJA.js.map} +0 -0
  51. /package/dist/{OpenUiFenceBlock-3EFPY4JW.js.map → OpenUiFenceBlock-6UIIAVBX.js.map} +0 -0
  52. /package/dist/{SandboxSettings-HSCPYUOC.js.map → SandboxSettings-Z4ZG6ZX4.js.map} +0 -0
  53. /package/dist/{SettingsBuilder-MYWRFXRI.js.map → SettingsBuilder-WF7ZWKQW.js.map} +0 -0
  54. /package/dist/{SkillSettings-ECH6SHZ7.js.map → SkillSettings-3EPPC3IT.js.map} +0 -0
  55. /package/dist/{TrueForgeUIWithRouter-RKZ2E7PV.js.map → TrueForgeUIWithRouter-NZ4FGPE4.js.map} +0 -0
  56. /package/dist/{chunk-TCAVLWYL.js.map → chunk-7L63OK3O.js.map} +0 -0
  57. /package/dist/{chunk-JRRCAKEP.js.map → chunk-B52K63AW.js.map} +0 -0
  58. /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-IFLE7OMM.js";
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-JRRCAKEP.js";
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-72LC2M3R.js";
28
+ } from "./chunk-36KOSC2J.js";
29
29
 
30
30
  // src/theme/brand.tsx
31
31
  import { useContext } from "react";
32
- import { jsx } from "react/jsx-runtime";
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 resolveLogoSrc({
35
- logo,
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 logo === "string") return logo;
39
- const preferred = mode === "dark" ? logo.dark : logo.light;
40
- return preferred ?? logo.light ?? logo.dark ?? logo.src;
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
- return useContext(ThemeContext)?.brand.name ?? DEFAULT_BRAND_NAME;
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 logo = theme?.brand.logo;
48
- const name = theme?.brand.name ?? DEFAULT_BRAND_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 src = logo == null ? void 0 : resolveLogoSrc({ logo, mode });
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
- return /* @__PURE__ */ jsx(Icon, { name: mode === "dark" ? "trueforge-logomark-dark" : "trueforge-logomark-light", className });
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__ */ jsx("img", { src, alt: name, className });
55
- const href = typeof logo === "string" ? void 0 : logo?.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__ */ jsx("a", { href, "aria-label": name, className: "inline-flex items-center", children: image });
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 React, { createContext, useContext as useContext2, useId, useState } from "react";
62
- import { jsx as jsx2 } from "react/jsx-runtime";
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__ */ jsx2("div", { className: cn("w-full", className), "data-expanded": expanded || void 0, ...rest, children: React.Children.map(children, (child) => {
74
- if (!React.isValidElement(child)) return child;
75
- return React.cloneElement(child, {
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__ */ jsx2(
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__ */ jsx2("div", { id: panelId, role: "region", className: cn(className), children });
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 jsx3, jsxs } from "react/jsx-runtime";
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__ */ jsxs(
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__ */ jsx3(AccordionSummary, { className: "p-0", children: /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center gap-2 px-2 py-2 text-left text-xs", children: [
134
- /* @__PURE__ */ jsx3(
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__ */ jsx3("span", { className: "font-semibold text-text-primary", children: "Agent steps" }),
143
- /* @__PURE__ */ jsxs("span", { className: "text-text-secondary", children: [
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__ */ jsx3("div", { className: "ml-auto", children: /* @__PURE__ */ jsx3(Spinner, { size: 12, className: "text-primary-button-bg" }) })
209
+ active && /* @__PURE__ */ jsx5("div", { className: "ml-auto", children: /* @__PURE__ */ jsx5(Spinner, { size: 12, className: "text-primary-button-bg" }) })
149
210
  ] }) }),
150
- /* @__PURE__ */ jsx3(AccordionDetails, { children: /* @__PURE__ */ jsx3(
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 React2 from "react";
165
- import { jsx as jsx4 } from "react/jsx-runtime";
166
- var Button = React2.forwardRef(
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__ */ jsx4("button", { ref, className: auiButtonClass({ variant, size, className }), ...props });
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 React3 from "react";
178
- import { jsx as jsx5 } from "react/jsx-runtime";
179
- var IconButton = React3.forwardRef(
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__ */ jsx5(Button, { ref, size: "icon", title: tooltip, ...props, children });
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 jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
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__ */ jsx6("div", { className: cn("aui-ask-user-prompt mt-2 flex flex-col gap-3", className), children: answeredQuestions.map((q) => /* @__PURE__ */ jsxs2("div", { "data-testid": dataTestPrefix ? `${dataTestPrefix}-answered-${q.id}` : void 0, children: [
213
- /* @__PURE__ */ jsxs2("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: [
214
- /* @__PURE__ */ jsx6("div", { className: "font-sans text-xs font-medium text-primary-button-bg", children: q.question }),
215
- /* @__PURE__ */ jsx6("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__ */ jsx6("span", { className: "leading-tight", children: "Answered" }) })
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__ */ jsxs2("div", { className: "flex items-center gap-2 rounded-b-lg border border-t-0 border-border px-4 py-3", children: [
218
- /* @__PURE__ */ jsx6(Icon, { name: "circle-check", size: "0.875em", className: "shrink-0 text-primary-button-bg" }),
219
- /* @__PURE__ */ jsx6("span", { className: "font-sans text-[0.8125rem] font-medium text-text-primary", children: q.isCustom ? `Other: ${q.answer}` : q.answer })
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__ */ jsx6(
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__ */ jsxs2(
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__ */ jsxs2("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: [
271
- /* @__PURE__ */ jsx6("div", { className: "font-sans text-sm font-medium text-primary-button-bg", children: totalQuestions > 1 ? "Questions" : currentQuestion.question }),
272
- readOnly ? /* @__PURE__ */ jsx6("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__ */ jsx6("span", { className: "leading-tight", children: "Unanswered" }) }) : null,
273
- !readOnly && isMultiQuestion && /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-1", children: [
274
- /* @__PURE__ */ jsx6(
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__ */ jsx6(Icon, { name: "chevron-left", size: "0.75em" })
343
+ children: /* @__PURE__ */ jsx8(Icon, { name: "chevron-left", size: "0.75em" })
283
344
  }
284
345
  ),
285
- /* @__PURE__ */ jsx6(
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__ */ jsx6(Icon, { name: "chevron-right", size: "0.75em" })
354
+ children: /* @__PURE__ */ jsx8(Icon, { name: "chevron-right", size: "0.75em" })
294
355
  }
295
356
  ),
296
- /* @__PURE__ */ jsxs2("div", { className: "ml-1 rounded bg-primary-button-bg/20 px-2 py-1 font-sans text-xs font-medium text-text-primary", children: [
297
- /* @__PURE__ */ jsxs2("span", { children: [
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__ */ jsx6("span", { children: " of " }),
364
+ /* @__PURE__ */ jsx8("span", { children: " of " }),
304
365
  " ",
305
- /* @__PURE__ */ jsxs2("span", { children: [
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__ */ jsxs2("div", { className: "flex flex-col gap-4 rounded-b-lg border border-t-0 border-border px-4 py-3", children: [
314
- /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-3", children: [
315
- isMultiQuestion && /* @__PURE__ */ jsx6("div", { className: "font-sans text-xs font-medium text-text-primary", children: currentQuestion.question || "What would you like to do?" }),
316
- /* @__PURE__ */ jsxs2(
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__ */ jsxs2(
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__ */ jsx6(
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__ */ jsx6("span", { className: "min-w-0 font-sans text-[0.8125rem] font-medium leading-snug text-text-primary", children: opt })
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__ */ jsxs2(
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__ */ jsx6(
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__ */ jsx6("div", { className: "min-w-0 flex-1", children: answerInput })
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__ */ jsxs2(
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__ */ jsx6("span", { className: "text-xs font-medium text-failure-bg", children: "Answer all questions to submit" }) : /* @__PURE__ */ jsx6("span", {}),
389
- isNextStep ? /* @__PURE__ */ jsx6(Button, { type: "button", size: "sm", onClick: goToNextQuestion, disabled: isSubmitDisabled, children: "Next" }) : /* @__PURE__ */ jsx6(Button, { type: "button", size: "sm", onClick: onSubmit, disabled: isSubmitAllDisabled, children: "Submit" })
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 jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
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__ */ jsxs3(
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__ */ jsx7("div", { className: "border-b border-primary-button-bg/30 bg-primary-button-bg/10 px-4 py-2", children: /* @__PURE__ */ jsx7("div", { className: "font-sans text-sm font-medium text-primary-button-bg", children: title }) }),
419
- /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-3 bg-primary-bg px-4 py-3", children: [
420
- servers.map((server) => /* @__PURE__ */ jsxs3("div", { className: "flex items-center justify-between gap-4", children: [
421
- /* @__PURE__ */ jsxs3("div", { className: "flex min-w-0 items-center gap-1.5 text-sm", children: [
422
- /* @__PURE__ */ jsx7("span", { className: "shrink-0 font-medium text-text-secondary", children: "MCP Server Name" }),
423
- /* @__PURE__ */ jsx7("span", { className: "shrink-0 text-xs font-semibold text-text-secondary", children: ":" }),
424
- /* @__PURE__ */ jsx7("span", { className: "truncate font-sans font-medium text-text-primary", children: server.name })
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__ */ jsxs3(Button, { size: "sm", disabled: readOnly, onClick: () => onConnect(server.id), className: "shrink-0", children: [
487
+ /* @__PURE__ */ jsxs5(Button, { size: "sm", disabled: readOnly, onClick: () => onConnect(server.id), className: "shrink-0", children: [
427
488
  "Connect",
428
- /* @__PURE__ */ jsx7(Icon, { name: "external-link", size: "0.75em", className: "ml-1" })
489
+ /* @__PURE__ */ jsx9(Icon, { name: "external-link", size: "0.75em", className: "ml-1" })
429
490
  ] })
430
491
  ] }, server.id)),
431
- onContinue && /* @__PURE__ */ jsx7("div", { className: "flex justify-end border-t border-border pt-2", children: /* @__PURE__ */ jsx7(Button, { size: "sm", disabled: readOnly, onClick: onContinue, children: "Continue" }) })
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 jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
500
+ import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
440
501
  function StatusDot({ className, colorClassName = "bg-warning-bg" }) {
441
- return /* @__PURE__ */ jsxs4("span", { "aria-hidden": true, className: cn("relative inline-flex h-2 w-2 shrink-0", className), children: [
442
- /* @__PURE__ */ jsx8(
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__ */ jsx8("span", { className: cn("relative inline-flex h-2 w-2 rounded-full", colorClassName) })
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 jsx9 } from "react/jsx-runtime";
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__ */ jsx9("div", { className: cn("flex size-5 shrink-0 items-center justify-center", className), children: /* @__PURE__ */ jsx9(
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 jsx10, jsxs as jsxs5 } from "react/jsx-runtime";
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__ */ jsxs5(
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__ */ jsxs5("div", { className: cn("flex gap-2", alignStart ? "items-start" : "items-center"), children: [
515
- showChevronColumn && (showExpandChevron ? /* @__PURE__ */ jsx10(
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__ */ jsx10(
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__ */ jsx10("div", { className: "w-5 shrink-0" })),
537
- /* @__PURE__ */ jsx10("div", { className: cn("relative flex shrink-0 flex-col items-center", alignStart ? "self-start" : "self-center"), children: /* @__PURE__ */ jsx10(StepIconBox, { icon, variant: iconVariant, iconClassName, iconSize }) }),
538
- /* @__PURE__ */ jsxs5(
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__ */ jsx10("span", { className: "text-xs font-medium leading-none text-text-secondary", children: label }),
547
- title && /* @__PURE__ */ jsxs5("div", { className: "flex min-w-0 items-center gap-2", children: [
548
- /* @__PURE__ */ jsx10(
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__ */ jsx10(
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__ */ jsx10(
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__ */ jsxs5("div", { className: cn("flex shrink-0 items-center gap-2", alignStart ? "self-start" : "self-center"), children: [
584
- statusText && /* @__PURE__ */ jsxs5("span", { className: "flex items-center gap-1", children: [
585
- isRunning && /* @__PURE__ */ jsx10(StatusDot, {}),
586
- /* @__PURE__ */ jsx10("span", { className: "font-sans text-xs font-medium leading-4 text-text-secondary", children: statusText })
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__ */ jsx10(Fragment, { children: showSpinner ? /* @__PURE__ */ jsx10("div", { className: "ml-1", children: /* @__PURE__ */ jsx10(Spinner, { size: 12 }) }) : /* @__PURE__ */ jsx10(StatusDot, {}) }),
589
- isError && /* @__PURE__ */ jsx10(
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__ */ jsxs5(
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__ */ jsx10("div", { className: "w-5 shrink-0" }),
607
- showContentConnector && showConnector && /* @__PURE__ */ jsx10("div", { className: "flex w-3 shrink-0 justify-center", children: /* @__PURE__ */ jsx10("div", { className: "w-px bg-border" }) }),
608
- /* @__PURE__ */ jsx10("div", { className: "min-w-0 flex-1", children })
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__ */ jsxs5(
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__ */ jsx10("div", { className: "w-5 shrink-0" }),
619
- showPersistentContentConnector && showConnector && /* @__PURE__ */ jsx10("div", { className: "flex w-3 shrink-0 justify-center", children: /* @__PURE__ */ jsx10("div", { className: "w-px bg-border" }) }),
620
- /* @__PURE__ */ jsx10("div", { className: "min-w-0 flex-1", children: persistentChildren })
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 jsx11 } from "react/jsx-runtime";
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__ */ jsx11(
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__ */ jsx11(
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__ */ jsx11(
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__ */ jsx11(Markdown2, { content, className: "font-sans text-sm text-text-secondary" })
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 jsx12, jsxs as jsxs6 } from "react/jsx-runtime";
742
+ import { jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
682
743
  function ResumeUnavailable({ className }) {
683
- return /* @__PURE__ */ jsxs6(
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__ */ jsx12("span", { className: "animate-pulse font-sans", "aria-hidden": true, children: "\u25CF" }),
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 jsx13, jsxs as jsxs7 } from "react/jsx-runtime";
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__ */ jsxs7(
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__ */ jsxs7("header", { className: "bg-topbar-bg flex shrink-0 items-center gap-3 border-b border-border px-5 py-4", children: [
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__ */ jsxs7("div", { className: "min-w-0 flex-1", children: [
917
- /* @__PURE__ */ jsx13("h2", { id: titleId, className: "text-text-primary text-lg font-semibold tracking-tight", children: title }),
918
- description ? /* @__PURE__ */ jsx13("p", { id: descriptionId, className: "text-text-secondary mt-1 text-sm", children: description }) : null
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__ */ jsx13(
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__ */ jsx13(Icon, { name: "xmark" })
989
+ children: /* @__PURE__ */ jsx15(Icon, { name: "xmark" })
929
990
  }
930
991
  )
931
992
  ] }),
932
- /* @__PURE__ */ jsx13("div", { className: "flex min-h-0 flex-1 flex-col overflow-x-hidden overflow-y-auto", children })
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 jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
1000
+ import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
940
1001
  var SearchInput = ({ query, setQuery, placeholder = "Search" }) => {
941
- return /* @__PURE__ */ jsxs8("label", { className: "relative block", children: [
942
- /* @__PURE__ */ jsx14(
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__ */ jsx14(
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 jsx15 } from "react/jsx-runtime";
1027
+ import { jsx as jsx17 } from "react/jsx-runtime";
967
1028
  function Skeleton({ className, ...props }) {
968
- return /* @__PURE__ */ jsx15("div", { className: cn("animate-pulse rounded-md bg-secondary-bg", className), ...props });
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 jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
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__ */ jsx16(
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__ */ jsxs9("span", { ref: triggerWrapRef, className: "relative inline-flex", children: [
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__ */ jsx16(Tooltip, { content: title, className, side, children });
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 jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
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__ */ jsxs10(
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__ */ jsx17("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__ */ jsx17(Icon, { name: "robot", className: "size-4" }) }),
1085
- /* @__PURE__ */ jsx17("span", { className: "text-text-primary min-w-0 flex-1 truncate text-left text-sm font-medium leading-tight", children: agent.name }),
1086
- spec != null ? /* @__PURE__ */ jsxs10("span", { className: "text-text-secondary flex shrink-0 items-center gap-2", children: [
1087
- modelName ? /* @__PURE__ */ jsxs10("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: [
1088
- /* @__PURE__ */ jsx17(Icon, { name: "cpu", className: "size-3.5 shrink-0" }),
1089
- /* @__PURE__ */ jsx17("span", { className: "truncate", children: displayModelLabel(modelName) })
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__ */ jsx17(Tooltip, { content: connectorsTitle, children: /* @__PURE__ */ jsxs10("span", { className: "inline-flex items-center gap-1 text-xs", "aria-label": connectorsTitle, children: [
1092
- /* @__PURE__ */ jsx17(Icon, { name: "plug", className: "size-3.5" }),
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__ */ jsx17(Tooltip, { content: skillsTitle, children: /* @__PURE__ */ jsxs10("span", { className: "inline-flex items-center gap-1 text-xs", "aria-label": skillsTitle, children: [
1096
- /* @__PURE__ */ jsx17(Icon, { name: "lightbulb", className: "size-3.5" }),
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__ */ jsxs10("span", { className: "flex shrink-0 items-center gap-1.5", children: [
1101
- showEdit ? /* @__PURE__ */ jsxs10(
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__ */ jsx17(Icon, { name: "pencil", className: "size-3.5" }),
1173
+ /* @__PURE__ */ jsx19(Icon, { name: "pencil", className: "size-3.5" }),
1113
1174
  "Edit"
1114
1175
  ]
1115
1176
  }
1116
1177
  ) : null,
1117
- /* @__PURE__ */ jsxs10(
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__ */ jsx17(Icon, { name: "play", className: "size-3.5" }),
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__ */ jsx17(CenteredModal, { open, onOpenChange, title: "Agents Library", children: /* @__PURE__ */ jsxs10("div", { className: "bg-secondary-bg/40 flex min-h-0 flex-1 flex-col", children: [
1175
- /* @__PURE__ */ jsxs10("div", { className: "shrink-0 border-b border-border px-4 py-3", children: [
1176
- /* @__PURE__ */ jsx17(SearchInput_default, { query, setQuery, placeholder: "Search agents" }),
1177
- isSearching ? /* @__PURE__ */ jsx17("p", { className: "text-text-secondary mt-1.5 text-xs", role: "status", children: "Searching\u2026" }) : null
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__ */ jsx17(
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__ */ jsx17("div", { className: "flex flex-col gap-2 p-1", role: "status", "aria-label": "Loading agents", children: Array.from({ length: 6 }, (_, i) => /* @__PURE__ */ jsx17(Skeleton, { className: "h-11 w-full rounded-md" }, i)) }) : error ? /* @__PURE__ */ jsx17("p", { className: "text-failure-bg px-3 py-8 text-center text-sm", children: error }) : agents.length === 0 ? /* @__PURE__ */ jsx17("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__ */ jsxs10(Fragment2, { children: [
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__ */ jsx17(
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__ */ jsx17("div", { ref: sentinelRef, className: "flex h-8 shrink-0 items-center justify-center", "aria-hidden": true, children: loadingMore ? /* @__PURE__ */ jsx17("span", { className: "text-text-secondary text-xs", role: "status", children: "Loading more\u2026" }) : null }) : null
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 jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
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__ */ jsxs11(Fragment3, { children: [
1234
- /* @__PURE__ */ jsx18("div", { className: cn("relative min-w-0", compact ? "w-8" : "w-full", className), children: /* @__PURE__ */ jsxs11(
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__ */ jsx18(Icon, { name: "robot" }),
1253
- !compact ? /* @__PURE__ */ jsxs11(Fragment3, { children: [
1254
- /* @__PURE__ */ jsxs11("span", { className: "truncate", children: [
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__ */ jsxs11("span", { className: "text-text-secondary", children: [
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__ */ jsx18(Icon, { name: "chevron-right", className: "ml-auto size-3.5 shrink-0 opacity-60" })
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__ */ jsx18(AgentsLibrary2, { open, onOpenChange: setOpen, onSelectAgent })
1328
+ /* @__PURE__ */ jsx20(AgentsLibrary2, { open, onOpenChange: setOpen, onSelectAgent })
1268
1329
  ] });
1269
1330
  }
1270
1331
 
1271
1332
  // src/atoms/AssistantMessageBubble.tsx
1272
- import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
1333
+ import { jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
1273
1334
  function AssistantMessageBubble({ children, error, actionBar, className }) {
1274
- return /* @__PURE__ */ jsxs12(
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__ */ jsxs12("div", { className: "min-w-0 max-w-full", children: [
1344
+ /* @__PURE__ */ jsxs14("div", { className: "min-w-0 max-w-full", children: [
1284
1345
  children,
1285
- error && /* @__PURE__ */ jsx19("div", { className: "mt-2 text-sm text-failure-bg", children: error })
1346
+ error && /* @__PURE__ */ jsx21("div", { className: "mt-2 text-sm text-failure-bg", children: error })
1286
1347
  ] }),
1287
- actionBar && /* @__PURE__ */ jsx19("div", { className: "mt-1", children: actionBar })
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 jsx20 } from "react/jsx-runtime";
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__ */ jsx20(
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__ */ jsx20(
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__ */ jsx20(
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 jsx21, jsxs as jsxs13 } from "react/jsx-runtime";
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__ */ jsx21(
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__ */ jsx21("img", { src: previewSrc, alt: name, className: "h-full w-full object-cover" })
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__ */ jsxs13(
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__ */ jsx21("div", { className: "bg-primary-bg flex size-7 shrink-0 items-center justify-center overflow-hidden rounded-md border", children: isImage && previewSrc ? /* @__PURE__ */ jsxs13(Avatar, { className: "size-7 rounded-none", children: [
1385
- /* @__PURE__ */ jsx21(AvatarImage, { src: previewSrc, alt: name, className: "object-cover" }),
1386
- /* @__PURE__ */ jsx21(AvatarFallback, { children: /* @__PURE__ */ jsx21(Icon, { name: "file", size: "1rem", className: "text-text-secondary" }) })
1387
- ] }) : /* @__PURE__ */ jsx21(Icon, { name: "file", size: "1rem", className: "text-text-secondary" }) }),
1388
- /* @__PURE__ */ jsx21("span", { className: "text-text-primary min-w-0 truncate text-sm", children: name }),
1389
- onRemove && /* @__PURE__ */ jsx21(
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__ */ jsx21(Icon, { name: "xmark" })
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 jsx22 } from "react/jsx-runtime";
1471
+ import { jsx as jsx24 } from "react/jsx-runtime";
1411
1472
  function AttachmentPickerButton({ className, ...props }) {
1412
- return /* @__PURE__ */ jsx22(
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__ */ jsx22(Icon, { name: "paperclip" })
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 React7 from "react";
1434
- import { jsx as jsx23 } from "react/jsx-runtime";
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 = React7.useRef(null);
1444
- React7.useEffect(() => {
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
- React7.useEffect(() => {
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__ */ jsx23(
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__ */ jsx23("div", { className: cn("flex flex-col gap-4 p-6", className), ...props, children });
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__ */ jsx23("div", { className: cn("flex flex-col gap-1.5", className), ...props });
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__ */ jsx23("h2", { className: cn("text-lg font-semibold leading-none tracking-tight", className), ...props });
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 jsx24, jsxs as jsxs14 } from "react/jsx-runtime";
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__ */ jsx24(Fragment4, { children });
1495
- return /* @__PURE__ */ jsxs14(Fragment4, { children: [
1496
- /* @__PURE__ */ jsx24(
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__ */ jsx24(
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__ */ jsxs14(DialogContent, { className: "relative p-2", children: [
1514
- /* @__PURE__ */ jsx24("span", { className: "absolute top-2 right-2 z-10 inline-flex", children: /* @__PURE__ */ jsx24(
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__ */ jsx24(Icon, { name: "xmark" })
1583
+ children: /* @__PURE__ */ jsx26(Icon, { name: "xmark" })
1523
1584
  }
1524
1585
  ) }),
1525
- /* @__PURE__ */ jsx24("div", { className: "bg-primary-bg relative mx-auto flex max-h-[80dvh] w-full items-center justify-center overflow-hidden", children: /* @__PURE__ */ jsx24(
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 jsx25, jsxs as jsxs15 } from "react/jsx-runtime";
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__ */ jsxs15(
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__ */ jsxs15("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: [
1552
- /* @__PURE__ */ jsx25(Icon, { name: "chevron-down", size: 13, className: "shrink-0 transition-transform group-open:rotate-180" }),
1553
- /* @__PURE__ */ jsx25(Icon, { name: "file", size: 16, className: "shrink-0" }),
1554
- /* @__PURE__ */ jsxs15("span", { className: "leading-none", children: [
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__ */ jsx25("div", { className: "flex flex-wrap items-center gap-y-1 px-3 py-2", children: files.map(({ name, path }) => {
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__ */ jsxs15(
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__ */ jsx25(Icon, { name: "file", size: 14, className: "shrink-0" }),
1569
- /* @__PURE__ */ jsx25("span", { className: "leading-none", children: name })
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__ */ jsxs15(
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__ */ jsx25(Icon, { name: "file", size: 14, className: "shrink-0 text-text-secondary" }),
1604
- /* @__PURE__ */ jsx25("span", { className: "leading-none", children: name }),
1605
- isDownloading ? /* @__PURE__ */ jsx25(Spinner, { size: 14, className: "shrink-0 text-primary-button-bg" }) : /* @__PURE__ */ jsx25(Icon, { name: "download", size: 14, className: "shrink-0 text-primary-button-bg" })
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 jsx26, jsxs as jsxs16 } from "react/jsx-runtime";
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__ */ jsxs16(
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__ */ jsx26(Icon, { name: "broom", size: "0.875rem" }),
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 jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
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__ */ jsx27(
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__ */ jsx27(Icon, { name: icon, size: "0.875em" })
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__ */ jsxs17(
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__ */ jsxs17("div", { className: "flex items-center justify-between gap-1 border-b border-border px-2 py-1", children: [
1740
- filename && /* @__PURE__ */ jsx27("span", { className: "truncate text-xs text-text-secondary", children: filename }),
1741
- /* @__PURE__ */ jsxs17("div", { className: "ml-auto flex items-center gap-0.5", children: [
1742
- /* @__PURE__ */ jsx27(
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__ */ jsx27(
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__ */ jsx27(ToolbarButton, { onClick: handleDownload, tooltip: "Download", icon: "download" }),
1760
- /* @__PURE__ */ jsx27(
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__ */ jsx27("div", { className: "flex-1 overflow-hidden", style: expanded ? void 0 : { height: editorHeight }, children: /* @__PURE__ */ jsx27(
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 jsx28, jsxs as jsxs18 } from "react/jsx-runtime";
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__ */ jsx28(
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__ */ jsx28(Icon, { name: "paperclip" })
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__ */ jsxs18(
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__ */ jsx28(Spinner, { size: 14 }),
1879
+ /* @__PURE__ */ jsx30(Spinner, { size: 14 }),
1819
1880
  "Cancel"
1820
1881
  ]
1821
1882
  }
1822
1883
  );
1823
1884
  }
1824
- return /* @__PURE__ */ jsx28(
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__ */ jsx28(Icon, { name: "arrow-up" })
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 jsx29, jsxs as jsxs19 } from "react/jsx-runtime";
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__ */ jsxs19(
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__ */ jsxs19("div", { className: "flex min-w-0 flex-wrap items-center justify-between gap-2 px-1", children: [
1870
- /* @__PURE__ */ jsxs19("div", { className: "flex min-w-0 max-w-full flex-wrap items-center gap-2", children: [
1871
- /* @__PURE__ */ jsx29(ComposerLeftSection2, { disabled, isRunning, onAttach }),
1872
- connectorStatusLabel && /* @__PURE__ */ jsx29("span", { className: "text-text-secondary max-w-[12rem] truncate text-xs", children: connectorStatusLabel })
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__ */ jsxs19("div", { className: "ml-auto flex min-w-0 shrink-0 flex-wrap items-center justify-end gap-2", children: [
1875
- modelLabel && /* @__PURE__ */ jsxs19("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: [
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__ */ jsx29("span", { className: "truncate", children: modelLabel })
1938
+ /* @__PURE__ */ jsx31("span", { className: "truncate", children: modelLabel })
1878
1939
  ] }),
1879
- /* @__PURE__ */ jsx29(ComposerRightSection2, { disabled, isRunning }),
1880
- /* @__PURE__ */ jsx29(
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 jsx30, jsxs as jsxs20 } from "react/jsx-runtime";
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__ */ jsxs20(
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__ */ jsx30("div", { className: "flex h-5 shrink-0 items-center justify-center", "aria-hidden": true, children: /* @__PURE__ */ jsx30("span", { className: "h-1 w-10 rounded-full bg-text-secondary/30" }) }),
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 jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
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__ */ jsxs21(Fragment5, { children: [
2041
- /* @__PURE__ */ jsx31("div", { className: "border-b border-border px-3 py-2", children: /* @__PURE__ */ jsx31("p", { className: "text-text-primary text-sm font-semibold", children: "Reasoning effort" }) }),
2042
- /* @__PURE__ */ jsx31(
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__ */ jsx31(
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__ */ jsx31("span", { className: "truncate font-medium", children: effort })
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__ */ jsxs21("div", { ref: containerRef, className: "relative", children: [
2081
- /* @__PURE__ */ jsxs21(
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__ */ jsx31("span", { className: "truncate", children: resolved }),
2101
- /* @__PURE__ */ jsx31(Icon, { name: "chevron-down", className: "size-3.5 shrink-0 opacity-60" })
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__ */ jsx31(BottomSheet, { open: true, onOpenChange: setOpen, "aria-label": "Select reasoning effort", children: content }) : /* @__PURE__ */ jsx31("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
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 jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
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__ */ jsx32("div", { className: "flex min-w-0 flex-wrap items-center gap-1.5", children: /* @__PURE__ */ jsx32(DraftCompositeSelector2, { disabled, isRunning, onAttach }) });
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__ */ jsxs22("div", { className: "flex min-w-0 items-center gap-1", children: [
2118
- /* @__PURE__ */ jsx32(DraftModelSelector2, { disabled, isRunning }),
2119
- /* @__PURE__ */ jsx32(DraftReasoningEffortSelector, { disabled, isRunning })
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 jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
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__ */ jsxs23(ToasterContext.Provider, { value, children: [
2248
+ return /* @__PURE__ */ jsxs25(ToasterContext.Provider, { value, children: [
2188
2249
  children,
2189
- /* @__PURE__ */ jsx33(ToastStack2, { children: toasts.map((toast) => /* @__PURE__ */ jsx33(
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 jsx34 } from "react/jsx-runtime";
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__ */ jsx34(
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__ */ jsx34(
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 jsx35, jsxs as jsxs24 } from "react/jsx-runtime";
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__ */ jsx35("div", { className: "flex flex-col gap-2 sm:flex-row", children: CAPABILITIES.map((capability) => {
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__ */ jsxs24(
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__ */ jsxs24("div", { className: "flex items-start justify-between gap-2", children: [
2414
- /* @__PURE__ */ jsx35("p", { className: "text-text-primary text-sm font-medium", children: capability.label }),
2415
- /* @__PURE__ */ jsx35(
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__ */ jsx35("p", { className: "text-text-secondary text-xs leading-snug", children: capability.description })
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__ */ jsx35("div", { className: cn("flex flex-col", divided && "overflow-hidden rounded-xl border border-border"), children: CAPABILITIES.map((capability, index) => {
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__ */ jsxs24(
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__ */ jsxs24("div", { className: "min-w-0 flex-1", children: [
2441
- /* @__PURE__ */ jsx35("p", { className: "text-text-primary text-sm font-medium", children: capability.label }),
2442
- /* @__PURE__ */ jsx35("p", { className: "text-text-secondary mt-0.5 text-xs leading-snug", children: capability.description })
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__ */ jsx35(
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 jsx36, jsxs as jsxs25 } from "react/jsx-runtime";
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__ */ jsxs25(
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__ */ jsx36("span", { className: "underline", children: "settings" }),
2484
- /* @__PURE__ */ jsx36(Icon, { name: "chevron-right", className: "size-3" })
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__ */ jsx36("p", { className: "text-text-secondary px-2 py-4 text-center text-sm", children: loading ? "Loading\u2026" : emptyLabel });
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 jsx37, jsxs as jsxs26 } from "react/jsx-runtime";
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__ */ jsx37(
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__ */ jsx37(Icon, { name: "check", className: "size-3" }) : null
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__ */ jsxs26(Fragment6, { children: [
2534
- /* @__PURE__ */ jsx37("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() }),
2535
- /* @__PURE__ */ jsxs26("span", { className: "min-w-0 flex-1", children: [
2536
- /* @__PURE__ */ jsx37("span", { className: "text-text-primary block truncate text-sm font-medium", children: title }),
2537
- description ? /* @__PURE__ */ jsx37("span", { className: "text-text-secondary line-clamp-1 text-xs", children: description }) : null
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__ */ jsxs26(
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__ */ jsx37("span", { className: "shrink-0", children: action }),
2557
- /* @__PURE__ */ jsx37(Checkbox, { checked })
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__ */ jsxs26(
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__ */ jsx37(Icon, { name: "lock", className: "text-text-secondary size-3" }) : /* @__PURE__ */ jsx37(Checkbox, { checked })
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__ */ jsx37(
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__ */ jsxs26("label", { className: "relative mx-3 my-2 block", children: [
2613
- /* @__PURE__ */ jsx37(
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__ */ jsx37(
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__ */ jsxs26("div", { className: "text-text-secondary px-3 pt-2 pb-1 text-[11px] font-medium tracking-wide uppercase", children: [
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__ */ jsxs26(Fragment6, { children: [
2812
- /* @__PURE__ */ jsx37("div", { className: "flex shrink-0 border-b border-border", children: TABS.map((t) => {
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__ */ jsxs26(
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__ */ jsx37(Icon, { name: t.icon, className: "size-3.5" }),
2889
+ /* @__PURE__ */ jsx39(Icon, { name: t.icon, className: "size-3.5" }),
2829
2890
  t.label,
2830
- count != null && count > 0 ? /* @__PURE__ */ jsx37("span", { className: "bg-secondary-bg rounded px-1 text-[10px]", children: count }) : null
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__ */ jsx37("div", { className: "min-h-0 flex-1 overflow-y-auto p-2", children: /* @__PURE__ */ jsx37(
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__ */ jsxs26(Fragment6, { children: [
2854
- /* @__PURE__ */ jsx37(
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__ */ jsxs26(
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__ */ jsx37(Icon, { name: "lock", className: "text-primary-button-bg size-3 shrink-0" }),
2869
- /* @__PURE__ */ jsx37("span", { className: "text-xs leading-none", children: skillsDisabledReason })
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__ */ jsx37("div", { className: "min-h-0 flex-1 overflow-y-auto px-1 pb-2", children: tab === "connectors" ? /* @__PURE__ */ jsxs26(Fragment6, { children: [
2874
- pinnedSelectedConnectors.length > 0 ? /* @__PURE__ */ jsxs26(Fragment6, { children: [
2875
- /* @__PURE__ */ jsx37(SectionHeading, { label: "Selected", count: pinnedSelectedConnectors.length }),
2876
- pinnedSelectedConnectors.map((c) => /* @__PURE__ */ jsx37(
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__ */ jsx37(ConnectorConnectButton, { connector: c, onConnected: refreshConnectors }) : void 0,
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__ */ jsxs26(Fragment6, { children: [
2889
- /* @__PURE__ */ jsx37(SectionHeading, { label: "Available", count: pinnedAvailableConnectors.length }),
2890
- pinnedAvailableConnectors.map((c) => /* @__PURE__ */ jsx37(
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__ */ jsx37(ConnectorConnectButton, { connector: c, onConnected: refreshConnectors }) : void 0,
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__ */ jsx37(
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__ */ jsxs26(Fragment6, { children: [
2912
- pinnedSelectedSkills.length > 0 ? /* @__PURE__ */ jsxs26(Fragment6, { children: [
2913
- /* @__PURE__ */ jsx37(SectionHeading, { label: "Selected", count: pinnedSelectedSkills.length }),
2914
- pinnedSelectedSkills.map((s) => /* @__PURE__ */ jsx37(
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__ */ jsxs26(Fragment6, { children: [
2927
- /* @__PURE__ */ jsx37(SectionHeading, { label: "Available", count: pinnedAvailableSkills.length }),
2928
- pinnedAvailableSkills.map((s) => /* @__PURE__ */ jsx37(
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__ */ jsx37(
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__ */ jsxs26("div", { ref: containerRef, className: "relative flex flex-wrap items-center gap-1.5", children: [
2953
- hasValidModel ? /* @__PURE__ */ jsx37(Tooltip, { content: toolsTooltip, className: "max-w-xs whitespace-pre-line text-left", side: "top", children: /* @__PURE__ */ jsxs26(
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__ */ jsx37(Icon, { name: "wrench", className: "size-3.5" }),
2976
- /* @__PURE__ */ jsx37("span", { children: "Tools" }),
2977
- /* @__PURE__ */ jsx37("span", { className: "bg-primary-button-bg/10 text-primary-button-bg rounded px-1.5 py-0.5 text-[10px] font-semibold", children: toolsCount })
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__ */ jsx37(Tooltip, { content: "Attach a file", children: /* @__PURE__ */ jsx37(
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__ */ jsx37(Icon, { name: "paperclip" })
3050
+ children: /* @__PURE__ */ jsx39(Icon, { name: "paperclip" })
2990
3051
  }
2991
3052
  ) }) : null,
2992
- open && hasValidModel ? isMobile || compactLayout ? /* @__PURE__ */ jsx37(BottomSheet, { id: menuId, open: true, onOpenChange: setOpenAndFlush, "aria-label": "Add to composer", children: content }) : /* @__PURE__ */ jsx37(
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 jsx38, jsxs as jsxs27 } from "react/jsx-runtime";
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__ */ jsx38(CatalogLogo, { src: logo, alt: "", className: cn("shrink-0 rounded object-contain", className), "aria-hidden": true });
3140
+ return /* @__PURE__ */ jsx40(CatalogLogo, { src: logo, alt: "", className: cn("shrink-0 rounded object-contain", className), "aria-hidden": true });
3080
3141
  }
3081
- return /* @__PURE__ */ jsx38(
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__ */ jsxs27(Fragment7, { children: [
3127
- /* @__PURE__ */ jsxs27("div", { className: "border-b border-border px-3 py-2", children: [
3128
- showHeading ? /* @__PURE__ */ jsx38("p", { className: "text-text-primary mb-2 text-sm font-semibold", children: "Select model" }) : null,
3129
- /* @__PURE__ */ jsxs27("label", { className: "relative block", children: [
3130
- /* @__PURE__ */ jsx38(
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__ */ jsx38(
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__ */ jsx38(
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__ */ jsx38(
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__ */ jsxs27(
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__ */ jsxs27(
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__ */ jsx38(ProviderMark, { logo: section.logo, label: section.name, className: "size-3.5 text-[9px]" }),
3181
- /* @__PURE__ */ jsx38("span", { className: "truncate", children: section.name })
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__ */ jsxs27(
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__ */ jsx38("span", { className: "truncate font-medium", children: displayModelLabel2(model.name) }),
3200
- active ? /* @__PURE__ */ jsx38(Icon, { name: "check", className: "ml-auto size-3.5" }) : null
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 jsx39, jsxs as jsxs28 } from "react/jsx-runtime";
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__ */ jsx39(
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__ */ jsxs28("div", { ref: containerRef, className: "relative", children: [
3292
- /* @__PURE__ */ jsxs28(
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__ */ jsx39(ProviderMark, { logo: selected?.provider.logo, label: account, className: "size-4 text-xs" }),
3309
- /* @__PURE__ */ jsx39("span", { className: "truncate", children: label }),
3310
- /* @__PURE__ */ jsx39(Icon, { name: "chevron-down", className: "size-3.5 shrink-0 opacity-60" })
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__ */ jsx39(BottomSheet, { open: true, onOpenChange: setOpen, "aria-label": "Select model", children: content }) : /* @__PURE__ */ jsx39("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
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 jsx40 } from "react/jsx-runtime";
3381
+ import { jsx as jsx42 } from "react/jsx-runtime";
3321
3382
  var HistoryLoader = forwardRef(
3322
- ({ className, isLoading = false, ...rest }, ref) => /* @__PURE__ */ jsx40(
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__ */ jsx40(Spinner, { size: 14 })
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 jsx41 } from "react/jsx-runtime";
3403
+ import { Fragment as Fragment8, jsx as jsx43 } from "react/jsx-runtime";
3343
3404
  function preloadMarkdownOpenUI() {
3344
- return import("./OpenUiFenceBlock-3EFPY4JW.js");
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__ */ jsx41(Fragment8, { children });
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__ */ jsx41(
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__ */ jsx41(OpenUiFenceBlock2, { content: code, isStreaming, darkTheme });
3455
+ return /* @__PURE__ */ jsx43(OpenUiFenceBlock2, { content: code, isStreaming, darkTheme });
3391
3456
  }
3392
3457
  if (language === "sandbox_artifacts") {
3393
- return /* @__PURE__ */ jsx41(
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__ */ jsx41(
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__ */ jsx41("code", { className: cn(className, "whitespace-pre-wrap break-words"), children: code })
3478
+ children: /* @__PURE__ */ jsx43("code", { className: cn(className, "whitespace-pre-wrap break-words"), children: code })
3414
3479
  }
3415
3480
  );
3416
3481
  }
3417
- return /* @__PURE__ */ jsx41(SyntaxHighlighter2, { code, language, darkTheme });
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__ */ jsx41(
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__ */ jsx41(ReactMarkdown, { remarkPlugins: REMARK_PLUGINS, components, children: content })
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 jsx42, jsxs as jsxs29 } from "react/jsx-runtime";
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__ */ jsxs29(
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__ */ jsx42(MessageTimestamp2, { createdAt, className: "mr-1" }),
3483
- /* @__PURE__ */ jsx42(IconButton, { "aria-label": "Copy", tooltip: "Copy", variant: "ghost", className: actionBtnClass, onClick: onCopy, children: /* @__PURE__ */ jsx42(Icon, { name: isCopied ? "check" : "clone", size: "0.875em" }) })
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 jsx43 } from "react/jsx-runtime";
3555
+ import { jsx as jsx45 } from "react/jsx-runtime";
3491
3556
  function MessageErrorBanner({ message, className }) {
3492
- return /* @__PURE__ */ jsx43(
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__ */ jsx43("span", { className: "aui-message-error-message line-clamp-2", children: message })
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 jsx44 } from "react/jsx-runtime";
3571
+ import { jsx as jsx46 } from "react/jsx-runtime";
3507
3572
  function MessageIndicator({ className }) {
3508
- return /* @__PURE__ */ jsx44(
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 jsx45 } from "react/jsx-runtime";
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__ */ jsx45(LightTooltip, { title: formatFullDate(date), size: "fit", children: /* @__PURE__ */ jsx45("span", { className: cn("text-xs font-medium cursor-pointer leading-normal shrink-0 text-text-secondary", className), children: formatTime(date) }) });
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 jsx46 } from "react/jsx-runtime";
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__ */ jsx46(
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__ */ jsx46("div", { ref: containerRef, className: cn("h-full w-full overflow-hidden", classNames.monaco?.editor) })
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 jsx47 } from "react/jsx-runtime";
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__ */ jsx47(
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 jsx48, jsxs as jsxs30 } from "react/jsx-runtime";
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__ */ jsx48(
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__ */ jsxs30(
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__ */ jsx48("div", { className: "rounded-t-md border-b border-primary-button-bg/30 bg-primary-button-bg/10", children: /* @__PURE__ */ jsxs30("div", { className: "flex w-full min-w-0 items-center gap-2 px-3 py-1.5", children: [
3841
- /* @__PURE__ */ jsx48("p", { className: "min-w-0 font-sans text-xs font-medium text-primary-button-bg", children: "sandbox" }),
3842
- /* @__PURE__ */ jsxs30(
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__ */ jsxs30(
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__ */ jsx48(Icon, { name: exitCode === 0 ? "circle-check" : "circle-xmark", size: 12 }),
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__ */ jsxs30(
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__ */ jsx48(
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__ */ jsx48(Icon, { name: "terminal", size: 12 })
3948
+ children: /* @__PURE__ */ jsx50(Icon, { name: "terminal", size: 12 })
3884
3949
  }
3885
3950
  ),
3886
- /* @__PURE__ */ jsx48(
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__ */ jsx48(Icon, { name: "code", size: 12 })
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__ */ jsx48("div", { className: "rounded-b-lg border border-t-0 border-border p-3", children: hasContent && /* @__PURE__ */ jsx48("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__ */ jsxs30(Fragment9, { children: [
3909
- argsJson && /* @__PURE__ */ jsxs30("div", { className: "my-1 border-l-4 border-primary-button-bg px-3", children: [
3910
- /* @__PURE__ */ jsx48("div", { className: "mb-1 font-sans text-xs font-medium leading-4", children: "Arguments" }),
3911
- /* @__PURE__ */ jsx48(JsonPane, { value: argsJson, className: "pl-2" })
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__ */ jsxs30("div", { className: "my-1 border-l-4 border-primary-button-bg/60 px-3", children: [
3914
- /* @__PURE__ */ jsx48("div", { className: "mb-1 mt-2 font-sans text-xs font-medium leading-4", children: "Result" }),
3915
- /* @__PURE__ */ jsx48(JsonPane, { value: resultJson, className: "pl-2" })
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__ */ jsxs30(Fragment9, { children: [
3918
- command && /* @__PURE__ */ jsxs30("div", { className: "my-1 break-all border-l-4 border-primary-button-bg px-3", children: [
3919
- /* @__PURE__ */ jsx48("div", { className: "mb-1 text-[12px] font-medium leading-4 text-text-secondary", children: "COMMAND" }),
3920
- /* @__PURE__ */ jsxs30("div", { children: [
3921
- /* @__PURE__ */ jsx48("span", { className: "text-primary-button-bg", children: "$" }),
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__ */ jsxs30(Fragment9, { children: [
3927
- /* @__PURE__ */ jsx48("div", { className: "mx-3 my-1 border-t border-border" }),
3928
- /* @__PURE__ */ jsxs30("div", { className: "my-1 break-all border-l-4 border-primary-button-bg/60 px-3", children: [
3929
- /* @__PURE__ */ jsx48("div", { className: "mb-1 text-[12px] font-medium leading-4 text-text-secondary", children: "OUTPUT" }),
3930
- /* @__PURE__ */ jsx48("div", { children: resultText })
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__ */ jsxs30(Fragment9, { children: [
3933
- /* @__PURE__ */ jsx48("div", { className: "mx-3 my-1 border-t border-border" }),
3934
- /* @__PURE__ */ jsxs30("div", { className: "my-1 border-l-4 border-primary-button-bg/60 px-3", children: [
3935
- /* @__PURE__ */ jsx48("div", { className: "mb-1 text-[12px] font-medium leading-4 text-text-secondary", children: "OUTPUT" }),
3936
- /* @__PURE__ */ jsx48(JsonPane, { value: resultJson, className: "pl-2" })
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__ */ jsx48(
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__ */ jsx48(
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 jsx49, jsxs as jsxs31 } from "react/jsx-runtime";
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__ */ jsxs31("div", { className: "mb-3", children: [
4024
- /* @__PURE__ */ jsxs31("div", { className: "mb-1.5 flex items-center justify-between", children: [
4025
- /* @__PURE__ */ jsx49("span", { className: "text-text-secondary text-xs font-semibold tracking-wide uppercase", children: label }),
4026
- /* @__PURE__ */ jsx49(
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__ */ jsx49(Icon, { name: "pencil", className: "size-3.5" })
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__ */ jsx49(
4114
+ return /* @__PURE__ */ jsx51(
4050
4115
  Tooltip,
4051
4116
  {
4052
4117
  className: "max-w-[17rem] whitespace-normal",
4053
- content: /* @__PURE__ */ jsxs31("div", { className: "text-left", children: [
4054
- /* @__PURE__ */ jsx49("p", { className: "mb-1 text-[11px] font-semibold tracking-wide uppercase", children: label }),
4055
- /* @__PURE__ */ jsx49("p", { className: "text-xs leading-snug", children: body })
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__ */ jsx49(
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__ */ jsx49(Icon, { name: "book-open", className: "size-3.5" })
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__ */ jsx49("p", { className: "text-text-secondary text-xs", children: emptyLabel });
4150
+ return /* @__PURE__ */ jsx51("p", { className: "text-text-secondary text-xs", children: emptyLabel });
4086
4151
  }
4087
- return /* @__PURE__ */ jsx49("div", { className: "flex flex-wrap gap-2", children: mounts.map((mount) => {
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__ */ jsxs31(
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__ */ jsx49(PreloadToggle, { on, disabled, onToggle: () => onTogglePreload(mount.id) }) : null,
4098
- /* @__PURE__ */ jsx49("span", { className: "text-text-primary text-sm", children: mount.name })
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__ */ jsx49(DraftCatalogProvider, { children: /* @__PURE__ */ jsx49(SaveAgentButtonContent, { disabled, className, children }) });
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__ */ jsxs31(Fragment10, { children: [
4221
- /* @__PURE__ */ jsxs31(
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__ */ jsx49(Icon, { name: "save", className: "size-3.5" }),
4294
+ /* @__PURE__ */ jsx51(Icon, { name: "save", className: "size-3.5" }),
4230
4295
  triggerLabel
4231
4296
  ]
4232
4297
  }
4233
4298
  ),
4234
- /* @__PURE__ */ jsx49(
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__ */ jsxs31("div", { className: "flex min-h-0 w-full flex-1 flex-col", children: [
4243
- /* @__PURE__ */ jsxs31("div", { className: "min-h-0 flex-1 overflow-y-auto px-5 py-3", children: [
4244
- /* @__PURE__ */ jsxs31("label", { className: "mb-3 block", children: [
4245
- /* @__PURE__ */ jsx49("span", { className: "mb-1.5 block text-sm font-medium", children: "Agent name" }),
4246
- /* @__PURE__ */ jsx49(
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__ */ jsxs31("label", { className: "mb-3 block", children: [
4258
- /* @__PURE__ */ jsx49("span", { className: "mb-1.5 block text-sm font-medium", children: "Instructions" }),
4259
- /* @__PURE__ */ jsx49(
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__ */ jsx49(ConfigSection, { label: "Model", onEdit: () => setEditor("model"), disabled: saving, children: draftSpec.model.name ? /* @__PURE__ */ jsxs31("span", { className: "border-border inline-flex items-center gap-2 rounded-lg border py-1 pr-2.5 pl-2", children: [
4272
- /* @__PURE__ */ jsx49(
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__ */ jsx49("span", { className: "text-text-primary text-sm", children: displayModelLabel2(draftSpec.model.name) })
4281
- ] }) : /* @__PURE__ */ jsx49("p", { className: "text-text-secondary text-xs", children: "No model selected." }) }),
4282
- /* @__PURE__ */ jsx49(ConfigSection, { label: "Connectors", onEdit: () => setEditor("mcp"), disabled: saving, children: /* @__PURE__ */ jsx49(
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__ */ jsx49(ConfigSection, { label: "Skills", onEdit: () => setEditor("skills"), disabled: saving, children: /* @__PURE__ */ jsx49(MountChips, { mounts: skillMounts, disabled: saving, emptyLabel: "No skills added." }) }),
4292
- /* @__PURE__ */ jsxs31("div", { children: [
4293
- /* @__PURE__ */ jsx49("p", { className: "text-text-secondary mb-1.5 text-xs font-semibold tracking-wide uppercase", children: "Capabilities" }),
4294
- /* @__PURE__ */ jsx49(
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__ */ jsx49(
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__ */ jsxs31("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: [
4318
- /* @__PURE__ */ jsx49(
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__ */ jsx49(
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__ */ jsx49(
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__ */ jsxs31("div", { className: "flex h-[min(28rem,calc(100dvh-10rem))] w-[min(28rem,calc(100vw-2rem))] flex-col", children: [
4358
- editor === "model" ? /* @__PURE__ */ jsxs31(Fragment10, { children: [
4359
- catalog.error ? /* @__PURE__ */ jsx49("p", { role: "alert", className: "text-failure-bg px-3 pt-3 text-sm", children: catalog.error }) : null,
4360
- /* @__PURE__ */ jsx49(
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__ */ jsxs31(Fragment10, { children: [
4383
- catalog.error ? /* @__PURE__ */ jsx49("p", { role: "alert", className: "text-failure-bg px-3 pt-3 text-sm", children: catalog.error }) : null,
4384
- /* @__PURE__ */ jsx49("div", { className: "border-b border-border p-3", children: /* @__PURE__ */ jsxs31("label", { className: "relative block", children: [
4385
- /* @__PURE__ */ jsx49(
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__ */ jsx49(
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__ */ jsx49("div", { className: "min-h-0 flex-1 overflow-y-auto p-2", children: editor === "mcp" ? filteredConnectors.map((connector) => {
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__ */ jsx49(
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__ */ jsx49(ConnectorConnectButton, { connector, onConnected: catalog.refreshConnectors }) : void 0,
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__ */ jsx49(
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__ */ jsx49("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__ */ jsx49(
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 jsx50 } from "react/jsx-runtime";
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__ */ jsx50("span", { ref, className: cn("absolute -top-14 z-10 inline-flex self-center"), children: /* @__PURE__ */ jsx50(
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__ */ jsx50(Icon, { name: "arrow-down" })
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 jsx51, jsxs as jsxs32 } from "react/jsx-runtime";
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__ */ jsxs32(
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__ */ jsx51("p", { className: "text-text-secondary max-w-sm text-center text-sm", children: "Select an agent to start chatting" }),
4523
- /* @__PURE__ */ jsx51(AgentsLibraryButton2, { className: "w-56 max-w-full" })
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 jsx52, jsxs as jsxs33 } from "react/jsx-runtime";
4600
+ import { jsx as jsx54, jsxs as jsxs35 } from "react/jsx-runtime";
4536
4601
  function MessageListSkeleton({ className }) {
4537
- return /* @__PURE__ */ jsxs33(
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__ */ jsx52("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx52(Skeleton, { className: "h-10 w-[min(85%,20rem)] rounded-xl" }) }),
4546
- /* @__PURE__ */ jsxs33("div", { className: "flex flex-col gap-2 px-2", children: [
4547
- /* @__PURE__ */ jsx52(Skeleton, { className: "h-4 w-full max-w-md" }),
4548
- /* @__PURE__ */ jsx52(Skeleton, { className: "h-4 w-full max-w-sm" }),
4549
- /* @__PURE__ */ jsx52(Skeleton, { className: "h-4 w-2/3 max-w-xs" })
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 jsx53, jsxs as jsxs34 } from "react/jsx-runtime";
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__ */ jsx53(Markdown2, { content: instruction, className: "flex flex-col font-sans text-sm text-text-secondary" }) : null;
4574
- return /* @__PURE__ */ jsx53(
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__ */ jsxs34(
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__ */ jsxs34("div", { className: "mb-3 flex flex-col gap-2 rounded-md border border-border p-2", children: [
4593
- /* @__PURE__ */ jsx53("h4", { className: "text-sm font-semibold text-text-primary", children: "Instructions" }),
4594
- /* @__PURE__ */ jsx53(
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__ */ jsx53(
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 jsx54, jsxs as jsxs35 } from "react/jsx-runtime";
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__ */ jsxs35(
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__ */ jsx54(
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__ */ jsx54(Icon, { name: copied ? "check" : "copy", size: "0.875em" })
5729
+ children: /* @__PURE__ */ jsx56(Icon, { name: copied ? "check" : "copy", size: "0.875em" })
5665
5730
  }
5666
5731
  ),
5667
- /* @__PURE__ */ jsx54(
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__ */ jsx54(
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__ */ jsx54(
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 jsx55, jsxs as jsxs36 } from "react/jsx-runtime";
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__ */ jsx55(
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__ */ jsxs36(Fragment11, { children: [
5722
- /* @__PURE__ */ jsx55(Icon, { name: "square-pen" }),
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__ */ jsx55("div", { className: cn("flex flex-col gap-1", className), role: "status", "aria-label": "Loading threads", children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ jsx55("div", { className: "flex h-8 items-center px-2.5", children: /* @__PURE__ */ jsx55(Skeleton, { className: "h-3.5 w-full" }) }, i)) });
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__ */ jsx55(
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__ */ jsxs36("div", { className: cn("font-sans-flex flex h-full min-h-0 flex-1 flex-col overflow-hidden", className), children: [
5742
- /* @__PURE__ */ jsx55("div", { className: "shrink-0 border-b border-border px-2 py-2", children: header }),
5743
- /* @__PURE__ */ jsx55("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden p-2", children })
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 jsx56, jsxs as jsxs37 } from "react/jsx-runtime";
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__ */ jsxs37(
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__ */ jsx56(
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__ */ jsxs37("span", { className: "min-w-0 flex-1", children: [
5842
- /* @__PURE__ */ jsx56("span", { className: "block truncate text-sm font-medium text-text-primary", children: title }),
5843
- agentName != null ? /* @__PURE__ */ jsxs37("span", { className: "mt-0.5 flex min-w-0 items-center gap-1 text-xs text-text-secondary", children: [
5844
- /* @__PURE__ */ jsx56(Icon, { name: "robot", className: "size-3 shrink-0" }),
5845
- /* @__PURE__ */ jsx56("span", { className: "truncate", children: agentName })
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__ */ jsxs37("div", { className: "relative mr-1 flex size-7 shrink-0 items-center justify-center", children: [
5851
- relative != null ? /* @__PURE__ */ jsx56(
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__ */ jsx56(
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 jsx57 } from "react/jsx-runtime";
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__ */ jsx57(
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__ */ jsx57(
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__ */ jsx57(
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__ */ jsx57(
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__ */ jsx57(
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 jsx58, jsxs as jsxs38 } from "react/jsx-runtime";
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__ */ jsxs38(
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__ */ jsx58(
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__ */ jsxs38("div", { className: "min-w-0 flex-1", children: [
5991
- /* @__PURE__ */ jsxs38("div", { className: "flex items-start justify-between gap-2", children: [
5992
- /* @__PURE__ */ jsx58(
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__ */ jsxs38("div", { className: "flex shrink-0 items-center gap-1", children: [
6003
- variant === "error" ? /* @__PURE__ */ jsx58(
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__ */ jsx58(Icon, { name: copied ? "check" : "clone" })
6076
+ children: /* @__PURE__ */ jsx60(Icon, { name: copied ? "check" : "clone" })
6012
6077
  }
6013
6078
  ) : null,
6014
- /* @__PURE__ */ jsx58(
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__ */ jsx58(Icon, { name: "xmark" })
6087
+ children: /* @__PURE__ */ jsx60(Icon, { name: "xmark" })
6023
6088
  }
6024
6089
  )
6025
6090
  ] })
6026
6091
  ] }),
6027
- description ? /* @__PURE__ */ jsx58("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
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__ */ jsx58(
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 jsx59, jsxs as jsxs39 } from "react/jsx-runtime";
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__ */ jsxs39(
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__ */ jsxs39("div", { className: "flex gap-2", children: [
6099
- /* @__PURE__ */ jsxs39("div", { className: cn("flex shrink-0 flex-col items-center", !showLineBelow && "pb-1"), children: [
6100
- /* @__PURE__ */ jsx59("div", { className: "min-h-[0.75rem] w-px flex-1 bg-border" }),
6101
- /* @__PURE__ */ jsx59(StepIconBox, { icon: "wrench", variant: "muted", iconSize: "0.875em", className: "my-1" }),
6102
- showLineBelow && /* @__PURE__ */ jsx59("div", { className: "min-h-[0.75rem] w-px flex-1 bg-border" })
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__ */ jsxs39("div", { className: "mt-2 flex flex-1 items-center justify-between", children: [
6105
- /* @__PURE__ */ jsxs39("div", { className: "flex w-full items-center justify-between gap-2", children: [
6106
- /* @__PURE__ */ jsxs39("div", { className: "flex items-center gap-2", children: [
6107
- /* @__PURE__ */ jsxs39("span", { className: "inline-flex flex-wrap items-center gap-1 font-sans text-xs font-medium leading-4 text-text-primary", children: [
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__ */ jsx59("span", { className: "rounded bg-secondary-bg px-1.5 py-0.5 text-xs text-text-secondary", children: toolName })
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__ */ jsx59(
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__ */ jsx59(
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__ */ jsxs39("div", { className: "flex gap-2", children: [
6132
- approveOptions.map((option) => /* @__PURE__ */ jsxs39(
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__ */ jsx59(Icon, { name: "check", size: "0.75em", className: "mr-1" }),
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__ */ jsx59(
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__ */ jsxs39("div", { className: "flex flex-col gap-1 pl-8 pt-3", children: [
6167
- (selectedDenyOption.confirm?.title || selectedDenyOption.confirm?.description) && /* @__PURE__ */ jsxs39("div", { className: "flex flex-col gap-0.5", children: [
6168
- selectedDenyOption.confirm.title && /* @__PURE__ */ jsx59("span", { className: "text-xs font-medium text-text-primary", children: selectedDenyOption.confirm.title }),
6169
- selectedDenyOption.confirm.description && /* @__PURE__ */ jsx59("span", { className: "text-xs text-text-secondary", children: selectedDenyOption.confirm.description })
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__ */ jsxs39("div", { className: "flex flex-wrap items-center gap-1", children: [
6172
- /* @__PURE__ */ jsx59("span", { className: "text-xs text-text-secondary", children: "Grants:" }),
6173
- selectedDenyOption.grants.map((grant) => /* @__PURE__ */ jsx59("span", { className: "rounded bg-secondary-bg px-1.5 py-0.5 text-xs text-text-secondary", children: grant }, grant))
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__ */ jsxs39("div", { className: "flex items-center gap-2", children: [
6176
- /* @__PURE__ */ jsx59(
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__ */ jsx59(Button, { size: "sm", disabled: interactionsLocked, onClick: onReasonSubmit, children: "Submit" })
6257
+ /* @__PURE__ */ jsx61(Button, { size: "sm", disabled: interactionsLocked, onClick: onReasonSubmit, children: "Submit" })
6193
6258
  ] }),
6194
- showReasonError && /* @__PURE__ */ jsx59("span", { id: "aui-denial-reason-error", className: "text-xs text-failure-bg", role: "alert", children: "Reason is required" })
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__ */ jsx59("div", { className: "pl-8 pt-2", children: /* @__PURE__ */ jsxs39("span", { className: "text-xs text-text-secondary", children: [
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 jsx60, jsxs as jsxs40 } from "react/jsx-runtime";
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__ */ jsx60(
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__ */ jsx60(
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__ */ jsxs40(Fragment12, { children: [
6335
+ persistentChildren: /* @__PURE__ */ jsxs42(Fragment12, { children: [
6271
6336
  approvalSlot,
6272
- expanded && showResponseLine && responseSlot && /* @__PURE__ */ jsx60("div", { "data-testid": dataTestPrefix ? `${dataTestPrefix}-response` : void 0, children: responseSlot })
6337
+ expanded && showResponseLine && responseSlot && /* @__PURE__ */ jsx62("div", { "data-testid": dataTestPrefix ? `${dataTestPrefix}-response` : void 0, children: responseSlot })
6273
6338
  ] }),
6274
- children: requestSlot && /* @__PURE__ */ jsx60("div", { className: "py-2 pt-0", "data-testid": dataTestPrefix ? `${dataTestPrefix}-request` : void 0, children: requestSlot })
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 jsx61, jsxs as jsxs41 } from "react/jsx-runtime";
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__ */ jsx61(
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__ */ jsxs41(
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__ */ jsxs41("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: [
6357
- /* @__PURE__ */ jsx61("div", { className: "font-sans text-xs font-medium text-primary-button-bg", children: title }),
6358
- /* @__PURE__ */ jsxs41("div", { className: "flex items-center gap-1", children: [
6359
- /* @__PURE__ */ jsx61(
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__ */ jsx61(Icon, { name: copied ? "check" : "clone", size: 14 })
6432
+ children: /* @__PURE__ */ jsx63(Icon, { name: copied ? "check" : "clone", size: 14 })
6368
6433
  }
6369
6434
  ),
6370
- /* @__PURE__ */ jsx61(
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__ */ jsx61(Icon, { name: "expand-alt", size: 14 })
6442
+ children: /* @__PURE__ */ jsx63(Icon, { name: "expand-alt", size: 14 })
6378
6443
  }
6379
6444
  )
6380
6445
  ] })
6381
6446
  ] }),
6382
- /* @__PURE__ */ jsx61(
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__ */ jsx61(
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__ */ jsx61(
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__ */ jsx61(Markdown2, { content, className: "text-xs text-text-secondary" })
6470
+ children: /* @__PURE__ */ jsx63(Markdown2, { content, className: "text-xs text-text-secondary" })
6406
6471
  }
6407
6472
  )
6408
6473
  }
6409
6474
  ),
6410
- fullscreen && /* @__PURE__ */ jsx61(Dialog, { open: true, onOpenChange: (open) => onFullscreenChange?.(open), children: /* @__PURE__ */ jsxs41(DialogContent, { className: "flex h-[80vh] max-w-4xl flex-col", children: [
6411
- /* @__PURE__ */ jsxs41(DialogHeader, { className: "flex flex-row items-center justify-between gap-2", children: [
6412
- /* @__PURE__ */ jsx61(DialogTitle, { children: title }),
6413
- /* @__PURE__ */ jsx61(IconButton, { variant: "ghost", onClick: () => onFullscreenChange?.(false), "aria-label": "Minimize", children: /* @__PURE__ */ jsx61(Icon, { name: "compress", size: "0.875em" }) })
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__ */ jsx61("div", { className: "min-h-0 flex-1", children: /* @__PURE__ */ jsx61(JsonEditor, { content, height: "100%" }) })
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 jsx62, jsxs as jsxs42 } from "react/jsx-runtime";
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__ */ jsxs42(
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__ */ jsx62(
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__ */ jsxs42("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: [
6459
- active && /* @__PURE__ */ jsx62(Icon, { name: "loader", className: "size-3 shrink-0 animate-spin [animation-duration:0.6s]" }),
6460
- /* @__PURE__ */ jsx62("span", { className: "text-xs font-medium", children: label }),
6461
- /* @__PURE__ */ jsx62(
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__ */ jsx62(AccordionDetails2, { sx: { padding: 0 }, children: /* @__PURE__ */ jsx62("div", { className: "mt-1 flex flex-col gap-2 text-text-primary", children }) })
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 jsx63, jsxs as jsxs43 } from "react/jsx-runtime";
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__ */ jsxs43("div", { className: cn("aui-user-action-bar-root animate-in fade-in flex items-center gap-1 duration-200", className), children: [
6494
- /* @__PURE__ */ jsx63(MessageTimestamp2, { createdAt, className: "mr-1" }),
6495
- /* @__PURE__ */ jsx63(
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__ */ jsx63(Icon, { name: "rotate-right", size: "0.875em" })
6568
+ children: /* @__PURE__ */ jsx65(Icon, { name: "rotate-right", size: "0.875em" })
6504
6569
  }
6505
6570
  ),
6506
- /* @__PURE__ */ jsx63(
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__ */ jsx63(Icon, { name: "pencil", size: "0.875em" })
6580
+ children: /* @__PURE__ */ jsx65(Icon, { name: "pencil", size: "0.875em" })
6516
6581
  }
6517
6582
  ),
6518
- /* @__PURE__ */ jsx63(IconButton, { "aria-label": "Copy", tooltip: "Copy", variant: "ghost", className: actionBtnClass2, onClick: onCopy, children: /* @__PURE__ */ jsx63(Icon, { name: isCopied ? "check" : "clone", size: "0.875em" }) })
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 jsx64, jsxs as jsxs44 } from "react/jsx-runtime";
6588
+ import { jsx as jsx66, jsxs as jsxs46 } from "react/jsx-runtime";
6524
6589
  function UserMessageBubble({ text, attachments, editAction, className }) {
6525
- return /* @__PURE__ */ jsxs44(
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__ */ jsx64(
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__ */ jsx64("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 })
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 jsx65, jsxs as jsxs45 } from "react/jsx-runtime";
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__ */ jsxs45(
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__ */ jsxs45("div", { className: "flex items-center gap-2 text-sm text-text-secondary", children: [
6561
- /* @__PURE__ */ jsx65("span", { className: "font-medium text-text-primary", children: "User" }),
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__ */ jsx65("div", { className: "flex flex-wrap gap-1", children: attachments }),
6565
- /* @__PURE__ */ jsx65("div", { className: "w-full", children: input }),
6566
- /* @__PURE__ */ jsx65("div", { children: footer })
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 jsx66, jsxs as jsxs46 } from "react/jsx-runtime";
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__ */ jsx66(Icon, { name: "welcome-sparkle", className: "size-5 fill-current text-primary-button-bg" }) : /* @__PURE__ */ jsx66(BrandLogo2, { className: "size-10" });
6579
- return /* @__PURE__ */ jsxs46(
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__ */ jsx66(
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__ */ jsx66(
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__ */ jsx66(
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 jsx67 } from "react/jsx-runtime";
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__ */ jsx67(SlotsProviderContents, { slots: resolved, inheritedTheme, theme, children });
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__ */ jsx67(ThemeProvider, { theme, children: slotsTree });
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__ */ jsx67(ThemeModeContext.Provider, { value: resolvedTheme, children: /* @__PURE__ */ jsx67(SlotsContext.Provider, { value: slots, children }) });
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-XRTTKGKN.js.map
6891
+ //# sourceMappingURL=chunk-OSV3HI5M.js.map