inspect-ai 0.3.99__py3-none-any.whl → 0.3.101__py3-none-any.whl

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 (138) hide show
  1. inspect_ai/_cli/eval.py +2 -1
  2. inspect_ai/_display/core/config.py +11 -5
  3. inspect_ai/_display/core/panel.py +66 -2
  4. inspect_ai/_display/core/textual.py +5 -2
  5. inspect_ai/_display/plain/display.py +1 -0
  6. inspect_ai/_display/rich/display.py +2 -2
  7. inspect_ai/_display/textual/widgets/transcript.py +37 -9
  8. inspect_ai/_eval/eval.py +13 -1
  9. inspect_ai/_eval/evalset.py +3 -2
  10. inspect_ai/_eval/run.py +2 -0
  11. inspect_ai/_eval/score.py +2 -4
  12. inspect_ai/_eval/task/log.py +3 -1
  13. inspect_ai/_eval/task/run.py +59 -81
  14. inspect_ai/_util/content.py +11 -6
  15. inspect_ai/_util/interrupt.py +2 -2
  16. inspect_ai/_util/text.py +7 -0
  17. inspect_ai/_util/working.py +8 -37
  18. inspect_ai/_view/__init__.py +0 -0
  19. inspect_ai/_view/schema.py +2 -1
  20. inspect_ai/_view/www/CLAUDE.md +15 -0
  21. inspect_ai/_view/www/dist/assets/index.css +307 -171
  22. inspect_ai/_view/www/dist/assets/index.js +24733 -21641
  23. inspect_ai/_view/www/log-schema.json +77 -3
  24. inspect_ai/_view/www/package.json +9 -5
  25. inspect_ai/_view/www/src/@types/log.d.ts +9 -0
  26. inspect_ai/_view/www/src/app/App.tsx +1 -15
  27. inspect_ai/_view/www/src/app/appearance/icons.ts +4 -1
  28. inspect_ai/_view/www/src/app/content/MetaDataGrid.tsx +24 -6
  29. inspect_ai/_view/www/src/app/content/MetadataGrid.module.css +0 -5
  30. inspect_ai/_view/www/src/app/content/RenderedContent.tsx +220 -205
  31. inspect_ai/_view/www/src/app/log-view/LogViewContainer.tsx +2 -1
  32. inspect_ai/_view/www/src/app/log-view/tabs/SamplesTab.tsx +5 -0
  33. inspect_ai/_view/www/src/app/log-view/tabs/grouping.ts +4 -4
  34. inspect_ai/_view/www/src/app/routing/navigationHooks.ts +22 -25
  35. inspect_ai/_view/www/src/app/routing/url.ts +84 -4
  36. inspect_ai/_view/www/src/app/samples/InlineSampleDisplay.module.css +0 -5
  37. inspect_ai/_view/www/src/app/samples/SampleDialog.module.css +1 -1
  38. inspect_ai/_view/www/src/app/samples/SampleDisplay.module.css +7 -0
  39. inspect_ai/_view/www/src/app/samples/SampleDisplay.tsx +24 -17
  40. inspect_ai/_view/www/src/app/samples/SampleSummaryView.module.css +1 -2
  41. inspect_ai/_view/www/src/app/samples/chat/ChatMessage.tsx +8 -6
  42. inspect_ai/_view/www/src/app/samples/chat/ChatMessageRow.tsx +0 -4
  43. inspect_ai/_view/www/src/app/samples/chat/ChatViewVirtualList.tsx +3 -2
  44. inspect_ai/_view/www/src/app/samples/chat/MessageContent.tsx +2 -0
  45. inspect_ai/_view/www/src/app/samples/chat/MessageContents.tsx +2 -0
  46. inspect_ai/_view/www/src/app/samples/chat/messages.ts +1 -0
  47. inspect_ai/_view/www/src/app/samples/chat/tools/ToolCallView.tsx +1 -0
  48. inspect_ai/_view/www/src/app/samples/list/SampleList.tsx +17 -5
  49. inspect_ai/_view/www/src/app/samples/list/SampleRow.tsx +1 -1
  50. inspect_ai/_view/www/src/app/samples/transcript/ErrorEventView.tsx +1 -2
  51. inspect_ai/_view/www/src/app/samples/transcript/InfoEventView.tsx +1 -1
  52. inspect_ai/_view/www/src/app/samples/transcript/InputEventView.tsx +1 -2
  53. inspect_ai/_view/www/src/app/samples/transcript/ModelEventView.module.css +1 -1
  54. inspect_ai/_view/www/src/app/samples/transcript/ModelEventView.tsx +1 -1
  55. inspect_ai/_view/www/src/app/samples/transcript/SampleInitEventView.tsx +1 -1
  56. inspect_ai/_view/www/src/app/samples/transcript/SampleLimitEventView.tsx +3 -2
  57. inspect_ai/_view/www/src/app/samples/transcript/SandboxEventView.tsx +4 -5
  58. inspect_ai/_view/www/src/app/samples/transcript/ScoreEventView.tsx +1 -1
  59. inspect_ai/_view/www/src/app/samples/transcript/SpanEventView.tsx +1 -2
  60. inspect_ai/_view/www/src/app/samples/transcript/StepEventView.tsx +1 -3
  61. inspect_ai/_view/www/src/app/samples/transcript/SubtaskEventView.tsx +1 -2
  62. inspect_ai/_view/www/src/app/samples/transcript/ToolEventView.tsx +3 -4
  63. inspect_ai/_view/www/src/app/samples/transcript/TranscriptPanel.module.css +42 -0
  64. inspect_ai/_view/www/src/app/samples/transcript/TranscriptPanel.tsx +77 -0
  65. inspect_ai/_view/www/src/app/samples/transcript/TranscriptVirtualList.tsx +27 -71
  66. inspect_ai/_view/www/src/app/samples/transcript/TranscriptVirtualListComponent.module.css +13 -3
  67. inspect_ai/_view/www/src/app/samples/transcript/TranscriptVirtualListComponent.tsx +27 -2
  68. inspect_ai/_view/www/src/app/samples/transcript/event/EventPanel.module.css +1 -0
  69. inspect_ai/_view/www/src/app/samples/transcript/event/EventPanel.tsx +21 -22
  70. inspect_ai/_view/www/src/app/samples/transcript/outline/OutlineRow.module.css +45 -0
  71. inspect_ai/_view/www/src/app/samples/transcript/outline/OutlineRow.tsx +223 -0
  72. inspect_ai/_view/www/src/app/samples/transcript/outline/TranscriptOutline.module.css +10 -0
  73. inspect_ai/_view/www/src/app/samples/transcript/outline/TranscriptOutline.tsx +258 -0
  74. inspect_ai/_view/www/src/app/samples/transcript/outline/tree-visitors.ts +187 -0
  75. inspect_ai/_view/www/src/app/samples/transcript/state/StateEventRenderers.tsx +8 -1
  76. inspect_ai/_view/www/src/app/samples/transcript/state/StateEventView.tsx +3 -4
  77. inspect_ai/_view/www/src/app/samples/transcript/transform/hooks.ts +78 -0
  78. inspect_ai/_view/www/src/app/samples/transcript/transform/treeify.ts +340 -135
  79. inspect_ai/_view/www/src/app/samples/transcript/transform/utils.ts +3 -0
  80. inspect_ai/_view/www/src/app/samples/transcript/types.ts +2 -0
  81. inspect_ai/_view/www/src/app/types.ts +5 -1
  82. inspect_ai/_view/www/src/client/api/api-browser.ts +2 -2
  83. inspect_ai/_view/www/src/components/LiveVirtualList.tsx +6 -1
  84. inspect_ai/_view/www/src/components/MarkdownDiv.tsx +1 -1
  85. inspect_ai/_view/www/src/components/PopOver.tsx +422 -0
  86. inspect_ai/_view/www/src/components/PulsingDots.module.css +9 -9
  87. inspect_ai/_view/www/src/components/PulsingDots.tsx +4 -1
  88. inspect_ai/_view/www/src/components/StickyScroll.tsx +183 -0
  89. inspect_ai/_view/www/src/components/TabSet.tsx +4 -0
  90. inspect_ai/_view/www/src/state/hooks.ts +52 -2
  91. inspect_ai/_view/www/src/state/logSlice.ts +4 -3
  92. inspect_ai/_view/www/src/state/samplePolling.ts +8 -0
  93. inspect_ai/_view/www/src/state/sampleSlice.ts +53 -9
  94. inspect_ai/_view/www/src/state/scrolling.ts +152 -0
  95. inspect_ai/_view/www/src/utils/attachments.ts +7 -0
  96. inspect_ai/_view/www/src/utils/python.ts +18 -0
  97. inspect_ai/_view/www/yarn.lock +290 -33
  98. inspect_ai/agent/_react.py +12 -7
  99. inspect_ai/agent/_run.py +2 -3
  100. inspect_ai/analysis/beta/__init__.py +2 -0
  101. inspect_ai/analysis/beta/_dataframe/samples/table.py +19 -18
  102. inspect_ai/dataset/_sources/csv.py +2 -6
  103. inspect_ai/dataset/_sources/hf.py +2 -6
  104. inspect_ai/dataset/_sources/json.py +2 -6
  105. inspect_ai/dataset/_util.py +23 -0
  106. inspect_ai/log/_log.py +1 -1
  107. inspect_ai/log/_recorders/eval.py +4 -3
  108. inspect_ai/log/_recorders/file.py +2 -9
  109. inspect_ai/log/_recorders/json.py +1 -0
  110. inspect_ai/log/_recorders/recorder.py +1 -0
  111. inspect_ai/log/_transcript.py +1 -1
  112. inspect_ai/model/_call_tools.py +6 -2
  113. inspect_ai/model/_openai.py +1 -1
  114. inspect_ai/model/_openai_responses.py +85 -41
  115. inspect_ai/model/_openai_web_search.py +38 -0
  116. inspect_ai/model/_providers/azureai.py +72 -3
  117. inspect_ai/model/_providers/openai.py +4 -1
  118. inspect_ai/model/_providers/openai_responses.py +5 -1
  119. inspect_ai/scorer/_metric.py +1 -2
  120. inspect_ai/scorer/_reducer/reducer.py +1 -1
  121. inspect_ai/solver/_task_state.py +2 -2
  122. inspect_ai/tool/_tool.py +6 -2
  123. inspect_ai/tool/_tool_def.py +27 -4
  124. inspect_ai/tool/_tool_info.py +2 -0
  125. inspect_ai/tool/_tools/_web_search/_google.py +43 -15
  126. inspect_ai/tool/_tools/_web_search/_tavily.py +46 -13
  127. inspect_ai/tool/_tools/_web_search/_web_search.py +214 -45
  128. inspect_ai/util/__init__.py +4 -0
  129. inspect_ai/util/_json.py +3 -0
  130. inspect_ai/util/_limit.py +230 -20
  131. inspect_ai/util/_sandbox/docker/compose.py +20 -11
  132. inspect_ai/util/_span.py +1 -1
  133. {inspect_ai-0.3.99.dist-info → inspect_ai-0.3.101.dist-info}/METADATA +3 -3
  134. {inspect_ai-0.3.99.dist-info → inspect_ai-0.3.101.dist-info}/RECORD +138 -124
  135. {inspect_ai-0.3.99.dist-info → inspect_ai-0.3.101.dist-info}/WHEEL +1 -1
  136. {inspect_ai-0.3.99.dist-info → inspect_ai-0.3.101.dist-info}/entry_points.txt +0 -0
  137. {inspect_ai-0.3.99.dist-info → inspect_ai-0.3.101.dist-info}/licenses/LICENSE +0 -0
  138. {inspect_ai-0.3.99.dist-info → inspect_ai-0.3.101.dist-info}/top_level.txt +0 -0
