@meridianlabs/log-viewer 0.3.239 → 0.3.240

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 (106) hide show
  1. package/lib/3PTWN7RB-Bi3yCNM8.js +37 -0
  2. package/lib/3PTWN7RB-Bi3yCNM8.js.map +1 -0
  3. package/lib/{AsciinemaPlayerImpl-CskuZpHl.js → AsciinemaPlayerImpl-CsvrGGFj.js} +18 -18
  4. package/lib/{AsciinemaPlayerImpl-CskuZpHl.js.map → AsciinemaPlayerImpl-CsvrGGFj.js.map} +1 -1
  5. package/lib/KFUZFIDZ-BFtor6Xy.js +44 -0
  6. package/lib/KFUZFIDZ-BFtor6Xy.js.map +1 -0
  7. package/lib/KTUP6UL7-DsLPp6n5.js +2606 -0
  8. package/lib/KTUP6UL7-DsLPp6n5.js.map +1 -0
  9. package/lib/WP7M55MP-W5Sc6fYo.js +11012 -0
  10. package/lib/WP7M55MP-W5Sc6fYo.js.map +1 -0
  11. package/lib/e2e/error-state.spec.d.ts +2 -0
  12. package/lib/e2e/error-state.spec.d.ts.map +1 -0
  13. package/lib/e2e/fixtures/handlers.d.ts +1 -1
  14. package/lib/e2e/fixtures/handlers.d.ts.map +1 -1
  15. package/lib/index.d.ts +1 -1
  16. package/lib/index.js +4821 -1639
  17. package/lib/index.js.map +1 -1
  18. package/lib/src/app/App.d.ts +2 -1
  19. package/lib/src/app/App.d.ts.map +1 -1
  20. package/lib/src/app/log-list/LogsPanel.d.ts.map +1 -1
  21. package/lib/src/app/log-list/ViewerOptionsPopover.d.ts.map +1 -1
  22. package/lib/src/app/log-list/grid/LogListGrid.d.ts.map +1 -1
  23. package/lib/src/app/log-view/LogView.d.ts.map +1 -1
  24. package/lib/src/app/log-view/LogViewContainer.d.ts.map +1 -1
  25. package/lib/src/app/log-view/tabs/InfoTab.d.ts +3 -0
  26. package/lib/src/app/log-view/tabs/InfoTab.d.ts.map +1 -1
  27. package/lib/src/app/log-view/tabs/JsonTab.d.ts +1 -1
  28. package/lib/src/app/log-view/tabs/ModelsTab.d.ts +2 -0
  29. package/lib/src/app/log-view/tabs/ModelsTab.d.ts.map +1 -1
  30. package/lib/src/app/log-view/tabs/SamplesTab.d.ts +3 -3
  31. package/lib/src/app/log-view/tabs/SamplesTab.d.ts.map +1 -1
  32. package/lib/src/app/log-view/tabs/TaskTab.d.ts +2 -0
  33. package/lib/src/app/log-view/tabs/TaskTab.d.ts.map +1 -1
  34. package/lib/src/app/log-view/title-view/EditMetadataDialog.d.ts.map +1 -1
  35. package/lib/src/app/log-view/title-view/EditTagsDialog.d.ts.map +1 -1
  36. package/lib/src/app/log-view/title-view/TagStrip.d.ts.map +1 -1
  37. package/lib/src/app/navbar/ApplicationNavbar.d.ts.map +1 -1
  38. package/lib/src/app/plan/ModelCard.d.ts.map +1 -1
  39. package/lib/src/app/plan/PlanCard.d.ts.map +1 -1
  40. package/lib/src/app/samples/SampleDisplay.d.ts.map +1 -1
  41. package/lib/src/app/samples/SampleRetriedErrors.d.ts.map +1 -1
  42. package/lib/src/app/samples/SampleSummaryView.d.ts.map +1 -1
  43. package/lib/src/app/samples/SamplesTools.d.ts.map +1 -1
  44. package/lib/src/app/samples/descriptor/samplesDescriptor.d.ts.map +1 -1
  45. package/lib/src/app/samples/descriptor/types.d.ts +2 -1
  46. package/lib/src/app/samples/descriptor/types.d.ts.map +1 -1
  47. package/lib/src/app/samples/error/SampleErrorView.d.ts +0 -1
  48. package/lib/src/app/samples/error/SampleErrorView.d.ts.map +1 -1
  49. package/lib/src/app/samples/list/SampleList.d.ts.map +1 -1
  50. package/lib/src/app/samples/list/useSamplesView.d.ts.map +1 -1
  51. package/lib/src/app/samples/retry-display/RetryAttemptCard.d.ts +13 -0
  52. package/lib/src/app/samples/retry-display/RetryAttemptCard.d.ts.map +1 -0
  53. package/lib/src/app/samples/retry-display/RetryTerminalAnchor.d.ts +6 -0
  54. package/lib/src/app/samples/retry-display/RetryTerminalAnchor.d.ts.map +1 -0
  55. package/lib/src/app/samples/retry-display/retryAttempt.d.ts +15 -0
  56. package/lib/src/app/samples/retry-display/retryAttempt.d.ts.map +1 -0
  57. package/lib/src/app/samples/sample-tools/SelectScorer.d.ts.map +1 -1
  58. package/lib/src/app/samples/sample-tools/filterAst.d.ts.map +1 -1
  59. package/lib/src/app/samples/sample-tools/filterRegistry.d.ts.map +1 -1
  60. package/lib/src/app/samples/sample-tools/filters.d.ts.map +1 -1
  61. package/lib/src/app/samples/sample-tools/sample-filter/SampleFilter.d.ts.map +1 -1
  62. package/lib/src/app/samples/sample-tools/sample-filter/completions.d.ts.map +1 -1
  63. package/lib/src/app/samples/sample-tools/sample-filter/language.d.ts.map +1 -1
  64. package/lib/src/app/samples/status/sampleStatus.d.ts +1 -1
  65. package/lib/src/app/samples/status/sampleStatus.d.ts.map +1 -1
  66. package/lib/src/app/samples-panel/SamplesPanel.d.ts.map +1 -1
  67. package/lib/src/app/server/useAppConfig.d.ts +19 -0
  68. package/lib/src/app/server/useAppConfig.d.ts.map +1 -0
  69. package/lib/src/app/shared/samples-grid/RotatedHeader.d.ts.map +1 -1
  70. package/lib/src/app/shared/samples-grid/SamplesGrid.d.ts.map +1 -1
  71. package/lib/src/app/shared/samples-grid/columns.d.ts.map +1 -1
  72. package/lib/src/app/shared/samples-grid/types.d.ts +1 -0
  73. package/lib/src/app/shared/samples-grid/types.d.ts.map +1 -1
  74. package/lib/src/app/shared/useKeyedMemo.d.ts.map +1 -1
  75. package/lib/src/app/types.d.ts +0 -1
  76. package/lib/src/app/types.d.ts.map +1 -1
  77. package/lib/src/client/api/client-api.d.ts.map +1 -1
  78. package/lib/src/client/api/index.d.ts.map +1 -1
  79. package/lib/src/client/api/static-http/api-static-http.d.ts +2 -1
  80. package/lib/src/client/api/static-http/api-static-http.d.ts.map +1 -1
  81. package/lib/src/client/api/types.d.ts +7 -3
  82. package/lib/src/client/api/types.d.ts.map +1 -1
  83. package/lib/src/client/api/view-server/api-view-server.d.ts.map +1 -1
  84. package/lib/src/client/api/vscode/api-vscode.d.ts.map +1 -1
  85. package/lib/src/client/api/vscode/jsonrpc.d.ts +1 -0
  86. package/lib/src/client/api/vscode/jsonrpc.d.ts.map +1 -1
  87. package/lib/src/client/remote/remoteLogFile.d.ts.map +1 -1
  88. package/lib/src/client/remote/remotePendingSampleData.d.ts +1 -0
  89. package/lib/src/client/remote/remotePendingSampleData.d.ts.map +1 -1
  90. package/lib/src/client/storage/index.d.ts.map +1 -1
  91. package/lib/src/components/FindBand.d.ts.map +1 -1
  92. package/lib/src/scoring/metrics.d.ts.map +1 -1
  93. package/lib/src/state/hooks.d.ts +2 -1
  94. package/lib/src/state/hooks.d.ts.map +1 -1
  95. package/lib/src/state/logsSlice.d.ts +0 -1
  96. package/lib/src/state/logsSlice.d.ts.map +1 -1
  97. package/lib/src/state/samplePolling.d.ts.map +1 -1
  98. package/lib/src/state/sampleUtils.d.ts.map +1 -1
  99. package/lib/src/state/scoring.d.ts.map +1 -1
  100. package/lib/src/state/useLoadSample.d.ts.map +1 -1
  101. package/lib/src/state/userSettings.d.ts +2 -0
  102. package/lib/src/state/userSettings.d.ts.map +1 -1
  103. package/lib/src/utils/debugging.d.ts.map +1 -1
  104. package/lib/src/utils/workQueue.d.ts.map +1 -1
  105. package/lib/styles/index.css +608 -329
  106. package/package.json +21 -18
@@ -14368,9 +14368,24 @@ pre[class*="language-"] {
14368
14368
  --inspect-msg-label-bg-hover: #ebebef;
14369
14369
  --inspect-msg-label-border: #e4e4e9;
14370
14370
  --inspect-msg-label-text: #5f5f68;
14371
+
14372
+ /* Tool block (header/edge/zones) tokens: neutral by default so the
14373
+ design-consistent look holds when Event Colors is off; the readable
14374
+ variant points them at the colored tool tokens below. The left edges
14375
+ are plain 1px card borders uncolored, 3px accent bands colorized. */
14376
+ --inspect-tool-block-edge: 1px solid var(--bs-light-border-subtle);
14377
+ --inspect-tool-block-header-bg: var(--bs-tertiary-bg);
14378
+ /* The input continues the header surface; the output is lighter (plain
14379
+ page background) so the call and its result read as distinct zones. */
14380
+ --inspect-tool-block-input-bg: var(--inspect-tool-block-header-bg);
14381
+ --inspect-tool-block-output-bg: var(--bs-body-bg);
14382
+ --inspect-tool-block-ink: var(--bs-secondary-color);
14383
+ --inspect-turn-prose-edge: 1px solid var(--bs-light-border-subtle);
14371
14384
  }
