inspect-ai 0.3.89__py3-none-any.whl → 0.3.91__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 (370) hide show
  1. inspect_ai/_cli/common.py +13 -0
  2. inspect_ai/_cli/eval.py +40 -0
  3. inspect_ai/_display/textual/widgets/samples.py +49 -4
  4. inspect_ai/_display/textual/widgets/vscode.py +4 -2
  5. inspect_ai/_eval/eval.py +41 -28
  6. inspect_ai/_eval/evalset.py +4 -0
  7. inspect_ai/_eval/loader.py +4 -5
  8. inspect_ai/_eval/registry.py +1 -1
  9. inspect_ai/_eval/run.py +6 -3
  10. inspect_ai/_eval/task/log.py +6 -0
  11. inspect_ai/_eval/task/run.py +108 -53
  12. inspect_ai/_eval/task/sandbox.py +19 -5
  13. inspect_ai/_util/_async.py +1 -1
  14. inspect_ai/_util/constants.py +1 -0
  15. inspect_ai/_util/environ.py +32 -0
  16. inspect_ai/_util/file.py +8 -1
  17. inspect_ai/_util/httpx.py +105 -22
  18. inspect_ai/_util/registry.py +83 -9
  19. inspect_ai/_util/text.py +81 -17
  20. inspect_ai/_util/transcript.py +9 -6
  21. inspect_ai/_util/vscode.py +7 -2
  22. inspect_ai/_view/schema.py +1 -1
  23. inspect_ai/_view/www/babel.config.js +11 -0
  24. inspect_ai/_view/www/dist/assets/index.css +3583 -3508
  25. inspect_ai/_view/www/dist/assets/index.js +59212 -52521
  26. inspect_ai/_view/www/eslint.config.mjs +10 -1
  27. inspect_ai/_view/www/jest.config.mjs +21 -0
  28. inspect_ai/_view/www/log-schema.json +111 -2
  29. inspect_ai/_view/www/package.json +19 -5
  30. inspect_ai/_view/www/src/{types → @types}/log.d.ts +95 -32
  31. inspect_ai/_view/www/{App.css → src/app/App.css} +22 -14
  32. inspect_ai/_view/www/src/app/App.tsx +168 -0
  33. inspect_ai/_view/www/src/{AppErrorBoundary.tsx → app/AppErrorBoundary.tsx} +1 -1
  34. inspect_ai/_view/www/src/{appearance → app/appearance}/icons.ts +1 -0
  35. inspect_ai/_view/www/src/{metadata → app/content}/RenderedContent.tsx +5 -5
  36. inspect_ai/_view/www/src/{workspace/WorkSpaceView.tsx → app/log-view/LogView.tsx} +59 -40
  37. inspect_ai/_view/www/src/app/log-view/LogViewContainer.tsx +159 -0
  38. inspect_ai/_view/www/src/app/log-view/LogViewLayout.tsx +109 -0
  39. inspect_ai/_view/www/src/{workspace → app/log-view}/error/TaskErrorPanel.tsx +3 -3
  40. inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/ModelRolesView.tsx +1 -1
  41. inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/Navbar.tsx +4 -4
  42. inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/PrimaryBar.tsx +8 -8
  43. inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/ResultsPanel.tsx +6 -6
  44. inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/RunningStatusPanel.tsx +1 -1
  45. inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/ScoreGrid.tsx +1 -1
  46. inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/SecondaryBar.tsx +8 -8
  47. inspect_ai/_view/www/src/{workspace → app/log-view}/tabs/InfoTab.tsx +35 -6
  48. inspect_ai/_view/www/src/app/log-view/tabs/JsonTab.tsx +136 -0
  49. inspect_ai/_view/www/src/{workspace → app/log-view}/tabs/SamplesTab.tsx +82 -73
  50. inspect_ai/_view/www/src/{workspace → app/log-view}/tabs/grouping.ts +3 -3
  51. inspect_ai/_view/www/src/{workspace → app/log-view}/tabs/types.ts +1 -1
  52. inspect_ai/_view/www/src/{plan → app/plan}/DatasetDetailView.tsx +2 -2
  53. inspect_ai/_view/www/src/{plan → app/plan}/DetailStep.tsx +1 -1
  54. inspect_ai/_view/www/src/{plan → app/plan}/ModelCard.tsx +4 -4
  55. inspect_ai/_view/www/src/{plan → app/plan}/PlanCard.tsx +2 -2
  56. inspect_ai/_view/www/src/{plan → app/plan}/PlanDetailView.tsx +5 -5
  57. inspect_ai/_view/www/src/{plan → app/plan}/SolverDetailView.tsx +1 -1
  58. inspect_ai/_view/www/src/app/routing/AppRouter.tsx +58 -0
  59. inspect_ai/_view/www/src/app/routing/navigationHooks.ts +182 -0
  60. inspect_ai/_view/www/src/app/routing/url.ts +43 -0
  61. inspect_ai/_view/www/src/{samples → app/samples}/InlineSampleDisplay.tsx +11 -27
  62. inspect_ai/_view/www/src/{samples → app/samples}/SampleDialog.tsx +36 -40
  63. inspect_ai/_view/www/src/{samples → app/samples}/SampleDisplay.module.css +4 -0
  64. inspect_ai/_view/www/src/{samples → app/samples}/SampleDisplay.tsx +116 -49
  65. inspect_ai/_view/www/src/{samples → app/samples}/SampleSummaryView.module.css +1 -1
  66. inspect_ai/_view/www/src/{samples → app/samples}/SampleSummaryView.tsx +29 -26
  67. inspect_ai/_view/www/src/{samples → app/samples}/SamplesTools.tsx +3 -3
  68. inspect_ai/_view/www/src/{samples → app/samples}/chat/ChatMessage.module.css +5 -2
  69. inspect_ai/_view/www/src/{samples → app/samples}/chat/ChatMessage.tsx +13 -5
  70. inspect_ai/_view/www/src/{samples → app/samples}/chat/ChatMessageRenderer.tsx +3 -3
  71. inspect_ai/_view/www/src/{samples → app/samples}/chat/ChatMessageRow.tsx +6 -1
  72. inspect_ai/_view/www/src/{samples → app/samples}/chat/ChatView.tsx +4 -2
  73. inspect_ai/_view/www/src/{samples → app/samples}/chat/ChatViewVirtualList.tsx +5 -3
  74. inspect_ai/_view/www/src/app/samples/chat/MessageContent.module.css +12 -0
  75. inspect_ai/_view/www/src/{samples → app/samples}/chat/MessageContent.tsx +11 -10
  76. inspect_ai/_view/www/src/app/samples/chat/MessageContents.module.css +7 -0
  77. inspect_ai/_view/www/src/{samples → app/samples}/chat/MessageContents.tsx +14 -8
  78. inspect_ai/_view/www/src/{samples → app/samples}/chat/messages.ts +2 -2
  79. inspect_ai/_view/www/src/app/samples/chat/tools/ToolCallView.module.css +7 -0
  80. inspect_ai/_view/www/src/{samples → app/samples}/chat/tools/ToolCallView.tsx +26 -27
  81. inspect_ai/_view/www/src/app/samples/chat/tools/ToolInput.module.css +19 -0
  82. inspect_ai/_view/www/src/{samples → app/samples}/chat/tools/ToolInput.tsx +3 -3
  83. inspect_ai/_view/www/src/{samples → app/samples}/chat/tools/ToolOutput.module.css +1 -0
  84. inspect_ai/_view/www/src/{samples → app/samples}/chat/tools/ToolOutput.tsx +1 -1
  85. inspect_ai/_view/www/src/{samples → app/samples}/chat/tools/ToolTitle.module.css +4 -0
  86. inspect_ai/_view/www/src/{samples → app/samples}/chat/tools/ToolTitle.tsx +2 -2
  87. inspect_ai/_view/www/src/{samples → app/samples}/chat/tools/tool.ts +1 -1
  88. inspect_ai/_view/www/src/app/samples/chat/types.ts +1 -0
  89. inspect_ai/_view/www/src/{samples → app/samples}/descriptor/samplesDescriptor.tsx +38 -15
  90. inspect_ai/_view/www/src/{samples → app/samples}/descriptor/score/BooleanScoreDescriptor.tsx +1 -1
  91. inspect_ai/_view/www/src/{samples → app/samples}/descriptor/score/CategoricalScoreDescriptor.tsx +2 -2
  92. inspect_ai/_view/www/src/{samples → app/samples}/descriptor/score/NumericScoreDescriptor.tsx +3 -3
  93. inspect_ai/_view/www/src/{samples → app/samples}/descriptor/score/ObjectScoreDescriptor.tsx +4 -4
  94. inspect_ai/_view/www/src/{samples → app/samples}/descriptor/score/OtherScoreDescriptor.tsx +2 -2
  95. inspect_ai/_view/www/src/{samples → app/samples}/descriptor/score/PassFailScoreDescriptor.tsx +2 -2
  96. inspect_ai/_view/www/src/{samples → app/samples}/descriptor/score/ScoreDescriptor.tsx +1 -1
  97. inspect_ai/_view/www/src/{samples → app/samples}/descriptor/types.ts +4 -3
  98. inspect_ai/_view/www/src/{samples → app/samples}/error/SampleErrorView.module.css +2 -1
  99. inspect_ai/_view/www/src/{samples → app/samples}/list/SampleHeader.tsx +3 -0
  100. inspect_ai/_view/www/src/{samples → app/samples}/list/SampleList.tsx +47 -33
  101. inspect_ai/_view/www/src/{samples → app/samples}/list/SampleRow.module.css +16 -0
  102. inspect_ai/_view/www/src/{samples → app/samples}/list/SampleRow.tsx +47 -20
  103. inspect_ai/_view/www/src/{samples → app/samples}/sample-tools/SelectScorer.tsx +1 -1
  104. inspect_ai/_view/www/src/{samples → app/samples}/sample-tools/SortFilter.tsx +4 -4
  105. inspect_ai/_view/www/src/{samples → app/samples}/sample-tools/filters.ts +8 -6
  106. inspect_ai/_view/www/src/{samples → app/samples}/sample-tools/sample-filter/SampleFilter.tsx +4 -3
  107. inspect_ai/_view/www/src/{samples → app/samples}/sample-tools/sample-filter/completions.ts +1 -1
  108. inspect_ai/_view/www/src/{samples → app/samples}/sample-tools/sample-filter/language.ts +1 -0
  109. inspect_ai/_view/www/src/{samples → app/samples}/sampleDataAdapter.ts +3 -3
  110. inspect_ai/_view/www/src/{samples → app/samples}/sampleLimit.ts +1 -1
  111. inspect_ai/_view/www/src/{samples → app/samples}/scores/SampleScores.tsx +1 -1
  112. inspect_ai/_view/www/src/{samples → app/samples}/scores/SampleScoresGrid.tsx +12 -11
  113. inspect_ai/_view/www/src/{samples → app/samples}/scores/SampleScoresView.tsx +6 -6
  114. inspect_ai/_view/www/src/{samples → app/samples}/transcript/ApprovalEventView.tsx +1 -1
  115. inspect_ai/_view/www/src/{samples → app/samples}/transcript/ErrorEventView.tsx +3 -3
  116. inspect_ai/_view/www/src/{samples → app/samples}/transcript/InfoEventView.tsx +4 -4
  117. inspect_ai/_view/www/src/{samples → app/samples}/transcript/InputEventView.tsx +3 -3
  118. inspect_ai/_view/www/src/{samples → app/samples}/transcript/LoggerEventView.tsx +3 -3
  119. inspect_ai/_view/www/src/{samples → app/samples}/transcript/ModelEventView.module.css +13 -7
  120. inspect_ai/_view/www/src/{samples → app/samples}/transcript/ModelEventView.tsx +49 -21
  121. inspect_ai/_view/www/src/{samples → app/samples}/transcript/SampleInitEventView.tsx +11 -9
  122. inspect_ai/_view/www/src/{samples → app/samples}/transcript/SampleLimitEventView.tsx +1 -1
  123. inspect_ai/_view/www/src/{samples → app/samples}/transcript/SandboxEventView.tsx +8 -6
  124. inspect_ai/_view/www/src/{samples → app/samples}/transcript/ScoreEventView.tsx +4 -4
  125. inspect_ai/_view/www/src/{samples → app/samples}/transcript/StepEventView.tsx +22 -8
  126. inspect_ai/_view/www/src/{samples → app/samples}/transcript/SubtaskEventView.tsx +2 -2
  127. inspect_ai/_view/www/src/{samples → app/samples}/transcript/ToolEventView.tsx +2 -2
  128. inspect_ai/_view/www/src/{samples → app/samples}/transcript/TranscriptView.module.css +8 -9
  129. inspect_ai/_view/www/src/{samples → app/samples}/transcript/TranscriptView.tsx +32 -114
  130. inspect_ai/_view/www/src/{samples → app/samples}/transcript/TranscriptVirtualListComponent.module.css +6 -5
  131. inspect_ai/_view/www/src/{samples → app/samples}/transcript/TranscriptVirtualListComponent.tsx +14 -2
  132. inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/EventPanel.tsx +2 -2
  133. inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/EventTimingPanel.tsx +1 -1
  134. inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/utils.ts +1 -1
  135. inspect_ai/_view/www/src/{samples → app/samples}/transcript/state/StateEventRenderers.tsx +23 -21
  136. inspect_ai/_view/www/src/{samples → app/samples}/transcript/state/StateEventRenders.module.css +7 -0
  137. inspect_ai/_view/www/src/{samples → app/samples}/transcript/state/StateEventView.tsx +2 -2
  138. inspect_ai/_view/www/src/app/samples/transcript/transform/fixups.ts +142 -0
  139. inspect_ai/_view/www/src/app/samples/transcript/transform/treeify.ts +39 -0
  140. inspect_ai/_view/www/src/{samples → app/samples}/transcript/types.ts +1 -1
  141. inspect_ai/_view/www/src/{workspace → app}/sidebar/EvalStatus.tsx +1 -1
  142. inspect_ai/_view/www/src/app/sidebar/LogDirectoryTitleView.module.css +16 -0
  143. inspect_ai/_view/www/src/app/sidebar/LogDirectoryTitleView.tsx +70 -0
  144. inspect_ai/_view/www/src/{workspace → app}/sidebar/Sidebar.module.css +8 -0
  145. inspect_ai/_view/www/src/{workspace → app}/sidebar/Sidebar.tsx +35 -17
  146. inspect_ai/_view/www/src/{workspace → app}/sidebar/SidebarLogEntry.tsx +1 -1
  147. inspect_ai/_view/www/src/{workspace → app}/sidebar/SidebarScoreView.tsx +2 -2
  148. inspect_ai/_view/www/src/{workspace → app}/sidebar/SidebarScoresView.tsx +2 -2
  149. inspect_ai/_view/www/src/{types.ts → app/types.ts} +18 -11
  150. inspect_ai/_view/www/src/{usage → app/usage}/ModelTokenTable.tsx +1 -1
  151. inspect_ai/_view/www/src/{usage → app/usage}/ModelUsagePanel.tsx +2 -2
  152. inspect_ai/_view/www/src/{usage → app/usage}/TokenTable.tsx +1 -1
  153. inspect_ai/_view/www/src/{usage → app/usage}/UsageCard.tsx +6 -6
  154. inspect_ai/_view/www/src/{api → client/api}/api-browser.ts +2 -2
  155. inspect_ai/_view/www/src/{api → client/api}/api-http.ts +3 -3
  156. inspect_ai/_view/www/src/{api → client/api}/api-vscode.ts +2 -2
  157. inspect_ai/_view/www/src/{api → client/api}/client-api.ts +6 -5
  158. inspect_ai/_view/www/src/{api → client/api}/index.ts +2 -2
  159. inspect_ai/_view/www/src/{api → client/api}/types.ts +4 -1
  160. inspect_ai/_view/www/src/{logfile → client/remote}/remoteLogFile.ts +3 -3
  161. inspect_ai/_view/www/src/{storage → client/storage}/index.ts +11 -5
  162. inspect_ai/_view/www/src/components/Card.tsx +1 -1
  163. inspect_ai/_view/www/src/components/CopyButton.tsx +1 -1
  164. inspect_ai/_view/www/src/components/DownloadButton.tsx +1 -1
  165. inspect_ai/_view/www/src/components/ErrorPanel.tsx +1 -1
  166. inspect_ai/_view/www/src/components/{ExpandablePanel.css → ExpandablePanel.module.css} +14 -11
  167. inspect_ai/_view/www/src/components/ExpandablePanel.tsx +16 -10
  168. inspect_ai/_view/www/src/components/FindBand.tsx +1 -1
  169. inspect_ai/_view/www/src/components/JsonPanel.css +2 -2
  170. inspect_ai/_view/www/src/components/LargeModal.tsx +12 -1
  171. inspect_ai/_view/www/src/components/LightboxCarousel.tsx +1 -1
  172. inspect_ai/_view/www/src/components/MarkdownDiv.tsx +3 -1
  173. inspect_ai/_view/www/src/components/MessageBand.tsx +1 -1
  174. inspect_ai/_view/www/src/components/NoContentsPanel.tsx +1 -1
  175. inspect_ai/_view/www/src/constants.ts +10 -9
  176. inspect_ai/_view/www/src/index.tsx +27 -11
  177. inspect_ai/_view/www/src/state/appSlice.ts +44 -5
  178. inspect_ai/_view/www/src/state/hooks.ts +30 -7
  179. inspect_ai/_view/www/src/state/logSlice.ts +7 -5
  180. inspect_ai/_view/www/src/state/logsPolling.ts +1 -1
  181. inspect_ai/_view/www/src/state/logsSlice.ts +18 -13
  182. inspect_ai/_view/www/src/state/samplePolling.ts +12 -12
  183. inspect_ai/_view/www/src/state/sampleSlice.ts +3 -5
  184. inspect_ai/_view/www/src/state/sampleUtils.ts +1 -1
  185. inspect_ai/_view/www/src/{scoring/utils.ts → state/scoring.ts} +2 -2
  186. inspect_ai/_view/www/src/state/store.ts +9 -7
  187. inspect_ai/_view/www/src/state/utils.ts +1 -1
  188. inspect_ai/_view/www/src/tests/README.md +49 -0
  189. inspect_ai/_view/www/src/tests/__mocks__/fileMock.js +1 -0
  190. inspect_ai/_view/www/src/tests/__mocks__/styleMock.js +1 -0
  191. inspect_ai/_view/www/src/tests/setupTests.mjs +1 -0
  192. inspect_ai/_view/www/src/tests/utils/base64.test.ts +23 -0
  193. inspect_ai/_view/www/src/tests/utils/format.test.ts +127 -0
  194. inspect_ai/_view/www/src/tests/utils/path.test.ts +54 -0
  195. inspect_ai/_view/www/src/utils/format.ts +8 -2
  196. inspect_ai/_view/www/src/utils/path.ts +14 -2
  197. inspect_ai/_view/www/src/utils/polling.ts +1 -2
  198. inspect_ai/_view/www/src/utils/uri.ts +32 -0
  199. inspect_ai/_view/www/yarn.lock +3310 -382
  200. inspect_ai/agent/_handoff.py +6 -3
  201. inspect_ai/agent/_human/agent.py +5 -3
  202. inspect_ai/agent/_human/install.py +16 -7
  203. inspect_ai/agent/_human/panel.py +14 -1
  204. inspect_ai/agent/_human/service.py +5 -1
  205. inspect_ai/agent/_react.py +161 -128
  206. inspect_ai/agent/_types.py +15 -4
  207. inspect_ai/approval/_policy.py +2 -2
  208. inspect_ai/log/_file.py +30 -11
  209. inspect_ai/log/_log.py +7 -1
  210. inspect_ai/log/_recorders/eval.py +3 -0
  211. inspect_ai/log/_recorders/types.py +1 -0
  212. inspect_ai/log/_samples.py +4 -0
  213. inspect_ai/model/_call_tools.py +33 -17
  214. inspect_ai/model/_generate_config.py +10 -2
  215. inspect_ai/model/_model.py +41 -21
  216. inspect_ai/model/_model_output.py +2 -1
  217. inspect_ai/model/_openai.py +10 -8
  218. inspect_ai/model/_openai_responses.py +83 -42
  219. inspect_ai/model/_providers/anthropic.py +14 -12
  220. inspect_ai/model/_providers/google.py +191 -95
  221. inspect_ai/model/_providers/hf.py +1 -1
  222. inspect_ai/model/_providers/mistral.py +2 -3
  223. inspect_ai/model/_providers/openai.py +54 -17
  224. inspect_ai/model/_providers/openai_o1.py +1 -1
  225. inspect_ai/model/_providers/openai_responses.py +28 -16
  226. inspect_ai/model/_providers/openrouter.py +14 -0
  227. inspect_ai/model/_providers/providers.py +2 -2
  228. inspect_ai/model/_providers/util/chatapi.py +17 -7
  229. inspect_ai/model/_providers/vllm.py +1 -1
  230. inspect_ai/scorer/_metric.py +17 -1
  231. inspect_ai/scorer/_model.py +51 -6
  232. inspect_ai/scorer/_scorer.py +1 -1
  233. inspect_ai/solver/_human_agent.py +3 -0
  234. inspect_ai/solver/_plan.py +1 -1
  235. inspect_ai/solver/_solver.py +1 -1
  236. inspect_ai/solver/_use_tools.py +14 -8
  237. inspect_ai/tool/__init__.py +16 -1
  238. inspect_ai/tool/_json_rpc_helpers.py +285 -0
  239. inspect_ai/tool/_mcp/__init__.py +13 -0
  240. inspect_ai/tool/_mcp/_context.py +14 -0
  241. inspect_ai/tool/_mcp/_mcp.py +293 -0
  242. inspect_ai/tool/_mcp/_sandbox.py +104 -0
  243. inspect_ai/tool/_mcp/_types.py +31 -0
  244. inspect_ai/tool/_mcp/connection.py +60 -0
  245. inspect_ai/tool/_mcp/sampling.py +118 -0
  246. inspect_ai/tool/_mcp/server.py +112 -0
  247. inspect_ai/tool/_mcp/tools.py +34 -0
  248. inspect_ai/tool/_tool.py +13 -0
  249. inspect_ai/tool/_tool_def.py +24 -7
  250. inspect_ai/tool/_tool_support_helpers.py +129 -153
  251. inspect_ai/tool/_tools/_bash_session.py +11 -11
  252. inspect_ai/tool/_tools/_text_editor.py +6 -6
  253. inspect_ai/tool/_tools/_web_browser/_web_browser.py +8 -8
  254. inspect_ai/util/_anyio.py +31 -20
  255. inspect_ai/util/_json.py +20 -2
  256. inspect_ai/util/_sandbox/context.py +18 -7
  257. inspect_ai/util/_sandbox/docker/compose.py +1 -1
  258. inspect_ai/util/_sandbox/docker/docker.py +92 -21
  259. inspect_ai/util/_sandbox/environment.py +33 -2
  260. inspect_ai/util/_sandbox/events.py +2 -2
  261. inspect_ai/util/_sandbox/service.py +13 -3
  262. {inspect_ai-0.3.89.dist-info → inspect_ai-0.3.91.dist-info}/METADATA +6 -2
  263. inspect_ai-0.3.91.dist-info/RECORD +732 -0
  264. {inspect_ai-0.3.89.dist-info → inspect_ai-0.3.91.dist-info}/WHEEL +1 -1
  265. inspect_ai/_view/www/src/App.tsx +0 -316
  266. inspect_ai/_view/www/src/samples/chat/MessageContent.module.css +0 -4
  267. inspect_ai/_view/www/src/samples/chat/MessageContents.module.css +0 -3
  268. inspect_ai/_view/www/src/samples/chat/tools/ToolCallView.module.css +0 -3
  269. inspect_ai/_view/www/src/samples/chat/tools/ToolInput.module.css +0 -14
  270. inspect_ai/_view/www/src/workspace/WorkSpace.tsx +0 -292
  271. inspect_ai/_view/www/src/workspace/sidebar/LogDirectoryTitleView.module.css +0 -5
  272. inspect_ai/_view/www/src/workspace/sidebar/LogDirectoryTitleView.tsx +0 -57
  273. inspect_ai/_view/www/src/workspace/tabs/JsonTab.tsx +0 -43
  274. inspect_ai-0.3.89.dist-info/RECORD +0 -705
  275. /inspect_ai/_view/www/src/{types → @types}/asciicinema-player.d.ts +0 -0
  276. /inspect_ai/_view/www/src/{types → @types}/jsondiffpatch.d.ts +0 -0
  277. /inspect_ai/_view/www/src/{types → @types}/markdown-it-katex.d.ts +0 -0
  278. /inspect_ai/_view/www/src/{types → @types}/prism.d.ts +0 -0
  279. /inspect_ai/_view/www/src/{appearance → app/appearance}/colors.ts +0 -0
  280. /inspect_ai/_view/www/src/{appearance → app/appearance}/fonts.ts +0 -0
  281. /inspect_ai/_view/www/src/{appearance → app/appearance}/styles.ts +0 -0
  282. /inspect_ai/_view/www/src/{metadata → app/content}/MetaDataGrid.tsx +0 -0
  283. /inspect_ai/_view/www/src/{metadata → app/content}/MetaDataView.module.css +0 -0
  284. /inspect_ai/_view/www/src/{metadata → app/content}/MetaDataView.tsx +0 -0
  285. /inspect_ai/_view/www/src/{metadata → app/content}/MetadataGrid.module.css +0 -0
  286. /inspect_ai/_view/www/src/{metadata → app/content}/RenderedContent.module.css +0 -0
  287. /inspect_ai/_view/www/src/{metadata → app/content}/types.ts +0 -0
  288. /inspect_ai/_view/www/src/{workspace/WorkSpaceView.module.css → app/log-view/LogView.module.css} +0 -0
  289. /inspect_ai/_view/www/src/{workspace → app/log-view}/error/TaskErrorPanel.module.css +0 -0
  290. /inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/ModelRolesView.module.css +0 -0
  291. /inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/Navbar.module.css +0 -0
  292. /inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/PrimaryBar.module.css +0 -0
  293. /inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/ResultsPanel.module.css +0 -0
  294. /inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/RunningStatusPanel.module.css +0 -0
  295. /inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/ScoreGrid.module.css +0 -0
  296. /inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/SecondaryBar.module.css +0 -0
  297. /inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/StatusPanel.module.css +0 -0
  298. /inspect_ai/_view/www/src/{workspace → app/log-view}/navbar/StatusPanel.tsx +0 -0
  299. /inspect_ai/_view/www/src/{workspace → app/log-view}/tabs/InfoTab.module.css +0 -0
  300. /inspect_ai/_view/www/src/{workspace → app/log-view}/tabs/JsonTab.module.css +0 -0
  301. /inspect_ai/_view/www/src/{workspace → app/log-view}/tabs/RunningNoSamples.module.css +0 -0
  302. /inspect_ai/_view/www/src/{workspace → app/log-view}/tabs/RunningNoSamples.tsx +0 -0
  303. /inspect_ai/_view/www/src/{workspace → app/log-view}/types.ts +0 -0
  304. /inspect_ai/_view/www/src/{workspace → app/log-view}/utils.ts +0 -0
  305. /inspect_ai/_view/www/src/{plan → app/plan}/DatasetDetailView.module.css +0 -0
  306. /inspect_ai/_view/www/src/{plan → app/plan}/DetailStep.module.css +0 -0
  307. /inspect_ai/_view/www/src/{plan → app/plan}/ModelCard.module.css +0 -0
  308. /inspect_ai/_view/www/src/{plan → app/plan}/PlanDetailView.module.css +0 -0
  309. /inspect_ai/_view/www/src/{plan → app/plan}/ScorerDetailView.module.css +0 -0
  310. /inspect_ai/_view/www/src/{plan → app/plan}/ScorerDetailView.tsx +0 -0
  311. /inspect_ai/_view/www/src/{plan → app/plan}/SolverDetailView.module.css +0 -0
  312. /inspect_ai/_view/www/src/{samples → app/samples}/InlineSampleDisplay.module.css +0 -0
  313. /inspect_ai/_view/www/src/{samples → app/samples}/chat/ChatMessageRow.module.css +0 -0
  314. /inspect_ai/_view/www/src/{samples → app/samples}/chat/ChatViewVirtualList.module.css +0 -0
  315. /inspect_ai/_view/www/src/{samples → app/samples}/descriptor/score/BooleanScoreDescriptor.module.css +0 -0
  316. /inspect_ai/_view/www/src/{samples → app/samples}/descriptor/score/ObjectScoreDescriptor.module.css +0 -0
  317. /inspect_ai/_view/www/src/{samples → app/samples}/descriptor/score/PassFailScoreDescriptor.module.css +0 -0
  318. /inspect_ai/_view/www/src/{samples → app/samples}/error/FlatSampleErrorView.module.css +0 -0
  319. /inspect_ai/_view/www/src/{samples → app/samples}/error/FlatSampleErrorView.tsx +0 -0
  320. /inspect_ai/_view/www/src/{samples → app/samples}/error/SampleErrorView.tsx +0 -0
  321. /inspect_ai/_view/www/src/{samples → app/samples}/error/error.ts +0 -0
  322. /inspect_ai/_view/www/src/{samples → app/samples}/list/SampleFooter.module.css +0 -0
  323. /inspect_ai/_view/www/src/{samples → app/samples}/list/SampleFooter.tsx +0 -0
  324. /inspect_ai/_view/www/src/{samples → app/samples}/list/SampleHeader.module.css +0 -0
  325. /inspect_ai/_view/www/src/{samples → app/samples}/list/SampleList.module.css +0 -0
  326. /inspect_ai/_view/www/src/{samples → app/samples}/list/SampleSeparator.module.css +0 -0
  327. /inspect_ai/_view/www/src/{samples → app/samples}/list/SampleSeparator.tsx +0 -0
  328. /inspect_ai/_view/www/src/{samples → app/samples}/sample-tools/EpochFilter.module.css +0 -0
  329. /inspect_ai/_view/www/src/{samples → app/samples}/sample-tools/EpochFilter.tsx +0 -0
  330. /inspect_ai/_view/www/src/{samples → app/samples}/sample-tools/SelectScorer.module.css +0 -0
  331. /inspect_ai/_view/www/src/{samples → app/samples}/sample-tools/SortFilter.module.css +0 -0
  332. /inspect_ai/_view/www/src/{samples → app/samples}/sample-tools/sample-filter/SampleFilter.module.css +0 -0
  333. /inspect_ai/_view/www/src/{samples → app/samples}/sample-tools/sample-filter/tokenize.ts +0 -0
  334. /inspect_ai/_view/www/src/{samples → app/samples}/scores/SampleScores.module.css +0 -0
  335. /inspect_ai/_view/www/src/{samples → app/samples}/scores/SampleScoresGrid.module.css +0 -0
  336. /inspect_ai/_view/www/src/{samples → app/samples}/scores/SampleScoresView.module.css +0 -0
  337. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/InfoEventView.module.css +0 -0
  338. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/LoggerEventView.module.css +0 -0
  339. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/SampleInitEventView.module.css +0 -0
  340. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/SandboxEventView.module.css +0 -0
  341. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/ScoreEventView.module.css +0 -0
  342. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/SubtaskEventView.module.css +0 -0
  343. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/ToolEventView.module.css +0 -0
  344. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/EventNav.module.css +0 -0
  345. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/EventNav.tsx +0 -0
  346. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/EventNavs.module.css +0 -0
  347. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/EventNavs.tsx +0 -0
  348. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/EventPanel.module.css +0 -0
  349. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/EventProgressPanel.module.css +0 -0
  350. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/EventProgressPanel.tsx +0 -0
  351. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/EventRow.module.css +0 -0
  352. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/EventRow.tsx +0 -0
  353. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/EventSection.module.css +0 -0
  354. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/EventSection.tsx +0 -0
  355. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/event/EventTimingPanel.module.css +0 -0
  356. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/state/StateDiffView.tsx +0 -0
  357. /inspect_ai/_view/www/src/{samples → app/samples}/transcript/state/StateEventView.module.css +0 -0
  358. /inspect_ai/_view/www/src/{workspace → app}/sidebar/EvalStatus.module.css +0 -0
  359. /inspect_ai/_view/www/src/{workspace → app}/sidebar/SidebarLogEntry.module.css +0 -0
  360. /inspect_ai/_view/www/src/{workspace → app}/sidebar/SidebarScoreView.module.css +0 -0
  361. /inspect_ai/_view/www/src/{workspace → app}/sidebar/SidebarScoresView.module.css +0 -0
  362. /inspect_ai/_view/www/src/{usage → app/usage}/ModelUsagePanel.module.css +0 -0
  363. /inspect_ai/_view/www/src/{usage → app/usage}/TokenTable.module.css +0 -0
  364. /inspect_ai/_view/www/src/{usage → app/usage}/UsageCard.module.css +0 -0
  365. /inspect_ai/_view/www/src/{api → client/api}/api-shared.ts +0 -0
  366. /inspect_ai/_view/www/src/{api → client/api}/jsonrpc.ts +0 -0
  367. /inspect_ai/_view/www/src/{logfile → client/remote}/remoteZipFile.ts +0 -0
  368. {inspect_ai-0.3.89.dist-info → inspect_ai-0.3.91.dist-info}/entry_points.txt +0 -0
  369. {inspect_ai-0.3.89.dist-info → inspect_ai-0.3.91.dist-info}/licenses/LICENSE +0 -0
  370. {inspect_ai-0.3.89.dist-info → inspect_ai-0.3.91.dist-info}/top_level.txt +0 -0