@@ -915,6 +915,11 @@
915
915
  dependencies:
916
916
  regenerator-runtime "^0.14.0"
917
917
 
918
+ "@babel/runtime@^7.27.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7":
919
+ version "7.27.1"
920
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.1.tgz#9fce313d12c9a77507f264de74626e87fd0dc541"
921
+ integrity sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==
922
+
918
923
  "@babel/template@^7.25.9", "@babel/template@^7.26.9", "@babel/template@^7.27.0", "@babel/template@^7.3.3":
919
924
  version "7.27.0"
920
925
  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.0.tgz#b253e5406cc1df1c57dcd18f11760c2dbf40c0b4"
@@ -1021,6 +1026,58 @@
1021
1026
  resolved "https://registry.yarnpkg.com/@dmsnell/diff-match-patch/-/diff-match-patch-1.1.0.tgz#5bac00243fa2583fa970d9865609f632dcd90e32"
1022
1027
  integrity sha512-yejLPmM5pjsGvxS9gXablUSbInW7H976c/FJ4iQxWIm7/38xBySRemTPDe34lhg1gVLbJntX0+sH0jYfU+PN9A==
1023
1028
 
1029
+ "@emotion/cache@^11.13.5":
1030
+ version "11.14.0"
1031
+ resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.14.0.tgz#ee44b26986eeb93c8be82bb92f1f7a9b21b2ed76"
1032
+ integrity sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==
1033
+ dependencies:
1034
+ "@emotion/memoize" "^0.9.0"
1035
+ "@emotion/sheet" "^1.4.0"
1036
+ "@emotion/utils" "^1.4.2"
1037
+ "@emotion/weak-memoize" "^0.4.0"
1038
+ stylis "4.2.0"
1039
+
1040
+ "@emotion/hash@^0.9.2":
1041
+ version "0.9.2"
1042
+ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.2.tgz#ff9221b9f58b4dfe61e619a7788734bd63f6898b"
1043
+ integrity sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==
1044
+
1045
+ "@emotion/memoize@^0.9.0":
1046
+ version "0.9.0"
1047
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.9.0.tgz#745969d649977776b43fc7648c556aaa462b4102"
1048
+ integrity sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==
1049
+
1050
+ "@emotion/serialize@^1.3.3":
1051
+ version "1.3.3"
1052
+ resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.3.3.tgz#d291531005f17d704d0463a032fe679f376509e8"
1053
+ integrity sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==
1054
+ dependencies:
1055
+ "@emotion/hash" "^0.9.2"
1056
+ "@emotion/memoize" "^0.9.0"
1057
+ "@emotion/unitless" "^0.10.0"
1058
+ "@emotion/utils" "^1.4.2"
1059
+ csstype "^3.0.2"
1060
+
1061
+ "@emotion/sheet@^1.4.0":
1062
+ version "1.4.0"
1063
+ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.4.0.tgz#c9299c34d248bc26e82563735f78953d2efca83c"
1064
+ integrity sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==
1065
+
1066
+ "@emotion/unitless@^0.10.0":
1067
+ version "0.10.0"
1068
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.10.0.tgz#2af2f7c7e5150f497bdabd848ce7b218a27cf745"
1069
+ integrity sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==
1070
+
1071
+ "@emotion/utils@^1.4.2":
1072
+ version "1.4.2"
1073
+ resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.4.2.tgz#6df6c45881fcb1c412d6688a311a98b7f59c1b52"
1074
+ integrity sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==
1075
+
1076
+ "@emotion/weak-memoize@^0.4.0":
1077
+ version "0.4.0"
1078
+ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz#5e13fac887f08c44f76b0ccaf3370eb00fec9bb6"
1079
+ integrity sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==
1080
+
1024
1081
  "@esbuild/aix-ppc64@0.21.5":