14372
14385
 
14373
14386
  :root[data-bs-theme="dark"] {
14387
+ --inspect-tool-output-bg: #14171c;
14388
+
14374
14389
  --inspect-msg-label-bg: #2a2a2e;
14375
14390
  --inspect-msg-label-bg-hover: #33333a;
14376
14391
  --inspect-msg-label-border: #3a3a40;
@@ -14396,6 +14411,12 @@ pre[class*="language-"] {
14396
14411
  already emit (no per-role classes, no duplicated styles). */
14397
14412
  :root[data-theme-variant="readable"] {
14398
14413
  --bs-body-color: var(--inspect-readable-body-color);
14414
+ --inspect-tool-block-edge: 3px solid var(--inspect-readable-tool-call-border);
14415
+ --inspect-tool-block-header-bg: var(--inspect-readable-tool-call-bg);
14416
+ --inspect-tool-block-input-bg: var(--inspect-readable-tool-call-bg);
14417
+ --inspect-tool-block-output-bg: var(--inspect-tool-output-bg);
14418
+ --inspect-tool-block-ink: var(--inspect-readable-tool-call-border);
14419
+ --inspect-turn-prose-edge: 3px solid var(--inspect-readable-assistant-border);
14399
14420
  }
14400
14421
 
14401
14422
  :root[data-theme-variant="readable"] [data-message-role] {
@@ -14444,55 +14465,6 @@ pre[class*="language-"] {
14444
14465
  border-left: 1px solid var(--bs-light-border-subtle);
14445
14466
  }
14446
14467
 
14447
- /* The tool call is its own peer block: under readable the whole box is the blue
14448
- call surface (header + input). */
14449
- :root[data-theme-variant="readable"] [data-message-kind="tool"] {
14450
- background-color: var(--inspect-readable-tool-call-bg);
14451
- border-left: 3px solid var(--inspect-readable-tool-call-border);
14452
- }
14453
-
14454
- /* Flush the call input AND the output to the box padding edge in EVERY theme so
14455
- they line up. The input otherwise carries ToolInput's .toolView padding (and,
14456
- under readable, the .tool-call-input padding) plus the prism code block's own
14457
- padding/margin, over-indenting it relative to the output. The `:root` prefix
14458
- lifts specificity above the readable .tool-call-input rule. */
14459
- :root [data-message-kind="tool"] pre.tool-call-input,
14460
- :root [data-message-kind="tool"] div.tool-call-input {
14461
- border: 0;
14462
- border-radius: 0;
14463
- padding: 0 !important;
14464
- }
14465
- :root [data-message-kind="tool"] .tool-call-input pre[class*="language-"] {
14466
- margin: 0 !important;
14467
- padding: 0 !important;
14468
- }
14469
- :root [data-message-kind="tool-result"] .tool-output {
14470
- margin: 0 !important;
14471
- padding: 0 !important;
14472
- }
14473
- :root[data-theme-variant="readable"]
14474
- [data-message-kind="tool"]
14475
- pre.tool-call-input,
14476
- :root[data-theme-variant="readable"]
14477
- [data-message-kind="tool"]
14478
- div.tool-call-input {
14479
- background-color: transparent;
14480
- }
14481
-
14482
- /* The tool output attaches beneath its call — a light-gray box that shares the
14483
- call's blue left gutter so the pair reads as one connected card. */
14484
- :root[data-theme-variant="readable"] [data-message-kind="tool-result"] {
14485
- background-color: var(--inspect-tool-output-bg);
14486
- border-left: 3px solid var(--inspect-readable-tool-call-border);
14487
- }
14488
- :root[data-theme-variant="readable"]
14489
- [data-message-kind="tool-result"]
14490
- .tool-output {
14491
- background-color: transparent;
14492
- border: 0;
14493
- border-radius: 0;
14494
- }
14495
-
14496
14468
  /* Light subtle box around tool output (standalone transcript tool events). */
14497
14469
  :root[data-theme-variant="readable"] .tool-output {
14498
14470
  border: 1px solid var(--bs-light-border-subtle);
@@ -16220,6 +16192,17 @@ body[class^="vscode-"] {
16220
16192
  --inspect-event-panel-sticky-top: 25px;
16221
16193
  }
16222
16194
 
16195
+ /* Full-viewport gate shown while the app config loads (or if it fails). */
16196
+ .app-config-gate {
16197
+ display: flex;
16198
+ align-items: center;
16199
+ justify-content: center;
16200
+ width: 100vw;
16201
+ height: 100vh;
16202
+ padding: 1rem;
16203
+ text-align: center;
16204
+ }
16205
+
16223
16206
  li > p {
16224
16207
  margin-bottom: 0;
16225
16208
  }
@@ -17001,27 +16984,27 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17001
16984
  font-size: var(--inspect-font-size-smallest);
17002
16985
  padding: 0.1em 0.5em;
17003
16986
  }
17004
- ._outer_1j47y_1 {
16987
+ ._outer_mnipc_1 {
17005
16988
  /* Positioned so the block-left sticky toggle's containing block is this
17006
16989
  wrapper — keeps sticky behavior scoped to the panel instead of leaking
17007
16990
  to some arbitrary positioned ancestor up the tree. */
17008
16991
  position: relative;
17009
16992
  }
17010
16993
 
17011
- ._expandablePanel_1j47y_8 {
16994
+ ._expandablePanel_mnipc_8 {
17012
16995
  position: relative;
17013
16996
  }
17014
16997
 
17015
- ._expandableBordered_1j47y_12 {
16998
+ ._expandableBordered_mnipc_12 {
17016
16999
  border: solid var(--bs-light-border-subtle) 1px;
17017
17000
  padding: 0.5em;
17018
17001
  }
17019
17002
 
17020
- ._expandableTogglable_1j47y_17 {
17003
+ ._expandableTogglable_mnipc_17 {
17021
17004
  margin-bottom: 1em;
17022
17005
  }
17023
17006
 
17024
- ._expandableContents_1j47y_21 {
17007
+ ._expandableContents_mnipc_21 {
17025
17008
  font-size: var(--inspect-font-size-base);
17026
17009
  }
17027
17010
 
@@ -17037,7 +17020,7 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17037
17020
  gradient) so the affordance works on any surface, regardless of the
17038
17021
  panel's bg. The inline-right toggle is a sibling of this wrapper, so it
17039
17022
  stays fully opaque. */
17040
- ._expandableTruncated_1j47y_37 {
17023
+ ._expandableTruncated_mnipc_37 {
17041
17024
  -webkit-mask-image: linear-gradient(
17042
17025
  to bottom,
17043
17026
  black calc(100% - 3rem),
@@ -17046,7 +17029,7 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17046
17029
  mask-image: linear-gradient(to bottom, black calc(100% - 3rem), transparent);
17047
17030
  }
17048
17031
 
17049
- ._moreToggle_1j47y_46 {
17032
+ ._moreToggle_mnipc_46 {
17050
17033
  display: flex;
17051
17034
  margin-top: 0;
17052
17035
  height: 20px;
@@ -17056,11 +17039,11 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17056
17039
  color: var(--bs-link-color);
17057
17040
  }
17058
17041
 
17059
- ._moreToggle_1j47y_46._bordered_1j47y_56 {
17042
+ ._moreToggle_mnipc_46._bordered_mnipc_56 {
17060
17043
  border-top: solid var(--bs-light-border-subtle) 1px;
17061
17044
  }
17062
17045
 
17063
- ._moreToggleButton_1j47y_60 {
17046
+ ._moreToggleButton_mnipc_60 {
17064
17047
  font-size: var(--inspect-font-size-smaller);
17065
17048
  border: none;
17066
17049
  padding: 0rem 0.5rem;
@@ -17068,16 +17051,10 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17068
17051
  color: var(--bs-body-color);
17069
17052
  }
17070
17053
 
17071
- ._separator_1j47y_68 {
17072
- height: 1px;
17073
- background-color: var(--bs-light-border-subtle);
17074
- margin-top: -1px;
17075
- }
17076
-
17077
17054
  /* Fills the panel so its sticky child is bounded by the panel's rect.
17078
17055
  pointer-events: none lets clicks pass through to the content behind;
17079
17056
  the sticky child re-enables pointer events on itself. */
17080
- ._inlineToggleHolder_1j47y_77 {
17057
+ ._inlineToggleHolder_mnipc_71 {
17081
17058
  position: absolute;
17082
17059
  inset: 0;
17083
17060
  display: flex;
@@ -17089,13 +17066,13 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17089
17066
  z-index: 2;
17090
17067
  }
17091
17068
 
17092
- ._inlineToggleSticky_1j47y_89 {
17069
+ ._inlineToggleSticky_mnipc_83 {
17093
17070
  position: sticky;
17094
17071
  bottom: 0.25em;
17095
17072
  pointer-events: auto;
17096
17073
  }
17097
17074
 
17098
- ._moreToggle_1j47y_46._blockLeft_1j47y_95 {
17075
+ ._moreToggle_mnipc_46._blockLeft_mnipc_89 {
17099
17076
  width: fit-content;
17100
17077
  margin-top: 0.2em;
17101
17078
  margin-bottom: 0.5em;
@@ -17300,7 +17277,7 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17300
17277
  Compact density, mono labels, striped rows, rule-style section headers.
17301
17278
  Colors mapped to existing theme variables for light/dark support. */
17302
17279
 
17303
- ._grid_1qisc_5 {
17280
+ ._grid_25rj7_5 {
17304
17281
  font-family: var(--bs-body-font-family);
17305
17282
  font-size: var(--inspect-font-size-small);
17306
17283
  color: var(--bs-body-color);
@@ -17309,13 +17286,13 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17309
17286
 
17310
17287
  /* ── Rows ─────────────────────────────────────────────────────── */
17311
17288
 
17312
- ._rows_1qisc_14 {
17289
+ ._rows_25rj7_14 {
17313
17290
  display: grid;
17314
17291
  grid-template-columns: auto 1fr;
17315
17292
  column-gap: 1em;
17316
17293
  }
17317
17294
 
17318
- ._row_1qisc_14 {
17295
+ ._row_25rj7_14 {
17319
17296
  display: grid;
17320
17297
  grid-template-columns: subgrid;
17321
17298
  grid-column: 1 / -1;
@@ -17324,21 +17301,21 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17324
17301
  align-items: baseline;
17325
17302
  }
17326
17303
 
17327
- ._rows_1qisc_14 > ._row_1qisc_14:last-child {
17304
+ ._rows_25rj7_14 > ._row_25rj7_14:last-child {
17328
17305
  border-bottom: none;
17329
17306
  }
17330
17307
 
17331
17308
  /* ── Striped variant (opt-in via striped prop) ───────────────── */
17332
17309
 
17333
- ._striped_1qisc_35 ._row_1qisc_14 {
17310
+ ._striped_25rj7_35 ._row_25rj7_14 {
17334
17311
  padding-inline: 0.5rem;
17335
17312
  }
17336
17313
 
17337
- ._striped_1qisc_35 ._rows_1qisc_14 > ._row_1qisc_14:nth-child(even) {
17314
+ ._striped_25rj7_35 ._rows_25rj7_14 > ._row_25rj7_14:nth-child(even) {
17338
17315
  background: var(--bs-light-bg-subtle);
17339
17316
  }
17340
17317
 
17341
- ._key_1qisc_43 {
17318
+ ._key_25rj7_43 {
17342
17319
  font-family: var(--bs-font-monospace);
17343
17320
  font-size: var(--inspect-font-size-smallest);
17344
17321
  color: var(--bs-secondary);
@@ -17347,46 +17324,71 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17347
17324
  word-break: break-all;
17348
17325
  }
17349
17326
 
17350
- ._val_1qisc_52 {
17327
+ ._val_25rj7_52 {
17351
17328
  color: var(--bs-body-color);
17352
17329
  overflow-wrap: anywhere;
17353
17330
  font-feature-settings: "tnum";
17354
17331
  }
17355
17332
 
17356
- ._val_1qisc_52 pre {
17333
+ ._val_25rj7_52 pre {
17357
17334
  margin: 0;
17358
17335
  padding: 0;
17359
17336
  }
17360
17337
 
17361
- ._empty_1qisc_63 {
17338
+ ._empty_25rj7_63 {
17362
17339
  color: var(--bs-secondary);
17363
17340
  font-style: italic;
17364
17341
  font-size: var(--inspect-font-size-smallest);
17365
17342
  }
17366
17343
 
17367
- ._numVal_1qisc_69 {
17344
+ ._numVal_25rj7_69 {
17368
17345
  color: var(--bs-code-color);
17369
17346
  }
17370
17347
 
17371
- ._boolVal_1qisc_73 {
17348
+ ._boolVal_25rj7_73 {
17372
17349
  color: var(--bs-success-text-emphasis, #198754);
17373
17350
  }
17374
17351
 
17352
+ /* ── Copy button (opt-in via copyButton option) ──────────────── */
17353
+
17354
+ ._rowsCopy_25rj7_79 {
17355
+ grid-template-columns: auto 1fr max-content;
17356
+ }
17357
+
17358
+ /* Wrapper carries the hover reveal so CopyButton's own opacity
17359
+ styles still apply unchanged inside it. */
17360
+ ._copyCell_25rj7_85 {
17361
+ opacity: 0;
17362
+ justify-self: end;
17363
+ align-self: center;
17364
+ transition: opacity 0.2s;
17365
+ }
17366
+
17367
+ ._copyCell_25rj7_85 button {
17368
+ padding: 0;
17369
+ line-height: 1;
17370
+ }
17371
+
17372
+ ._row_25rj7_14:hover ._copyCell_25rj7_85,
17373
+ ._copyCell_25rj7_85:focus-within {
17374
+ opacity: 1;
17375
+ }
17376
+
17375
17377
  /* ── Sections (nested objects promoted to titled groups) ──────── */
17376
17378
 
17377
- ._group_1qisc_79 {
17379
+ ._group_25rj7_104 {
17378
17380
  margin-top: 14px;
17379
17381
  }
17380
17382
 
17381
- ._rows_1qisc_14 + ._group_1qisc_79 {
17383
+ ._rows_25rj7_14 + ._group_25rj7_104 {
17382
17384
  margin-top: 14px;
17383
17385
  }
17384
17386
 
17385
- ._group_1qisc_79 + ._group_1qisc_79 {
17387
+ ._group_25rj7_104 + ._group_25rj7_104 {
17386
17388
  margin-top: 12px;
17387
17389
  }
17388
17390
 
17389
- ._groupHeader_1qisc_91 {
17391
+ ._groupHeader_25rj7_116 {
17390
17392
  display: flex;
17391
17393
  align-items: center;
17392
17394
  gap: 10px;
@@ -17394,7 +17396,7 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17394
17396
  padding-bottom: 2px;
17395
17397
  }
17396
17398
 
17397
- ._groupKey_1qisc_99 {
17399
+ ._groupKey_25rj7_124 {
17398
17400
  font-family: var(--bs-font-monospace);
17399
17401
  font-size: var(--inspect-font-size-smallest);
17400
17402
  font-weight: 500;
@@ -17402,7 +17404,7 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17402
17404
  letter-spacing: 0;
17403
17405
  }
17404
17406
 
17405
- ._groupRule_1qisc_107 {
17407
+ ._groupRule_25rj7_132 {
17406
17408
  flex: 1;
17407
17409
  height: 1px;
17408
17410
  background: var(--bs-light-border-subtle);
@@ -17410,45 +17412,45 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17410
17412
 
17411
17413
  /* ── Depth 1 — tighter, lighter ──────────────────────────────── */
17412
17414
 
17413
- ._depth1_1qisc_115 {
17415
+ ._depth1_25rj7_140 {
17414
17416
  font-size: calc(var(--inspect-font-size-small) - 0.05rem);
17415
17417
  }
17416
17418
 
17417
- ._depth1_1qisc_115 ._row_1qisc_14 {
17419
+ ._depth1_25rj7_140 ._row_25rj7_14 {
17418
17420
  padding-block: 2px;
17419
17421
  }
17420
17422
 
17421
- ._depth1_1qisc_115 ._key_1qisc_43 {
17423
+ ._depth1_25rj7_140 ._key_25rj7_43 {
17422
17424
  color: var(--bs-tertiary-color);
17423
17425
  font-size: var(--inspect-font-size-smallestest);
17424
17426
  }
17425
17427
 
17426
- ._depth1Group_1qisc_128 {
17428
+ ._depth1Group_25rj7_153 {
17427
17429
  margin-top: 10px;
17428
17430
  }
17429
17431
 
17430
- ._depth1Group_1qisc_128 ._groupHeader_1qisc_91 {
17432
+ ._depth1Group_25rj7_153 ._groupHeader_25rj7_116 {
17431
17433
  margin-bottom: 2px;
17432
17434
  }
17433
17435
 
17434
- ._depth1Group_1qisc_128 ._groupKey_1qisc_99 {
17436
+ ._depth1Group_25rj7_153 ._groupKey_25rj7_124 {
17435
17437
  color: var(--bs-secondary);
17436
17438
  font-size: var(--inspect-font-size-smallestest);
17437
17439
  }
17438
17440
 
17439
17441
  /* ── Depth 2+ — yet tighter ──────────────────────────────────── */
17440
17442
 
17441
- ._depth2_1qisc_143 {
17443
+ ._depth2_25rj7_168 {
17442
17444
  font-size: calc(var(--inspect-font-size-small) - 0.1rem);
17443
17445
  }
17444
17446
 
17445
- ._depth2_1qisc_143 ._row_1qisc_14 {
17447
+ ._depth2_25rj7_168 ._row_25rj7_14 {
17446
17448
  padding-block: 2px;
17447
17449
  }
17448
17450
 
17449
17451
  /* ── Toggle (maxRows collapse) ───────────────────────────────── */
17450
17452
 
17451
- ._toggleContainer_1qisc_153 {
17453
+ ._toggleContainer_25rj7_178 {
17452
17454
  display: flex;
17453
17455
  height: 20px;
17454
17456
  margin-top: 8px;
@@ -17459,7 +17461,7 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17459
17461
  width: fit-content;
17460
17462
  }
17461
17463
 
17462
- ._toggleButton_1qisc_164 {
17464
+ ._toggleButton_25rj7_189 {
17463
17465
  font-size: var(--inspect-font-size-smallest);
17464
17466
  border: none;
17465
17467
  padding: 0 0.5rem;
@@ -17484,7 +17486,7 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17484
17486
  ._preCompact_seqs2_15 {
17485
17487
  margin-bottom: 0;
17486
17488
  }
17487
- ._keyPairContainer_qjlxf_1 {
17489
+ ._keyPairContainer_1u1d5_1 {
17488
17490
  display: grid;
17489
17491
  grid-template-columns: max-content auto;
17490
17492
  column-gap: 0.5em;
@@ -17492,21 +17494,45 @@ button._segment_1d1i3_10._disabled_1d1i3_41:hover {
17492
17494
  padding-bottom: 4px;
17493
17495
  }
17494
17496
 
17495
- ._keyPairBordered_qjlxf_9 {
17497
+ ._keyPairBordered_1u1d5_9 {
17496
17498
  border-bottom: solid 1px var(--bs-border-color);
17497
17499
  }
17498
17500
 
17499
- ._key_qjlxf_1 {
17501
+ /* Copy button column (opt-in via copyButton prop) */
17502
+
17503
+ ._keyPairCopy_1u1d5_15 {
17504
+ grid-template-columns: max-content auto max-content;
17505
+ }
17506
+
17507
+ /* Wrapper carries the hover reveal so CopyButton's own opacity
17508
+ styles still apply unchanged inside it. */
17509
+ ._copyCell_1u1d5_21 {
17510
+ opacity: 0;
17511
+ justify-self: end;
17512
+ transition: opacity 0.2s;
17513
+ }
17514
+
17515
+ ._copyCell_1u1d5_21 button {
17516
+ padding: 0;
17517
+ line-height: 1;
17518
+ }
17519
+
17520
+ ._keyPairContainer_1u1d5_1:hover ._copyCell_1u1d5_21,
17521
+ ._copyCell_1u1d5_21:focus-within {
17522
+ opacity: 1;
17523
+ }
17524
+
17525
+ ._key_1u1d5_1 {
17500
17526
  display: grid;
17501
17527
  grid-template-columns: 1em auto;
17502
17528
  cursor: pointer;
17503
17529
  }
17504
17530
 
17505
- ._pre_qjlxf_19 {
17531
+ ._pre_1u1d5_43 {
17506
17532
  margin-bottom: 0;
17507
17533
  }
17508
17534
 
17509
- ._treeIcon_qjlxf_23 {
17535
+ ._treeIcon_1u1d5_47 {
17510
17536
  margin-top: -3px;
17511
17537
  }
17512
17538
  ._circle_1seo2_1 {
@@ -18552,47 +18578,181 @@ a._citationLink_1ggvf_9:hover {
18552
18578
  overflow-wrap: break-word !important;
18553
18579
  word-break: break-all !important;
18554
18580
  }
18555
- ._mcpToolUse_1792k_1 {
18556
- margin-left: 0.5em;
18557
- margin-top: 2em;
18558
- margin-bottom: 2em;
18559
- padding: 0.25em 0.75em;
18560
- border-left: solid 5px var(--bs-border-color);
18581
+ /* Shared tool-call block grammar. Colors come from the tool-block tokens,
18582
+ which are neutral by default and only colorized under the readable
18583
+ variant (the Event Colors toggle); the output well is the tool-output
18584
+ fill, hairlines/border are the subtle border token. */
18585
+ ._block_ze280_5 {
18586
+ border-left: var(--inspect-tool-block-edge);
18587
+ }
18588
+
18589
+ ._standalone_ze280_9 {
18590
+ border-top: 1px solid var(--bs-light-border-subtle);
18591
+ border-right: 1px solid var(--bs-light-border-subtle);
18592
+ border-bottom: 1px solid var(--bs-light-border-subtle);
18593
+ border-radius: var(--bs-border-radius);
18594
+ overflow: hidden;
18595
+ }
18596
+
18597
+ ._header_ze280_17 {
18598
+ display: flex;
18599
+ align-items: center;
18600
+ gap: 9px;
18601
+ padding: 9px 13px;
18602
+ background-color: var(--inspect-tool-block-header-bg);
18603
+ }
18604
+
18605
+ ._icon_ze280_25 {
18606
+ flex: none;
18607
+ font-size: 13px;
18608
+ color: var(--inspect-tool-block-ink);
18609
+ }
18610
+
18611
+ ._title_ze280_31 {
18612
+ flex: none;
18613
+ font-family: var(--bs-font-monospace);
18614
+ font-size: var(--inspect-font-size-smaller);
18615
+ font-weight: 600;
18616
+ color: var(--inspect-tool-block-ink);
18617
+ }
18618
+
18619
+ ._summary_ze280_39 {
18620
+ flex: 1;
18621
+ min-width: 0;
18622
+ overflow: hidden;
18623
+ text-overflow: ellipsis;
18624
+ white-space: nowrap;
18625
+ font-family: var(--bs-font-monospace);
18626
+ font-size: var(--inspect-font-size-smaller);
18627
+ color: var(--bs-secondary-color);
18628
+ }
18629
+
18630
+ ._pill_ze280_50 {
18631
+ flex: none;
18632
+ /* Right-aligned even when there is no args summary to push it over. */
18633
+ margin-left: auto;
18634
+ font-size: var(--inspect-font-size-smallestest);
18635
+ font-weight: 500;
18636
+ line-height: 1.5;
18637
+ color: var(--bs-secondary-color);
18638
+ background-color: var(--bs-body-bg);
18639
+ border: 1px solid var(--bs-light-border-subtle);
18640
+ border-radius: 999px;
18641
+ padding: 1px 7px;
18642
+ }
18643
+
18644
+ ._inputZone_ze280_64 {
18645
+ border-top: 1px solid var(--bs-light-border-subtle);
18646
+ background-color: var(--inspect-tool-block-input-bg);
18647
+ padding: 0.5rem;
18648
+ overflow-x: auto;
18649
+ }
18650
+
18651
+ ._outputWell_ze280_71 {
18652
+ border-top: 1px solid var(--bs-light-border-subtle);
18653
+ background-color: var(--inspect-tool-block-output-bg);
18654
+ padding: 12px 15px;
18655
+ font-size: var(--inspect-font-size-smaller);
18656
+ line-height: 1.6;
18657
+ }
18658
+
18659
+ /* The zones own their padding/fill; flatten the boxed surfaces that nested
18660
+ renderers (prism code blocks, tool-call-input call-outs, tool output wells)
18661
+ would otherwise stack inside them. !important outranks the readable
18662
+ variant's higher-specificity :root[data-theme-variant] surface rules. */
18663
+ ._inputZone_ze280_64 pre.tool-call-input,
18664
+ ._inputZone_ze280_64 div.tool-call-input {
18665
+ background-color: transparent !important;
18666
+ border: 0 !important;
18667
+ border-radius: 0 !important;
18668
+ padding: 0 !important;
18669
+ margin: 0 !important;
18670
+ }
18671
+
18672
+ ._inputZone_ze280_64 .tool-call-input pre[class*="language-"] {
18673
+ margin: 0 !important;
18674
+ padding: 0 !important;
18675
+ background-color: transparent !important;
18676
+ }
18677
+
18678
+ ._outputWell_ze280_71 .tool-output {
18679
+ background-color: transparent !important;
18680
+ border: 0 !important;
18681
+ border-radius: 0 !important;
18682
+ margin: 0 !important;
18683
+ padding: 0 !important;
18684
+ }
18685
+ ._error_z9ujs_1 {
18686
+ color: var(--inspect-tool-error-color);
18687
+ background-color: var(--inspect-tool-error-bg);
18688
+ padding: 0.5em 0.7em;
18689
+ border-radius: var(--bs-border-radius);
18690
+ font-family: var(--bs-font-monospace);
18691
+ overflow-wrap: anywhere;
18692
+ margin: 0.5em 0;
18561
18693
  }
18562
18694
 
18563
- ._title_1792k_9 {
18695
+ ._type_z9ujs_11 {
18696
+ font-weight: 600;
18564
18697
  margin-bottom: 0.25em;
18698
+ text-transform: capitalize;
18699
+ }
18700
+
18701
+ ._message_z9ujs_17 {
18702
+ white-space: pre-wrap;
18703
+ }
18704
+ ._todoList_1t8rx_1 {
18705
+ margin-top: 0.5em;
18706
+ margin-bottom: 0.5em;
18565
18707
  display: grid;
18566
- grid-template-columns: auto 1fr auto;
18708
+ grid-template-columns: auto 1fr;
18567
18709
  column-gap: 0.3em;
18568
- align-items: baseline;
18569
- border-bottom: solid 1px var(--bs-border-color);
18570
18710
  }
18571
18711
 
18572
- ._titleText_1792k_18 {
18712
+ ._inProgress_1t8rx_9 {
18713
+ font-weight: bold;
18714
+ }
18715
+ ._outputPre_7phrr_1 {
18716
+ padding: 0.5em;
18717
+ margin-top: 0.25em;
18718
+ margin-bottom: 0;
18719
+ }
18720
+
18721
+ ._toolView_7phrr_7 {
18722
+ padding-top: 0 !important;
18723
+ }
18724
+
18725
+ ._toolView_7phrr_7 pre {
18573
18726
  margin-bottom: 0;
18574
18727
  }
18575
18728
 
18576
- ._args_1792k_22 {
18577
- display: grid;
18578
- grid-template-columns: auto 1fr;
18579
- column-gap: 0.5em;
18580
- row-gap: 0.1em;
18581
- margin-bottom: 1em;
18582
- align-items: baseline;
18729
+ ._toolView_7phrr_7 p > code {
18730
+ font-size: var(--inspect-text-size-small) !important;
18731
+ color: var(--bs-body-color) !important;
18583
18732
  }
18584
18733
 
18585
- ._argLabel_1792k_31 pre {
18586
- margin: 0;
18734
+ ._outputCode_7phrr_20 {
18735
+ font-size: var(--inspect-text-size-small) !important;
18736
+ overflow-wrap: anywhere !important;
18737
+ white-space: pre-wrap !important;
18738
+ }
18739
+ ._tool_13xcg_1 {
18740
+ margin-bottom: 0.5em;
18587
18741
  }
18588
18742
 
18589
- ._error_1792k_35 {
18590
- color: red;
18591
- font-weight: bold;
18743
+ ._execOutput_13xcg_5 {
18744
+ margin: 0;
18745
+ padding: 0;
18746
+ background-color: transparent;
18747
+ border: 0;
18748
+ font-size: var(--inspect-font-size-smaller);
18749
+ line-height: 1.5;
18750
+ white-space: pre-wrap;
18751
+ overflow-wrap: anywhere;
18592
18752
  }
18593
18753
 
18594
- ._toolPanel_1792k_40 {
18595
- display: contents;
18754
+ ._execError_13xcg_16 {
18755
+ color: var(--inspect-tool-error-color);
18596
18756
  }
18597
18757
  ._toolImage_1cvly_1 {
18598
18758
  max-width: 800px;
@@ -18682,61 +18842,17 @@ a._citationLink_1ggvf_9:hover {
18682
18842
  display: grid;
18683
18843
  row-gap: 0.5em;
18684
18844
  }
18685
- ._todoList_1t8rx_1 {
18686
- margin-top: 0.5em;
18687
- margin-bottom: 0.5em;
18688
- display: grid;
18689
- grid-template-columns: auto 1fr;
18690
- column-gap: 0.3em;
18691
- }
18692
-
18693
- ._inProgress_1t8rx_9 {
18694
- font-weight: bold;
18695
- }
18696
- ._outputPre_7phrr_1 {
18697
- padding: 0.5em;
18698
- margin-top: 0.25em;
18699
- margin-bottom: 0;
18700
- }
18701
-
18702
- ._toolView_7phrr_7 {
18703
- padding-top: 0 !important;
18704
- }
18705
-
18706
- ._toolView_7phrr_7 pre {
18707
- margin-bottom: 0;
18708
- }
18709
-
18710
- ._toolView_7phrr_7 p > code {
18711
- font-size: var(--inspect-text-size-small) !important;
18712
- color: var(--bs-body-color) !important;
18713
- }
18714
-
18715
- ._outputCode_7phrr_20 {
18716
- font-size: var(--inspect-text-size-small) !important;
18717
- overflow-wrap: anywhere !important;
18718
- white-space: pre-wrap !important;
18719
- }
18720
- ._error_z9ujs_1 {
18721
- color: var(--inspect-tool-error-color);
18722
- background-color: var(--inspect-tool-error-bg);
18723
- padding: 0.5em 0.7em;
18845
+ /* Custom tool views (answer, submit, todo lists) own their full rendering —
18846
+ they get the block frame (accent edge + container border) without the
18847
+ header row. */
18848
+ ._custom_v2cay_4 {
18849
+ border: 1px solid var(--bs-light-border-subtle);
18850
+ border-left: var(--inspect-tool-block-edge);
18724
18851
  border-radius: var(--bs-border-radius);
18725
- font-family: var(--bs-font-monospace);
18726
- overflow-wrap: anywhere;
18727
- margin: 0.5em 0;
18728
- }
18729
-
18730
- ._type_z9ujs_11 {
18731
- font-weight: 600;
18732
- margin-bottom: 0.25em;
18733
- text-transform: capitalize;
18734
- }
18735
-
18736
- ._message_z9ujs_17 {
18737
- white-space: pre-wrap;
18852
+ overflow: hidden;
18853
+ padding: 0.7rem;
18738
18854
  }
18739
- ._message_1gt9a_1 {
18855
+ ._message_o8d3m_1 {
18740
18856
  font-weight: 300;
18741
18857
  margin-left: 0;
18742
18858
  margin-right: 0;
@@ -18744,17 +18860,32 @@ a._citationLink_1ggvf_9:hover {
18744
18860
  min-width: 0;
18745
18861
  }
18746
18862
 
18747
- ._systemRole_1gt9a_9 {
18863
+ ._systemRole_o8d3m_9 {
18748
18864
  opacity: 0.7;
18749
18865
  }
18750
18866
 
18751
- ._timestamp_1gt9a_13 {
18867
+ /* Segmented assistant turn: prose bands and flush tool rows stack with
18868
+ hairline separators inside the turn container. */
18869
+ ._turnSegments_o8d3m_15 > * + * {
18870
+ border-top: 1px solid var(--bs-light-border-subtle);
18871
+ }
18872
+
18873
+ /* The prose row keeps the assistant band; the left accent token is neutral
18874
+ by default and colorized under the readable variant (where the
18875
+ [data-message-role] rules re-apply the identical color). Extra vertical
18876
+ padding gives the prose rows more weight between the tool rows. */
18877
+ ._proseSegment_o8d3m_23 {
18878
+ padding: 0.9rem 0.7rem;
18879
+ border-left: var(--inspect-turn-prose-edge);
18880
+ }
18881
+
18882
+ ._timestamp_o8d3m_28 {
18752
18883
  opacity: 0.5;
18753
18884
  font-size: var(--inspect-font-size-smaller);
18754
18885
  font-weight: normal;
18755
18886
  }
18756
18887
 
18757
- ._messageGrid_1gt9a_19 {
18888
+ ._messageGrid_o8d3m_34 {
18758
18889
  display: grid;
18759
18890
  grid-template-columns: max-content max-content;
18760
18891
  column-gap: 0.5em;
@@ -18764,45 +18895,45 @@ a._citationLink_1ggvf_9:hover {
18764
18895
  align-items: flex-start;
18765
18896
  }
18766
18897
 
18767
- ._toolMessageGrid_1gt9a_29 {
18898
+ ._toolMessageGrid_o8d3m_44 {
18768
18899
  border-bottom: solid 1px var(--bs-border-color);
18769
18900
  }
18770
18901
 
18771
- ._headerEnd_1gt9a_33 {
18902
+ ._headerEnd_o8d3m_48 {
18772
18903
  display: inline-flex;
18773
18904
  align-items: center;
18774
18905
  gap: 0.5em;
18775
18906
  flex: none;
18776
18907
  }
18777
18908
 
18778
- ._messageContents_1gt9a_40 {
18909
+ ._messageContents_o8d3m_55 {
18779
18910
  margin-left: 0;
18780
18911
  padding-bottom: 0;
18781
18912
  }
18782
18913
 
18783
- ._messageContents_1gt9a_40._indented_1gt9a_45 {
18914
+ ._messageContents_o8d3m_55._indented_o8d3m_60 {
18784
18915
  margin-left: 0rem;
18785
18916
  }
18786
18917
 
18787
- ._copyLink_1gt9a_49 {
18918
+ ._copyLink_o8d3m_64 {
18788
18919
  opacity: 0;
18789
18920
  padding-left: 0;
18790
18921
  padding-right: 2em;
18791
18922
  margin-left: 0.2rem;
18792
18923
  }
18793
18924
 
18794
- ._copyLink_1gt9a_49:hover {
18925
+ ._copyLink_o8d3m_64:hover {
18795
18926
  opacity: 0.75;
18796
18927
  }
18797
18928
 
18798
- ._metadataLabel_1gt9a_60 {
18929
+ ._metadataLabel_o8d3m_75 {
18799
18930
  padding-top: 1em;
18800
18931
  }
18801
18932
 
18802
- ._hover_1gt9a_64 ._copyLink_1gt9a_49 {
18933
+ ._hover_o8d3m_79 ._copyLink_o8d3m_64 {
18803
18934
  opacity: 0.75;
18804
18935
  }
18805
- ._grid_qa1cd_1 {
18936
+ ._grid_1mah3_1 {
18806
18937
  display: grid;
18807
18938
  grid-template-columns: minmax(0, 1fr);
18808
18939
  /* row-gap spaces blocks within a turn (message → tool box); margin-bottom
@@ -18811,17 +18942,17 @@ a._citationLink_1ggvf_9:hover {
18811
18942
  margin-bottom: 0.75rem;
18812
18943
  }
18813
18944
 
18814
- ._number_qa1cd_10 {
18945
+ ._number_1mah3_10 {
18815
18946
  margin-top: 0.1em;
18816
18947
  }
18817
18948
 
18818
- ._user_qa1cd_14 {
18949
+ ._user_1mah3_14 {
18819
18950
  background-color: var(--bs-secondary-bg);
18820
18951
  border-radius: var(--bs-border-radius);
18821
18952
  border: solid 1px var(--bs-light-border-subtle);
18822
18953
  }
18823
18954
 
18824
- ._container_qa1cd_20 {
18955
+ ._container_1mah3_20 {
18825
18956
  padding-left: 0.7rem;
18826
18957
  padding-right: 0.7rem;
18827
18958
  padding-top: 0.5rem;
@@ -18829,81 +18960,74 @@ a._citationLink_1ggvf_9:hover {
18829
18960
  border-right: solid 1px var(--bs-light-border-subtle);
18830
18961
  }
18831
18962
 
18832
- ._first_qa1cd_28 {
18963
+ ._first_1mah3_28 {
18833
18964
  border-top-left-radius: var(--bs-border-radius);
18834
18965
  border-top-right-radius: var(--bs-border-radius);
18835
18966
  border-top: solid 1px var(--bs-light-border-subtle);
18836
18967
  padding-top: 0.7rem;
18837
18968
  }
18838
18969
 
18839
- ._last_qa1cd_35 {
18970
+ ._last_1mah3_35 {
18840
18971
  border-bottom-left-radius: var(--bs-border-radius);
18841
18972
  border-bottom-right-radius: var(--bs-border-radius);
18842
18973
  border-bottom: solid 1px var(--bs-light-border-subtle);
18843
18974
  padding-bottom: 0.7rem;
18844
18975
  }
18845
18976
 
18846
- ._label_qa1cd_42 {
18977
+ ._label_1mah3_42 {
18847
18978
  display: flex;
18848
18979
  justify-content: flex-end;
18849
18980
  padding-top: 0.7rem;
18850
18981
  margin-left: 0.4em;
18851
18982
  }
18852
18983
 
18853
- ._highlight_qa1cd_49 {
18984
+ ._highlight_1mah3_49 {
18854
18985
  background-color: rgba(var(--bs-info-rgb), 0.12);
18855
18986
  }
18856
18987
 
18857
- /* Prototype: self-contained box (used when tool calls are un-embedded) so the
18858
- assistant message and each tool call read as separate cards rather than one
18859
- connected band. */
18860
- ._box_qa1cd_56 {
18988
+ /* Assistant turn with server-side tool calls: one seamless container the
18989
+ prose band and flush tool rows inside supply their own left edges, so the
18990
+ frame itself has no left border. */
18991
+ ._turnContainer_1mah3_56 {
18992
+ border: 1px solid var(--bs-light-border-subtle);
18993
+ border-left: none;
18994
+ border-radius: var(--bs-border-radius);
18995
+ overflow: hidden;
18996
+ }
18997
+
18998
+ /* Self-contained box (used when tool calls are un-embedded) so the assistant
18999
+ message and each tool call read as separate cards rather than one connected
19000
+ band. */
19001
+ ._box_1mah3_66 {
18861
19002
  position: relative;
18862
19003
  border: solid 1px var(--bs-light-border-subtle);
18863
19004
  border-radius: var(--bs-border-radius);
18864
19005
  padding: 0.7rem;
18865
19006
  }
18866
19007
 
18867
- /* An assistant turn rendered as one connected stack: the message, its tool
18868
- call(s), and output(s) sit flush so they read as a single card with a
18869
- continuous left gutter. */
18870
- ._attachedGroup_qa1cd_66 {
18871
- display: flex;
18872
- flex-direction: column;
18873
- }
18874
-
18875
- ._attachedBottom_qa1cd_71 {
18876
- border-bottom-left-radius: 0;
18877
- border-bottom-right-radius: 0;
18878
- /* Drop the divider so the call/output pair reads as one seamless card —
18879
- only the background color shifts (blue call → gray output). */
18880
- border-bottom: 0;
18881
- }
18882
-
18883
- ._attachedTop_qa1cd_79 {
18884
- border-top-left-radius: 0;
18885
- border-top-right-radius: 0;
18886
- border-top: 0;
19008
+ /* Tool blocks carry their own frame; the wrapper only anchors the chip. */
19009
+ ._toolPart_1mah3_74 {
19010
+ position: relative;
18887
19011
  }
18888
19012
 
18889
19013
  /* Tool-call number chip, pinned to the top-right of its box to mirror the
18890
19014
  position chip on a message's role line. */
18891
- ._toolLabel_qa1cd_87 {
19015
+ ._toolLabel_1mah3_80 {
18892
19016
  position: absolute;
18893
- top: 0.7rem;
19017
+ top: 0.45rem;
18894
19018
  right: 0.7rem;
18895
19019
  z-index: 1;
18896
19020
  }
18897
19021
 
18898
- ._bottomMargin_qa1cd_94 {
19022
+ ._bottomMargin_1mah3_87 {
18899
19023
  margin-bottom: 0.75rem;
18900
19024
  }
18901
19025
 
18902
- ._codeCompact_qa1cd_98 {
19026
+ ._codeCompact_1mah3_91 {
18903
19027
  /* styles for compact code display */
18904
19028
  }
18905
19029
 
18906
- ._simple_qa1cd_102 {
19030
+ ._simple_1mah3_95 {
18907
19031
  /* styles for simple display mode */
18908
19032
  }
18909
19033
  ._badge_10sr6_1,
@@ -20296,7 +20420,7 @@ a._citationLink_1ggvf_9:hover {
20296
20420
  -webkit-user-select: none;
20297
20421
  user-select: none;
20298
20422
  }
20299
- ._root_t7oq7_1 {
20423
+ ._root_1qk7q_1 {
20300
20424
  display: flex;
20301
20425
  flex-direction: column;
20302
20426
  width: 100%;
@@ -20304,7 +20428,7 @@ a._citationLink_1ggvf_9:hover {
20304
20428
  min-height: 0;
20305
20429
  }
20306
20430
 
20307
- ._container_t7oq7_9 {
20431
+ ._container_1qk7q_9 {
20308
20432
  display: grid;
20309
20433
  width: 100%;
20310
20434
  grid-template-columns: var(--outline-width, 180px) 1px 1fr 1px var(
@@ -20314,44 +20438,50 @@ a._citationLink_1ggvf_9:hover {
20314
20438
  min-height: 100vh;
20315
20439
  }
20316
20440
 
20317
- ._container_t7oq7_9 > * {
20441
+ /* Embedded in another scroll container (e.g. a retry card): size to content
20442
+ instead of reserving a full viewport. */
20443
+ ._container_1qk7q_9._embedded_1qk7q_21 {
20444
+ min-height: 0;
20445
+ }
20446
+
20447
+ ._container_1qk7q_9 > * {
20318
20448
  min-width: 0;
20319
20449
  padding-bottom: 1rem;
20320
20450
  }
20321
20451
 
20322
- ._container_t7oq7_9._outlineCollapsed_t7oq7_24 {
20452
+ ._container_1qk7q_9._outlineCollapsed_1qk7q_30 {
20323
20453
  grid-template-columns: 22px 1px 1fr 1px var(--right-pane-width, 360px);
20324
20454
  }
20325
20455
 
20326
- ._container_t7oq7_9._noOutline_t7oq7_28 {
20456
+ ._container_1qk7q_9._noOutline_1qk7q_34 {
20327
20457
  grid-template-columns: 1fr 1px var(--right-pane-width, 360px);
20328
20458
  }
20329
20459
 
20330
- ._container_t7oq7_9._rightPaneCollapsed_t7oq7_32 {
20460
+ ._container_1qk7q_9._rightPaneCollapsed_1qk7q_38 {
20331
20461
  grid-template-columns: var(--outline-width, 180px) 1px 1fr 1px 22px;
20332
20462
  }
20333
20463
 
20334
- ._container_t7oq7_9._outlineCollapsed_t7oq7_24._rightPaneCollapsed_t7oq7_32 {
20464
+ ._container_1qk7q_9._outlineCollapsed_1qk7q_30._rightPaneCollapsed_1qk7q_38 {
20335
20465
  grid-template-columns: 22px 1px 1fr 1px 22px;
20336
20466
  }
20337
20467
 
20338
- ._container_t7oq7_9._noOutline_t7oq7_28._rightPaneCollapsed_t7oq7_32 {
20468
+ ._container_1qk7q_9._noOutline_1qk7q_34._rightPaneCollapsed_1qk7q_38 {
20339
20469
  grid-template-columns: 1fr 1px 22px;
20340
20470
  }
20341
20471
 
20342
- ._container_t7oq7_9._noRightPane_t7oq7_44 {
20472
+ ._container_1qk7q_9._noRightPane_1qk7q_50 {
20343
20473
  grid-template-columns: var(--outline-width, 180px) 1px 1fr;
20344
20474
  }
20345
20475
 
20346
- ._container_t7oq7_9._outlineCollapsed_t7oq7_24._noRightPane_t7oq7_44 {
20476
+ ._container_1qk7q_9._outlineCollapsed_1qk7q_30._noRightPane_1qk7q_50 {
20347
20477
  grid-template-columns: 22px 1px 1fr;
20348
20478
  }
20349
20479
 
20350
- ._container_t7oq7_9._noOutline_t7oq7_28._noRightPane_t7oq7_44 {
20480
+ ._container_1qk7q_9._noOutline_1qk7q_34._noRightPane_1qk7q_50 {
20351
20481
  grid-template-columns: 1fr;
20352
20482
  }
20353
20483
 
20354
- ._outline_t7oq7_24 {
20484
+ ._outline_1qk7q_30 {
20355
20485
  padding-left: 0.6rem;
20356
20486
  /* Prevent stretching to the full grid-row height so that
20357
20487
  position:sticky has room to travel within the cell. */
@@ -20361,13 +20491,13 @@ a._citationLink_1ggvf_9:hover {
20361
20491
  /* Cap height to the visible area below the sticky offset and
20362
20492
  scroll internally when the outline is taller.
20363
20493
  Only when expanded — overflow clips the toggle button when collapsed. */
20364
- ._container_t7oq7_9:not(._outlineCollapsed_t7oq7_24) > ._outline_t7oq7_24 {
20494
+ ._container_1qk7q_9:not(._outlineCollapsed_1qk7q_30) > ._outline_1qk7q_30 {
20365
20495
  max-height: calc(var(--scroller-height, 100vh) - var(--outline-top, 0px));
20366
20496
  overflow-y: auto;
20367
20497
  scrollbar-width: thin;
20368
20498
  }
20369
20499
 
20370
- ._outlineToggle_t7oq7_72 {
20500
+ ._outlineToggle_1qk7q_78 {
20371
20501
  all: unset;
20372
20502
  cursor: pointer;
20373
20503
  font-size: 0.8em;
@@ -20376,26 +20506,26 @@ a._citationLink_1ggvf_9:hover {
20376
20506
  right: 0.2rem;
20377
20507
  }
20378
20508
 
20379
- ._outlineToggle_t7oq7_72[aria-disabled="true"] {
20509
+ ._outlineToggle_1qk7q_78[aria-disabled="true"] {
20380
20510
  cursor: default;
20381
20511
  opacity: 0.4;
20382
20512
  }
20383
20513
 
20384
- ._separator_t7oq7_86 {
20514
+ ._separator_1qk7q_92 {
20385
20515
  background-color: var(--bs-border-color);
20386
20516
  }
20387
20517
 
20388
- ._rightSeparator_t7oq7_90 {
20518
+ ._rightSeparator_1qk7q_96 {
20389
20519
  background-color: var(--bs-border-color);
20390
20520
  }
20391
20521
 
20392
- ._rightPane_t7oq7_32 {
20522
+ ._rightPane_1qk7q_38 {
20393
20523
  padding-top: 0rem;
20394
20524
  padding-right: 0.2rem;
20395
20525
  align-self: start;
20396
20526
  }
20397
20527
 
20398
- ._container_t7oq7_9:not(._rightPaneCollapsed_t7oq7_32) > ._rightPane_t7oq7_32 {
20528
+ ._container_1qk7q_9:not(._rightPaneCollapsed_1qk7q_38) > ._rightPane_1qk7q_38 {
20399
20529
  padding-left: 0.2rem;
20400
20530
  /* Leave room on the right for the absolutely-positioned close button. */
20401
20531
  padding-right: 1.2rem;
@@ -20404,7 +20534,7 @@ a._citationLink_1ggvf_9:hover {
20404
20534
  scrollbar-width: thin;
20405
20535
  }
20406
20536
 
20407
- ._rightPaneResizer_t7oq7_109 {
20537
+ ._rightPaneResizer_1qk7q_115 {
20408
20538
  position: absolute;
20409
20539
  left: -3px;
20410
20540
  top: 0;
@@ -20418,12 +20548,12 @@ a._citationLink_1ggvf_9:hover {
20418
20548
  transition: background-color 120ms ease;
20419
20549
  }
20420
20550
 
20421
- ._rightPaneResizer_t7oq7_109:hover,
20422
- ._rightPaneResizer_t7oq7_109:active {
20551
+ ._rightPaneResizer_1qk7q_115:hover,
20552
+ ._rightPaneResizer_1qk7q_115:active {
20423
20553
  background-color: var(--bs-primary-border-subtle);
20424
20554
  }
20425
20555
 
20426
- ._rightPaneToggle_t7oq7_128 {
20556
+ ._rightPaneToggle_1qk7q_134 {
20427
20557
  all: unset;
20428
20558
  cursor: pointer;
20429
20559
  font-size: 0.8em;
@@ -20432,11 +20562,11 @@ a._citationLink_1ggvf_9:hover {
20432
20562
  left: 0.2rem;
20433
20563
  }
20434
20564
 
20435
- ._eventsList_t7oq7_137 {
20565
+ ._eventsList_1qk7q_143 {
20436
20566
  padding-bottom: 1rem;
20437
20567
  }
20438
20568
 
20439
- ._sidebarHeader_t7oq7_141 {
20569
+ ._sidebarHeader_1qk7q_147 {
20440
20570
  display: flex;
20441
20571
  flex-direction: row;
20442
20572
  align-items: center;
@@ -20444,12 +20574,12 @@ a._citationLink_1ggvf_9:hover {
20444
20574
  margin-bottom: 0.3rem;
20445
20575
  }
20446
20576
 
20447
- ._sidebarHeaderIcon_t7oq7_149 {
20577
+ ._sidebarHeaderIcon_1qk7q_155 {
20448
20578
  font-size: 0.9em;
20449
20579
  flex-shrink: 0;
20450
20580
  }
20451
20581
 
20452
- ._sidebarHeaderTitle_t7oq7_154 {
20582
+ ._sidebarHeaderTitle_1qk7q_160 {
20453
20583
  flex: 1;
20454
20584
  min-width: 0;
20455
20585
  font-weight: normal;
@@ -20465,7 +20595,7 @@ a._citationLink_1ggvf_9:hover {
20465
20595
  inside the anchor so it doesn't push surrounding content. z-index sits
20466
20596
  above sibling sticky headers (e.g. SampleScansSidebar's scanner picker
20467
20597
  at z-index: 2) so the close button paints on top. */
20468
- ._sidebarHeaderCloseAnchor_t7oq7_170 {
20598
+ ._sidebarHeaderCloseAnchor_1qk7q_176 {
20469
20599
  position: sticky;
20470
20600
  top: 0;
20471
20601
  height: 0;
@@ -20474,14 +20604,14 @@ a._citationLink_1ggvf_9:hover {
20474
20604
 
20475
20605
  /* In the right pane, extend the anchor into the parent's right padding so
20476
20606
  the button lines up with the existing visual position. */
20477
- ._rightPane_t7oq7_32 ._sidebarHeaderCloseAnchor_t7oq7_170 {
20607
+ ._rightPane_1qk7q_38 ._sidebarHeaderCloseAnchor_1qk7q_176 {
20478
20608
  margin-right: -1.2rem;
20479
20609
  }
20480
20610
 
20481
20611
  /* Center the close icon vertically with the rootHeader title that follows
20482
20612
  in the scroll content. The title (text-size-smaller) sits at the top of
20483
20613
  that content; this offset aligns the icon's visual center with the title's. */
20484
- ._sidebarHeaderClose_t7oq7_170 {
20614
+ ._sidebarHeaderClose_1qk7q_176 {
20485
20615
  all: unset;
20486
20616
  cursor: pointer;
20487
20617
  font-size: 0.9em;
@@ -20492,7 +20622,7 @@ a._citationLink_1ggvf_9:hover {
20492
20622
  background-color: var(--bs-body-bg);
20493
20623
  }
20494
20624
 
20495
- ._sidebarHeaderClose_t7oq7_170:hover {
20625
+ ._sidebarHeaderClose_1qk7q_176:hover {
20496
20626
  opacity: 0.7;
20497
20627
  }
20498
20628
  ._headline_1l22a_1 {
@@ -21353,48 +21483,48 @@ a._citationLink_1ggvf_9:hover {
21353
21483
  --srb-bg: oklch(0.29 0.005 260);
21354
21484
  --srb-bd: oklch(0.42 0.008 260);
21355
21485
  }
21356
- ._container_2vo8f_1 {
21486
+ ._container_qdklk_1 {
21357
21487
  margin: 0.5em 0 0 0;
21358
21488
  width: 100%;
21359
21489
  }
21360
21490
 
21361
- ._all_2vo8f_6 {
21491
+ ._all_qdklk_6 {
21362
21492
  display: flex;
21363
21493
  flex-direction: column;
21364
21494
  gap: 1em;
21365
21495
  }
21366
21496
 
21367
- ._tableSelection_2vo8f_12 {
21497
+ ._tableSelection_qdklk_12 {
21368
21498
  width: fit-content;
21369
21499
  align-self: start;
21370
21500
  justify-self: start;
21371
21501
  }
21372
21502
 
21373
- ._config_2vo8f_18 {
21503
+ ._config_qdklk_18 {
21374
21504
  margin-top: 0;
21375
21505
  }
21376
21506
 
21377
- ._tools_2vo8f_22 {
21507
+ ._tools_qdklk_22 {
21378
21508
  grid-column: -1/1;
21379
21509
  }
21380
21510
 
21381
- ._codePre_2vo8f_26 {
21511
+ ._codePre_qdklk_26 {
21382
21512
  background: var(--bs-light);
21383
21513
  width: 100%;
21384
21514
  padding: 0.5em;
21385
21515
  border-radius: var(--bs-border-radius);
21386
21516
  }
21387
21517
 
21388
- ._code_2vo8f_26 {
21518
+ ._code_qdklk_26 {
21389
21519
  white-space: pre-wrap !important;
21390
21520
  word-wrap: anywhere !important;
21391
21521
  }
21392
21522
 
21393
- ._progress_2vo8f_38 {
21523
+ ._progress_qdklk_38 {
21394
21524
  margin-left: 0;
21395
21525
  }
21396
21526
 
21397
- ._error_2vo8f_42 {
21527
+ ._error_qdklk_42 {
21398
21528
  color: var(--bs-danger);
21399
21529
  padding: 0.5em;
21400
21530
  border: 1px solid var(--bs-danger);
@@ -21405,7 +21535,7 @@ a._citationLink_1ggvf_9:hover {
21405
21535
  margin: 0.5em 0;
21406
21536
  }
21407
21537
 
21408
- ._cancelled_2vo8f_53 {
21538
+ ._cancelled_qdklk_53 {
21409
21539
  display: flex;
21410
21540
  align-items: center;
21411
21541
  gap: 0.5em;
@@ -21418,31 +21548,31 @@ a._citationLink_1ggvf_9:hover {
21418
21548
  margin: 0.5em 0;
21419
21549
  }
21420
21550
 
21421
- ._showAllLink_2vo8f_66 {
21551
+ ._showAllLink_qdklk_66 {
21422
21552
  text-align: center;
21423
21553
  padding: 0.5em 0 0.7em;
21424
21554
  }
21425
21555
 
21426
- ._showAllLink_2vo8f_66 a {
21556
+ ._showAllLink_qdklk_66 a {
21427
21557
  cursor: pointer;
21428
21558
  color: var(--bs-secondary-color);
21429
21559
  text-decoration: none;
21430
21560
  }
21431
21561
 
21432
- ._showAllIcon_2vo8f_77 {
21562
+ ._showAllIcon_qdklk_77 {
21433
21563
  margin-right: 0.35em;
21434
21564
  }
21435
21565
 
21436
- ._showAllLink_2vo8f_66 a:hover {
21566
+ ._showAllLink_qdklk_66 a:hover {
21437
21567
  color: var(--bs-body-color);
21438
21568
  text-decoration: underline;
21439
21569
  }
21440
21570
 
21441
- ._toolConfig_2vo8f_86 {
21571
+ ._toolConfig_qdklk_86 {
21442
21572
  padding-top: 0.5em;
21443
21573
  }
21444
21574
 
21445
- ._toolChoice_2vo8f_90 {
21575
+ ._toolChoice_qdklk_90 {
21446
21576
  border-top: solid var(--bs-light-border-subtle) 1px;
21447
21577
  display: grid;
21448
21578
  grid-template-columns: max-content minmax(0, auto);
@@ -21451,6 +21581,10 @@ a._citationLink_1ggvf_9:hover {
21451
21581
  padding-top: 0.5em;
21452
21582
  overflow-wrap: anywhere;
21453
21583
  }
21584
+
21585
+ ._fallbackBadge_qdklk_100 {
21586
+ font-style: italic;
21587
+ }
21454
21588
  ._noMargin_1a3fk_1 {
21455
21589
  margin-bottom: 0;
21456
21590
  }
@@ -21592,65 +21726,39 @@ a._citationLink_1ggvf_9:hover {
21592
21726
  ._subtaskLabel_ac4z2_17 {
21593
21727
  padding: 0 2em;
21594
21728
  }
21595
- ._summary_8xr5q_1 {
21729
+ ._summary_1mtn2_1 {
21596
21730
  margin: 0.5em 0;
21597
21731
  width: 100%;
21598
21732
  }
21599
21733
 
21600
- ._labeledToolCall_8xr5q_6 {
21734
+ ._labeledToolCall_1mtn2_6 {
21601
21735
  display: grid;
21602
21736
  grid-template-columns: auto max-content;
21603
21737
  row-gap: 0;
21604
21738
  }
21605
21739
 
21606
- ._label_8xr5q_6 {
21740
+ ._label_1mtn2_6 {
21607
21741
  display: flex;
21608
21742
  justify-content: flex-end;
21609
21743
  padding-top: 0.7rem;
21610
21744
  margin-left: 0.4em;
21611
21745
  }
21612
21746
 
21613
- ._labeledToolContent_8xr5q_19 {
21747
+ ._labeledToolContent_1mtn2_19 {
21614
21748
  min-width: 0;
21615
21749
  }
21616
21750
 
21617
- /* The call/output attached pair (colors + inner flatten come from the shared
21618
- [data-message-kind] theme rules; here we supply the box structure). */
21619
- ._attachedGroup_8xr5q_25 {
21620
- display: flex;
21621
- flex-direction: column;
21622
- }
21623
-
21624
- ._toolBox_8xr5q_30 {
21625
- position: relative;
21626
- border: 1px solid var(--bs-light-border-subtle);
21627
- border-radius: var(--bs-border-radius);
21628
- padding: 0.7rem;
21629
- }
21630
-
21631
- ._attachedBottom_8xr5q_37 {
21632
- border-bottom-left-radius: 0;
21633
- border-bottom-right-radius: 0;
21634
- border-bottom: 0;
21635
- }
21636
-
21637
- ._attachedTop_8xr5q_43 {
21638
- border-top-left-radius: 0;
21639
- border-top-right-radius: 0;
21640
- border-top: 0;
21641
- }
21642
-
21643
- ._approvalWrap_8xr5q_49 {
21751
+ ._approvalWrap_1mtn2_23 {
21644
21752
  margin-top: 0.5rem;
21645
21753
  }
21646
21754
 
21647
- ._approval_8xr5q_49 {
21755
+ ._approval_1mtn2_23 {
21648
21756
  border: none;
21649
21757
  padding: 0;
21650
21758
  margin-bottom: 0;
21651
21759
  }
21652
21760
 
21653
- ._progress_8xr5q_59 {
21761
+ ._progress_1mtn2_33 {
21654
21762
  margin-left: 0;
21655
21763
  }
21656
21764
  ._node_t3xlr_1 {
@@ -21698,7 +21806,7 @@ a._citationLink_1ggvf_9:hover {
21698
21806
  * height as `--inspect-sample-header-height` on the tabs container.
21699
21807
  * The tabs slide up automatically when the header collapses and
21700
21808
  * back down when it expands. */
21701
- ._tabControls_1jky3_7 {
21809
+ ._tabControls_1o8ft_7 {
21702
21810
  position: sticky;
21703
21811
  z-index: 1001;
21704
21812
  top: var(--inspect-sample-header-height, 0);
@@ -21707,77 +21815,248 @@ a._citationLink_1ggvf_9:hover {
21707
21815
  background-color: var(--bs-body-bg);
21708
21816
  }
21709
21817
 
21710
- ._fullWidth_1jky3_16 {
21818
+ ._fullWidth_1o8ft_16 {
21711
21819
  width: 100%;
21712
21820
  }
21713
21821
 
21714
- ._metadataPanel_1jky3_20 {
21822
+ ._metadataPanel_1o8ft_20 {
21715
21823
  display: flex;
21716
21824
  flex-direction: column;
21717
21825
  gap: 0.75rem;
21718
21826
  }
21719
21827
 
21720
- ._padded_1jky3_26 {
21828
+ ._padded_1o8ft_26 {
21721
21829
  padding-left: 0.8em;
21722
21830
  margin-top: 0.4em;
21723
21831
  }
21724
21832
 
21725
- ._error_1jky3_31 {
21833
+ ._error_1o8ft_31 {
21726
21834
  padding-top: 0.5em;
21727
21835
  }
21728
21836
 
21729
- ._ansi_1jky3_35 {
21837
+ ._ansi_1o8ft_35 {
21730
21838
  margin: 1em 0;
21731
21839
  }
21732
21840
 
21733
- ._noTop_1jky3_39 {
21841
+ ._noTop_1o8ft_39 {
21734
21842
  margin-top: 0;
21735
21843
  }
21736
21844
 
21737
- ._chat_1jky3_43 {
21845
+ ._chat_1o8ft_43 {
21738
21846
  padding: 0.5rem;
21739
21847
  }
21740
21848
 
21741
- ._padded_1jky3_26 {
21849
+ ._padded_1o8ft_26 {
21742
21850
  padding: 1em;
21743
21851
  }
21744
21852
 
21745
- ._overflowVisible_1jky3_51 {
21853
+ ._overflowVisible_1o8ft_51 {
21746
21854
  overflow-y: visible;
21747
21855
  }
21748
21856
 
21749
- ._retriedErrors_1jky3_55 {
21750
- margin: 0.5rem;
21857
+ ._retriedErrors_1o8ft_55 {
21858
+ /* Full-bleed (no card), with a small uniform inset from the tab edges. */
21859
+ margin: 0;
21860
+ padding: 0.5rem;
21751
21861
  min-width: 0;
21752
21862
  overflow: hidden;
21753
21863
  align-self: stretch;
21754
21864
  flex: 1;
21755
21865
  }
21756
- ._ansi_45i0c_1 {
21866
+ ._card_zuaa2_1 {
21867
+ flex: 1;
21868
+ border: 1px solid var(--bs-border-color);
21869
+ border-radius: 8px;
21870
+ overflow: hidden;
21871
+ transition:
21872
+ background-color 0.12s ease,
21873
+ border-color 0.12s ease;
21874
+ }
21875
+
21876
+ ._cardCollapsed_zuaa2_11 {
21877
+ background: var(--bs-tertiary-bg);
21878
+ }
21879
+
21880
+ ._cardOpen_zuaa2_15 {
21881
+ background: var(--bs-body-bg);
21882
+ }
21883
+
21884
+ ._header_zuaa2_19 {
21885
+ display: flex;
21886
+ align-items: center;
21887
+ gap: 10px;
21888
+ padding: 11px 14px;
21889
+ cursor: pointer;
21890
+ }
21891
+
21892
+ ._attemptLabel_zuaa2_27 {
21893
+ font-weight: 700;
21894
+ font-size: 13.5px;
21895
+ color: var(--bs-body-color);
21896
+ white-space: nowrap;
21897
+ }
21898
+
21899
+ ._errorChip_zuaa2_34 {
21900
+ display: inline-flex;
21901
+ align-items: center;
21902
+ font-family: var(--bs-font-monospace);
21903
+ font-size: 12px;
21904
+ font-weight: 600;
21905
+ padding: 2px 8px;
21906
+ border-radius: 5px;
21907
+ background: var(--bs-danger-bg-subtle);
21908
+ color: var(--bs-danger-text-emphasis);
21909
+ border: 1px solid var(--bs-danger-border-subtle);
21910
+ white-space: nowrap;
21911
+ }
21912
+
21913
+ ._message_zuaa2_48 {
21914
+ font-size: 12.5px;
21915
+ color: var(--bs-secondary-color);
21916
+ min-width: 0;
21917
+ overflow: hidden;
21918
+ text-overflow: ellipsis;
21919
+ white-space: nowrap;
21920
+ }
21921
+
21922
+ /* Right-aligned group: the (expanded-only) Error/Events toggle, duration, and
21923
+ chevron. */
21924
+ ._headerRight_zuaa2_59 {
21925
+ margin-left: auto;
21926
+ display: flex;
21927
+ align-items: center;
21928
+ gap: 10px;
21929
+ }
21930
+
21931
+ ._headerToggle_zuaa2_66 {
21932
+ display: flex;
21933
+ }
21934
+
21935
+ ._duration_zuaa2_70 {
21936
+ font-family: var(--bs-font-monospace);
21937
+ font-size: 12px;
21938
+ color: var(--bs-tertiary-color);
21939
+ white-space: nowrap;
21940
+ }
21941
+
21942
+ ._chevron_zuaa2_77 {
21943
+ color: var(--bs-tertiary-color);
21944
+ font-size: 14px;
21945
+ }
21946
+
21947
+ /* No horizontal padding: the Events transcript goes edge-to-edge so its row
21948
+ borders meet the card edges. The error panel re-adds its own inset. */
21949
+ ._body_zuaa2_84 {
21950
+ padding-top: 10px;
21951
+ padding-bottom: 16px;
21952
+ }
21953
+
21954
+ ._errorPanel_zuaa2_89 {
21955
+ margin: 0 14px;
21956
+ }
21957
+
21958
+ ._ansi_zuaa2_93 {
21757
21959
  margin: 0.5em 0;
21758
21960
  font-size: clamp(0.3rem, 1.1vw, 0.8rem) !important;
21759
21961
  }
21760
-
21761
- ._headerRow_45i0c_6 {
21962
+ ._row_iq6ks_1 {
21762
21963
  display: flex;
21964
+ gap: 16px;
21763
21965
  align-items: center;
21764
- justify-content: space-between;
21765
- width: 100%;
21766
21966
  }
21767
21967
 
21768
- ._headerControls_45i0c_13 {
21968
+ ._check_iq6ks_7 {
21969
+ display: inline-flex;
21970
+ align-items: center;
21971
+ justify-content: center;
21972
+ width: 14px;
21973
+ height: 14px;
21974
+ border-radius: 50%;
21975
+ background: var(--bs-success);
21976
+ color: #fff;
21977
+ flex: none;
21978
+ font-size: 10px;
21979
+ position: relative;
21980
+ /* Sits above the container's absolutely-positioned timeline rail. */
21981
+ z-index: 1;
21982
+ }
21983
+
21984
+ ._copy_iq6ks_23 {
21985
+ flex: 1;
21769
21986
  display: flex;
21770
21987
  align-items: center;
21771
- margin-left: 1rem;
21772
- gap: 0.5rem;
21988
+ gap: 10px;
21989
+ padding: 6px 4px;
21990
+ margin-top: 2px;
21991
+ border-top: 1px solid var(--bs-border-color);
21992
+ }
21993
+
21994
+ ._success_iq6ks_33 {
21995
+ font-weight: 700;
21996
+ font-size: 13.5px;
21997
+ color: var(--bs-success-text-emphasis);
21998
+ white-space: nowrap;
21773
21999
  }
21774
22000
 
21775
- ._card_45i0c_20 {
22001
+ ._detail_iq6ks_40 {
22002
+ font-size: 12.5px;
22003
+ color: var(--bs-secondary-color);
22004
+ }
22005
+ ._panel_1n9ws_1 {
21776
22006
  width: 100%;
21777
22007
  }
21778
22008
 
21779
- ._attemptDropdown_45i0c_24 {
21780
- padding: 1px 0.25rem;
22009
+ ._sectionLabel_1n9ws_5 {
22010
+ margin-bottom: 4px;
22011
+ font-size: 12px;
22012
+ font-weight: 600;
22013
+ letter-spacing: 0.07em;
22014
+ text-transform: uppercase;
22015
+ color: var(--bs-secondary-color);
22016
+ }
22017
+
22018
+ ._timeline_1n9ws_14 {
22019
+ position: relative;
22020
+ margin-top: 18px;
22021
+ }
22022
+
22023
+ ._rail_1n9ws_19 {
22024
+ position: absolute;
22025
+ left: 6px;
22026
+ top: 6px;
22027
+ bottom: 6px;
22028
+ width: 2px;
22029
+ background: var(--bs-border-color);
22030
+ }
22031
+
22032
+ ._items_1n9ws_28 {
22033
+ display: flex;
22034
+ flex-direction: column;
22035
+ gap: 12px;
22036
+ }
22037
+
22038
+ ._row_1n9ws_34 {
22039
+ display: flex;
22040
+ gap: 16px;
22041
+ }
22042
+
22043
+ /* Offsets the dot to align with the card header text; relative + z-index so it
22044
+ paints above the absolutely-positioned rail. */
22045
+ ._dotGutter_1n9ws_41 {
22046
+ position: relative;
22047
+ z-index: 1;
22048
+ padding-top: 14px;
22049
+ }
22050
+
22051
+ /* Failed-attempt marker: the viewer's standard error icon. The body-bg backdrop
22052
+ punches it out over the rail so the line doesn't show through the glyph. */
22053
+ ._statusIcon_1n9ws_49 {
22054
+ display: block;
22055
+ font-size: 14px;
22056
+ line-height: 1;
22057
+ color: var(--bs-danger);
22058
+ background: var(--bs-body-bg);
22059
+ border-radius: 50%;
21781
22060
  }
21782
22061
  ._body_x9ww7_1 {
21783
22062
  color: var(--bs-danger);