@@ -15,12 +15,14 @@ export type TaskVersion = number;
15
15
  export type TaskFile = string | null;
16
16
  export type TaskRegistryName = string | null;
17
17
  export type Solver = string | null;
18
- export type SolverArgs = {} | null;
18
+ export type SolverArgs = {
19
+ [k: string]: unknown;
20
+ } | null;
19
21
  export type Tags = string[] | null;
20
22
  export type Name = string | null;
21
23
  export type Location = string | null;
22
24
  export type Samples = number | null;
23
- export type SampleIds = (number | string)[] | null;
25
+ export type SampleIds = string[] | number[] | (string | number)[] | null;
24
26
  export type Shuffled = boolean | null;
25
27
  export type Type = string;
26
28
  export type Model = string;
@@ -49,11 +51,13 @@ export type MaxToolOutput = number | null;
49
51
  export type CachePrompt = "auto" | boolean | null;
50
52
  export type ReasoningEffort = ("low" | "medium" | "high") | null;
51
53
  export type ReasoningTokens = number | null;
54
+ export type ReasoningSummary = ("concise" | "detailed" | "auto") | null;
52
55
  export type ReasoningHistory = ("none" | "all" | "last" | "auto") | null;
53
56
  export type Name1 = string;
54
57
  export type Type1 =