1025
1082
  version "0.21.5"
1026
1083
  resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f"
@@ -1482,6 +1539,11 @@
1482
1539
  resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796"
1483
1540
  integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==
1484
1541
 
1542
+ "@juggle/resize-observer@^3.3.1":
1543
+ version "3.4.0"
1544
+ resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60"
1545
+ integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==
1546
+
1485
1547
  "@lezer/common@^1.0.0", "@lezer/common@^1.1.0":
1486
1548
  version "1.2.3"
1487
1549
  resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.2.3.tgz#138fcddab157d83da557554851017c6c1e5667fd"
@@ -1506,6 +1568,106 @@
1506
1568
  resolved "https://registry.yarnpkg.com/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz#775374306116d51c0c500b8c4face0f9a04752d8"
1507
1569
  integrity sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==
1508
1570
 
1571
+ "@mui/core-downloads-tracker@^7.1.0":
1572
+ version "7.1.0"
1573
+ resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-7.1.0.tgz#0767bad9a74aaeb0032da7390d1d1c32653e31d8"
1574
+ integrity sha512-E0OqhZv548Qdc0PwWhLVA2zmjJZSTvaL4ZhoswmI8NJEC1tpW2js6LLP827jrW9MEiXYdz3QS6+hask83w74yQ==
1575
+
1576
+ "@mui/material@^7.1.0":
1577
+ version "7.1.0"
1578
+ resolved "https://registry.yarnpkg.com/@mui/material/-/material-7.1.0.tgz#f25866fb507ada2a2b3ac433b13a2bc79d83f608"
1579
+ integrity sha512-ahUJdrhEv+mCp4XHW+tHIEYzZMSRLg8z4AjUOsj44QpD1ZaMxQoVOG2xiHvLFdcsIPbgSRx1bg1eQSheHBgvtg==
1580
+ dependencies:
1581
+ "@babel/runtime" "^7.27.1"
1582
+ "@mui/core-downloads-tracker" "^7.1.0"
1583
+ "@mui/system" "^7.1.0"
1584
+ "@mui/types" "^7.4.2"
1585
+ "@mui/utils" "^7.1.0"
1586
+ "@popperjs/core" "^2.11.8"
1587
+ "@types/react-transition-group" "^4.4.12"
1588
+ clsx "^2.1.1"
1589
+ csstype "^3.1.3"
1590
+ prop-types "^15.8.1"
1591
+ react-is "^19.1.0"
1592
+ react-transition-group "^4.4.5"
1593
+
1594
+ "@mui/private-theming@^7.1.0":
1595
+ version "7.1.0"
1596
+ resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-7.1.0.tgz#257b82cdbd4ec63132f3fc14e121e5acb3ff6e40"
1597
+ integrity sha512-4Kck4jxhqF6YxNwJdSae1WgDfXVg0lIH6JVJ7gtuFfuKcQCgomJxPvUEOySTFRPz1IZzwz5OAcToskRdffElDA==
1598
+ dependencies:
1599
+ "@babel/runtime" "^7.27.1"
1600
+ "@mui/utils" "^7.1.0"
1601
+ prop-types "^15.8.1"
1602
+
1603
+ "@mui/styled-engine@^7.1.0":
1604
+ version "7.1.0"
1605
+ resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-7.1.0.tgz#3bf1d7856b98934585f7d03582bd74073db2a4b4"
1606
+ integrity sha512-m0mJ0c6iRC+f9hMeRe0W7zZX1wme3oUX0+XTVHjPG7DJz6OdQ6K/ggEOq7ZdwilcpdsDUwwMfOmvO71qDkYd2w==
1607
+ dependencies:
1608
+ "@babel/runtime" "^7.27.1"
1609
+ "@emotion/cache" "^11.13.5"
1610
+ "@emotion/serialize" "^1.3.3"
1611
+ "@emotion/sheet" "^1.4.0"
1612
+ csstype "^3.1.3"
1613
+ prop-types "^15.8.1"
1614
+
1615
+ "@mui/system@^7.1.0":
1616
+ version "7.1.0"
1617
+ resolved "https://registry.yarnpkg.com/@mui/system/-/system-7.1.0.tgz#5ecc0248fc7a8f5af772b52297105fcd512f1f03"
1618
+ integrity sha512-iedAWgRJMCxeMHvkEhsDlbvkK+qKf9me6ofsf7twk/jfT4P1ImVf7Rwb5VubEA0sikrVL+1SkoZM41M4+LNAVA==
1619
+ dependencies:
1620
+ "@babel/runtime" "^7.27.1"
1621
+ "@mui/private-theming" "^7.1.0"
1622
+ "@mui/styled-engine" "^7.1.0"
1623
+ "@mui/types" "^7.4.2"
1624
+ "@mui/utils" "^7.1.0"
1625
+ clsx "^2.1.1"
1626
+ csstype "^3.1.3"
1627
+ prop-types "^15.8.1"
1628
+
1629
+ "@mui/types@^7.4.2":
1630
+ version "7.4.2"
1631
+ resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.4.2.tgz#fdeb9855a4968c360bcc998b9dba93e5f635b40f"
1632
+ integrity sha512-edRc5JcLPsrlNFYyTPxds+d5oUovuUxnnDtpJUbP6WMeV4+6eaX/mqai1ZIWT62lCOe0nlrON0s9HDiv5en5bA==
1633
+ dependencies:
1634
+ "@babel/runtime" "^7.27.1"
1635
+
1636
+ "@mui/utils@^7.0.2", "@mui/utils@^7.1.0":
1637
+ version "7.1.0"
1638
+ resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-7.1.0.tgz#464c0c1bc8f57c07d934ac674f3dcc81ac24f68b"
1639
+ integrity sha512-/OM3S8kSHHmWNOP+NH9xEtpYSG10upXeQ0wLZnfDgmgadTAk5F4MQfFLyZ5FCRJENB3eRzltMmaNl6UtDnPovw==
1640
+ dependencies:
1641
+ "@babel/runtime" "^7.27.1"
1642
+ "@mui/types" "^7.4.2"
1643
+ "@types/prop-types" "^15.7.14"
1644
+ clsx "^2.1.1"
1645
+ prop-types "^15.8.1"
1646
+ react-is "^19.1.0"
1647
+
1648
+ "@mui/x-internals@8.3.0":
1649
+ version "8.3.0"
1650
+ resolved "https://registry.yarnpkg.com/@mui/x-internals/-/x-internals-8.3.0.tgz#0255ad37dcf2451e3f01d6820391cf368b68b7b5"
1651
+ integrity sha512-wSVxg5aSO9xvJT7oarhsXqr03NeP355Whm7Qn6z3VvxdGwNc7K7vKpez3E+2KMxtdvywOmragwlSdTaO1K6qkg==
1652
+ dependencies:
1653
+ "@babel/runtime" "^7.27.1"
1654
+ "@mui/utils" "^7.0.2"
1655
+
1656
+ "@mui/x-tree-view@^8.3.0":
1657
+ version "8.3.0"
1658
+ resolved "https://registry.yarnpkg.com/@mui/x-tree-view/-/x-tree-view-8.3.0.tgz#eaf401af4f8d88809c5683f4216168ac050a62b3"
1659
+ integrity sha512-iK9xisIi0pYx8wMkY7C5o/eBQzOfSiy7Szpy8aNPaMO1mqTyYjVpv98fgQCkNsdluniqmFkLSnrN+W5xZEZqtQ==
1660
+ dependencies:
1661
+ "@babel/runtime" "^7.27.1"
1662
+ "@mui/utils" "^7.0.2"
1663
+ "@mui/x-internals" "8.3.0"
1664
+ "@types/react-transition-group" "^4.4.12"
1665
+ clsx "^2.1.1"
1666
+ prop-types "^15.8.1"
1667
+ react-transition-group "^4.4.5"
1668
+ reselect "^5.1.1"
1669
+ use-sync-external-store "^1.5.0"
1670
+
1509
1671
  "@nodelib/fs.scandir@2.1.5":
1510
1672
  version "2.1.5"
1511
1673
  resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
@@ -1823,11 +1985,21 @@
1823
1985
  resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.5.tgz#72499abbb4c4ec9982446509d2f14fb8483869d6"
1824
1986
  integrity sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==
1825
1987
 
1988
+ "@types/prop-types@^15.7.14":
1989
+ version "15.7.14"
1990
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.14.tgz#1433419d73b2a7ebfc6918dcefd2ec0d5cd698f2"
1991
+ integrity sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==
1992
+
1826
1993
  "@types/react-dom@^19.0.3":
1827
1994
  version "19.1.2"
1828
1995
  resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.1.2.tgz#bd1fe3b8c28a3a2e942f85314dcfb71f531a242f"
1829
1996
  integrity sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==
1830
1997
 
1998
+ "@types/react-transition-group@^4.4.12":
1999
+ version "4.4.12"
2000
+ resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.12.tgz#b5d76568485b02a307238270bfe96cb51ee2a044"
2001
+ integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==
2002
+
1831
2003
  "@types/react@^19.0.7":
1832
2004
  version "19.1.2"
1833
2005
  resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.2.tgz#11df86f66f188f212c90ecb537327ec68bfd593f"
@@ -2167,15 +2339,15 @@ balanced-match@^1.0.0:
2167
2339
  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