55
58
  | ("string" | "integer" | "number" | "boolean" | "array" | "object" | "null")
56
59
  | null;
60
+ export type Format = string | null;
57
61
  export type Description = string | null;
58
62
  export type Enum = unknown[] | null;
59
63
  export type Properties = {
@@ -71,13 +75,20 @@ export type ModelRoles = {
71
75
  export type Model1 = string;
72
76
  export type BaseUrl = string | null;
73
77
  export type Limit = number | [unknown, unknown] | null;
74
- export type SampleId = string | number | (string | number)[] | null;
78
+ export type SampleId =
79
+ | string
80
+ | number
81
+ | string[]
82
+ | number[]
83
+ | (string | number)[]
84
+ | null;
75
85
  export type Epochs = number | null;
76
86
  export type EpochsReducer = string[] | null;
77
87
  export type Name2 = string;
78
88
  export type Tools = string | string[];
79
89
  export type Approvers = ApproverPolicyConfig[];
80
90
  export type FailOnError = boolean | number | null;
91
+ export type RetryOnError = number | null;
81
92
  export type MessageLimit = number | null;
82
93
  export type TokenLimit = number | null;
83
94
  export type TimeLimit = number | null;
@@ -95,10 +106,14 @@ export type ScoreDisplay = boolean | null;
95
106
  export type Type2 = "git";
96
107
  export type Origin = string;
97
108
  export type Commit = string;
98
- export type Metadata = {} | null;
109
+ export type Metadata = {
110
+ [k: string]: unknown;
111
+ } | null;
99
112
  export type Scorers = EvalScorer[] | null;
100
113
  export type Name3 = string;
101
- export type Options = {} | null;
114
+ export type Options = {
115
+ [k: string]: unknown;
116
+ } | null;
102
117
  export type Metrics =
103
118
  | (
104
119
  | EvalMetricDefinition
@@ -111,8 +126,12 @@ export type Metrics =
111
126
  }
112
127
  | null;
113
128
  export type Name4 = string;
114
- export type Options1 = {} | null;
115
- export type Metadata1 = {} | null;
129
+ export type Options1 = {
130
+ [k: string]: unknown;
131
+ } | null;
132
+ export type Metadata1 = {
133
+ [k: string]: unknown;
134
+ } | null;
116
135
  export type Metrics1 =
117
136
  | EvalMetricDefinition[]
118
137
  | {
@@ -129,10 +148,16 @@ export type Scorer = string;
129
148
  export type Reducer = string | null;
130
149
  export type Name7 = string;
131
150
  export type Value = number;
132
- export type Metadata2 = {} | null;
133
- export type Metadata3 = {} | null;
151
+ export type Metadata2 = {
152
+ [k: string]: unknown;
153
+ } | null;
154
+ export type Metadata3 = {
155
+ [k: string]: unknown;
156
+ } | null;
134
157
  export type Scores = EvalScore[];
135
- export type Metadata4 = {} | null;
158
+ export type Metadata4 = {
159
+ [k: string]: unknown;
160
+ } | null;
136
161
  export type StartedAt = string;
137
162
  export type CompletedAt = string;
138
163
  export type InputTokens = number;
@@ -177,10 +202,10 @@ export type Image = string;
177
202
  export type Detail = "auto" | "low" | "high";
178
203
  export type Type6 = "audio";
179
204
  export type Audio = string;
180
- export type Format = "wav" | "mp3";
205
+ export type Format1 = "wav" | "mp3";
181
206
  export type Type7 = "video";
182
207
  export type Video = string;
183
- export type Format1 = "mp4" | "mpeg" | "mov";
208
+ export type Format2 = "mp4" | "mpeg" | "mov";
184
209
  export type Source = ("input" | "generate") | null;
185
210
  export type Role = "system";
186
211
  export type Id2 = string | null;
@@ -213,7 +238,7 @@ export type Id4 = string;
213
238
  export type Function = string;
214
239
  export type ParseError = string | null;
215
240
  export type Title = string | null;
216
- export type Format2 = "text" | "markdown";
241
+ export type Format3 = "text" | "markdown";
217
242
  export type Content3 = string;
218
243
  export type Type8 = string | null;
219
244
  export type Model2 = string | null;
@@ -270,7 +295,9 @@ export type Bytes1 = number[] | null;
270
295
  export type Content5 = Logprob[];
271
296
  export type Choices1 = ChatCompletionChoice[];
272
297
  export type Time = number | null;
273
- export type Metadata5 = {} | null;
298
+ export type Metadata5 = {
299
+ [k: string]: unknown;
300
+ } | null;
274
301
  export type Error = string | null;
275
302
  export type Scores1 = {
276
303
  [k: string]: Score;
@@ -285,7 +312,9 @@ export type Value1 =
285
312
  };
286
313
  export type Answer = string | null;
287
314
  export type Explanation = string | null;
288
- export type Metadata6 = {} | null;
315
+ export type Metadata6 = {
316
+ [k: string]: unknown;
317
+ } | null;
289
318
  export type Timestamp = string;
290
319
  export type WorkingStart = number;
291
320
  export type Pending = boolean | null;
@@ -301,7 +330,9 @@ export type Input1 =
301
330
  export type Choices2 = string[] | null;
302
331
  export type Target1 = string | string[];
303
332
  export type Id6 = number | string | null;
304
- export type Metadata8 = {} | null;
333
+ export type Metadata8 = {
334
+ [k: string]: unknown;
335
+ } | null;
305
336
  export type Files1 = {
306
337
  [k: string]: string;
307
338
  } | null;
@@ -522,6 +553,7 @@ export type Events = (
522
553
  export type TotalTime = number | null;
523
554
  export type WorkingTime3 = number | null;
524
555
  export type Uuid = string | null;
556
+ export type ErrorRetries = EvalError[] | null;
525
557
  export type Type15 =
526
558
  | "context"
527
559
  | "time"
@@ -544,7 +576,9 @@ export type Value2 =
544
576
  };
545
577
  export type Answer1 = string | null;
546
578
  export type Explanation2 = string | null;
547
- export type Metadata9 = {} | null;
579
+ export type Metadata9 = {
580
+ [k: string]: unknown;
581
+ } | null;
548
582
  export type SampleId1 = string | number | null;
549
583
  export type Samples2 = EvalSampleScore[];
550
584
  export type Location1 = string;
@@ -594,8 +628,12 @@ export interface EvalSpec {
594
628
  scorers: Scorers;
595
629
  metrics: Metrics1;
596
630
  }
597
- export interface TaskAttribs {}
598
- export interface TaskArgs {}
631
+ export interface TaskAttribs {
632
+ [k: string]: unknown;
633
+ }
634
+ export interface TaskArgs {
635
+ [k: string]: unknown;
636
+ }
599
637
  /**
600
638
  * Dataset used for evaluation.
601
639
  */
@@ -643,6 +681,7 @@ export interface GenerateConfig {
643
681
  cache_prompt: CachePrompt;
644
682
  reasoning_effort: ReasoningEffort;
645
683
  reasoning_tokens: ReasoningTokens;
684
+ reasoning_summary: ReasoningSummary;
646
685
  reasoning_history: ReasoningHistory;
647
686
  response_schema: ResponseSchema | null;
648
687
  }
@@ -660,6 +699,7 @@ export interface ResponseSchema {
660
699
  */
661
700
  export interface JSONSchema {
662
701
  type: Type1;
702
+ format: Format;
663
703
  description: Description;
664
704
  default: Default;
665
705
  enum: Enum;
@@ -672,7 +712,9 @@ export interface JSONSchema {
672
712
  export interface Default {
673
713
  [k: string]: unknown;
674
714
  }
675
- export interface ModelArgs {}
715
+ export interface ModelArgs {
716
+ [k: string]: unknown;
717
+ }
676
718
  /**
677
719
  * Model config.
678
720
  */
@@ -682,7 +724,9 @@ export interface EvalModelConfig {
682
724
  base_url: BaseUrl;
683
725
  args: Args;
684
726
  }
685
- export interface Args {}
727
+ export interface Args {
728
+ [k: string]: unknown;
729
+ }
686
730
  /**
687
731
  * Configuration used for evaluation.
688
732
  */
@@ -693,6 +737,7 @@ export interface EvalConfig {
693
737
  epochs_reducer: EpochsReducer;
694
738
  approval: ApprovalPolicyConfig | null;
695
739
  fail_on_error: FailOnError;
740
+ retry_on_error: RetryOnError;
696
741
  message_limit: MessageLimit;
697
742
  token_limit: TokenLimit;
698
743
  time_limit: TimeLimit;
@@ -732,7 +777,9 @@ export interface ApproverPolicyConfig {
732
777
  tools: Tools;
733
778
  params: Params;
734
779
  }
735
- export interface Params {}
780
+ export interface Params {
781
+ [k: string]: unknown;
782
+ }
736
783
  /**
737
784
  * Git revision for evaluation.
738
785
  */
@@ -770,7 +817,9 @@ export interface EvalPlanStep {
770
817
  solver: Solver1;
771
818
  params: Params1;
772
819
  }
773
- export interface Params1 {}
820
+ export interface Params1 {
821
+ [k: string]: unknown;
822
+ }
774
823
  /**
775
824
  * Model generation options.
776
825
  */
@@ -798,6 +847,7 @@ export interface GenerateConfig1 {
798
847
  cache_prompt: CachePrompt;
799
848
  reasoning_effort: ReasoningEffort;
800
849
  reasoning_tokens: ReasoningTokens;
850
+ reasoning_summary: ReasoningSummary;
801
851
  reasoning_history: ReasoningHistory;
802
852
  response_schema: ResponseSchema | null;
803
853
  }
@@ -821,7 +871,9 @@ export interface EvalScore {
821
871
  metrics: Metrics2;
822
872
  metadata: Metadata3;
823
873
  }
824
- export interface Params2 {}
874
+ export interface Params2 {
875
+ [k: string]: unknown;
876
+ }
825
877
  export interface Metrics2 {
826
878
  [k: string]: EvalMetric;
827
879
  }
@@ -834,7 +886,9 @@ export interface EvalMetric {
834
886
  params: Params3;
835
887
  metadata: Metadata2;
836
888
  }
837
- export interface Params3 {}
889
+ export interface Params3 {
890
+ [k: string]: unknown;
891
+ }
838
892
  /**
839
893
  * Timing and usage statistics.
840
894
  */
@@ -888,6 +942,7 @@ export interface EvalSample {
888
942
  working_time: WorkingTime3;
889
943
  uuid: Uuid;
890
944
  error: EvalError | null;
945
+ error_retries: ErrorRetries;
891
946
  attachments: Attachments;
892
947
  limit: EvalSampleLimit | null;
893
948
  }
@@ -934,7 +989,7 @@ export interface ContentImage {
934
989
  export interface ContentAudio {
935
990
  type: Type6;
936
991
  audio: Audio;
937
- format: Format;
992
+ format: Format1;
938
993
  }
939
994
  /**
940
995
  * Video content.
@@ -942,7 +997,7 @@ export interface ContentAudio {
942
997
  export interface ContentVideo {
943
998
  type: Type7;
944
999
  video: Video;
945
- format: Format1;
1000
+ format: Format2;
946
1001
  }
947
1002
  /**
948
1003
  * User chat message.
@@ -976,13 +1031,15 @@ export interface ToolCall {
976
1031
  view: ToolCallContent | null;
977
1032
  type: Type8;
978
1033
  }
979
- export interface Arguments {}
1034
+ export interface Arguments {
1035
+ [k: string]: unknown;
1036
+ }
980
1037
  /**
981
1038
  * Content to include in tool call view.
982
1039
  */
983
1040
  export interface ToolCallContent {
984
1041
  title: Title;
985
- format: Format2;
1042
+ format: Format3;
986
1043
  content: Content3;
987
1044
  }
988
1045
  /**
@@ -1053,8 +1110,12 @@ export interface Score {
1053
1110
  explanation: Explanation;
1054
1111
  metadata: Metadata6;
1055
1112
  }
1056
- export interface Metadata7 {}
1057
- export interface Store {}
1113
+ export interface Metadata7 {
1114
+ [k: string]: unknown;
1115
+ }
1116
+ export interface Store {
1117
+ [k: string]: unknown;
1118
+ }
1058
1119
  /**
1059
1120
  * Beginning of processing a Sample.
1060
1121
  */
@@ -1372,7 +1433,9 @@ export interface SubtaskEvent {
1372
1433
  completed: Completed2;
1373
1434
  working_time: WorkingTime1;
1374
1435
  }
1375
- export interface Input5 {}
1436
+ export interface Input5 {
1437
+ [k: string]: unknown;
1438
+ }
1376
1439
  export interface Result2 {
1377
1440
  [k: string]: unknown;
1378
1441
  }
@@ -83,39 +83,39 @@ body[class^="vscode-"] .app-main-grid {
83
83
 
84
84
  /* Inspect Font Size Styles */
85
85
  .text-size-title {
86
- font-size: var(--inspect-font-size-title);
86
+ font-size: var(--inspect-font-size-title) !important;
87
87
  }
88
88
 
89
89
  .text-size-title-secondary {
90
- font-size: var(--inspect-font-size-title-secondary);
90
+ font-size: var(--inspect-font-size-title-secondary) !important;
91
91
  }
92
92
 
93
93
  .text-size-largest {
94
- font-size: var(--inspect-font-size-largest);
94
+ font-size: var(--inspect-font-size-largest) !important;
95
95
  }
96
96
 
97
97
  .text-size-larger {
98
- font-size: var(--inspect-font-size-larger);
98
+ font-size: var(--inspect-font-size-larger) !important;
99
99
  }
100
100
 
101
101
  .text-size-large {
102
- font-size: var(--inspect-font-size-large);
102
+ font-size: var(--inspect-font-size-large) !important;
103
103
  }
104
104
 
105
105
  .text-size-base {
106
- font-size: var(--inspect-font-size-base);
106
+ font-size: var(--inspect-font-size-base) !important;
107
107
  }
108
108
 
109
109
  .text-size-small {
110
- font-size: var(--inspect-font-size-small);
110
+ font-size: var(--inspect-font-size-small) !important;
111
111
  }
112
112
 
113
113
  .text-size-smaller {
114
- font-size: var(--inspect-font-size-smaller);
114
+ font-size: var(--inspect-font-size-smaller) !important;
115
115
  }
116
116
 
117
117
  .text-size-smallest {
118
- font-size: var(--inspect-font-size-smallest);
118
+ font-size: var(--inspect-font-size-smallest) !important;
119
119
  }
120
120
 
121
121
  .text-truncate {
@@ -456,8 +456,8 @@ body {
456
456
 
457
457
  .markdown-content pre > code,
458
458
  .markdown-content pre {
459
- white-space: pre-wrap;
460
- word-wrap: anywhere;
459
+ white-space: pre-wrap !important;
460
+ word-wrap: anywhere !important;
461
461
  }
462
462
 
463
463
  .log pre code {
@@ -493,9 +493,7 @@ body {
493
493
  padding-top: 10em;
494
494
  }
495
495
 
496
- code:not(.sourceCode) {
497
- border-radius: 2px;
498
- padding: 0.2em;
496
+ code:not(.sourceCode):not(.source-code) {
499
497
  color: var(--bs-code-color);
500
498
  }
501
499
 
@@ -1023,6 +1021,16 @@ ul.jsondiffpatch-textdiff {
1023
1021
  font-weight: bold;
1024
1022
  }
1025
1023
 
1024
+ /* prism-custom.css */
1025
+ code[class*="language-"],
1026
+ pre[class*="language-"] {
1027
+ font-size: 0.8rem !important;
1028
+ }
1029
+
1030
+ .token {
1031
+ font-size: 0.8rem !important;
1032
+ }
1033
+
1026
1034
  /* PrismJS 1.29.0 https://prismjs.com/download.html#themes=prism-dark&languages=markup+css+clike+javascript+bash+python */
1027
1035
  /* This has been generated from the URL above, then scoped within the
1028
1036
  * .vscode-dark class. If it needs to be regenerated, be sure to add that back in. */
@@ -0,0 +1,168 @@
1
+ import "bootstrap-icons/font/bootstrap-icons.css";
2
+ import "bootstrap/dist/css/bootstrap.css";
3
+ import JSON5 from "json5";
4
+
5
+ import "prismjs";
6
+ import "prismjs/components/prism-bash";
7
+ import "prismjs/components/prism-clike";
8
+ import "prismjs/components/prism-javascript";
9
+ import "prismjs/components/prism-json";
10
+ import "prismjs/components/prism-python";
11
+ import "prismjs/themes/prism.css";
12
+
13
+ import "./App.css";
14
+
15
+ import ClipboardJS from "clipboard";
16
+ import { FC, useCallback, useEffect } from "react";
17
+ import { RouterProvider } from "react-router-dom";
18
+ import { ClientAPI, HostMessage } from "../client/api/types.ts";
19
+ import { useStore } from "../state/store.ts";
20
+ import { AppRouter } from "./routing/AppRouter.tsx";
21
+
22
+ interface AppProps {
23
+ api: ClientAPI;
24
+ }
25
+
26
+ /**
27
+ * Renders the Main Application
28
+ */
29
+ export const App: FC<AppProps> = ({ api }) => {
30
+ const setAppStatus = useStore((state) => state.appActions.setStatus);
31
+ const setLogs = useStore((state) => state.logsActions.setLogs);
32
+ const selectLogFile = useStore((state) => state.logsActions.selectLogFile);
33
+ const setIntialState = useStore((state) => state.appActions.setInitialState);
34
+ const rehydrated = useStore((state) => state.app.rehydrated);
35
+ const refreshLogs = useStore((state) => state.logsActions.refreshLogs);
36
+ const loadLog = useStore((state) => state.logActions.loadLog);
37
+ const pollLog = useStore((state) => state.logActions.pollLog);
38
+ const loadedLogFile = useStore((state) => state.log.loadedLog);
39
+ const selectedLogFile = useStore((state) =>
40
+ state.logsActions.getSelectedLogFile(),
41
+ );
42
+ const selectedLogSummary = useStore((state) => state.log.selectedLogSummary);
43
+ const logs = useStore((state) => state.logs.logs);
44
+
45
+ // Load a specific log
46
+ useEffect(() => {
47
+ const loadSpecificLog = async () => {
48
+ if (selectedLogFile && selectedLogFile !== loadedLogFile) {
49
+ try {
50
+ // Set loading first and wait for it to update
51
+ setAppStatus({ loading: true, error: undefined });
52
+
53
+ // Then load the log
54
+ await loadLog(selectedLogFile);
55
+
56
+ // Finally set loading to false
57
+ setAppStatus({ loading: false, error: undefined });
58
+ } catch (e) {
59
+ console.log(e);
60
+ setAppStatus({ loading: false, error: e as Error });
61
+ }
62
+ }
63
+ };
64
+
65
+ loadSpecificLog();
66
+ }, [selectedLogFile, loadedLogFile, loadLog, setAppStatus]);
67
+
68
+ useEffect(() => {
69
+ // If the component re-mounts and there is a running load loaded
70
+ // start up polling
71
+ const doPoll = async () => {
72
+ await pollLog();
73
+ };
74
+ if (selectedLogSummary?.status === "started") {
75
+ doPoll();
76
+ }
77
+ }, [pollLog, selectedLogSummary?.status]);
78
+
79
+ useEffect(() => {
80
+ if (logs.log_dir && logs.files.length === 0) {
81
+ setAppStatus({
82
+ loading: false,
83
+ error: new Error(
84
+ `No log files to display in the directory ${logs.log_dir}. Are you sure this is the correct log directory?`,
85
+ ),
86
+ });
87
+ }
88
+ }, [logs.log_dir, logs.files.length, setAppStatus]);
89
+
90
+ const onMessage = useCallback(
91
+ async (e: HostMessage) => {
92
+ switch (e.data.type) {
93
+ case "updateState": {
94
+ if (e.data.url) {
95
+ const decodedUrl = decodeURIComponent(e.data.url);
96
+ setIntialState(decodedUrl, e.data.sample_id, e.data.sample_epoch);
97
+ }
98
+ break;
99
+ }
100
+ case "backgroundUpdate": {
101
+ const decodedUrl = decodeURIComponent(e.data.url);
102
+ const log_dir = e.data.log_dir;
103
+ const isFocused = document.hasFocus();
104
+ if (!isFocused) {
105
+ if (log_dir === logs.log_dir) {
106
+ selectLogFile(decodedUrl);
107
+ } else {
108
+ api.open_log_file(e.data.url, e.data.log_dir);
109
+ }
110
+ } else {
111
+ refreshLogs();
112
+ }
113
+ break;
114
+ }
115
+ }
116
+ },
117
+ [logs, selectLogFile, refreshLogs, api],
118
+ );
119
+
120
+ // listen for updateState messages from vscode
121
+ useEffect(() => {
122
+ window.addEventListener("message", onMessage);
123
+ return () => {
124
+ window.removeEventListener("message", onMessage);
125
+ };
126
+ }, [onMessage]);
127
+
128
+ useEffect(() => {
129
+ const loadLogsAndState = async () => {
130
+ // First see if there is embedded state and if so, use that
131
+ const embeddedState = document.getElementById("logview-state");
132
+ if (embeddedState && !rehydrated) {
133
+ const state = JSON5.parse(embeddedState.textContent || "");
134
+ onMessage({ data: state });
135
+ } else {
136
+ // For non-route URL params support (legacy)
137
+ const urlParams = new URLSearchParams(window.location.search);
138
+
139
+ // If the URL provides a task file, load that
140
+ const logPath = urlParams.get("task_file");
141
+
142
+ // Replace spaces with a '+' sign:
143
+ const resolvedLogPath = logPath ? logPath.replace(" ", "+") : logPath;
144
+
145
+ if (resolvedLogPath) {
146
+ // Load only this file
147
+ setLogs({
148
+ log_dir: "",
149
+ files: [{ name: resolvedLogPath }],
150
+ });
151
+ } else {
152
+ // If a log file was passed, select it
153
+ const log_file = urlParams.get("log_file");
154
+ if (log_file) {
155
+ await selectLogFile(log_file);
156
+ }
157
+ // Else do nothing - RouteProvider will handle it
158
+ }
159
+ }
160
+
161
+ new ClipboardJS(".clipboard-button,.copy-button");
162
+ };
163
+
164
+ loadLogsAndState();
165
+ }, [setLogs, selectLogFile, refreshLogs, onMessage]);
166
+
167
+ return <RouterProvider router={AppRouter} />;
168
+ };
@@ -1,5 +1,5 @@
1
1
  import { Component, ErrorInfo, ReactNode } from "react";
2
- import { ErrorPanel } from "./components/ErrorPanel";
2
+ import { ErrorPanel } from "../components/ErrorPanel";
3
3
 
4
4
  interface Props {
5
5
  children: ReactNode;
@@ -76,6 +76,7 @@ export const ApplicationIcons = {
76
76
  play: "bi bi-play-fill",
77
77
  previous: "bi bi-chevron-left",
78
78
  refresh: "bi bi-arrow-clockwise",
79
+ retry: "bi bi-arrow-repeat",
79
80
  role: {
80
81
  user: "bi bi-person",
81
82
  system: "bi bi-cpu",
@@ -1,15 +1,15 @@
1
1
  import JSON5 from "json5";
2
2
  import { ApplicationIcons } from "../appearance/icons";
3
3
 
4
- import { ANSIDisplay } from "../components/AnsiDisplay";
5
- import { ChatMessageRenderer } from "../samples/chat/ChatMessageRenderer";
6
- import { formatNumber } from "../utils/format";
4
+ import { ChatMessageRenderer } from "../../app/samples/chat/ChatMessageRenderer";
5
+ import { ANSIDisplay } from "../../components/AnsiDisplay";
6
+ import { formatNumber } from "../../utils/format";
7
7
  import { MetaDataView } from "./MetaDataView";
8
8
 
9
9
  import clsx from "clsx";
10
10
  import { FC, Fragment, isValidElement, JSX, ReactNode } from "react";
11
- import JSONPanel from "../components/JsonPanel";
12
- import { isJson } from "../utils/json";
11
+ import JSONPanel from "../../components/JsonPanel";
12
+ import { isJson } from "../../utils/json";
13
13
  import styles from "./RenderedContent.module.css";
14
14
  import { Buckets, ContentRenderer } from "./types";
15
15