2168
2340
  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
2169
2341
 
2170
- bootstrap-icons@^1.11.3:
2171
- version "1.11.3"
2172
- resolved "https://registry.yarnpkg.com/bootstrap-icons/-/bootstrap-icons-1.11.3.tgz#03f9cb754ec005c52f9ee616e2e84a82cab3084b"
2173
- integrity sha512-+3lpHrCw/it2/7lBL15VR0HEumaBss0+f/Lb6ZvHISn1mlK83jjFpooTLsMWbIjJMDjDjOExMsTxnXSIT4k4ww==
2342
+ bootstrap-icons@^1.12.1:
2343
+ version "1.13.1"
2344
+ resolved "https://registry.yarnpkg.com/bootstrap-icons/-/bootstrap-icons-1.13.1.tgz#0aad3f5b55b67402990e729ce3883416f9cef6c5"
2345
+ integrity sha512-ijombt4v6bv5CLeXvRWKy7CuM3TRTuPEuGaGKvTV5cz65rQSY8RQ2JcHt6b90cBBAC7s8fsf2EkQDldzCoXUjw==
2174
2346
 
2175
- bootstrap@^5.3.3:
2176
- version "5.3.5"
2177
- resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.5.tgz#be42cfe0d580e97ee1abb7d38ce94f5c393c9bb6"
2178
- integrity sha512-ct1CHKtiobRimyGzmsSldEtM03E8fcEX4Tb3dGXz1V8faRwM50+vfHwTzOxB3IlKO7m+9vTH3s/3C6T2EAPeTA==
2347
+ bootstrap@^5.3.6:
2348
+ version "5.3.6"
2349
+ resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.6.tgz#fbd91ebaff093f5b191a1c01a8c866d24f9fa6e1"
2350
+ integrity sha512-jX0GAcRzvdwISuvArXn3m7KZscWWFAf1MKBcnzaN02qWMb3jpMoUX4/qgeiGzqyIb4ojulRzs89UCUmGcFSzTA==
2179
2351
 
2180
2352
  brace-expansion@^1.1.7:
2181
2353
  version "1.1.11"
@@ -2435,7 +2607,7 @@ cssstyle@^2.3.0:
2435
2607
  dependencies:
2436
2608
  cssom "~0.3.6"
2437
2609
 
2438
- csstype@^3.0.2, csstype@^3.1.0:
2610
+ csstype@^3.0.2, csstype@^3.1.0, csstype@^3.1.3:
2439
2611
  version "3.1.3"
2440
2612
  resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
2441
2613
  integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
@@ -2506,6 +2678,14 @@ dom-accessibility-api@^0.6.3:
2506
2678
  resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz#993e925cc1d73f2c662e7d75dd5a5445259a8fd8"
2507
2679
  integrity sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==
2508
2680
 
2681
+ dom-helpers@^5.0.1:
2682
+ version "5.2.1"
2683
+ resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902"
2684
+ integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==
2685
+ dependencies:
2686
+ "@babel/runtime" "^7.8.7"
2687
+ csstype "^3.0.2"
2688
+
2509
2689
  domexception@^4.0.0:
2510
2690
  version "4.0.0"
2511
2691
  resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673"
@@ -3633,7 +3813,7 @@ jest@^29.7.0:
3633
3813
  import-local "^3.0.2"
3634
3814
  jest-cli "^29.7.0"
3635
3815
 
3636
- js-tokens@^4.0.0:
3816
+ "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
3637
3817
  version "4.0.0"
3638
3818
  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
3639
3819
  integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
@@ -3832,6 +4012,13 @@ lodash@^4.17.21:
3832
4012
  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
3833
4013
  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
3834
4014
 
4015
+ loose-envify@^1.0.0, loose-envify@^1.4.0:
4016
+ version "1.4.0"
4017
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
4018
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
4019
+ dependencies:
4020
+ js-tokens "^3.0.0 || ^4.0.0"
4021
+
3835
4022
  lru-cache@^5.1.1:
3836
4023
  version "5.1.1"
3837
4024
  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
@@ -4024,6 +4211,11 @@ nwsapi@^2.2.2:
4024
4211
  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.20.tgz#22e53253c61e7b0e7e93cef42c891154bcca11ef"
4025
4212
  integrity sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==
4026
4213
 
4214
+ object-assign@^4.1.1:
4215
+ version "4.1.1"
4216
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
4217
+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
4218
+
4027
4219
  once@^1.3.0:
4028
4220
  version "1.4.0"
4029
4221
  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -4205,6 +4397,15 @@ prompts@^2.0.1:
4205
4397
  kleur "^3.0.3"
4206
4398
  sisteransi "^1.0.5"
4207
4399
 
4400
+ prop-types@^15.6.2, prop-types@^15.8.1:
4401
+ version "15.8.1"
4402
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
4403
+ integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
4404
+ dependencies:
4405
+ loose-envify "^1.4.0"
4406
+ object-assign "^4.1.1"
4407
+ react-is "^16.13.1"
4408
+
4208
4409
  psl@^1.1.33:
4209
4410
  version "1.15.0"
4210
4411
  resolved "https://registry.yarnpkg.com/psl/-/psl-1.15.0.tgz#bdace31896f1d97cec6a79e8224898ce93d974c6"
@@ -4244,36 +4445,68 @@ react-dom@^19.0.0:
4244
4445
  dependencies:
4245
4446
  scheduler "^0.26.0"
4246
4447
 
4448
+ react-fast-compare@^3.0.1:
4449
+ version "3.2.2"
4450
+ resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49"
4451
+ integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==
4452
+
4453
+ react-is@^16.13.1:
4454
+ version "16.13.1"
4455
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
4456
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
4457
+
4247
4458
  react-is@^18.0.0:
4248
4459
  version "18.3.1"
4249
4460
  resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e"
4250
4461
  integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
4251
4462
 
4463
+ react-is@^19.1.0:
4464
+ version "19.1.0"
4465
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.1.0.tgz#805bce321546b7e14c084989c77022351bbdd11b"
4466
+ integrity sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==
4467
+
4468
+ react-popper@^2.3.0:
4469
+ version "2.3.0"
4470
+ resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.3.0.tgz#17891c620e1320dce318bad9fede46a5f71c70ba"
4471
+ integrity sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==
4472
+ dependencies:
4473
+ react-fast-compare "^3.0.1"
4474
+ warning "^4.0.2"
4475
+
4252
4476
  react-refresh@^0.17.0:
4253
4477
  version "0.17.0"
4254
4478
  resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.17.0.tgz#b7e579c3657f23d04eccbe4ad2e58a8ed51e7e53"
4255
4479
  integrity sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==
4256
4480
 
4257
- react-router-dom@^7.5.3:
4258
- version "7.5.3"
4259
- resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.5.3.tgz#496e9f6d90f731703c7772668b41747028e0a2d5"
4260
- integrity sha512-cK0jSaTyW4jV9SRKAItMIQfWZ/D6WEZafgHuuCb9g+SjhLolY78qc+De4w/Cz9ybjvLzShAmaIMEXt8iF1Cm+A==
4481
+ react-router-dom@^7.6.0:
4482
+ version "7.6.1"
4483
+ resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.6.1.tgz#263c9102e96b58d336258a51d68080b40c28f526"
4484
+ integrity sha512-vxU7ei//UfPYQ3iZvHuO1D/5fX3/JOqhNTbRR+WjSBWxf9bIvpWK+ftjmdfJHzPOuMQKe2fiEdG+dZX6E8uUpA==
4261
4485
  dependencies:
4262
- react-router "7.5.3"
4486
+ react-router "7.6.1"
4263
4487
 
4264
- react-router@7.5.3:
4265
- version "7.5.3"
4266
- resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.5.3.tgz#9e5420832af8c3690740c1797d4fa54613fea06d"
4267
- integrity sha512-3iUDM4/fZCQ89SXlDa+Ph3MevBrozBAI655OAfWQlTm9nBR0IKlrmNwFow5lPHttbwvITZfkeeeZFP6zt3F7pw==
4488
+ react-router@7.6.1:
4489
+ version "7.6.1"
4490
+ resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.6.1.tgz#a54f9b980b94594bcb4b7f26611612a9f6e17461"
4491
+ integrity sha512-hPJXXxHJZEsPFNVbtATH7+MMX43UDeOauz+EAU4cgqTn7ojdI9qQORqS8Z0qmDlL1TclO/6jLRYUEtbWidtdHQ==
4268
4492
  dependencies:
4269
4493
  cookie "^1.0.1"
4270
4494
  set-cookie-parser "^2.6.0"
4271
- turbo-stream "2.4.0"
4272
4495
 
4273
- react-virtuoso@^4.12.6:
4274
- version "4.12.6"
4275
- resolved "https://registry.yarnpkg.com/react-virtuoso/-/react-virtuoso-4.12.6.tgz#20fe374d43cce3c9821e29f4cc4d050596d06d01"
4276
- integrity sha512-bfvS6aCL1ehXmq39KRiz/vxznGUbtA27I5I24TYCe1DhMf84O3aVNCIwrSjYQjkJGJGzY46ihdN8WkYlemuhMQ==
4496
+ react-transition-group@^4.4.5:
4497
+ version "4.4.5"
4498
+ resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1"
4499
+ integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==
4500
+ dependencies:
4501
+ "@babel/runtime" "^7.5.5"
4502
+ dom-helpers "^5.0.1"
4503
+ loose-envify "^1.4.0"
4504
+ prop-types "^15.6.2"
4505
+
4506
+ react-virtuoso@^4.12.7:
4507
+ version "4.12.8"
4508
+ resolved "https://registry.yarnpkg.com/react-virtuoso/-/react-virtuoso-4.12.8.tgz#db1dbba617f91c1dcd760aa90e09ef991e65a356"
4509
+ integrity sha512-NMMKfDBr/+xZZqCQF3tN1SZsh6FwOJkYgThlfnsPLkaEhdyQo0EuWUzu3ix6qjnI7rYwJhMwRGoJBi+aiDfGsA==
4277
4510
 
4278
4511
  react@^19.0.0:
4279
4512
  version "19.1.0"
@@ -4346,6 +4579,11 @@ requires-port@^1.0.0:
4346
4579
  resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
4347
4580
  integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
4348
4581
 
4582
+ reselect@^5.1.1:
4583
+ version "5.1.1"
4584
+ resolved "https://registry.yarnpkg.com/reselect/-/reselect-5.1.1.tgz#c766b1eb5d558291e5e550298adb0becc24bb72e"
4585
+ integrity sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==
4586
+
4349
4587
  resolve-cwd@^3.0.0:
4350
4588
  version "3.0.0"
4351
4589
  resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
@@ -4582,6 +4820,11 @@ style-mod@^4.0.0, style-mod@^4.1.0:
4582
4820
  resolved "https://registry.yarnpkg.com/style-mod/-/style-mod-4.1.2.tgz#ca238a1ad4786520f7515a8539d5a63691d7bf67"
4583
4821
  integrity sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==
4584
4822
 
4823
+ stylis@4.2.0:
4824
+ version "4.2.0"
4825
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51"
4826
+ integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==
4827
+
4585
4828
  supports-color@^7.1.0:
4586
4829
  version "7.2.0"
4587
4830
  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
@@ -4678,11 +4921,6 @@ ts-jest@^29.3.2:
4678
4921
  type-fest "^4.39.1"
4679
4922
  yargs-parser "^21.1.1"
4680
4923
 
4681
- turbo-stream@2.4.0:
4682
- version "2.4.0"
4683
- resolved "https://registry.yarnpkg.com/turbo-stream/-/turbo-stream-2.4.0.tgz#1e4fca6725e90fa14ac4adb782f2d3759a5695f0"
4684
- integrity sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==
4685
-
4686
4924
  type-check@^0.4.0, type-check@~0.4.0:
4687
4925
  version "0.4.0"
4688
4926
  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
@@ -4780,6 +5018,18 @@ url-parse@^1.5.3:
4780
5018
  querystringify "^2.1.1"
4781
5019
  requires-port "^1.0.0"
4782
5020
 
5021
+ use-resize-observer@^9.1.0:
5022
+ version "9.1.0"
5023
+ resolved "https://registry.yarnpkg.com/use-resize-observer/-/use-resize-observer-9.1.0.tgz#14735235cf3268569c1ea468f8a90c5789fc5c6c"
5024
+ integrity sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==
5025
+ dependencies:
5026
+ "@juggle/resize-observer" "^3.3.1"
5027
+
5028
+ use-sync-external-store@^1.5.0:
5029
+ version "1.5.0"
5030
+ resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz#55122e2a3edd2a6c106174c27485e0fd59bcfca0"
5031
+ integrity sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==
5032
+
4783
5033
  v8-to-istanbul@^9.0.1:
4784
5034
  version "9.3.0"
4785
5035
  resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175"
@@ -4819,6 +5069,13 @@ walker@^1.0.8:
4819
5069
  dependencies:
4820
5070
  makeerror "1.0.12"
4821
5071
 
5072
+ warning@^4.0.2:
5073
+ version "4.0.3"
5074
+ resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
5075
+ integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
5076
+ dependencies:
5077
+ loose-envify "^1.0.0"
5078
+
4822
5079
  webidl-conversions@^7.0.0:
4823
5080
  version "7.0.0"
4824
5081
  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a"
@@ -4933,7 +5190,7 @@ yocto-queue@^0.1.0:
4933
5190
  resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
4934
5191
  integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
4935
5192
 
4936
- zustand@^5.0.3:
4937
- version "5.0.3"
4938
- resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.3.tgz#b323435b73d06b2512e93c77239634374b0e407f"
4939
- integrity sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==
5193
+ zustand@^5.0.5:
5194
+ version "5.0.5"
5195
+ resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.5.tgz#3e236f6a953142d975336d179bc735d97db17e84"
5196
+ integrity sha512-mILtRfKW9xM47hqxGIxCv12gXusoY/xTSHBYApXozR0HmQv299whhBeeAcRy+KrPPybzosvJBCOmVjq6x12fCg==
@@ -82,8 +82,9 @@ def react(
82
82
  the submit tool within the message. Alternatively, an async function
83
83
  to call to determine whether the loop should continue and what message
84
84
  to play back. Note that this function is called on _every_ iteration of
85
- the loop so if you only want to send a message back when the model fails
86
- to call tools you need to code that behavior explicitly.
85
+ the loop. If you return a `str` with a custom message it will be
86
+ sent to the model as a user message only in the case that no tool
87
+ calls were made.
87
88
  truncation: Truncate the conversation history in the event of a context
88
89
  window overflow. Defaults to "disabled" which does no truncation. Pass
89
90
  "auto" to use `trim_messages()` to reduce the context size. Pass a
@@ -245,11 +246,13 @@ def react(
245
246
  )
246
247
  )
247
248
  elif isinstance(do_continue, str):
248
- state.messages.append(
249
- ChatMessageUser(
250
- content=do_continue.format(submit=submit_tool.name)
249
+ # if there were no tool calls we need to send back the user message
250
+ if not state.output.message.tool_calls:
251
+ state.messages.append(
252
+ ChatMessageUser(
253
+ content=do_continue.format(submit=submit_tool.name)
254
+ )
251
255
  )
252
- )
253
256
  else: # do_continue is False
254
257
  break
255
258
 
@@ -327,7 +330,9 @@ def react_no_submit(
327
330
  if do_continue is True:
328
331
  do_continue = DEFAULT_CONTINUE_PROMOT_NO_SUBMIT
329
332
  if do_continue:
330
- state.messages.append(ChatMessageUser(content=do_continue))
333
+ # send back user message if there are no tool calls
334
+ if not state.output.message.tool_calls:
335
+ state.messages.append(ChatMessageUser(content=do_continue))
331
336
  else:
332
337
  break
333
338
  elif not state.output.message.tool_calls:
inspect_ai/agent/_run.py CHANGED
@@ -46,9 +46,8 @@ async def run(
46
46
  Args:
47
47
  agent: Agent to run.
48
48
  input: Agent input (string, list of messages, or an `AgentState`).
49
- limits: List of limits to apply to the agent. Should a limit be
50
- exceeded, a LimitExceededError is raised which the caller may
51
- handle as appropriate.
49
+ limits: List of limits to apply to the agent. Should one of these limits be
50
+ exceeded, the `LimitExceededError` is caught and returned.
52
51
  name: Optional display name for the transcript entry. If not provided, the
53
52
  agent's name as defined in the registry will be used.
54
53
  **agent_kwargs: Additional arguments to pass to agent.
@@ -7,6 +7,7 @@ from ._dataframe.evals.columns import (
7
7
  EvalColumn,
8
8
  EvalColumns,
9
9
  EvalConfig,
10
+ EvalDataset,
10
11
  EvalInfo,
11
12
  EvalModel,
12
13
  EvalResults,
@@ -41,6 +42,7 @@ __all__ = [
41
42
  "EvalModel",
42
43
  "EvalColumns",
43
44
  "EvalConfig",
45
+ "EvalDataset",
44
46
  "EvalResults",
45
47
  "EvalScores",
46
48
  "samples_df",
@@ -356,26 +356,27 @@ def _read_samples_df_serial(
356
356
  details_table.drop_duplicates(
357
357
  f"{detail.name}_id", keep="first", inplace=True, ignore_index=True
358
358
  )
359
- samples_table = details_table.merge(
360
- samples_table,
361
- on=SAMPLE_ID,
362
- how="left",
363
- suffixes=(f"_{detail.name}", SAMPLE_SUFFIX),
364
- )
359
+ if len(details_table) > 0:
360
+ samples_table = details_table.merge(
361
+ samples_table,
362
+ on=SAMPLE_ID,
363
+ how="left",
364
+ suffixes=(f"_{detail.name}", SAMPLE_SUFFIX),
365
+ )
365
366
 
366
367
  # join eval_records
367
- samples_table = samples_table.merge(
368
- evals_table, on=EVAL_ID, how="left", suffixes=(SAMPLE_SUFFIX, EVAL_SUFFIX)
369
- )
370
-
371
- # re-order based on original specification
372
- samples_table = reorder_samples_df_columns(
373
- samples_table,
374
- columns_eval,
375
- columns_sample,
376
- columns_detail,
377
- detail.name if detail else "",
378
- )
368
+ if len(samples_table) > 0:
369
+ samples_table = samples_table.merge(
370
+ evals_table, on=EVAL_ID, how="left", suffixes=(SAMPLE_SUFFIX, EVAL_SUFFIX)
371
+ )
372
+ # re-order based on original specification
373
+ samples_table = reorder_samples_df_columns(
374
+ samples_table,
375
+ columns_eval,
376
+ columns_sample,
377
+ columns_detail,
378
+ detail.name if detail else "",
379
+ )
379
380
 
380
381
  # return
381
382
  if strict:
@@ -14,7 +14,7 @@ from .._dataset import (
14
14
  MemoryDataset,
15
15
  RecordToSample,
16
16
  )
17
- from .._util import data_to_samples, record_to_sample_fn
17
+ from .._util import data_to_samples, record_to_sample_fn, shuffle_choices_if_requested
18
18
 
19
19
 
20
20
  def csv_dataset(
@@ -88,11 +88,7 @@ def csv_dataset(
88
88
  if shuffle:
89
89
  dataset.shuffle(seed=seed)
90
90
 
91
- # shuffle choices, if requested
92
- if isinstance(shuffle_choices, int):
93
- dataset.shuffle_choices(seed=shuffle_choices)
94
- elif shuffle_choices is True:
95
- dataset.shuffle_choices()
91
+ shuffle_choices_if_requested(dataset, shuffle_choices)
96
92
 
97
93
  # limit if requested
98
94
  if limit:
@@ -16,7 +16,7 @@ from .._dataset import (
16
16
  MemoryDataset,
17
17
  RecordToSample,
18
18
  )
19
- from .._util import data_to_samples, record_to_sample_fn
19
+ from .._util import data_to_samples, record_to_sample_fn, shuffle_choices_if_requested
20
20
 
21
21
 
22
22
  def hf_dataset(
@@ -125,10 +125,6 @@ def hf_dataset(
125
125
  location=path,
126
126
  )
127
127
 
128
- # maybe shuffle the choices
129
- if isinstance(shuffle_choices, int):
130
- memory_dataset.shuffle_choices(seed=shuffle_choices)
131
- elif shuffle_choices is True:
132
- memory_dataset.shuffle_choices()
128
+ shuffle_choices_if_requested(memory_dataset, shuffle_choices)
133
129
 
134
130
  return memory_dataset
@@ -15,7 +15,7 @@ from .._dataset import (
15
15
  MemoryDataset,
16
16
  RecordToSample,
17
17
  )
18
- from .._util import data_to_samples, record_to_sample_fn
18
+ from .._util import data_to_samples, record_to_sample_fn, shuffle_choices_if_requested
19
19
  from .util import resolve_sample_files
20
20
 
21
21
 
@@ -88,11 +88,7 @@ def json_dataset(
88
88
  if shuffle:
89
89
  dataset.shuffle(seed=seed)
90
90
 
91
- # shuffle choices, if requested
92
- if isinstance(shuffle_choices, int):
93
- dataset.shuffle_choices(seed=shuffle_choices)
94
- elif shuffle_choices is True:
95
- dataset.shuffle_choices()
91
+ shuffle_choices_if_requested(dataset, shuffle_choices)
96
92
 
97
93
  # limit if requested
98
94
  if limit: